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

19 июн€ 2019

—крипты в AutoCAD. —амое недооцененное оружие

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

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

јлександр —авилов Ц инженер-проектировщик автомобильных дорог, автор YouTube-канала AutoCAD imho.


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

√лава 1. ѕочему мимо скриптов прошли пользователи AutoCAD?
√лава 2. ѕочему мимо скриптов прошли программисты?
√лава 3. Ђ” нас не было шансовЕї
√лава 4. Ђќн дал скриптам вторую жизнь...ї
√лава 5. Excel как среда программировани€
√лава 6. ¬озможности и ограничени€ использовани€ скриптов
√лава 7. ѕ€ть шагов от идеи до результата
√лава 8. ЂQuickStartї, или минимизаци€ действий дл€ запуска скриптов
√лава 9. Ђѕолный пакет скриптовї

√лава 1. ѕочему мимо скриптов прошли пользователи AutoCAD?

—оседство на ленте с такими кнопками, как Ђ«агрузить приложениеї, Ђ–едактор Visual Basic / Visual LISPї и Ђ«апустить макрос VBAї, определенно наталкивает р€дового пользовател€ AutoCAD на мысль, что и Ђ¬ыполнить сценарийї Ц это что-то из этой же области Ц программировани€, макросов и прочего Ђволшебстваї. ƒумаю, € не сильно ошибусь, если предположу, что р€довой пользователь рассуждает примерно так:

Ђѕрограммировать € не умею, изучать что-то новое мне некогда, на программистов вообще учатс€ годами, в общем, нам это чуждо, мы на это не пойдемї...

—крипты в AutoCAD

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

ƒаже если самый отважный пользователь и осмелитс€ нажать кнопку Ђ¬ыполнить сценарийї на ленте, не побо€вшись, что у него Ђвсе исчезнетї, Ђсобьютс€ настройкиї и произойдут прочие необратимые процессы, то перед ним лишь откроетс€ окно выбора файла с расширением *.scr.

Ђј где его вз€ть? ¬ какой папке они лежат? Ќаверное, нужно скачивать с бог весть каких забугорных сайтов? Ѕыть может, это уже устаревша€ команда? —корее всего, кака€-то очень специфическа€ функци€, нужна€ только тем, кто ей пользуетс€, а если € ее не знаю, то мне она и не нужна...ї

»менно так прошло мое первое знакомство со сценари€ми. я почти уверен, что подобное происходило с 97% пользователей, нажавших эту подозрительную кнопку на панели Ђѕриложени€ї.

¬ следующий раз, пару лет спуст€, € уже жал эту кнопку совершенно осознанно, понима€, дл€ чего она нужна, облада€ готовым .scr файлом. ѕри этом € даже не представл€л себе, какой широкий спектр возможностей дл€ мен€ откроет эта кнопка, какой колоссальный объем работы в будущем мне удастс€ выполнить благодар€ ей в считанные секунды.

√лава 2. ѕочему мимо скриптов прошли программисты?

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

  таким приложени€м € отношу простенькие приложени€ на LISP, свободно распростран€емые в сети, более сложные модули на .NET, также бесплатно скачиваемые приложени€ из магазина Autodesk.  роме того, это и специализированные профессиональные пакеты, значительно расшир€ющие базовый функционал программы и приобретаемые уже за вполне ос€заемые деньги. »з всего этого бесчисленного множества приложений, живущих в мировой паутине, вы не найдете ни одного скрипта! » на это есть р€д объективных причин.

¬о-первых, не существует как такового €зыка программировани€ дл€ написани€ сценари€. ’оть € однажды и использовал выражение Ђна €зыке команд AutoCADї, но в классическом понимании Ђ€зыкаї так говорить некорректно. Ёто просто совокупность команд AutoCAD, имеюща€ мало общего с €зыками программировани€, их синтаксисом и правилами написани€ кода.

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

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

Ќо то программисты, это отдельна€ категори€! — простыми же пользовател€ми ситуаци€ ина€Е

√лава 3. Ђ” нас не было шансовЕї

„итал ли € ƒэна Ёбботта? “аким вопросом мен€ поставил в тупик комментарий под одним из моих выпусков. ¬ ответ на мой вопрос Ђј, собственно, кто это, и почему € мог его читать?ї мне охарактеризовали его как автора ЂЅиблии дл€ автокадчиковї.

Ќу что ж, книги так книги...

—крипты в AutoCAD

ѕервым текстовым материалом по автоматизации работы в AutoCAD дл€ мен€ €вл€лс€ замечательный труд нашего соотечественника:

¬ладимир —вет, ЂAutoCAD. язык макрокоманд и создание кнопокї.

¬ыпущенна€ в далеком 2004 году книга и по сей день €вл€етс€ во многом актуальной и должна стать настольной дл€ каждого начинающего пользовател€ AutoCAD.

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

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

—крипты в AutoCAD

ѕробежавшись по заповед€м Ђбиблииї Ц ЂAutoCAD. —екреты, которые должен знать каждый пользовательї, € нашел близкую мне тему сценариев (scriptЦов) в AutoCAD. “ут материал уже куда более разнообразен, интересен и, веро€тно, полезен, но, ознакомившись с ним, € поймал себ€ на той же мысли, что и после знакомства с ранее озвученным источником:

Ђ»нтересно, веро€тно, полезно, но пока не все пон€тно, изучу позже, когда по€витс€ свободное врем€ї.

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

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

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

“аким образом, ни справка, ни признанные пользовател€ми AutoCAD труды авторов не оставили шансов скриптам стать попул€рными среди пользователей, раскрыть свой потенциал и зан€ть заслуженное место среди штатных средств автоматизации работы в AutoCAD.

√лава 4. Ђќн дал скриптам вторую жизнь...ї

“ак все же что позволило скриптам не превратитьс€ в рудимент и не стать п€тым колесом автоматизации работы в AutoCAD?

»де€, многократно расшир€юща€ возможности скриптов, проста, как все гениальное:

—крипты в AutoCAD

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

ƒумаю, каждый из вас уже догадалс€, что в очередной раз просто незаменимым инструментом дл€ обработки исходных данных €вл€етс€ программа Excel.

—крипты в AutoCAD

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

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

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

≈сли у вас в голове еще не сложилась расписанна€ выше логическа€ цепочка, смею предположить, что в ней пока отсутствует одно не самое очевидное звено, соедин€ющее два объекта совершенно разных типов: €чейку электронной таблицы Excel и текст любого текстового документа ASCII (будь то txt-файлы, scr и любые другие подобного типа). ѕреобразуетс€ одно в другое посредством до боли родного Ђкопипастаї.

ѕравила преобразовани€ значений €чеек в текст весьма просты:

  1. ѕри вставке в текстовый документ значени€ €чеек смежных столбцов скопированного диапазона раздел€ютс€ табул€ци€ми.
  2. —троки €чеек скопированного диапазона отдел€ютс€ новым абзацем.
—крипты в AutoCAD

“аким образом, вставкой скопированного из Excel диапазона в текстовый документ мы получаем обычный TSV документ (англ. tab separated values Ч значени€, разделенные горизонтальной табул€цией).

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

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

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

≈сли вы сисадминЦхакерЦпрограммист из голливудских фильмов, то вы без труда напишете любой код на любом €зыке в программе ЂЅлокнотї, и этот код будет безошибочно работать. ¬о всех остальных случа€х он пишетс€ в специальных программах, называемых средой программировани€, созданных дл€ удобного, быстрого написани€ кода с минимальным количеством ошибок. Ќапример, в AutoCAD интегрированы среды редактора Visual Basic for application (VBA) и Visual LISP. –езультатом написани€ макроса в этих редакторах €вл€етс€ текстовый документ, который гипотетически можно написать и в блокноте, но вот времени и сил это займет в разы больше.

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

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

ƒобавим сюда всю мощь встроенного в Excel функционала VBA и в довесок Ц возможность св€зывать значени€ €чеек с другими Excel-таблицами, например с файлами извлечени€ данных. » вот уже иде€ работать в AutoCAD посредством записанного в блокнот перечн€ команд не кажетс€ такой бредовой.

√лава 6. ¬озможности и ограничени€ использовани€ скриптов

ƒабы не перечисл€ть всЄ, что может или не может сценарий, давайте просто запомним такую простую истину:
—крипты в AutoCAD

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

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

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

√лава 7. ѕ€ть шагов от идеи до результата

≈сли концепци€ использовани€ сценариев €сна и есть конкретна€ трудоемка€ задача, которую нужно срочно решить, ну или просто хочетс€ получить новые ощущени€ при работе в AutoCAD, Ц дело за малым:
  1. ќткрываем Excel-документ, сохран€ем его с расширением *.xlsm (так сказать, Ђна выростї). —оздаем заголовки столбцов дл€ исходных данных, а в конце помещаем заголовок с заветным названием Ђ—ценарийї. ƒалее наполн€ем столбцы исходными данными одним из привычных способов:
    • копипастом из другого документа, если этот документ €вл€етс€ временным;
    • ссылками на другую Excel-таблицу, если ее название и расположение посто€нно, а содержимое измен€етс€ (например, это файл извлечени€ данных).
    ¬последствии между столбцами исходных данных и столбцом сценари€ могут по€витьс€ промежуточные столбцы, в которых будут выполн€тьс€ необходимые преобразовани€ (например замена точек на зап€тые или преобразование градусов в радианы и т. д.). —ценарии бывают достаточно сложными, и число вспомогательных столбцов может достигать дес€тка.
    —крипты в AutoCAD

  2. ‘ормируем сценарий. ќбычно этот процесс выгл€дит следующим образом: заходим в AutoCAD, начинаем пошагово выполн€ть команду, которую нам нужно выполнить многократно при помощи сценари€. ‘иксируем каждое свое действие на конверте от шаурмы*: полное наименование команды (псевдонимы не подойдут), каждое нажатие клавиш Space, Enter или Tab, подкоманды и ввод значений.

    *(использование листа бумаги не гарантирует работоспособность скрипта Ц прим. авт.)

  3. ƒалее при помощи команды Ђ—цепитьї или символа Ђ&ї собираем записанное на бумагу в единую формулу, объедин€ющую текст команды и €чейки с исходными данными. јвтозаполнением раст€гиваем получившуюс€ формулу на число строк, равное числу строк исходных данных. “ут можно немного усложнить формулу таким образом, чтобы она возвращала пустое значение, если напротив нее нет исходных данных, и раст€нуть на заведомо большее число строк (тут уже на что хватит вашей фантазии и знаний Excel).
    —крипты в AutoCAD

  4. —оздаем файл скрипта, дл€ этого открываем новый текстовый документ, копируем в него столбец с €чейками сценари€, сохран€ем его с произвольным названием и, самое главное, Ц прописываем расширение файла scr. «абега€ далеко вперед, скажу, что файл этот будет всего один, поэтому название и место его хранени€ желательно подобрать сразу с умом, гдеЦнибудь поближе к файлам извлечений Ц в соседней папке, например.
    —крипты в AutoCAD

  5. «апускаем сценарий, дл€ чего возвращаемс€ в AutoCAD, идем к той кнопке, с которой начиналась стать€, и уже с полным пониманием дела жмем ее. ”казав только что созданный scr-файл, вспотевшим от волнени€ пальцем жмем кнопку Ђќ ї иЕ
» тут нас ждут два равновозможных варианта развити€ событий:
  1. сценарий отрабатывает до конца, и вы радуетесь полученному результату;
  2. сценарий спотыкаетс€, и наступает неизбежный процесс, именуемый Ђотладкаї.
¬о втором случае клавиша ЂF2ї станет вашим лучшим другом, так как журнал выполн€емых команд нагл€дно покажет процесс выполнени€ сценари€ и, главное, тот момент, где он Ђсвернул не тудаї.
—крипты в AutoCAD

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

ѕредвосхища€ нападки со стороны LISPописцев, в сотый раз скажу Ц Ђƒа, AutoLISP (как и VBA, .NET, java script) гораздо более функциональны и могут то, что не могут сценарииї. ќднако есть одно большое Ђної!

≈ще в детстве € услышал шутку, в которой дол€ шутки очень мала, и звучит она так:

Ђ„ем сложнее задача Ц тем проще ее не решатьї.

¬ контексте автоматизации работы в AutoCAD ее смысл интерпретировать достаточно легко Ц какие бы возможности ни давал AutoLISP (и другие €зыки), если дл€ его изучени€ нужно врем€ и немалые усили€, то изучать его будут далеко не все!

—крипты в AutoCAD

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

√лава 8. ЂQuickStartї, или минимизаци€ действий дл€ запуска скриптов

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

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

—крипты в AutoCAD

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

«апускать сценарий выбором scr-файла через окно выбора, да еще и открываемого через активацию вкладки Ђ”правлениеї и поиском кнопки Ђ¬ыполнить сценарийї, Ц просто непозволительна€ роскошь. «апускать сценарий зат€гиванием scr-файла в окно AutoCAD также удовольствие сомнительноеЕ ¬ключаем логику и фантазию!

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

ѕодгл€дываем в командной строке, кака€ команда запускаетс€ при нажатии кнопки Ђ¬ыполнить сценарийї на ленте, через пробел присоедин€ем к ней путь к файлу скрипта, и всЄ Ц можно вешать готовый макрос команды на красивую кнопочку на панели быстрого доступа!

 огда вы несколько раз обожжетесь на том, что забыли выключить прив€зку перед запуском сценари€, вследствие чего близкорасположенные вершины создаваемых сценарием примитивов слились в страстном поцелуе, то макрос вышеозвученной кнопки обзаведетс€ предусмотрительной припиской Ђosmode 0ї перед командой ѕј ≈“, а в конце макроса значение этой переменной примет наиболее попул€рное дл€ вас сочетание прив€зок. ” вас получитс€ что-то вроде:

^C^Cosmode 0 ѕј ≈“ "D:/Google ƒиск/AutoCAD/—÷≈Ќј–»»/SCRIPT.scr";osmode 6527

“аким образом, всего в один заветный клик можно запускать свежевыжатый из Excel-шаблона scr-файл сценари€!

» вот вроде уже и сценарии запускаютс€ одной кнопкой, и открываютс€ Excel-ки этих сценариев с палитры, но все равно нет того желанного ощущени€, что работа полностью автоматизированаЕ

»дем на крайние меры: если нет вообще никакого пон€ти€, что такое VBA, Ц смотрим на YouTube несколько обучающих видео по данному вопросу. „ерез полчаса с Ђонлайн-дипломом программистаї гуглим вопрос ЂЁкспорт данных из Excel в txtї.  опируем готовый макрос в новый модуль файла сценари€ и вешаем его на красивую кнопочку (у мен€ это зелена€ иконка scr-файла). Ќемного поднастроив макрос, заставив его экспортировать данные в scr-файл с названием и расположением, прописанным в макросе на запуск сценари€, а также брать только те €чейки, в которых есть сценарий, Ц получаем вполне достойную автоматизацию работы в AutoCAD! “акже не будет лишним добавить макрос на очистку таблицы от старых исходных данных, что хоть и немного, но сэкономит ваше врем€.

—крипты в AutoCAD

√лава 9. Ђѕолный пакет скриптовї

 ак € уже писал ранее, скрипты могут быть универсальными или специализированными, созданными под конкретную задачу. ¬ период моей проектной де€тельности по одному из проектов мне довелось оформл€ть несколько сотен чертежей поперечных профилей, генерируемых —јѕ–. ¬ частности, доводить до требований √ќ—“ по оформлению и производить некоторые расчеты. ≈стественно, вручную такой объем просто невыполним. ѕосле некоторого периода работы над проектом мной было написано 4 специализированных сценари€, в определенной последовательности выполн€ющих р€д операций над поперечниками. » когда вдруг поступали замечани€ заказчика, корректировка нескольких сот чертежей не вызывала у мен€ ни ноты расстройства. Ќаоборот, € получал удовольствие от того, как играючи € решаю невыполнимую дл€ неопытного пользовател€ AutoCAD задачу.

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

  • »нъецирование атрибутов в блоки

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

    —крипты в AutoCAD

  • ¬ставка блоков

    ƒостаточно попул€рна€ задача: Ђ¬ставить блок в известные координатыї.

    Ёлементарный пример: нужно было достроить поверхность на топографическом плане, где не хватало изыскательской съемки. ѕару часов с отражателем в поле, дорога домой, экспорт данных Ц и вот он, заветный dxe-файл с точками из тахеометра в моих руках. Ћегким движением руки извлекаем данные о координатах точек в модели, вносим эти данные в файл сценари€, в качестве атрибута отметки используем координату Z. ∆мем волшебную кнопку, и вместо точек в модели красуютс€ блоки с отметками.

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

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

    —крипты в AutoCAD

    ѕо аналогии с блоками в модель можно вставл€ть и однострочный, и многострочный текст. ѕрименение этого сценари€ не так очевидно, но, поверьте, пользовалс€ € им неоднократно.
  • —оздание слоев

    —ценарий из серии ЂЋень Ц двигатель прогрессаї. ћне не очень нравитс€, как в AutoCAD работает окно Ђ—лоиї. я написал простенький сценарий с командой Ђ—лойї с возможностью добавлени€ префиксов/суффиксов в названии, указани€ цвета, толщины линий, Ђпечатаемостиї и т. д. „астенько перед началом работы в новом чертеже накидываю в таблицу нужные названи€ слоев с нужными настройками, пара кликов Ц и можно уже начинать непосредственно черчение, не отвлека€сь на настройки слоев.

    —крипты в AutoCAD

  • ѕостроение полилиний по координатам

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

    —крипты в AutoCAD

  • ѕереименование листов/блоков/слоев

    ≈сли в ваши опытные натруженные руки попал чужой чертеж с названи€ми именованных объектов, с которыми вы в корне не согласны, а переименовывать вручную каждый объект ну очень лень, Ц на помощь придет сценарий.  оманда ЂЌќ¬ќ≈»ћяї и св€зка Ђ–Ћ»—“ ѕї помогут быстро настроить все так, как вам удобно, Ц добавить или убрать префиксы, сократить длинные названи€ или пронумеровать в нужном пор€дке. ѕолучить список слоев и блоков можно без особых усилий при помощи извлечени€ данных. — названием листов в файле чуть сложней, но если, оп€ть же, применить смекалку, то можно распотрошить dsdЦфайл настройки публикации и вз€ть из него только названи€ листов. Ќо € думаю, дл€ получени€ каждого из этих списков в интернете уже годами пыл€тс€ соответствующие LISP-ы.

    —крипты в AutoCAD

  • ѕеренастройка устройства вывода на всех листах

    ¬ продолжение темы адаптации чужих чертежей: вам пришел чертеж, листы в котором настроены на отсутствующее у вас устройство (физический принтер). Ћистов уйма, перенастраивать вручную Ц не вариант. ¬нимательный пользователь заметит, что при запуске печати в Ђбезоконномї режиме один из запросов Ц Ђим€ устройства выводаї! ¬се, решить вопрос Ц дело техники: получаем список листов в файле, пишем команду "-печать", сцепл€ем им€ нужного листа с парой имитаций нажати€ Enter (\u+000a) и названием нужного устройства ввода. ƒелов-то...

    —крипты в AutoCAD

  • ѕечать листов в pdfЦфайлы с предустановленным названием

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

  • ”даление листов

    —лучаетс€ и така€ ситуаци€, когда вам нужна только информаци€ в модели, например, дл€ внешней ссылки, а пара сотен листов в DWG-файле, содержащих разного рода объекты, только служат нехилым балластом. ѕримитивный сценарий на базе св€зки Ђ–Ћ»—“ ”ї с легкостью решит эту проблему. ћожно поднастроить сценарий так, что можно будет указывать, какой лист нужно удал€ть, а какой Ц нет.

  • –азбивка на листы

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

    —крипты в AutoCAD

  • ѕостроение поперечных профилей дорог с отметками, коммуникаци€ми и проектными сооружени€ми

    —амый технически сложный сценарий был написан мной, на удивление, не дл€ работы, а в рамках Ђруки помощиї дружественной организации. —то€ла задача: построить пор€дка п€тисот поперечных профилей автомобильных дорог с указанием высотных отметок, пересекаемых коммуникаций и проектных сооружений в полном соответствии с √ќ—“. ¬роде ничего сложного, да только в качестве исходных данных были разрозненные куски планов. —троить проектную поверхность по ним было бессмысленно, так как таких кусков было более сотни, во многих из них высотные отметки лежали в плоскости XY. Ќи один известный мне —јѕ– не подходил дл€ этой задачи. ѕришлось использовать нестандартный подход, писать и дважды переписывать сложный, составленный из трех частей сценарий, кажда€ часть которого выполн€ла отдельные построени€.

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

    «аключение

    ¬ заключение хотелось бы привести слова »льи √луханюка, активиста Autodesk Community:

    Ђ—ценарии Ц альтернатива дл€ тех, кто боитс€ кодитьї.

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

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

ѕримечание
’оть бейте мен€, хоть режьте Ц никаким поисковиком не могу найти сообщение на форуме или комментарий автора книги по поводу Ђплагиатаї справки AutoCAD. ≈сли найдете Ц ткните носом.
—уть заключаетс€ в том, что автора упрекнули в схожести информации в его книге с тем, что содержитс€ в выпущенном в 2005 году компанией Autodesk материале под названием ЂAutoCAD 2006. –уководство по адаптации и управлениюї (в сети легко можно найти PDF печатной версии этого документа), вошедшем в состав справки в виде одноименного раздела, который и по сей день не особо-то и видоизменилс€.
Ќа что автор парировал тем, что его книга была издана в 2004 году, а материал Autodesk по€вилс€ в 2005. Ќа момент написани€ книги материала было катастрофически мало, лишь некоторые обрывки англо€зычных статей. јвтором был проделан огромный труд по сбору информации и ее систематизации. јвторы Ђадаптацииї значительно ее ужали, упростили его материал (с трехсот страниц примерно до сорока), включив в состав более общего списка тем.
“ак это или нет, разбиратьс€ сейчас, сравнивать то и другое нет никакого смысла и желани€. “ем не менее тот факт, что, по крайней мере, главы о сценари€х привод€т одинаковые по сути примеры использовани€ сценариев, и дает мне моральное право рассматривать два этих материала как единое целое в контексте вопроса скриптов.


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


¬акансии:

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

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

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

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

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.