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

26 сент€бр€ 2013

ƒоклад Ђјвтоматизаци€ создани€ геометрии в AutoCAD/DXF с помощью Pythonї на Autodesk University 2013

isicad изучает программу Autodesk University –осси€ 2013

јлександр Ѕауск

ќт главного редактора isicad.ru: ќбозрева€ программу начинающегос€ на дн€х Autodesk University –осси€ 2013, € не мог пройти мимо доклада ј.Ѕауска — одного из самых заметных авторов портала isicad.ru. ’ронологически расположенный список isicad-публикаций јлександра демонстрирует эволюцию от аналитической критики с позиций концептуального моделировани€ на территории рыночного BIM к сосредоточенности на самой интересующей автора концепции и от нее к жанру новой статьи «а покажу-ка практически, как работает концепци€, не от€гощенна€ сегодн€шней конъюнктурой рынка»:
¬идите, последний из приведенных заголовков отражает прагматичное методологическое соображение: сегодн€шн€€ стади€ понимани€ и развити€ BIM на реальном рынке может плохо сочетатьс€ с достаточно строгим пониманием концепции моделировани€, однако, это вовсе не говорит о некоем конфликте и уж точно не должно тормозить опережающие или параллельные эксперименты по релевантному моделированию. ¬прочем, примем во внимание самые последние слова публикуемой сегодн€ статьи ј.Ѕауска о том, что, в случае успешного развити€ описанных в статье работ, «...планируетс€ как минимум частична€ поддержка технологии BIM и стандарта IFC».

ќбращаю внимание некоторых читателей на то, что дл€ оценки любого текста (в частности, дл€ правильной интерпретации жанра и, значит, дл€ выбора правильного угла зрени€ при чтении) полезно иметь некоторое представление о личности автора, об его образовании, основной работе и т.д. ¬ данном случае, рекомендую посмотреть интервью «јлександр Ѕауск: Ќе будем ломать стуль€, говор€ о BIM».

јлександр Ѕауск Ќекоторые читатели IsiCAD наверн€ка знают, что € большой поклонник пользовательской автоматизации в —јѕ–. Ќе было такого обсуждени€ в —јѕ– и моделировании, в которое € не пыталс€ бы ввернуть эту тему. ¬от и сейчас на Autodesk University € решил не трогать тему информационного моделировани€ и модель-ориентированной инженерии, а поработать над инструментом, реализующим некоторые принципы эффективного моделировани€. ¬ докладе «јвтоматизаци€ создани€ геометрии в AutoCAD/DXF с помощью Python» € расскажу вам историю одной технологии. Ёто технологи€ обработки инженерной информации дл€ расчетов, в рамках которой € попыталс€ применить принципы модель-ориентированной инженерии. Ќадеюсь, что представленные здесь первые результаты этого проекта будут интересны читателю IsiCAD.

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

¬ведение на примере прикладной задачи

ќднажды мне понадобилось вз€тьс€ за построение одной расчетной модели. ѕосто€нные читатели наверн€ка уже догадались, что это была за модель: железобетонна€ оболочка разнообразной кривизны с предварительно напр€гаемыми канатами внутри.
AU-Bausk-1

–ис. 1. ѕроблема моделировани€: получение геометрии модели

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

1) главным требованием к реализации модели очень часто €вл€етс€ использование конкретного ѕќ из области CAE (инженерного анализа);
2) информационное наполнение модели (исходные данные) можно грубо разделить на геометрические данные и другую инженерную информацию; причем инженерна€ информаци€ ассоциирована (прив€зана) к геометрии.

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

AU-Bausk-2

–ис. 2. ћодель (красным показана система канатов внутри бетона) и цилиндрическа€ развертка еЄ стенки

≈сть два способа получить требуемую геометрию: через CAD-инструменты выбранного нами ѕќ или через использование других программ.   «другим программам» относ€тс€ пакеты BIM (информационного моделировани€ зданий) общего назначени€, различные специализированные пакеты инженерного анализа и графические программы. ≈стественно, необходима поддержка качественного экспорта полученных модельных данных, чтобы иметь возможность использовать их в нашем избранном пакете CAE.

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

» вот здесь начинаетс€ интересное. Ќа рисунке 2 не зр€ изображена развертка модели: хорошо видно, что при смене точки зрени€ на модель (а точнее, при смене пространства моделировани€) построени€ перестают быть трудоЄмкими на грани невозможного. ѕри такой точке зрени€ значительна€ часть геометрии может быть построена в виде плоских разверток:

AU-Bausk-3

–ис. 3. ѕлоские развертки конструкций

–азвертки, изображенные на рисунке, выполнены в обычном AutoCAD при помощи стандартных примитивов. — ними очень легко работать даже неопытному оператору, но они построены в параметрическом пространстве и €вл€ютс€ абстракцией от насто€щей конструкции, своего рода «моделью внутри модели». Ёто означает, что обычным экспортом-импортом примитивов (это умеет делать большинство расчетных программ) тут не обойтись. Ќам нужен инструмент дл€ их обработки и превращени€ в насто€щую модель: модельный процессор.

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

AU-Bausk-4

–ис. 4. —уществующие процессоры геометрии

Ќам эти решени€ не подход€т уже по одной простой причине (помимо целого р€да других): вместе с геометрией нам нужно обрабатывать и массу неграфической информации (см. рис. 5).
AU-Bausk-5

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

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

ѕланирование процессора инженерных данных

»так, необходимо создать собственный продукт под эту задачу. ¬ качестве рабочего €зыка € выбрал Python по р€ду причин (рис. 6). ѕодробно на них останавливатьс€ не стоит (в докладе будут приведены доводы и «за», и «против» решени€ использовать этот €зык), а правильность этого решени€ можно будет оценить по итоговой производительности работы.
AU-Bausk-6

–ис. 6. ѕреимущества Python как €зыка дл€ пользовательского программировани€

Ќа рис. 7 показана итогова€ схема работы проектируемого процессора расчетной модели.
AU-Bausk-7

–ис. 7. –абочий процесс с учетом инженерных данных

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

—оздание предметного €зыка моделировани€

»так, осталось решить самую важную проблему: в какой форме следует представить инженерные данные о модели?

—уществуют разные варианты формализации инженерных данных (например, можно строить объектные модели в рамках технологии BIM, можно использовать возможности CAD по обогащению примитивов метаданными). ”ниверсальный ответ, на мой взгл€д, основан на том же принципе, по которому CAD был выбран дл€ подготовки графических данных. ≈сли геометрические данные мы представл€ем в виде графики, то негеометрические данные мы должны представить в виде текста. ј именно, следует использовать такое пон€тие, как DSL (Domain-Specific Language), предметно-ориентированный €зык. DSL — это ограниченный в возможност€х €зык программировани€ или моделировани€, спроектированный специально под конкретную предметную область и потенциально используемый непрограммистами. (ѕодробнее о предметных €зыках можно почитать на ¬икипедии.)

Ќа рис. 8 перечислены основные преимущества использовани€ DSL. »х можно обобщить так: поскольку люба€ инженерна€ модель — лингвистическа€ (см. статью «¬ведение в модельную парадигму»), то дл€ еЄ формализации желателен €зык. »менно таким €зыком формализации модели и должна стать реализаци€ DSL дл€ нашего процессора.

AU-Bausk-8

–ис. 8. јргументы в пользу использовани€ DSL

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

–ис. 9. Ћогика модельного процессора, управл€емого DSL

Ќа рис. 10 показан пример такого предметного €зыка. ќн имеет блочную структуру, где каждый фрагмент («фильтр») добавл€ет новые примитивы в структуру данных дл€ будущей расчетной модели.
AU-Bausk-10

–ис. 10. ƒетали реализации DSL

Ќекоторые результаты разработки модельного процессора

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

–ис. 11. ќбработка модельных абстракций

ј благодар€ широчайшим возможност€м внедрени€ сторонних библиотек в нашем процессоре можно использовать библиотеки gmsh и tetgen в качестве триангул€тора и сеточного процессора. Ќа докладе будет продемонстрировано, как п€ть строк DSL-сценари€ превращают AutoCAD в полноценный сеточный процессор дл€ CAE.
AU-Bausk-12

–ис. 12. –еализаци€ сеточного процессора на примере стилизованного логотипа Python

ƒалее, сборка модели из разных источников (рис. 13) учитывает правила совпадени€ узлов, дл€ которых в DSL-сценарии можно, например, задать погрешности. Ќа рисунке показана сборка купола показанной в начале модели и использование сеточного процессора дл€ моделировани€ узлов сопр€жени€.
AU-Bausk-13

–ис. 13. —ли€ние данных из разных источников (фильтров) дл€ получени€ общей модели

Ќаконец, продемонстрируем выполнение одной из целей проекта — это св€зывание инженерных данных с геометрией без необходимости заниматьс€ программированием.
AU-Bausk-14

–ис. 14. ѕроцессор позвол€ет учитывать подробную инженерную информацию

„тобы продемонстрировать процедурную мощь полученного процессора, достаточно сказать, что он уже сейчас позвол€ет моделировать такие сложные феномены, как проскальзывание каната произвольной конфигурации вдоль его траектории (рис. 15). “аким образом, научить коллегу правильной реализации некоторого инженерного феномена можно, попросту передав ему фрагмент DSL-сценари€. ¬озможности совершенствовани€ этого пути инженерной коллаборации мне кажутс€ впечатл€ющими.
AU-Bausk-15

–ис. 15. ќбработка сложных правил и отношений

¬ыводы и оценка принесенной пользы

¬ыводы из проекта (рис. 16) можно будет обсудить на самом докладе.
AU-Bausk-16

–ис. 16. ¬ыводы

„итател€ же могут заинтересовать некоторые цифры, касающиес€ производительности работы и целесообразности такого нестандартного решени€ проблем управлени€ инженерной информацией, как использование низкоуровневого CAD и не вполне предназначенного дл€ работы с этим CAD €зыка программировани€:
  • реализаци€ показанных в докладе функций зан€ла около 1 человеко-мес€ца;
  • врем€ освоени€ не умеющими программировать интернами разработанного процессора и предметного €зыка составило 2-3 дн€;
  • когда глубоко в процессе разработки понадобилось добавить совершенно не запланированную и затрагивающую большую часть внутренней логики функцию интерактивной работы (то есть исполнение процессора пр€мо из графической среды AutoCAD), еЄ проектирование зан€ло не больше недели, а ожидаема€ реализаци€ займет ещЄ неделю.
ƒальнейшее развитие проекта предусматривает усовершенствование уже упом€нутого интерактивного режима и реализацию автоматического создани€ модельных сценариев. ≈сли это будет осуществимо, то планируетс€ как минимум частична€ поддержка технологии BIM и стандарта IFC.


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


¬акансии:

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

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.