建议优化一下犀牛的布尔运算

JewelCAD布尔运算可以说百分百成功。。非犀牛建模的曲面或者网格,导入犀牛布尔运算失败率很大,要考虑各种因素,一一排查,这样不利于提高工作效率,甚至拖慢建模效率。建议参考JewelCAD布尔运算重新优化一下

你好,请上传1个或多个布尔运算失败的模型供我们测试。

3dm,模型已发送到邮箱。

1 个帖子已被合并到了现有话题:建议Rhino优化一下鼠标选择逻辑

你好,JCAD 的布尔运算是基于网格的,处理方式和 Rhino 的曲面布尔是不一样的,效率上也会不同。

Rhino 的网格也可以做布尔运算,但是对模型本身的要求比较高,和 Rhino 中曲面布尔运算差不多。

你发的这个模型在 Rhino 中布尔运算一定会失败,因为曲面的布尔运算要遵循很多规则,例如曲面的正反面,曲面是否封闭,交线是否完整等等。

所以 Rhino 布尔运算失败通常有 2 类原因:
1.软件功能本身存在瑕疵 导致失败;
2.使用者给定的模型不满足布尔运算的条件。
通常第 2 个原因占大多数。

我看到你的模型中存在这些小问题:

  1. “假”的封闭面

  2. 重叠/距离非常接近的控制点

  3. 自交

  4. 为了快速生成曲面,遗留的缺口

就以上这些看似很小的问题都会直接或者间接的影响结果。

所以从你的模型和你的需求角度我可以给你的建议是:

  1. 如果你要用 Rhino 实现你要的结果,你要先培养良好的建模习惯和建立规范的建模流程,Rhino 的操作虽然自由,但是做模型也不能太过随意。Rhino 的自由度是由用户自己把握的,这是 Rhino 有别于其他三维造型软件比较重要的一点。

  2. 使用你目前能够快速处理布尔运算的软件,最后需要在 Rhino 中处理其他的事情可以再导入 Rhino,软件之间搭配来使用。

另外目前 Rhino 7 的曲面布尔运算相较之前的版本已经有很明显的改善,但是仍然存在一些计算方面的问题,这里就不展开讨论了。

3 个赞

犀牛基于多重曲面Brep,而你见过的大部分布尔都很顺畅的软件UG/solidworks/proE基本都是基于实体Solid的。
JCAD我不熟悉,但我可以简单介绍一下Solid架构的软件为什么布尔+倒角每次都成功

其实很简单,他的每一个物体不论做什么操作,都是保证该操作的结果是封闭实体的。如果某操作出来的结果,因为某些原因不是实体,他要么提示你,要么报错,要么不让你操作。
长此以往,除非你专门指定要求我就是要做一个单个曲面,否则所有的操作都是实体1到实体2,实体2到实体3。只要用户不特别提出要求,按照正常流程操作,永远都是实体。
在这情况下倒角和布尔永远会成功。

而犀牛不是基于Solid,举个最简单的例子,一个大球套着一个小球,如果是别的软件,会严格界定他是两种可能中的一种,要么是两个物体,大的套在小的外面,要么是一个空心球体。而犀牛你可以做个实验,他无法识别出这是一个空心球体,只能识别成两个分离的球体。
基于Brep的好处有很多,自由灵活,适合做概念设计,这也就是犀牛本身的软件定位之一,如果犀牛也按照实体Solid架构,它本身擅长做的事情就做不好,相反如果UG、proE采用Brep架构,那作为专业的机械工程类软件,他定位的实体加工和设计就完全无法实现,每个零件都要求是实体,如果中间没有软件对实体的把控,整体效率会极度下降。

而就是因为缺少实体软件里近似“傻瓜式”的实体保证,所以一旦Rhino建模过程中有一些方法错误或者疏漏,模型就无法保持实体。在能保证实体的情况下,Rhino布尔的成功率并不低。

软件都是各司其职,各有所长的。甚至有一些软件专门针对mesh做优化,例如materialise的Magic,网格的修补和布尔功能非常强大。就算网格有一些错误,他也可以自动修复并且布尔成功。我曾经就专门使用它修复犀牛输出的复杂网格。

犀牛会借鉴或引入一些优秀的算法,将来或许有一天他也能强力修复和布尔mesh,但就目前来看,针对你的具体任务时,按照Ansen老师说的两点去处理是最适合的。

6 个赞

谢谢大佬的解释,希望牛能更好更快

谢谢大佬,你的意思是架构不同,运算方式不同,结果不同。我懂

其实结果也是可以相同的,因为虽然软件的架构不同,但是底层的数学逻辑是一样的。
Solidworks可以做自由曲面,操作的好的高手也可以做出质量很高的曲面。
而Rhino也可以做复杂的布尔,我相信如果是Ansen老师去做你的模型,不敢保证100%都可以布尔,但是99%一定是没问题的。
虽然软件架构是或多或少有限制,或者说有专长。但借助自身的技术,对软件的理解和操作的经验,并没有什么是必然会导致“结果不同”的。

1 个赞

大佬对布尔的解释真的很好 工作中也要擅长利用不同软件的优势

我现在这个也是网格布尔运算失败,在这个大的山体上减去小的这一块,对比您说的几种情况,都没有
文件我附在这个链接里:
链接:百度网盘 请输入提取码
提取码:5yk6
–来自百度网盘超级会员V5的分享

因为你这里存在一个坏的网格(自交的错误),你可以使用 MeshRepair 检查到,

要找到这一组自交的网格面,并不是一件容易的事情 :joy: , 这里建议使用 Dendro 体素建模工具来处理,供你参考,


这个dendro怎么用的啊,我连接的时候出现了报错

如果你是从 Food4Rhino 下载,你也可以下载到使用手册,参考手册介绍即可。
对于这个案例,你可以参考我前面的截图,仔细对比虾明显的错误在哪里

BooleanDifference 在最新的 RhinoWIP(8.0.22347.14305, 2022-12-13) 中已经改善,测试效果很好,
MeshBooleanDifference

MeshBooleanIssue.zip (718.6 KB)

1 个赞