前言
模型的倒圆技术在实际工程中应用非常广泛,适当的倒圆能够提高模型的性能并且能够增加模型的美感,三维模型中的倒圆有边线倒圆和顶点倒圆两种形式,二维模型中的倒圆只有顶点倒圆一种形式,并且是三维模型倒圆的基础。
平面上两条曲线之间的倒圆角技术在各种CAD软件中都很成熟,可是想在三条曲线之间做出圆角就比较困难了。对于三角形可以通过简单的数学计算求出与每一条边相切的内切圆,但是对于下图中所示的情况,数学计算也显得苍白无力了,不过计算机技术以及优化算法技术的发展,为我们提供了一种解决这类问题的方法。
CAESES是一款功能强大的集设计功能与优化功能为一体的现代化软件,它的自定制feature功能在处理三条曲线之间倒圆的问题非常便捷。
问题解决方法
1. 问题分析
三条曲线之间求内切圆,最根本的需求是求出来内切圆的圆心所在的位置,也就是三条曲线按同样的数值进行偏移,刚好相交在一起的一个点,偏移距离的数值就是三条曲线之间倒圆的圆角半径。
假设三条曲线分别向内侧偏移了某一较小的数值之后,新生成的三条offset曲线之间会有两个交点,增大偏移的数值之后,两个交点的距离逐渐逼近,当达到某一个临界值的时候,两个交点的距离为0,就寻找到了内切圆的圆心了。
2. 编辑CAESES的feature
以上所描述的问题,如果采用CAESES的feature及优化迭代功能,则能够很方便的解决问题。
新建一个Feature Definition,在General列表下定义一个合适的名称,比如:Calculate_centerPos_of_3curves,然后勾选Recreate on Update(用于适时更新feature内部的计算内容);
在Arguments列表中设置三条初始曲线的输入位置及其偏移方向的切换按钮,然后设置一个偏移距离的范围设置框;
在Create Function列表中,遵从CAESES的feature语法,编辑下图中所示的内容,分别是创建了三条偏移方向可控且偏移距离为参数radius的offsetcurve,然后求出两两曲线的交点,用参数distance表述两个交点之间的距离;
最后创建一个Brent的优化引擎,设置迭代步数为50,设置radius的变化范围由Arguments中的参数控制,设置判定标准为p1与p2之间距离的参数distance,然后依次点击右下角的Apply、Close按钮,feature创建结束。
此处所用的Brent是一种单目标最小值寻优的优化算法,能够迭代求出distance趋近于0时radius的数值,此时的radius就是我们最终获得的半径结果。
3. Feature应用
Feature创建结束后,会在CAESES的模型树Feature Definitions栏目下找到其名字,选中后右键选择Create Feature,创建出feature的模型特征f1,点击f1左侧的 “+”,能够看到曲线特征及求得的圆角半径参数;
将需要创建圆角的三条曲线分别放置在feature的对应输入框,并根据需要切换偏移方向,设置radius_range为适当的数值,feature就能自动求出圆心的位置,3D视窗中能够看到求出的圆心位置;
在求得的圆心位置创建半径为feature:radius的圆,并与两侧的曲线求交点,最后以两个交点裁剪曲线得到三条曲线之间的圆角曲线。