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

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


Ug_user

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

В 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 Мб).

 

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

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


@@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 пока не пригодны. Поживем - увидим!

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

 

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

 

 

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

 

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

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

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

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

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

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

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

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

0_d888c_2b5698f0_S.png

 

0_d888d_f8971268_S.png

 

0_d888e_bed478b2_S.png

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

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

и склеил все в Solid Body.
  Изменено пользователем Bully
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...