Облако точек в файл STL

У меня была просьба к другу, чтобы я распечатал Батиметрию озера Мичиган в качестве подарка для ее научного руководителя. Я зашел в NOAA, и на сайте было несколько файлов по батиметрии озера Мичиган.

Файлы и типы расположены здесь: http://www.ngdc.noaa.gov/mgg/greatlakes/michigan.html

Я пытаюсь преобразовать это в файл STL для печати на моем 3D-принтере, однако мне не удается преобразовать это в сетку, которую я могу использовать. Я пробовал несколько подходов с различными файлами, которые перечислены в списке, но, похоже, не могу правильно преобразовать их в сетку. До сих пор я пробовал следующее:

-Импортируйте файл .xyz в MeshLab, чтобы преобразовать его в STL. После импорта он выглядит так, как будто ничего не импортировано, и я не могу перемещаться по файлу

-Импортируйте файл ASC в MeshLab, чтобы преобразовать его в STL. После импорта я не получаю ошибок, но на выходе получается длинная тонкая сетка, которая совсем не похожа на озеро Мичиган

-Просто для проверки я импортировал файл .xyz в Autodesk ReCap, чтобы посмотреть, что произойдет. Я заметил, что точки находились в длинной тонкой области, похожей на импорт ASC, но, осмотревшись, я заметил, что каждый слой точек был фактическими контурами батиметрии.

Я перепробовал несколько подходов и программного обеспечения помимо этого, но, похоже, не могу преобразовать файлы в сетку для печати, которой я могу управлять, чтобы отправить на свой 3D-принтер.

, 👍6

Обсуждение

http://www.cadforum.cz/cadforum_en/how-to-convert-a-point-cloud-to-an-editable-3d-cad-model-mesh-tip9512, @Kevin Morse

Я бросил быстрый взгляд на файл .xyz. Кажется, что он содержит сетку точек, перекрывающих озеро. Они представлены в формате Долготы, Широты, высоты и расположены рядами по широте. Самые северные широты, 46,00-46,09 градуса, имеют NAN для высот. Это, вероятно, сломало большую часть программного обеспечения. Набор данных простирается от -88 до -84,5 в длину и от 41,62 до 45,99 лат, что хорошо покрывает озеро https://c1.staticflickr.com/3/2682/4036834071_74d19b6327_b.jpg, @Ron Jensen


3 ответа


Лучший ответ:

4

Чтобы правильно извлечь файл STL из облака точек, вам понадобится какой-нибудь инструмент, который поможет триангулировать точки для создания правильных векторов. Оболочка, созданная в STL, - это то, что будет "нарезать"механизм нарезки.

Я не так хорошо знаком с полным потенциалом MeshLab, но я бы подумал, что этот инструмент лучше всего подходит для файлов, в которых, по крайней мере, уже есть большая часть оболочки. По сути, лучше всего подходит для исправления STL.

В прошлом я использовал (очень дорогую) Unigraphics NX8. Это программное обеспечение CAD/CAM очень мощное и имеет инструменты для создания сеток из облаков точек. Я считаю, что это был инструмент sew, который позволил мне сделать это в прошлом (у меня больше нет доступа к программному обеспечению). Другие программы САПР, такие как SolidWorks, Rhino, AutoCAD и т.д., Могут иметь аналогичные функции.

В качестве альтернативы, я думаю, похоже, что вы сможете преобразовать 3D-облако точек в SketchUp. Если облако многослойно по высоте и каждый слой имеет точки на одной плоскости Z, то вы можете автоматизировать создание линий между ближайшими точками на одной плоскости. Тогда может потребоваться немного ручного труда, чтобы "исправить" модель, чтобы она была готова к 3D-печати. Также ознакомьтесь с этим сообщением на форуме, похоже, кому-то повезло с преобразованием облаков точек местности.

В качестве альтернативы, рассматривали ли вы возможность преобразования изображения в STL? Я делал это много раз раньше, и это получается довольно хорошо. Если вы можете найти топографическую карту озера, вы можете изменить изображение в оттенках серого (немного поиграйте с ним). Затем используйте программное обеспечение для преобразования изображения в оттенках серого в STL.


,

Спасибо, ТБМ! Я проверю их сегодня вечером и дам тебе знать. Я также признателен вам за то, что вы рассказали немного о прошлом., @Jonathan Littleton

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

Просто последние новости. Прошлой ночью я использовал различные методы и ссылки, которые вы предоставили, и я попытался "CloudCompare" импортировать облако точек. Первоначально у него были те же проблемы, что и у MeshLab, пока я не понял, что ось z по какой-то причине вытянута при импорте. Я исправил это, и я действительно видел батиметрию, но в наземной части озера был какой-то странный шум. Я продолжу сегодня вечером и, возможно, вернусь к MeshLab теперь, когда я знаю, что у оси z есть эта проблема и как ее исправить., @Jonathan Littleton

Ты указал мне верное направление. Я использовал CloudCompare для импорта облака, а затем растеризовал облако и экспортировал его в файл STL. Спасибо за вашу помощь., @Jonathan Littleton

Итак, удалось ли CloudCompare устранить шум, который вы обнаружили в облаке точек? Спасибо за обновление, мне придется начать изучать CloudCompare для будущих проектов!, @tbm0115

Я не мог использовать функцию шумоподавления, так как это вывело бы мой компьютер из строя. Я избавился от большей части шума, отключив импорт на береговой линии. Затем я импортировал в MeshMixer, чтобы очистить то, что я мог, в оставшихся данных., @Jonathan Littleton


1

Я смог загрузить коллекцию файлов по ссылке, которую вы опубликовали, хотя я не использовал ни один из файлов сетки, так как они казались неподходящими для этой задачи. Затем файлы форм были импортированы в AutoCAD с помощью пробной версии Spatial Manager.

Полученный рисунок указывает на то, что он выполнен в 3D. Когда выбран инструмент 3D орбита, изображение поворачивает плоский чертеж.

Я сохранил файл AutoCAD DWG и импортировал его с помощью SketchUp, якобы не самой умной программы для такого рода вещей. В результате получилось плоское изображение, а не трехмерное.

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

,

0

Вы можете сделать это с помощью MATLAB или, возможно, Octave (версия MATLAB с открытым исходным кодом). Я делаю это прямо сейчас, чтобы напечатать глобус с преувеличенной топографией и батиметрией. В MATLAB есть множество инструментов для импорта данных. Я уверен, что вы можете импортировать данные батиметрии озера Мичиган, хотя вам, возможно, придется искать сценарий импорта на MATLAB.

Пока вы можете импортировать свои данные в виде 2D-матрицы значений X, Y и Z, вы можете использовать функцию surf2stl() Билла Макдональда, доступную здесь:

https://www.mathworks.com/matlabcentral/fileexchange/4512-surf2stl

Это создает STL, который вы можете использовать. Обратите внимание, что это всего лишь поверхность, поэтому вам нужно будет придать ей глубину каким-то другим способом, чтобы ваш печатный объект не был тонким, как бумага.

,