UG二次开发常用函数

对话框常用数据类型和函数
UF_STYLER_ask_value:获取对话框控件值
UF_STYLER_set_value:设置对话框控件值
UF_STYLER_free_value:释放内存

uc1616:点子功能对话框
UF_UI_specify_vector:矢量子功能对话框
uc1630:坐标系子功能对话框
UF_UI_open_listing_window:打开列表窗口
UF_UI_write_listing_window:输入到列表窗口
uc1600:获取用户输入的字符串
uc1607:获取用户输入的整型数值
uc1609:获取用户输入的实型数值
uc1601:在信息窗口或状态行显示信息
UF_UI_set_prompt:在提示行显示信息
UF_UI_set_status:在状态行显示信息
UF_UI_message_dialog:显示信息对话框

根据体(body)查询特征(feature):UF_MODL_ask_body_feats
UF_MODL_ask_body_features
根据对象(object)查询特征(feature):UF_MODL_ask_object_feat
根据特征(feature)查询体(body):UF_MODL_ask_feat_body
根据特征(feature)查询对象(object):UF_MODL_ask_feat_object
根据特征(feature)查询面(face):UF_MODL_ask_feat_faces
根据体(body)查询面(face):UF_MODL_ask_body_faces
根据边缘(edge)查询面(face):UF_MODL_ask_edge_faces

uf_list_t(数据类型)
UF_MODL_put_list_item:将对象标识加入到链表中
UF_MODL_ask_list_item:查询对象链表
UF_MODL_create_list:创建一个链表,并返回链表的头指针
UF_MODL_put_list_item:链表的插入,只将对象TAG加入到尾部
UF_MODL_ask_list_count:获取链表长度
UF_MODL_ask_list_item:查询链表中的对象标识,从头节点开始计算,返回第index个节点所包含的对象标识
UF_MODL_delete_list_item:将指定的对象从链表中删除,若节点都被删除了,它将会删除链表
UF_MODL_delete_list:删除链表,释放内存。


创建块 :UF_MODL_create_blockl
UF_MODL_create_block
创建圆柱:UF_MODL_create_cyll
UF_MODL_create_cyl
创建圆锥:UF_MODL_create_conel
UF_MODL_create_cone
创建球 :UF_MODL_create_spherel
UF_MODL_create_sphere

简单孔:UF_MODL_create_simple_hole
台阶孔:UF_MODL_create_c_bore_hole
埋头孔:UF_MODL_create_c_sunk_hole
凸台:UF_MODL_create_boss
矩形凸垫:UF_MODL_create_rect_pad
通用凸垫:UF_MODL_create_general_pad
矩形型腔:UF_MODL_create_rect_pocket
通用型腔:UF_MODL_create_general_pocket
球形键槽:UF_MODL_create_ball_slot
矩形键槽:UF_MODL_create_rect_slot
T型槽:UF_MODL_create_t_slot
U型槽:UF_MODL_create_u_slot
燕尾槽:UF_MODL_create_dove_tail_shot
球型沟槽:UF_MODL_create_ball_groove
U型沟槽:UF_MODL_create_u_groove
矩形沟槽:UF_MODL_create_rect_groove
创建一个旋转体:UF_MODL_create_revolved

查询相关面的数据(类型,中心点,轴方向):UF_MODL_ask_face_data
查询面的u,v参数,参数点等:UF_MODL_ask_face_props
依据给定改考点返回面上的参数与点:UF_MODL_ask_face_parm

面拔锥:UF_MODL_create_taper_from_faces
边拔锥:

UF_MODL_create_taper_from_edges
分隔线拔锥:UF_MODL_create_taper_split_line
边倒圆:UF_MODL_create_edge_blend
倒圆:UF_MODL_create_blind
面倒圆:UF_MODL_create_face_blend
倒角:UF_MODL_create_chamfer
挖空:UF_MODL_create_hollow
不等厚挖空:UF_MODL_create_variable_hollow
螺纹:UF_MODL_create_symb_thread
环形矩阵:UF_MODL_create_circular_iset
矩形矩阵:UF_MODL_create_linear_iset
镜像体:UF_MODL_create_mirror_body
镜像特征:UF_MODL_create_mirror_set
修剪片体:UF_MODL_create_trimmed_sheet
修剪体:UF_MODL_trim_body
分割体:UF_MODL_split_body
偏置表面:UF_MODL_create_face_offset
简化实体:UF_MODL_create_simplify

固定基准面:UF_MODL_create_fixed_dplane
相对基准面:UF_MODL_create_relative_dplane
固定基准轴:UF_MODL_create_fixed_daxis
相对基准轴:UF_MODL_create_relative_daxis

UF_MODL_dissect_exp_string: 将表达式的名称和数值分离,并得到表达式的标识
UF_MODL_ask_exp:有表达式的名称获得表达式的“名称=数值”对
UF_MODL_eval_exp:计算表达式的数值
UF_MODL_edit_exp:更改表达式的数值,当表达式数值被修改后,模型需要被更新以反映表达式的改变,利用函数UF_MODL_update更新模型
UF_MODL_rename_exp:为表达式重新命名
UF_MODL_create_exp() 可用于创建表达式
UF_MODL_create_exp_tag() 得到创建的表达式的标签
UF_MODL_dissect_exp_string() 分解名字和值返回名字、值和表达式的标签
UF_MODL_ask_exp() 返回表达式名和表达式值
UF_MODL_eval_exp() 输入表达式的名,返回表达式的值
UF_MODL_edit_exp() 用新的值替换表达式中原有的值,使用后应UF_MODL_update()来更新模型
UF_MODL_rename_exp() 给已有表达式赋新的名称
UF_MODL_ask_exps_of_feature() 返回制约某特征的所有表达式的标签
UF_MODL_ask_exps_of_part() 返回某部件的所有表达式的标签
UF_MODL_ask_exp_tag_string() 输入表达式标签,返回该表达式串
UF_MODL_is_exp_in_part(); 判断某个表达式是不是在该部件中,是返回FOUR,


对象的遍历:(执行一次,返回一个tag)
UF_OBJ_cycle_all //返回所有对象在一个给定的部分不管他们的所在的层和当前状态。
UF_OBJ_cycle_by_name //输入对象的名字,获得对象的tag
UF_OBJ_cycle_by_name_and_type
UF_OBJ_cycle_objs_in_part //可以获取当前显示部分所有对象的tag (第二个参数是个宏定义)
UF_VIEW_cycle_objects
UF_LAYER_cycle_by_layer //输入一个图层,返回所有对象的tag

UF_OBJ_cycle_objs_in_part(); //在part中遍历对象
UF_OBJ_cycle_all() //在当前工作part中遍历对象
UF_OBJ_cycle_by_name() //通过对象名称查询对象

uf_object_types.h :定义对象

的宏
a type ----uf_object_types.h文件中列出了所有类
a subtype---uf_object_types.h文件中列出了所有类

获取系统显示参数:UF_DISP_ask_system_prrameters
设置颜色:UF_DISP_set_color
设置显示状态:UF_DISP_set_display
设置/取消高亮显示:UF_DISP_set_highlight
设置系统显示参数:UF_DISP_set_system_parameters
显示刷新:UF_DISP_refresh
设置图层状态:UF_LAYER_set_status
(UF_LAYER_WORK_LAYER //设置工作图层
UF_LAYER_ACTIVE_LAYER ; //设置可选图层
UF_LAYER_REFERENCE_LAYER ; //设置只见图层
UF_LAYER_INACTIVE_LAYER; //设置不可选不可见活动图层)
建立目录:UF_LAYER_create_category
设置对象颜色:UF_OBJ_set_color
设置对象图层:UF_OBJ_set_layer
获取对象显示属性:UF_OBJ_ask_display_properties

tag:对象标识
piece part:单个零件
Occurence:事例
object occurence:对象事例
instance:实例
Multi_level:多层装配
component part:组件部件
prototype:原型
reference set:引用集
work part:工作部件

知道(part tag)查询(part name):UF_PART_ask_part_name

知道(part name)查询(part tag):UF_PART_ask_part_tag

知道(part occurrence tag)查询(part tag):
UF_ASSEM_ask_prototype_of_occ

知道(instance tag)查询(part tag):
UF_ASSEM_ask_parent_of_instance(获得父)
UF_ASSEM_ask_child_of_instance(获得子)

知道(entity occurrence tag)查询(part tag):
UF_ASSEM_ask_part_occurrence //查询包含相应对象事例或部件事例的事例

知道(part tag)查询(part occurrence tag):
UF_ASSEM_ask_occs_of_part
//输入父部件标识以及具有事例的部件标识,返回事例的标识数组和事例个数

知道(part occurrence tag)查询(part occurrence tag):
UF_ASSEM_askpart_occ_children
UF_ASSEM_where_is_part_used

知道(instance tag)查询(part occurrence tag):
UF_ASSEM_ask_part_occs_of_inst
//输入实例标识,获取该实例下所对应的所有事例的标识数组及事例个数
UF_ASSEM_ask_part_occ_of_inst
//输入父部件事例标识和实例标识,获取该实例下的事例标识

知道(entity occurrence tag)查询(part occurrence tag):
UF_ASSEM_ask_part_occurrence

知道(part tag)查询(instance tag):
遍历给定的部件下的所有instance,函数的返回值代表下一个instance 的标识
UF_ASSEM_cycle_inst_of_part

知道(part occurrence tag)查询(instance tag):

UF_ASSEM_ask_inst_of_part_occ //查询部件事例所对应的实例标识

知道(instance name)查询(instance tag):
UF_ASSEM_ask_instance_of_name

知道(entity occurrence tag)查询(instance tag):
UF_ASSEM_ask_ask_part_occurrence
UF_ASSEM_askinst_of_part_occ

知道(entity occurrence tag)查询(entity tag):
UF_ASSEM_prototype_of_occ

知道(entity handle)查询(entity tag):
UF_TAG_ask_tag_of_handle

知道(part occurrence tag)查询(entity occurrence tag):
遍历给定的部件occurrence 下的所有对象occurrence,函数的返回值代表下一个对象occurrence 的标识
UF_ASSEM_cycle_ents_in_part_occ

知道(entity tag)查询(entity occurrence tag):
UF_ASSEM_find_occurrence //输入部件事例标识及对象标识,获取该对象的事例标识
UF_ASSEM_ask_occs_of_entity
//输入对象标识,获取进程中全部部件事例中该对象所对应的事例标识数组及事例个数

知道(Part Tag) 查询(Part Name): UF_PART_ask_part_name()

知道(Part Name) 查询(Part Tag): UF_PART_ask_part_tag()

知道(Part Occurrence Tag 或者Entity Occurrence Tag) 查询(Part Tag 或者 Entity Tag):
UF_ASSEM_ask_prototype_of_occ()
如果输入是部件事例标识,返回部件标识;
如果输入为对象事例标识,返回对象原型标识


添加已存部件:UF_ASSEM_add_part_to_assembly
查询装配选项:UF_ASSEM_ask_assem_options
设置装配选项:UF_ASSEM_set_assem_options
获取根部事例:UF_ASSEM_ask_root_part_occ
获取组件中的子组件:UF_ASSEM_ask_part_occ_children ()(获取指定部件事例下的部件事例标识数组和事例个数)
初始化装配约束:UF_ASSEM_init_mc
求解装配约束:UF_ASSEM_solve_mc
将应用约束到装配:UF_ASSEM_apply_mc_data

from_status:主动组件的载入状态
to_status:从动组件的载入状态
mate_type:配合类型
from_type:主动组件特征类型
to_type:从动组件特征类型
from:主动组件的原型标识
from_part_occ:主动组件的事例标识
to:从动组件的原型标识
to_part_occ:被动组件的事例标识
offset:偏移对象的标识,定义两个特征之间的偏移量
name:约束名称
user_name:逻辑类型变量,true表示约束名称是用户自己定义的

建立引用集:UF_ASSEM_create_ref_set
删除引用集中的成员:UF_AEESM_remove_ref_set_members
添加成员到引用集:UF_ASSEM_add_ref_set_members
替代引用集:UF_ASSEM_replace_refset

建立爆炸图:UF_ASSEM_create_explosion
建立装备爆炸与视图之间的关联:UF_ASSEM_set_view_explosi

on
组件爆炸:UF_ASSEM_explode_component

建立体链接: UF_WAVE_create_linked_body
建立线链接:UF_WAVE_create_linked_curve
读取部件属性:UF_ATTR_ask_part_attrs
设置属性:UF_ATTR_assign
于读取指定属性类型和属性标题的属性值:UF_ATTR_read_value

查询工程图设置:UF_DRF_ask_preference
设置工程图设置:UF_DRF_set_perference
设置视图边界是否可见:UF_DRAW_set_border_display
设置视图比例:UF_DRAW_set_view_scle
查询文本设置:UF_DRF_ask_lettering_preferences
设置文本设置:UF_DRF_set_lettering_preferences
设置网格参数:UF_DISP_set_grid_parameters

新建工程图:UF_DRAW_create_drawing
打开工程图:UF_DRAW_open_drawing
删除工程图: UF_DRAW_delete_drawing
更名工程图: UF_DRAW_rename_drawing
UF_DRAW_ask_current_drawing() 获取当前工程图页面的标识,可以使用UF_OBJ_ask_name()函数获取该页面的名称
UF_DRAW_ask_drawing_info() 获取某一工程图页面的相关信息,包括大小、比例、单位、投影角
UF_DRAW_set_drawing_info() 设置某一工程图页面的相关信息,包括大小、比例、单位、投影角
UF_DRAW_ask_drawings() 获取当前工作部件所有工程图页面的标识数组

UF_DRAW_ask_views() 查询给定工程图页面上视图的数量和视图标识数组
UF_DRAW_ask_view_display() 查询指定视图的显示设置,这些设置信息与UG 交互状态下使用鼠标左键双击视图打开的“视图样式”对话框中的信息相同
UF_DRAW_ask_view_borders() 获取视图的边界信息
UF_DRAW_ask_view_scale() 获取视图的比例,如果该视图比例是参数化的还将返回表达式的标识,否则表达式的标识为NULL_TAG
UF_DRAW_ask_view_status() 获取视图的状态,可以为UF_DRAW_ACTIVE_VIEW或者UF_DRAW_REFERENCE_VIEW
UF_VIEW_ask_type() 获取视图的类型和子类型
UF_VIEW_ask_tag_of_view_name() 对于已存在的视图,根据视图的名称获取视图的标识
UF_DRAW_ask_drawing_of_view() 获取包含指定视图的工程图页面的标识
UF_VIEW_cycle_objects() 在给定的视图内遍历对象
uc6433() 根据视图的名称获取视图的转换矩阵

UF_DRAW_move_view() 移动指定的视图到当前工程图页面的指定位置
UF_DRAW_move_view_to_drawing() 移动指定的视图到指定的工程图页面
UF_DRAW_set_view_display() 设置指定视图的显示设置,这些设置信息与UG 交互状态下使用鼠标左键双击视图打开的“视图样式”对话框中的信息相同
UF_DRAW_set_view_scale() 设置视图的比例为指定的值
UF_VIEW_delete() 删除指定的视图或返回视图不能被删除的错误代码
UF_VIEW_copy_view() 创建一个给定视图的复制
UF_VIEW_rename() 重新修改视图的名称
UF_VIEW_update_view()

更新一个指定的视图

添加辅助视图:UF_DRAW_add_auxiliary_view
添加圆形局部视图:UF_DRAW_add_circ_detail_view
添加局部视图:UF_DRAW_add_detail_view
添加正交视图:UF_DRAW_add_orthographic_view
建立简单剖:UF_DRAW_create_simple_sxview
建立阶梯剖:UF_DRAW_create_stepped_sxview
建立半剖:UF_DRAW_create_create_half_sxview
建立旋转剖:UF_DRAW_create_revolved_sxview
建立展开剖:UF_DRAW_create_unfolded_sxview
导入视图:UF_DRAW_import_view

创建并显示中心线:UF_DRF_create_linear_cline
创建并显示整圆中心线:UF_DRF_create_3pt_cline_fcir
创建并显示部分圆中心线:UF_DRF_create_3pt_cline_pcir
创建并显示整螺栓圆:UF_DRF_create_3pt_cline_fbolt
创建并显示部分螺栓圆:UF_DRF_create_3pt_cline_pbolt


获得当前标签的显示部分:UF_PART_ask_display_part
指定部件中所有表达式的标识:UF_MODL_ask_exps_of_part (第3个参数定义tag*类型变量 然后用&符号)
UF_MODL_ask_exp_tag_string:根据表达式标签,获取表达式的字符串形式

UF_PART_import:将一个对象导入到当前工作文件中,被导入对象导入时的各类状态在UF_import_part_modes_s:设置被导入对象导入时的各类状态。
(为了和UGNX内部数据结构保持一致,该结构体在uf_part.h中被重新定义为UF_import_part_modes_t
在进行二次开发时用的是:UF_import_part_modes_t)

UF_GROUP_ask_group_data:输入一个组的标签,查询里面的所有成员
UF_OBJ_ask_type_and_subtype:通过标签,查询相关的特征(体,面,等等)(例如第二个参数等于70,第三个参数等于0表示找到的是一个实体的标签)


UF_ASSEM_ask_work_part:返回当前工作部分的标签(装配)
UF_LAYER_ask_work_layer:获取当前图层
UF_ASSEM_add_part_to_assembly :在给定的装配体中添加一个部件

可以用下面的代码找出错误:
int err = UF_ASSEM_add_part_to_assembly();
char msg[133] = "";
UF_get_fail_message(err, msg);
uc1601(msg, 1);

int UF_MODL_ask_feat_body
(
tag_t feature_obj_id, //特征对象标识符
tag_t *body_obj_id

)

uf_part_ask_part_name:这个函数的输入参数是部件的原型tag,输出参数是部件的路径

uc4574;输入的是部件路径,输出的是部件名称
uc4576 输出目录组件和文件名称组件


NXObjectManager::Get(faceTag); tag转换函数 (代码录制)

std::vector (容器,相当于链表)
vecFace.push_back(往容器中压入某个值)

原型tag = 部件tag
根显示部件发生变化,OCC就会改变, instance tag不会改变


打开一个对话框会初始化4次:
1、创建对话框时设置的参数;
2、 initialize_cb
3、NX自身的一个记忆功能(如果某个操作或者数值设的比较多,这时会初始化为这个操作或者数值)
4、dialogShown_cb

初始化函数一般写在dialogShown_cb里

点击应用或者确定时的处理函数都写在apply_cb()里
update_cb: 是对话框上控件状态发生改变时回调函数,比如单机一个按钮、改变一个下列表框(枚举)的选项、选择一个对象等
关闭block对话框之前弹出其他对话框,我们一般写在按钮的回调函数里


设计对话框是,使用选择对象对话框:
在函数int CreateBolckDlg2::filter_cb(NXOpen::BlockStyler::UIBlock* block, NXOpen::TaggedObject* selectObject)中
当鼠标滑过NX的界面,会选择很多对象(如果需要选择某些特定的对象,例如面等等)则需要在dialogShown_cb()函数里使用下面
的代码进行过滤:(选择面为例)

Selection::MaskTriple maskTrip;
SelectMaskArray maskArray;
//设置选择底面过滤条件
maskArray.RemoveAll();
maskTrip.Type = UF_solid_type;
maskTrip.Subtype = UF_solid_face_subtype;
maskTrip.SolidBodySubtype = UF_UI_SEL_FEATURE_ANY_FACE;
maskArray.Add(maskTrip);
CBlockBase::SetSelectionFilter(selUnFaceUI, Selection::SelectionActionClearAndEnableSpecific, maskArray);

UF_MODL_ask_shared_edges: 把两个面相交部分存入链表
UF_ASSEM_set_work_part: 通过partTag设置为工作部件(装配下)
UF_ASSEM_set_work_occurrence: 通过occTag设置为工作部件(装配下)
UF_ASSEM_ask_root_part_occ ;获取根部事例
UF_ASSEM_ask_all_part_occ_children; 输出子部件的 occurrence 标识数组
UF_ASSEM_ask_component_data:获取该节点的相关信息
UF_ASSEM_ask_part_occ_of_inst输入父OCC和instance tag 返回值是该部件的OCC

UG的系统菜单文件所在的路径 默认值为$UGII_BASE_DIR/ugii/menus
主菜单文件的全路径 $UGII_DEFAULT_MENU_DIR/ug_main.men
弹出式菜单文件的全路径 $UGII_DEFAULT_MENU_DIR/ug_view_popup.men

CONFIG_ask_system_path:自己封装得函数,可以获取项目存放路径


tag_t part = UF_ASSEM_ask_work_part(); //得到当前装配部件标识
tag_t root = UF_ASSEM_ask_root_part_occ(part); //根据当前装配标识获得根节点
UF_ASSEM_ask_part_occ_children(root, &child_part_occs); //根据装配根节点获得子节点
UF_ASSEM_set_work_occurrence(child_part_occs[i]); //将各子部件设为工作部件
tag_t part1 = UF_ASSEM_ask_work_part(); //取得当前工作部件标识
UF_MODL_ask_exps_of_part(part, &model_exp_num, &exp); //获得该部件表达式标识


装配意义下的部件对象

1.查询当前显示部件和工作部件 UF_ASSEM_ask_display_part() //用于查询当前显示部件
UF_ASSEM_ask_work_part() //用于查询当前工作部件

2.设置当前显示部件和工作部件 UF_ASSEM_set_display_part() //把某一部件设置为当前显示部件
UF_ASSEM_set_work_part() //把某一部件设置为工作部件

3.增加一个part到一个assembly中 UF_ASSEM_add_part_to_assembly() //把存在part加入到装载配

件中
UF_ASSEM_create_component_part()//创建一个新的part,并加到装配件中

4.从一个part事件标识得到part标识 UF_ASSEM_ask_prototype_of_occ(); //如果输入是部件事例标识,返回部件标识;
//如果输入为对象事例标识,返回对象原型标识

5.在一个part中查找实例 UF_ASSEM_cycle_inst_of_part();

UF_OBJ_set_layer() 用于设置可显示的UF对象的层
UF_OBJ_set_color() 用于设置救援UF对象的颜色
UF_OBJ_set_blank_status() 用一坷显示的UF对象的blank状态
UF_OBJ_set_line_width() 用于设置可显示的UF对象的线形
UF_OBJ_set_font() 用于设置可显示的UF对象的字体
UF_OBJ_set_highlight() 用于设置可显示的UF对象的高亮状态 //除高亮状态外其他信息都可以保存到part文件中

UF_DISP_add_item_to_display() 增加一个新的对象到Unigraphics的显示窗
UF_LAYER_cycle_by_layer() 专门针对可显示的UF对象的附加查询函数

UF_UI_select_single()
UF_UI_select_by_class() 是可显示的UF对象类型选择对话框
UF_UI_select_feature()
UF_UI_select_sketch() 让用户在Uuigraphics的交互环境中从图形窗口对象

UG二次开发中,如何遍历得到面的tag:
建的长方体,可以得到长方体features的tag
需要根据特征的tag找到对应的body的tag;UF_MODL_ask_feat_body(tag_t feature_obj_id, tag_t * body_obj_id )
然后通过遍历body,找到所有的面: UF_MODL_ask_body_faces(tag_t body, uf_list_p_t * face_list )


一 《UG 对象类型及操作》
1.部件对象
UG 的部件文件是以.prt 为扩展名的二进制文件。当其被加载到UG 进程中后,有一个
部件对象(Part object)与其相关联,同时UG 也为每个部件对象分配了一个标识(tag)。
利用部件对象的标识,通过相关函数我们可以查看、修改部件中大量的几何与非几何信息。
这些函数大多封装在uf_part.h 头文件中
UF_PART_open() 根据部件的名称将UG 或Solid Edge 部件加载到内存并使其成为工作部件和显示部件
UF_PART_save() 将当前的工作部件保存到磁盘中
UF_PART_close() 关闭指定的部件,并可指定是否关闭装配树中该部件之下的所有部件
UF_PART_ask_part_name() 查询部件的文件名
UF_PART_ask_customer_area() 查询部件中用户定义的数据
UF_PART_ask_description() 查询部件文件的描述信息
UF_PART_ask_families() 查询部件文件中的部件族
UF_PART_ask_part_history() 查询部件文件的历史
UF_ATTR_ask_part_attribute() 获取部件属性对象的标识
UF_OBJ_cycle_objs_in_part() 根据指定的类型遍历部件中的所有对象

2.UF对象
UG 中的对象如特征、实体、草图等都有明确的函数与其对应,在uf_o

bject_types.h
头文件中这些对象都被定义为相关的类型,要对这些对象进行操作,获取其标识,一个重
要的函数就是UF_OBJ_cycle_objs_in_part()。

(1)如果已知一个对象的标识,可以使用UF_OBJ_ask_type_and_subtype()函数来查询其类型和子类型
(2)有的UF对象不仅从属于某种类型,有可能还从属于该类型下的子类型
例如:UF_circle_type 类型对象的子类型包括:UF_circle_open_subtype 开放圆子类型;
UF_circle_closed_subtype 闭合圆子类型;
UF_sketch_ref_circle_subtype 草图参考圆子类型
(3)对象的状态有四种:被删除状态 UF_OBJ_DELETED
临时状态 UF_OBJ_TEMPORARY
不正常状态 UF_OBJ_CONDEMNED
激活状态 UF_OBJ_ALIVE。
对象的状态可以使用函数UF_OBJ_ask_status()来进行查询。

UF_OBJ_set_layer() 修改对象所在的图层
UF_OBJ_set_color() 修改对象的颜色
UF_OBJ_set_line_width() 修改对象的线宽
UF_OBJ_set_blank_status() 修改对象的Blank 状态
UF_OBJ_set_font() 修改对象的线型
UF_DISP_set_highlight() 切换对象的高亮显示状态

UF_OBJ_is_type_displayable() 可以检测该类型UF 对象是否属于可显示的UF 对象
UF_OBJ_ask_display_properties() 判断对象的颜色、层、Blank 状态、线型和线宽是否能够设置

3.表达式
UF_MODL_create_exp() 创建表达式
UF_MODL_create_exp_tag() 创建表达式,并获得新创建的表达式的标识(tag)
UF_MODL_dissect_exp_string() 分解表达式,返回表达式的名称、值和标识
UF_MODL_ask_exp() 根据表达式的名称获取整个表达式
UF_MODL_eval_exp() 根据表达式的名称计算表达式的值,输出一实数值
UF_MODL_edit_exp() 用新的值替换表达式中的原有值, 使用该函数后注意调用函数
UF_MODL_update() 更新模型
UF_MODL_ask_exps_of_part() 根据部件标识获取部件中所有表达式的数量,以及部件中所有表达式标识的数组
UF_MODL_ask_exps_of_feature() 根据特征标识获取特征中所有表达式的数量,以及特征中所有表达式标识的数组
UF_MODL_ask_exp() 根据表达式的名称获得表达式的“名称-数值”对
UF_MODL_ask_exp_tag_string() 根据表达式的标识获得表达式的“名称-数值”对
UF_MODL_ask_exp_tag_value() 根据表达式的标识获得表达式的数值
UF_MODL_eval_exp() 根据表达式的名称计算表达式的数值
UF_MODL_ask_exp_desc_of_feat()根据特征标识获取特征中所有表达式的数量,特征中所有表达式标识的数组,以
及各个表达式的描述
UF_MODL_ask_descriptor_of_exp() 根据表达式标识获取

该表达式的描述
UF_MODL_dissect_exp_string() 根据表达式的“名称-数值”对,获取表达式的LHS、RHS 和表达式的标识
UF_MODL_edit_exp() 根据输入的表达式的“名称-数值”对,修改表达式,当表达式被修改后,使用
函数UF_MODL_update()更新模型
UF_MODL_rename_exp() 根据输入的表达式的旧名称与新名称修改表达式的名称


------------------------------------------------------------------------------------------------------------------
2,《菜单文件》
菜单文件默认情况下都保存在UGII_BASE_DIR/ugii/menus 文件夹下。

ug_main.men UG 主菜单栏的菜单文件
ug_view_popup.men UG 快捷菜单文件
ug_cam.men 进入加工应用模式后,为菜单栏添加相应按钮的菜单文件
ug_drafting.men 进入制图应用模式后,为菜单栏添加相应按钮的菜单文件
ug_mechanisms.men 进入运动分析应用模式后,为菜单栏添加相应按钮的菜单文件
ug_modeling.men 进入建模应用模式后,为菜单栏添加相应按钮的菜单文件
ug_smd.men 进入钣金→成型/压平应用模式后,为菜单栏添加相应按钮的菜单文件

------------------------------------------------------------------------------------------------------------------

3《UG 信息窗口》
UG 信息窗口是指在UG 环境下显示的一个文本框,在应用开发过程中通常用于显示计算结果

UF_UI_open_listing_window() 打开信息窗口
UF_UI_write_listing_window() 将文本写入信息窗口
UF_UI_save_listing_window() 将信息窗口中的文本保存到文本文件中
UF_UI_close_listing_window() 关闭信息窗口
UF_UI_exit_listing_window() 清除信息窗口中的内容,退出信息窗口
UF_UI_is_listing_window_open() 查询信息窗口是否打开

UF_UI_create_part() 显示“创建新部件文件”对话框,创建一个部件并设置其为工作部件,功能与UG 下拉
菜单【文件】→【新建】相同
UF_UI_open_part() 显示“打开部件”对话框,打开一个部件并设置其为工作部件,功能与UG 下拉菜单
【文件】→【打开】相同
UF_UI_create_filebox() 显示用于选择文件的对话框,目的在于获取用户选择文件的全路径

------------------------------------------------------------------------------------------------------------------
4 《部件文件的基本操作》

部件文件的打开操作主要使用函数 UF_PART_open( )、UF_PART_open_quiet( )和 UF_PART_reopen( )
部件文件的保存可使用 UF_PART_save ( )、UF_PART_save_all( )和UF_PART_save_as( )
关闭部件文件 UF_PART_close( )用于关闭指定的部件,
UF_PART_close_all( )用于关闭当

前进程中的所有部件

UF_PART_import( ) 用于从磁盘中将UG NX 部件或Solid Edge 部件导入到当前的工作部件中
UF_PART_export( ) 用于将指定的对象(objects)导出到指定的部件,对象被复制到目标部件中
UF_PART_ask_num_parts( ) 用于返回当前进程中被打开的部件文件的数量,
UF_PART_ask_nth_part( ) 用于获取进程中第n 个部件的标识,
数UF_PART_ask_families( ) 用来获取部件中部件族的标识
UF_FAM_ask_family_data( ) 用于获取族表的数据,该函数的输入参数是族表标识
UF_FAM_ask_attribute_data( )用于获取族表属性的数据
UF_FAM_ask_member_column_data( ) 用于获取族表列信息
UF_FAM_ask_member_row_data( ) 用于获取族表行信息
UF_FAM_edit_member( ) 用于编辑族表成员的数据
UF_FAM_evaluate_intent_data( ) 用于计算意图数据(intent data),返回满足要求的族表成员
UF_PART_apply_family_instance() 用于应用成员的属性值到族表部件
UF_ASSEM_set_instance_intent( ) 用于在装配环境下设置意图数据
UF_ASSEM_eval_instance_intent( ) 用于计算装配实例的意图数据


UF_MODL_ask_minimum_dist_2 //查询两物体间距离
UF_VEC3_cross //单位化向量 所谓单位化就是保持其方向不变,将其长度化为1
UF_is_initialized //检查C API环境已成功打开,初始化
UF_CFI_ask_file_exist //检查目录文件是否存在
UC1616 //点构造器
UF_ASSEM_add_part_to_assembly //将零件模型导入到当前对话框返回模型名称和加载状态等信息
uc4574 //获取文件名不带路径和后缀
UF_ATTR_ask_part_attrs_in_file //从一个未打开的部件文件中读取所有的部件属性

API拾取向量对话框通过函数UF_UI_specify_vector调用
其原型如下:
int UF_UI_specify_vector
(
char* message,
int* mode,
int display_conehead,
double direction[3],
double origin[3],
int*response
);

1,第一个参数显示提示消息
2,第二个参数是拾取模式,可以是如下值:
UF_UI_INFERRED
UF_UI_TWO_POINTS
UF_UI_AT_ANGLE
UF_UI_EDGE_CURVE
UF_UI_TANGENT_TO_CURVE
UF_UI_FACE_NORMAL
UF_UI_DATUM_PLANE
UF_UI_DATUM_AXIS
UF_UI_XC_AXIS
UF_UI_NEGATIVE_XC_AXIS
UF_UI_YC_AXIS
UF_UI_NEGATIVE_YC_AXIS
UF_UI_ZC_AXIS
UF_UI_NEGATIVE_ZC_AXIS

3,第三个参数决定函数执行完毕之后,是否显示矢量箭头,可以是值UF_UI_DISP_TEMP_VECTOR或者UF_UI_DISP_NO_VECTOR中的一个。
4,第四个和第五个参数分别是方向和基点,这个参数唯一地确定了一个矢量。
5,最后一个参数则是对话框的返回值,和前面介绍的其他对话框一样。


uc1603()和uc1605()分别用于显示“单选菜单列表”对话框和“复选菜单列表”对话框


UF_UI_specify_screen_position() //拾取屏幕上位


部件族常用函数:
UF_PART_ask_families() //用来获取部件中部件族的标识
UF_FAM_ask_family_data() //用于获取族表的数据,该函数的输入参数是族表标识
UF_FAM_ask_attribute_data() //用于获取族表属性的数据。
UF_FAM_ask_member_column_data() //用于获取族表列的信息
UF_FAM_ask_member_row_data() //用于获取族表行的信息
UF_FAM_edit_member() //用于编辑族表成员的数据,当所有编辑结束后注意调用函数UF_MODL_update( )执行更新操作
UF_FAM_evaluate_intent_data() //用于计算意图数据(intent data),返回满足要求的族表成员
UF_PART_apply_family_instance() //用于应用成员的属性值到族表部件

UF_ASSEM_set_instance_intent() //用于在装配环境下设置意图数据
UF_ASSEM_eval_instance_intent() //用于计算装配实例的意图数据,并可选择应用结果
UF_translate_variable(), //该函数用于获取环境变量的值

UF_STYLER_ask_value() // 获取相关控件的值后,

UF_CURVE_create_line //画一条线
UF_MODL_create_extruded //创建拉伸体
UF_VEC3_is_parallel //输入2个向量和一个公差,判断这两个向量是不是平行

UF_ASSEM_ask_transform_of_occ()和UF_ASSEM_ask_component_data()用于获
取指定组件的装配空间。需要指出的是,如果输入的参数是部件的事例标识,装配是组件
所从属的部件文件(没有必要一定为显示部件),在这种情况下,装配空间可以解释为拥有
装配的绝对坐标系。如果函数UF_ASSEM_ask_component_data()的输入参数是实例标识,
装配空间则是组件的直接父装配的绝对坐标系

配合条件的创建过程为:
1. 定义配合条件,并调用函数UF_ASSEM_init_mc()进行初始化;
2. 填充配合条件结构体UF_ASSEM_mating_condition_t,其中主要填充配合约束结构体UF_ASSEM_constraint_t;
3. 调用函数UF_ASSEM_solve_mc()求解配合条件;
4. 调用函数UF_ASSEM_apply_mc_data()应用配合条件到一组件;
5. 调用函数UF_MODL_update()更新模型,以反应模型变化


sys MLDLG





















相关主题
相关文档
最新文档