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

27 окт€бр€ 2019

BACK to BASIC: „етыре сотни профилей по плоским топопланам на чистом AutoCAD

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

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

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

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

√лава 1. Ђѕостановка задачи Ц половина результатаї

—авилов поперечник

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

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

—авилов поперечник

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

√овор€ €зыком современной молодежи Ц хороший челлендж. Ќу что ж, вызов прин€т!

√лава 2. Ђ¬злетит Ц не взлетитї

Ђ¬злетит Ц не взлетит?ї Ц локальный мем Ђ—уровых технарейї*. —уть его Ц оценить, €вл€ютс€ ли жизнеспособными кака€-либо принципиальна€ схема, механизм или иде€.

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

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

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

Ќа чашах весов расположились два принципиально разных подхода к решению задачи Ц BIM и графоаналитика (кульман+калькул€тор).

¬ качестве BIM-инструмента на первой чаше весов расположилась —јѕ– дл€ проектировани€ автомобильных дорог Topomatic Roburо, к чему на тот момент имелс€ доступ и с чем у мен€ был опыт работы), на другой Ц уже полюбивша€с€ св€зка AutoCAD + Excel.

—авилов поперечник

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

Ќо теперь, трезво посмотрев на техническое задание и исходные данные, начинаем накидывать противовесы в чашу графоаналитики:

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

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

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

» вот уже преимущества использовани€ —јѕ– при ближайшем рассмотрении нивелируютс€, и выбор становитс€ не столь очевидным...

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

√лава 3. Ђ¬ойна план покажетї

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

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

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

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

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

3. ¬ новом чертеже в определенном пор€дке предварительно размещаютс€ блоки рамок с основной надписью и таблицы профил€.

4. ћакросом кнопки на палитре запускаетс€ сценарий, который пошагово:

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

6. «аполнение основных надписей экспортом/импортом атрибутов.

—хема сформирована, отработана, отлаженаЕ Ќо это только направление, впереди еще долгий трудоемкий путь к намеченной цели.

Ќу а теперь самое интересное Ц тонкие технические подробности того, как этот путь можно сократить и максимально облегчить.

√лава 4. —пецпалитры

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

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

—авилов поперечник

1. ѕерва€ кнопка на палитре создает необходимые дл€ работы слои и настраивает их Ц назначает соответствующий цвет и отключает отображение при печати, а также настраивает отображение объекта Ђточкаї.

^C^C-—Ћќ…;—;"_ѕостр.сущ.";„;Ќ;;÷ ѕ 255,255,255;;^C^C-—Ћќ…;—;"_ѕостр.ѕѕ и »ƒЌ";„;Ќ;;÷;3;;^C^C-—Ћќ…;—;"_ѕостр.—»ѕ";„;Ќ;;÷;—;;;PDMODE 35 PDSIZE 0.7

—оздавать слои можно разными способами, но все же один клик Ц это один клик!

—авилов поперечник

2. —ледующа€ кнопка выполн€ет как несколько команд, так и несколько задач.

^C^COSMODE 0 ѕ—  \\1,1 ѕЋјЌ “;ѕоказать р -40,-20 40,20;¬–√;

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

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

—авилов поперечник

*^C^C-—Ћќ…;”;"_ѕостроени€ сущ.";;-цвет ѕо—лою;OSMODE 0;“очка;

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

—авилов поперечник

*^C^C-—Ћќ…;”;"_ѕостроени€ сущ.";;OSMODE 9;-цвет ѕо—лою;отрезок;

ћакрос построени€ отрезков отличаетс€ лишь тем, что включает прив€зку Ђ”зелї и запускает команду отрезок.

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

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

—авилов поперечник

4.  огда Ђпсевдоструктурныеї линии готовы, можно начинать строить поперечник. ƒл€ этого в качестве ориентира строитс€ объект Ђѕр€ма€ї в плоскости нужного сечени€ (»ƒЌ, ѕѕ или —»ѕ), затем запускаетс€ макрос следующей кнопки:

*^C^C-—Ћќ…;”;"_ѕостроени€ ѕѕ и »ƒЌ";;OSMODE 512;-цвет ѕо—лою;“очка;

Ётот макрос мен€ет слой на специально созданный, так как с этим слоем придетс€ работать отдельно. «атем устанавливает единственную прив€зку ЂЅлижн€€ї, так как только она позволит накалывать точки на пространственные отрезки в произвольном месте. ¬от вам кстати и:

[Ћайфхак є1] ≈ще со времен уроков географии в школе ненавидел интерполировать отметки по правилам и всегда принимал отметку Ђглазометрическимї способом. Ѕлаго сейчас мне на помощь пришел AutoCAD, позвол€ющий снимать отметки с высочайшей точностью в два клика. –азмещение точки с прив€зкой Ђближайша€ї на прив€занном к точкам съемки отрезке позвол€ет забыть правила интерпол€ции пропорцией как страшный сон (можно, конечно, использовать 3D-полилинию, сути это не мен€ет).

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

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

—авилов поперечник

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

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

—амое очевидное и простое решение Ц задействовать свойство точки Ђ÷ветї. ѕросмотрев и проанализировав топопланы, собираем полный перечень изображаемых на профиле объектов в таблицу цветовой индикации.

—авилов поперечник

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

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

ѕри помощи кнопок получившейс€ палитры можно построить объекты, необходимые дл€ построени€ сечений по »ƒЌ и ѕѕ, так как эти сечени€ параллельны друг другу и раздел€ть их по отдельным сло€м нет смысла. ј вот сечение по —»ѕ (самонесущий изолированный провод) будет пересекать вышеуказанные сечени€, что может замедлить выбор точек под извлечение. ѕоэтому дл€ сечений —»ѕ нужен второй набор точно таких же кнопок, макрос которых отличаетс€ от первого лишь названием сло€. „тобы не тратить врем€ на корректировку макроса каждой кнопки, нам на помощь приходит:

[Ћайфхак є2] Ёкспортированный файл палитры €вл€етс€ текстовым файлом с расширением *.xtp, содержащим служебную информацию о пут€х к иконкам, а самое главное Ц ћакросы команд. “аким образом, переписав расширение файла на Ђtxtї, можно открыть файл палитры Ѕлокнотом и вносить коррективы в текст макросов палитры через Ђѕоиск и заменуї. Ќапример, если у вас изменилс€ путь к файлу шаблона с блоками, то реанимировать разом всю палитру блоков можно, заменив текст пути к шаблону поиском и заменой в тексте файла палитры.

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

√лава 5. »звлечение

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

Ќа секунду вспомним первую кнопку, котора€ мен€ла систему координат и поворачивала вид чертежа.

^C^COSMODE 0 ѕ—  \\1,1 ѕЋјЌ “;ѕоказать р -40,-20 40,20;¬–√;

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

—авилов поперечник

 огда все необходимые точки Ђнаколотыї, при достаточном zoom-e устанавливаем начало ѕ—  в место пересечени€ оси дороги с осью поперечника, направл€€ ось X по ней. “ем самым координаты X точек обращаютс€ в рассто€ние от оси на поперечнике, в качестве высотной отметки выступит координата Z, а в качестве информации о типе характерной точки Ц ее цвет.

√лава 6. ЂHexaScriptї

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

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

—покойствие, друзь€, только спокойствие!

я и сам далеко не сразу пришел даже к идее такого скрипта, тем более реализации.  ак € уже писал ранее Ц сценарий трижды переписывалс€, усложн€лс€ и оптимизировалс€. ƒабы не грузить читател€ поисками своего √раал€, € и покажу уже конечный вариант решени€ задачи.

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

»так, приступаем:

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

—авилов поперечник

—авилов поперечник

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

Script є1 Ц построение профил€ рельефа. „то может быть проще? «апускаем сценарием команду ЂѕќЋ»Ћ»Ќ»яї. ¬ качестве координаты X принимаем значени€ из извлечений, в качестве координаты Y берем координату Y шапки таблицы и прибавл€ем к ней разницу извлеченной координаты Z точек на плане и Ђусловной отметки шапкиї (ср. значение отметок минус 5 см). Ћини€ профил€ готова.

Script є2 Ц заполнение данных строки высотных отметок в таблице профил€. «адача еще проще Ц команда Ђ“≈ —“ї с координатой положени€ X из извлечени€ и фиксированной высотой по Y. ¬ качестве значений дл€ текста выступ€т значени€ высоты точек из извлечени€. ”гол поворота текста на 90 градусов прописываетс€ в тексте формулы сценари€ как ответ на стандартный запрос.

Script є3 Ц нанесение вертикальных отрезков от профил€ до таблицы доверим одноименной команде Ђќ“–≈«ќ ї. X и Y начала отрезков позаимствуем из первого сценари€, Y конца отрезка также €вл€етс€ измер€емой константой. ѕриписка Ђ÷¬≈“ 251 ¬≈—Ћ»Ќ 0.05 отрезокї к первой строке сценари€ придаст эстетики создаваемому чертежу без каких-либо дополнительных затрат времени.

Script є4 Ц рассто€ние между характерными точками профил€ тоже доверим команде Ђ“≈ —“ї. ќтличие лишь в том, что координату положени€ текста нужно вычислить как среднее положение между двум€ точками, сложенное с рассто€нием до ближней к оси точки. ¬ качестве значени€ дл€ текста выступит эта сама€ разница.

Script є5 Ц упрощенна€ верси€ третьего скрипта с фиксированными Y и форматированием отрезка под стиль таблицы.

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

—авилов поперечник

Script є6 Ц наполнение чертежа блоками пересечений коммуникаций и “—ќƒƒ. ¬ этом сценарии наполненность генерируемой графики напр€мую коррелирует с уровнем знаний Excel. «накома€ функци€ ¬ѕ– подт€нет названи€ блоков. ”словное форматирование подсветит €чейки, которые необходимо заполнить вручную Ц указать рассто€ние от сечени€ до объекта дл€ атрибута пикетажа блоков проекции, а также €чейки с номерами светофоров. “ам, где можно обойтись без участи€ пользовател€, функции ≈—Ћ» и —÷≈ѕ»“№ наполн€т столбцы со значени€ми атрибутов, функци€ Ќј»ЅќЋ№Ў»… поможет собрать готовый текст сценари€ в отдельный столбец без пустых €чеек.

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

—авилов поперечник

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

—авилов поперечник

√лава 7. Come back to AutoCAD

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

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

—авилов поперечник

—авилов поперечник

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

«апускаем созданный сценарий кнопкой на палитре быстрого доступа и просто не верим своим глазам Ц в Ђголомї AutoCAD, без использовани€ каких-либо модулей, надстроек и плагинов строитс€ поперечный профиль!

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

^C^C—Ћќ… ” "ѕ–ќ≈ “Ќџ… ѕ–ќ‘»Ћ№" ^C^CћЋ»Ќ»я — ѕ„

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

ѕрофиль готов. “еперь все сначала Ц накалывание точек, извлечение, заполнение данных и генераци€ скрипта, построение профил€ и доведение вручную. » так профиль за профилем, переход за переходомЕ

ѕримерна€ прикидка по времени показала следующие результаты:

  • ќбработка чертежа плана (подготовка точек на 4 сечени€) Ц 13-20 мин.
  • ќформление одного профил€ (создание сценари€ и доведение чертежа) Ц 7-11 мин.
–азумеетс€, данные результаты получены при финальной настройке всей Ђэкосистемыї. “ем не менее, на создание только цифровой модели местности по подготовленному чертежу плана у мен€ ушло пор€дка 35-40 мин, при этом генерируемый по ней чертеж профил€ требовал едва ли не полной переработки. Ѕыть может, в процессе работы с помощью —јѕ– и можно было бы что-то автоматизировать и настроить, но очень и очень сомневаюсь, что удалось бы хоть немного приблизитьс€ к вышеуказанным показател€м.

√лава 8. јтрибутика

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

„тобы вносить какие-либо данные в основные надписи, прежде нужно эти данные надлежащим образом подготовить. ќп€ть-таки, придетс€ поработать ручками Ц пооткрывать все используемые в работе DWG-файлы и заполнить столбец с названи€ми улиц, а также пикетажное положение и тип каждого из сечений. —огласен, дело небыстрое, нудное и завис€щее от внимательности (вот поэтому € его с удовольствием и делегировал своему помощнику, в то врем€ как сам писал сценарий). ‘ормулами собираем нужные формулировки под каждый атрибут блока рамки листа. » вот уже в дело вступает старый дедовский экспорт/импорт атрибутов из комплекта Express Tools.

—авилов поперечник

[Ћайфхак є3]. ѕервым делом при установке AutoCAD об€зательно нужно ставить галочку инстал€ции Express Tools, которую разработчики припр€тали под выпадающий список. Ќо если вдруг вы забыли ее поставить Ц просто заново запускаем установку и ищем заветную галочку, полностью AutoCAD переустанавливать нет необходимости.

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

“ут поможет еще один вид автоматизации работы Ц подключаемые модули. ¬ частности, совершенно бесплатно распростран€емый в магазине приложений Autodesk модуль ЂIncrementї от французского разработчика Gilles Chanteau (∆иль Ўанто).

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

—авилов поперечник

“еперь, открыв экспортированный текстовый файл с атрибутами блоков программой Excel, можно с легкостью упор€дочить строки по только что пронумерованному атрибуту и не переживать за корректность заполнени€ атрибутов. ќстаетс€ лишь скопировать из таблицы с данными о профил€х в открытую таблицу и сохранить текстовый документ. —ообщение командной строки Ђ156 Block inserts modifiedї при€тно порадует уставшие глаза и согреет душу.

√лава 9. ЂЋистопадї

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

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

«аключение

—авилов поперечник

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

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

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

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

Ѕезусловно, нужно отдавать себе отчет, что никака€ синерги€ от всех способов автоматизации никогда даже близко не приблизитс€ к тому, что может дать —јѕ– в случа€х, когда поставленна€ задача совпадает с назначением —јѕ–. Ќе стоит пытатьс€ переписать с нул€ функционал условного ЂCivil 3Dї на базе AutoCAD, этот велосипед уже давно изобретен и прекрасно эксплуатируетс€.

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

— огромным уважением,
автор YouTubeЦканала ЂAutoCAD imhoї јлександр —авилов


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


¬акансии:

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

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.