大家好,今天要介绍查询曲线上点位和返回沿着曲线偏移一定距离的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_t | curve_id | Input | The identifier of the curve on which the points are to be determined. |
double | ctol | Input | The chordal tolerance. 0= do not use chordal tolerance. |
double | atol | Input | The angular tolerance in radians 0= do not use angular tolerance. |
double | stol | Input | Maximum step length. 0 = do not use |
int * | numpts | Output | Number of points in the points array. |
double * * | pts | Output 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
)
double | point [ 3 ] | Input | Absolute coordinates of the reference point. |
tag_t | curve | Input | Identifier of the selected curve. |
double | offset | Input | Offset distance from the reference point along the selected curve. |
int | direction | Input | Direction 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) |
double | tolerance | Input | Distance tolerance between solid edge and approximated curve. |
double | point_along_curve [ 3 ] | Output | Absolute coordinates of the point on the curve at the offset distance. |
double * | parameter | Output | Parameter value for the located point on the selected curve. |
第一个参数为起始点位。
第二个参数为选定曲线的Tag值。
第三个参数为沿曲线与参考点的偏移距离。
第四个参数为方向标志。
第五个参数为实心边与近似曲线的距离公差。
第六个参数为返回偏移距离的坐标点位。
第七个参数为选定曲线上所定位点的参数值。
今天要介绍的就是这么多,我们下篇文章再见。