BooleanUnion

工具列 功能表

主要
主要 2
实体工具

实体

联集

 启用建构历史

BooleanUnion 指令减去选取的多重曲面/曲面交集的部分,并以未交集的部分组合成为一个多重曲面。

步骤

指令行选项

删除输入物件

删除 (是) 或保留 (否) 输入物件。

 启用建构历史

删除输入物件=不支持建构历史。

BooleanDifference

工具列 功能表

实体工具

实体

差集

 启用建构历史

BooleanDifference 指令以一组多重曲面/曲面减去另一组多重曲面/曲面与它交集的部分。

步骤

  1. 选取要被减去的曲面或多重曲面,按 Enter
  2. 选取要减去其它物件的曲面或多重曲面,按 Enter

指令行选项

删除输入物件

删除 (是) 或保留 (否) 输入物件。

 启用建构历史

删除输入物件=不支持建构历史。

删除切割物件

当删除输入物件=是,删除用于从另一个物件中减去的物件。

BooleanIntersection

工具列 功能表

实体工具

实体

交集

 启用建构历史

BooleanIntersection 指令减去两组多重曲面/曲面未交集的部分。

步骤

  1. 选取一组物件或一组相交的物件,然后按 Enter 键。
  2. 如果选取了一组物件,再选取另一组物件并按 Enter 键。
删除输入物件

删除 (是) 或保留 (否) 输入物件。

 启用建构历史

删除输入物件=否支持记录建构历史。

BooleanSplit

工具列 功能表

实体工具

实体

布尔运算分割

 启用建构历史

BooleanSplit 指令从第一组多重曲面减去它与第二组多重曲面交集的部分,并以交集的部分建立另一个物件。

步骤

  1. 选取第一组物件,按 Enter
  2. 选取切割用物件,按 Enter
    切割用物件也可以同时是被切割的物件。

指令行选项

删除输入物件

删除 (是) 或保留 (否) 输入物件。

 启用建构历史

删除输入物件=不支持建构历史。

Boolean2Objects

工具列 功能表

实体工具

实体

布尔运算两个物件

Boolean2Objects 指令可以使用鼠标左键轮流切换各种布尔运算可能的结果。

步骤

  1. 选取两个物件。
  2. 在工作视窗里连续按鼠标左键做循环切换,直到得到您想要的结果。
    联集
    交集
    差集 A - B
    差集 B - A
    反向交集

指令行选项

删除输入物件

删除 (是) 或保留 (否) 输入物件。

布尔运算疑难排解

如果布尔运算失败,将会在导致计算失败的交叉位置或外露边缘处放置文字注释点,搜索这些注释点以检查导致失败的位置。

错误的详细信息可以在注解圆点中的次要文本中看到。

布尔运算指令也可以用于曲面以及开放的多重曲面,运算结果取决于物件法线的方向。使用 Dir 指令可以查看方向。如果布尔运算的结果与您期望的相反,您可以使用 DirFlip 指令反转曲面方向,然后重试。

操作之前先尝试使用 Join 指令组合曲面。

对于网格物件,操作步骤与 NURBS 物件布尔运算相同,无论输入物件是什么类型,指令的结果总会生成一个网格。

为什么布尔运算会失败?

布尔运算失败有以下原因:

曲面法线

布尔运算使用曲面法线方向决定保留和丢弃的部分。当您执行布尔差集结果却得到了布尔联集的结果,或者执行布尔联集却得到了布尔差集的结果,都是因为物件的方向与您期望的是相反的,如果一个或多个物件没有完全闭合,也会发生这种情况,这是因为 Rhino 无法确定未闭合物件哪边才是物件的外面,您可以使用 Dir 指令查看物件的法线方向,然后通过反转选项更改物件的法线方向。完全闭合的物件在未反转法线之前,法线都是指向外面的。

控制点汇集

控制点汇集是指多个控制点重叠在曲面边缘上的同一个位置。例如,圆锥体的顶点、球体的两极、三个边的未修剪曲面上都有控制点汇集,手动将控制点移动到同一个位置也可以形成控制点汇集。控制点汇集处也称为奇点。

当两个要做布尔运算的物件相交位置附近有控制点汇集时,会形成几何上的“奇点”,这种情况可能导致布尔运算失败。

曲面重叠

曲面重叠指两个曲面的某些部分共用同一个区域。在这个例子中,两个立方体表面靠在一起,物件只能做联集运算,不能做差集交集运算。

非流形的边缘

除了重叠曲面之外,非流形边缘也会导致失败。

被三个或以上网格面或曲面共用的边缘称为非流形边缘。

如何操作

如果无法执行布尔运算,可以通过其他方式获得想要的结果。

在这个例子中,锥体的顶点正好在立方体的角上,这是可能导致布尔运算失败的情况之一。

在这个案例中,作为布尔运算的替代方案,使用 Explode 指令将多重曲面炸开为数个单一曲面,使用 Intersect 指令在相交的两个曲面上求交线,使用交线修剪分割曲面,去除不要的部分然后再将需要的部分组合在一起。

PlanarUnion

工具列

功能表

平面布尔运算

曲面工具

曲面

平面布尔运算

PlanarUnion 指令可以将重叠的平面曲面合并为单一曲面。

PlanarDifference

工具列

功能表

平面布尔运算

曲面

平面布尔运算

PlanarDifference 指令执行时选取两个重叠的平面,然后第一个平面作为被减平面, 第二个平面为修剪平面,修剪掉重叠的区域。

PlanarIntersection

工具列

功能表

平面布尔运算

曲面

平面布尔运算

PlanarIntersection 指令可以从两个平面曲面的重叠区域创建一个曲面。

请参考

Rhino Wiki: Boolean FAQ

物件的布尔运算

 

 

 

Rhinoceros 8 © 2010-2024 Robert McNeel & Associates. 01-4月-2024