C# NX二次开发:曲线和点位相关UFUN函数详解

大家好,今天要介绍查询曲线上点位和返回沿着曲线偏移一定距离的UFUN函数。

(1)UF_MODL_ask_curve_points:这个函数的定义为按照给定条件查询曲线上的点位。

Defined in: uf_modl_curves.h
 

Overview

Returns an array of 3D point coordinates (x,y,z) based on an input
curve, chordal tolerance, angular tolerance, and step tolerance.
A chord is the straight line between adjacent coordinates. The
tolerances provide independent values for controlling the output of
the coordinates located on the curve. The chordal tolerance (ctol) is
the maximum allowable distance from a chord to the curve between
the ends of the chord. The angular tolerance (atol) is the maximum
allowable sum of the angles between the chord and the tangents to the
curve at the ends of the chord. The step length (stol) is the maximum
allowable chordal length.

This routine does not create point objects as the GRIP and interactive
methods do.

If curve_id is an occurrence, then the points returned are relative to
the occurrence, and not the prototype.
 

Return

Error code:
0 = OK
1 = Invalid curve
2 = Modeler error

Note that this function treats the input "ctol" and "stol" tolerances
and returns point coordinates in the base units of the current displayed
part rather than the units of the part containing the input curve/edge.

In order it to return the expected coordinatesthe displayed part must be
set to the part containing the curve (or any other part using the units
of that part) and the display must have also been refreshed after setting
the new displayed part.

For example:

orig = UF_PART_ask_display_part();
UF_PART_ask_units(orig, &display_units);

UF_PART_ask_units(curve_owner, &units);
if (units != display_units)
{
UF_PART_set_display_part(curve_owner);
UF_DISP_refresh(); // required!
}
...
UF_MODL_ask_curve_points(curve, ...
...
UF_PART_set_display_part(orig);
 

Environment

Internal and External
 

See Also

Refer to example
 

History

Modified in V15.0 to work relative to the occurrence.
Added comments in NX8.5 regarding part units.
 

Required License(s)

gateway


 

int UF_MODL_ask_curve_points
(

tag_t curve_id,
double ctol,
double atol,
double stol,
int * numpts,
double * * pts

)

tag_tcurve_idInputThe identifier of the curve on which the points are
to be determined.
doublectolInputThe chordal tolerance.
0= do not use chordal tolerance.
doubleatolInputThe angular tolerance in radians
0= do not use angular tolerance.
doublestolInputMaximum step length.
0 = do not use
int *numptsOutputNumber of points in the points array.
double * *ptsOutput to UF_*free*Pointer to the array containing the 3D points. The
array returned is a single dimension array of size
pts[3numpts]. The allocated arrays must be freed
with UF_free.

第一个参数为输入曲线的Tag值。

第二个参数为

弦公差。

0=不使用弦公差。

第三个参数为

以弧度为单位的角公差

0=不使用角公差。

第四个参数为

最大步长。

0 =不使用

第五个参数为

返回数组中点数的数目

第六个参数为

指向包含3D点的数组的指针

(2)UF_MODL_ask_point_along_curve_2:这个函数的定义为返回曲线上偏移距离处的点。

Defined in: uf_modl_curves.h
 

Overview

Alternate version of UF_MODL_ask_point_along_curve to better handle
cases of curves with sharp corners or sharp bends. Also, returns the
point on the curve at the offset distance.
 

Required License(s)

gateway


 

int UF_MODL_ask_point_along_curve_2
(

double point [ 3 ] ,
tag_t curve,
double offset,
int direction,
double tolerance,
double point_along_curve [ 3 ] ,
double * parameter

)

doublepoint [ 3 ]InputAbsolute coordinates of the reference point.
tag_tcurveInputIdentifier of the selected curve.
doubleoffsetInputOffset distance from the reference point along the
selected curve.
intdirectionInputDirection flag,
1=Same direction as the selected curve.
(from start point to end point)
-1=Reverse direction of the selected curve
(from end point to start point)
doubletoleranceInputDistance tolerance between solid edge and
approximated curve.
doublepoint_along_curve [ 3 ]OutputAbsolute coordinates of the point on the curve
at the offset distance.
double *parameterOutputParameter value for the located point on the
selected curve.

第一个参数为起始点位。

第二个参数为选定曲线的Tag值。

第三个参数为沿曲线与参考点的偏移距离。

第四个参数为方向标志。

第五个参数为实心边与近似曲线的距离公差。

第六个参数为返回偏移距离的坐标点位。

第七个参数为选定曲线上所定位点的参数值。

今天要介绍的就是这么多,我们下篇文章再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵桑さん

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值