Rhino实体失败的四个原因

在设计实践中,经常需要将Rhino模型导出为实体:导出stl格式进行3d打印、导出step格式进行CNC加工、交给结构工程师处理等等,可能会遇到模型不是实体的问题。这次分享浅总结一下实体失败可能存在的原因和如何修正。
带来非实体痛点的根本原因:一些实体建模软件如Solidworks、Inventor等,如果对象/零件不是实体就会报错,也阻止了用户进行破坏实体的操作,从而保证了建模对象一定是实体。而Rhino的建模逻辑是曲面成形,允许建模过程中的几何对象非实体,带来了极高的建模自由,也因此可能出现该问题。
具体原因如下:
1、曲面未闭合open
polysurface
曲面未闭合是常见的情况。
在Rhino的Brep曲面中,实体=闭合的多重曲面正常的实体物件的属性标注是“实体的闭合多重曲面”
怎么知道是不是实体? 方法1:选中物件看属性面板,或者选中物件在指令行输入"what",后者查看的信息更加详细。如果它写的是开放的非闭合多重曲面,那么说明问题出在曲面没有闭合。方法2:做一个截面(clippingplane),看物件内部是否是实心的
(图右是实心的情况)
怎么检测没闭合的地方? 曲面未闭合有时是肉眼可见的缺口,而更多时候是很难观察到的缝隙。这些缝隙由于间隙大于绝对公差,因此无法正常组合。(也就是只要两个物体连接处缝隙小于公差,Rhino就能将它们组合。绝对公差可以在Options选项中查看,一般是0.001mm)显示这些缝隙用下面这个指令很有效。
指令:ShowEdges (显示边缘)
下图中它的边缘有三个选项:①全部边缘 ②外露边缘 ③非流形边缘(后面会讲到)可以看到除了裸露的外边缘,曲面内部也有紫色的外露标记,说明这个地方有缝隙大于公差。放大这个地方,用距离检测工具(CrvDeviation)(位置:菜单栏,分析/曲线/偏离值)检测:果然大于公差的。
如何修复?
看具体情况,有时候 ①重新匹配曲面,②直接补面,③删除面重新建,④切出更大的口子来补(特殊情况下也有做倒角的处理方式), ⑤修改公差(如果实际工艺不需要这么高的精度,可以慎重修改)
2、非流形non-manifold
非流形很少见。我们生存的宇宙是流形的,因此非流形的物体是不可能出现在现实物理世界中的(说人话就是无法被加工制造出来)[1]在Rhino里面非流形物体大概有这2种情况:①两个实体只有一个边缘接触,形成的一个实体(如下图) ②不明原因
其它情况不太可能,因为Rhino都是会避免出现的,比如两个三维物体通过一个平面连接成一个物件,这是非流形但是Rhino里面应该没法组合形成。
如何修复?
通常情况下,炸开后重新组合,不明原因造成的会“神奇”消失。如果是因为有边缘接触,那么需要调整下间距和设计。
3、物件损坏bad objects
物件损坏更少见了,可以简单理解成小bug吧。官方的解释大概是这样的:通常是指物件违反了某些NURBs 规则,或是结构性问题,也可能是由其他程序汇入时造成。通常损坏的物件为曲面,但偶尔曲线也会产生损坏。
如何查找损坏的物件?
使用 SelBadObjects 指令(分析 > 检测 >选取损坏的物件
)选中,或者可以通过ExtractBadSrf指令找出损坏的曲面。
幽灵曲面
损坏物件有的时候是隐形的(没有显示网格可以显示)
这类幽灵曲面通常无法被修复,可以用SelBadObjects指令选取然后直接删除。[2]
如何修复?
炸开重新组合或者把坏面重新做一下再组合,一般就能好了。
4、曲面重合same surface
joined
这个是比较奇怪的一个情况,就是如果Rhino中的两个完全重合的曲面组合后,会被认作是封闭的多重曲面。这种“实体”是不可能被制造出来的。这个也是需要留意一下下的。