|
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) FileExecute 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 FileNew projectWin32 Dynamic-Link Library 此时还要输入project的名称。
(b).配置编译Option Projectsetting C/C++Code generationMultithreaded DLL
(c).配置LINK options ProjectsettingLINKObject/Library modules在增加两个库libufun.lib和libinternal.lib (这两个库替换原来的ugraf.lib)
(d).配置include path tooloptionsdirectoriesinclude files中增加 c:\ugs150\ugopen (该目录为UG15的安装目录,要根据安装情况定)
(e).配置library path tooloptionsdirectorieslibrary files中增加c:\ugs150\ugopen( 该目录为UG15的安装目录。
(f). 增加files projectadd To projectfiles 选择相应的C源文件。
(g).配置Debug Options ProjectsettingsDebug Executable for debug session 输入c:\ugs150\ugii\ugraf.exe ProjectsettingsDebug Working director 输入一任意工作路径 ProjectsettingsDebug program arguments 输入 ogl auto 如果不需要调试程序,(g)可以不作。
以上步骤主要是指不用UIStyper开发应用程序,其程序的执行可以直接用4中所讲述的方法(1)。如果用UIStyler开发应用程序,可以用ApplicationUser 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 有关函数的说明请参考用户手册。 |
|