gpt4 book ai didi

openscad - 为什么我的 "waterproof"多面体会导致 "WARNING: Object may not be a valid 2-manifold and may need repair!"?

转载 作者:行者123 更新时间:2023-12-02 21:00:27 26 4
gpt4 key购买 nike

在脚本中

difference() {
polyhedron(
points=[[0,0,0],
[2,0,0],
[2,1,0],
[0,1,0],
[0,0,2],
[0,1,2]],
faces=[[0,1,2,3],
[5,4,1,2],
[5,4,0,3],
[0,1,4],
[2,3,5]]);
cube([1,1,1]);
};

单独的多面体工作正常(渲染时没有警告),但是添加上面的立方体会导致警告警告:对象可能不是有效的2-歧管,可能需要修复! 被记录,输出仅渲染某些表面的某些部分。

我在 Ubuntu 16.04 上使用 OpenSCAD 2015.03-1。

最佳答案

这是因为你的polyhedron有一些面指向错误的方向,导致计算 difference() 时出现问题.

请参阅ManualFAQ了解详情。

更改受影响多边形的缠绕顺序可修复 polyhedron :

 difference() {
polyhedron(
points=[[0,0,0],
[2,0,0],
[2,1,0],
[0,1,0],
[0,0,2],
[0,1,2]],
faces=[[0,1,2,3],
[2,1,4,5],
[5,4,0,3],
[0,4,1],
[2,5,3]]);
cube([1,1,1]);
};

差异仍然是非流形的,因为切割 cube结果是 2 个棱柱形物体仅在一个边缘接触。根据定义,这也不是 2 流形,因此警告仍然存在。

根据导出模型的使用方式,您可以选择忽略此警告并希望处理 3D 模型的工具能够处理该问题。

要消除该问题,例如 cube可以做得小一点,比如 cube([1, 1, 0.999]) .

一个不相关但仍然有用的防止以后出现问题的策略是始终使切割对象更大一点,以确保不会留下非常薄的平面,例如使用cube([2,3,1.999], center = true) 。这也将删除 display artifacts in preview mode .

关于openscad - 为什么我的 "waterproof"多面体会导致 "WARNING: Object may not be a valid 2-manifold and may need repair!"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38579567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com