Рекламодатель:
ООО «Нанософт разработка»

ИНН 7751031421 ОГРН 5167746333838

Рекламодатель:
ООО «АСКОН-Системы проектирования»

ИНН 7801619483 ОГРН 1137847501043

Рекламодатель:
АО «Цифровая мануфактура»

ИНН 5010058760 ОГРН 1086658008975

Рекламодатель: ЗАО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557

Рекламодатель:
ООО «С3Д Лабс»

ИНН 7715938849 ОГРН 1127747049209

6 - 2024

Геометрическое ядро RGK: год спустя

Леонид Баранов, 
директор по развитию технологий 3D-моделирования, ЗАО «Топ Системы»
Леонид Баранов,
директор по развитию технологий 3D-моделирования, ЗАО «Топ Системы»

Прошел ровно год с момента презентации компанией «Топ Системы» нового продукта — геометрического ядра RGK 2.0. По результатам представления ранее была опубликована статья «Геометрическое ядро RGK на форуме компании «Топ Системы» («САПР и графика» № 7’2023, cтр. 32-41). В нынешней статье мы постараемся рассказать об основных доработках, выполненных в RGK за прошедшее время.

Геометрическое ядро представляет собой программный компонент, предназначенный для решения разнообразных задач геометрического моделирования: построение различными способами твердотельных, поверхностных и каркасных моделей с использованием «точной» геометрии, проведение разного рода анализа на полученных моделях, как­то: проверка корректности построения, вычисление масс­инерционных характеристик, расстояний, углов, пересечений наборов тел между собой, построение полигональных аппроксимаций точной геометрии, построение проекций с удаленными невидимыми линиями и т.д. Перечень задач, решаемых ядром RGK, как и его архитектура и особенности представления модели, за прошедший год не претерпели значительных изменений, чего нельзя сказать о функциональности, структуре API и различных прикладных особенностях продукта. Цель данной статьи — рассказать о произошедших изменениях ядра за минувший год. По традиции, изменения будут представлены в наиболее наглядном виде — в форме иллюстраций, благо геометрическое моделирование является очень наглядной и очевидной даже для неспециалистов областью прикладной математики.

Функциональность по формированию и редактированию модели

Значительному развитию подверглась функциональность «прямого» моделирования. В частности, в операцию Замена граней тела была добавлена поддержка перестроения сглаживаний, контактирующих с заменяемой гранью. Поддерживаются сглаживания как постоянного, так и переменного радиуса (рис. 1­3).

Рис. 1. Пример замены поверхностей двух граней на поверхности листового тела (на внутренних отверстиях сглаживание переменного радиуса)

Рис. 1. Пример замены поверхностей двух граней на поверхности листового тела (на внутренних отверстиях сглаживание переменного радиуса)

Рис. 2. Пример замены грани на листовое тело с несколькими гранями

Рис. 2. Пример замены грани на листовое тело с несколькими гранями

Рис. 3. Пример замены граней, контактирующих со сложным сглаживанием

Рис. 3. Пример замены граней, контактирующих со сложным сглаживанием

Сами алгоритмы операции были доработаны с целью обеспечения возможности замены несвязанных граней на поверхности из граней произвольного листового тела.

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

Рис. 4. Пример изменения радиуса цилиндрической поверхности отверстия

Рис. 4. Пример изменения радиуса цилиндрической поверхности отверстия

Значительно расширена функциональность операции удаления граней (рис. 5). Добавлена поддержка сложных топологических связей удаляемых граней.

Рис. 5. Примеры удаления граней

Рис. 5. Примеры удаления граней

Рис. 5. Примеры удаления граней

Разработана новая функциональность распознавания сглаживаний постоянного и переменного радиуса как для отдельных граней, так и для последовательностей (рис. 6). Такая функциональность может быть особенно востребована в приложениях, работающих с импортированной геометрией, поскольку распознаются поверхности сглаживания как построенные средствами самого RGK, так и импортированные из внешних систем (рис. 7).

Рис. 6. Распознавание цепочки сглаживаний постоянного радиуса

Рис. 6. Распознавание цепочки сглаживаний постоянного радиуса

Рис. 7. Распознавание закона переменного радиуса на импортированной модели

Рис. 7. Распознавание закона переменного радиуса на импортированной модели

Рис. 7. Распознавание закона переменного радиуса на импортированной модели

В ядре реализована функциональность перестроения распознанных сглаживаний с новыми радиусами и, в том числе, с изменением типа сглаживания (например, постоянный радиус можно заменить на переменный) (рис. 8 и 9).

Рис. 8. Изменение распознанного сглаживания постоянного радиуса

Рис. 8. Изменение распознанного сглаживания постоянного радиуса

Рис. 9. Изменение радиуса у импортированных сглаживаний: 1 — распознанное сглаживание; 
2 — перестроенное сглаживание постоянного радиуса; 3 — перестроенное сглаживание переменного радиуса

Рис. 9. Изменение радиуса у импортированных сглаживаний: 1 — распознанное сглаживание;
2 — перестроенное сглаживание постоянного радиуса; 3 — перестроенное сглаживание переменного радиуса

Функциональность распознавания и перестроения сглаживаний поддерживается теперь и в операции копирования граней по образцу («паттернинга») — рис. 10.

Рис. 10. Примеры копирования граней с автоматической адаптацией размеров и сглаживаний у основания

Рис. 10. Примеры копирования граней с автоматической адаптацией размеров и сглаживаний у основания

Рис. 10. Примеры копирования граней с автоматической адаптацией размеров и сглаживаний у основания

Помимо этого доработана сама схема копирования граней, снят ряд важных ограничений операции (рис. 11).

Рис. 11. Пример размножения отверстия вдоль сложной поверхности

Рис. 11. Пример размножения отверстия вдоль сложной поверхности

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

Рис. 12. Пример многопрофильного свипа с получением как твердого, так и листового тела

Рис. 12. Пример многопрофильного свипа с получением как твердого, так и листового тела

Следует отметить, что при использовании нескольких профилей поддерживается задание как дополнительных законов кручения и масштабирования, так и соответствия вершин профилей между собой (рис. 13). Еще одной интересной возможностью является поддержка в качестве начального или конечного профиля разомкнутого проволочного тела, при том что все остальные профили замкнуты, и в итоге строится твердое тело, а не поверхность. Благодаря такой возможности можно построить тело типа «тюбик».

Рис. 13. Задание соответствия вершин в многопрофильном свипе

Рис. 13. Задание соответствия вершин в многопрофильном свипе

Рис. 13. Задание соответствия вершин в многопрофильном свипе

Добавлена поддержка разных режимов законов масштабирования профиля. Причем все эти режимы можно комбинировать с законами кручения (рис. 14 и 15).

Рис. 14. Опции законов масштабирования в свипе

Рис. 14. Опции законов масштабирования в свипе

Рис. 15. Комбинация закона масштабирования и закона кручения

Рис. 15. Комбинация закона масштабирования и закона кручения

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

Рис. 16. Пример поддержки нулевого масштаба в свипе

Рис. 16. Пример поддержки нулевого масштаба в свипе

Улучшена обработка изломов траектории с формированием скругленных зон на поверхности тела (рис. 17).

Рис. 17. Примеры обработки углов траектории в новой версии RGK

Рис. 17. Примеры обработки углов траектории в новой версии RGK

Рис. 17. Примеры обработки углов траектории в новой версии RGK

В свипе с несколькими траекториями выполнены важные доработки по синхронизации траектории и направляющих, а также реализована поддержка G1 разрывных направляющих (рис. 18 и 19).

Рис. 18. Режимы синхронизации траектории и направляющих

Рис. 18. Режимы синхронизации траектории и направляющих

Рис. 19. Поддержка G1 разрывных направляющих и эффект от применения разных законов синхронизации

Рис. 19. Поддержка G1 разрывных направляющих и эффект от применения разных законов синхронизации

Рис. 20. Иллюстрация отличий поверхностей уклона

Рис. 20. Иллюстрация отличий поверхностей уклона

Рис. 20. Иллюстрация отличий поверхностей уклона

В новой версии ядра расширилась функциональность построения уклонов граней тела (рис. 20). Во­первых, реализована поддержка нескольких новых типов поверхностей уклона. Теперь в RGK поддерживаются следующие типы поверхностей:

  • Isocline (используется по умолчанию) — сохраняет угол между направлением уклона и нормалью к поверхности уклона;
  • Surface — направляющая определяется направлением уклона и нормалью к исходной поверхности;
  • Curve — направляющая определяется направлением уклона и касательной к исходной кривой;
  • Normal — направление уклона определяется нормалью к прилежащей поверхности.

Во­вторых, добавлены важные на практике топологические обработки, повышающие надежность алгоритма. В частности, поддержка инверсии граней при необходимости (рис. 21).

Рис. 21. Инверсия граней при выходе уклона за пределы базовой топологии

Рис. 21. Инверсия граней при выходе уклона за пределы базовой топологии

Рис. 21. Инверсия граней при выходе уклона за пределы базовой топологии

Реализована поддержка составных линий разъема и разбиения уклоняемой грани, содержащей несколько фиксированных ребер (рис. 22).

Рис. 22. Иллюстрация топологических обработок в новой версии операции Уклон RGK

Рис. 22. Иллюстрация топологических обработок в новой версии операции Уклон RGK

Рис. 22. Иллюстрация топологических обработок в новой версии операции Уклон RGK

Следует особо отметить, что RGK позволяет за одну операцию строить уклоны с разными углами для разных граней (рис. 23).

Рис. 23. Пример уклонения двух изначально гладко состыкованных граней на разные углы

Рис. 23. Пример уклонения двух изначально гладко состыкованных граней на разные углы

Дальнейшее развитие получили возможности ядра по построению уклонов с заданными поверхностями разъема. Как практически везде, под «поверхностью» понимается листовое тело — набор связанных, согласованно ориентированных граней без свойства замыкания объема. Было убрано ограничение на использование только одной грани как поверхности разъема (рис. 24).

Рис. 24. Иллюстрация работы с многогранной поверхностью разъема

Рис. 24. Иллюстрация работы с многогранной поверхностью разъема

Напомним, что уклоны, как и многие «локальные» операции в RGK, могут работать в «глобальном» режиме, когда, при необходимости, модификации подвергаются не только соседние грани тела, но и отстоящие от них. В новой версии эта возможность получила дальнейшее развитие за счет усовершенствования многих базовых инструментальных алгоритмов ядра (рис. 25).

Рис. 25. Иллюстрации глобального характера операции Уклон граней

Рис. 25. Иллюстрации глобального характера операции Уклон граней

Рис. 25. Иллюстрации глобального характера операции Уклон граней

В ближайших планах — поддержка «поверхностей разъема», не пересекающих исходное тело, что добавит гибкости в построение еще более сложной геометрии уклонов. А также реализация целого набора опций по обработке стыковки уклоняемых граней как между собой, так и с «неподвижными» гранями тела.

Развитие получила функция расширения листового тела. Добавлены возможность затягивания разрывов тела со сложной границей, поддержка расширения сглаженных граней как сглаживаний, расширение до тела (рис. 26­28).

Рис. 26. Пример расширения с сохранением неразрывности границы

Рис. 26. Пример расширения с сохранением неразрывности границы

Рис. 27. Пример натурального расширения листового тела со сглаживанием

Рис. 27. Пример натурального расширения листового тела со сглаживанием

Рис. 28. Пример работы опции Расширение до тела

Рис. 28. Пример работы опции Расширение до тела

Традиционно в развитии RGK большое внимание уделяется совершенствованию алгоритмов сглаживания во всех их режимах (сглаживание ребер, граней и трехгранное сглаживание). Как отмечалось еще в прошлом году, важной особенностью архитектуры RGK в этой части является высокая степень унификации топологических алгоритмов. Можно сказать, что алгоритм сглаживания, по сути, один, но он умеет решать разные задачи в зависимости от полученных входных данных. В новой версии было решено изменить API ядра так, чтобы в максимальной степени отразить этот архитектурный момент. В частности, были убраны отдельные классы постоянного и переменного сглаживания, а структура данных изменена таким образом, чтобы позволить прикладному разработчику конечного приложения использовать комбинаторную гибкость алгоритма сглаживания RGK. Конечно, только архитектурными изменениями дело не ограничилось. В новой версии ядра была проделана огромная работа по развитию алгоритма сглаживания во всех аспектах — как в обработке сложных топологических конфигураций, так и в поддержке новых типов поверхностей сглаживания и совершенствования математических нюансов их построения. Во­первых, добавлена возможность выбрать ребро, которое необходимо сохранить при формировании переполнения (рис. 29).

Рис. 29. Поведение алгоритма сглаживания при указании разных ребер для сохранения

Рис. 29. Поведение алгоритма сглаживания при указании разных ребер для сохранения

Во­вторых, разработан алгоритм принудительной остановки сглаживания на заданной грани или листовом теле (рис. 30 и 31).

Рис. 30. Остановка сглаживания в указанном листовом теле

Рис. 30. Остановка сглаживания в указанном листовом теле

Рис. 31. Остановка сглаживания на заданной грани тела

Рис. 31. Остановка сглаживания на заданной грани тела

На основе алгоритма останова на указанной геометрии в обработке сложных завершений сглаживания была добавлена возможность негладкого завершения с формированием корректного твердого тела, чтобы дать возможность продолжать моделирование другими инструментами (рис. 32).

Рис. 32. Остановка сглаживания при невозможности гладкого завершения

Рис. 32. Остановка сглаживания при невозможности гладкого завершения

Дальнейшее развитие получили алгоритмы встраивания сглаживающего листа. Добавлена опция необходимости учета топологии тела в зоне листа сглаживания (рис. 33).

Рис. 33. Иллюстрация включения или отключения опции учета топологии в зоне сглаживания

Рис. 33. Иллюстрация включения или отключения опции учета топологии в зоне сглаживания

Значительно расширены возможности алгоритма сглаживания при обработке сложных топологических конфигураций на модели как для постоянного, так и для переменного сглаживания (рис. 34­39).

Рис. 34. Пример встраивания реберного сглаживания в сложных топологических конфигурациях

Рис. 34. Пример встраивания реберного сглаживания в сложных топологических конфигурациях

Рис. 35. Пример встраивания трехгранного сглаживания

Рис. 35. Пример встраивания трехгранного сглаживания

Рис. 36. Расширение возможностей обработки участков с кривизной малого радиуса — теперь топология в зоне формирования прокатывания малого радиуса может быть произвольной

Рис. 36. Расширение возможностей обработки участков с кривизной малого радиуса — теперь топология в зоне формирования прокатывания малого радиуса может быть произвольной

Рис. 37. Пример перекрытия сглаживаний переменного радиуса

Рис. 37. Пример перекрытия сглаживаний переменного радиуса

Рис. 38. Пример взаимного перекрытия сглаживаний с симметричной обрезкой сглаживающих листов

Рис. 38. Пример взаимного перекрытия сглаживаний с симметричной обрезкой сглаживающих листов

Рис. 39. Пример перекрытия сглаживаний на нескольких гранях

Рис. 39. Пример перекрытия сглаживаний на нескольких гранях

Введено управление порядком прокатывания сглаживающего «шарика», что позволяет варьировать форму поверхности в вершинах, где сходятся ребра разной выпуклости (рис. 40).

Рис. 40. Пример формирования поверхности сглаживания при разной последовательности прокатывания шарика

Рис. 40. Пример формирования поверхности сглаживания при разной последовательности прокатывания шарика

Теперь поддерживается возможность обработки угла модели с прокатыванием шарика, а не только с обрезкой сглаживающих поверхностей (рис. 41).

Рис. 41. Иллюстрация «гладкого» угла сглаживания при сохранении острого ребра на теле

Рис. 41. Иллюстрация «гладкого» угла сглаживания при сохранении острого ребра на теле

В связи с тем, что как для сглаживания ребер, так и для сглаживания граней используется один алгоритм, обработка различных случаев стыковки граней выполняется аналогичным образом (рис. 42).

Рис. 42. Примеры поведения алгоритма сглаживания в граневом и трехгранном режимах

Рис. 42. Примеры поведения алгоритма сглаживания в граневом и трехгранном режимах

Рис. 42. Примеры поведения алгоритма сглаживания в граневом и трехгранном режимах

Функциональность сглаживания RGK, как известно, работает не только на твердых телах, но и на листовых. При этом с точки зрения API нет никакого различия в операциях с разными типами топологических моделей (рис. 43).

Рис. 43. Пример работы трехгранного сглаживания на наборе листовых тел

Рис. 43. Пример работы трехгранного сглаживания на наборе листовых тел

Помимо улучшений и развития топологических алгоритмов сглаживания, существенное развитие получила и его геометрическая часть. В частности, много усилий было приложено к разработке алгоритмов борьбы с самопересечениями поверхностей сглаживания. Такая ситуация нередко возникает в практических задачах, и промышленное ядро должно обладать развитыми инструментами коррекции геометрии с гарантией отсутствия самопересечений. Это весьма сложная задача, которая не может быть решена одним алгоритмом — требуется разработать набор инструментов и выработать правила их практического применения в алгоритмах ядра. Именно такая работа и ведется сегодня разработчиками RGK, и ее первые результаты можно увидеть в новой версии. Вот, собственно, о какой проблеме идет речь (рис. 44­46).

Рис. 44. Примеры самопересечений поверхности сглаживания

Рис. 44. Примеры самопересечений поверхности сглаживания

Рис. 45. Пример работы одного из алгоритмов исправления самопересечений поверхностей сглаживания

Рис. 45. Пример работы одного из алгоритмов исправления самопересечений поверхностей сглаживания

Рис. 46. Пример работы алгоритма коррекции самопересечения в зонах высокой кривизны сглаживаемых поверхностей

Рис. 46. Пример работы алгоритма коррекции самопересечения в зонах высокой кривизны сглаживаемых поверхностей

Усовершенствованиям подверглись алгоритмы построения дискового сглаживания, а кроме того, добавился новый тип сглаживающих поверхностей — поверхности «изопараметрического» сглаживания. В дисковом сглаживании теперь поддерживается произвольный закон радиуса и форма сечения (рис. 47 и 48).

Рис. 47. Иллюстрация отличия «традиционного» сглаживания с прокатыванием шарика от дискового

Рис. 47. Иллюстрация отличия «традиционного» сглаживания с прокатыванием шарика от дискового

Рис. 48. Пример работы режима дискового сглаживания на твердом и листовых телах

Рис. 48. Пример работы режима дискового сглаживания на твердом и листовых телах

Естественным образом дисковое сглаживание доступно и в сопряжении трех граней (рис. 49).

Рис. 49. Пример применения режима дискового сглаживания в трехгранном режиме

Рис. 49. Пример применения режима дискового сглаживания в трехгранном режиме

Помимо «традиционных» режимов сглаживания, как отмечалось выше, был разработан алгоритм для построения «изопараметрического» сглаживания (рис. 50). Суть его в том, что плоскость сечения сглаживающей поверхности привязана к изопараметрическим линиям одной из родительских граней.

Рис. 50. Иллюстрация отличия изопараметрического сглаживания от поверхности катящегося шарика

Рис. 50. Иллюстрация отличия изопараметрического сглаживания от поверхности катящегося шарика

Как нетрудно предположить, изопараметрическое сглаживание, как и два других типа, допускают управление радиусом и формой сечения (рис. 51).

Рис. 51. Пример изопараметрического сглаживания с переменным сечением

Рис. 51. Пример изопараметрического сглаживания с переменным сечением

Отдельной большой работой в направлении повышения гибкости алгоритмов сглаживания в новой версии RGK была разработка новых типов поверхностей сглаживания с сохранением геометрии кривой. Напомним, что в предыдущих версиях ядра была предусмотрена возможность построения поверхности с сохранением ребра модели так, чтобы обеспечивалось касание с противоположной гранью, в то время как касания с гранью, содержащей сохраняемое ребро, не требовалось. Это так называемое «переполнение» сглаживания. Теперь же в ядро добавлена возможность сохранения такого касания двумя способами. Так называемые «симметричный» и «конический» режимы. В первом из них ответная опорная кривая сглаживания как бы повторяет форму сохраняемого ребра (рис. 52), во втором — следует заданному закону радиуса.

Рис. 52. Иллюстрация режимов сглаживания с сохранением ребра

Рис. 52. Иллюстрация режимов сглаживания с сохранением ребра

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

Рис. 53. Иллюстрация работы режимов сохранения ребра в том числе и с переменным радиусом

Рис. 53. Иллюстрация работы режимов сохранения ребра в том числе и с переменным радиусом

Не осталась в стороне от усовершенствований и функциональность построения фасок. Добавлены два новых способа задания размеров фаски — двумя смещениями от вершины: пересечения касательных к родительским граням и смещением и прилежащим углом (рис. 54).

Рис. 54. Иллюстрация новых способов задания размера фаски на ребре

Рис. 54. Иллюстрация новых способов задания размера фаски на ребре

Если говорить об интересных текущих задачах, которые решаются коллективом разработчиков RGK в настоящий момент, то следует отметить работы по новому алгоритму построения поверхности затягивания области произвольной конфигурации. С одной стороны, это будет мощный инструмент для внутреннего использования в различных алгоритмах ядра, а с другой — он будет доступен и прикладным разработчикам, использующим ядро через соответствующий API. Пока рано раскрывать технические подробности. Приведем лишь несколько визуальных примеров работы нового инструмента (рис. 55 и 56).

Рис. 55. Новая поверхность затягивания в задаче гладкого заполнения вершинной области в сглаживании

Рис. 55. Новая поверхность затягивания в задаче гладкого заполнения вершинной области в сглаживании

Рис. 55. Новая поверхность затягивания в задаче гладкого заполнения вершинной области в сглаживании

Рис. 56. Новая поверхность затягивания в задаче гладкого заполнения области Y-формы в сглаживании

Рис. 56. Новая поверхность затягивания в задаче гладкого заполнения области Y-формы в сглаживании

Рис. 56. Новая поверхность затягивания в задаче гладкого заполнения области Y-формы в сглаживании

Изменения в API и общей функциональности

Помимо развития функций моделирования, за минувший год была проделана большая работа по совершенствованию внутренних алгоритмов ядра, что и позволило наращивать функциональность такими высокими темпами. Усовершенствованию подверглись все основные компоненты — как внутренние, так и доступные извне: алгоритмы построения линий пересечения и проецирования, булевы операции, фасетер, алгоритмы проецирования с удаленными невидимыми линиями, верификатор топологической модели (чекер) и многие другие. С одной стороны, проведенная работа позволила еще больше унифицировать внутренние инструменты ядра, что упрощает его дальнейшее развитие, с другой — позволяет улучшать качество и скорость программного кода. В качестве примера эффекта от такой работы хочется привести несколько иллюстраций, показывающих текущий статус и изменения в скорости работы функции генерации полигональной модели (рис. 57). Все приведенные ниже примеры касаются построения сеток с одинаковыми параметрами по точности на одном и том же компьютере в многопоточном режиме.

Рис. 57. Примеры работы фасетера RGK в сравнении с известным конкурирующим ядром и версией годичной давности

Рис. 57. Примеры работы фасетера RGK в сравнении с известным конкурирующим ядром и версией годичной давности

Рис. 57. Примеры работы фасетера RGK в сравнении с известным конкурирующим ядром и версией годичной давности

Рис. 57. Примеры работы фасетера RGK в сравнении с известным конкурирующим ядром и версией годичной давности

Была проделана значительная работа по улучшению и развитию пользовательского API ядра. В течение года API ядра, по сути, было модернизировано под требования промышленного использования. Новая версия API позволяет поставлять прикладным программистам только релизную библиотеку и файлы заголовков как для отладочных, так и для продуктовых целей. Важным развитием API, на наш взгляд, является появление Python API и его интеграция в том числе и в тестовую оболочку ядра. Теперь программистам становится легко писать небольшие прикладные программы с использованием инструментария RGK на языке Python. Разработаны новые алгоритмы идентификации топологических элементов модели — теперь им назначаются идентификаторы фиксированной структуры. Это позволяет значительно упростить взаимодействие прикладного кода с API ядра и уменьшить требования по памяти для хранения ссылок на элементы топологической модели из прикладного кода. Улучшились документация, примеры использования, тестовое приложение.

Ближайшие планы и направления работ

Как уже отмечалось, сейчас в разработке много полезных и интересных функций и инструментов. О части из них было упомянуто выше. Но это не полный перечень работ. В частности, идет разработка алгоритмов построения серединных поверхностей в разных постановках, в том числе и «истинно» серединных, работающих на произвольной геометрии. Планируется расширение функций и дальнейшее ускорение фасетера, процедуры удаления невидимых линий, проверки пересечений тел, генерации лофт­ и свип­поверхностей со сложными граничными условиями и повышение качества самих поверхностей, возможно снятие ограничений на топологию G2­сглаживаний и много чего еще. Все описанные работы проводятся прямо сейчас, а не пишутся в дорожные карты. Так что, как говорится, ждите новостей. Может быть, раньше чем через год.

Еще одним стимулом для ускорения разработки ядра является постепенный переход флагманского продукта компании «Топ Системы» (T­FLEX CAD) на использование RGK и появление всё большего числа компаний­разработчиков, заинтересованных в использовании ядра в своих приложениях. В настоящее время уже несколько ведущих российских разработчиков инженерного программного обеспечения ведут опытную эксплуатацию RGK с целью оценки возможности использования ядра в своих разработках при поддержке компании «Топ Системы». Очевидно, что это только начало.

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

Регистрация | Войти

Мы в телеграм:

Рекламодатель:
ООО «Нанософт разработка»

ИНН 7751031421 ОГРН 5167746333838

Рекламодатель: ООО «А-Кор»

ИНН 9731125160 ОГРН 1237700820059

Рекламодатель: ЗАО «Топ Системы»

ИНН 7726601967 ОГРН 1087746953557

Рекламодатель: ООО «КЭЛС-центр»

ИНН 7707548179 ОГРН 1057746796436

Рекламодатель: ООО «ПЛМ Разработка»

ИНН 6658560933 ОГРН 1236600010690