Перейти к публикации

API для САПР форматов (IGES, STEP, Parasolid)


Рекомендованные сообщения

Мне надо написать программу, которая создаёт поверхность определённой формы и сохраняет в файл. Потом это откроют в SolidWorks. Существует ли какая-нибудь доступные библиотеки или API для доступного языка программирования, чтобы создавать, открывать, изменять, сохранять всё в стандартных форматах (например, IGES, STEP, Parasolid или другие, если подскажете)?

 

(Я пока ручками написал код для STL -- он очень простой. Но это, конечно, нелучший способ.)

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...


UnPinned posts

Студент?

09.08.2021 в 19:04, ostapb сказал:

написал код для STL

В stl нет поверхностей. Там только сетка. Советую начать с изучения того, какая программа с чем работает.

09.08.2021 в 19:04, ostapb сказал:

Потом это откроют в SolidWorks.

И офигеют. Надеюсь, ты успеешь убежать на достаточное расстояние.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
19.08.2021 в 18:07, Ветерок сказал:

Студент?

В stl нет поверхностей. Там только сетка. Советую начать с изучения того, какая программа с чем работает.

И офигеют. Надеюсь, ты успеешь убежать на достаточное расстояние.

 

1) Нет, не студент.

2) STL хранит сеточную поверхность. Т.е. состоящую из треугольников. Я ж написал, что через программа, работающая через STL, уже есть. И эта поверхность в SolidWork уже внедрена. Но там есть нехорошие костыли.

3) Какая программа с чем работает, я знаю. Я знаю, что STL плохо подходит. Задача очень специфическая. Поверхность не конструкторская, очень специфичной формы. И она-таки сеточная, рассчетная.

4) Так вот и спрашиваю: есть ли программные библиотеки для STEP, Parasolid, ...?

 

19.08.2021 в 18:01, Maik812 сказал:

запишете макрос в солиде, путем записи действий.

 

Поверхность, которую надо внедрить, получена расчётами в виде треугольной сетки из сотен точек. Я пытался сделать через VBA под Солидом. Но очень там запутанная COM-модель -- не нашёл, где сеточные поверхности строятся.

Может быть, они там есть? Я просто недокопал?

Если есть такие инструменты в VBA, я могу и так попробовать.

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, ostapb сказал:

STL хранит сеточную поверхность

От того, что ты называешь сетку поверхностью, сетка не станет поверхностью. Сетка и поверхность - это разные классы объектов. С разной математикой. Сетка может по-своему описывать некоторую поверхность, но в смысле математики сетка не является поверхностью (такой, как NURBS или Безье). Любая программа работает не с определениями, а с математикой.

Изменено пользователем Ветерок
Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, Ветерок сказал:

От того, что ты называешь сетку поверхностью, сетка не станет поверхностью. Сетка и поверхность - это разные классы объектов. С разной математикой. Сетка может по-своему описывать некоторую поверхность, но в смысле математики сетка не является поверхностью (такой, как NURBS или Безье). Любая программа работает не с определениями, а с математикой.

 

Господин Гуру, прекращай гнуть понты. Я выпускник и доцент кафедры прикладной математики и информатики. Среди, предметов, которые я веду, есть "Математическое моделирование на ЭВМ" и "Численные методы для инженерных задач". Я знаю, что такое поверхность, сетка, сплайны, интерполяция, МКЭ, триангуляция, дифференциальная геометрия и т.д. С программами CAD и CAE я работал с 98 года. Это были автокад, про/инженер, про/механика, ансис, комсол и т.д. С SolidWorks не работал. Вот и спрашиваю теперь.

 

Хотя, собственно не про сам SolidWorks, а о программировании. На C++ или C#. Мне нужны туда API для инженерных форматов -- я положу туда то, что надо. Тебе есть, что сказать?

 

(Хотя возможен вариант, использовать COM-модель SolidWorks. Очень сложная. До сплайн-поверхностей докопаться ещё не удалось.)

19 часов назад, Ветерок сказал:

От того, что ты называешь сетку поверхностью, сетка не станет поверхностью. Сетка и поверхность - это разные классы объектов. С разной математикой. Сетка может по-своему описывать некоторую поверхность, но в смысле математики сетка не является поверхностью (такой, как NURBS или Безье). Любая программа работает не с определениями, а с математикой.

 

https://ru.wikipedia.org/wiki/STL_(формат_файла)

 

STL (от англ. stereolithography) — формат файла, широко[4][5] используемый для хранения трёхмерных моделей объектов для использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным. Свое название получил от сокращения термина «Stereolithography», поскольку изначально применялся именно в этой технологии трехмерной печати.

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, k_v сказал:

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

 

Понятно. Мне бы сами функции. Имена, способы вызова. Т.е. например, макрос я создал:

 

Dim swApp As Object
Dim Part As Object
Sub main()

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc


End Sub

 

Ссылка на сообщение
Поделиться на других сайтах

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

Или всё это Вам не нужно?

Ссылка на сообщение
Поделиться на других сайтах

Задача сама по себе специфична. Есть одна задумка (не моя) -- может быть, она оказаться ошибочна и мы от неё откажемся. А может и не оказаться. Сейчас я её реализую -- чтобы потом увидеть. То, что внедрять такую поверхность в беталь -- нездоровое занятия, мы знаем. Я сам это коллегам объяснил. Но одно дело предполагать, а другое -- знать. Техническая возможность безусловно есть. Вот и посмотрим. Нетривиальность задачи, очевидно, в том, что поверхность желательно некоторым образом упростить, т.е. аппроксимировать. Я и буду это делать. Затыка в способе записи результата.

 

И главное, дело вовсе не в STL. Исходные данные -- расчёт в ANSYS. Я написал программу, которая загоняет их в STL, просто потому что STL -- очень простой открытый формат. Я захотел загнать данные в STEP. А он сложный. Самому программировать будет долго. Я резонно решил, что должны существовать API для STEP, Parasolid или хотя бы для IGES. А их нет! Я не нашёл! Сие странно.

 

О готовых программах.

В Солиде конструкторы мне показали ScanTo3D. Но с качеством результата есть проблемы. ScanTo3D очень произвольно обращается с данными, удаляет точки и, хуже всего, меняет границы. Понятно почему это происходит -- он использует только точки и игнорирует соединяющие их линии. И вообще, у ScanTo3D просто другая задача. Других инструментов в Солиде пока не нашли. (Опять таки повторюсь: доступна COM-модель через макросы Солида. Возможно мне придётся разбираться в ней до конца.)

 

 

Ссылка на сообщение
Поделиться на других сайтах

Как-то давно, я получил от одного известного НИИ расчетную кривулину в виде таблицы из 20 точек с 6 знаками после запятой. Кривая научная - надо её точно воспроизвести. Вбил все эти 20 точек с 6 знаками после запятой в CAD (данные получил на бумаге, не в файле). Смотрю на эти точки, и их расположение мне что-то очень напоминает. Взял я две крайние точки и одну среднюю, и построил по этим трем точкам дугу. И - о чудо! - все эти 20 точек ровнехонько легли на эту дугу. Я смотрю на это волшебство и глазам не верю. Позвонил в это умное НИИ (благо в одном городе) и спрашиваю: "Эта волшебная линия, которую вы мне прислали - это дуга окружности?" Они радостно отвечают: "ДА, дуга!". Я им: "Вашу мать! Для задания дуги достаточно ТРЕХ точек! Зачем вы мне вывалили 20 штук?" А они: "У нас программа так выдает." Занавес!

К чему я всё это? Иногда результаты расчета выглядят гораздо сложнее, чем то, что они на самом деле описывают. Так и у Вас может быть миллион точек, которые описывают какую-нибудь обычную сферу или праболоид.

Ссылка на сообщение
Поделиться на других сайтах

@ostapb Попробуйте стороннее приложение для Солида - Power-Surfacing

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
07.09.2021 в 17:29, ostapb сказал:

Я написал программу, которая загоняет их в STL, просто потому что STL -- очень простой открытый формат.

если у Вас стл уже есть, может конвертнуть в другой формат? Попробывать конвертеры? Библиотеки для конвертации stl есть , в Рино или 3д макс.

Перегнал вроде получилось.. Да вопросы есть по смене формата. Ну вы перегоните в другой формат и редактируйте как хотите и тд.

 

 

Jpeg_0012.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



  • Сообщения

    • naumov.a.i
      можно подробней, как построить плоскость с низу понимаю, опускаю вектор на нужную глубину и с помощью сурфейс фром старою поверхность, а дальше что за инструмент? если с можете наглядно построить такую поверхность и скинуть видео, либо по телефону объяснить, если требуется оплата не вопрос, готов оплатить ваше время и знания.
    • KSVSVK
      Решаю задачу о входе тела в атмосферу. Предопределенной траектории нет. Давление и температура среды -- функции от высоты. Для расчета высоты на временном шаге нужно ее значение с предыдущего шага. Как его получить?
    • Aurifer
      Проблему решил, но логику не понял.  При попытке зафиксировать любой из 4-х валов получал ошибку.  В случае с первым валом, было дублирующее сопряжение в основной сборке. Удалил.  С другими 3-мя валами я не понял смысл: Удалил сопряжения валов "концентричность" с отверстиями кронштейнов. Вместо них добавил "расстояние" между центрами 0мм. Кронштейны в формате step, отверстия целиком не выбираются, можно выбрать только верхнюю или нижнюю часть цилиндра. Возможно в этом дело.  Сборку могу выложить если нужно. Только скажите как или куда здесь принято. 
    • maxx2000
      строишь на дне рамки плоскую поверхность с скругленными углами, затем по двум направляющим протягиваешь дугу. За направляющие берёшь кромку рамки и кромку поверхности на дне
    • naumov.a.i
      добрый день всем, вопрос такой, я новичок в райно, не могу понять как построить поверхность по направляющим прямым, задача, красными линиями обозначено как должен выглядеть контур заглубления,пробовал по всякому, получается какая та хрень, помогите кто понимает как строить замкнутые поверхности такого плана, сильно не пинайте, я только в самом начале пути по изучение. данного продукта
    • Maik812
      есть версия SW2014 и ниже (там в старой версии есть бибилиотека фаил выбран и он юзается его можно поменять от другой версии , но не просто все так как приложение на 18 закончелось). Для F3 Солид-расширения в настройках меняете не листером а прогой и ссылку на нее (СВ вьювер например) ДЛЯ второго окна быстрого простмотра я ставил плагин IEView и там прям вот работать можно было. вопрос какая винда и СВ увас. Ну и не кто не теребит и не просит просмотрщиков. Есть галка в настройках средствами Exploer но там плохие картинки для эскизов только . еще IEView
    • maxx2000
      Неужто прочитал справку 
    • maxx2000
      "Эх, малыш, не в пирогах  портфолио счастье."
    • Бестолковый
      @maxx2000 Портфолио есть, по запросу в ЛС могу выслать, выкладывать сюда "простыню" смысла не вижу.   @4Zzz Что и в какую сторону менять - не совсем понятно, так что пусть всё будет так как оно есть ;)  
    • Нафаня
      Всем у кого текли слёзы от размера линий в арткам. Их можно сделать по толще. Настройка на скриншотах ниже.
×
×
  • Создать...