在NX10.0中,没有找到可以将曲线最小曲率半径设置为指定值的命令。对于光顺曲线串命令只能将曲线尖角地方倒成指定R角,对于已经存在R角并不处理,对于距离较近相邻尖角无法优化,还有一个问题速度慢。
在这里提出一种目前可行方案,仅供参考,将2D曲线尖角或圆角(包含内外圆角)全部设置成指定R角大小。
主要流程如下:
1、离散曲线成曲线段(数学意义的线段,而非NX对象)。
2、循环遍历相邻的线段是否可以倒圆角(注意是相邻,不是相连);
3、判断两根线段相交方向是否可以放置指定R角,哪根线段不满足移除哪根,如果都不满足则两根都移除,直至所有;
4、判断倒R角起始方向是否与第一根参考线段方向相反,如相同则两根线段移除;
5、如果两根线段符合倒角且不相连,及时用线段补充中间部分,补充线段均位于圆角上;
6、如果两线段平行共线,则不处理;
7、如果两线段平行不共线,则连接两根线段,以连接线段与线段1对比是否可以倒R角;
8、如果封闭曲线,需要遍历到可以倒圆角的两根线段,一根为首线段,一根为尾线段则终止;
9、获取所有线段端点,去重,合并平行共线的线段(如果采用拟合曲线,则不合并);
10、以控制点方式新建样条线,创建完毕。
以上计算除第1步和第10步,其余均用数学向量和微分极值计算,按0.5mm离散曲线,3500多个点位分析大约0.6s左右;
如果需要与原始曲线保持更小的偏差,第10步需要使用拟合曲线命令。但千万不要用通过点创建样条线!!!
如下效果图,内外尖角、内外圆角均处理了: