布尔运算指令也可以用于曲面以及开放的多重曲面,运算结果取决于物件法线的方向。使用 Dir 指令可以查看方向。如果布尔运算的结果与您期望的相反,您可以使用 Dir 或 Flip 指令反转曲面方向,然后重试。
操作之前先尝试使用 Join 指令组合曲面。
网格物件的操作步骤与 NURBS 布尔运算的步骤是一样的。
无论输入物件是什么类型,指令执行结果总会输出一个网格。
布尔运算失败有以下原因:
布尔运算使用曲面法线方向决定保留和丢弃的部分。当您执行布尔差集结果却得到了布尔联集的结果,或者执行布尔联集却得到了布尔差集的结果,都是因为物件的方向与您期望的是相反的,如果一个或多个物件没有完全闭合,也会发生这种情况,这是因为 Rhino 无法确定未闭合物件哪边才是物件的外面,您可以使用 Dir 指令查看物件的法线方向,然后通过反转选项更改物件的法线方向。完全闭合的物件在未反转法线之前,法线都是指向外面的。
控制点汇集是指多个控制点重叠在曲面边缘上的同一个位置。在 Rhino 中,圆锥体的顶点、球体的两极、三个边的未修剪曲面上都有控制点汇集,手动将控制点移动到同一个位置也可以形成控制点汇集。
当两个要做布尔运算的物件相交位置附近有控制点汇集时,会形成几何上的“奇点”,这种情况可能导致布尔运算失败。
曲面重叠指两个曲面的某些部分共用同一个区域。在这个例子中,两个立方体表面靠在一起,物件只能做联集运算,不能做差集与交集运算。
除了重叠曲面之外,非流形边缘也会导致失败。
被三个或以上网格面或曲面共用的边缘称为非流形边缘。
如果无法执行布尔运算,可以通过其他方式获得想要的结果。
在这个例子中,锥体的顶点正好在立方体的角上,这是可能导致布尔运算失败的情况之一。
在这个案例中,作为布尔运算的替代方案,使用 Explode 指令将多重曲面炸开为数个单一曲面,使用 Intersect 指令在相交的两个曲面上求交线,使用交线修剪或分割曲面,去除不要的部分然后再将需要的部分组合在一起。
Rhinoceros 6 © 2010-2017 Robert McNeel & Associates. 25-6月-2018