Вдогонку к предыдущему посту

May 11, 2018 20:44


Конечно, такой навороченный инструмент, как Meshlab, не может не содержать множество кнопочек и крутилок для поддержания нормального полета. Только надо уметь пользоваться ими, чтобы попадать на землю колесами, а не крышей. А все от лени. Лень изучать документацию, разбираться, хочется как побыстрее, а оказываешься лохом. Исправляя старые ошибки, решил написать, как можно пройти в открытую дверь, не ломая стену рядом.
В один прекрасный момент meshlab поздравил меня с “успешным” сотым проектом и попросил написать отзыв для разрабов. Написал: “Can't export to VRML. The app writes error messages everytime while I open a wrl, just created by Meshlab. Would be nice, if the bug fixed. Thank you. Alex.” Разработчики, должно быть, много получают таких дурацких писем от пользователей.

В OpenSCAD сделаем какой-нибудь дурацкий домик, совершенно неважно, какой:



Сделаем рендер и экспортируем файл в STL.

Откроем STL с помощью meshlab (точнее, импортируем в новый пустой проект). Это не wings, и он прекрасно читает этот меш.



Теперь экспортируем его в файл wrl, а затем попытаемся снова импортировать. Получится вот что:



и далее



Вот это самое интересное. Faces: 0

Просто нужно было прочитать написанное мелким шрифтом. И обратить внимание на диалог, который появляется при импорте файла STL. Поэтому закроем программу, удалим все, кроме исходника sample.scad, для стерильности эксперимента, и начнем сначала. Хотя нет, оставим старый sample.wrl, просто переименуем его в old-sample.wrl.



Если навести мышь на флажок Unify Duplicated Vertices, то появляется подсказка, в которой говорится, что формат STL не индексирует вершины многогранников. А в формате VRLM это есть. Поэтому число граней и было подсчитано как 0. Снимаем флажок и продолжаем.

Файл загружается исправно, смотрим внизу:



Теперь граней столько же, но вершин аж 54 точки (а не 13 как скажет любой архимед, глядя на фигуры). Подсчитаем: 18*3 = 54. Каждый треугольник сам по себе. Когда мы оставляем галочку, объединяющую совпадающие вершины, у нас получается косяк.

Теперь экспортируем в sample.wrl снова. Поскольку теперь есть и прежний блин комом, можно их сравнить:



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

Смотрим последний sample.wrl:



Это уже большой прогресс. Попробуем оптимизировать число вершин. В меню Filters | Cleaning and Repairing видим Compact vertices и Compact faces, но эта работа оказывается напрасной, для данного формата все ОК.

Загруженный файл можно править, например, раскрасить. Затем он открывается без всяких проблем:



Так что, необходимость и в wings, и в моей утилитке отпадает начисто. Для моделирования хватит всего двух программ: openscad и meshlab. Ну, и еще librecad не помешает.

Дальше

openscad, meshlab, 3d

Previous post Next post
Up