搜索

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

gecimao 发表于 2019-04-18 21:21 | 查看: | 回复:

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

  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提供的各类库函数和丰富的编程资源进一步提升了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界面的交互,使得UG/Open MenuScript和UG/Open UIStyler只适用于内部开发模式。为了有效利用UG/Open UIStyler自动生成代码的功能,提高开发效率,建议用户对UG系统做二次开发的时候,首先从内部模式入手,对调试好的内部模式程序稍加改动即可得到外部模式程序。

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

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

  在上述简化的基础上得到相关参数包括:(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所示。

  在UG default菜单条的help菜单之前添加标签为“火箭弹参数化建模”的下拉菜单,级联菜单是标签为“内部模式演示”的按钮。其效果图如图2所示:

  创建Bottom类型的对话框,模型颜色采用了调色板(Color Tool)控件,除了尾翼片数为整型外,其它六个关键参数均是浮点型。效果图及对线 参数输入对线 编制内部模式程序

  以ufsta ()做为入口函数,以UF_MB_add_actions ()做为菜单注册函数,即采用“菜单激发应用”的方式来响应菜单命令。按函数执行先后,给出程序中所用到的主要函数并对其实现的功能做出简要解释如下:

  UF_WEIGHT_sum_props() //求取弹整体质量属性参数(总质量、质心、转动惯量等)

  在内部程序编译成功后,启动UG主界面。鼠标单击3.2中定制的“内部模式演示”按钮,弹出3.3中定制的参数输入对话框,按设计者要求更改所指定的参数数值后点击ok按钮即可生成火箭弹全弹模型。整个操作过程简单友好,设计者几乎可以不用了解UG软件本身就能轻松完成。下面给出两个内部程序实现的火箭弹参数化模型的例子如图4、5所示,各输入参数的设置情况参见和模型联系的输入对线

  新建一个C/C++源文件,将内部程序拷入。将入口函数改为C/C++的标准函数main(),去掉菜单激活函数和求取对话框数值的函数。将变量的值改为从指定的数据文件中读取。功能实现函数几乎不做任何改变,重新编译得到外部模式程序。外部程序的执行情况如图6示,生成的模型可参考图4、5。其中density是整个弹体的等效密度(单位: kg/m3),mass是弹体总质量(单位: kg),mcenterx、mcentery、mcenterz分别是质心的x、y、z坐标(以工作坐标系为基准)(单位: m),minertiax为极转动惯量(单位: kg﹒m2),minertiay、minertiaz均为赤道转动惯量(单位: kg﹒m2)。

  (1)UG/Open API功能强大,界面友好,是进行UG二次开发的有力工具。

  (2)通过二次开发,提高了构建特定对象三维模型的效率,提升了CAD软件系统的易用性。

本文链接:http://robynlynne.com/duixiangmoxing/203.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部