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

Снова про импорт 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 пользователей

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




  • Сообщения

    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
    • gudstartup
      @david1920 имеется ввиду платы на системах с сертификацией опций фалом oprminf старые в расчет не принимаются вы свой 18i восстановили?
×
×
  • Создать...