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

19 ма€ 2013

–оссийское 3D-€дро. „ј—“№ I: архитектура и приложени€

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

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

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

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

√еометрическое €дро трЄхмерного моделировани€ — это программна€ компонента, предназначенна€ дл€ использовани€ в качестве базового инструментального средства при разработке программных систем, св€занных с точным компьютерным моделированием физических трЄхмерных объектов.  онечными продуктами, которые могут быть разработаны на основе такого решени€, €вл€ютс€ системы автоматизированного проектировани€ (CAD), подготовки производства (CAM), инженерного анализа (CAE) и многих других приложений инженерного программного обеспечени€. ¬о всех таких системах требуетс€ точный и высокопроизводительный инструмент дл€ работы с моделью — формировани€ данных, хранени€, восстановлени€, средства анализа, специализированные расчЄты и многое другое.

 ак показывает истори€ отрасли, создание промышленного €дра геометрического моделировани€ — одна из самых трудных задач в разработке инженерного программного обеспечени€. –ешение такой задачи требует сочетани€ высоких компетенций в математике, системной архитектуре, конструировании программ, проблематике —јѕ– и др.  ак показывают обзоры [1], [2], к насто€щему времени на мировом рынке известны лишь несколько поставщиков промышленных геометрических €дер, от которых коммерчески (и не только коммерчески) зависит огромна€ часть рынка —јѕ– и смежных продуктов.

¬ этой статье охарактеризовано геометрическое €дро RGK, созданное в рамках проекта, который выполн€етс€ по заказу ћинистерства промышленности и торговли –‘ дл€ построени€ одной из важных составл€ющих отечественной независимой высокотехнологичной базы. ѕроект выполн€етс€ под эгидой ћосковского государственного технологического университета «—“јЌ »Ќ» комплексным коллективом российских разработчиков с участием р€да ведущих российских команд и специалистов. ƒополнительные сведени€ об организации проекта и его участниках можно найти в публикаци€х [3-7]. ¬ насто€щее врем€ €дро RGK, разработка которого была начата в 2011 году, находитс€ в стадии интенсивной внутренней комплексной апробации продукта. ќдновременно заказчиком рассматриваютс€ и решаютс€ вопросы сопровождени€, внедрени€, лицензировани€, развити€ и построени€ приложений.


 ратко охарактеризуем структуру данной статьи.

¬се наиболее распространЄнные сегодн€ геометрические €дра были созданы 15-30 лет назад, и, хот€ на прот€жении всего этого периода они развивались и отлаживались, их программна€ архитектура и реализаци€ не могли быть в полной мере подкреплены посто€нно по€вл€ющимис€ новыми возможност€ми программных и аппаратных технологий. –азработка €дра RGK была начата в конце 2011 года, и мы постарались при реализации проекта использовать как основные известные современные эффективные решени€, так и р€д новых механизмов и возможностей: они представлены в первом разделе нашей статьи.

√еометрическое €дро по своей природе €вл€етс€ технологической компонентой, на основе интеграции с которой стро€тс€ многочисленные и разнообразные приложени€. ѕринципы и реализаци€ интеграции €дра RGK с приложени€ми описаны в разделе II.

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

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

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

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

I. —овременна€ архитектура, инновационные решени€

¬ €дре RGK использован хорошо зарекомендовавший себ€ подход к описанию модели методами «B-Rep» (Boundary Representation, граничное представление). ƒл€ описани€ параметров модели используютс€ геометрические объекты, а также описание топологии взаимосв€зи между геометрическими объектами (точки, кривые, поверхности). ¬ цел€х оптимизации скорости работы функций €дра, а также дл€ обеспечени€ точности хранени€ и расчЄтов модели используютс€ как общие типы кривых и поверхностей (плоскости, отрезки, кривые и поверхности второго пор€дка и т.д.), так и NURBS (кривые и поверхности). ƒл€ решени€ прикладных задач, возникающих при выполнении различных сложных операций, нар€ду с традиционными типами геометрических объектов, в €дре используютс€ специальные типы кривых и поверхностей (например, поверхности зат€гивани€ N-сторонних областей, поверхности сглаживани€ поверхностей в сложных случа€х и т.д.). “акие комбинированные решени€ во многих случа€х позвол€ют ускорить выполнение функций €дра, а также повысить их точность.

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

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

ћногопоточность

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

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

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

√енераци€ 300 000 разных простых объектов в однопоточном и многопоточном режимах.
—лева: запущен один поток, врем€ генерации 40.9 секунд.
—права: запущено 6 потоков, врем€ генерации 8.36 секунд.

»спользование вычислений на GPU

ќдним из ресурсов дл€ повышени€ производительности вычислений дл€ современных систем €вл€етс€ также использование устройств GPU (Graphics Processing Unit, графический процессор). √рафические процессоры современных персональных компьютеров, дают на некоторых классах задач значительное (иногда в дес€тки и даже сотни раз) ускорение вычислений. ¬ рамках проекта были проведены серьЄзные исследовани€ возможностей по использованию данного ресурса, которые принесли значительные плоды. „асть вычислений, в зависимости от наличи€ аппаратных ресурсов, может быть перенесена на устройство GPU (графическую плату или специальный GPU-вычислитель). ¬ таком случае, эти вычислени€ могут производитьс€ на пор€дки быстрее, чем на центральном процессоре. Ќапример, с использованием GPU могут вычисл€тьс€ масс-инерционные характеристики тел, рассчитыватьс€ линии проекций, производитьс€ поиск элементов модели по заданной точке (лучу), а также выполн€тьс€ р€д других вычислений. Ќастройка того, какое из доступных GPU-устройств использовать, или не использовать его вовсе, доступна при выполнении инициализации €дра.

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

ћногоплатформенность

ѕри разработке кода €дра были учтены потребности современного парка вычислительных систем, а также перспективы его развити€. — самого начала была поставлена задача разработки как 32-битной, так и 64-битной версии.  омпоненты, вход€щие в состав €дра должны использоватьс€ как на платформе Windows, так и на других платформах (например, Linux-системах). ¬с€ разработка и тестирование изначально велось с учЄтом данных требований.

ќкно тестового приложени€, запущенного под Linux (Ubuntu)

ћногодокументность

”читыва€ специфику функциональности различных прикладных систем, разработчики €дра сразу предусмотрели возможность управлени€ «контекстом» вычислений. ¬ модели €дра реализован набор инструментов, управл€ющий сессией €дра и обеспечивающий передачу информации о текущей сессии по всем функци€м, задействованным в вычислени€х. “аким образом, разработчики конечных CAD/CAM/CAE приложений, с использованием €дра RGK сразу имеют готовую инфраструктуру дл€ реализации работы с несколькими документами, имеющими свой набор трЄхмерных объектов (например, тел), разные параметры точности вычислений и других специфичных настроек.  ажда€ сесси€ хранит свой набор объектов изолированно от других, что позвол€ет удобно управл€ть составом объектов, удал€ть и создавать их. ћеханизм изолированных сессий €дра, совместно с возможност€ми многопоточной обработки позвол€ют создать современную и эффективную прикладную систему, в полной мере использующую вычислительные возможности современного компьютера.

ћногооконный интерфейс тестового приложени€.  аждое окно хранит данные в отдельной сессии.

ћноготельное и гибридное моделирование

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

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

√ибридна€ модель, содержаща€ твЄрдое, листовое и проволочное тела

ћоделирование с управл€емой точностью

¬се вычислени€ в €дре выполн€ютс€ с конечной точностью. ¬ зависимости от типа вычислений используютс€ разные значени€ точностей:
  • Ћинейна€ точность используетс€ дл€ сравнени€ размерных величин. ≈сли рассто€ние между точками или скал€рными величинами меньше этой точности, то такие величины в системе неразличимы.
  • ”глова€ точность используетс€ дл€ сравнени€ угловых величин. ¬ пределах этой точности углы неразличимы.
  • ќтносительна€ точность дл€ сравнени€ размерных величин на параметрических интервалах кривых и поверхностей. ѕо умолчанию величина относительной точности подобрана с учЄтом возможной потери точности при преобразовании линейных и двумерных параметров в трЄхмерное пространство.
  • “очность моделировани€ позвол€ет выбирать соотношение между двум€, как правило, взаимоисключающими цел€ми:
    • Ѕыстрое получение результатов, поскольку моделирование выполн€етс€ в реальном времени
    • ѕолучение более точных результатов, но затратных по времени и количеству данных.

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

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

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

  • ¬ геометрии модели возникают неопределЄнности и разрывы
  • ѕринимаютс€ во внимание геометрические ошибки в топологии при выполнении операций и расчЄтах
  • ¬озникают ограничени€ на применимость модельных операций.

ѕомимо хранени€ информации о точности моделировани€, толерантна€ геометри€ примен€етс€ при конвертировании данных из одного представлени€ в другое. Ќапример, использование промышленных форматов IGES, STEP дл€ обмена информацией в CAD/CAM/FEA-системах. Ёта задача имеет ключевое значение при внедрении на производстве средств автоматизации от различных фирм-производителей.

II. »нфраструктура дл€ разработки приложений

»дентификаци€ объектов модели

¬ процессе разработки прикладных систем, в частности, параметрических CAD, возникает задача устойчивого хранени€ ссылок на топологические элементы: вершины, рЄбра, грани.

¬от некоторые типовые примеры использовани€ ссылок на топологические элементы:

  • «адание параметров генераторов локальной модификации:
    • –Єбра в сглаживании
    • √рани в уклонах
    • √рани в операции замены граней
    • √рани в оболочках
  • «адание элементов, участвующих в сопр€жени€х
  • »спользование дл€ конструировани€ объектов моделировани€:
    • 3D элементы оформлени€, построенные на топологических элементах: размеры, надписи, шероховатости
    • –исование эскизов на выбранных гран€х
    • Ќазначение материалов на грани

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

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

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

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

–абота с системными и пользовательскими атрибутами

ƒл€ хранени€ дополнительной информации прикладного характера, св€занной с топологическими элементами модели, в €дре RGK предусмотрен механизм атрибутов:
  • Ќа каждый топологический элемент можно назначить неограниченное число атрибутов разных типов
  • ¬се атрибуты типизированы согласно хранимым данным:
    • ÷елочисленный атрибут
    • ћассив целых чисел
    • јтрибут дл€ чисел с плавающей точкой
    • ћассив чисел с плавающей точкой
    • —троковый атрибут
    • Ѕинарный атрибут дл€ хранени€ произвольных данных
    • —оставной атрибут, хран€щий множество других атрибутов. »спользуетс€ дл€ организации многоуровневых структурированных данных
  • — каждым атрибутом св€зан именованный описатель атрибута, который хранит его семантическую сущность. Ќапример, дл€ хранени€ информации о цвете тела, может использоватьс€ целочисленный атрибут, у которого описатель имеет им€ «Color»;
  • јтрибуты могут копироватьс€ вместе с телом
  • јтрибуты можно копировать с одного топологического элемента на другой
  • јтрибуты можно удал€ть
  • ¬се атрибуты и их описатели сохран€ютс€ в обменном файле
  • јтрибуты используютс€ не только приложени€ми, но и самим €дром дл€ хранени€ дополнительной информации о свойствах объектов модели.

ѕодробна€ диагностика ошибок

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

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

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

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

«ќткат» модели в случае ошибок

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

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

’ранение истории модификации модели позвол€ет выполн€ть откат изменений в модели. “иповые примеры использовани€ откатов модели в прикладных системах:

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

”ниверсальный платформенно-независимый формат хранени€ данных

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

ќбменный формат, по сути, €вл€етс€ XML-документом. “акой выбор структуры данных имеет р€д преимуществ:

  • ”ниверсальность по отношению к типам сохран€емых данных
  • ѕлатформенна€ независимость
  • –асшир€емость формата новыми типами данных
  • ќткрытость формата

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

ќбеспечение качества и тестова€ инфраструктура

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

»сход€ из вышесказанного, при разработке и проектировании архитектуры геометрического €дра были поставлены решены следующие задачи обеспечени€ качества:

  • —оздание удобной тестовой инфраструктуры дл€ разработчиков
  • ѕредоставление возможности непрерывного и естественного расширени€ тестовой базы реальными пользовательскими сценари€ми
  • ќбеспечение обратной совместимости при дальнейшей разработке, улучшени€х и модификаци€х геометрического €дра.
“естова€ инфраструктура
“естова€ инфраструктура разрабатывалась в контексте применени€ таких хорошо зарекомендовавших себ€ практик инженерии ѕќ, как итерационна€ разработка, непрерывна€ интеграци€ и разработка через тестирование. “естова€ база состоит из большого набора тестов в виде C++ кода, тестирующих отдельные внутренние и внешние (API) функции €дра, а также нескольких тыс€ч сценариев, сохранЄнных в собственном XML-формате €дра и сгенерированных из реальных промышленных моделей. “естирование включает в себ€ автоматические сборки проекта и регул€рное (не реже чем раз в сутки) регрессионное тестирование базы на всех поддерживаемых программных и аппаратных платформах и конфигураци€х (различные операционные системы, компил€торы, многопроцессорность, CPU/GPU и прочее). ѕо результатам прогона тестовой базы выполн€етс€ построение индикаторов дл€ контрол€ производительности и уровн€ успеха функций.  роме того, в автоматическом режиме осуществл€ютс€ статические проверки качества кода и динамический анализ корректности работы с пам€тью.
–асширение тестовой базы
–асширение тестовой базы необходимо проводить на посто€нной основе в тесном сотрудничестве с разработчиками систем, создаваемых на основе геометрического €дра — это €вл€етс€ одним из важнейших критериев высокого качества конечно-пользовательской —јѕ–. ¬ архитектуре €дра заложена возможность простой и естественной генерации сценариев в виде XML с одновременным протоколированием действий пользовател€ в виде отдельных функциональных операторов €дра. —ценарии в таком формате будут мгновенно проанализированы разработчиками €дра и в об€зательном пор€дке добавлены в тестовую базу дл€ дальнейшего регрессионного тестировани€.  роме того, возможность разбиени€ исходного пользовательского сценари€ на компактные функциональные операторы позвол€ет конечному пользователю или разработчику —јѕ– самому определ€ть, какую часть модели передавать дл€ анализа. Ёто €вл€етс€ очень важным преимуществом дл€ предпри€тий с высокой степенью секретности и конфиденциальности.
ќбеспечение обратной совместимости
ќбеспечение обратной совместимости при переходе к новым верси€м геометрического €дра €вл€етс€ одной их ключевых задач разработки. ѕри усовершенствовании математических алгоритмов веро€тно возникновение численных расхождений старой и новой версии алгоритма, запущенных на одних и тех же входных данных. ’от€ оба таких решени€ могут быть корректными, необходимо учитывать, что на момент модификации алгоритма и выпуска очередной версии €дра конечно-пользовательской цифровой модели уже может соответствовать некоторое реальное изделие, наход€щеес€ в производстве и/или эксплуатации. ¬ таких случа€х очень важно обеспечивать посто€нство численного решени€. ќтслеживание подобных проблем предусмотрено тестовым форматом XML и специальным способом сравнени€ результатов тестировани€.


ѕубликации

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


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


¬акансии:

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

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

ƒавид Ћевин
ƒавид Ћевин
ќт редактора:  то эффективнее сопровождает —јѕ–-софтвер в –оссии: отечественный вендор или зарубежный?

Ѕлог:  ¬ыдающиес€ специалисты компаний ј— ќЌ и “оп —истемы высоко оценили диссертацию сотрудника Ћ≈ƒј—

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

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

‘ранцузский PLM-гамбит — јнатолий ќсокин (1 июн€ 2016)
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.