资源预览内容
第1页 / 共47页
第2页 / 共47页
第3页 / 共47页
第4页 / 共47页
第5页 / 共47页
第6页 / 共47页
第7页 / 共47页
第8页 / 共47页
第9页 / 共47页
第10页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
大型软件UG二次开发主讲:于红英1.1 UG/OPEN API 简介及约定 UG/OPEN API 是UG与外部应用程序的接口,它是UG提供的一系列函数和过程的集合。通过C语言编程来调用这些函数或过程,能够实现: 对UG模型文件及相应模型进行操作,包括建立UG模型、查询模型对象、建立并遍历装配体、创建工程图等; 在UG主界面中创建交互式程序界面 创建并管理用户定义对象等第一章 UG/OPEN API 概述 函数和过程在$UGII_BASE_DIR/ugopen 目录下的头文件中定义。uf.hUG/OPEN API 的公共类型和函数定义。uf assem.h与装配有关的类型和函数定义。uf_attr.h关于PART和对象属性的类型及函数定义。uf_bound.h关于边界的类型和函数定义。uf_brep.h关于边界表示的类型和函数定义。uf_cam.h使用UF_CAM模块的相关类型和函数定义。 uf_disp.h与显示相关的函数及类型定义。 uf_cfi.h文件操作的函数说明。uf_clear.h间隙分析的相关函数和定义。uf clone.h装配件与PDM系统之间的接口。uf_csys.h坐标系的操作函数与类型说明。uf_curve.h曲线和点的操作函数及相关信息说明。uf_dbc_mld.h关于铸模的函数说明。uf_defs.hUF的对象ID链表的定义。 uf_dirpath.h目录及路径操作函数的说明。uf_dpud .hCAM编程的驱动设置及查询的函数和类型定义。uf_draw.h制图时的截面线、图等的创建及查询函数和类型的定义。uf_drf.h制图的符号、标注、尺寸等函数的定义。uf_drpos .h CAM编程的相关函数及类型说明。uf_eplib_types.h支持程序库的一些类型定义。uf_error.h错误处理的函数及数据结构说明。uf_eval.h曲线及边的分析评估函数及类型说明。uf_exit.h用户出口的函数说明。uf_facet.h面片化的相关函数及数据结构说明。uf_fam.h关于零件族的操作函数及数据结构说明。uf_fltr.h关于区域和过滤器的函数说明。uf_gdt.h有关几何尺寸公差的查询函数和数据结构。uf_gexp.h有关几何表达式的函数及数据结构说明。uf_group.h与群组有关的操作函数说明。uf_help.h实现帮助功能的相关函数及数据结构声明。uf_layer.h与层有关的函数声明。uf_layout.h与布局有关的函数声明。uf_lib.h与用于查找对象的库的接口声明。uf_mb.h查询及设置Menuscript中的对象(如按钮等)的属性等相关函数及数结构声明。uf_mech.h与运动学分析有关(运动单元和运动副定义)的函数声明。uf_mold.h与模型创建、查询有关的函数声明和数据类型定义。uf_mold_features.h与特征建模相关的函数声明和数据类型定义。 uf_mold_general.h普通建模函数及数据结构声明。uf_mold_smd.h与钣金建模等有关的函数及数据类型声明。uf_motion.h对传动机构进行干涉分析、测量、轨迹跟踪等函数声明。uf_mtx.h关于矩阵操作的函数声明。uf_ncgroup.h访问CAM UF_NCGROUPS对象的相关函数和结构声明。uf_obj.h有关Unigraphics对象及属性的访问函数定义。uf_object._types.h有关 Unigraphics对象及属性结构的定义。uf_part.h与部件文件操作有关的函数及数据类型声明。uf_path.h有关刀轨的函数声明。uf_patt.h有关 Unigraphics的模式及着色状态的函数声明。uf_plist.h对Part List(COM表)的操作函数及结构声明。uf_plot.h与绘图(出图)有关的函数声明。uf_ps.h提供直接访问 Parasolid的函数功能。uf_rlist.h有关Route (管路)List的函数声明。uf_route.h有关(管路)Route的函数声明。uf_rule.h提供有关设计规范及违规操作数据记录等功能的函数声明。uf_sket.h有关草图的函数及结构声明。uf_smd.hUGOPEN与钣金模块的公共接口声明。uf_so.hUGOPEN与敏捷对象(smart Object)的公共接口,通过敏捷对象能够得到其父对象的相关关信息。uf_std.h提供 Unigraphics与有关标准(如CGM)的接口函数声明。uf_styler.h有关UIStyler的操作函数声明。uf_trns.h提供对坐标、矩阵、位置及对象的转换功能(移动、选择、镜像、缩放)的函数声明。uf_udobj.h关于用户定义对象的函数及结构声明。uf_ugmgr.hUG/Manager的相应函数声明。uf_udop.h关于用户定义操作的函数及结构声明。uf_ugfont.h关于Unigraphics的部件文件中字形表的操作函数及结构声明。uf_ui.h用户界面功能的相应函数及结构声明。uf_undo.h关于Undo操作的相应函数及结构声明。uf_vec.h向量操作的函数声明。uf_view.h视图的操作、查询等函数声明。uf_ wave.hWAVE功能的相应函数声明。uf_web.hWeb功能的相应函数声明。uf_weight.h用于重量重心管理的函数声明。uf_weld.h关于焊接的相应函数声明。uf_xs.h与电子表格相关的函数声明。1.版本说明 Unigraphics 16版下连接的函数库是:libufn.lib及libinternal.lib。Unigraphics 17、18及NX版下连接的函数库是:libufun.lib及libugopenint.lib。 2. 初始化及终止所有的 UGIOPEN API使用,必须及时进行初始化和终止,以确保获取或释放UG/OPEN API的执行许可权限。利用函数UF_initialize()进行初始化,利用函数UF_terminate()终止执行许可权限。 3. 函数应用的特殊要求在创建几何模型、遍历模型或执行其他的一些基本操作时,必须首先创建或打开一个Unigraphics的模型文件。对象标识类tag_t是UG/OPEN API编程时最常用的变量类型,它类似于C语言中的指针。UG/OPEN API中关于 tag_t类的子类很多。对于函数或过程中的tag_t类型,应根据具体要求使用合适的于类。例如:当要查询一个点对象的坐标时,送入查询函数中的tag_t应是点类型几何对象的tag_t,而不是线或面等其他几何对象的tag_t。 4. 对象创建UG/OPEN API拥有大量的用于创建和修改UG对象的函数和过程。UG/OPEN API 的大部分函数不提供错误信息,在创建对象时一般返回对象标识(tag_t)。当返回的对象标识=NULL_TAG时,表示创建对象时出现了错误。 5. 变量声明UGOPEN API支持所有的 C语言数据类型。对象的标识(实体标识)应声明tag_t类型。 6. 错误号在没有特别说明时,每一个函数或过程都返回一个int类型的错误号。当它不为0时,表示出错,可以调用函数UF_get_fail_message得到相应的错误信息。1.2 UG/OPEN API 的应用范围1.用户化定制CAD环境:提供用户化CAD规范;提供用户化标准件库;定制用户化CAD界面等。2.开发在UG软件平台上的用户专用软件 3.开发UG软件与其它CAD软件的接口 1.3 程序的运行模式及执行方式 1.运行模式:(1)Internal 只能在UG界面环境下运行。具有如下特点:1)执行代码小,连接快2)程序一旦被加载到内存中,只能通过UG/OPEN API的卸载功能才能从UG的运行环境中卸它;3)运行结果在UG界面中可见;4)入口函数是ufusr或ufsta。2.程序的执行方式(1)FileExecuteUser Function(2)通过定制用户菜单(3)通过用户工具图标(1)External只能在操作系统下运行,不在UG环境中作为UG的子进程运行。第二章 UG/OPEN API 的约定及编程初步 函数名称及参数约定UG/OPEN API 的数据类型Unigraphics对象类型及操作 2.1 函数名称及参数约定元素描述UF_表示UG/OPEN API函数 通常是应用或模块的首字母的缩写。例如:MODL是Modeling模块首字母的缩写。 是被下划线分开的动词和名词。例如:UF_MODL_create_block()是UG/OPEN API Modeling 模块中创建立方体的函数。1.函数名称约定 标准名称约定格式:UF_ area _ name 原有的名称约定格式:uc xxxx 和uf xxxx 2.参数约定 返回数据类型函数名(变量列表) 函数原型:变量有: I、 O或OFInput、 Output或Output Free)等 例如:函数UF_PART_open()函数名称: UF_PART_open语法格式:int UF_PART_open(Char *part_name, tag_t *part, UF_PART_load_status_t *error_status)注意: error_status结构中包含错误代码和部件文件名称,使用结束后应使用函数UF_free_string_array()和UF_free()释放内存。2.2 UG/OPEN API 的数据类型1.UG/OPEN API 数据结构命名约定 UG/OPEN API 数据结构的命名约定除了下述后缀的约定下,类似于函数的命名约定: _t数据类型 _p_t数据类型的指针 _s结构标识 _u_t联合类型_u_p_t联合类型的指针 _f_t函数指针typedef struct UF_ASSEM_options_s int load_options; int parts_list; int update; int emphasize; int emphasize_color; int failure_actfon; int maintain_work_part; int load_latest: int load_components; int load_fully int load_substitution; UF_ASSEM_options_t, *UF_ASSEM_options_p_t;2. tag_t 数据类型Typedef unsigned int tag_t,tag_p_t作用:把UG/OPEN API与对象模型联系起来。当UG的模型被加载到UG环境中后,tag_t相当于对象的唯一标识,大部分的UG/OPEN API 函数的 变量列表中都有一个tag_t指针或tag_t类。2.3 UG对象类型及操作1.部件对象(1)在部件中查询对象 UF_OBJ_cycle_objs_in_part()(2)访问部件的属性: UF_ATTR_ask_part_attrs()(3)关闭和再打开部件 UF_PART_close()和 UF_PART_reopen()(4)获取部件的文件名 UF_PART_ask_part_name()2. UF对象UF_OBJ_set_color()UF_OBJ_set_line_width()UF_OBJ_set_layer()3. 表达式对象UF_MODL_ask_exp()UF_MODL_eval_exp() UF_MODL_edit_exp()UF_update()第三章 用户界面接口 对话框界面及相关概念UG信息窗口 对象选择功能 文件选择对话框 信息输入及提示功能 3.1 对话框界面及相关概念1.术语和概念 UG/OPEN Dialogs通过UG/OPEN API提供的函数生成的对话框,如uc1616(),UF_UI_select_single()等UIStyler Dialogs使用UIStyler工具创建的对话框。Custom Dialogs开发者使用Motif创建的Xwindow环境上的对话框。Callback当交互事件发生时,UG自动执行由用户编写的C子过程。2. 调用对话框界面 (1) 通过MenuScript在UG的主菜单上附加一个下拉菜单来调用对话框 (2) 从一个UIStyler对话框调用对话框 (3) 通过菜单FileExecute UG/OPEN APIUser Function调用对话框3. 取消对话框 (1) UF_UI_cancel_uf_dialog() (2) UF_UI_dismiss_dialog_area_2()3.2 UG信息窗口 UF_UI_open_listing_window() UF_UI_is_listing_window_open() UF_UI_write_listing_window() UF_UI_save_listing_window() UF_UI_close_listing_window()3.3 文件选择对话框 UF_UI_create_part() UF_UI_open_part()externexternintintUF_UI_create_partUF_UI_create_part( (constUF_UI_err_p_terror_fn,constUF_UI_err_p_terror_fn,char*file_name,char*file_name, intint*units,*units,tag_t*part,tag_t*part, intint*response*response););externexternintintUF_UI_open_partUF_UI_open_part( (constUF_UI_err_p_terror_fn,constUF_UI_err_p_terror_fn,char*file_name,char*file_name,logical*use_logical*use_dispdisp_file,_file,tag_t*part,tag_t*part, intint*response,*response,UF_PART_load_status_t*UF_PART_load_status_t*error_statuserror_status););3.4 信息输入及提示功能uc1600()获取用户的字符输入。uc1607()显示键盘输入界面并获取整数输入。uc1608()显示键盘输入菜单界面并获取整型或实型输入。uc1609()显示键盘输入对话框并获取实型数。uc1601()信息提示。第四章 UIStyler对话框使用 UIStyler的使用UIStyler控件介绍UIStyler常用数据类型和函数4.1 UIStyler的使用1.UIStyler启动2.UIStyler控件种类UG/Open UIStyler-Dialog Item Reference1.基本对话框 4.2 UIStyler控件介绍2. 对话框基本属性 3. 对话框选择属性 4. 对话框基本回调函数 4.3 常用数据类型和函数1. UF_STYLER_item_value_type_s UF_STYLER_item_value_type_s int reason; const char *item_id; int subitem_index; int count; int item_attr; int indicator; UF_STYLER_value_t value;成员成员说明reason通常作为UF_STYLER函数的输出值,表明触发回调函数的原因item_id表示UI_Styler控件的标识ittem_attr表示当前结构变量描述的是控件的何种控件属性subitem_index用来标识控件中的子对象count当Value是数组时,表示数组的长度indicator指明Value的数据类型valueUnion类型的数据,表明控件的值2. UF_STYLER_ask_valueUF_STYLER_ask_value( int dialog_id, UF_STYLER_value_type_p_t value )参 数参 数 描 述dialog_id输入参数,表示被查询控件所属对话框的标识,通常是由Styler对话框传递给回调函数的value作为输入参数,value指明查询对象和该对象属性;作为输入出参数,value返回被查询控件的属性值。3. UF_STYLER_set_valueUF_STYLER_set_value( int dialog_id, UF_STYLER_value_type_p_t value )参 数参 数 描 述dialog_id输入参数,表示被查询控件所属对话框的标识,通常是由Styler对话框传递给回调函数的value输入参数,用于指明被修改的控件,控件属性和控件属性值第五章 MenuScript应用 菜单脚本文件及其语法MenuScript函数MenuScript应用实例5.1 菜单脚本文件及其语法1. 系统环境设置 设置UGII_USER_DIR所指向的目录,在该目录中建立两个文件夹startup和application,菜单脚本文件放在startup目录下,该文件以“.men”为扩展名。2. 菜单脚本文件的语法VERSION EDIT BEFORE UG_FILE CASCADE_BUTTON LABEL TEST END_OF_BEFORE MENU END_OF_MENU CASCADE_BUTTON (或BUTTON) LABEL ACTIONS (对话框,注册的C语言回调函数) SEPARATOR 5.2 MenuScript函数static UF_MB_cb_status_t new_part(UF_MB_widget_twidget,UF_MB_data_tclient_data,UF_MB_activated_button_p_tcall_button );static UF_MB_action_t actionTable =Create_New_Part,new_part,NULL,NULL, NULL, NULL;extern C DllExport void ufsta( char *param, int *returnCode, int rlen ) int error_code = UF_initialize(); int status = UF_MB_add_actions( actionTable )UF_MB_cb_status_t new_part() 第六章 API、UIStyler及MenuScript联合开发 5.3 MenuScript应用实例
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号