可编辑NURBS曲线在AutoCAD与CATIA间的相互转换

2014-11-09 张宗科 中国船舶及海洋工程设计研究院

  分析了AutoCAD中NURBS曲线的特点、相关的函数及参数,以及CATIA中NURBS曲线的手工交互绘制与VBA程序自动绘制方法。通过ACIS到IGES格式转换,将AutoCAD中的NURBS曲线转换成CATIA中的NURBS曲线,不再能编辑节点。提出通过提取AutoCAD中NURBS曲线的有关信息,在CATIA中进行二次开发编程,由指定NURBS曲线的切线、曲率参数来显示约束绘制的方法,直接生成NURBS,从而保证可编辑性。CATIA中的NURBS输出成IGES格式,经Gambit转换成ACIS格式,在AutoCAD中打开,经参数提取后反算出NURBS曲线的拟合点来,使其重具过拟合点的可编辑性,并对AutoCAD中用NURBS曲线拟合Polyline进行了探讨。

1、引言

  NURBS曲线是AutoCAD中的一种常用曲线,在船舶设计中描述复杂船体曲面时尤为方便。有时需要将AutoCAD中含NURBS曲线在内的二维图形转换成CATIA中的三维模型,以查看效果。不过AutoCAD中的NURBS曲线包含原始拟合点、控制点及权重等有关信息,而CATIA中SplineCurve通过拟合点、各拟合点处的切线方向、强度、曲率方向、曲率半径等有关参数来表达。虽然可以将AutoCAD中的NURBSCurve先Export成ACIS格式文件(*.sat),再经Gambit转换成IGES格式文件(*.igs),在CATIA中直接打开,但其节点不再可以编辑。同样CATIA中的样条曲线转换到AutoCAD中时,拟合点不再可编辑。实现NURBS曲线在AutoCAD与CATIA间的相互转换后仍能保持可编辑性,是要解决的问题。

2、AutoCAD中NURBS曲线分析

  B样条曲线按节点矢量特点可分为5种,即:均匀B样条曲线、准均匀B样条曲线、分段贝齐尔曲线、一般非均匀B样条曲线、非均匀有理B样条曲线。AutoCAD中通过Spline命令产生的即为NURBS曲线,它是一种具有描述与设计自由型曲线的数学方法,ISO在1991年颁布的STEP标准将NURBS作为定义几何形状的唯一数学方法。NRBS曲线以B样条函数为基,样条函数具有局部性,NURBS曲线上某个仅受到临近几个拟合点的影响,这与人的认知活动由远及近相类似,而与“蝴蝶效应”、量子万里感应当然是不同的。AutoCAD中由系统变量“SplineType”来确定NURBS曲线的阶数,若为6,则生成3次(4阶)NURBS曲线;若为5,则生成2次(3阶)NURBS曲线。用Spline命令绘制NURBS曲线时,先给出曲线经过的一系列拟合点(FitPoint),再给定起点、终点切矢边界条件来完成。AutoCAD中NURBS曲线的权值默认为-1,采用起始拟合点的累加弦长作为节点参数。通过将系统变量“SplFrame”的置设为1,同时显示NURBS曲线与其控制多边形,则可通过直接操控控制点来调整曲线的局部凹凸程度。可用SplinEdit命令修改生成的NURBS曲线,如拟合数据、闭合、移动顶点、精度(添加控制点/提高阶数/权值)、反转等。但用SplinEdit命令编辑修改NURBS曲线后,用Entget方法可以发DXF(DrawingExchangeFile)代码中无拟合点坐标的相关消息。虽然可以用SplinEdit\Refine\ElevateOrder方法来提升NURBS曲线的阶次(最高到26阶),但实践中发现,升阶后曲线自身形状没有改变,而且相应的DXF代码中只是增加了原拟合点对应得累加弦长参数的重复次数,并未增加新的拟合点,仅增加控制点的数目,同时控制点形成的控制多边形更加贴近NURBS曲线。图1中,在控制点处带空心小矩形框的虚线为3次(4阶)NURBS曲线的控制多边形,在控制点处带圆形框的虚线为4次(5阶)的控制多边形,在控制点处带实心小矩形框的虚线为5次(6阶)NURBS曲线的控制多边形。不同阶次下的NURBS曲线相应的DXF部分代码参表1所示。

可编辑NURBS曲线在AutoCAD与CATIA间的相互转换

图1 AutoCAD中NURBS曲线控制多边形随阶次的变化

表1 AutoCAD中NURBS曲线编辑升阶后DXF代码变化

可编辑NURBS曲线在AutoCAD与CATIA间的相互转换

  AutoCAD中的NURBS曲线不具备重节点的功能。此外,AUTOCAD中科利用vlax-curve函数(-getParamAtPoint、-get-FirstDeriv、-getSecondDeriv)、vla-get函数(-Knots、-Fit-Points、-ControlPoints、-StartTangent、-EndTangent)等提取NURBS曲线的有关参数信息。

7、结语

  介绍了AutoCAD中NURBS曲线的表述方式,以及其一阶切向、二阶切向等参数的提取,利用这些信息可转换成曲率方向、曲率半径等,籍此通过二次开发在CATIA中直接绘制NURBS曲线,相对于ACIS至IGES格式文件转换方式,该NURBS曲线仍具有可编辑功能。CATIA中NURBS曲线可由IGES方式输出,经Gambit转换为ACIS格式在AutoCAD中打开,反算出NURBS的拟合点等,在AutoCAD中以直接绘制方式生成NURBS曲线,或者利用Subst与Entmod命令直接修改原曲线的DXF代码,使其拟合点可自由编辑。此外,讨论了用分段NURBS曲线拟合带许多控制点的Polyline的可行性,并编制了相应的LISP程序实现该功能。