Ug_user

Снова про импорт STL (OBJ) в NX..

82 сообщения в этой теме

В 100500-й раз про эту тему.  Может быть чуть-чуть новый подход к решению этой задачки, может быть - кому-то это будет интересным и полезным.
 
STL - сеточный файл, в котором вся геометрия объекта описана в виде последовательности треугольничков и нормалей этих треугольничков. Попытка решить задачу конвертации в лоб, передавая описание этих треугольничков в STEP, IGES - обречена на провал. Может быть даже будет создан выходной файл, но при импорте этого файла в NX (да и в любую другую систему) - будет клинч.
Понятное дело, если треугольничков в исходном файле не больше десятка - это вполне решаемая задачка. Интерес представляют STL-файлы из 100 000 и более элементов.
 
Меня эта тема давно свербила, прежде всего из-за необходимости обрабатывать STL-модели (результаты сканирования, медицинские изделия после томографа и т.п.) на станке с применением многоосевой обработки. Лет 10 назад была написана User Defined стратегия NX для обработки в 5-ти осях, пользуюсь ей до сих пор.
 
Но вот задачка затащить большой STL в NX в виде Solid body или Sheet body - как-то в фоновом режиме не отпускала.
Не так давно написал DLL для тупого построения каждого треугольничка в виде Bounded PLane c последующим Sew в твердое тело. Импорт начинается ОООЧЕНЬ резво, но после примерно 1000-2000 треугольничков скорость построения падает до черепашьей, и замедляется с каждым новым треугольником. Дело в том, что после построения любого нового элемента NX делает update всему дереву построения, и чем раскидистей это дерево - тем медленнее он это делает.
Для небольших файликов это прокатывало, ряд моделей станочков для CSE-симуляции я выдрал с реальных станков и импортировал в NX, но всегда ж хочется большего...
 
Пришла идея писать все треугольнички сразу в базу Parasolid (BREP). В конце концов - живет же в NX сеточная модель, нормально вертится-крутится...
Сделал очередную DLL.
В качестве подопытного кролика выбрал вот этого греческого воина:

post-8361-0-21594500-1475837973_thumb.jpg

189286 треугольничков.

Когда я подсунул этого воина на импорт - он закачался на пару минут(!), нужно сказать - я отключил отображение элементов, отключил update. Соответственно - в дереве ничего нет. Делаю команду FIT - ничего.. А вот когда нажал кнопочку Save - тут началось самое интересное - вылетело сообщение даже не NX, к сожалению - я его не сохранил, сообщение от OpenGL о том, что требуемый набор геометрических примитивов не может быть разом выведен на экран!!

Перегруз. Тогда я сделал следующее - пересортировал треугольнички в STL так, чтобы каждый следующий имел с одним из предыдущих общее ребро.
Сделал последовательную закачку по 10000 треугольничков, с последующим объединением в sheet body, и так - до конца файла.

NX поскрипел пару часов - но сделал!
Вот результат.
post-8361-0-96462600-1475837686_thumb.jpg

Пока это Sheet Body - "донышка" в исходной модели не было, я его добавил средствами NX и склеил все в Solid Body.

 

NX великолепно работает с этой моделью, размер файла 200 МБ. (Размер сеточного файла был 54 Мб).

 

Как-то так...

7 пользователям понравилось это

Поделиться сообщением


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


@@Ug_user, а обработку не попробовал запускать? Ну пусть будет до фрезы ф1 :smile:  

Поделиться сообщением


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

Нормально работает. На реальном станке покажу.

Поделиться сообщением


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

А плавность поверхностей при обработке сохраняется? Тот же шлем, например? Или тупо обрабатывает каждую плоскость как плоскость?

Поделиться сообщением


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

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

Поделиться сообщением


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

Поделиться сообщением


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

NX поскрипел пару часов - но сделал!

Не более чем "совет/размышление по поводу" уважаемому Ug_user.

Я думаю, что можно эти два часа значительно сократить ...

Есть подозрение, что львиную долю из этих 2-х часов времени,

уходило на отрисовку геометрии на экране ...

построили новый треугольничек - перерисовка и т.д. и т.п.

Если строить на невидимом слое д.б. значительно быстрее ...

Или перед построением задать очень маленький масштаб изображения ...

Поделиться сообщением


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

Спасибо за совет, но - перед построением я НАМЕРТВО заморозил любую отрисовку в графическом окне, и в дереве примитивов. После импорта - ни на экране, ни в дереве - НИЧЕГО. Но вот при нажатии кнопочки Save треугольники частично материализуются (они есть в дереве проекта, НЕ ПОГАШЕНЫ), но на экране их нет.

И вот только после закрытия файла и открытия его вновь они "оживают". Я пока не до конца в этом разобрался - разберусь!


Про плавность. Обработает каждую плоскость как плоскость. Другой информации о геометрии у NX нет...

Поделиться сообщением


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

точно такой же подход можно использовать в rhino | grasshopper

там втягивается stl и для каждого треугольника выполняется операция выталкивания

в конце попарно для каждой призмы булево сложение 

 

если интересно,  могу подогнать исходники

делали модель мультяшного "фиксика"

 

треугольников было несколько тысяч (сейчас уже не помню, но точно меньше 10 000)

grasshopper считал менее 10 минут (+ ноут был слабый),

но солидворкс потом скушал твердое тело без проблем и ошибок

Поделиться сообщением


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

"После станка доработать напильником."

Поделиться сообщением


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

На дереве не будет заметно. Подшкурим малость..

Поделиться сообщением


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

Похожую тему отправил на форум SIEMENS. Мне там отвечают: "Классная работа! Только ты ужаснешься, когда узнаешь, что в NX11.0.1 все это будет штатно!"... Технология Convergent Modeling. Правда, честно говорят, что для обработки в 5-осях эти Convergent Models пока не пригодны. Поживем - увидим!

1 пользователю понравилось это

Поделиться сообщением


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

 

Ого, а я как-то просмотрел мимо этого видео. Очень интересная штука получается.

 

 

1 пользователю понравилось это

Поделиться сообщением


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

 

Посмотрел описание формата STL.

Стало интересно.

А время сортировки треугольников в Вашем алгоритме в зависимости от количества треугольников линейное?

Изменено пользователем Ленивый

Поделиться сообщением


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

Я маленько схитрил. Из STL выбросил в OBJ, он выводит уже связанные треугольники. Но - вершинами.

1 пользователю понравилось это

Поделиться сообщением


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

Прикольная тема - бородатых STL дядек в NX втрамбовывать.

Тоже рискнул 300К осилить

0_d888c_2b5698f0_S.png

 

0_d888d_f8971268_S.png

 

0_d888e_bed478b2_S.png

Поделиться сообщением


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

А кромсать можно ?

 

или "графическое тело"  :smile:

Поделиться сообщением


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

0_d88c3_57df26b7_S.png

Но не нужно. Это ж не обросший ветерок, а Геракл как-никак.

1 пользователю понравилось это

Поделиться сообщением


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

GS, так с чего и началось-то? Почитай самый конец топика

и склеил все в Solid Body.
  Изменено пользователем Bully

Поделиться сообщением


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

Body(1), из сообщения #16...а что в нем ....теперь буду знать, Спасибо !  

Изменено пользователем GS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
"После станка доработать напильником."
Решается сглаживание при обработке.

Поделиться сообщением


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

Так до конца не уловил, можно ли в NX12 загрузить STL файл с помощью Convergent Modeling и можно ли выполнять обработку по этой модели в дальнейшем?

Поделиться сообщением


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

Так до конца не уловил, можно ли в NX12 загрузить STL файл с помощью Convergent Modeling

Да

46 минут назад, avantourist сказал:

можно ли выполнять обработку по этой модели в дальнейшем?

Да, в стандарте любую кроме 5-ти осевой

1 пользователю понравилось это

Поделиться сообщением


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

Тогда следующий вопрос, а как это сделать с помощью Convergent Modeling . Желательно по шагам)

Что это вообще за Convergent Modeling, отдельная программа?или может быть функция в NX?

Поделиться сообщением


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

Файл - импорт - STL.

Поделиться сообщением


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

огда следующий вопрос, а как это сделать с помощью Convergent Modeling . Желательно по шагам)

Что это вообще за Convergent Modeling, отдельная программа?или может быть функция в NX?

File -> Import -> STL -> в окне найти Face body output type -> выбрать опцию Convergent

После импорта в Part Navigator появится Convergent body

1 пользователю понравилось это

Поделиться сообщением


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

Не могу найти в 12-й версии импорт STL, неужели убрали эту функцию?

Безымянный.png

Изменено пользователем avantourist

Поделиться сообщением


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

Не могу найти в 12-й версии импорт STL, неужели убрали эту функцию?

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

Поделиться сообщением


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

В бесконечность))) Огонь, все получилось!Спасибо!

Поделиться сообщением


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

Огонь, все получилось!

Сильно не радуйтесь. Попробуйте теперь его обработать...

1 пользователю понравилось это

Поделиться сообщением


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

Огонь, все получилось!Спасибо!

Номер карты в личку отправил ))

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, tm-ares сказал:

Сильно не радуйтесь. Попробуйте теперь его обработать...

только об этом подумал)) Тогда весь смысл теряется, а как быть тогда? Я так понимаю четырех осевую обработку можно без проблем делать!Для меня это подходит, детали из-за которых я задался этим вопросом я смогу обработать и без пятой оси.

Просто подумал, а если захочу какой-нибудь барельеф фрезернуть!?

Поделиться сообщением


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

Просто подумал, а если захочу какой-нибудь барельеф фрезернуть!?

Тогда пишите @Ug_user

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, Профессор_/*\_ сказал:

да, да без проблем, совсем без проблем! 

если начнутся вдруг проблемы то ты сразу к @grOOmi обращайся. и тряси его пока проблемы не решит.

Бедняга, опять забанили...

Поделиться сообщением


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

Я правильно понимаю, что Конвергентное тело, STL, нельзя задать как деталь, и соответственно обработать?

Поделиться сообщением


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

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

Поделиться сообщением


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

@Bully

Да, тело пусть хоть целиком...

То, что в деталь не загружается, это нормально?

И какими стратегиями тогда можно обработать?

Вот такое, например...

Интересует стратегия - радиальная.

ZnakS_538X520.jpg

Изменено пользователем kotbarsik

Поделиться сообщением


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

Интересует стратегия - радиальная.

 

Под стратегией понимают обычно в NX тип операции (cavity mill, Z-level и пр.). Какие именно воспринимают, какие нет, не могу сказать. Приходилось иметь дело только один раз с обработкой STL. То ли Z-level, то ли fixed_contour помог. Перебирал несколько стратегий тогда

1 пользователю понравилось это

Поделиться сообщением


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

@kotbarsik

Siemens NX 9.0 - Rapid Surface Example  
Hide  
1 пользователю понравилось это

Поделиться сообщением


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

Я правильно понимаю, что Конвергентное тело, STL, нельзя задать как деталь, и соответственно обработать?

Можно. Надо только секрет один знать.

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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