All streams
Search
Write a publication
Pull to refresh
36
4
C3D Labs @c3dlabs

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

Send message

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

Reading time4 min
Views1.4K

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

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

Читать далее

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

Reading time11 min
Views3.1K

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

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

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

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

Читать далее

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

Reading time3 min
Views2.3K

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

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

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

Читать далее

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

Reading time6 min
Views1.3K

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

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

Читать далее

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

Reading time6 min
Views3.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. Но ядро развивалось, со временем к нему стали предъявляться требования и пожелания, которые мы не могли игнорировать, если хотели иметь действительно лучший продукт в своем классе. Ниже рассказ о том, как мы портировали ядро на различные ОС и платформы.

Подробнее про разработку ядра

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

Reading time4 min
Views1.3K

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

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

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

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

Читать далее

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

Reading time6 min
Views1.7K

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

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

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

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

Читать далее

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

Reading time7 min
Views4.1K

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

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

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

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

Читать далее

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

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

image
Читать дальше →

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

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

image

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

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

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

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

Читать дальше →

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

Reading time4 min
Views4K
Продолжаем рассказывать о том, какое инженерное программное обеспечение пишут на геометрическом ядре 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)
Фото: АэроВолга

Читать дальше →

Геометрическое моделирование поверхностей скругления

Reading time4 min
Views5.9K
image

Одна из самых труднорешаемых задач в системах автоматизированного проектирования – скругления при моделировании объектов сложных форм. За построение скруглений, как и за всю геометрию в САПР, отвечает геометрическое ядро.

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

В чем его сложность и как работает алгоритм, рассказывает Анна Ладилова, математик-программист C3D Labs.
Читать дальше →

Россия – мировой центр разработки САПР. Вы об этом знали?

Reading time6 min
Views32K
Российская отрасль инженерного программного обеспечения насчитывает более 50 компаний-разработчиков. По меркам мирового рынка САПР это уже заметная величина. Но знаете ли вы, что российский след есть и в известных западных продуктах, например, в CATIA, BricsCAD, Altium Designer? Многие зарубежные САПР-вендоры открыли в России свои R&D центры или сотрудничают с местными аутсорсинговыми компаниями. Кто они – узнаем под катом.

image
Читать дальше →

Polygonal Mesh to B-Rep Solid Conversion: Algorithm Details and C++ Code Samples

Reading time7 min
Views5.4K
Boundary representation (B-rep) is the primary method of representing modeled objects in most geometric kernels, including our C3D Modeler kernel. The core algorithms that edit models, such as applying fillet operations, performing cutting operations, and obtaining flat projections require the precision of B-rep representations. The rapidly growing variety of 3D data in polygonal formats makes the task of model transformations from polygons into boundary representation increasingly relevant. As a result, we developed a new SDK, C3D B-Shaper, which is part of our C3D Toolkit.

image

Преобразование полигональных моделей в граничное представление: алгоритм и примеры кода

Reading time8 min
Views9.8K
В большинстве систем проектирования (САПР) основным представлением моделируемого объекта является граничное представление геометрии или B-rep (Boundary representation). Но все чаще пользователям САПР приходится иметь дело с полигональными моделями, например, полученными в результате 3D-сканирования или заимствованными из онлайн-каталогов.
Чтобы сделать их пригодными для дальнейшей работы, нужно конвертировать полигональную сетку в B-rep модель. А это совсем непросто.
Мы разработали программный компонент C3D B-Shaper, который встраивается в систему проектирования и преобразует полигональные модели в граничное представление. В этом посте покажем алгоритм конвертации и примеры реализации на С++.

image

Cosmonaut Aleksandr Laveykin about the best space movie, G-force of 20g, and soft landing

Reading time6 min
Views1.7K
Three years ago, ASCON, the parent company of C3D Labs, invited cosmonaut and Hero of the Soviet Union Aleksandr Laveykin to its Partnership Conference. As a guest speaker, he told the audience of Russian IT companies about his 174-day spaceflight and answered questions posed by conference attendees.

Up to now, the Q&A had not been translated into English. We post them for upcoming International Day of Human Space Flight (or Cosmonautics Day in Russia).

Aleksandr Laveykin flew to space in 1987 and worked as a flight engineer on board the Mir Space Station, orbiting the Earth for six months. He completed three spacewalks lasting a total of eight hours and 48 minutes.

image
Image: TASS

Военный лётчик, физик-ядерщик и главный инженер Кремля – кем были в прошлой жизни разработчики АСКОН

Reading time13 min
Views11K
Инженер по тестированию КОМПАС-3D Евгений очень хотел полететь на Луну и подал заявку в отряд космонавтов. Об этом мы и собирались рассказать в этом посте – как наш сотрудник проходил открытый отбор в экипаж нового космического корабля «Федерация». Не срослось. Женю срезали на первом этапе по медицинским показаниям.

Но благодаря более тесному знакомству с героем родилась идея другого поста. До прихода в АСКОН Женя работал на авиационном заводе, где участвовал в наземных испытаниях истребителей МиГ-29К. Немного поразведав, мы узнали, что в наших рядах есть физик, который побывал в ЦЕРНе на Большом адронном коллайдере, бывший главный инженер Коломенского кремля, военный лётчик, совершивший более 200 боевых вылетов.

Расспросили коллег с нетипичной биографией об их прошлой жизни и истории прихода в разработку.

image
Евгений Васин, руководитель отдела тестирования ЛОЦМАН:PLM

The Fall and Recovery of a Mold

Reading time4 min
Views1.6K
Software component developers tend to be far removed from the end users of the products in which their components are employed. Recently, however, we connected directly with a KOMPAS-3D MCAD user to solve an issue involving mold design. It seems that 3D models were being exported incorrectly to data exchange formats like STP, X_T, and SAT. The cause, unhappily for us, turned out to be in our С3D Modeler geometric modeling kernel. Here is how we solved the problem, quickly.

image
Читать дальше →

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

Reading time7 min
Views13K
В предыдущих статьях о геометрическом ядре C3D мы разбирали его внутреннее устройство (структура ядра, модуль визуализации) и объясняли, чем оно отличается от API CAD-системы (статья). Проявить свои качества ядро, как инструмент разработчика САПР, может только в продуктах, написанных на его основе.

Сейчас на нашем ядре выпущено более 20 коммерческих и внутрикорпоративных САПР. В обзоре мы расскажем, что это за продукты, какую роль в них выполняет ядро и в чем особенности его применения. Многие продукты, упомянутые в обзоре, уже засветились на Хабре. Мы будем давать ссылки на статьи о них.


Information

Rating
1,006-th
Location
Россия
Works in
Registered
Activity