OpenSCAD не может визуализировать объединение двух многогранников, но может отлично просматривать их
Я сталкиваюсь с тем, что, честно говоря, кажется ошибкой в OpenSCAD, но я не могу поверить, что что-то настолько простое может выявить ошибку. Я пытаюсь отобразить следующий код:
module tri_prism(base1, base2) {
polyhedron([
base1[0], base1[1], base1[2],
base2[0], base2[1], base2[2]],
[[0,1,2],[3,4,5],
[0,1,4,3],[1,2,5,4],[2,0,3,5]],
convexity=5);
}
union() {
tri_prism(
[[0,0,0],[0,1,0],[1,0,0]],
[[0,0,1],[0,1,1],[1,0,1]]);
tri_prism(
[[2,1,0],[2,0,0],[1,1,0]],
[[2,1,1],[2,0,1],[1,1,1]]);
}
Это должно сделать две (неперекрывающиеся) треугольные призмы, например:
Однако это изображение является только предварительным просмотром. Когда я нажимаю F6, он визуализирует это, причем визуализируются только треугольные основания:
И консоль показывает это предупреждение, значения которого я не знаю, потому что я новичок:
UI-WARNING: Object may not be a valid 2-manifold and may need repair!
Каждая из призм по отдельности рендерится просто отлично, но две из них вместе - нет. Кроме того, это не просто проблема внешнего вида, так как экспортируя его как STL и открывая в Cura, я вижу ту же бесполезную чепуху.
Это ошибка или я делаю что-то не так? И если это ошибка, то как мне ее обойти?
@nc404, 👍7
Обсуждение1 ответ
Лучший ответ:
Это случай "Неправильно упорядоченных лиц".
Это означает, что порядок, в котором вершины, составляющие одну или несколько граней, находятся не в правильном порядке. Вершины грани должны быть перечислены по часовой стрелке с точки зрения камеры, смотрящей на грань, образующую внешнюю часть многогранника.
В этом случае задача может быть решена путем переупорядочения грани [0,1,2
]
многогранника tri_prism как, например, [0,2,1]
.
Неупорядоченные грани можно найти, включив опцию "Собрать вместе" в меню " Вид " и "Предварительный просмотр". Лица, о которых идет речь, будут показаны пурпурным цветом.
Почему же тогда, если грани неправильно упорядочены, призмы по отдельности выглядят просто прекрасно? Я предполагаю, что лица должны быть правильно упорядочены, чтобы получить правильный рендеринг. Поведение рендеринга просто неопределенно для многогранников с неупорядоченными гранями. В некоторых ситуациях это может сработать, но это не гарантировано.
Edit: я забыл добавить, что, на мой взгляд, это не должно быть проблемой, и что если это такая большая проблема для подпрограммы рендеринга, она должна разумно переупорядочить неправильно упорядоченные грани в прелюдии. Это позволило бы новичкам избежать таких ненужных неприятностей.
- Существует ли простой способ разделения моделей в OpenSCAD?
- OpenSCAD linear_extrude из многопутевого импорта svg
- .STEP/.F3D to .Файл SCAD?
- Как указать начало вращения в openscad
- Библиотека OpenSCAD для пустого пространства/отверстий
- OpenSCAD "not valid 2-manifold" полезная информация
- Рендер OpenSCAD (F6) завершается ошибкой "ERROR: CGAL error in CGAL_Nef_polyhedron3()"
- Создание "куска пирога" в OpenSCAD?
Если вы открываете эти файлы в Cura, то, вероятно, вы собираетесь (в конечном итоге) напечатать их в 3D, как только исправите проблему, описанную в вашем вопросе?, @Greenonline