al_fuhrmann (al_fuhrmann) wrote,
al_fuhrmann
al_fuhrmann

Category:

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

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

  • 3D модель небольшого трансформатора

    Поскольку заказчики теперь очень приветствуют не только необходимые схемы/платы/исходники прошивок, но и 3D модели, то приходится заниматься ими.…

  • Как создать 3D-модель для KiCAD

    Не используя платных программ. Для многих это проблема. Один чувак поставил исцеленный SolidWorks и после этого, каждый раз, когда он пытается…

  • Unix vs Windows

    Выступал тут один перец. Много и умно ботал за мелкомягких. Все глумился да куражился надо мной да над "жалким гнутым софтом" (имелось в виду…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment