点云和网格处理完了,手里有了一张还算干净的三角网格模型。但这玩意儿没法直接拿去开模,也没法改尺寸。真正的活儿才刚刚开始:把这张静态的网格,变成可编辑、可修改、可传承的参数化CAD模型。
这一章我分两部分讲。规则几何占逆向建模工作量的七成,我们先把它啃下来。自由曲面占三成,但技术含量最高,放后面重点说。

3.1 建模策略的选择树
拿到一个网格模型,第一件事不是开软件画图,而是花五分钟做策略分析。这个零件是什么类型的?最终要用来干什么?
规则几何占主导的零件,比如手机壳、螺丝柱、卡扣、定位孔,这些特征都有明确的数学定义。平面就是平面,圆柱就是圆柱,不需要也不应该用自由曲面去拟合。策略是:从网格上提取截面线或者特征边界,然后用正向建模的命令重新画出来。
自由曲面占主导的零件,比如汽车后视镜外壳、玩具公仔的脸、人体工学鼠标,这些形状没法用简单的几何描述。策略是:先搭出主要的特征线,然后用曲面命令把面蒙出来。
还有一个混合型的,比如一个带曲面外观的电子烟外壳,外观面是自由曲面,内部结构全是规则几何。这种要分而治之,先把外观面逆向出来,再在内部重新画结构。
很多新手犯的错误是:不管什么零件,上来就用曲面拟合命令,企图让软件自动把网格变成曲面。拟合出来的面通常控制点巨多,文件巨大,而且后续没法修改。这是典型的偷懒行为,后面要吃大亏的。
3.2 规则几何的重建,七成工作量的解法
规则几何的逆向,核心思路就一句话:用正向建模的手法,把扫描数据当参考,重新画一遍。
截面线提取,从网格到草图
在Geomagic Design X或者NX的逆向模块里,有一个功能叫截面线扫描。说白了就是用一个平面去切网格,切出来的交线就是截面线。
这个命令的用法很有讲究。对于圆柱面,切出来的截面线应该是一个圆弧。但网格本身有噪点,切出来的线往往是锯齿状的。这时候不要直接用这条线去画圆,而是把这条线作为参考,手动画一个圆去拟合它。
具体操作:在圆柱的高度方向取三个位置切出三个截面圆,分别拟合出三个圆的直径和圆心位置。如果三个圆的直径相差在0.02毫米以内,说明这是个直圆柱,取平均直径就行。如果直径有明显变化,说明这是个锥面或者变形了,需要进一步分析。
对于平面,不需要切截面线,直接用提取平面的命令得到平面的法向和位置。然后在平面上画草图,草图的轮廓从网格的边界投影得到。
拉伸旋转扫掠,正向命令的逆向用法
特征提取完成后,剩下的就是正向建模的基本操作了。
拉伸:适用于等截面的特征,比如直壁、螺丝柱、加强筋。拉伸方向从提取的平面法向获得。拉伸高度从网格上测量。
旋转:适用于回转体,比如瓶盖、旋钮。先提取旋转轴,可以从圆柱的轴线获得,也可以手动画一条线。然后用一个过轴线的平面去切网格,得到母线,旋转生成实体。
扫掠:适用于截面沿路径变化的特征,比如弯管、手柄。先提取扫掠路径,可以从网格的中心线提取。然后在路径的几个关键位置提取截面,用扫掠命令生成曲面。
偏差控制,用数据说话
规则几何重建完成后,必须要做的一步是偏差分析。
把重建的CAD模型和原始网格放在一起,用3D比较功能生成偏差彩图。红色的区域表示CAD比网格凸出,蓝色的区域表示CAD比网格凹陷。
对于规则几何,偏差应该控制在什么范围?配合面,比如定位销孔、螺丝柱内壁,偏差要小于0.02毫米。外观面,可以放宽到0.05毫米。非配合面,比如内部减胶槽,0.10毫米以内就行。
如果偏差超标了,不要整个模型一起调整,那样会破坏其他地方的精度。用变形命令或者替换面命令,只修正超差的局部区域。
有个经验:规则几何重建的偏差,大部分来自网格本身的变形。注塑件脱模后会有收缩和翘曲,扫描得到的网格已经是一个变了形的零件。如果你照着变形的网格重建出一个变形的CAD,那这个CAD是没有参考价值的。正确的做法是:如果变形量在公差范围内,按理论几何重建,忽略微小变形。如果变形量超出公差,说明模具或者工艺有问题,需要单独分析。

3.3 自由曲面的重构,A级面的诞生
自由曲面是逆向建模中最考验功力的部分。规则几何有标准答案,自由曲面没有。同样的一个曲面,不同的人做出来,光顺度和偏差天差地别。
特征线分析,读懂曲面的骨架
拿到一个自由曲面网格,先别看面,先看线。曲面的特征线就是它的骨架。
怎么找特征线?两个方法。
第一个方法是看曲率变化。在Geomagic里打开曲率分析,曲率变化剧烈的地方就是特征线。比如一个汽车后视镜外壳,镜面区域和壳体区域的交界处,曲率会有一个明显的变化。
第二个方法是看高光。在软件里给网格打一个虚拟的高光,移动光源方向,观察高光在曲面上的流动。高光发生转折或者断裂的地方,就是特征线的位置。
把特征线在网格上用画线工具描出来。描线的时候不要贴着网格走,要想象这条线在设计师的原意里是什么样的。扫描网格可能有噪点或者局部变形,描线的时候要忽略这些瑕疵,画出光顺的线条。
特征线分为两类。一类是边界线,曲面的外轮廓。另一类是内部特征线,比如两个曲面的分界线、棱线的最高点。
四边域构面,曲面质量的基石
曲面建模有个黄金法则:能用四边域就不用三边域,能用三边域就不用N边域。
什么是四边域?一个曲面有四条边界,每条边界都是一条曲线。这种曲面的数学定义最简洁,控制点网格是规整的矩形,曲率变化最平滑。
实际操作中,拿到一个复杂的自由曲面,先把它分解成若干个四边域面片的组合。每个面片有四条边界,面片之间边界对齐,连续条件可以控制。
在Design X或者NX里,用网格曲面的命令构面。选择四条边界曲线,软件会生成一个经过这四条边界的曲面。曲面内部的形状由边界决定,也可以通过设置引导线来控制。
一个常见的问题是:四条边界画好了,生成的曲面在中间鼓起来或者凹下去,不符合网格的形状。解决办法是在曲面内部增加约束线。比如在曲面的中间位置再画一条截面线,作为内部引导线,强制曲面经过这条线。
曲面衔接,G0G1G2的实战意义
曲面和曲面之间不是独立的,它们需要拼接在一起。
G0连续,位置连续,两个曲面在边界上重合,但存在棱线。这是最基本的要求,大多数外观面不允许有棱线,但有些设计故意用棱线作为造型元素。
G1连续,相切连续,两个曲面在边界上不仅重合,而且切平面方向一致。这是大多数消费电子产品外观面的最低要求。斑马纹在边界处平滑过渡,没有明显的折痕。
G2连续,曲率连续,两个曲面在边界上曲率也一致。这是汽车A级面的要求。斑马纹不仅平滑,而且没有宽窄变化。G2需要手动调整控制点或者使用专门的曲面衔接命令来实现。
实战中,G1够用了。G2的计算量大,而且对网格精度要求极高。除非客户明确要求A级面,否则做到G1即可。
衔接操作在NX里叫接合曲面,在Design X里叫曲面匹配。选两个曲面,设定连续类型,软件会自动调整曲面的控制点来满足连续条件。调整后要重新检查偏差,因为满足连续条件可能会让曲面偏离网格。
斑马纹分析,曲面质量的照妖镜
曲面做完后,最后一步是斑马纹分析。这个功能在任何CAD软件里都有,叫反射或者 Zebra Stripes。
原理很简单:在曲面上投射一组平行的黑白条纹,观察条纹的形状和连续性。
合格的标准有三条。第一,条纹连续,没有断开。断开的地方说明曲面之间有缝隙或者重叠。第二,条纹没有尖角,尖角说明曲面曲率突变,高光会在这里聚集形成亮点。第三,条纹粗细均匀,没有突然变宽或者变窄的地方,变宽说明曲面变平坦了,变窄说明曲面变陡了。
如果发现斑马纹有问题,回到曲面构建的步骤去调整。不要试图用光顺命令去擦屁股,光顺命令只会让问题更隐蔽,不会真正解决。

3.4 参数化还原,别把逆向模型当最终交付
这是整个逆向建模中最容易被忽视的一环,也是最关键的一环。
很多做逆向的人,习惯在Design X里把曲面拟合出来,然后直接导出STP交给客户。客户拿到模型,想改一个尺寸,发现改不了。因为这个模型没有特征树,没有参数,就是一个死模型。
正确的做法是:把Design X或者逆向模块里做的拟合曲面作为参考,在正向CAD软件里重新建模。
具体流程是这样的:在NX或者Creo里新建一个零件文件,把拟合好的网格模型导进来作为小平面体参考。然后从零开始,用拉伸、旋转、扫掠、网格曲面这些正向命令,把这个零件重新画一遍。
画的时候,从网格上提取关键尺寸和位置关系,作为参数输入到特征里。比如底面的平面度分析结果显示平面度0.01毫米,那就画一个基准平面。四个螺丝柱的位置从网格上测量得到,用尺寸约束来定位。
这样建出来的模型,每个特征都有参数,每个尺寸都可以修改。客户要改壁厚,双击拉伸特征改个数字就行。要移动螺丝柱的位置,改一下草图里的尺寸就行。
这套流程走下来,工作量确实比直接导出多一倍。但长远来看,这是唯一正确的做法。直接导出的死模型,后面任何修改都要重新做一遍逆向。参数化的活模型,可以在这个基础上迭代十次、二十次。
我见过最极端的案例:一个客户拿了一个直接导出的STP模型去开模,模具做到一半发现有个尺寸错了。没法改,只能重新扫、重新建、重新导、重新做模。前后折腾了一个月,耽误了上市时间。如果当初做的是参数化模型,改个尺寸五分钟的事。
逆向建模的本质,不是复制一个形状,而是理解这个形状的设计意图,然后用最合理的方式把它重现出来。理解设计意图,比操作软件重要一万倍。
下一章我们聊结构设计的核心:塑胶件设计黄金法则。壁厚怎么定,加强筋怎么加,拔模角取多少,这些看似基础的问题,里面全是经验。



