信息化 频道

基于UG二次开发的火箭弹参数化模型实现

1、前言
      多学科设计优化(Multidisciplinary Design Optimization,MDO)是近年来发展迅速的飞行器总体设计方法学之一。其强调综合考虑学科间耦合影响的思想对CAD技术在飞行器总体设计领域的应用提出了更高的要求,比如实时、全自动化构建被设计对象的三维模型就是这方面的一个体现。而现今的CAD系统越来越强调通用性,除了用户自己开发的专用CAD系统以外,要实现上述功能是有一定难度的。而开发专用CAD系统是个相当耗时的工作,而且功能往往并不尽如人意。于是人们将目光转向了对成熟商用CAD系统进行二次开发,在保留原CAD系统强大功能的基础上,添加自己的专用模块,提高设计效率的同时还保证了模型的通用性。

2 、UG二次开发功能简介
     Unigraphics(UG)是美国UGS公司的集CAD/CAM/CAE于一体的软件集成系统,功能覆盖整个产品的开发过程:从概念设计、功能工程、功能分析到制造,在航空航天、汽车、机械、模具和家用电器等工业领域的应用非常广泛。UG软件提供了功能强大的二次开发(应用开发)模块,利用该模块可对UG系统进行用户化裁减和开发。UG/Open是一系列UG开发工具的总称,主要由UG/Open API、UG/Open GRIP、UG/Open MenuScript和UG/Open UIStyler四部分组成。


     UG/Open API (又称 User Function ),是一个允许程序访问并改变UG对象模型的程序集。UG/Open API 封装了近2000个UG操作的函数,它可以对UG的图形终端、文件管理系统和数据库进行操作,几乎所有能在UG界面上的操作都可以用UG/Open API 函数实现。UG/Open API程序按其连接方式分为两种,内部模式(Internal环境) 和外部模式(External 环境)。采用内部模式开发的程序只能在UG的界面环境(Session)下运行,其优点是可以连接的更快且程序更小并能与用户交互;采用外部模式开发的程序能在操作系统中独立执行,其缺点是无法实时显示图形与用户交互,值得注意的是部分函数只能在内部模式下执行。UG/Open API程序使用的是C 或C + + 编程语言。基于Windows操作系统的UG二次开发可以在VC + + 6.0或VC.net环境下进行,VC提供的各类库函数和丰富的编程资源进一步提升了UG/Open API的功能,同时也为集成企业原有的C/C++语言程序提供了方便。


     UG/Open GRIP ( Graphics Interactive Programming) 是一种专用的图形交互编程语言,与UG系统集成,可以实现UG环境下的大多数应用操作。GRIP 语言与一般的通用语言一样,有其自身的语法结构、程序结构、内部函数以及与其他通用语言程序相互调用的接口。UG/Open GRIP具有简单、易学、易用的特点,虽然其功能远不如UG/Open API强大,但仍有很多用户在使用。


     UG/Open MenuScript是创建用户化菜单的工具。利用UG/Open MenuScript,可以用记事本之类的文本编辑器来编辑、删除、添加或重排已有的UG菜单条,并可以为自己的应用程序建立专门的菜单条和弹出式菜单。MenuScript可以执行宏文件(Macros) 、UG/Open API 或UG/Open GRIP所编写的程序,可以打开一个UTD 文件(User Tool Definition) 、打开一个UI 对话框(UIStyler) 或执行一些操作系统的命令。通过下拉式菜单或弹出式菜单的方式,可以把用户开发的应用程序无缝的嵌入到UG系统中。


     UG/Open UIStyler是开发UG对话框的可视化工具,其生成的对话框与UG集成,用户可以方便、高效的与UG进行交互操作。UG/Open UIStyler提供了丰富的控件,如位图(Bitmap) 、调色板(Color Tool) 、静态文本(Label) 、多行文字框(Multi-line Text )、多选列表框(Multi-Select List) 、下拉列表框(Option Menu)、属性页(Property Pages) 、按钮(Push Button) 、单选框(Selection Box) 、滚动窗口(Scrolled Window) 、单选按钮(Radio Box) 、分隔符(Separator) 、单选列表框(Single Select List) 、复选框(Toggle)、整型数值输入框(Integer)、浮点型数值输入框(Real)、字符串输入框(String)等。另外,UG/Open UIStyler还具有二次开发程序代码的自动生成功能。


     外部模式开发的程序不提供程序本身与UG界面的交互,使得UG/Open MenuScript和UG/Open UIStyler只适用于内部开发模式。为了有效利用UG/Open UIStyler自动生成代码的功能,提高开发效率,建议用户对UG系统做二次开发的时候,首先从内部模式入手,对调试好的内部模式程序稍加改动即可得到外部模式程序。

3、 火箭弹参数化模型的实现
     所谓参数化建模就是将模型的一些几何变量以参数的形式赋值,利用参数值驱动零件和部件的特征尺寸,综合考虑各部件间的定位和位置变换关系,在不改变模型拓补结构的情况快速生成特定对象的模型图。参数化建模技术的应用为反复生成各种尺寸的特定结果模型提供了极大的方便。就火箭弹参数化模型的实现来说,大致可分为以下几个主要步骤:简化火箭弹模型并提取相关参数、利用UG/Open MenuScript定制UG系统菜单、利用UG/Open UIStyler定制参数对话框并生成相关程序代码、利用UG/Open API相关函数在VC++6.0环境下编译调试二次开发程序、对内部模式程序改动得到外部模式程序。

3.1模型简化
     火箭弹的构成非常复杂,将其零部件逐一画出不现实也不实用,有必要对其做适当的简化[4]。本文所实现之实体模型是提供给气动学科做气动计算之用,针对气动计算的特点和要求对火箭弹模型做如下简化:(1)火箭弹弹体有三部分组成:弧形段、圆柱段、稳定装置(尾翼);(2)自圆弧段结束至弹体底部采用等直径圆柱;(3)圆弧段母线是卡门曲线且收敛于顶部尖点;(4)稳定装置采用变厚度的卷弧翼。


     在上述简化的基础上得到相关参数包括:(1)弹体直径D;(2)弹体长细比λB=L/D,其中L为总弹长;(3)圆弧段长细比λB=Ln/D,其中Ln为弧形部长度;(4)尾翼片数n;(5)展弦(根)比λW=LW/Bλ,其中LW为翼展(由弹体直径和尾翼片数决定),Bλ为翼根弦长;(5)尾翼相对厚度其中c为尾翼厚度;(6)尾翼前缘后掠角χ0;(7)尾翼翼根后缘距离弹底部的距离Fl。给出火箭模型的一般示意图如图1所示。

图1 火箭弹模型示意图

0
相关文章