APP下载

基于UG的脚本驱动技术在汽车覆盖件模具设计中的应用

2017-07-12覃存君

汽车零部件 2017年5期
关键词:脚本二次开发图层

覃存君

(东风柳州汽车有限公司,广西柳州 545000)

基于UG的脚本驱动技术在汽车覆盖件模具设计中的应用

覃存君

(东风柳州汽车有限公司,广西柳州 545000)

UG二次开发在汽车覆盖件模具设计中有着极其重要的地位,但由于其专业性需求、开发和维护均依赖于某个或某几个专业性人员,限制了中小型模具企业的发展。为了解决这个矛盾,引入脚本引擎的概念,使用脚本引擎来简化UG二次开发工作,并通过具体的应用案例证明了该方案的可行性,既提高了UG二次开发的效率,又有效降低了UG二次开发的成本。

覆盖件;模具设计;UG二次开发;脚本引擎;脚本语言

0 引言

UG 是一款功能强大的 CAD/CAE/CAM 一体化软件,已成为中国航空航天、机械、汽车、模具等领域首选软件[1]。UG 软件在三维产品模具设计和装配过程中有很大的优势,它的应用可以使用户方便快捷地把脑海中的想法转变成立体可观的三维实体图形,但是由于UG软件没有针对某一个特定专业进行定制化开发,因此具体产品的设计效率较低,这就需要对 UG 系统进行相应的二次开发。在汽车覆盖件模具设计领域,UG二次开发在标准件库、非标件库、设计规范、非标斜楔、模块化设计、自动出图、自动材料表等方面,正发挥着极其重要的作用,提高了模具设计效率,有效缩短了模具开发的周期。

1 问题的提出和解决方案

由于UG二次开发专业性比较强,需要熟练掌握VC++或VB.NET编程技术、有一定软件设计功底、熟练使用UG软件,通常要设置专人进行UG二次开发工具的开发和维护。但是,对于UG软件应用局限于图纸查看的企事业单位,是没有必要设置这一专职岗位的,小型民营企业更是没有足够的资源支撑这一专职岗位。

所以,提出了简化UG二次开发过程的需求,降低开发门槛,让普通的UG设计人员只需要经过简单的培训,就可以对UG进行二次开发,提高工作效率。

为此,作者设计一套脚本语言,借助于编译原理对常用的UG/Open API函数进行封装,开发出一套脚本引擎,以脚本驱动的方式对UG软件进行二次开发。

2 脚本语言的优点

脚本语言(Scripting Language)通常被看作是计算机式的语言,更加接近于自然语言。以简单的方式快速完成某些复杂的事情是创造脚本语言的重要原则。基于这项原则,脚本语言通常比C语言、C++语言或Java之类的系统程式语言要简单容易,也让脚本语言另有一些属于脚本语言的特性[2]:

(1)语法和结构通常比较简单;

(2)学习和使用通常比较简单;

(3)通常以容易修改程式的“直译”作为执行方式,而不需要“编译”;

(4)程式的开发产能优于执行效能。

3 脚本语言的设计

UG二次开发脚本语言采用初步描述语言的书写格式,并将基本操作动词形式化为类似于C语言的函数调用语句。主要功能脚本分别举例如下:

(1)新建几何元素:新建 点 x坐标,y坐标,z坐标,对象标识

指定屏幕上一点(x,y,z),新建一个点,并返回点的对象标识。

(2)新建几何特征:特征 倒斜角 双偏置,对象标识,边缘序号列表,偏置值,偏置值

第1个参数“双偏置”为偏置类型,第2个参数“对象标识”为执行倒斜角命令的几何元素,第3个参数“边缘序号列表”指定该几何元素体上的特定边缘,第4、第5个参数分别表示双偏置的第一个和第二个偏置值。

(3)变换几何元素:变换 旋转 对象标识列表,复制/移动,x0,y0,z0,方向x,方向y,方向z,角度,对象标识列表

参数“对象标识列表”表示需要执行旋转命令的几何元素列表,参数“复制/移动”表示旋转是否保留原几何元素,参数(x0,y0,z0)指定旋转中心点坐标,参数(方向x,方向y,方向z)指定旋转方向矢量,参数角度指定旋转的角度值,单位为(°)。

(4)输入语句:输入 浮点型 命令行提示,标题,变量

对浮点型变量进行赋值,参数“命令行提示”表示要在UG软件状态栏内显示的内容,参数“标题”表示对话框的标题内容,参数“变量”指定需要赋值给哪一个浮点型变量。

(5)输出语句:输出 信息窗口 字符串,表达式

显示信息窗口,并在信息窗口内输出指定表达式的内容,该内容支持变量运算。

(6)图层设置:图层分类 新建 分类名,图层列表[,分类描述]

参数“分类名”指定该图层分类的名称,参数“图层列表”指定该图层分类包含的图层序号,参数“分类描述”指定该图层分类的描述内容。

(7)用户交互:选取 样条曲线 信息,标题,对象标识

参数“信息”表示要在UG软件状态栏内显示的内容,参数“标题”表示选取对话框的标题内容,参数“对象标识”表示将该对象赋值给哪一个变量。

4 脚本引擎的开发

脚本引擎的运作流程图如图1所示。

图1 脚本引擎的运作流程图

读入脚本程序,先后通过词法解析、语法解析、语法检查、调用执行,完成UG二次开发的简易开发。

4.1 词法解析的设计

词法解析的流程如图2所示。

图2 词法解析流程图

此处设计的脚本解析按照行来读取,输入一行字符,由词法解析器分解字符,按照脚本定义的规则分解出变量。

4.2 语法解析

语法解析采用递归调用的方式进行。

4.3 创建运行时变量

运行时变量的创建在脚本解析的过程中承担着重要的作用,运行时变量是脚本解析过程中以及脚本解析调用后传递数据的载体。运行时数据是一个结构体,里面包含了运行时变量在调用过程中记载的业务数据[3]。

运行时变量数据由脚本解析过程中的语法分析器负责创建,并将变量处理过程中的相关数据存放到运行时变量的数据结构体中。

运行时变量数据的创建包括如下5步处理:

(1)从脚本中解析出变量定义。

(2)创建一个存放运行时数据的结构体。

(3)解析脚本规则定义,将赋值语句的计算结果值赋给变量。

(4)使用运行时数据。

(5)注销运行时数据。

4.4 调用执行

调用的主要UG/Open API函数如表1所示。

表1 调用的主要UG/Open API函数

注:所有函数均提取自UG帮助文件。

5 用户界面的设计

采用Block Styler设计功能对话框,获得与UG/NX软件完全一致的对话框风格,实现良好的用户体验。对话框布置如图3所示。

图3 用户交互对话框

对话框内放入一个文件夹浏览器、一个列表框。用户通过点击按钮选择脚本文件所在的文件夹;然后程序自动检测该文件夹内的所有脚本文件,并显示于列表框中;用户选择列表框内对应的脚本,并点击“确定”按钮,激活脚本文件,并开始解析执行脚本内容。

6 编写工具条

脚本引擎制作完成后,生成一个ScriptEngine.dll文件和一个ScriptBlock.dll文件,需要将它们挂载至UG软件中,方便调用。挂载步骤如下:

(1)在D盘创建一个ScriptEngine文件夹;

(2)在ScriptEngine文件夹内创建一个startup文件夹和一个application文件夹;

(3)将ScriptEngine.dll文件存入application文件夹内;

(4)将ScriptBlock.dll文件存入application文件夹内;

(5)在startup文件夹中新建一个ScriptEngine.tbr文件;

(6)ScriptEngine.tbr的文件内容如图4所示;

图4 ScriptEngine.tbr内容

(7)设置系统环境变量UGII_USER_DIR=D:ScriptEngine。

至此,UG挂载完成,打开UG后,工具条显示如图5所示。

图5 将脚本引擎加载至UG软件中

7 应用案例

以上是脚本引擎的制作方法和制作过程,下面重点说明一下使用方法。

打开记事本,编辑内容如图6所示。

图6 图层规范.txt内容

保存为“图层规范.txt”,运行结果如图7所示。

图7 图层规范.txt运行结果

8 实用性对比

8.1 代码编写内容对比

以设置实体颜色为例,VC++编写的代码如图8所示。

图8 设置实体颜色VC++主要代码

脚本编写的代码如图9所示。

图9 设置实体颜色脚本全部代码

普通的UG二次开发代码晦涩难懂,需要具备一定的英文基础以及VC++编程经验。脚本代码短小精湛,且通俗易懂。

8.2 代码量对比

典型案例代码量对比如表2所示。

表2 典型案例代码量对比

汽车覆盖件模具自动端头运行效果如图10所示。

8.3 开发周期对比

以最简单的图层设置为例,普通的UG二次开发编写加测试使用了2天时间,而脚本代码编写加测试仅仅使用了1.5 h,极大地缩短了开发周期。

8.4 运行效率对比

总体上,普通的UG二次开发程序运行速度优于脚本代码程序,速度上快了500 ms~2 s。运行效率上,脚本代码程序稍有劣势,但与开发周期对比,此劣势可以忽略不计。

9 结束语

由以上对比可知,脚本驱动的优势很明显,脚本代码短小精炼,通俗易懂,容易编写,门槛低,开发周期短,既能提高设计效率,又有效简化了UG二次开发流程,使得普通的模具设计工程师也可以胜任编写,完全消除了对计算机专业技能的依赖。

以汽车覆盖件为例,该方案适用于以下企业:

(1)中小型模具企业等设计量大但资金不充裕的企业;

(2)部分冲压厂、主机厂等对UG图纸修改量小但UG使用量大的企业。

【1】侯勇涛,丁向阳.UG/Open二次开发与实例精解[M].北京:化学工业出版社,2007:2-53.

【2】文中华,谢深泉.知识点脚本语言的设计[J].湘潭大学自然科学学报,1999,21(2):133-137. WEN Z H,XIE S Q.The Design of the Knowledge Point Script Language[J].Natural Science Journal of Xiangtan University,1999,21(2):133-137.

【3】童时中.模块化原理设计方法及应用[M].北京:中国标准出版社,2000:19-305.

【4】AHO A V,LAM M S,SETHI R,et al.Compilers:Principles,Techniques & Tools[M].2nd Ed.New York:Pearson Education,Inc.,2007:39-356.

【5】李颖.基于脚本解析器的绩效考核系统的设计与实现[D].沈阳:东北大学,2012.

【6】杨宗亮,吴兆华.UG二次开发技术及其开发技巧[D].桂林:桂林电子科技大学,2012.

【7】张锦盛.基于脚本驱动的应用系统开发方法[D].昆明:云南大学,2010.

【8】杨晓红,张邦成.汽车覆盖件拉深模具结构设计模板化CAD系统[J].农业机械学报,2007,38(11):149-152. YANG X H,ZHANG B C.Stencil CAD System of Auto Panel Die Drawing and Extending Mould Structure Design[J].Transactions of the Chinese Society for Agricultural Machinery,2007,38(11):149-152.

【9】王志峰,高锦辉,赵维民.基于UG的汽车覆盖件模具的模板化设计[J].模具工业,2007,33(5):8-11. WANG Z F,GAO J H,ZHAO W M.UG-based Templating Design of Die for Automobile Metal Sheets[J].Die & Mould Industry,2007,33(5):8-11.

【10】方正,王耕耘.基于UG的汽车覆盖件模具智能化标准件库的实现[J].锻压装备与制造技术,2007,42(2):106-110. FANG Z,WANG G Y.The Implement of Intelligent Standard Part Library for Panel Die Based on UG[J].China Metalforming Equipment & Manufacturing Technology,2007,42(2):106-110.

【11】毛雨辉,邱长华.基于UG的标准件库的研究和建立[J].工程图学学报,2007,28(1):157-161. MAO Y H,QIU C H.The Research and Establishment of Standard Part Library Based on UG[J].Journal of Engineering Graphics,2007,28(1):157-161.

【12】李素萍,刘剑,刘根生,等.基于UG参数化快速设计方法的研究及应用[J].锻压技术,2006,31(2):85-88. LI S P,LIU J,LIU G S,et al.Study and Application of the Parameterized Quick Design Method Base on Unigraphics[J].Forging & Stamping Technology,2006,31(2):85-88.

【13】蒋德云,朱德泉,周杰敏,等.基于UG平台冲压模三维标准件库的建立[J].机械工程师,2006(3):25-27.

【14】徐国生,周志雄,刘正恒.UG二次开发技术在汽车冲模标准件库开发中的应用[J].模具制造,2004(4):4-7.

【15】郑清春,徐燕申,侯亮,等.汽车覆盖件模具模块化快速设计技术的研究[J].成组技术与生产现代化,2001,18(3):11-14. ZHENG Q C,XU Y S,HOU L,et al.The Research on Modular Design Technology in Automobile Panel Dies Oriented to Rapid Manufacturing[J].Group Technology & Production Modernization,2001,18(3):11-14.

【16】王庆林.UG/Open GRIP实用编程基础[M].北京:清华大学出版社,2002:16-277.

Application of Script Driven System in Die Design for the Automobile Body Panel Based on UG

QIN Cunjun

(Dongfeng Liuzhou Motor Co.,Ltd.,Liuzhou Guangxi 545000,China)

The secondary development of UG plays an important role in the design of automobile panel dies. But because of its professional demand, development and maintenance are dependent on one or several professional personnel, it limits development of small and medium-sized mold enterprises. In order to solve this contradiction, the concept of the script engine was introduced, the script engine was used to simplify the secondary development of UG. The feasibility of this scheme was proved through some specific examples. It not only improves the efficiency of the secondary development of UG, but also effectively reduces the cost of the secondary development of UG.

Body panel; Die design; Secondary development of UG; Script engine; Script language

2017-05-03

覃存君(1984—),男,工学学士,主要从事汽车白车身冲压工艺方案分析及模检具制造项目技术工作。E-mail:blueeyes008@163.com 。

10.19466/j.cnki.1674-1986.2017.05.002

U461.99

B

1674-1986(2017)05-008-05

猜你喜欢

脚本二次开发图层
AutoCAD 与PDMS 二次开发在三维复杂形体设计建模上的应用
为《飞舞的空竹龙》加动感
例谈对高中数学教材中习题的二次开发
以假乱真窥探湿玻璃后的风景
浅谈CAD软件二次开发的方法及工具
与众不同“跳出”画面更个性
自动推送与网站匹配的脚本
例谈课本习题的“二次开发”
举一反三新编
捕风捉影新编