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

犀牛基于多重曲面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 个赞