Как из файла stl получить чертежи

Обновлено: 06.07.2024

Данный вопрос очень часто возникает при переброске модели из сеточного формата в CAD
Сейчас он встал по переписке с пользователем DEM
Известные и опробованные мной варианты на сегодняшний день.
1) Распознавание сеточной геометрии средствами солидворкс. По моему работает оно довольно плохо, во всяком случае у меня никогда не получалось
2) Rhino - команды mesh to surface . Данная программа замечательна тем, что ориентирована одинаково неплохо на оба типа геометрии, то есть имеет наборы команд и для того и для другого, а также поддерживает пару десятков разнообразных форматов обеих типов. Пробовал - в целом хорошо на простой геометрии
3) Salome-Platfrom. В geom модуле File>Import>Выбрать stl, Затем Repair>Union Faces.
Получается нормально для плоских поверхностей без скруглений. После применения New Entity > explode возникает 2 Faces и куча Edges оставшихся от сетки. Далее можно попробовать выделить Faces с нажатым shift и применить New Entity > Build для получения общей Shell
Можно попробовать Repair >Remove extra edges с опциями. В общем данная программа по сути конструктор и дает доступ ко всем составным частям твердотельной модели, зависит только от знаний пользователя. Файл stl прикладываю в архиве
Какие есть еще варианты?

Последний раз редактировалось ETCartman, 18.05.2016 в 04:09 .

Salome-Platfrom
ТО что надо.
Скорее всего в пайтоне тоже есть какой то модуль который работает с сетками, он скорее всего тоже может преобразовывать.
Там в принципе алгоритм для плоских фигур довольно простой.

Скорее всего в пайтоне тоже есть какой то модуль который работает с сетками

Нет, я вообще питоном мало занимался. Только поставил и запустил эту штуку

Все открытое что есть, типа freecad и occ (и все что появится в будущем) - основано на том же Salome, то есть на открытой библиотеке opencascade
В Salome тоже есть интерфейс к пайтон и поддерживаются скрипты с включением любой функции которая есть в интерфейсе. Также есть генератор макросов из процесса интерактивной работы
DEM можете выложить модель stl из скада чтобы попробовать ее преобразовать и размешировать (например из треугольной сетки в структурированную)
Естественно все данные кроме геометрии будут утеряны. И колонны тоже я подозреваю будут утеряны после перевода в stl
Еще таким образом можно получить тела из оболочек. То есть после преобразования оболочек ограничивающих замкнутую полость можно получить уже тела.

ETCartman
Но ведь существуют и другие форматы открытые, типа iges\dxf\msh

Форматы геометрии есть сеточные (представление всего треугольниками) и нативные (условно точные) как STEP/IGES. Первые сравнительно просто программируются но могут терять точность в процессе преобразований. Самые мощные программы для работы с сеточной геометрией - это Blender3d и 3dMax. Это не CAD программы - их назначение это арт и визульное представление объектов.
Opencascade единственная в своем роде открытая библиотека которая работает с нативными форматами. То есть их и закрытых библиотек во всем мире по пальцам можно пересчитать, потому что это программы с очень сложной математикой, требующие долгой профессиональной разработки большими коллективами и длительного тестирования. Естественно, большинство открытых решений просто берет opencascade за основу. Хотя есть мелкие программки типа SolveSpace и gcad3d которые сами чего то делают, но там очень бедная функциональность как правило и они на многое не претендуют.
dxf это по сути сеточный формат в 3д, для 3д не удобный. msh это формат сетки в GMSH, но там речь идет о конечно-элементной сетке. Для работы с твердотельной геометрией в GMSH также встроен Opencascade
Выложите пожалуйста какой нибудь практический stl модели из скада - я попробую преобразовать его в твердотельную геометрию с возможностью последующей доработки в CAD

Последний раз редактировалось ETCartman, 18.05.2016 в 10:26 .

в dxf тела хранятся как бинарный объекты

ETCartman
Вот два файла.
В Salome-Platfrom к сожалению не нашел возможности, преобразования сетки в суфрайсы(у меня под винду версия).
Думаю наверное все таки будет самым оптимальным установить python и pythonocc
Потом с помощью библиотеки работать с данными.
Можно будет и отображать результаты расчетов и сетку делать, т.к. для python и интерфейс GMSH есть.

И под винду и под линукс работает одинаково. Сетка автоматом переводится в поверхности при импорте (рисунок 1 в топ посте) далее задача - сделать их плоскими просто (убрать треугольники)
PS после объединения поверхностей нужно выделить фичу в дереве и выбрать ПКМ Show Only (иначе показывается все - в том числе и сетка)
Вот скрины для выложенного файла 1.stl
К загруженному stl применяется Remove Extra Edges с опцией Union Faces (чтобы видеть результат надо применить к этой фиче show only)
Полученная поверхность может быть перемеширована под другую сетку (показано на рисунке - алгоритм Netgen1D-2D с рекомбайном треугольников в квадраты)
Также выкладываю zip с файлом HDF

Последний раз редактировалось ETCartman, 18.05.2016 в 15:45 .

ETCartman
А msh может подгрузить Salome-Platfrom.
И еще там по сложнее файл был, его уже по этапам надо будет конвертить??

msh 1 и 2 (3 планируется) - внутренний сеточный КЭ формат GMSH и больше нигде не поддерживается.
Для модели номер 2 разница в том что загрузка stl выполняется долго. Такие вещи в Salome (как и в GMSH) лучше делать скриптами в BATCH режиме (в этом случае программа не подвисает и можно оперировать очень большими сетками)
Хотя в данном случае я делал все интерактивно (просто свернул окно программы и оно грузилось само по себе полчаса). Программа забрала примерно 1,5 ГБ оперативки (64 бит версия). Операция слития сурфайсов заняла несколько секунд.
Меширование лучше делать с крупной сеткой сначала (если много элементов надо в настройках поменять предельное количество отображаемых элементов).
Netgen не очень скоростной мешер (примерно раз в 5 медленнее коммерческих) Где то я читал что его можно приблизить по скорости к коммерческим (просто отключить какие то опции типа всяких проверок, но я не в курсе как)

Последний раз редактировалось ETCartman, 18.05.2016 в 18:07 .

Блин круто.
Надоть подумать, что все таки лучше использовать.
Либо Salome-Platfrom либо FreeCad.
Еще надо придумать как сохранять информацию о стержнях.
В общем то похоже создание своего препроцессора вполне возможно.

На самом деле такое преобразование работает хорошо только для простых плоских сеток. Использовать конечно перспективней Salome потому что это оригинальная программа от производителей открытой библиотеки (французско - нижегородской компании), а Freecad всего лишь попытка одиночек-любителей на основе той же самой библиотеки получить некий универсальный CAD.
Функциональность Salome намного выше и она заточена как раз на построение сеток для профессиональных расчетов.
На самом деле сложная сеточная геометрия транслируется в твердотельную с множеством артефактов и дефектов. И ее приходится дорабатывать много вручную перед тем как построить сетку. В Salome есть целое семество функций Repair для этой цели - но оно тоже помогает не всегда. То же самое верно для Rhino, который предназначен для архитекторов и модели выдает не очень корректные с точки зрения автоматической генерации сетки (например много дублирующихся линий, дыры в поверхностях и тд). Я пробовал считать на основе райновских моделей - получается очень со скрипом и тоже надо вручную дорабатывать (что сложнее чем построить с нуля иногда).
Мне смысл передачи stl из SCAD не очень понятен. Тогда уж логичней строить все в Salome или в каком то другом профессиональном твердотельном CAD с последующим мешированием в Salome и передачей сетки (с группами узлов и элементов) в SCAD (либо автоматическим формированием текстового файла SCAD на основе данных Salome)
Так чтобы свободно гонять сетки туда сюда - это сложно и граничные условия будут каждый раз теряться.
Salome идет в паре с расчетной программой Code-Aster, для сквозного проектирования и расчета. Можете изучить этот механизм (на основе именованных групп) и приметь то же к SCAD. Получится как бы интерфейс к SCADу
Кроме того сам Salome поддерживает создание пользовательского интерфейса, так что все операции можно встроить прямо в его окна. Там есть примеры такого рода.
Второй вариант работы с STL сеткой в Salome - это импортировать ее сразу в mesh модуль. В этом случае импорт происходит почти мгновенно (так как не требуется распознание и перевод сетки в твердотельные треугольные поверхности). В mesh модуле есть свои операции - например можно автоматом объединить треугольники для получения структурированной сетки. Можно задать группы, проверить всевозможные параметры качества и так далее (перекинуть в другие программы)

Последний раз редактировалось ETCartman, 19.05.2016 в 01:07 .

Что то не получается через Salome получить суфрайсы.
Последовательность у меня следующая.
1. Запускаю программу Salome.
2. Захожу в модуль MESH
3. Файл импорт stl
4. Захожу в модуль Geom
5. Выбираю Repair>Union Faces
И выскакивает окошко.

логично не получается. потому что что union faces команда geom модуля для геометрии. а если вы загрузили сетку в mesh модуле - то у вас геометрии нет (потому что сетка геометрией не является сама по себе). чтобы применять команды geom модуля нужно импортировать stl в нем же

логично не получается. потому что что union faces команда geom модуля для геометрии. а если вы загрузили сетку в mesh модуле - то у вас геометрии нет (потому что сетка геометрией не является сама по себе). чтобы применять команды geom модуля нужно импортировать stl в нем же

А прям в программе нельзя это сделать.
А то получается что стержни теряются.

все в одной программе, только модули разные. в первом случае из геом модуля грузится сеточный формат stl и распознается как геометрия (занимает некоторе время)
После чего выполняются преобразования полученной геометрии в geom модуле (можно достроить модель, добавить убавить - работать будете как в CAD с геом примитивами типа сурфайсов) После преобразований в геом модуле можно перейти в меш модуль и автоматически разбить нужную сетку на сурфайсах.
во втором случае сетка импортируется в mesh модуле как сетка и с ней можно выполнять любые преобразования из тех, что есть в mesh модуле (например рекомбинировать, сглаживать сетку, объединять ее с другой сеткой, создавать группы и тд) При этом естественно геом модуль сетку не видит, потому как это сеточная геометрия а не nurbs
Также во freecad есть модуль сеточный и есть твердотельный (на основе библиотек Salome) и они не пересекаются.
вот 1 мин видео первого способа во вложении

Последний раз редактировалось ETCartman, 19.05.2016 в 17:56 .

Я правильно понял задачу - нужно из скадовской сетки получить один полигон с отверстиями и сохранить это в dxf?


Вам нужно было конвертировать файл STL в DWG? Изучите это краткое простое руководство по конвертации STL в DWG как оффлайн так и онлайн.

Чем отличается STL и DWG?

STL — это стандартный формат, используемый в 3D-печати. Информация о поверхности хранится в форме треугольников, образующих сетку. Данный формат создается практически в любом программном обеспечении для 3D-моделирования, в дальнейшем его можно обработать в слайсерах для 3D печати , таких как Simplify 3D или Cura.

С другой стороны, у нас есть файлы DWG, который являются исходным форматом файлов AutoCAD . DWG хранит двухмерные и трехмерные векторные изображения и полностью совместим с другими программами САПР, поэтому он является одним из наиболее часто используемых форматов файлов во многих отраслях.

Конвертация STL в DWG с использованием Blender


Есть несколько способов конвертировать STL в файл DWG, но один из самых простых способов сделать это в Blender. Программное обеспечение позволяет открывать файлы STL и экспортировать их в DXF, формат файла, совместимый со всеми версиями AutoCAD. А после открытия файла DXF в AutoCAD вы сможете сохранить его в виде файла DWG.

  1. Откройте свой файл STL в Blender.
  2. Перейдите в меню «Файл » и выберите «Экспорт », отобразится список форматов файлов. Выберите параметр AutoCAD ( .dxf) и сохраните его.
  3. Если опция DXF отключена, вам нужно всего лишь перейти к настройкам пользователя (Ctrl / Cmd + Alt + U), набрать «DXF » в строке поиска и активировать опцию «Импорт -экспорт».
  4. После сохранения файла откройте его в AutoCAD и сохраните в формате DWG.

STL в DWG онлайн конвертер


Если у вас на компьютере не установлен Blender, не беспокойтесь. Существуют онлайн-конвертеры, которые позволяют загружать файлы STL и преобразовывать их в файлы DWG одним щелчком мыши. Веб-сайт CAD Forum предлагает бесплатное веб-приложение , которое преобразует STL в файлы DWG. Ограничение по размеру загружаемого файла — 20 МБ.

  1. Сначала выберите файл, который нужно конвертировать, с вашего компьютера и дождитесь завершения загрузки.
  2. Выберите целевой формат DXF и нажмите кнопку Convert.
  3. Cкачайте преобразованный файл и откройте его в AutoCAD.
  4. После открытия сохраните его как файл DWG.

Заключение


Как видите, преобразование файлов STL в DWG не так сложно. Мы рекомендуем использовать программное обеспечение с открытым исходным кодом Blender потому что оно позволит вам манипулировать сеткой. Надеюсь, это руководство ответило на ваш вопрос о переходе.


Спросите любого, кто печатает 3D модели и он скажет вам, что файлы STL это тот формат который нам нужен. Формат STL является особенным, потому что он может представлять любую трехмерную модель, используя треугольники. В дальнейшем данный формат экспортируется в GCode по средством слайсеров.

Конечно, есть и другие способы представить модель, кроме треугольников. DXF является одним из таких способов. Это было реализовано компанией Autodesk вместе с их фирменным форматом DWG. Цель этого альтернативного формата состояла в том, чтобы создать формат, открытый для всех.

DXF — не простой формат для конвертации. Формат DXF может содержать и исключать информацию в зависимости от используемого приложения. Вот почему при конвертации в STL вы должны знать, содержит ли ваш файл DXF 3D или только 2D контент.

Преобразование 2D DXF


Чтобы преобразовать 2D DXF в STL, сначала нужно конверитировать его в SVG. SVG — более широко используемый формат для 2D-чертежей, предоставляющий больше возможностей для преобразования 2D-чертежа в 3D-модель STL.

Отсюда не стесняйтесь следовать нашему руководству SVG to STL. Имейте в виду, что файлы DXF не указывают единицы измерения и следовательно, часто требуют коэффициента мастабирования.

Конвертирование 3D DXF


Как упоминалось ранее, Autodesk создал формат DXF. Поэтому самый простой способ конвертировать в STL — это использовать их программное обеспечение. Вы можете скачать пробную версию AutoCAD с их сайта. Следуйте внимательно, чтобы конвертировать ваш DXF в STL.

Шаг 1: Открытие файла DXF

  1. Откройте AutoCAD.
  2. Убедитесь, что вы используете рабочее пространство для 3D-моделирования, нажав на значок шестеренки (внизу справа).
  3. Перейдите в «Открыть » -> «Рисование », а затем выберите свой файл.

Шаг 2: Преобразование файла

  1. Выделите весь ваш объект, выделив его курсором / лассо.
  2. Перейдите на вкладку «Сетка » -> «Преобразовать в поверхность».
  3. Выберите весь свой объект снова.
  4. Перейдите на вкладку «Поверхность » -> «Скульптура ».

Шаг 3: Экспорт файла

  1. Перейдите в «Экспорт » -> «Другие форматы».
  2. Выберите желаемое место.

Совет по масштабированию


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

Часто скачивая ту или иную модель сталкиваемся с ситуацией, что в ней что-то не устраивает, или хочется изменить. Но когда стандартными средствами попытаться открыть формат STL в CAD программе, мы получаем лишь его графическую оболочку, которую невозможно редактировать. В этом уроке разберем как легко и просто открыть, распознать, внести изменения и редактировать STL-модель а так же как перевести ее в твердое тело.

Видеокурс по этой теме

Видеокурс «Моделирование в SOLIDWORKS. Полное руководство»

Видеокурс «Моделирование в SOLIDWORKS. Полное руководство»

Как открыть stl в SolidWorks

Запускаем программу SolidWorks и нажимаем: Файл > Открыть

Во всплывающем новом окне переходим к Все файлы и указываем STL формат.

STL-модель в SolidWorks

После данной операции появляется кнопка “Параметры”. Нажимаем на ее.

STL-модель в SolidWorks

Импорт stl в SolidWorks

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

STL-модель в SolidWorks

Как перевести stl в твердое тело SolidWorks

Указываем тип импортирования как твердое тело. Выбираем единицы измерения миллиметры (или же другой нужный формат).

STL-модель в SolidWorks

После того как параметры установлены, выбираем необходимый STL-файл и нажимаем на кнопку “Открыть”.

Читайте также: