空调产品结构设计特征讲义

上传人:xins****2008 文档编号:91998734 上传时间:2022-05-18 格式:DOCX 页数:42 大小:621.40KB
收藏 版权申诉 举报 下载
空调产品结构设计特征讲义_第1页
第1页 / 共42页
空调产品结构设计特征讲义_第2页
第2页 / 共42页
空调产品结构设计特征讲义_第3页
第3页 / 共42页
资源描述:

《空调产品结构设计特征讲义》由会员分享,可在线阅读,更多相关《空调产品结构设计特征讲义(42页珍藏版)》请在装配图网上搜索。

1、基于UG/Open API的空调产品结构设计特征库的开发系 别:专 业 班:姓 名:学 号:指导老师:年 月基于UG/Open API的空调产品结构设计特征库的开发The Development of Structural Design Feature Library of Air Conditioning Product Based on UG/Open API摘 要Unigraphics(简称UG) 软件是目前应用最为广泛的大型CAD/ CAE/CAM 集成化软件之一,其内容涵盖设计、分析、加工、管理等各个领域,它除了为用户提供零件建模、装配、有限元分析、运动分析、制图、数控加工编程等通用

2、模块,还提供了各种专用模块,如工业设计、模具设计加工、钣金设计加工、管路设计等。Unigraphics不仅具有强大的实体造型、曲面造型、参数化造型、装配和工程图创建等功能,还提供了功能强大的二次开发工具UG/Open API。用户或第三方可以使用该开发工具,开发出基于UG系统的应用程序,实现与UG系统的无缝集成,从而满足用户的特殊需求。 本文基于UG/Open API二次开发软件,结合美的空调塑料件及板金件产品常用结构设计特征库的开发,在VC+9.0的环境下,运用C语言编程进行程序的设计,开发出基于UG系统的应用程序,在UG的环境下进行实体造型与参数化设计,实现与UG系统的无缝集成。本文以螺丝

3、柱的实体造型为例,详细描述了VC环境下的编程、生成代码过程和UG环境写的参数化造型。关键字:UG UG/Open API 特征库AbstractUnigraphics (abbreviated UG) Software is one of the the most widely used large-scale CAD / CAE / CAM integrated software ,They cover design, analysis, processing, management and other fields ,It addition to providing parts model

4、ing, assembly, finite element analysis, motion analysis, mapping, NC programming and other general-purpose modules offer a variety of specialized modules, such as industrial design, mo not only powerful solid modeling, surface modeling, parametric modeling, assembly and engineering plans to create o

5、ther functions, but also provides a powerful development tool UG / Open API. Users or third parties may use the development tools, developed UG-based system applications, To achieve seamless integration with the UG system to meet the users specific needs.This paper, based on UG / Open API secondary

6、development software, combination of midea air conditioning and sheet metal parts, plastic products commonly used in structural design characteristics of database development,in VC + +9.0 environment, the use of C language programming for the design process to develop applications based on the UG sy

7、stem, in the UG environment for solid modeling and parametric design, to achieve seamless integration with the UG system. In this paper, the solid modeling screw column example, the detailed description of the VC environment, programming, code generation process and the UG environment written in par

8、ametric modeling.Key Words: UG UG/Open API Features Library 目录 摘 要IAbstractII绪 论11 UG/Open API介绍21.1 UG简介21.2 UG/Open的相关模块21.3 在VC环境下开发UG应用程序51.3.1 使用工程向导ugopen.awx创建应用程序61.4 应用程序的自动卸载72 美的空调产品结构特征库整理92.1 墩口92.2 扩缩口、喇叭口102.3 翻边孔112.4 压口122.6 塑料件132.7 板金件143、空调产品结构特征库的开发153.1 菜单创建153.1.1 MenuScript菜单

9、技术153.1.2 菜单脚本文件的语法163.1.3 菜单的位置17参考文献36 绪 论Unigraphics(简称UG)是当今世界上最先进和紧密集成的面向制造业的CAD/CAE/CAM高级软件。UG软件被许多世界领先的制造商用来从事概念设计、工业设计、详细的机械设计及工程仿真和数字化制造等各领域。UG是EDS公司出品的一个产品工程解决方案,它为用户的产品设计及加工过程提供了数字化造型和验证手段。在产品的三维造型结构方面,UG只是一个通用软件。尽管它有众多模块(例如板金、管道等),但还是满足不了不同企业的个性化需求。为了提高产品设计效率和质量,需要对UG进行定制化开发。UG/Open二次开发模

10、块为UG软件的二次开发工具集,便于用户进行二次开发工作,利用该模块可对UG系统进行用户化剪裁和开发,满足用户的开发需求。UG/Open包括以下几个部分:UG/Open Menuscript开发工具,对UG软件操作界面进行用户化开发,无须编程即可对UG标准菜单进行添加、重组、剪裁或在UG软件中集成用户自己开发的软件功能;UG/Open UIStyle开发工具是一个可视化编辑器,用于创建类似UG的交互界面,利用该工具,用户可为UG/Open应用程序开发独立于硬件平台的交互界面;UG/Open API开发工具,提供UG软件直接编程接口,支持C、C+、Fortran和Java等主要高级语言;UG/Op

11、en GRIP开发工具是一个类似APT的UG内部开发语言,利用该工具用户可生成NC自动化或自动建模等用户的特殊应用。本课题主要通过研究美的空调产品结构设计特征库的开发来说明开发零件库的过程。这样做既节约了用户的时间,又省去了大量建模工作中的重复劳动,为企业创造了优势和竞争力。1 UG/Open API介绍1.1 UG简介Unigraphics 软件是目前应用最为广泛的大型CAD/ CAE/CAM 集成化软件之一,其内容涵盖设计、分析、加工、管理等各个领域,它除了为用户提供零件建模、装配、有限元分析、运动分析、制图、数控加工编程等通用模块,还提供了各种专用模块,如工业设计、模具设计加工、钣金设计

12、加工、管路设计等。UG在CAD/CAM上表现出了强大的功能,但UG为通用支撑软件系统,仅具有CAD/CAM的基本功能,没有提供专用产品所需要的完整计算机辅助设计/制造功能。UG是一个功能强大的通用3D机械CAD/CAM软件系统。由于机械产品的千变万化,需要针对具体对象在选用的AM软件平台上进行二次开发,来设计出界面友好、功能强大和使用方便的专用产品的CAD/CAM系统。UG同样支持用户进行二次开发,根据特定的需求,创建出用户定制的、专用的UG功能模块,给用户的使用带来极大的方便,满足用户个性化的需要。用户若要以它为平台进行二次开发,实现大型的机械设计系统(如模具智能化专家系统CAD软件),就必

13、须利用UG的开发模块,借助C/C+,在以UNIX为操作系统的工作站上或以Windows为操作系统的微机工作站上编写C程序,进而生成可执行文件。本文的目的就在于叙述如何基于VC+的UG二次开发,并对UG的开发模块和UG/Open API的编程方法作了介绍。 UG/Open的相关模块UG/Open是一系列UG开发工具的总称,是UG软件为用户或第三方开发人员提供的最主要的开发工具。UG/Open开发工具主要包括如下几个模块。(1) UG/Open APIUG/Open API是UG与外部应用程序之间的接口,是UG/Open提供的一系列函数和过程的集合。用户可以通过C语言编程来调用这些函数和过程,并且

14、几乎可以实现UG系统的所有功能,这是UG/Open最常用的开发系统。(2) UG/Open MenuScriptUG/Open MenuScript 是UG/Open中用来定制菜单的专用模块。它允许用户使用ASC文件方便灵活的来编辑UG系统的菜单,或为用户常见的应用程序定义自己的菜单。(3) UG/Open UIStyler UG/Open UIStyler 是UG/Open中用来创建对话框的专用模块。使用UG/Open UIStyler可以非常方便快捷的创建与UG风格完全一致的对话框。UIStyler模块所支持控件种类丰富,且在存储对话框文件的同时,会自动生成与该对话框相对应的.c文件和.h

15、文件,大大节省了用户的开发时间。(4) UG/Open GRIPGRIP是Graphics Interactive Programming去首字母的缩写词。GRIP是一种解释性的编程语言,在很多方面类似于BASIC和FORTRAN。使用几乎可以执行在UG交互界面下可以完成的所有功能,如模型建立、装配创建和工程绘图等功能。在一些情况下,GRIP可以执行高级的自定义操作,而这些操作的执行效率要比单纯使用UG交互界面的效率高很多。(5) UG/Open GRIP NCUG/Open GRIP 允许用户不通过交互式的对话框设置,而是通过编程的方式创建UG加工工具的路径。用户可以使用GRIP NC St

16、atements、Global parameter Access symbols(GPAs)以及Entity data Access symbols(EDAs)来创建GRIP NC程序。(6) UG/Open C+UG/Open C+允许用户使用C+类来操作UG的对象,实现UG的功能。UG/Open C+是UG面向对象的编程接口。使用类层次中的方法,用户可以创建、读取和修改UG的内部对象以及操作UG本身系统。用户可以通过继承UG的基础类来定义新的类来扩展类的层次结构。由于UG/Open C+使用标准的C+语法,所以使用该模块编写的代码更加简洁,可读性更强。本论文主要讲述UG/Open API、

17、UG/Open MenuScript及UG/Open UIStyler三个模块的使用。UG/Open API被设计成能够实现UG与外部应用程序之间交互的接口。这些接口实质上是UG提供的一系列函数与过程的集合,可以使用C语言编程来调用这些函数或过程。其中Open C API包括:一系列的用户可以调用的函数或过程,这些函数或过程可以以访问UG图形界面终端、文件管理器和UG本身的数据库。调用这些函数或过程还可以对相应模型进行操作,包括UG模型的构建、编辑、装配体的建立、遍历以及工程图的创建等。用以连接和运行用户应用程序的命令过程。一个UG内部的交互接口,用以运行用户的应用程序。默认情况下,UG/Op

18、en API的函数和过程定义在$UG_BASE_DIRUGOPEN文件夹下的头文件中。每个头文件都包含了一类函数用以实现一类功能。例如,在uf_disp.h头文件中包含了与显示相关的函数和数据结构的定义。一般情况下,我们并不需要打开这些头文件来查看该文件所包含函数的功能,这是因为UG的帮助文件提供了一种更为方便的查看方式。但在编写应用程序的过程中,需要使用“#include”指令将相关函数的头文件包含到源程序中。因此,了解头文件所包含函数的功能还是非常重要的。表1-1列出了一些常用头文件的名称及其描述。表1-1 常用头文件的名称及其描述头文件名称头文件描述UG/Open API 的公共类型和函

19、数定义与装配相关的函数和数据结构定义与部件及对象属性相关的函数和数据结构定义与间隙分析相关函数和数据结构定义与视图操作、查询相关的函数和数据结构定义UG/Open API 接口函数所需要的类型定义及结构定义uf_dirpa与目录及路径相关的函数集数据定义结构与显示相关的函数集数据结构定义与制图中截面线、页面和试图等相关的函数和数据结构定义与制图中符号、标注和尺寸等相关的函数和数据结构定义与用户出口相关的函数和数据结构定义与不见组相关的函数和数据结构定义与几何尺寸/公差相关的查询函数和数据结构定义与MenuScript中对象的属性相关的函数和数据结构定义uf与模型创建、查询相关的函数和数据结构定

20、义与特征建模相关的函数和数据结构定义与普通建模相关的函数与数据结构定义与UG对象及属性相关的函数和数据结构定义UG对象的类型定义与部件操作相关的函数和数据结构定义与UIStyle相关的函数和数据结构定义uf_与向量操作相关的函数和数据结构定义uf_vec.h与视图操作、查询相关的函数和数据结构定义1.3 在VC环境下开发UG应用程序UG/Open API应用程序是利用UG/Open API,采用C语言进行程序设计,使用C编译器和连接器创建的能够在外部环境或内部环境进行的可执行程序(文件名后缀为EXE)或动态链接库(文件名后缀为DLL)形式的程序。对于不同的操作系统平台,在编译和连接生成UG/O

21、pen API应用程序时编译选项和所需的系统文件是不同的。要使UG/Open API应用程序正常运行,必须正确设置编译和连接选项。本课题主要用的是Windows操作系统,集成开发环境来创建UG/Open API应用程序。1.3.1 使用工程向导创建应用程序步骤一:检查目录Microsoft Visual Studio是否有文件及。步骤二:启动,选择下拉菜单【File】【New】选项,系统弹出关于“New”对话框。在对话框中选择“Project”选项卡,在目录类别中选择“Unigraphics NX AppWizard V1”。在右侧的“Project name”文件框中输入工程名称,在“Loc

22、ation”文件框中设置合适的路径来存放工程文件。图1-1 参数选择对话框步骤三:在系统弹出的“Step 1 of 2”对话框中,可以选择内部模式,生成DLL文件,也可以选择外部模式,生成EXE文件。另外,在生成的源代码中可以选择使用“C+”语言,也可以选择使用“C”语言。如果选择外部模式,将完成工程项目的创建。本课题选择内部模式,C语言,单击“下一步”按钮。如图1-1所示。单击“OK”按钮确定。步骤四:在系统弹出的“Unigraphics NX AppWizard V 1_Step1 of2”对话框中。选择如图1-2所示的各选项,单击“Finish”按钮完成应用程序的创建。图1-2 参数选择

23、对话框在VC环境下打开UgOpen文件,在ufsta()函数中添加代码。编译应用程序,将在工程路径的Release文件加下生成文件。在环境下,选择加载的应用程序。1.4 应用程序的自动卸载使用ufsta()函数创建的应用可以被系统自动卸载,但此时应用程序的DLL文件应包含在UG可以找到的特定的文件夹下。环境变量UGII_CUSTOM_DIRECTORY_FILE指向文件,环境变量UGII_UG_CUSTOM_DIRECTORY_FILE指向文件默认情况下,这两个文件被放置在$UGII_BASE_DIR/ugii/menus文件夹下。文件用于存放用户指定的目录,UG最初安装后该文件不包含任何目录

24、,且该文件不会随着UG新版本的发布而改变并被覆盖。ug_custom_dir用于存放UG指定的目录,该文件会随UG新版本的发布而改变并被不该,因此不编译该文件。在UG启动时,系统会在这两个文件所包含的目录中搜索一个名为star -tup的子目录,如果找到动态链接库文件,则会自动加载并执行ufsta()函数。因此,如果希望使用ufsta()函数创建的应用程序被自动加载,需要创建文件夹结构,并将My_directory的完整路径保存在文件夹中,将需要自动加载的DLL文件存放在startup子目录下。在该文件夹结构中application主要用于存放UIStyler对话框文件与功能扩展相关的菜单文件

25、、应用程序文件。Udo目录用于存放与用户自定义对象相关的动态链接库文件。在UG的环境配置文件中存放着三个环境变量,如表1-2所示。这三个环境变量可以指向一个目录。在UG初始安装时,文件夹下的这三个环境变量之前都有“#”号,“#”号代表注释,因此这三个环境变量都不起作用。可以将环境变量前面的“#”号删除,注写成类似“UGII_USER_DIR=E:My_diretory”的格式,此时相应的环境变量即可起作用,实际上,真正使该环境变量起搜索作用的是文件,打开该文件可以看到其中包括这三个环境变量的作用,如$UGII_USER_DIR,因此系统才能够搜索这些环境变量所指向的目录。表1-2 应用开发所用

26、的环境变量环境变量名称环境变量作用UGII_VENDOR_DIR用于存放第三方开发商开发的相关应用文件UGII_SITE_DIR用于存放其他开发者开发的相关应用文件UGII_USER_DIR用于存放用户自己开发的相关应用文件2 美的空调产品结构特征库整理空调产品内部各构件的结构各式各样,而且作用也不尽相同。在设计产品的过程中,方便快捷的设计出正确的模型尤其重要。而一个产品的整个开发过程,尤其它的建模时间是有限的,对于一些在空调产品中经常使用且具有特殊复杂结构的结构件,我们可以整理出它的一系列的结构特征库,在每次调用时,只需输入一些参数而不需重新画出结构图, 这样就大大节省了建模这一过程的时间,

27、 提高了效率。2.1 墩口可以通过建立这些特征库菜单后,当需要调用时,只需单击它的特征按钮,即可立即调用。例如,对如常用的墩口特征(如图2-1所示),当需要调用时,选取墩口菜单按钮,输入到面距离L和墩口宽度H相应参数,即可自动生成墩口特征。图2-1 墩口菜单文件2.2 扩缩口、喇叭口对于扩缩口特征,选取管道端面,指定管段类型,指定保证类型,若符合规格,应用按钮被激活,输入相应参数,点击应用,如图2-2所示。图2-2 扩口菜单应用成功后,会出现类如下图2-3和图2-4所示的扩缩口特征。 图2-3 缩口生成图 图2-4扩口生成图2.3 翻边孔对于翻边孔特征(如图2-5所示),应用此特征时,选取管道

28、端面,指定翻边孔数量,输入相应参数,选取翻边孔尺寸,指定角度,最后应用,即可自动生成。图2-5 翻边孔特征2.4 压口 图2-6 压口特征选取管道端面如图2-6所示,指定压口类型,输入压口水平方向的角度,或是拖动滚动条,点击应用。如图2-7和2-8所示。 图2-7 压口生成图 图2-8 压口生成图2.5 定位点 图2-9 定位点菜单选取管道端面,制定定位点方式,输入相关数据如图2-9所示,应用得到类如下图2-10所示的特征。图2-10 生成图2.6 塑料件对于需要特殊配合的塑料件和经常使用的具有特殊复杂结构的塑料件,可以整理出塑料件的一套结构特征库,方便建模。如下表2-1整理的塑料件的特征,有

29、配合使用的复杂件、经常使用的螺丝柱等。表2-1 塑料件的特征表1典型特征、零件工具开发 配合使用配合使用螺丝柱2.7 板金件同样,对于三角筋(如图2-11)这一类的板金件,仍可应用于结构特征库的参数化设计。点放置面,选择折弯面的外侧,此时所有参数输入控件激活,可以输入相应参数,自动生成。图2-11 三角筋对话框3、空调产品结构特征库的开发3.1 菜单创建3.1.1 MenuScript菜单技术UG/Open MenuScript不仅可以使用户利用ASC文件来编辑UG的菜单,也可以以一种无缝集成的方式为用户开发的应用程序创建菜单。MenuScript同时也提供了一个菜单栏报告工具,以帮助用户查看

30、定制的菜单,诊断错误。对于菜单的自定义大致可以分为如下三个层次。(1) 自定义菜单该级别的自定义允许单个用户或管理员重新安排UG的功能,去除在其他产品开发过程中不需要的功能。这种级别的自定义不需要编程实现。(2) 自定义UG功能该级别的自定义允许单个用户或管理员取代或增加标准的UG功能,并添加自己定义的功能。(3) 添加自定义应用该级别的自定义其目的在于使用户或第三方开发商开发的应用程序完全集成在UG中。该级别的自定义需要编程实现。UG的菜单文件是扩展名为.men的文本文件,可以使用Windows的记事本进行编辑。UG/Open MenuScript提供了一套用于定义UG菜单的脚本语言。实际上

31、,UG系统的菜单文件也是用该脚本语言编写的。UG为主菜单栏、快捷菜单提供了丰富的系统菜单文件,下表3-1列出了其中一些常用的系统菜单文件。这些菜单文件默认情况下都保存在UG_BASE_DIR/ug/menus文件夹下。表3-1 UG系统菜单文件文 件 名说 明ug_maUG主菜单栏的菜单文件UG快捷菜单文件进入加工应用模式后,为菜单栏添加相应按钮的菜单文件进入制图应用模式后,为菜单栏添加相应按钮的菜单文件进入运动分析应用模式后,为菜单栏添加相应按钮的菜单文件进入建模应用模式后,为菜单栏添加相应按钮的菜单文件进入钣金成型应用模式后,为菜单栏添加相应按钮的菜单文件 菜单脚本文件的语法在菜单文件中,

32、VERSION、HIDE、CASCADE_BUTTON及LABEL等都属于UF/Open MeunScript脚本语言的关键词。这些关键词的作用在下表中已经作出了说明。除了以上关键词声明之外,UG/Open MenuScript另外还包含其他一些关键词,这些关键词的作用如下表3-2所示。表3-2 其他MenuScript关键词声明关键词声明说 明CREAT指定菜单文件为创建模式,另外一种模式为EDIT编辑模式。例如在菜单脚本文件中可以声明:CREATE _UG_GATEWAY_MAIN_MENUBARTITLE指定菜单文件为创建模式,另外一种模式为EDIT编辑模式。例如在菜单脚本文件中可以声明

33、:CREATE UG_GATEWAY_MAIN_MENUBARTOP_MENU添加一系列的按钮到顶层菜单,对于顶层菜单包含Cascade按钮END_OF_TOP_MENU与TOP_MENU相对应,说明顶层菜单定义的结束MODIFY对于存在的按钮修改其标题、行为等,不改变其位置AFTER在一指定的BUTTON后添加一系列的BUTTON、CASECADE_BUTTON等END_OF_AFTER与AFTER相对应,AFTER声明的结束SHOW与HIDE声明相反,显示指定的BUTTON、CASEC -ADE_BUTTON等APPLICATION_BUTTON定义应用按钮3.1.3 菜单的位置(1) 将

34、菜单放置在主菜单的最后面 使用TOP_MENU和END_OF_TOP_MENU声明,可以将菜单放置在主菜单的最后面。注意,在TOP_MENU和END_OF_TOP_MENU声明之间只能包含CASCATE_BUTTON按钮。如下语名所示,在UG中显示的菜单结果如下图3-1所示。 TOP_MENU CASCATE_BUTTON CUSTOM_MENU LABEL 主菜单 END_OF_TOP_MENU图3-1 将菜单放置在主菜单的最后面(2) 将菜单定义在已有菜单按钮的下面或上面 在菜单文件中,CUSTOM_MENU菜单使用BEFORE声明,被定义在已有菜单按钮的下面或上面。如下面的语句所示。 B

35、EFORE UG_APP_ASSEMBLIES CASCADE_BUTTON CUSTOM_MENU LABEL 菜单栏 SEPARATOR END_OF_BEFORE (3) 将菜单定义在已有菜单按钮的最后面 使用MENU和END_OF_MENU编辑某个已有的菜单,添加的按钮将被放置在已有菜单中所有按钮的最下方。该BUTTON的响应行为为USER_MENU_ACTION。 VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR MENU UG_VIEW BUTTON USER_MENU LABEL 用户按钮 ACTIONS USER_MENU_ACTION END_

36、OF_MENU3.2 UIStyle对话框技术UG/Open UIStyler模块为用户提供了强大的可视化制作UG风格对话框的功能。不仅所见即所得的方式生成对话框,系统还可以自动为对话框生成相对应的C语言模板文件,使得开发对话框的应用变得简单、快捷。3.2.1 对话框的编辑 当在对象浏览器中选择最顶层的对话框时,资源编辑器在主要包括“属性”、“选择”、“回调”三个选项卡。对于对话框的编辑主要在此时的资源编辑器中进行。“属性”选项卡主要用于编辑器对话框的基本属性;“选择”选项卡用于定义当话框显示时,用户在UG图形窗口中的选择;“回调”选项卡用于确定对话框所包含的基本回调函数。“属性”选项卡(如图

37、3-2和图3-3所示)“属性”选项卡的主要选项包括:对话框标题 用于输入该对话框标题的内容,显示在对话框的顶部。线索 用于输入该对话框的提示信息,提示信息会显示在UG的状态栏中。前缀名 输入的内容将作为该对话框所有控件和对话框回调函数的前缀。版本 用于输入该对话框的版本信息。对话框类型 包括“底部”和“顶部”两种对话框。其中“底部”对话框是最常用的对话框;“顶部”对话框不包含任何导航按钮,如“确定”、“应用”及“取消”按钮等。调用对话框。自用于确定对话框的调用方法,包括“全部”、“回叫”、“菜单”、“退出”。“回叫”即使用用户出口方式来激活对话框。如果选择“全部”则系统会产生全部激活方式的代码

38、,但建议在构造对话框时,明确其调用方式,尽量不要选择“全部”。按钮式样选项 用来确定导航按钮的数量和类型。初始灵敏 在其中确定已选择的导航按钮的初始激活状态。允许重设对话框大小 用于确定对话框在调有后是否可以重新设置大小。 图3-2 选择对话框 图3-3 属性对话框UIStyle为对话框的调用提供了三种基本类型:菜单、回调函数和用户出口。其中,用户出口方式使用的不是很多,常用的两种方式是菜单调用和回调函数调用。虽然使用菜单对话框的方式很简单,只需要设置按钮的ACTIONS为相应对话框的文件名,在保存对话框时系统还会自动生成相关代码,但这种调用对话框的方式存在一定缺陷。主要原因在于使用这种方式时

39、,用户选择菜单命令就会直接显示对话框,在显示对话框之前不能根据UG环境来设置对话框中相应控件的属性(如可见性,是否激活等),因此灵活性比较差。使用回调函数调用对话框弥补了上述缺陷,具有更大的灵活性。因此在开发应用程序过程中,建议尽量使用回调函数调用对话框方式。(2) “选择”选项卡“选择”选项卡主要选项包括:启用 如果希望当显示对话框的同时可以对UG图形窗口中的对话进行选择,可勾选该复选框。类型 主要用于设置在UG图形窗口中选择对象的方式是否变化。“无”:不变化,继承上次选择操作的属性定义。“单个”:允许用户选择和取消选择单一对象。“强健”:公共的选择类型,允许单选,单个取消选择,重新选择最后

40、一个,矩形框选等。范围 用于确定被选择对象所在范围是否变化。“无变化”:对话框使用当前默认的设置范围。“装配中的全部”:无范围限制,可以选择装配体中的所有对象。“只有工作部件”:只能选择工作部件中的对象。“工作部件和子装配”:允许选择属于工作部件或其子装配体中的对象。(3) “回调”选项卡“回调”选项卡的所有对话框都可以包含些基本的回调函数,主要包括:“应用”按钮回调函数、“后退”按钮回调函数、“取消”按钮回调函数、“确定”按钮回调函数、“构造器”对话框构造函数、“毁坏”对话框析构函数等。对于一个对话框使用哪些基本回调函数都可以在“回调”选项卡中指定。导航按钮的回调函数根据“属性”的设置而有所

41、不同。对话框的构造函数在对话框显示之前调用,主要完成对话框的初始化工作。例如,在对话框构造函数中可以为与对话框相关联的数据结构分配内存,设置显示对话框相应控件的显示或激活状态等。对话框析构函数在对话框被毁坏之前调用,此时对话框中的控件仍可以被访问到,主要用于相关内存释放工作。如下例是在UG主菜单栏上创建【用户界面】菜单,并添加一个【UG用户界面】按钮。322 对话框的创建运用参数的设置进行对话框的创建,在如图3-4所示的对话框中进行设置,可得到形如图3-5所示的对话框。该对话框用以获得计算功率和工况系数,其中计算功率=输入功率工况系数。图3-4 功率计算对话框图3-5 参数选择对话框3.3 创

42、建项目启动,选择下拉菜单【文件】【新建】选项,系统弹出关于它图3-6 创建项目对话框图3-7 创建位置对话框“新建”对话框。在对话框中选择“项目”选项卡,在目录类别中选择“Unigraphics NX Open Wizard ”。在右侧的“项目名称”文件框中输入工程名称,在“位置”文件框中设置合适的路径来存放工程文件,如图3-6和图3-7所示。单击“OK”按钮确定。3.4 对话框的保存在创建好对话框后,单击“保存”按钮,可以将对话框保存为扩展名为.dlg的文件。对话框文件一般需要保存在相应目录下的application文件中,一边应用程序调用时可以搜索得到。在保存对话框时,系统同时还将自动产生

43、另外两个文件,分别是与对话框关联的.c文件和.h文件。一般情况下,我们将这两个文件复制到保存代码的工程文件夹内。需啊哟注意的是该.c文件和.h文件与对话框相互关联,因此每次修改对话框并重新保存对话框时,系统都会更新这两个文件。因此,在使用该.c文件和.h文件前,要确保对话框不再修改。3.5 空调产品特征库开发实例以下通过一个实例来说明基于UG/Open API的空调产品结构设计特征库的开发,应用实例用于创建螺丝柱模型,其创建步骤如下。编写菜单文件如下所示,使用记事本创建应用程序的菜单文件,可以看到该菜单有一个按钮,用于创建螺丝柱,创建完成之后将其保存到相应的startup文件夹中。具体见图3-

44、8所示。VERSION 120EDIT UG_GATEWAY_MAIN_MENUBARBEAFORE UG_HELPCASCADE_BUTTON MIDEA_PROJECT_MENULABEL 美的专用工具END_OF_BEFOREMENU MIDEA_PROJECT_MENUBUTTON MIDEA_FEATURE_LIBLABEI 特征库END_OF_BEFOREMENU MIDEA_FEATURE_LIBBUTTON MIDEA_SCREW_POSTLABEL 创建螺丝柱ACTIONS MODEL_SCREW_POST_ACTIONEND_OF_MENU图3-8 创建螺丝柱项目创建对话框

45、文件在UG/Open UIStyler模式下,创建如图3-9所示“螺丝柱参数”对话框,这个对话框用于获取螺丝柱的参数。(图3-10为螺丝柱图)图3-9 螺纹柱参数对话框图3-10 螺纹柱图创建应用程序框架使用创建应用程序的工程,工程名称为Midea_Screw_Post,利用向导创建应用程序,应用程序使用ufsta函数作为入口,当UG进程结束时,自动卸载。在ufsta入口函数中,“创建螺丝柱”菜单按钮对应的回调函数为Midea_Screw_Post(),该函数调用“螺丝柱参数”对话框,获取螺丝柱参数,这些参数都保存在结构体变量中,其代码如下所示:/* Description:* Contain

46、s Unigraphics entry points for the application.*/* Include files */#include #include #include #include #include Midea_Screw_Post_Dialog.h#define UF_CALL(X) (report_error( _FILE_, _LINE_, #X, (X)static int report_error( char *file, int line, char *call, int irc) if (irc) char err133, msg133; sprintf(

47、msg, * ERROR code %d at line %d in %s:n+ , irc, line, file); UF_get_fail_message(irc, err); UF_print_syslog(msg, FALSE); UF_print_syslog(err, FALSE); UF_print_syslog(n, FALSE); UF_print_syslog(call, FALSE); UF_print_syslog(;n, FALSE); if (!UF_UI_open_listing_window() UF_UI_write_listing_window(msg);

48、 UF_UI_write_listing_window(err); UF_UI_write_listing_window(n); UF_UI_write_listing_window(call); UF_UI_write_listing_window(;n); return(irc);/* Activation Methods*/* Unigraphics Startup* This entry point activates the application at Unigraphics startup */extern DllExport void ufsta( char *param, i

49、nt *returnCode, int rlen )static UF_MB_cb_status_t Midea_Feature_ScewPost( UF_MB_widget_t,UF_MB_data_t,UF_MB_activated_button_p_t );static UF_MB_action_t actionTable=FEATURE_SCREWPOST_ACTION,Midea_Feature_ScewPost,NULL,NULL,NULL,NULL; /* Initialize the API environment */ if( UF_CALL(UF_initialize()

50、) /* Failed to initialize */ return; /* TODO: Add your application code here */UF_MB_add_actions(actionTable); /* Terminate the API environment */ UF_CALL(UF_terminate();static UF_MB_cb_status_t Midea_Feature_ScewPost(UF_MB_widget_t widget, UF_MB_data_t client_data, UF_MB_activated_button_p_t call_b

51、utton)int resp,result;ScrewPostParameter m_post_para;tag_t m_block_tag,m_main_body_tag,m_cylinder_tag,m_hole_tag;double corner_pt3 = 0.0,0.0,0.0;char *edges_len3,*cylinder_height,*cylinder_diam,*hole_diam,temp_char630;double cylinder_center3;double cylinder_direction3=0.0,0.0,1.0;tag_t m_point;doubl

52、e base_point3;int response;UF_UI_POINT_base_method_t base_method=UF_UI_POINT_INFERRED;char *cue=选择插入基准点:;/tag_t m_selected,m_view;/double m_curesor3;UF_initialize();LaunchGetScrewPostParameter(&resp,&m_post_para);if(resp!=UF_UI_OK)return UF_MB_CB_CONTINUE;result=UF_UI_point_construct(cue,&base_metho

53、d,&m_point,base_point,&response);/result=UF_UI_select_with_single_dialog(cue,NULL,0,NULL,NULL,&response,&m_selected,m_curesor,&m_view);sprintf(temp_char0, %lf, m_post_para.RL);sprintf(temp_char1, %lf, m_post_para.RW);sprintf(temp_char2, %lf, m_post_para.RH);sprintf(temp_char3, %lfD1);sprintf(temp_ch

54、ar4, %lf, m_post_para.PD2);sprintf(temp_char5, %lf, m_post_para.PH);edges_len0=temp_char0;edges_len1=temp_char1;edges_len2=temp_char2;cylinder_height=temp_char5;cylinder_diam=temp_char3;hole_diam=temp_char4;corner_pt0=base_point0-m_post_para.RL*0.5;corner_pt1=base_point1-m_post_para.RW*0.5;corner_pt

55、2=base_point2;cylinder_center0=base_point0;cylinder_center1=base_point1;cylinder_center2=base_point2;result=UF_MODL_create_block(UF_NULLSIGN,NULL_TAG,corner_pt,edges_len,&m_block_tag);if (result) return UF_MB_CB_CONTINUE;result=UF_MODL_ask_feat_body(m_block_tag,&m_main_body_tag);if (result) return U

56、F_MB_CB_CONTINUE;result=UF_MODL_create_cylinder(UF_POSITIVE,m_main_body_tag,cylinder_center,cylinder_height,cylinder_diam,cylinder_direction,&m_cylinder_tag); if (result) return UF_MB_CB_CONTINUE;result=UF_MODL_create_cylinder(UF_NEGATIVE,m_main_body_tag,cylinder_center,cylinder_height,hole_diam,cyl

57、inder_direction,&m_hole_tag);return UF_MB_CB_CONTINUE ;/* Utilities*/* Unload Handler* This function specifies when to unload your application from Unigraphics.* If your application registers a callback (from a MenuScript item or a* User Defined Object for example), this function MUST return* UF_UNLOAD_UG_TERMINATE. */extern int ufusr_ask_unload( void ) return( UF_UNLOAD_IMMEDIATELY );编译应用程序,将在工程路径的Realease文件夹下生成.dll文件。如下图3-11、图3-12、图3-13所示。图3-11 调试对话框图3-12 生成对话框

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!