UG二次开发实用教程.ppt

上传人:牧羊曲112 文档编号:5451440 上传时间:2023-07-08 格式:PPT 页数:38 大小:479.50KB
返回 下载 相关 举报
UG二次开发实用教程.ppt_第1页
第1页 / 共38页
UG二次开发实用教程.ppt_第2页
第2页 / 共38页
UG二次开发实用教程.ppt_第3页
第3页 / 共38页
UG二次开发实用教程.ppt_第4页
第4页 / 共38页
UG二次开发实用教程.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《UG二次开发实用教程.ppt》由会员分享,可在线阅读,更多相关《UG二次开发实用教程.ppt(38页珍藏版)》请在三一办公上搜索。

1、二次开发应用框架,日期:2007年 8 月,2,主要内容,二次开发工程项目的创建,应用程序框架,工程路径设置,API运行模式,程序的初始化及终止,用户入口,工程项目的创建,4,概述,二次开发工程的创建常用有3种:UG/Open AppWizard Win32应用程序向导 MFC应用程序向导,UG应用开发程序采用了动态链接库(DLL,Dynamic Link Library)技术,使用上述任何一种应用向导开发程序,最终生成的结果都是DLL文件,UG启动时会自动加载动态链接库文件供用户调用,从而实现了应用开发程序与UG平台的无缝集成。,5,利用UG/Open AppWizard向导 设置向导1,我

2、们假设 Visual C+.NET 2003 安装在 C:ProgramFilesMicrosoft Visual Studio.NET 2003Vc7:,第一步:从UG安装路径的目录下 UGII_BASE_DIRugopenvc7_filesvcprojects 拷贝所有文件到C:Program FilesMicrosoft Visual Studio.NET 2003Vc7vcprojects,6,利用UG/Open AppWizard向导 设置向导2,第二步:拷贝整个目录 UGII_BASE_DIRUGOPENvc7_filesVCWizardsUnigraphics_NX_Open到

3、C:Program FilesMicrosoft Visual Studio.NET 2003Vc7VCWizards,7,利用UG/Open AppWizard向导,1.4节已经详细介绍了使用UG/Open APPwizard 创建一个简单的First Project程序。该向导是UG软件本身提供的应用向导,随着UG版本和开发环境的升级而升级。该向导操作简便,运行稳定,可以快速构建开发体系,但通常不支持MFC类库,因此常常应用于辅助工具的开发。,8,利用UG/Open AppWizard向导,9,利用UG/Open AppWizard向导,10,利用UG/Open AppWizard向导,1

4、1,利用Win32应用程序向导-新建项目,12,利用Win32应用程序向导-设置项目属性(1),13,利用Win32应用程序向导-设置项目属性(2),14,利用Win32应用程序向导-设置项目属性(3),15,利用Win32应用程序向导-设置项目属性(4),16,利用Win32应用程序向导-设置项目属性(5),17,利用Win32应用程序向导-设置项目属性(6),应用程序框架,19,应用程序框架,UG/Open API 应用程序一般包括菜单、对话框、应用程序(DLL)和UG/Open API库函数四部分,其中菜单和对话框是程序与用户交互的工具,从菜单可以启动应用程序、对话框等,在对话框激活控件

5、时,将调用相应的回调函数,应用程序(回调函数)用基本的C/C+语言和的库函数编码。,20,应用程序框架,菜单:菜单文件(.men)和工具条文件(.tbr),放在应用程序目录的startup子目录中。对话框:对话框文件(.dlg),放在程序目录的application子目录中。应用程序(回调函数):应用程序(.dll),放在程序目录的startup子目录中。UG/Open API库函数:默认存放在“$UGII_BASE_DIRugopen”目录中。在创建应用程序时需要配置。,21,应用程序框架,UG规定的目录有 startup、application、udo和dfa。UG对它们存放的文件做了如下

6、的规定:(1)Startup 目录存放UG启动时需加载的动态链接库文件(*.dll)、菜单脚本文件(*.men)和用户工具栏脚本文件(*.tbr)。(2)Application 目录存放具体的功能扩展程序文件,如UIstyler 对话框文件(*.dlg)。(3)Udo目录用于存放与用户自定义对象相关的动态链接库文件。(4)Dfa目录存放KF程序文件(*.dfa)及对应的对话框文件。,工具图标文件(*.bmp),工程路径设置,23,工程路径设置-配置文件法,$UGII_BASE_DIRUGIIugii_env.datUGII_CUSTOM_DIRECTORY_FILE=$UGII_DEFAULT

7、_MENU_DIRcustom_dirs.datUGII_UG_CUSTOM_DIRECTORY_FILE=$UGII_DEFAULT_MENU_DIRug_custom_dirs.dat在默认情况下,custom_dirs.dat和ug_custom_dirs.dat位于路径“$UGII_BASE_DIRugiimenus”。,custom_dirs.dat用于存放用户指定的目录,UG最初安装后该文件不包含任何目录,且该文件不会随着UG新版本的发布而更新。Ug_custom_dirs.dat用于存放UG指定的目录,该文件会随着UG新版本的发布而改变并被覆盖,建议不要编辑该文件。,24,工程路

8、径设置-配置文件法,当UG启动时,系统检查这两个文件中注册的工程路径并自动加载该路径下的所有资源,包括用户菜单、对话框和动态链接库等。,配置文件custom_dirs.dat 的基本语法如下:(1)文件中允许使用注释,注释符“#”。(2)每一行只能写一条工程路径,要确保路径的正确。(3)custom_dirs.dat允许添加多个文件路径,UG在启动时将按照先后顺序依次载入。,25,工程路径设置-环境变量法,UG 环境配置文件ugii_env.dat 中存在3个用于注册工程路径的环境变量,如下表所示。去掉环境变量前的注释符“#,在等号后写入具体的工程路径,则在 UG 启动的同时会将这些环境变量所

9、指定的工程路径中的资源按照优先级的顺序加载。,API运行模式,27,API运行模式 内部模式,内部模式(Internal开发模式)的程序只能在UG的界面环境下运行。在运行内部程序时,它们以.dll(动态链接库)的方式被调到UG的进程空间中。它必须启动UG才能运行。,执行代码小,连接快;内部程序一旦被加载到内存中,只能通过UG/Open API的卸载功能才能从UG运行功能中卸载它;运行结果在UG的界面图形环境中可见;入口函数是ufusr或ufsta;最大的优点是能处理UG的UI的对象接口,实现和UG界面的无缝集成,内部程序有下列特点:,28,API运行模式 内部模式,内部模式的应用程序执行方式,

10、直接激活方式 该方式不用设置环境变量,程序编译连接后即可执行。在UG环境中选择菜单:File-Execute-NX Open,将出现一个文件打开对话框,选取相应应用程序(.dll)即可。用户菜单调用方式 使用该方式必须设置环境变量UG_USER_DIR,将环境变量UG_USER_DIR指向应用程序主目录,将应用程序(.dll)放置到主目录的$UGII_USER_DIRapplication或$UGII_USER_DIRstartup子目录下。,29,API运行模式 内部模式,UIStyler 回调函数方式 由UIStyler创建的对话框回调函数中激活应用程序(.dll)通过用户出口 根据用户出

11、口不同,设置相应的环境变量,激活对应入口函数应用程序.dll。,30,API运行模式 内部模式,内部程序的一般格式如下:#include/*Prototypes exist in this file.*/void ufusr()/*申明变量*/UF_initiialize();/*用户代码*/UF_terminate();,31,API运行模式 外部模式,外部模式下的程序可以在操作系统下运行,不必在UG环境中作为UG 的子程序运行。外部程序是可执行程序,运行时只要有UG License 的支持,就可以由操作系统直接执行,不需要启动UG。,它的优点是不必启动UG,属于后台执行,这样可以节约运行时

12、间,其缺点在于它不能和UG发生联系,因而不能利用UG的显示窗口动态反馈操作结果,同时也不能实现一些用户的交互操作和管理或控制出图,所以它一般用于part 零件文件大量创建,而不适用于用户交互性的几何建模和修改、存取外部程序在操作系统平台的命令行直接执行即可。,32,API运行模式 外部模式,外部程序的一般格式如下:#include/*头文件*/int main(int argc,char*argv)/*申明变量*/UF_initiialize();/*用户代码*/UF_terminate();,程序的初始化及终止,34,程序的初始化,所有UG/Open API程序的使用,必须及时进行初始化和终

13、止,以确保获取或释放UG/open API的执行许可权限。在调用UG/Open API的函数前,应先调用 UF_initialize()来获得执行许可权限。一般来说,第一个调用的UG/open API函数就是UF_initialize()。当不再调用API函数的时候,必须调用UF_terminate()来释放执行许可权限。,UF_initialize()函数的调用应该紧跟程序中的变量声明部分,而int UF_terminate()则应在程序最后才被调用,对于外部UF和内部UF都是如此,这说明外部UF的运行虽然脱离UG,但仍离不开API执行许可权限的支持。,用户入口,36,用户入口,User E

14、xit是UG/Open API中的一个重要概念。UG在运行过程中某些特定的地点存在着规定的入口,当进程执行到这些入口时,UG会自动检查用户是否在此处已定义了指向内部UF程序位置的环境。若没有定义则以UG默认的方式继续运行下去;若已定义则从该处自动运行用户开发程序,这个过程被称为User Exit。,利用不同的User Exit能让用户程序在UG运行到特定点时被自动执行。不同的入口具有不同的User Exit名称,用户程序以不同的User Exit作为入口点,就能决定该程序在UG进程的哪个阶段被自动激活并运行。,37,用户入口,每个User Exit都有唯一的入口名称,以便用户在子程序中调用,当UG执行到某个入口时,便会在用户程序中寻找对应的User Exit函数名称,若存在则调用该函数并执行函数体,若不存在则继续UG默认进程。最常用的User Exit是ufsta()与ufusr(),UF_exit.h,Thank You,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号