isicad.ru :: портал САПР, PLM и ERP :: версия для печати

Статьи

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» Александр Савилов


Все права защищены. © 2004-2024 Группа компаний «ЛЕДАС»

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