6_UG二次开发实用教程 第六章 下载本文

direction vector of the first profile segment and the extrusion direction vector. The direction of a segment follows the direction of the profile flow instead of the parametric or mathematical direction of the segment.

The profile created by the object list must be contiguous.

如果你创建的拉伸

扫描的截面线串主要是用对象标识数组和链表两种方式来定义。扫描的修剪方式是通过类型为UF_MODL_SWEEP_TRIM_OPTS的参数来确定,UF_MODL_SWEEP_TRIM_object结构参数用来定义修剪对象,当选择基准平面作为修剪对象时,输入的修剪平面的对象标识。当UF_MODL_SWEEP_TRIM_object结构参数为NULL时,可以在函数中设置起始位置和终止位置。

在扫描特征的UF函数中可以通过逻辑变量来确定扫描结果为实体(Solid)或片体(Sheet) 。当函数的偏置参数为零时,只有截面线串是封闭的并且扫描结果的参数设置为实体,扫描结果才生成实体,否则生成片体。如果截面线串不封闭,必须使用偏置才能生成实体。

solid_body_creation = false

对于旋转体、沿导向线扫描和管道同拉伸体类型,具体函数说明可以参考“Open C Reference

Guide”,UF_MODL_ask_

表6.4编辑扫描特征函数

函数名称 UF_MODL_edit_sweep_curves UF_MODL_replace_sweep_strings UF_MODL_reattach_thru_faces UF_MODL_set_sweep_axis UF_MODL_set_sweep_tolerances

函数功能及要点 编辑扫描特征的轮廓线串和引导线串 功能与函数UF_MODL_edit_sweep_curves类似,但功能更强 重新定义扫描特征的修剪面和成型特征的穿透面 重新设置扫描特征的方向 重新设置扫描特征的链接和距离公差

6.3 创建参考特征

参考特征是设计零件中的一个非常有用的辅助设计工具,借助于参考特征,可以完成特定的功能,参考特征分为基准轴、基准面和基准坐标系。UF函数允许用户创建、查询和编辑相对和固定的参考特征,其函数的声明主要包含在头文件uf_modl.h中。

表6.5创建参考特征函数

函数名称 UF_MODL_create_fixed_daxis 函数功能及要点 通过两点建立固定基准轴对象,返回的是对象标识,可利用函数UF_MODL_ask_object_feat来获得固定基准轴的特征标识 通过点和方向建立固定基准平面对象返回的是对象标识,可利用函数UF_MODL_ask_object_feat来获得固定基准平面的特征标识 可以采用UG交互环境中提供的所有建立相对基准轴的方法建立一个相对基准轴,返回的是相对基准轴的特征标识 可以采用UG交互环境中提供的所有建立相对基准平面的方法建立一个相对基准平面。由于建立相对基准平面的方法很多,并不需要指定函数中所有的参数,而应根据用户选择方法的不同,有选择的进行参数设置,不需设置的参数可以赋NULL。函数返回的是相对基准平面的特征标识 UF_MODL_create_fixed_dplane UF_MODL_create_relative_daxis UF_MODL_create_relative_dplane UF_MODL_create_datum_csys UF_MODL_create_datum_csys_offset 下面以创建相对基准平面为例,讲解如何创建参考特征。首先来回顾一下在交互环境中是如何创建相对基准平面,创建基准面可以用一个几何约束,比如通过一个面(基准面、平表面)进行偏置创建一个相对基准平面;可以用两个几何约束,比如通过两条直线创建一个相对基准平面;可以用三个几何约束,比如通过三个点创建一个相对基准平面。但是无论你采取何种方式,创建一个相对基准平面几何约束对象的个数至少为一个(一个面),至多为三个(三个点),这就是创建相对基准平面的函数UF_MODL_create_relative_dplane(),其约束对象object_tags[3]为三个元素tag_t数组的原因。

int UF_MODL_create_relative_dplane (

int num_refs //输入参数,约束对象的个数 tag_t object_tags [ 3 ] //输入参数,约束对象的数组

int point_select [ 3 ] //输入参数,指定相应约束对象为边缘还是边缘上的点 int which_plane //输入参数,指定求解数 double reference_point [ 3 ] //输入参数, char * angle_string //输入参数,角度值

char * offset_string //输入参数,偏置值

int* num_dplanes //输出参数,根据约束条件,可能解的个数 tag_t dplane_tag [ 2 ]// 输出参数,解的特征对象数组

)

其中,num_refs用于指定几何约束对象的个数,至少一个,至多三个; object_tags约束对象的数组,其约束对象可能的类型包括:

约束类 一个几何约束 两个几何约束 过基准轴/线性几何体 过圆柱/圆锥/圆环/旋转表面的轴 与平表面或基准面成角 过点 平行平表面或基准面 相切于圆柱/圆锥/圆环/旋转表面 过圆柱/圆锥/圆环/旋转表面的轴 过点 过基准轴/线性几何体 过圆柱/圆锥/圆环/旋转表面的轴 与平表面或基准面成角 与平表面或基准面成角 过圆柱/圆锥/圆环/旋转表面的轴 相切于圆柱/圆锥/圆环/旋转表面 过圆柱/圆锥/圆环/旋转表面的轴 相切于圆柱/圆锥/圆环/旋转表面 三个几何约束 过三个点 过点 过基准轴/线性几何体 过基准轴/线性几何体 过基准轴/线性几何体 过圆柱/圆锥/圆环/旋转表面的轴 First Constraint 从平表面/基准面偏置 过点 过基准轴/线性几何体 Second Constraint 边缘上的点是通过object_tags[3]和point_select[3]共同来指定,其中,object_tags指定点所在边缘的对象标识,然后再通过point_select来指定相应边缘上的点,其参数说明如下

UF_MODL_EDGE 边缘 UF_MODL_MID_POINT UF_MODL_END_POINT UF_MODL_RIGHT_END_POINT UF_MODL_LEFT_END_POINT 边缘中点 边缘端点 边缘起始点 边缘终点

angle_string和offset_string分别用来指定角度值和偏置值,它们属于可选参数,根据需要进行指定,它们都为字符串类型,可以表达式形式赋值。

例6-3 在圆柱表面上打通孔,由于孔特征属于成型特征,需要有一个平的安置面,因此可以先创建一个基准面,以基准面作为孔特征的安置面。

例6-3创建

#include #include #include #include #include #include #include