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

21 ма€ 2013

–оссийское 3D-€дро. „ј—“№ II: функции и инструменты

Ћеонид Ѕаранов, —ергей  озлов, ƒмитрий —Ємин, Ќиколай —нытников

Ћеонид Ѕаранов —ергей  озлов ƒмитрий —Ємин Ќиколай —нытников

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

јвторы публикации — представители комплексного коллектива архитекторов и разработчиков проекта RGK — вход€т в число ведущих отечественных специалистов в области инженерного программного обеспечени€; кандидаты технических и физико-математических наук.

III. ѕолный набор инструментов дл€ решени€ задач современного геометрического моделировани€

«—тандартна€» функциональность

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

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

¬ €дро входит целый набор классов и функций дл€ решени€ геометрических и математических задач.   их числу относ€тс€ операции векторной и матричной алгебры, функции расчЄта масс-инерционных характеристик моделей, построение полигональных аппроксимаций точной B-Rep модели, расчЄты точек и производных дл€ кривых и поверхностей, нормалей и кривизны, определение габаритов объектов, расчЄт минимальных и максимальных рассто€ний между объектами и другие.   базовым функци€м можно отнести также функции доступа к структуре модели — к вершинам, рЄбрам, гран€м, кривым, поверхност€м и т.д. Ёти функции позвол€ют реализовывать различные прикладные алгоритмы на основе «опроса» готовой геометрической модели, производить вычислени€ и оценки по сгенерированным или загруженным из файла данным. ¬се вычислени€ происход€т с управл€емой точностью. “о есть прикладной программист может указать в обращении к €дру точность вычислений требуемых параметров, и €дро будет «пробовать» выполнить вычислени€ с такой точностью. ≈сли это не может быть сделано, например, когда данные в €дре имеют худшую точность, чем требуема€, то возвращаетс€ реально достигнута€ точность.

Ќизкоуровневые и высокоуровневые операции

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

¬иды высокоуровневых генераторов в системах твердотельного моделировани€

ѕомимо классификации функций и операций €дра по признаку «низкий — высокий» имеет смысл привести несколько иной критерий классификации. ј именно, классификацию высокоуровневых генераторов по области применени€ в рамках твердотельных систем геометрического моделировани€. — этой точки зрени€ операции можно разделить на группы:
  • ќперации по генерации примитивов: параллелепипедов, сфер, цилиндров, торов, конусов
  • ќперации генерации на основе кинематических алгоритмов (выталкивание, вращени€, движение проволочного или листового тела по плоской или пространственной траектории, пружины и спирали с возможностью задани€ линейных и нелинейных законов изменени€ радиуса и шага)
  • ќперации генерации тел по сечени€м (сечени€ могут быть как одно параметрическим, так и двухпараметрическими семействами с заданием дифференциальных условий в сечени€х)
  • ќперации глобальной модификации тел:
    • Ѕулевы операции (сложение, вычитание, пересечение)
    • ƒеформации (изгиб, кручение, скульптурна€ деформаци€, перекос, деформаци€ по кривой и по поверхности)
    • ћасштабирование как однородное, так и не однородное с заданием разных коэффициентов масштаба по ос€м заданной системы координат
  • ќперации локальной модификации тел:
    • —глаживание рЄбер и граней с посто€нным радиусом с непрерывностью G1 и G2
    • —глаживание рЄбер и граней с переменным радиусом с непрерывностью G1 и G2
    • —глаживание рЄбер и граней с посто€нной шириной с непрерывностью G1 и G2
    • ƒисковое переменное сглаживание рЄбер и граней с сечением в форме кривой второго пор€дка
    • ѕостроение посто€нной и переменной фаски дл€ рЄбер
    • —глаживание трЄх последовательностей граней
    • ѕостроение уклона граней на указанные углы с заданным направлением
    • ѕостроение оболочек твЄрдых тел с разными величинами смещени€ дл€ разных граней
    • ѕостроение эквидистантных тел с разными величинами смещени€ дл€ разных граней
    • ѕеремещение граней с поддержкой опций повторного сглаживани€ и создани€ граней массива «по образцу»
    • »зменение подложенной геометрии граней
    • «амена св€зного набора граней на другой набор или листовое тело
    • ”даление грани с зат€гиванием области
    • —шивка листовых тел, в том числе и с образованием твЄрдого тела
    • –асширение поверхностей с обеспечением G1 и G2 гладкости при расширении
    • «аполнение n-угольной области с сохранением G1 и G2 непрерывности с граничными гран€ми
ќбеспечение функций пр€мого моделировани€
¬ силу того, что последние годы на рынке —јѕ– по€вилась €вна€ тенденци€ к обеспечению в прикладных системах функций «пр€мого моделировани€», при разработке нового €дра конечно нельз€ было игнорировать это требование. “ем более, что такой подход к модификации модели действительно весьма продуктивен при отсутствии иной информации о конструкторском замысле. — этой целью был разработан механизм, который позвол€ет группировать несколько локальных операций так, что результатом модификации твЄрдого тела €вл€етс€ тело, полученное воздействием такого комбинированного преобразовани€. “аким образом, результирующее тело формируетс€ лишь после отработки всех модифицирующих алгоритмов. “акой подход позвол€ет проводить сложные модификации, которые в противном случае приводили бы к созданию некорректного тела на одном из шагов при пооперационном режиме модификации. Ќаличие подобного инструмента позвол€ет в прикладной программе определ€ть все требуемые модификации модели из каких-либо своих соображений и за одно действие примен€ть эти модификации к телу. ¬ частности, так может быть органично реализована функциональность «пр€мого» моделировани€, основанна€ на решении геометрических ограничений и формировании предполагаемого «конструкторского замысла».
ѕроцедуры построени€ проекций модели на плоскость
ѕроцедуры построени€ проекций модели на плоскость с классификаций линий по условию видимости и процедуре получени€ полигональной аппроксимации точного B-Rep описани€ модели также €вл€ютс€ важными компонентами €дра. ‘ормально обе эти процедуры — не более чем ещЄ два класса €дра, однако на деле за каждой из них стоит задача большой алгоритмической и программной сложности, которые содержат в себе целый р€д отдельных вычислительных подзадач. ѕерва€ процедура обеспечивает вычисление видимости рЄбер модели (как отдельного тела, так и сборки) при проекции на заданную плоскость. ѕомимо модельных рЄбер в процессе проецировани€ рассчитываютс€ очерковые рЄбра, которые принципиально важны дл€ более полной передачи информации о геометрии объекта например при автоматическом получении чертежа. “ака€ классификаци€ требуетс€ как дл€ построени€ чертЄжных видов, так и дл€ решени€ различных задач анализа видимости элементов модели. ѕри работе процедуры классификации происходит задействование всех аппаратных возможностей вычислительной платформы — как CPU, так и GPU устройств. —в€зано это с тем, что алгоритмы, используемые при еЄ решении, хорошо распараллеливаютс€ на всех типах вычислителей, причЄм разные фазы задачи решаютс€ одновременно на всех доступных устройствах. ѕохожим образом обстоит дело и дл€ задачи построени€ полигональной аппроксимации. ѕримен€емые в €дре алгоритмы еЄ решени€ допускают распараллеливание как на уровне расчЄта сетки отдельных тел, так и на уровне расчЄта сетки отдельных граней и рЄбер, что приводит к существенному ускорению на много€дерных компьютерах. –еализаци€ алгоритмов €дра не зависит от конкретной вычислительной платформы и, при отсутствии того или иного типа вычислител€, его функцию берЄт на себ€ другой.
ћинимизаци€ типов геометрии
»значально разработчики не стремились к абсолютной минимизации математического аппарата описание кривых и поверхностей, задействованных при моделировании. ѕриоритет был отдан адекватности примен€емой математики задаче, дл€ решени€ которой она используетс€. ¬ то же врем€ введение того или иного нового типа геометрии в представлени€ €дра делалось с особой осторожностью, что бы не получить различного рода эффекты типа «комбинаторного взрыва» по числу специальных алгоритмов, которые требуетс€ реализовать дл€ обеспечени€ корректного и эффективного взаимодействи€ различных математических представлений. «а счЄт использовани€ такой идеологии удалось существенно повысить качество решени€ многих сложных задач геометрического моделировани€, при этом остава€сь в рамках достаточно компактного и гибкого программного кода, который поддерживает базовые протоколы работы €дра (вычисление точек и производных, построение пересечений, поиск рассто€ний и т.д.). ќдним из примеров такого подхода €вл€етс€ использование специальных типов поверхностей дл€ описани€ поверхностей сглаживани€ с условием G2 гладкости на границе. ƒл€ решени€ этой задачи используетс€ специально разработанна€ функционально заданна€ поверхность. Ётот подход вполне соответствует современным тенденци€м в разработке математики дл€ моделировани€. “акую же тенденцию можно, например, проследить и в описании T-сплайнов да и, в некоторой степени, поверхностей √регори.
–еализаци€ преимуществ за счЄт распараллеливани€ алгоритмов
ѕри разработке алгоритмов особое внимание всегда удел€лось возможности их распараллеливани€ и получени€ преимуществ за счЄт такой организации вычислительного процесса. ¬ результате удалось получить масштабируемое решение, которое готово дл€ поддержки не только существующих вычислительных платформ, но и платформ обозримого будущего без серьЄзных изменений своей модели вычислений. ¬-третьих, при выборе особенностей реализации различных функций моделировани€, был учтЄн опыт разработки современных прикладных решений в области —јѕ–. Ёто позволило сконцентрировать внимание на наиболее актуальных на сегодн€шний момент вопросах создани€ и модификации геометрии изделий широкого профил€. ¬ четвЄртых, при разработке отдельно удел€лось внимание эффективности и стабильности программного кода и структур данных с использованием современных технологий разработки сложного структурированного программного обеспечени€. “ака€ схема позволила сократить до минимума накладные расходы, св€занные со структурой компьютерного представлени€ модели и уделить максимальное внимание вопросам алгоритмической оптимизации и структуре вычислительного процесса. —трого говор€, потенциал заложенных в идеологию €дра принципов далеко не исчерпан и €вно может дать в перспективе дополнительные позитивные результаты в повышении качества решени€ задач моделировани€ и стабильности программного кода €дра.

–асчЄт геометрии и топологии пересечений

ѕостроение линии пересечени€ кривых и поверхностей €вл€етс€ базовой и, одновременно, одной из самых сложных функций €дра геометрического моделировани€. ќна интенсивно используетс€ как на внешнем (API) уровне разработчиками —јѕ–, так и внутреннем уровне в качестве строительного блока дл€ многих других операций €дра. ѕоэтому этой функции предъ€вл€ютс€ серьЄзные требовани€: поддержка широкого набора опций и режимов, высокое быстродействие и практически абсолютный уровень успеха.

–азработанный численный метод комбинирует алгоритмы глобального поиска дл€ определени€ ветвей (отдельных точек, кривых, и областей «совпадени€» поверхностей и кривых), метод Ќьютона дл€ локального поиска, трассировку кривых с помощью численного решени€ обыкновенных дифференциальных уравнений, поддержку специальных режимов определени€ сингул€рностей, аппроксимацию кривых и формирование сплайн-представлени€ в параметрическом и трЄхмерном пространствах. ƒл€ ускорени€ быстродействи€ был реализован полный набор специальных случаев аналитического пересечени€ канонических объектов, поддержаны специальные оптимизированные алгоритмы работы с NURBS, разработан р€д оригинальных модификаций методов глобального анализа и трассировки кривой пересечени€, основанных на дифференциальных свойствах кривых и поверхностей. ћетод прошЄл тестирование на миллионах пересечений различных типов и продемонстрировал высокую надЄжность и производительность.

—лева: ѕересечение канонических поверхностей (тора и двухполостного конуса) с ограничени€ми в их параметрических пространствах. —права: пересечение волновой NURBS-поверхности с тором. –езультатом €вл€етс€ большой набор кривых пересечени€.

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

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

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

ѕример построени€ топологии пересечени€ дл€ двух тел. —лева: тела. —права: «отпечаток» топологии пересечени€.

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

ѕрименение булевой операции вычитани€ цилиндрического тела из «винтового» тела.

–езультат применений последовательности булевых операций дл€ генерации модели зубчатого колеса. —лева: »сходна€ заготовка и «инструментальное» тело. ¬ центре: результат операции вычитани€. —права: итоговое тело.

«ѕродвинутые» функции дл€ выполнени€ сложных операций моделировани€

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

√енераци€ тел операцией «ѕо сечени€м» с использованием различных способов синхронизаций точек контуров

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

“ела, созданные генератором «ѕо траектории» с применением различных законов изменени€ профил€

“рубопровод, созданный генератором «ѕо траектории»

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

ѕрименение операции «—кульптурна€ деформаци€» к модели станины станка

 ак уже отмечалось, дл€ решени€ р€да задач при моделировании сглаживани€ и гладкого заполнени€ областей сложной формы в €дре используютс€ специальные функциональные поверхности. — их помощью удаЄтс€ точно представить решение задачи о сглаживании с непрерывной кривизной двух поверхностей с переменной формой сечени€. ѕричЄм переменными могут быть как радиус, так и тип сечени€. “акие же поверхности используютс€ и дл€ построени€ сглаживани€ трЄх поверхностей с переменным радиусом. —ледует отметить, что в рамках €дра разработаны алгоритмы сглаживани€, как по схеме «кат€щегос€ шара», так и по схеме дискового сглаживани€ с заданной или вычисл€емой осевой кривой. ƒл€ решени€ задачи гладкого заполнени€ n-угольной области так же были разработаны специальные типы поверхностей, которые позвол€ют точно решить задачу при произвольном числе границ с минимальными разумными требовани€ми к их гладкости. ¬ частности, требуетс€ только кусочна€ гладкость границ и, тем самым, допускаетс€ G1 разрыв на границе при стыковке участков. Ќаличие таких поверхностей позволило естественным образом решить задачи построени€ многосторонних «чемоданных» углов при сглаживании, формировани€ гладких переходов внутри области сглаживани€ и разработать функциональность по заполнению областей, как одной из задач поверхностного моделировани€. ƒл€ всех типов поверхностей и кривых, которые используютс€ в €дре, разработаны конвертеры в NURBS. Ёто позвол€ет при необходимости переходить к работе со сплайн-формой там, где это требуетс€, в частности при трансл€ции данных €дра во внешние обменные форматы типа STEP. “очностью такого преобразовани€ можно управл€ть на уровне приложени€.

»спользование специальных поверхностей дл€ решени€ задач сглаживани€ и зат€гивани€ дырок

IV. ѕоддержка решени€ стандартизованных классов задач —јѕ–

”правление сборочными модел€ми

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

¬ RGK кажда€ сборка представлена набором деталей (тела или подсборки) с дополнительной трансформацией, задающей положение детали в сборки.

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

»нформаци€ о сборках может сохран€тьс€ в обменном файле. ¬ сборках также можно хранить дополнительную прикладную информацию при помощи атрибутов.

–ешение задач сопр€жени€ элементов и моделировани€ кинематики механизмов

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

ƒл€ описани€ сопр€жений в €дре используютс€ три основных пон€ти€:

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

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

¬ RGK описание сопр€жений не св€зано с решателем, поэтому вместо штатного вполне возможно использование какого-либо другого решател€.

ѕеремещение звеньев механизмов

√енераци€ проекций

√енератор проекций используетс€ дл€ оформлени€ чертежей и эскизов по трЄхмерной модели. ѕроекционное изображение состоит из набора двумерных сегментов, каждый из которых соответствует части ребра или очерковой линии грани. ¬ид проекции в первую очередь определ€етс€ множеством проецируемых элементов (сборки, тела, грани, рЄбра) и преобразованием проецировани€. ƒополнительные параметры позвол€ют контролировать процесс формировани€ проекционного изображени€:
  • ¬ыбирать тип алгоритма дл€ построени€ очерковой линии
  • ”станавливать режим удалени€ невидимых линий
  • ќтключать построение очерковых линий
  • ¬озвращать информацию о невидимых сегментах в режиме удалени€ невидимых линий
  • ”правл€ть построением сегментов дл€ рЄбер, по которым гладко стыкуютс€ грани
  • ”становить опцию построени€ сегментов дл€ внутренних рЄбер
  • ¬ключать поиск пересечений спроецированных рЄбер в режиме без удалени€ невидимых линий
  • ¬ключать параметры разрешени€ проекционной картинки дл€ отбраковки мелких деталей. ¬ режиме больших сборок така€ возможность позвол€ет существенно ускорить выполнение генератора проекций
  • ”правл€ть параметрами параллельного выполнени€ вычислений на всех этапах построени€ проекции
  • ”правл€ть использованием GPU-вычислителей, которое доступно дл€ некоторых алгоритмов при генерации проекций

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

3D модель станка и проекции с удалением невидимых линий, сгенерированные на еЄ основе

ќпределение вспомогательной информации о модели

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

ќбмен данными

¬ состав классов €дра входит готова€ функциональность, обеспечивающа€ обмен данными в стандартном на сегодн€шний день формате STEP (прикладные протоколы 203 и 214). ƒанна€ функциональность обеспечивает импорт/экспорт данных в наиболее востребованном на данный момент времени формате обмена между CAD/CAM/CAE системами. ѕри этом обеспечиваетс€ передача информации в обе стороны, как о модели конкретных тел, так и о структуре сборочных моделей.

ѕримеры моделей, импортированных в формате STEP из Creo (Pro/E), Autodesk Inventor, SolidWorks

√отовые инструменты дл€ реализации пользовательского интерфейса

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

ѕостроение триангул€ции удовлетвор€ет следующим услови€м:

  • ¬ысока€ скорость работы сеточного генератора. ѕоказатель скорости критичен дл€ интерактивного взаимодействи€ пользовател€ со средствами редактировани€ модели. ѕовышение эффективности алгоритма достигаетс€ распараллеливанием вычислений.
  • ”правление параметрами качества сетки: максимально допустимые линейные и угловые уклонени€; задание длин сторон треугольников. јдаптаци€ сетки к решаемым задачам позвол€ет достигнуть баланса скорости визуализации и нагл€дности представлени€ модели, что важно при работе с отдельной деталью или большой сборкой.
  • ѕредставление результатов работы триангул€тора в формате данных графических ускорителей. ѕоддерживаетс€ вывод результатов в GPU-пам€ть, что экономит врем€ на конвертацию и копирование данных из одной области пам€ти в другую.
»нструменты дл€ выбора и поиска объектов
¬ RGK реализованы инструменты множественного выбора элементов тел по набору лучей. ѕоиск может использоватьс€ в пользовательском интерфейсе в прикладных системах, дл€ определени€ видимости элементов, при построении реалистичных изображений, при определении столкновений в задачах динамики.

ѕроцесс выбора элементов управл€етс€ с помощью дополнительных параметров:

  • √лубина поиска по каждому типу топологических элементов
  • ѕропуск граней обратной стороны тела
  • «адание области поиска с помощью дальней и ближней плоскостей обрезки
  • «адание радиуса лучей, задающих параметры поиска
  • ¬ыбор способа поиска: точный или по полигональной модели. ¬ последнем случае дополнительно задаютс€ параметры качества сетки.
  • –аспараллеливание алгоритма поиска по отдельным лучам
  • ¬озможность исполнени€ частей алгоритма поиска на GPU-вычислител€х

V.  ак этим пользоватьс€?

„то получает пользователь

ѕользователем RGK €вл€етс€ не пользователь в традиционном понимании данного термина (конечный пользователь), а разработчик (архитектор, программист) прикладной системы. ¬ св€зи с этим, продукт имеет свою, специфическую, комплектацию. “ехнически €дро представл€ет собой библиотеку классов на €зыке программировани€ «C++» в виде подключаемого модул€ (DLL).  лассы €дра разработаны очень удобно и современно. Ќапример, дл€ работы с моделью реализованы эффективные итераторы, управление всеми свойствами реализовано в виде удобных функций. ¬се функции пользовательского уровн€ описаны в руководстве.

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

–уководство

–уководство пользовател€ поставл€етс€ в двух разных вариантах — в виде гипертекстового документа, который на данный момент уже €вл€етс€ стандартным, а также в виде «бумажного» документа в формате PDF.

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

–уководство пользовател€ (разработчика) в форматах PDF и CHM

Ќабор примеров

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

“естова€ оболочка «RGK Workshop»

 роме стандартного набора инструментов, в составе поставки €дра RGK разработчик получает полезную программу «RGK Workshop». Ёта программа €вл€етс€ демонстрационно-тестовым приложением с удобным пользовательским интерфейсом, позвол€ющим опробовать функциональность €дра без необходимости разработки полноценного приложени€. ќно обеспечивает следующие возможности:
  • „тение файлов, сохранЄнных в обменном формате RGK
  • ћногооконный режим работы, когда кажда€ из моделей просматриваетс€ в своЄм окне
  • √рафическую визуализацию моделей в рабочем окне с удобной навигацией — множеством опций визуализации, управлением положением камерой, набором стандартных видов и т.д.
  • —редства анализа структуры модели. ќкно «структура модели» отображает все топологические объекты с их взаимосв€з€ми, а также геометрические параметры выбранных элементов.
  • ¬ыполнение «тестов» — команд с пользовательским интерфейсом, использующих генераторы, имеющиес€ в €дре. Ќабор этих команд превращают данное приложение в «мини-CAD систему», обеспечивающую минимальный набор функций моделировани€.
  • ¬ыполнение проверки модели и вывод диагностики по еЄ результату.
  • ¬озможность разработки собственных команд и встраивани€ их в интерфейс приложени€. ƒанна€ функци€ очень полезна дл€ разработчиков, которые начали использовать функциональность €дра, и пока не имеют полноценной графической подсистемы с пользовательским интерфейсом. ѕроста€ процедура регистрации таких команд, по сути, делают приложение открытым средством разработки и тестировани€ конечной прикладной функциональности.
  • ¬озможность сохранени€ моделей в обменный файл
  • ¬озможность импорта и экспорта моделей в формате STEP.

ѕубликации

  1. ƒ. ”шаков. √еометрические €дра в мире и в –оссии
  2. ƒ. ”шаков. Ќа €дре
  3. Ћ≈ƒј— поможет ћ√“” «—“јЌ »Ќ» разработать отечественное 3D-€дро
  4. ”ральский федеральный университет им.Ѕ.Ќ.≈льцина (”р‘”) участвует в разработке отечественного геометрического 3D-€дра
  5. ¬олгоградский государственный технический университет — участник проекта по разработке отечественного геометрического €дра
  6.   разработке отечественного геометрического €дра подключились математики ћ√”
  7. —оздана перва€ верси€ российского €дра геометрического моделировани€


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


¬акансии:

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

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

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: „то и как рекламируете вы?

Ѕлог:  Ћ≈ƒј—: виндсерфинг, катамаран и другое

ѕроект ЂЌародное —јѕ–-интервьюї

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

isicad Top 10

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

   ‘орумы isicad:

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

ќ проекте

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

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

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

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


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

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