创建并显示整螺栓圆: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() 查询部件文件中的部件族