Конечно, такой навороченный инструмент, как 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 не помешает.
Дальше