UF_MODL_create_thru_curves1
Defined in: uf_modl_freeform.h
int UF_MODL_create_thru_curves1(UF_STRING_p_t s_section, UF_STRING_p_t s_spine, int * patch, int * alignment, double value [ 6 ] , int * vdegree, int * vstatus, int simple, int * body_type, UF_FEATURE_SIGN boolean, tag_t target_body, double tols [ 3 ] , int c_num [ 2 ] , tag_t * c_face_id [ 2 ] , int c_flag [ 2 ] , int c_dir, tag_t * body_obj_id )
overview 概述
Creates a feature through a collection of curves in one direction. This function behaves like UF_MODL_create_thru_curves with an extra input for passing in the target body for the boolean operation.
If body_type is solid (1) and the sign of the operation to be performed is not create, then the target body is required.
The following restrictions apply:
- The first segment curve of each primary/cross/spine is a starting curve.
- If single patch, then vdegree = 0, vclose = 0 (open.) The output of this function is the object identifier associated to the feature.
- If alignment is set to Spline Points, the input sections must all be single B-curves with the same number of defining points.
通过一个方向的曲线集合创建一个特性。这个函数的行为类似于 UF _ MODL _ create _ thru _ Curve,它有一个额外的输入,用于传递布尔操作的目标主体。如果 body _ type 是实体(1) ,并且要执行的操作的符号不是 create,则需要目标 body。以下限制适用: 1。每个主要/交叉/脊柱的第一段曲线是起始曲线。2.如果是单个补丁,那么 vdec = 0,vclose = 0(open.)这个函数的输出是与特性关联的对象标识符。3.如果对齐设置为样条点,则输入部分必须是具有相同数量定义点的单条 B 曲线。
UFUN例子
获取源码例子请搜索 里海NX二次开发3000例专栏
parameters 参数
| UF_STRING_p_t | s_section | Input | Pointer to the section list structure. When simple option is 2, then the user supplied template string must be added as the last item of this section string structure, but the number of section strings will not be increased. For example, to create a feature using 3 section strings and a user defined template (simple option = 2), num would be 3, but string and dir would have 4 elements, string[3] would be the number of segment curves for the user defined template, and dir[3] would be the direction for the user defined template. The tags for the user defined template would be added onto the end of the id array. int num Total number of section strings (min=2, max=150) int string[ ] Total number of segment curves/ sketch identifier of each section string (min=1, max =402) int dir[ ] Direction of each section string 1 = Start to end -1 = End to start tag_t id[ ] Identifier of section curve or the section builder object tags, but not both 指向节列表结构的指针。如果 simple 选项为2,则必须添加用户提供的模板字符串作为此节字符串结构的最后一项,但是节字符串的数量不会增加。例如,要创建一个特性,使用3节字符串和一个用户定义的模板(简单选项 = 2) ,num 将是3,但 string 和 dir 将有4个元素,string [3]将是用户定义模板的段曲线数,dir [3]将是用户定义模板的方向。用户定义模板的标记将添加到 id 数组的末尾。每节字符串的方向1 = 开始到结束 -1 = 结束到开始标记 _ t id []分段曲线或分段构建器对象标记的标识符,但不能两者兼有 |
| UF_STRING_p_t | s_spine | Input | Pointer to the spine list structure (for alignment = 5). int num Total number of spine string (min=0, max=1) int string[ ] Total number of segment curves/ sketch identifier of each spine string (min=1, max=402) int dir[ ] Direction of each spine string 1 = Start to end -1 = End to start tag_t id[ ] Identifier of spine curve or the section builder object tags, but not both 指向脊柱列表结构的指针(用于对齐 = 5)。每个脊柱字符串的方向1 = 开始到结束 -1 = 结束到开始 tag _ t id []脊柱曲线或剖面构建器对象标记的标识符,但不能两者兼有 |
| int * | patch | Input | Patch type. 1 = Single (Bezier) 2 = Multiple (B-spline) 补丁类型。1 = 单(贝塞尔)2 = 多(B 样条) |
| int * | alignment | Input | Alignment method. 1 = Parameter 2 = Arc length 3 = Distance 4 = Angles 5 = Spine curves 6 = Spline Points 校准方法。1 = 参数2 = 弧长3 = 距离4 = 角度5 = 脊线6 = 样条点 |
| double | value [ 6 ] | Input | Data for alignment method. [0-2] = 3D vector defining direction line (alignment = 3) [0-5] = Coordinates of line defining the axis of revolution for planes (alignment = 4) 对准方法数据。[0-2] = 定义方向线的三维矢量(对齐 = 3)[0-5] = 定义平面旋转轴的直线坐标(对齐 = 4) |
| int * | vdegree | Input | Degree of surface in V direction. For patch=2, 0< vdegree <= (s_section.num-1) 表面 V 向度。对于补丁 = 2,0 < v 度 < = (s _ section. num-1) |
| int * | vstatus | Input | Periodic status of surface in V direction. 0 = Open 1 = Closed (At least three section curves are required). 表面在 V 方向的周期性状态。0 = 开1 = 闭(至少需要三条截面曲线)。 |
| int | simple | Input | Simple math option 0 : do not use simple creation 1 : use simple creation with system defined template 2 : use simple creation with user supplied template. The user supplied template will be passed at the end of the s_section structure above. 简单数学选项0: 不使用简单创建1: 使用系统定义的模板2进行简单创建: 使用用户提供的模板进行简单创建。用户提供的模板将在上面的 s _ section 结构的末尾传递。 |
| int * | body_type | Input | Type of body. 0 = Sheet (Default) 1 = Solid 主体类型。0 = 工作表(默认值)1 = 实心 |
| UF_FEATURE_SIGN | boolean | Input | The sign of the operation to be performed. UF_NULLSIGN = create new target solid UF_POSITIVE = add to target solid UF_NEGATIVE = subtract from target solid UF_UNSIGNED = intersect with target solid 要执行的操作的标志。UF _ NULLSIGN = 创建新的目标固体 UF _ POSITIVE = 添加到目标固体 UF _ NEGATIVE = 减去目标固体 UF _ UNSIGNED = 与目标固体相交 |
| tag_t | target_body | Input | The target body for the boolean operation. 布尔操作的目标主体。 |
| double | tols [ 3 ] | Input | Tolerances. [0] = Distance [1] = Angle (in radians) [2] = Intersection 公差。[0] = 距离[1] = 角度(以弧度为单位)[2] = 交点 |
| int | c_num [ 2 ] | Input | Number of constraint faces or collectors of faces. [0] = First section string [1] = Last section string 约束面的数量或面的收集器。[0] = 第一节字符串[1] = 最后一节字符串 |
| tag_t * | c_face_id [ 2 ] | Input | Pointers to object identifiers of neighbor surfaces or 2 collectors of faces from which constraints are obtained [0] = First section string [1] = Last section string 指向邻近表面的对象标识符的指针或从中获得约束的表面的2个收集器[0] = 第一节字符串[1] = 最后一节字符串 |
| int | c_flag [ 2 ] | Input | Flags indicating constraint types. 0 = No constraint 1 = Tangency constraint 2 = Curvature constraint [0] = First section string [1] = Last section string 指示约束类型的标志。0 = 无约束1 = 相切约束2 = 曲率约束[0] = 第一节字符串[1] = 最后一节字符串 |
| int | c_dir | Input | Constraint direction. 0 = Not specified 1 = Isoparametric 2 = Normal to the string 约束方向。0 = 未指定1 = 等参数2 = 字符串的正常值 |
| tag_t * | body_obj_id | Output | Body object identifier. 身体对象标识符。 |