QQ登录

只需一步,快速开始

扫一扫,访问微社区

犀牛建筑网

查看: 27804|回复: 2

犀牛软件工具:NURBS 布尔运算

[复制链接]
发表于 2013-10-8 10:51:20 | 显示全部楼层 |阅读模式
犀牛网校
NURBS 布尔运算
附注:
  • 在启动指令之前预选第一个物件或全部物件。
  • 布尔运算指令也可以使用于曲面和开放的多重曲面,其结果与被选取的物件的法线方向有关。您可以使用 Dir 指令检查曲面的方向。如果布尔运算的结果和您所预期的不一样,也可以使用 Dir 或 Flip 指令反转曲面的法线方向后再试一次。
  • 如有需要,请先使用 Join 指令将数个曲面组合成为一个多重曲面。
  • 网格物件的布尔运算请使用网格 布尔运算指令。


BooleanDifference
从一组多重曲面或曲面减去与另一组多重曲面或曲面交集的部分。
步骤:
  • 选取第一组物件,按 Enter
  • 选取第二组物件,按 Enter


BooleanIntersection
减去两组多重曲面或曲面未交集的部分。
步骤:
  • 选取第一组物件,按 Enter
  • 选取第二组物件,按 Enter




BooleanUnion
减去两组多重曲面或曲面交集的部分,并以未交集的部分组合成为一个多重曲面。
步骤:
  • 选取数个物件,按 Enter
    所有的物件会结合成一个多重曲面。


BooleanSplit
以两组多重曲面或曲面交集及未交集的部分分别建立多重曲面。
步骤:
  • 选取第一组物件,按 Enter
  • 选取切割用物件,按 Enter
    附注:切割用物件也可以同时是被切割的物件。


Boolean2Objects
可以用鼠标左键循环切换布尔运算的结果:并集、交集、差集 ( A - B 和 B - A )、反向交集。
步骤:
  • 选取两个物件。
  • 在作业视窗里连续按鼠标左键做循环切换,直到得到您想要的结果。

网格布尔运算网格布尔运算的操作方式与 NURBS 布尔运算相同。
附注:不论参与布尔运算的物件类型为何,建立的都是网格物件。
MeshBooleanDifference
从一组网格、多重曲面或曲面减去与另一组网格、多重曲面、曲面交集的部分。
请参考:BooleanDifference 指令的说明。


MeshBooleanIntersection
减去两组网格、多重曲面或曲面未交集的部分。
请参考:BooleanIntersection 指令的说明。


MeshBooleanUnion
减去两组网格、多重曲面或曲面交集的部分,并以未交集的部分组合成为一个网格。
请参考:BooleanUnion 指令的说明。


MeshBooleanSplit
以两组网格、多重曲面或曲面交集及未交集的部分分别建立网格。
请参考:BooleanSplit 指令的说明。

布尔运算疑难排解

以下是几个可能造成布尔运算失败的原因:
  • 曲面的法线方向不正确。
  • 两个物件交集处的有控制点重叠在一起 ( 汇集点 )。
  • 物件可能有某部分的曲面重叠或相切。



曲面法线布尔运算以曲面的法线方向决定物件的哪一个部分应该被删除,当您想做布尔运算差集的时候得到的结果确是并集 ( 反之亦然 ),这是因为曲面的法线方向相反所造成的。
两个曲面有部分重叠或只有互相接触没有实际的交集时,布尔运算非常容易失败。一个物件的某一个部分深入另一个物件,有明确的交集而且没有相切,布尔运算才能成功。




控制点汇集点曲面一个边缘上的所有控制点重叠在同一个位置称为汇集点。在 rhino 里,圆锥体的顶点、球体的两极、三个边的未修剪曲面都有汇集点,手动将控制点移动到同一个位置,也可以形成汇集点。
当两个物件的交集处有汇集点时,也会造成布尔运算失败。

重叠的曲面当两个曲面有部分重叠时,例如:两个立方体只有两个面互相接触。这种情形只能做并集,而无法做差集和交集。

替代方法如果两个物件无法做布尔运算,您可以使用其它的方法得到同样的结果。
在上面的范例里,圆锥体的顶点和立方体的角位于同一个位置,这样的情形会造成布尔运算失败。
您可以将物件炸开成个别的曲面,使用 Intersect 指令计算不同曲面之间的交线,再以建立的交线修剪或分割曲面,最后再将曲面重新组合在一起。




回复

使用道具 举报

发表于 2014-8-15 17:44:20 | 显示全部楼层
感谢你的分享,么么,辛苦了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|网站地图|BIM|rhino3d ( 沪ICP备19001822号-2 )

GMT+8, 2024-4-24 05:32 , Processed in 0.044562 second(s), 20 queries .