Тема: AutoCAD и Excel: как их использовать вместе?

Всем добрый день!
Мне нужно сохранять нечто, берущееся из чертежа AutoCAD-a, в Excel-файле, предварительно создав такой файл. Потом надо будет читать из этого файла. Чувствую, что это можно как-то сделать, но вот как - пока не знаю. Help безмолвстует на эту тему. Подскажите, пожалуйста, кто что сможет.

Re: AutoCAD и Excel: как их использовать вместе?

Если писать на чистом VB собираетесь то помогу.

Re: AutoCAD и Excel: как их использовать вместе?

Свое "нечто" записывать в обычный текстовый (к примеру) файл, разделяя будущие столбцы знаком табуляции, к примеру. Файлу дать расширение xls. На двойном клике на нем откроется excel. Для чтения надо будет по идее либо запускать Excel в фоновом режиме, открывать в нем файл, читать оттуда, потом закрывать Excel (который не факт что исчезнет из списка процессов) либо напрямую обращаться к файлу через ADO. Это уже не столько VBA, сколько VB получится.
Сильно подозреваю, что на самом деле надо делать БД.

Re: AutoCAD и Excel: как их использовать вместе?

Сильно подозреваю, что на самом деле надо делать БД.

:) kpblc нам бы с Excel разобраться вначале. 2masha базу прикрутить к акаду всеравно когда придется, так что решайте куда тронемся.

Re: AutoCAD и Excel: как их использовать вместе?

Если писать на чистом VB
А чем VBA хуже VB в данном случае? Вообще-то я никаких нестандартных примочек не планирую использовать.
Сильно подозреваю, что на самом деле надо делать БД.
А что мы теряем/приобретаем при таком подходе? Меня просили excel-файл сделать. Но если БД чем-то сильно лучше, то имеет смысл ещё раз обсудить постановку задачи и делать БД. Правда, я ещё не знаю, как её делать :), но это уже дело техники...

Re: AutoCAD и Excel: как их использовать вместе?

> SmeL
Да дело не в том, с кем разбираться. Вопрос, по-моему, все же в исходной задаче (только полной!)
Если надо сделать отчет, то ИМХО(!) надо работать в чистом каде, пользоваться таблицами его и заполнять их по мере надобности, всю обработку выполняя опять же кадом и его средствами, не связываясь со сторонними приложениями.
Если же задача стоит нечто типа "вставили блок с именем тра-ля-ля, а в спецификации должно быть тра-ля-ля-три-рубля", да еще и в зависимости от значений атрибутов ставить определенные значения в какие-то там столбцы, то тут уже проще будет использовать БД. Немного сумбурно, наверное, рассказал, но тем не менее - задачу надо осмыслить полностью.
К примеру: надо определить настройки слоев. Есть вариант - забить все в ini-файл и читать оттуда, или вариант сделать какой-то суперглобальный массив и искать по нему. Самый оптимальный (идея не моя, говорю сразу), думаю - будет сделать 1 таблицу в БД и по мере надобности к ней обращаться. И отредактировать значения можно в любой момент, и добавить строки, и доступ достаточно быстрый.

masha пишет:

А что мы теряем/приобретаем при таком подходе?

ИМХО (!!!) - всю дорогу.
Скорость доступа к данным, возможность многопользовательской работы с одними и теми же данными, возможность быстрого внесения изменений ну и так далее. Также приобретается достаточно жесткая структура данных. Просто так уже не снесешь ничего - надо еще голову поломать, что это может затронуть.
Это и плюс, и минус.

Правда, я ещё не знаю, как её делать

Ну тут можно посмотреть на Access, к примеру - для начала. А там уже и развиваться можно будет :)

Re: AutoCAD и Excel: как их использовать вместе?

Как только что выснилось, этот файл нужен чисто для моих внутренних программных нужд (ура!),  то есть ковырять его руками никто не будет. Поэтому у меня появился большой соблазн сделать этот несчастный файл просто текстовым. Всё бы ничего, но я не нашла команду создания файла. Копирование, удаление есть, а создания - нету. Может, я плохо искала... Поскажите, пожалуйста, как создать файл.

Re: AutoCAD и Excel: как их использовать вместе?

masha пишет:

Если писать на чистом VB
А чем VBA хуже VB в данном случае? Вообще-то я никаких нестандартных примочек не планирую использовать.

Вот случай из моей практики. Стоит Win 2000 и ACAD2000. Заказчику необходимо написать проект на VBA я был против но выполнил. Все протестировал на своей машине, работой был доволен. Отправил у них не работает. Оказалось что под XP доступа к реестру и ини файлам я не мог получить под 2000 все работало. на VB проблем не замечал

Re: AutoCAD и Excel: как их использовать вместе?

> kpblc
О спасибо как то тоже почитаю как с базами работать :D

Re: AutoCAD и Excel: как их использовать вместе?

ДЛя открытия текстового файла (если файла нет, он будет создан) попробуй нечто типа такого:

FileNum = FreeFile()
FileName = "c:\temp.txt"
Open FileName For Output as FileNum
'
'Печатаем в файл через Print или Write
'
Close FileNum

Для чтения файла использовать аналогично:

Open FileName For Output as FileNum

Чтение выполняется через Input или Line Input.
Возможно еще и сохранение в файл бинарный, но это отдельная песня.

Re: AutoCAD и Excel: как их использовать вместе?

Последний пост обращен к > masha (2006-06-28 14:20:17)

Re: AutoCAD и Excel: как их использовать вместе?

> SmeL
Издеваешься? Я ж от тебя столько инфы и на эту тему подчерпнул, что теперь не унести :)

Re: AutoCAD и Excel: как их использовать вместе?

> masha
btw, если файл нужен для програмных нужд, существенный вопрос - а на фига его создавать? Может, проще передать данные в соответствующую процедуру / функцию? Опять же, вопросов с разрешениями на запись в папки не будет...

Re: AutoCAD и Excel: как их использовать вместе?

> masha
Есть еще замечательный FileSystemObject:

Sub TestCreateTextFile()
   Dim fso, tf, arr, i
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set tf = fso.CreateTextFile("C:\MyLisp\FSOTEST.txt", True) '' пропиши свой адрес
   arr = Array("Write three lines to this file:" _
   , "This is a first line.", _
   "This is a second line.", _
   "This is a third line.")
   For i = 0 To UBound(arr)
   tf.Write (arr(i))
   tf.WriteBlankLines (1)
   Next
   tf.Close
End Sub

~'J'~

Re: AutoCAD и Excel: как их использовать вместе?

> Fatty
Только (ИМХО) надо дополнительно библиотеки Microsoft Scripting присоединять к проекту.

Re: AutoCAD и Excel: как их использовать вместе?

если файл нужен для програмных нужд, существенный вопрос — а на фига его создавать? Может, проще передать данные в соответствующую процедуру / функцию?
Дело в том, что исходный файл то открывают, то закрывают, и возможно, вместе с AutoCAD-ом. А параметры функций столько не живут.
FileName = "c:\temp.txt"
Open FileName For Output as FileNum

Если указать уже существующий файл, то он откроется, а новый создаётся только если прописать полный путь. А если я не хочу его прописывать? Мало ли, как Юзер будет менять свою структуру папок?...

Re: AutoCAD и Excel: как их использовать вместе?

Мораль - записывать в

Application.Preferences.Files.TempFilePath

Возникает дополнительный вопрос - с именем файла. Если использовать фиксированное имя, то при следующем файле dwg старый txt накроется медным тазом.
С другой стороны, если закрыли кад, то точно уже ничего делать не будут. С файлом аналогично.

Re: AutoCAD и Excel: как их использовать вместе?

> kpblc
Не надо, смотри внимательней:
CreateObject("Scripting.FileSystemObject")
:)

Re: AutoCAD и Excel: как их использовать вместе?

> Fatty
Логично. Не знал, что можно с этим объектом работать без подключения библиотеки. Спасибо.

Re: AutoCAD и Excel: как их использовать вместе?

> masha
"Мне нужно сохранять нечто, берущееся из чертежа AutoCAD-a, в Excel-файле"
Хотелось бы понять это "нечто" как-то называется?
И что значит читать? Потом эти данные использовать в программе?
Применительно к своим задачам было реализовано.
Данные для проектирования продольных профилей из Лэнда (встроенная функция) перебрасывались в Excel, там они приводились в порядок и затем макросом в Лэнде или Мапе строились профиля.
Макрос запускался в Мапе, при этом был открыт Файл Excel. При выполнении програмы, единственно необходимо было задать диапазон считывания данных (строк) в листе Excel. При выполнении программы появлялись расчетные (проектные) данные, которые затем в ходе выполнения программы заносились в тот же лист Excel, или в другой лист того же файла?
Т.е. для своих задач это было реализовано таким образом.

Re: AutoCAD и Excel: как их использовать вместе?

> SmeL
Уважаемый Smel, у меня возникла аналогочныя проблема,а именно: в автокаде надо создать макрос по расчету и начертанию деталей. Предполагается? что данные и необходимые таблицы для расчетов будут храниться в excel. Открыть экселовский файл и взять\записать данные из VBA получается, но поскольку в макросе будет куча окон, то надо бы как-нить определить эту книгу как глобальную переменную, а где и как это сделать - не знаю. Помогите, pls!