【转帖】ug/open Api简明教程
User Functions培训简明教程
第一章 绪论 1 User Function是什么 定义:在UG中用C语言开发应用程序的一个工具 2 User Function的两种形式 External (执行程序) Internal (动态连接库) 3 User Function的组成与相互关系 User Function可以分为以下几个部分: 菜单 对话框 应用程序(回调函数) C语言库函数 (1) 创建与查询几何实体 (2) 分析几何实体 (3) 创建与编辑特征 (4) 创建与编辑表达式 (5) 数据管理 这几部分的关系可以作如下的描述: User Functions的菜单和对话框是程序与用户交互的工具,从菜单可以起动应用程序,对话框等,在对话框激活控件时,将调用相应的回调函数,回调函数和控件的关系在UIStyler 中定义。应用程序和回调函数用基本的C语言和User Functions的库函数编码。 4 User Functions的执行 User Functions的执行包括四种形式: (1) FileExecute UG/OPEN User Functions 选取该菜单将出现一个文件打开对话框,选取相应用应用程序即可。 (2) Menu ACTION (3) UIStyler 回调函数 (4) 将应用程序COPY到UGII_USER_DIR\startup子目录下,应用程序将在UG启动时自动运行。 5 User Functions的开发步骤 有关软件工程方面的内容,不是我们要介绍的内容,要讲的是User Functions有关的开发步骤。在下面讲述的内容是以NT下的Visual C++ 5.0和UG15.0为支持环境。 具体的开发步骤如下: (1) 建立C源程序 (2) 在Visual C++中建立一个project (a).Create new project FileNew projectWin32 Dynamic-Link Library 此时还要输入project的名称。 (b).配置编译Option Projectsetting C/C++Code generationMultithreaded DLL (c).配置LINK options ProjectsettingLINKObject/Library modules在增加两个库libufun.lib和libinternal.lib (这两个库替换原来的ugraf.lib) (d).配置include path tooloptionsdirectoriesinclude files中增加 c:\ugs150\ugopen (该目录为UG15的安装目录,要根据安装情况定) (e).配置library path tooloptionsdirectorieslibrary files中增加c:\ugs150\ugopen( 该目录为UG15的安装目录。 (f). 增加files projectadd To projectfiles 选择相应的C源文件。 (g).配置Debug Options ProjectsettingsDebug Executable for debug session 输入c:\ugs150\ugii\ugraf.exe ProjectsettingsDebug Working director 输入一任意工作路径 ProjectsettingsDebug program arguments 输入 ogl auto 如果不需要调试程序,(g)可以不作。 以上步骤主要是指不用UIStyper开发应用程序,其程序的执行可以直接用4中所讲述的方法(1)。如果用UIStyler开发应用程序,可以用ApplicationUser Interface Styler设计一个对话框,UG会自动生成C源程序的框架结构,用户可以在程序中增加相应的内容,使应用程序完成不同的工作。有关此类程序的执行一些注意事项参考UGII_USER_DIR环境变量的内容。 6 与User Functions有关的环境变量 UGII_USER_DIR :可以指向文件系统的任意路径。在该环境变量指定的目录中,有三个子目录,即startup、application和udo。在startup子目录下的动态连接库文件(在NT下为*.DLL),菜单定义文件(*.men)将在UG启动时自动运行。而application子目录则是UG在装载自定义菜单时,ACTIONS所指定的menu文件,dlg文件和动态连接库文件的缺省路径,也就是说在menu文件指定的这些文件都要COPY到application子目录下,否则系统会有错误提示。 第二章 应用程序的界面设计 第一节 MenuScript MenuScript是用户修改,增加和创建新的用户菜单的工具,用它可以对标准的UG_GATEWAY_MAIN_MENUBAR和UG_GATEWAY_VIEW_POPUP菜单进行修改和编辑。下面是一些常用的语句。 CREATE :创建一个新的菜单 EDIT :编辑一个菜单 BUTTON :按钮 CASCADE BUTTON:下拉式按钮 SEPERATION :分隔符 TOGGLE BUTTON:复选按钮 BEFORE 和 AFTER:指明菜单的位置 MODIFY :修改一个菜单 ACTIONS它可以跟以下内内容 STANDARD----它指向标准的UG应用 User-Defined Callback----它指向用户定义的回调函数 UIStyler dialog ---- 它指向一个UIStyler 对话框 GRIP Program File ----- 它指向一具GRIP 程序 EXAMPLE1: VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR BEFORE UG_HELP CASCADE_BUTTON LAUNCH_CASCADE LABEL Dialog Launcher END_OF_BEFORE MENU LAUNCH_CASCADE BUTTON DEMO_BTN LABEL Display demo dialog ACTIONS demo END_OF_MENU MENUSCRIPT_FILE_ID PVFKENPPAC EXAMPLE2: VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR MODIFY APPLICATION_BUTTON UG_APP_MODELING LIBRARIES ufx_menuscript_ufsta.sl MENU_FILES/APPEND ufx_menuscript_modeling.men END_OF_MODIFY MENUSCRIPT_FILE_ID PPDMERMPAG 第二节 UIstyler 1. UIstyler对话框设计工具 有关对话框设计工具的使用请参考用户手册。 2. UIstyler编程 用UIStyler编辑一个对话框,系统自动生成三个文件,一是C语言源文件的框架,也即给出了每个回调函数的框架,回调函数具体的操作,则需用户自己加入;一是定义函数原型的C头文件(*.h),一个对话框文件(*.dlg)。 两个函数常用的函数:UF_STYLER_ask_value( ……) UF_STYLER_set_value(……) 作业: 用UIStyler设计一个对话框,并用Visual C++工具调试该程序。 第三章 User Function的一些基础操作 1 User Function程序的Format #include void ufusr ( char *param , int *retcode, int param_len ) { int irc; irc = UF_initialize() ; // 在这里加入用户的程序 irc = UF_terminate() ; } 2 文件操作 User Function提供了些进行prt文件处理的函数,可用于prt文件的open, close,new, save, save as, 得到工作零件,设置工作零件,import 、export文件等操作。常用的函数包括 UF_PART_open UF_PART_ask_num_parts UF_PART_save_all UF_PAET_close_all UF_PART_ask_part_name UF_PART_ask_part_tag UF_PART_ask_display_part UF_PART_set_display_part 有关这些函数的使用可参考USER MANUAL。 3 程序message的显示 User Function几乎所有的函数都返回一个INT型的数,为0时表明执行正确,非0时可用UF_get_fail_message函数得到出错信息,用UF_UI_set_status将错误显示在状态行,用UF_UI_set_prompt将错误显示在提示行,UF_UI_display_nonmodal_msg函数可以显示一具提示对话框。 4 内存管理 在User Function的一些函数返回值分配了内存,需要程序释放内存(函数说明中标明OF),可用UF_free和UF_free_string_array完成。 5 标准对话框 User Function定义了很多标准的对话框,可进行交互输入,选择等操作,如:uc1616 调用点subfunction对话框输入一个点 UF_UI_select_by_class UF_UI_select_single 除些以外还有大量的函数,可在uf_ui.h中找到。 第四章 装配和建模 1 有关装配的几个概念 Piece Part 零件 Occurrence(part Occurrence and object Occurrence) 事件 Instance 实例 Component part 装配中的一个part可以是零件和子装配 Reference set 实体集,用于简化表示 Displayed Part Work Part 工作零件 Portotype 指向装配中零件的原型 2 有关装配和建模的函数说明表参阅相关的USER MANUAL 3 作业 part1和part2都是平板零件,part3是part1和part2的装配,现要求在part3中选择part1或part2或part1和part2,并用一个足够长的圆柱体在选中的part1和part2上打一个通孔。 程序的过程如下: 1 UF_initialize() ; 2 用 UF_ASSEM_ask_work_part()和 UF_ASSEM_ask_root_part_occ( old_tag )确定当前工作零件是否为装配文件。 3 用UF_UI_select_single(…….)选择零件;opts的scope设为 UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY。 4 用uc1608输入直径、X和Y值; 5 用UF_MODL_create_cyl1()创建一个圆柱体,用 UF_MODL_ask_feat_body()得到feature的ID; 6 用UF_ASSEM_ask_part_occurrence( )得到part的原型。 用UF_ASSEM_ask_prototype_of_occ( )求part的tag和物体的tag; 7 用UF_MODL_operations求交; 8 用UF_terminate() 结束; 第五章 尺寸 尺寸可以在drawing中生成,也可以在model view生成,在关draft的尺寸标注,首先是几个参数设置和获取的函数。 UF_DRF_ask_object_preferences UF_DRF_ask_preferences UF_DRF_set_object_preferences UF_DRF_set_preferences 常用的函数包括: UF_DRF_create_horizontal_dim UF_DRF_init_object_structure UF_DRF_create_vertical_dim Uc5540 Create a Note UF_DRF_create_label 有关函数的说明请参考用户手册。 |
所有的时间均为北京时间。 现在的时间是 09:15 AM. |