Jump to content

Программное создание STEP-файла со сплайном


Recommended Posts

ETEMA

Сейчас я занимаюсь программной генерацией stp-файлов содержащих набор сплайнов. Но к своему удивлению обнаружил что форматом step передаются только B-Spline-ы. Неделю копал документацию и интернет. Генерировать b-spline получается, но b-spline строится по узлам, а задача построить сплайн, проходящий через заданные точки. Нашел книгу Springer The NURBS Book вроде бы там есть алгоритм описывающий нахождение узлов b-spline по набору точек. Но он описан не достаточно подробно. И поэтому возник вопрос, быть может в формате step есть инструкции описывающие сплайн, проходящий через заданные точки.

Link to post
Share on other sites


UnPinned posts
Ветерок
18 минут назад, ETEMA сказал:

Но к своему удивлению обнаружил что форматом step передаются только B-Spline-ы.

Я вот прямо сейчас создал новый файл (в Крео, если имеет значение). Нарисовал в нем один сплайн. Сохранил в СТЕП. Открыл этот Степ - там этот сплайн.
СТЕП-файл прилагаю.

 

18 минут назад, ETEMA сказал:

Сейчас я занимаюсь программной генерацией stp-файлов содержащих набор сплайнов.

ЗАЧЕМ?

qethqej.stp

Edited by Ветерок
Link to post
Share on other sites
ETEMA

Да всё верно, файл генерируется. Но он использует описание сплайна по узлам B_SPLINE_CURVE_WITH_KNOTS. И найти узлы b-сплайна проходящего через заданные точки не является тривиальной задачей. И да такое действие я проделал уже много раз и в разных системах моделирования. Все системы при генерации stp используют именно B_SPLINE_CURVE_WITH_KNOTS. Хотя в спецификации step существует такие инструкции как b_spline_curve. Но почему-то не получается создать рабочий файл.

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

Я вот прямо сейчас создал новый файл (в Крео, если имеет значение). Нарисовал в нем один сплайн. Сохранил в СТЕП. Открыл этот Степ - там этот сплайн.
СТЕП-файл прилагаю.

 

ЗАЧЕМ?

qethqej.stp 5 \u041a\u0431 · 0 скачиваний

Конечная цель - большая красная кнопка). Текущая задача - автоматизированное построение поверхности на основании расчетов в программном модуле.

Link to post
Share on other sites
Ветерок
19 минут назад, ETEMA сказал:

Текущая задача - автоматизированное построение поверхности на основании расчетов в программном модуле.

По-моему, вы пытаетесь решить задачу "в лоб".

Что является результатом расчета?

В каком софте будет использоваться (или строиться) полученная поверхность?

 

Может быть, озадачиться не построением сплайнов или точек, а построением сразу рассчитанной поверхности?

 

Более того, иногда имеет очень существенное значение - даже принципиальное значение - метод построения поверхности. Если это кинематически изменяемое по определенному закону сечение, то достаточно описания этой кривой и закона её изменения.

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

Но многие автоматизаторы не понимают таких элементарных вещей. Просто потому что они думают совсем о другом.

Edited by Ветерок
Link to post
Share on other sites
ETEMA

результат расчета - набор точек, через которую должна проходить поверхность. Ну или хотя бы сплайн.

Link to post
Share on other sites
Ветерок
1 минуту назад, ETEMA сказал:

результат расчета - набор точек, через которую должна проходить поверхность

Жуть, конечно, но, если так хочется, то стройте стразу поверхность через эти точки. Без всяких сплайнов. Разберитесь как это построить без участия человека.

 

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

Link to post
Share on other sites
Ветерок
18 минут назад, ETEMA сказал:

результат расчета - набор точек

Раньше я говорил, что надо разобраться в методе. Откуда взялись эти точки. Скорее всего, их координаты взяты с вычисленного сечения. И надо разобраться что лежит в основе того сечения - произвольная кривулина, или вполне конкретная линия типа параболы, дуги или даже прямой. Тогда воссоздание таких сечений станет элементарной задачей.

А если выяснится, что и метод построения поверхности достаточно простой (типа поверхности вращения), то всё станет ещё на порядок проще.

 

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

 

Какого рода поверхности? Лопатки турбин? Крыло самолета?

 

И ещё. Задание поверхности по набору точек - это тянется со времен кульмана. Когда только огромной таблицей с координатами точек можно было описать форму поверхности.

Сейчас, если поверхность "рассчитана", значит есть математическое описание этой поверхности. И лучше всего получить воплощение этой поверхности, используя именно это исходное математическое описание, а не таблицу с точкам, как сто лет назад.

Edited by Ветерок
Link to post
Share on other sites
ETEMA

Сложная кривая произвольной формы или "произвольная кривулина" . Можно сказать в общем виде.

И еще раз: по узлам сплайн получается строить, но он проходит только через первую и последнюю точки, а необходимо чтобы походил через все заданные. Поэтому и обратился на форум. Здесь должны быть люди, которые со step-ом на ты. И смогли бы мне подсказать куда копать. А так-то да - сейчас копаю во всех направлениях и построение поверхностей, и рассматриваю другие форматы обмена данных. Но пока дальше всего в stp продвинулся.

Link to post
Share on other sites
maxx2000

@ETEMA т.е. ты пишешь свой интерпретатор облака точек в поверхность?

Link to post
Share on other sites
Ветерок
1 минуту назад, ETEMA сказал:

по узлам сплайн получается строить

Ну так надо чтобы в той мученической таблице были координаты узлов, а не самих точек. Ведь есть математическое описание поверхности. Пусть его преобразуют в узлы, а не в точки.

Но выше я добавил абзац.

Link to post
Share on other sites
ETEMA
1 минуту назад, maxx2000 сказал:

@ETEMA т.е. ты пишешь свой интерпретатор облака точек в поверхность?

Да, всё верно

Согласен. Это было одной из первых мыслей. И в теме я про это написал. Сложный алгоритм какой-то. Вот думаю может проще можно сделать.

всё в одну кучу написал. Ну вы поняли..)

Link to post
Share on other sites
Ветерок
4 минуты назад, ETEMA сказал:

Сложный алгоритм какой-то.

Так ведь и поверхности сложные. Или простые, типа конуса?

Link to post
Share on other sites
ETEMA

сложная крученая аэродинамическая поверхность с постоянно меняющимся профилем

Link to post
Share on other sites
Ветерок
7 минут назад, ETEMA сказал:

сложная крученая аэродинамическая поверхность с постоянно меняющимся профилем

Думается, Туполв, Сухой и прочие уже давно решили эту задачу. Ещё на ЭВМ с перфокартами. Причем, даже с учетом деформации крыла в воздухе.

 

Разжую ещё. Даже если по сечениям. Каждое сечение лучше строить не по точкам, а по уравнению. Ведь можно получить уравнение каждого сечения.

Edited by Ветерок
Link to post
Share on other sites
maxx2000

@ETEMA может и усложняешь

Скачать видео

 

Link to post
Share on other sites
Kelny
20 минут назад, ETEMA сказал:

Согласен. Это было одной из первых мыслей. И в теме я про это написал. Сложный алгоритм какой-то. Вот думаю может проще можно сделать.

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

 

Думается, что алгоритмы преореобразования облака точек в поверхности ещё не достигло нужных высот, что бы программа сама всё делала хорошо, обычно САПР предлагают такой вариант взаимодействия с участием человека:

Overview_Flowchart.gif

https://help.solidworks.com/2023/russian/solidworks/scanto3d/c_scanto3d_overview.htm

Link to post
Share on other sites
GS

Стандарт STEP 203 -  он же -

ISO 10303-203:2011

Industrial automation systems and integration — Product data representation and exchange — Part 203: Application protocol: Configuration controlled 3D design of mechanical parts and assemblies

на сайте ISO.org - https://www.iso.org/standard/44305.html  имхо далее в - магазин там же за швейц франки (STORE) 

-----

Российский стандарт - ГОСТ Р ИСО 10303-203-2003

Скачать - https://files.stroyinf.ru/Data2/1/4294814/4294814830.pdf

+ на сайте фонда https://docs.cntd.ru/document/1200034272 - в виде текста и таблицы, более читабельно 

-----

+ сопутствующий 242-й

ISO 10303-242:2020

Industrial automation systems and integration — Product data representation and exchange — Part 242: Application protocol: Managed model-based 3D engineering

на сайте ISO.org - https://www.iso.org/standard/66654.html    +магазин

------

Российский стандарт - ГОСТ Р ИСО 10303-242-2019 

Скачать - https://files.stroyinf.ru/Data2/1/4294814/4294814830.pdf

===

Скрытый текст

IGES-ом интересуетесь ? Есть 5.3 и 6?? 

:dirol:

 

Link to post
Share on other sites
ETEMA

Спасибо. Да, построение поверхности по облаку точек в cad  системе - это уже пройденный этап. Хочется же чтобы Большая Красная Кнопка была.) 

Link to post
Share on other sites
Kelny
1 минуту назад, ETEMA сказал:

Да, построение поверхности по облаку точек в cad  системе - это уже пройденный этап. Хочется же чтобы Большая Красная Кнопка была.) 

Ну тогда осталось дело за малым и просто СОЗДАТЬ СВОЙ САПР, который будет в том числе создавать STEP файлы из рассчитанной математической модели.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.




  • Сообщения

    • butulec
      ваш выделенный bomline.parent() (но это есть вы на 1 уровне, если нужно на любом надо поискать)
    • Александр1979
      Привод на две оси. Они обе неисправны?
    • mamomot
      Тема сегодняшней публикации - кондуктор для сверления. 8_2_1 Кондуктор для сверления.pdf
    • kanapello
      Здравствуйте может кто поможет , револьверная головка потеряла позицию . Станок токарно-фрезерныйVoest-Alpine WNC 300 ЧПУ Sinumeric 880t После индексации револьверной головы  все равно осталась ошибка  Из документации только схема электрическая  . Я нашел модуль который отвечает за смену позиции он самописный от производителя станка называется FB223 Сигнал F 58.3 связан с этой ошибкой он в единице . если поднять в единицу F 180.4 принудительно и  также принудительно  в единицу  I127.0    , то сигнал F 58.3 пропадает, я понял  из этого куска в FB 223 я понялAN =SKAKA F 252.7S =A.VE***     CX    DX 150     O    I 127.0     RB    =A.IX     RB    =A.VE     RB    =A.LZ     RB    =A.PO     ошибка уходит , но как это сделать в блоке FB 223 , что бы он сам это сделал , я не понимаю. схема https://disk.yandex.ru/i/zS_pfFwnkg9yZw plc https://disk.yandex.ru/d/wM6QiZVDggiK2g FB 223 https://disk.yandex.ru/d/aYB5RLXclmO4Fg
    • mamomot
    • Lyxey
      Подскажите где находятся настройки Симулейта или как шаблон изменить? Вывод результатов расчета: единицы измерения, опции показа. Каждый раз в новом расчете выставляю МПа, градиентный тон, деформированное, шкала 0...325МПа...  
    • Pasha94
      поставил Mail_server_charset=CP1251 - приходит все отлично, на почтовике KOI-8R стоит
    • Богоманшин Игорь
      На ваших деталях замечательный конус, его и надо использовать для зажима массива деталей
    • Viktor2004
      Да, спасибо. Но ничего не поменялось. Параметры в соответствии с таблицей установились, но поведение движков не поменялось. Думаю привод неисправен
    • Cefius
      Вставил такой код после блока -Отключение сообщений и графики- :  FOREACH tp IN folder ('Toolpath') { ACTIVATE TOOLPATH $tp.Name EDIT TOOLPATH LEADS RAISEFORM EDIT TOOLPATH START TYPE POINT_SAFE EDIT TOOLPATH END TYPE POINT_SAFE PROCESS TPLEADS LEADS ACCEPT } но переходы от одного элемента массива к другому все равно ниже заготовки, это не помогло. И еще макрос у меня останавливается на первом же IF. думаю из за того что изначально папок с именем "1" в проекте нет. Пустые NC файлы создаются чтобы вставить в них траектории массива (это первый пункт желаемых улучшений). Сейчас после завершения макроса это делает инженер вручную, перетаскиванием. Как это автоматизировать не знаю.
×
×
  • Create New...