Извлечение 2D поверхности из 3D STEP модели
Я пытаюсь найти хороший способ программно генерировать контуры, описывающие двухмерную поверхность, из трехмерной модели STEP. Приложение генерирует код NC для программы лазерной резки из 3D-модели.
Примечание: это достаточно легко сделать в самых разных системах САПР. Я пишу программное обеспечение, которое должно делать это автоматически.
Например, это (модель STEP):
Должен стать таким (векторный файл, как SVG или DXF):
Возможно, самый очевидный способ решения проблемы - это анализ модели STEP и запуск какого-либо алгоритма для обнаружения плоскостей и выбора наибольшего в качестве поверхности разреза, а затем создания контура. Не простая задача!
Я также рассмотрел возможность использования ранее существующего SDK для рендеринга модели с помощью ортографической камеры, захвата изображения с высоким разрешением и последующей работы с ним для создания соответствующих контуров. Этот метод будет работать, но он будет загружен процессором, а его точность будет ограничена разрешением изображения в пикселях - не идеально.
Это, возможно, длинный выстрел, но у кого-нибудь есть мысли по этому поводу? Ура!
1 ответ
Я бы использовал библиотеку САПР для загрузки файла шага (не API-интерфейса САПР), искал плоскую грань с большим числом кривых ребер в цикле грани и переставлял их на плоскости XY. После этого найти 2D геометрию мин / макс для центрирования и т. Д. Будет довольно легко.
В зависимости от того, какой язык программирования вы используете, я буду искать в Google "CAD control" или "CAD component", комбинируя его с "STEP import".