Pull to refresh
37
12
C3D Labs @c3dlabs

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

Send message

C3D Collision Detection: представление детектора столкновений в составе C3D Toolkit

Level of difficulty Medium
Reading time 4 min
Views 325

Сергей Белёв, старший математик‑программист, C3D Labs, знакомит с новым компонентом C3D Toolkit — модулем C3D Collision Detection, рассказывает о том, что детектор столкновений представляет собой изнутри, и о том, какие возможности он предоставляет пользователям.

Детектор столкновений — новый компонент инструмента C3D Toolkit. В статье перечислим математические задачи, которые поставлены перед детектором, узнаем его основной функционал, рассмотрим несложный пример, демонстрирующий интерфейс модуля, и обратимся к планам и дорожной карте.

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

Модуль C3D Collision Detection, во‑первых, реализует «эффективные» алгоритмы решения всех поставленных задач — как в статических сценах, например контроль зазоров, так и в динамических сценах, в частности контроль соударений между элементами сборки. Во‑вторых, у нас есть возможность тонкой настройки всех формулируемых задач — можно даже создавать их комбинации. В‑третьих, исходя из необходимости быстро детектировать касание/пересечение, применяется принципиально иной подход, чем в булевой операции: мы не строим какие‑либо дополнительные объекты.

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 3

Прямое моделирование: изменение топологии и адаптация скруглений

Level of difficulty Medium
Reading time 6 min
Views 2.1K

Евгений Кондратюк, математик-программист, C3D Labs, представляет обзор возможностей геометрического ядра C3D в области прямого моделирования, или прямого редактирования.

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

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 7

Полигональное моделирование: от фундамента к продвинутым алгоритмам

Level of difficulty Medium
Reading time 8 min
Views 2.7K

Александр Лонин, руководитель группы по полигональному моделированию, к. ф.-м. н., C3D Labs, представляет обзор топологии полигональной сетки, делится информацией об усовершенствованиях и новом функционале, а также знакомит с планами развития направления полигонального моделирования.

Для работы большинства алгоритмов недостаточно иметь представление о сетке только как о наборе треугольников, примером чего служит результат ее конвертации из формата STL. Единственное, что можно сделать с такой сеткой, — это нарисовать ее и посчитать площадь. Для всего остального в нашем распоряжении должна быть некая топологическая структура, которая и является фундаментом в полигональном моделировании.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 1

C3D Modeler – основа геометрического ядра C3D

Level of difficulty Medium
Reading time 7 min
Views 1.7K

Андрей Туманин представляет обзор направлений развития и точки роста геометрического ядра C3D Modeler.

C3D Modeler, или просто геометрическое ядро C3D, – это полностью отечественное программное решение, которое выполняет все возможные вычисления для построения геометрических объектов любой сложности и предоставляет инструменты для проведения операций над этими геометрическими объектами. Основным представлением в геометрическом ядре является граничное представление, однако, наряду с граничным представлением, поддерживаются полигональное представление и ряд операций с ним. Тела на основе граничного представления, полигональные объекты, а также каркасы могут обладать деревом построения, которое позволяет перестраивать геометрические объекты с новыми параметрами. Наряду с классическими направлениями для геометрического моделирования, такими, как каркасное, поверхностное и твердотельное моделирование, в геометрическом ядре C3D интенсивно развиваются направления прямого и полигонального моделирования. Также в составе ядра есть уникальный модуль моделирования тел из листового металла. При этом нашей главной ценностью является команда, которая обладает более чем 20-летним опытом и высоким уровнем экспертизы в геометрическом моделировании.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 6

Эволюция требований к разработчикам САПР

Level of difficulty Easy
Reading time 8 min
Views 2K

Моя работа на протяжении долгого времени связана с людьми, точнее сказать с их развитием, как личным, так и карьерным. Сегодня я работаю в компании C3D Labs – разработчике геометрического ядра, на позиции People Partner. В статье мы поговорим о рынке труда математиков-разработчиков в России именно в САПР-индустрии (САПР — системы автоматизированного проектирования), о том, какие темы интересуют действующих сотрудников и какие требования существуют к потенциальным кандидатам.

По моим наблюдениям, карьерные вопросы, которые сейчас интересуют программистов, можно разделить на следующие группы:

как стать сеньором, тимлидом и экспертом;

как вырасти и перейти на новый профессиональный уровень — что для этого нужно;

мягкие навыки, или софт скилс, как ключевой фактор в достижении новой роли.

Я хочу поделиться своими мыслями и опытом по поводу роли HR в этих процессах, может ли специалист по персоналу быть реальным помощником в развитии карьеры?

Начнем с обсуждения трендов в ИТ-индустрии: что сегодня происходит на рынке разработки?

Немного статистики из открытых источников: в мире насчитывается около 30-ти миллионов человек, которые занимаются разработкой, т.е. каждый 260-ый человек в мире. Российские эксперты считают, что в нашей стране разработкой занимается около 1,5 млн человек, т.е. каждый 100-ый.

Читать далее
Total votes 2: ↑2 and ↓0 +2
Comments 10

Движок C3D Vision управляет отображением 3D-текстур «на лету»

Reading time 5 min
Views 1.8K

Движок визуализации C3D Vision пополнился новым функционалом. Теперь у пользователей есть возможность создания объемных текстур и отображения их в сцене. В этой заметке мы расскажем об объектах API Vision, непосредственно работающих с текстурами, а также продемонстрируем на уровне кода, как с этими объектами может взаимодействовать пользователь.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 12

Особенности использования файла конфигурации тестового приложения геометрического ядра C3D

Reading time 5 min
Views 539

В ходе мастер-класса по возможностям модуля C3D Converter, прошедшего в рамках конференции C3Days 2022, было продемонстрировано, как сформировать двойник модельного документа для того, чтобы упростить работу по ошибкам экспорта. Предложенный подход требует пересборки тестового приложения для активации и настройки отладочной функциональности. Для программистов это может показаться не критичным, но конечным пользователям, которые не связаны с разработкой, может создать немалые трудности.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 0

Возможности продления кривых для пользователей ядра C3D

Reading time 9 min
Views 844

На данный момент геометрическое ядро C3D стремительно набирает популярность вместе с КОМПАС-3D — приложением для систем автоматизированного проектирования (САПР). Чтобы поддержать эту тенденцию, мы наращиваем функционал наших продуктов и вводим больше новых «фич» (features). Одним из таких нововведений является операция продления пространственной кривой на заданную длину в метрическом пространстве.

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 2

Создание обертки геометрического ядра C3D для использования на разных языках и платформах

Reading time 4 min
Views 1.1K

Одна из задач в разработке современных программных продуктов — снижение порога вхождения. Ее решением может быть, например, документация, снабженная большим количеством примеров, развитая техподдержка или возможность использования продуктов на нескольких языках программирования.

Рассмотрим процесс создания обертки для библиотеки геометрического ядра C3D Labs.

Читать далее
Total votes 4: ↑3 and ↓1 +2
Comments 0

Поверхность по сети кривых

Reading time 11 min
Views 2.3K

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

Заранее предупреждаем. Дальше вам встретится множество геометрических терминов и формул. А кто говорил, что будет легко?!

О различных аспектах построения поверхности по сети кривых, а также полезных для ее практической реализации тонкостей, рассказывает Павел Егоров, математик-программист в C3D Labs.

Поверхность по сети кривых является ценным инструментом в инженерном проектировании геометрических объектов со сложными обводами. Она образуется двумя семействами кривых, которые, взаимно пересекаясь, образуют сетку фрагментов, имеющую матричную структуру. Помимо точного прохождения через ее образующие кривые поверхность по сети кривых также позволяет задавать для них значения производных, что оказывается очень полезным для обеспечения различных типов граничных условий. На рисунке 1 показана поверхность, построенная по двум кривым в каждом направлении и использующая данное свойство для обеспечения касательного сопряжения с другой поверхностью.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 3

Опыт портирования геометрического ядра C3D на платформу «Эльбрус»

Reading time 3 min
Views 2.1K

В конце 2021 года мы инициировали процесс портирования геометрического ядра C3D Labs на отечественную платформу «Эльбрус». В этой заметке мы хотим рассказать об основных этапах этого процесса.

«Эльбрус» — это программно-аппаратная платформа, которая разрабатывается компанией МЦСТ. Процессоры данной модели используют набор команд типа RISC (Reduced Instruction Set Computer) и имеют собственную архитектуру E2K. Последняя относится к типу VLIW, то есть имеет длинную машинную команду.

Стоит отметить, что большинство современных процессоров основано на наборе команд типа CISC (Complicated Instruction Set Computer) и имеет архитектуры x86_64 или arm. Из сказанного выше следует, что архитектура E2K отличается рядом особенностей по сравнению с другими архитектурами, что создает определённые сложности при портировании. Поэтому ниже мы перечислим некоторые из этих сложностей.

Читать далее
Total votes 9: ↑6 and ↓3 +3
Comments 2

Как мы развиваем API геометрического ядра, оставляя его стабильным для разработчиков САПР

Reading time 6 min
Views 1.1K

Геометрическое ядро C3D по своей сути является набором инструментов для создания программного обеспечения (SDK), все его компоненты — геометрический моделер, решатель геометрических ограничений, конвертеры данных, движок визуализации — предлагают программные интерфейсы для использования их функционала в инженерном 3D-приложении (CAD, CAE, CAM и др.). Как и любая другая программа, C3D Toolkit постоянно пополняется новым функционалом, что непосредственно сказывается на API его компонентов. При этом важно сохранять состояние API рабочим и полностью предсказуемым для пользователей.

В этой заметке расскажем о том, что мы учитываем при разработке нового API, как обеспечиваем его обратную совместимость, поддерживаем стабильность и качество.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Comments 0

Разработка кроссплатформенного ядра геометрического моделирования

Reading time 6 min
Views 3K

В августе мы, команда C3D Labs (АСКОН), впервые выпустили версию геометрического ядра C3D для отечественной операционной системы Astra Linux, пополнив список поддерживаемых дистрибутивов Линукс. На данный момент ядро геометрического моделирования C3D может быть использовано в разработке ПО на широком спектре операционных систем: кроме Windows — это MacOS, IOS, FreeBSD и несколько Linux-дистрибутивов. Также SDK ядра предоставляет большое разнообразие компиляторов: MSVC 2012 — 2019, GCC 4.8 — 7.2, Clang 6.0 — 10.0.

Так было не всегда. В 2012 году, когда ядро C3D выделилось из состава САПР КОМПАС-3D как отдельный продукт, оно работало только для нескольких версий компилятора MSVC и, разумеется, только под ОС Windows. Но ядро развивалось, со временем к нему стали предъявляться требования и пожелания, которые мы не могли игнорировать, если хотели иметь действительно лучший продукт в своем классе. Ниже рассказ о том, как мы портировали ядро на различные ОС и платформы.

Подробнее про разработку ядра
Total votes 13: ↑13 and ↓0 +13
Comments 3

Функциональные кривые высокого качества (часть III)

Reading time 4 min
Views 1.2K

Заключительная часть цикла статей, посвященных новому типу кривых и поверхностей, разработанному в компании C3D Labs в качестве нового функционала поверхностного моделирования для геометрического ядра C3D Modeler.

В этой части приводятся примеры практического применения C3D FairCurveModeler при моделировании различных изделий.

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

Во второй части описана реализация методов F-кривых в C3D Modeler.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 0

Функциональные кривые высокого качества (часть II)

Reading time 6 min
Views 1.5K

Продолжение цикла статей, посвященных новому типу кривых и поверхностей.

В этой части описывается реализация методов F-кривых в C3D Modeler.

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

В третьей части будут приведены примеры практического применения C3D FairCurveModeler при моделировании различных изделий.

Читать далее
Rating 0
Comments 0

Функциональные кривые высокого качества (часть I)

Reading time 7 min
Views 3.5K

Если вы когда-либо задавались вопросом, как смоделировать плавную кривую или поверхность, не запутавшись при этом в многообразии сложных геометрических терминов, то вы попали на нужную страницу.

Тем не менее, дабы не спугнуть любознательного читателя в первую секунду чтения статьи, заранее отвечаем на часто возникающий вопрос, а почему собственно «так сложно-то».

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

В чем сложность подхода моделирования гладких кривых и как его реализовать, рассказывает Валериян Муфтеев, ведущий математик-программист в C3D Labs.

Читать далее
Total votes 7: ↑6 and ↓1 +5
Comments 0

Есть ли жизнь в разработке после декрета

Reading time 5 min
Views 6.3K
Обычно такие посты появляются на Хабре к 8 марта, а потом пропадают до следующего года. Мы решили не ждать 2021 года и поговорить сейчас, правда ли, что декрет — это место, откуда не возвращаются. Свою историю рассказывает Татьяна Кондрикова, математик-программист геометрического ядра C3D, жена тимлида и мама двух сыновей.

image
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 7

Как смоделировать фюзеляж самолета – зависит от геометрического ядра

Reading time 3 min
Views 3.1K
Как инженер-конструктор может почувствовать силу геометрического ядра? Он работает в своей CAD-системе и не видит ее математическую «начинку». Сегодня покажем пример, как пользователь системы КОМПАС-3D, трехмерное моделирование в которой основано на ядре C3D, обратился напрямую к математикам и заказал доработку поверхности, необходимую для проектирования носовой части фюзеляжа самолета-амфибии. А математики его заказ исполнили.

image
Total votes 7: ↑7 and ↓0 +7
Comments 0

Как мы используем многопоточность в геометрическом ядре

Reading time 6 min
Views 4.6K
Вопрос о многопоточности задают даже далёкие от разработки люди, когда речь заходит о производительности 3D-приложений, в частности систем проектирования (САПР). Поддержка многопоточности закладывается в геометрическом ядре системы. Поэтому мы решили на своём примере показать, какие механизмы для этого разработаны и как они помогают использовать многопоточные вычисления в 3D-приложении.

Этот пост подготовила Татьяна Митина, сотрудник C3D Labs, в прошлом Intel (читатели Хабра знакомы с ней по истории «Мне 57 лет, и я scrum-мастер»).

image
Модель завода с технологическим оборудованием в КОМПАС-3D
ООО «ОКБ» (Новосибирск)

Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 10

Обзор САПР на геометрическом ядре C3D — 2

Reading time 4 min
Views 3.6K
Продолжаем рассказывать о том, какое инженерное программное обеспечение пишут на геометрическом ядре C3D (программный компонент, отвечающий за построение точных геометрических 3D-моделей).

В первой части обзора были КОМПАС-3D kompas_3d и Лоцман:PLM, Renga Rengabim, САПР-платформа nanoCAD, САПР печатных плат Delta Design, программы для прочностных расчетов Пассат и Штуцер-МКЭ, CAE-система от РФЯЦ-ВНИИТФ, мебельные САПР «Базис» и К3-Мебель, Ledas Cloud Platform, Модуль ЧПУ Фрезерная обработка для КОМПАС.

В этом году к ним добавились мировая «EDA-звезда» Altium Designer, турецкая САПР штампов ÇİZEN, nanoCAD Конструкторский BIM, приложение виртуального прототипирования VR Concept и другие. Подробности под катом.

image
Самолет-амфибия BOREY производства НПО «АэроВолга»
Полностью спроектирован в КОМПАС-3D (C3D inside)
Фото: АэроВолга

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 8
1

Information

Rating
439-th
Location
Россия
Works in
Registered
Activity