¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

9 апрел€ 2019

ћинутка прикладного AutoCAD: извлечение данных в один клик

јлександр —авилов

јлександр —авилов

јлександр —авилов Ц инженер-проектировщик автомобильных дорог, автор YouTube-канала AutoCAD imho.
ƒл€ своей статьи он обозначил рубрику:
Ђћинутка прикладного AutoCAD. ѕрикладываемс€ к AutoCAD головойї.

√лава 1. »звлечение данных как св€зь объектов с Ђвнешним миромї
√лава 2. „ем не устраивает штатный способ извлечени€ данных?
√лава 3. ѕостановка задачи
√лава 4. ѕостроение принципиальной схемы автоматизации извлечени€ данных
√лава 5. Ќаписание макроса команд
√лава 6. ѕодводные камни автоматического извлечени€
√лава 7. ќрганизаци€ файловой системы под извлечени€
√лава 8. ќткрытие файла извлеченных данных из AutoCAD (Ђмикромакросї на VBA)
√лава 9.  ак не запутатьс€ и не ошибитьс€ в макросах
√лава 10. ѕримеры практического применени€ автоматического извлечени€ данных
Ёпилог

√лава 1. »звлечение данных как св€зь объектов с Ђвнешним миромї

ƒумаю, каждый помнит со времен школы, как на уроках математики мы находили пересечени€ графиков функций двум€ способами Ц графическим и аналитическим. ¬ первом случае мы строили графики по клеточкам и с точностью до миллиметра определ€ли координаты их пересечени€; во втором Ц приравнивали функции и получали точное значение. ¬ первом случае быстро, но неточно, во втором точно, но трудоемко.   чему бы это?...

AutoCAD €вл€етс€ мощнейшим, в первую очередь, графическим редактором. Ќо, в отличие от кульмана, при решении задач графическим способом в AutoCAD точность полученных результатов не уступает аналитическому способу ни миллионную долю!

“аким образом, облада€ мощнейшим математическим аппаратом, AutoCAD позвол€ет совмещать преимущества обоих этих способов Ц простоту графических построений и точность аналитических вычислений. Ёто неверо€тно облегчает работу проектировщиков, так как основна€ работа в AutoCAD заключаетс€ в решении большого спектра графических задач:

  • определение координат объектов и их пересечени€;
  • анализ взаимного расположени€ элементов и вычисление допустимых размеров;
  • подсчет количества элементов в чертеже;
  • определение площадей сложных фигур, объемов тел и т. д.
ѕостроение чертежа на основе известных размеров в AutoCAD Ц это одна тыс€чна€ от тех возможностей, которые дает нам AutoCAD.

Ќо решить задачу графически, пусть и с очень высокой точностью, Ц это только полдела! Ќе менее важно уметь примен€ть полученные результаты в дальнейших расчетах:

  • загрузить полученные в чертеже координаты в тахеометр и выполнить разбивку;
  • составить спецификацию посчитанных изделий и отправить за€вку на завод;
  • рассчитать потребность материала по найденной площади и вычисленному объему.
—амые сложные подсчеты, составление спецификаций, ведомостей и сводных таблиц можно с легкостью доверить MS Excel, но вот исходными данными дл€ расчетов все-таки должны быть данные, полученные из AutoCAD.

»менно дл€ этих целей в AutoCAD и создана функци€ с неожиданным названием Ђ»звлечение данныхї.

— ее помощью и можно св€зать объекты чертежей AutoCAD с Ђвнешним миромї, в частности с электронными таблицами Excel, посредством экспорта информации об объектах в табличной форме, будь то *.xls Ц таблица Excel, текстовый *.txt-файл и др.

»звлечение данных также позвол€ет размещать извлеченные данные в виде таблицы непосредственно в самом чертеже, в том числе и обновл€ть значени€ в них при изменении чертежа. Ќо проблема в том, что возможности вычислений в таблицах AutoCAD несопоставимы с возможност€ми Excel, поэтому Ђумные спецификацииї мы оставим за рамками этой статьи.

√лава 2. „ем не устраивает штатный способ извлечени€ данных?

Ќесмотр€ на вышеописанную полезность и высокую востребованность, инструмент Ђ»звлечение данныхї перетекает из версии в версию на прот€жении дес€тков лет в неизменном виде. Ётот факт несколько огорчает в св€зи с тем, что, несмотр€ на простоту выполн€емых действий, инструмент €вл€етс€ достаточно Ђгромоздкимї в плане количества необходимых действий дл€ получени€ результата. „тобы получить одну таблицу, нужно запустить Ђћастер извлечени€ данныхї и последовательно пройти семь окон, указыва€ нужные данные или соглаша€сь с предустановками.

ѕроведу простую аналогию. ƒавайте представим себе ситуацию, когда дл€ получени€ одной формальной медицинской справки нужно идти в поликлинику и последовательно проходить семь кабинетов, в которых вас даже не осмотр€т, а будут только заполн€ть бумажки, впустую трат€ ваше драгоценное врем€. —нова представим, что при проверке:

  • справка оказалась не той формы Ц мчимс€ в поликлинику и бежим по тем же кабинетам;
  • в справке написали фамилию с ошибкой Ц оп€ть семь кабинетов;
  • в четвертом кабинете заполнили не все строки Ц оп€ть все по новому кругуЕ

ƒаже представить себе страшно, не так ли?

“ак вот, в AutoCAD та же сама€ истори€! —амо по себе извлечение данных сделать несложно, и это не займет много времени. » все вроде бы хорошо, но при анализе результата оказываетс€, что:

  • в набор попали не все нужные объекты Ц делаем переизвлечение;
  • в четвертом окне выставил не все нужные галочки Ц переизвлечение;
  • не отменил объединение идентичных строк Ц переизвлечение;
  • некорректно упор€доченные данные... принцип пон€тен.

» без того мало при€тного, но если при этом вс€ работа ведетс€ в режиме ЂZeitnotї, срок сдачи был еще вчера, начальство обрывает телефон и карьера висит на волоске, Ц тут не до Ђэффективных методов работыї. ¬ ход идут проверенные годами методы Ђда€рукамибыстрееї и Ђглазоаналитическийї подсчет. ѕоследстви€ использовани€ таких методов, думаю, знакомы каждому.

√лава 3. ѕостановка задачи

—огласитесь, как было бы здорово иметь кнопочки, которые одним нажатием извлекают данные о выбранных объектах согласно предварительно заданным предустановкам! Ќапример, кнопка, извлекающа€ данные о координатах точек в модели; координатах концов отрезков и их длине; содержимом текстовых объектов, их положении и т. д. “о есть одна кнопка извлекает характерные предустановленные данные из одного типа объектов.

ƒес€ток таких кнопок перекроет 90% потребности в извлечении данных при работе в AutoCAD.

ѕодобного функционала в базовой версии AutoCAD, естественно, нет, следовательно Ц нужно смотреть в сторону программировани€.

ѕрограммирование в AutoCAD Ц очень странный предмет, оно вроде есть, а вроде и нет. — одной стороны, все карты в руки: VBA, AutoLISP, .NET, DIESEL, java script Ц на любой вкус и цвет. Ќо с другой стороны, в AutoCAD работают не программисты, а инженеры, чь€ об€занность Ц знать свою специальность, а умение программировать Ц это лишь при€тный бонус, облада€ которым инженер может упростить себе работу, повысить ее качество и снизить нагрузку. Ќо таких специалистов Ц один на сотни. ѕозволить себе штатного программиста (не путать с сисадмином и BIM-менеджером) может далеко не кажда€ организаци€, зачастую даже не понима€, зачем он нужен и кака€ от него может быть польза.

»звлечение данных в AutoCAD

”меть программировать инженер не об€зан, но при этом использовать штатные возможности AutoCAD на 106% должен уметь! “аким образом, мы получаем самую распространенную ситуацию, когда дл€ решени€ производственной задачи придетс€ использовать только штатные средства автоматизации работы в AutoCAD. ¬ данном случае из всего арсенала стоит обратить внимание на макрокоманды, вооружившись знани€ми о которых, отважно бросимс€ на борьбу с Ђвнутрипрограммной бюрократиейї.

Ќаша цель Ц получить *.xls-таблицу извлеченных данных всего одним нажатием кнопки. Ќа меньшее (большее количество действий) мы не согласны!

√лава 4. ѕостроение принципиальной схемы автоматизации извлечени€ данных

ƒл€ начала, чтобы оценить возможность автоматизации извлечений при помощи макрокоманд, освежим в пам€ти этот процесс в классическом, ручном режиме работы Ђмастера извлечени€ данныхї.

ќкно є1 Ц в нем мы определ€ем, будем ли мы создавать новое извлечение с Ђчистого листаї, создавать новое извлечение на базе существующего, внес€ в него нужные корректировки, или просто подкорректируем уже существующее.

»звлечение данных в AutoCAD

ѕод Ђизвлечениемї в этом окне подразумеваетс€ вполне себе конкретный файл с расширением *.dxe, в который вноситс€ информаци€, которую мы указываем в каждом окне мастера извлечени€ данных. ѕо аналогии с медицинской справкой, *.dxe Ц это та сама€ справка, в которой в каждом кабинете делаютс€ отметки. ѕройти это окно, не име€ на компьютере dxe-файла, не получитс€, так как AutoCAD должен все тщательно задокументировать. Ётот факт несколько огорчает в тех случа€х, когда извлечени€ имеют разовый характер и хранить информацию о них нет никакого смысла. ќчень не хватает кнопки Ђћне только спроситьї Ц ой, то есть Ђќднократное извлечениеї.

ќкно є2 Ц окно выбора источника данных. ƒл€ извлечений в ручном режиме Ц полна€ свобода выбора объектов, от Ђмелкой розницыї Ц в виде указани€ конкретных объектов в текущем чертеже Ц до Ђоптовых поставокї объектов чертежами, подшивками и даже папками. Ќо все это нам не интересно, ибо требует ручных манипул€ций, а при автоматическом извлечении макрос должен отработать безостановочно. “аким образом, единственным подход€щим дл€ нас вариантом €вл€етс€ установленна€ по умолчанию конфигураци€ Ђ„ертежи > ¬ключить текущий чертежї.

»звлечение данных в AutoCAD

ќбратите внимание, что путь к текущему чертежу полностью прописываетс€ в *.dxe-файл извлечени€! ѕросто запомните мудрую пословицу, к ней мы еще вернемс€ позже!
»звлечение данных в AutoCAD

ќкна є3, є4 Ц окна выбора типа объектов и нужных свойств объектов. “ут все интуитивно пон€тно, лишь еще раз оговорюсь, что автоматические извлечени€ данных делаютс€ в основном под какой-то конкретный тип объекта, чьи данные чаще всего приходитс€ извлекать. –еже автоизвлечение настраиваетс€ под конкретную задачу, где количество типов объектов может быть и два, и три, и более. Ќо все ситуации предусмотреть невозможно, поэтому врем€ от времени Ђразовыеї извлечени€ делать все равно придетс€.
»звлечение данных в AutoCAD

¬ окне є5 формируетс€ вид таблицы: расположение столбцов, упор€дочивание, объединение одинаковых строк, наличие столбца наименований объектов и их количества. “акже здесь можно добавить свои столбцы, в которых формулой задать значени€, вычисл€емые из извлекаемых данных.
»звлечение данных в AutoCAD

¬ окне є6 мы указываем место складировани€ таблиц извлеченных данных и их название.
»звлечение данных в AutoCAD

¬ окне є8 мастер извлечени€ данных провер€ет серьезность наших намерений и дает нам последний шанс одуматьс€. ¬звесив все Ђзаї и Ђпротивї и посоветовавшись с семьей, очень аккуратно жмем Ђ√отової. ѕара секунд ожидани€, и вот она Ц заветна€ строка, ради которой был пройден столь долгий путь:
»звлечение данных в AutoCAD

 акие выводы можно сделать из увиденного, с точки зрени€ автоматизации извлечени€?
  1. ‘айл чертежа, из которого будут извлекатьс€ данные, должен иметь фиксированное название и расположение на диске (помним Ђпословицуї).
  2. xls-таблицы с извлеченными данными будут перезаписыватьс€ при каждом новом повторе извлечени€, создающего эту таблицу.
»сход€ из первого обсто€тельства, учитыва€, что названи€ и расположени€ чертежей, в которых мы работаем, всегда индивидуальны, Ц понимаем, что использование их при автоматизированном извлечении невозможно!

“аким образом, объекты, данные о которых нужно извлечь, должны быть скопированы в специальный, так называемый (мной) Ђбуферныйї dwg-чертеж. „ертеж этот должен иметь строго определенное название, определ€ющее тип объекта извлечени€, и посто€нный путь. «атем уже в этом самом Ђбуферномї чертеже должен быть записан dxe-файл извлечени€, собирающий информацию об объектах в нем.

“еперь можно составить принципиальную схему работы макроса команд.

»звлечение данных в AutoCAD

√лава 5. Ќаписание макроса команд

5.1 ¬ыбор объектов дл€ извлечени€ данных
ѕо традиции макрос начинаетс€ с ^C^C Ц имитации двойного нажати€ Esc, дабы сбросить все выполн€емые команды. ѕервым делом в рабочем чертеже из всего множества нужно выделить объекты, данные о которых нужно извлечь. ƒл€ этого можно использовать различные ключи команды _PSelect, выбор подобных объектов или попросту запускать макрос с предварительно выделенными объектами.

^C^C Ц запуск макроса с предварительно выбранными объектами
^C^C_.PSelect – \\ Ц выбор объектов секущей рамкой
^C^C_.PSELECT “; Ц работа с Ђтекущимї набором объектов
^C^C_.PSELECT ¬; Ц выбор всех объектов в чертеже
^C^CSELECTSIMILAR \; Ц выбор объектов, подобных указанному пользователем.

(ѕримечание: ключевые подкоманды на кириллице, дл€ русской локализации программы).

5.2 Ёкспорт объектов в буферный файл чертежа
ƒальше идет сама€ неочевидна€ часть макроса. Ќам нужно скопировать выбранные объекты в отдельный чертеж с заданным именем. ѕытатьс€ написать на €зыке макрокоманд что-то вроде [скопируй выбранные объекты Ц открой такой-то чертеж Ц вставь объекты Ц закрой чертеж и вернись в рабочий чертеж] Ц зате€ бесперспективна€. Ёто вам не LISP, не VBA, не .NET Ц тут головой думать нужно!

¬ этот момент стоит пересмотреть саму концепцию Ђкопировани€ объектов в буферный чертежї. Ќужно искать обходной путь!

ј что если не открывать чертеж дл€ копировани€ в него объектов, а при каждом извлечении подмен€ть буферный чертеж другим, уже содержащим нужные объекты?

 ак таковой функции сохранени€ выделенных объектов в отдельный чертеж в AutoCAD нет, но есть не особо попул€рна€ команда ЂѕЅЋќ ї (кнопка на ленте Ђ«апись блока на дискї), при определенных настройках как раз дающа€ нужный результат. ‘ункционал ЂѕЅЋќ ї можно легко заменить сочетани€ми клавиш Ctrl + C(X)/N/V(Shift + V)/S, но вот дл€ использовани€ в макросе альтернативы ей нет! «абега€ вперед, скажу Ц не будь ее в AutoCAD или работай она как-то иначе, этой статьи бы не было.

»звлечение данных в AutoCAD

ƒальше тренироватьс€ в написании макроса проще и нагл€дней будет на каком-то простом примере. ¬ качестве Ђкошкиї дл€ тренировки создадим извлечение данных о координатах XYZ объекта Ђ“очкаї. ¬ качестве пути дл€ файлов извлечений будем использовать папку облачного хранилища: D:\Google ƒиск\AutoCAD\»звлечени€.

Ќаписание макросов в основном сводитс€ к ручному выполнению действий (при работе с командами, имеющими диалоговые окна, Ц в режиме подавлени€ окна) и последующему воспроизведению этих действий в виде текста макроса.

Ќемного подготовки. —оздаем новый чертеж и хаотично накидываем в него несколько точек. ƒалее, так как мы вы€снили, что будем подмен€ть буферный чертеж при каждом извлечении, дл€ корректной последовательности действий забросим в папку Ђ»звлечени€ї любой dwg-файл и назовем его Ђ“очки.dwgї. ѕопрощайтесь с ним Ц он больше никогда не будет прежним...

»так, запоминаем последовательность действий:

  1. выбираем точки в чертеже;
  2. запускаем команду ѕЅЋќ  в Ђбезоконномї режиме (-ѕЅ);
  3. вставл€ем путь и название буферного чертежа (D:\Google ƒиск\AutoCAD\»звлечени€\“очки (расширение можно не указывать, в безоконном режиме это бескомпромиссно Ђdwgї);
  4. нажимаем Enter, запуска€ предлагаемую кнопку Ђ—охранитьї;
  5. на вопрос о замене существующего файла жмем Ђƒаї;
  6. вернувшись в AutoCAD, соглашаемс€ с предустановкой Ђзадать новый чертежї нажатием Enter;
  7. в качестве точки вставки указываем 0,0 Ц чтобы объекты встали в те же координаты.
¬се, буферный чертеж создан. Ќо есть маленька€ загвоздка Ц в ЂбезоконномЂ режиме команда ѕЅЋќ  не спрашивает, нужно или нет оставить объекты в текущем чертеже, она безжалостно удал€ет объекты из текущего чертежа, а если говорить точнее Ц отрабатывает по принципу команды Ђ¬ырезатьї с последующей вставкой в указанный чертеж.

Ќо горевать об утрате не стоит, сочетание Ctrl + Z, она же команда Ђќтменитьї или просто псевдоним Ђќї, вернет объекты на их историческую родину.

ѕрежде чем записать все соде€нное в макрос, нужно вспомнить синтаксис €зыка макрокоманд, согласно которому обратный слэш Ђ\ї, используемый при разделении директорий в Windows, на €зыке макрокоманд означает Ђввод координаты пользователемї, поэтому при указании пути к файлу его следует помен€ть на пр€мой слэш Ђ/ї, иначе макрос остановитс€. “акже путь и название файла следует заключить в кавычки, на случай, если в пути к файлу есть пробелы, чтобы эти пробелы не воспринимались как нажатие клавиши Ђпробелї. «а нажатие клавиши Enter отвечает Ђ;ї, а за нажатие кнопки Ђƒаї в окне сохранени€ файла Ц буква Ђƒї.

ѕолучаем следующий кусок макроса:

ѕЅ "D:/Google ƒиск/AutoCAD/»звлечени€/“очки";д;0,0;о

5.3 «апуск извлечени€ данных
≈ще немного подготовки. „тобы завершить макрос на извлечение данных, это извлечение нужно создать:

открываем буферный чертеж > запускаем мастер извлечени€ > сохран€ем dxe-файл р€дом с буферным чертежом с тем же названием > настраиваем нужную конфигурацию извлечени€, использу€ в качестве объектов все объекты буферного чертежа.

–езультат извлечени€ в виде Excel-файла складируем в кучу с Ђ“очки.dwgї и Ђ“очки.dxeї. ƒостаточно удобно, когда все эти три файла имеют одно название, отображающее тип извлекаемых объектов (в принципе, можно вообще использовать единственный буферный чертеж дл€ всех извлечений, функциональность от этого не пострадает). «акрываем буферный чертеж, он нам больше не понадобитс€, пока не придет врем€ перенастроить извлечение или переписать пути.

—нова запоминаем последовательность действий:

  1. запускаем извлечение данных в режиме подавлени€ окна мастера (-данныеизвл);
  2. в ответ на запрос командной строки указываем путь и название только что созданного извлечени€ данных (D:\Google ƒиск\AutoCAD\»звлечени€\“очки.dxe) и жмем Enter;
  3. в следующем запросе нажатием Enter соглашаемс€ на перезапись xls-файла.
» вот она, заветна€ строка:
»звлечение данных в AutoCAD

‘инальный кусок макроса будет выгл€деть так:

-данныеизвл D:/Google ƒиск/AutoCAD/»звлечени€/“очки.dxe;;

(¬ отличие от -ѕЅ путь в кавычки можно не заключать, так как ввод осуществл€етс€ в командную строку, а не в окно, а вот расширение Ђdxeї указать стоит, иначе файл не определитс€ как извлечение и макрос не пройдет. Ћогику поймать сложно, все эти тонкости определ€ютс€ опытным путем методом проб и ошибок макроса)

ќбратите внимание, что Ђбезоконныйї режим извлечени€ данных не дает возможности перенастроить какие-либо параметры извлечени€ данных. ќн просто берет указанный пользователем dxe-файл и делает извлечение данных из файла чертежа, прописанного в нем, согласно заданным в нем же параметрам. ѕолучаетс€, что при использовании команды Ђ-данныеизвлї операции по извлечению данных происход€т в закрытом, логичнее сказать Ђне открытомї чертеже, что само по себе достаточно непривычно. “ем не менее дл€ данной задачи это как раз то, что нам и нужно.

»так, в итоговом варианте, например с выбором подобных объектов, макрос будет выгл€деть так:

^C^CSELECTSIMILAR \; ѕЅ "D:/Google ƒиск/AutoCAD/»звлечени€/“очки";д;0,0;о -данныеизвл D:/Google ƒиск/AutoCAD/»звлечени€/“очки.dxe;;

“еперь, когда макрос написан, дл€ удобства использовани€ его нужно повесить на какую-нибудь кнопочку.

»з доступных в AutoCAD способов создани€ кнопок дл€ пользовательских макросов Ц лента, панель быстрого доступа и палитры Ц предпочтение € отдаю, конечно же, палитрам:

во-первых Ц простота создани€ кнопки, удобный доступ к большому их числу;
во-вторых Ц возможность назначить красивые, качественные нагл€дные иконки;
в-третьих Ц у палитр еще одно неочевидное, недокументированное преимуществоЕ

√лава 6. ѕодводные камни автоматического извлечени€

≈сть у макроса извлечени€ данных одна ахиллесова п€та Ц €вно прописанный путь к dwg, dxe и xls-файлам.   сожалению, так случаетс€, что путь к папке с файлами извлечений по каким-то причинам может измен€тьс€. “акже при настройке автоматического извлечени€ на стороннем компьютере иногда нет возможности использовать тот же путь, который используетс€ на текущей машине. ¬ этом случае простым копированием файлов извлечений, плюс экспорт/импорт палитр извлечений Ц не обойтись.
»звлечение данных в AutoCAD

» вот тогда наступает самый болезненный момент Ц корректировка пути к файлам. ћен€ть пути нужно в двух местах Ц в тексте макросов и в файле dxe.

¬ первом случае нам на помощь приходит то самое Ђнеочевидное преимуществої. ƒело в том, что файл палитр .xtp, содержащий всю информацию об элементах палитр, €вл€етс€ обычным текстовым файлом, в котором текстом прописываетс€ вс€ информаци€ о кнопках, расположенных на этой палитре, в том числе и текст макроса. ƒумаю, вы уже догадались, к чему € клоню. ѕереписываем расширение на txt, открываем файл блокнотом, находим и копируем старый путь, жмем Ctrl + H (поиск и замена) и замен€ем старый путь на новый. ¬озвращаем файлу расширение, данное при рождении, и все Ц при импорте подправленной палитры кнопки в ней будут содержать корректный путь в макросах!

— dxe-файлами такой фокус не пройдет. ќткрыть их блокнотом, конечно, можно, но редактировать Ц нет.  ак мы помним, что в *.dxe записано пером Ц не вырубишь ни топором, ни блокнотом и вообще ничем иным не поправишь. » выход тут только один Ц вручную перезаписывать каждый dxe, последовательно открыва€ каждый буферный dwg-файл и выбрав чекбокс Ђ–едактировать существующее извлечение данныхї, пробежатьс€ по всем окнам, в предпоследнем указав новое расположение xls-таблицы результата извлечени€.

√лава 7. ќрганизаци€ файловой системы под извлечени€

Ќе стоит относитьс€ легкомысленно к выбору места хранени€ файлов буферных чертежей, файлов извлечений и таблиц результатов.

¬о-первых, это позволит избежать ненужных проблем, возникающих, например, после изменени€ пути к файлам. ѕри малейшем изменении пути макрос просто не найдет нужный файл, и Ђфокусї не удастс€. —колько возни по решению этой проблемы придетс€ сделать, чтобы все заработало, Ц € описал выше. ѕоверьте моему опыту, не самое интересное зан€тие.

¬о-вторых, при грамотной организации файловой системы пользоватьс€ настроенными извлечени€ми данных можно будет с нескольких компьютеров или вам, или целой группе пользователей. ¬ качестве общедоступной папки можно использовать сетевые папки на рабочем сервере, либо, если есть необходимость работать с домашнего компьютера, Ц можно разместить файлы в папке десктопных приложений облачных сервисов (главное, чтобы путь к ним был одинаков на всех машинах). ќпределитьс€, где будет размещена папка с файлами извлечений, желательно еще до создани€ первого извлечени€, иначе всю работу по его созданию придетс€ делать дважды.

√лава 8. ќткрытие файла извлеченных данных из AutoCAD (Ђмикромакросї на VBA)

»так, данные извлекаютс€ в один клик, но после извлечени€ таблицы с данными автоматом не открываютс€, и добиратьс€ до них сквозь дебри директорий приходитс€ вручную. ¬ Windows есть несколько способов ускорить этот процесс: €рлыки на рабочем столе, библиотеки в окне проводника, закрепление папок на панели задач.

ј ведь душа-то просит, чтобы Ђв один кликї, да пр€мо из AutoCAD, и с той же палитры, да чтобы на каждую таблицу сво€ кнопочка! Ёх, интересно, можно чтобы вот так?

Ќельз€ Ц на €зыке макрокоманд, а вот на VBA вполне себе можно (обладатели AutoCAD LT грустно вздохнули).

«апуск VBA-макроса кнопкой на палитре осуществл€етс€ командой Ђ-vbarunї + его название. —ам макрос настолько примитивен, что отредактировать под себ€ этот код... сможет даже кот!
(указать путь к папке извлечений и название таблицы)

»звлечение данных в AutoCAD

 стати, файл ЂProject.dvbї, в котором по умолчанию хран€тс€ записанные макросы, также можно положить в сетевую папку р€дом с извлечени€ми, и все вновь записанные макросы (и их изменени€) будут по€вл€тьс€ на всех компьютерах, к которым подключен этот файл.

–азумеетс€, никто никогда у мен€ с секундомером за спиной не сто€л, поэтому следующий вывод очень субъективен, но, на мой взгл€д, автоматизаци€ извлечени€ данных вкупе с кнопкой открыти€ файла результата, с учетом не только самого процесса работы мастера, но и времени на поиски нужных файлов, присваивание новых имен и прочие процессы, сокращает врем€, необходимое дл€ получени€ одного и того же результата, в 20-30 раз. ¬рем€, затрачиваемое на настройку автоматизированного извлечени€ (которую, по-хорошему, нужно сделать всего один раз), окупитс€ после 15-20-го извлечени€. ѕомимо этого, перед пользователем часто встает выбор: сделать трудоемкое, но исключающее ошибки извлечение данных или получить тот же результат вручную, пусть и с веро€тностью где-то допустить ошибку. »спользование автоматизации уверенно заваливает чашу весов в сторону извлечений, как эконом€ врем€, так и повыша€ качество выполн€емой работы.

√лава 9.  ак не запутатьс€ и не ошибитьс€ в макросах

”держивать в голове долгое врем€ все тонкости написани€ макросов дл€ извлечени€ данных и открыти€ файлов достаточно сложно; не ошибитьс€ в их написании также весьма не просто. —итуацию ухудшает мо€ природна€ невнимательность, с которой эта мисси€ вообще не выполнима. Ќаписать даже известный макрос редкий раз получаетс€, не очеп€тавшись. ƒабы облегчить свои страдани€, написание макросов извлечений € делегировал все тому же Excel, в специальной таблице которого формулами и нехитрыми макросами формируетс€ текст макрокоманд согласно заданным услови€м и параметрам. ƒа-да, € пишу макросы, которые пишут макросы!

¬ ту же таблицу € прописал алгоритм создани€ нового извлечени€. ¬се, что нужно, Ц указать путь и название извлечени€ (общего названи€ дл€ dwg, dxe и xls). “ут же есть кнопка, создающа€ пустые файлы, которые нужно перезаписать при создании извлечени€, чтобы обезопасить себ€ от опечаток в названи€х файлов. ƒаже если годы спуст€ мне вдруг понадобитс€ создать автоматическое извлечение данных и € не буду помнить ни слова из этой статьи, все, что мне понадобитс€, Ц это таблица с макросами макросов.

— таким подспорьем создание автоматического извлечени€ занимает всего пару минут, а веро€тность сделать ошибку в коде макроса стремитс€ к нулю. ’отите себе такую табличку Ц найдите мен€ в VK, € с удовольствием с вами поделюсь (равно как и иконками с плоскогубцами).

»звлечение данных в AutoCAD

√лава 10. ѕримеры практического применени€ автоматического извлечени€ данных

Ћюба€ сама€ неверо€тна€ автоматизаци€ бессмысленна и бесполезна без практического ее применени€. ƒабы оправдать потраченное на прочтение этой статьи врем€, приведу некоторые примеры того, как автоматизаци€ извлечений данных экономит мое врем€ и упрощает работу в профессиональной де€тельности.

»звлечение данных можно условно разделить на три типа использовани€:

а) извлечение данных как готовый результат
—амый простой случай, когда извлекаемых данных достаточно дл€ решени€ задачи.

»з реальных производственных задач Ц самым простым и нагл€дным, наверное, будет недавний случай. «а день до установки снегозадерживающего забора поступает указание заказчика перенести его в посто€нную полосу отвода.

ќ . —троим полилинию в указанных границах, параметризацией выравниваем длины сегментов кратно шагу стоек, взрываем полилинию и одним кликом запускаем извлечение данных об отрезках, в частности о координатах их начала и конца. ƒес€ть минут работы, и у геодезиста на объекте есть текстовый файл с координатами, которые он загружает в тахеометр и делает разбивку. –абота не останавливаетс€ ни на минуту.

»звлечение данных в AutoCAD

б) использование извлеченных данных в качестве исходных данных дл€ расчетов
¬ этом случае создаетс€ специальное извлечение, заточенное под конкретную задачу. –езультаты извлечени€ подхватываютс€ другой таблицей, и на базе полученных данных происход€т дальнейшие расчеты.

«десь €, наоборот, приведу технически самый сложный пример.

ƒл€ разработки томов ќƒƒ (организации дорожного движени€) нами была разработана таблица дл€ автоматизации подсчета дорожных знаков, стоек и фундаментов к ним.

»з чертежа ќƒƒ извлекались данные о блоках знаков и стоек, данные о названи€х блоков, сло€х (дл€ делени€ по подобъектам дороги), атрибутах (наличии фундамента, пикетажном положении, типоразмере и т.д).

ƒалее в специально разработанной таблице происходила обработка полученных данных Ц знаки упор€дочивались по подобъектам, пикетажному положению. Ќа основании данных о номере знака и его типоразмере, количестве знаков на стойке рассчитывалс€ тип и количество стоек, а также тип фундамента. ƒалее все результаты расчетов сводились в таблицы определенной формы Ц Ђ¬едомость знаковї, Ђ¬едомость стоекї, Ђ¬едомость фундаментовї. ¬се расчеты производились при помощи формул (без использовани€ макросов), и при необходимости внесени€ изменений, при вы€влении ошибок, достаточно было лишь обновить извлечение данных, что делалось нажатием одной кнопки.

—оглашусь, что это дублирование работы многих —јѕ–, но тем не менее, когда приход€т замечани€, ответ Ђмне программа выдалаї не имеет ни малейшего значени€. ¬се же, когда на каждом этапе вычислений можно произвести проверку и внести корректировки (например отойти от требований нормативов в сторону увеличени€ надежности или актуализации нормативных данных), спектр возможностей гораздо шире.

»звлечение данных в AutoCAD

в) использование извлечений в качестве исходных данных дл€ написани€ скриптов, лиспов и т. д.
ƒумаю, € не сильно ошибусь, если скажу, что использование сценариев в производственной де€тельности помогло сэкономить несколько мес€цев рабочего времени дл€ мен€ и, как следствие, несколько сотен тыс€ч рублей дл€ моего работодател€. Ќо сценарии Ц бессмысленные таблицы с формулами, без исходных данных, которыми в подавл€ющем большинстве случаев €вл€ютс€ извлекаемые из чертежей данные.

¬ качестве примера можно привести любые из моих сценариев:

  • »звлекаем из чертежа координаты точек с тахеометра > сценарием вставл€ем в эти координаты нужные нам блоки. Ќапример, определив в этих точках проектные данные, вычисл€ем отклонени€ и вставл€ем специальные блоки c отметками и отклонени€ми. »сполнительна€ схема (в дорожном строительстве порой на сотни и тыс€чи точек съемки) готова!
  • ¬ставить в нужные координаты текст, многострочный текст, выноски с нужной информацией Ц только дайте координаты, сценарий сам все сделает.
  • »звлекаем названи€ слоев/блоков/листов Ц обрабатываем нужным нам образом эти данные Ц запускаем сценарий на переименование. ƒве минуты, и чертеж адаптирован под наши задачи.
  • »звлекаем данные о блоках рамки листов в модели Ц координатах вставки, масштабе, угле поворота Ц в один клик создаем сценарий на разбивку листов и наслаждаемс€ тем, как в AutoCAD сценарий выполн€ет разбивку модели на листы с максимально возможной скоростью.
» еще масса сценариев, питающихс€ извлеченными данными из чертежей, описывать которые не хватит никакой статьи.
»звлечение данных в AutoCAD

Ёпилог

Ќесмотр€ на то что автоматическое извлечение данных, на первый взгл€д, €вл€етс€ только лишь подспорьем дл€ написани€ сценариев, € считаю, что это далеко не так.

ѕодсчитать весьма проблематично, но, по моим субъективным ощущени€м, извлечением данных по кнопке с палитры € пользуюсь как самосто€тельным инструментом даже чаще, чем скриптами, что оп€ть же не отмен€ет того факта, что сочетание двух этих штатных средств автоматизации приводит к эффекту синергии, демонстриру€ удивительные дл€ неискушенных пользователей AutoCAD результаты. Ќо если с автоматизацией извлечени€ данных мы в этой статье, надеюсь, хоть немного, да разобрались, то что такое сценарии (они же скрипты), как они работают, а главное, как они пишутс€ в полуавтоматическом режиме, Ц нам еще только предстоить разбиратьс€ в следующих стать€х.


„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

-->

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: ќднажды на isicad.ru: искусство легких касаний темы искусственного интеллекта в —јѕ–
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2019 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.