Pull to refresh
37
12
C3D Labs @c3dlabs

Разработчик геометрического ядра C3D

Send message

Добрый день! Ядро C3D широко используется как в России, так и за его пределами. Полный список заказчиков выложен на нашем сайте https://c3dlabs.ru/customers/

Добрый день! В вашем комментарии содержатся примеры открытых геометрических ядер. Если упомянутые вами недостатки этих продуктов значимы для вас и вы хотели бы перейти на коммерческое ядро с поддержкой пользователей, можем предложить вам бесплатную 90-дневную версию C3D Toolkit: https://c3dlabs.com/ru/evaluation/ Ей можно воспользоваться в случае, если вы представляете компанию.

Добрый день, на сайте C3D Labs ведутся технические работы. Совсем скоро вы сможете скачать бесплатную версию Viewer для вашего использования.

В статье приведено описание четырехугольного патча. Построение поверхности на 3-х кривых (в треугольных координатах) не рассматривалось так же, как и построение многосторонних заплаток.

По поводу обменных форматов можно подискутировать.

STEP в своём "развитии" превращается в общий стандарт для описания всего. При этом по формату он остаётся таким же неструктурированным. А вот когда требуется, например, работать с большими моделями, неструктурированность начинает сильно усложнять работу приложений.

Например, пока не прочтён весь файл, нельзя предварительно создать структуру изделия, чтобы импортировать сборку покомпонентно, экономя ресурсы. А если файл приходится передавать по сети?

Что касается записи, то если поменялся один компонент сборки, перезаписывать нужно весь файл целиком, возможно, также по сети. По крайней мере, на практике нам не встречались примеры с внешними ссылками.

В этом отношении древний старый добрый формат IGES, чьи возможности гораздо скромнее, обладает перед STEP преимуществом.

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

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

Что касается граничного представления в JT, то здесь присутствуют те же самые проблемы, что и при использовании любого обменного формата.

"А с поверхностями как работаете?" — Вопрос не понятен. Полноценные построения идут как создание оболочек BRep.


Nurbs есть.


"Переходы между криволинейными поверхностями сделать сможете с обеспечением G2?" — Есть у поверхности соединения. Для поверхности по сети кривых в разработке.


"И на счет точности: у вас точность задана на всю модель или на каждый энтити в Brep?" — Точность при создании модели не задается, но допустима неточная геометрия BRep при построениях и импорте. Данные о неточности содержатся в ребрах и вершинах.

Роман, спасибо за подробное описание работы конвертера. Отталкиваясь от него, могли бы Вы пояснить, что Вы имели в виду под фразой «если он есть в C3D», говоря про функционал адаптации?

C3D Converter с самого начала предназначался для получения моделей, к которым можно применять операции моделирования. Если Вы предполагаете, что высокое быстродействие конвертера от C3D по сравнению с решением на базе OpenCASCADE достигается за счёт отключения «тяжёлого» функционала, отвечающего за самую «параноидальную» адаптацию, то это не так. В C3D Converter нет опции, предназначенной для решения задач визуализации в ущерб качеству B-Rep.

Возвращаясь к истории C3D, отметим, что разработка моделера и конвертера в рамках единого продукта страхует от ситуаций, когда изменения в одном модуле провоцируют ошибки в другом. Такие ситуации довольно легко отслеживаются и разрешаются в рабочем порядке. При этом улучшения, сделанные для одного компонента, улучшают и другой.
Теперь и ответ Татьяны: Да-да, не рассматривался. Придерживаемся консервативных взглядов )).
Вряд ли. У Тани по графику сейчас занятия с детьми, чуть позже уточнит.
Конвертер STEP — один из первых модулей C3D Converter, где удалось обеспечить ускорение за счёт многопоточности. То, что время от начала импорта до появления изображения на экране может отличаться в разных приложениях на базе C3D (при одинаковых настройках импорта) — это особенность реализации модельного документа. Стандартная реализация C3D предусматривает размещение всей модели в оперативной памяти, в то время, как КОМПАС-3D, например, создаёт файлы компонент на диске. Возможно, это обстоятельство при каких-то условиях служит причиной задержки изображения модели в окне.
falc00n спасибо за историю! Как, оказывается, много авиаторов в тестировании. У нас руководитель тестирования одного из продуктов — военный лётчик (налёт более 1200 часов, 200 боевых вылетов). Рассказывали о нем здесь habr.com/ru/company/ascon/blog/441638 image

С ситуациями thread oversubscription в геометрическом ядре мы не сталкиваемся. В большинстве случаев создание потоков при распараллеливании отдано на откуп OpenMP.


О случаях oversubscription в пользовательских приложениях, использующих ядро, нам не известно. Думаю, что в таких случаях может помочь возможность переключения режима многопоточности ядра, описанная выше.

У нас нет свежих данных для реализации OpenMP в последних версиях компилятора Интел. Ядро C3D используется в самых разных средах разработки, однако в настоящее время наши клиенты не пользуются компилятором Интел.


Что касается "погони" за количеством потоков, природа наших данных и характер алгоритмов таковы, что в большинстве случаев эффективнее обрабатывать задания большего размера стандартным (8) количеством потоков.


Мы не используем numa-aware memory аллокаторы.

Эмитировать абсолютную точность можно, если задать нулевую погрешность, и даже можно получить ответ, но ответ не будет достоверен, так как исходные данные (положение точки и положение прямой) известны не с абсолютной точностью.
Чтобы ответить на вопрос «Лежит ли точка на прямой?», нужно знать, с какой точностью вы желаете иметь ответ. Здесь мы подходим с инженерной точки зрения.

Конечно, могут быть и другие проблемы. В таких случаях мы возвращаем геометрическую модель к предыдущему равновесному состоянию и сообщаем о проблеме.
Если речь идет об использовании CGAL (Computational Geometry Algorithms Library), то C3D не использует её.
Если речь идет о точности вычислений, то для геометрических построений C3D применяет большое количество приемов и тактик, чтобы обеспечить высокую точность.
Большинство объектов (кривых, поверхностей и пр.) выдают геометрическую информацию с максимальной возможной точностью, то есть с точностью, которую могут обеспечить числа double. Есть объекты, которые выдают геометрическую информацию, получаемую итерационными методами. В этом случае точность задается тем объектом, который использует результаты, и точность может быть разной.
Приближённые вычисления используются там, где без них нельзя обойтись, например, при расчёте объёмов или инерционных характеристик.
Совершенно незнакомое имя, но добавим. Спасибо.
Как раз потому, что ADEM чисто российский, его и нет в этой подборке.
Cimatron — вы имеете ввиду его сотрудничество с Ледасом или другое?

Information

Rating
441-st
Location
Россия
Works in
Registered
Activity