NX二次开发-获取任意曲线上区间长度

NX二次开发-获取任意曲线上区间长度

作者:倪海   审校:凌俊

适用版本:NX所有版本

NX二次开发-获取任意曲线上区间长度

在NX软件中对几何曲线进行二次开发的时候,我们经常需要获取曲线任意区间的长度而后进行一些其他操作,比如在曲线上等距离取点功能。所以,根据曲线的起始参数、终止参数确定该段范围内的曲线长度是实现上述问题的关键。自己写算法实现该功能难度极大,不清楚NX曲线方程式很难通过算法实现该功能,即使通过取点模拟方程式效率也会显得很低下。所以,我们尽量使用NX提供的二次开发API接口进行获取曲线参数区间范围内的长度,而这个API就是UF_CURVE_ask_arc_length,虽然名称只是获取圆弧的长度,但其实针对任意曲线都适用。

功能说明

首先,我们先来看一下这个函数的参数分别代表什么意义。

NX二次开发-获取任意曲线上区间长度

图1

curve_tag:表示需要计算长度的待输入的曲线;

start_param:表示曲线上需要计算长度的区间的起始参数。这里,需要介绍一些基础的计算机图形学的知识,对于一条曲线,如果它是规则化的,它参数范围只能是0到1。如果是非规则化的,参数范围值可能是任意值。那么怎么获取这个参数范围呢?我们可以通过UF_EVAL_ask_limits函数获取曲线的参数范围,该函数针对规则和非规则的曲线都起作用。start_param取值必须在曲线的参数范围内。

end_param:表示曲线上需要计算长度的区间的终止参数。通过上述方式获取曲线的参数范围确定end_param取值区间。end_param取值必须大于start_param且必须在曲线的参数范围内。

unit_flag:表示输出值的单位。UF_MODL_UNITS_PART表示与Part文件的单位保持一致。UF_MODL_INCH 表示英制单位英寸。UF_MODL_MMETER表示公制单位毫米。UF_MODL_CMETER 表示公制单位厘米。UF_MODL_METER表示公制单位米。

arc_length:代表曲线指定区间的长度。

熟悉完API后,我们再来看曲线上等距取点这个功能。要实现这个功能,首先我们需要确定曲线指定区间范围的长度,这个通过上述API可以解决区间长度问题。其次,我们还需要通过取点个数确定间距值。那么下面问题就转化为已知一条曲线区间范围以及间距,求曲线上对应点的坐标值。诚然,该功能可以通过NX本身的点集功能去实现等距取点。但如果我们非要自己写算法取点,如何实现呢?且看下回期刊:渐进式递归实现等距取点。

总    结

对于样条曲线类型的二次开发中,不可避免地会遇到求样条曲线某段长度的问题,本技巧期刊提供了一种稳定可靠的方法解决该问题,通过NX提供的UF函数UF_CURVE_ask_arc_length可以快速地获取指定区间的长度。

相关厂商
logo
能科联宏(上海)信息科技有限公司
3.1w浏览
能科联宏(上海)信息科技有限公司(以下简称联宏科技)是一家专注于为汽车、轨道交通、通用机械、消费电子、航空航天、船舶等机械制造业领域内的广大用户提供面向工业4.0的全产品生命周期的数字化产品工程解决方案及全方位资深咨询服务的公司。2017年被上海市科委授予高新技术企业。业务主要涵盖:为制造企业提供数字化解决方案,为制造企业提供工业软硬件系统,为制造企业提供信息化系统建设服务。 2018年12月,联宏科技成为能科科技股份有限公司(股票代码:603859.SH)的全资子公司。经营上,联宏科技将继续独立运作。联宏科技与能科股份的协同互补将给联宏科技带来广阔的发展机遇。 联宏科技是西门子最高的铂金级别的合作伙伴,连续多年获得西门子大中华区更佳合作伙伴、西门子大中华区更佳市场、西门子更佳服务及更佳维护,多年的西门子亚太区更佳合作伙伴的荣誉。 联宏科技已经建立了华东、华北、西南、华南四个销售大区;组建了上海、北京、重庆、佛山四个技术中心;苏州研发中心;盐城、珠海二个人才基地。联宏科技拥有江苏联宏创能信息科技有限公司和联宏创能信息科技(香港)有限公司(United Grand Information...
 
相关阅读
返回顶部