CATIA软件是汽车行业的主流软件,世界前20名汽车企业有18家采用CATIA作为核心设计软件,在缩短新车型开发周期方面起着至关重要的作用。如果采用CATIA软件自身提供的全交互式功能虽然可以完成开发设计任务,但有些常规的工作是重复性的,需要大量的重复性操作才能完成,这样会耗费很多的时间。此前,有人提出了一种基于ug软件下的修边线二次开发技术,而CATIA软件作为主流软件还没有这方面的开发先例。如果在CATIA软件环境下实现修边线的自动生成,无疑会大大提高设计工程师的工作效率。
) }4 W2 |0 Q& Q0 u
I( _& H' s: Y: n* t: sCATIA二次开发技术 $ ~( ~7 X" a7 E4 a: e0 Z
J0 ]. r+ E8 [$ i5 @二次开发是使软件用户化和专业化的有效手段,它可以使软件更好地为用户服务,在提高工作效率和产品质量方面有着不可低估的作用。图1为CATIA软件为用户提供的多种二次开发接口。 ( c0 C0 z6 }& M( P
图1 CATIA软件二次接口 1.Automation API ; d5 s8 h6 L4 a& p8 O
i7 V6 G2 w1 O) d' a1 cAutomation API 是使用自动化应用接口(Automation API)的宏,用于自动化组件、日志(Journaling)、Visual Basic和JavaScript/Html的开发,是一种交互方式的定制。该定制方式允许用户获取CATIA的数据模型。通过提供交互的方式,让用户记录操作过程,通过VB Script or Java Script 来录制宏,从而自动生成代码。 4 D+ S; r9 y( I, E- H! Q
0 b7 e$ ]# v; e1 i$ V5 T9 F9 u
Automation API具备了与任何OLE所兼容的平台进行通信的能力。Automation技术是建立在COM基础之上,其核心技术是允许一个应用程序操作另一个应用程序。Automation技术并不是直接获取及处理数据,而是间接地通过暴露的对象和属性,利用对象的方法和属性来获取、设置及处理数据。这种方法功能限制比较大,但入门比较容易,受CATIA版本限制较小。
! w, b$ @$ M0 |; W/ H/ [
e+ m7 r4 r: D3 }/ |! y2. KnowledgeWare ! e3 O6 Z ^: }
@% v$ r2 J( s0 n1 s- p! [& vKnowledgeWare 智能构件是一种反应式的,基于规则的,面向目标的客户化方式。它是一种高效的规范重用,像应用公式一样简单地实现团体的知识库准则集,并且和V5紧密集成以提升处理能力。它能通过相关的稳定不变的规范定义来实现交互的知识捕捉。智能构件是一套预定义的易用服务,它驱动的管理和重用是从函数、规范到组件和系统一步一步实现的。它允许定制和外部代码的集成。它用于三个方面:知识顾问、知识专家和产品工程优化。知识顾问是用于参与设计定义的嵌入知识,包含规则集、检查、审查和预定义行为(Behavior)。知识专家则是基于规则的过程,可以实现规则集、检查和报告。产品工程优化是面向设计目标的,它包含优化目标、准则和求解方案。
8 a1 ~$ y7 a- K
+ j, A* Y% f% \: i0 [6 x- _3.Interactive User Defined Feature
; r, V& S. P; X) l7 J( F" }) e Q% I b. C7 E- Z! o5 v% F
Interactive User Defined Feature的交互式的用户定义特征,是一种编制式的定制开发。通过聚合现存的特征来交互定义新的数据类型,收集现存规范,指定输入,从而创建一个“IUDF”(用户定义特征)。“IUDF”可以通过引用一个目录文件(Catalog)保存在.CATPart文档中,它可以交互地被客户使用。
* O6 V, L- o0 b( I! s! X
8 z! u( }& r" G% r1 ?! g2 I0 o4.CAA V5 C++ & Java API 8 {# Q! J: K' ` ?$ m! _; O
1 g6 E) L/ b; ?$ q1 d% tCAA V5的C++和Java应用接口,这是基于组件的定制开发。也就是我们所说的CAA(Component Application Architecture)。其具有强大的交互、集成和用户特征定义的功能,并有一套自己的体系架构。CAA是CATIA的一套C++函数库,该函数库在CATIA运行时加载,用户可通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信。这种方法可进行最有效率的程序开发,但入门困难,受CATIA版本限制,在国内这方面的技术资料比较少见。
# ]6 L7 j' n3 z: S6 [
' I5 A7 Y ^' S& H- U1 ~% \冲压件模具修边线设计原理 9 e; n: `1 u7 Z) g
3 C+ I; `( o" T v4 O' C4 A* d在CAD软件中求取修边线虽然准确度高,但是手工绘制工作量很大,有的零件需要手工绘制几百个修边点,再依次连接才能得到一条准确的修边线,常常要花费好几天的时间。
2 E4 n; o. y: n( o7 ?- [. }& X4 M$ L& h. u m/ u8 P
以图2所示的发动机罩外板为例说明冲压模具修边线设计原理。
1 F2 |* c# p/ M/ Z& X图2 修边线三维原理 1.修边点
# q( _) I! X. q
0 Z0 E' ]6 g! y; m0 n如图2所示,在“工艺补充面与翻边面交线”(也是产品面与工艺补充面交界)上某点求取法向面,然后求取法向面分别与“工艺补充面”和“翻边面”的交线得到如图2所示的“工艺补充面截面线”和“翻边面截面线”;修边点在“工艺补充面截面线”上的位置如图3所示,“修边点”到“工艺补充面与翻边面交线”的线长度等于“翻边面截面线”的线长,线长在CATIA软件中可以通过测量或公式计算得到。通过这种方式可以根据需要求取若干修边点,修边点的数量越多、密度越大,得到的修边线精确度越高。 6 S: j2 H# a; d. X) s5 u5 M+ w
图3 修边线二维原理 2.修边线
8 V! V# x# e+ d2 A& ^7 y+ I( T" q: v$ ~( i" r& o2 x1 ? Y) D0 ]
如图2所示“修边线”就是在“工艺补充面”上将前面求取的修边点顺序连接起来得到的样条曲线。修边线的精确度直接影响到冲压件拉延模和修边模的设计制造周期。
3 K$ u b" W- @, F! X$ H+ Q# y
程序开发过程 ! ?* K( u4 I6 ^0 i; |: T
% d9 A u+ p+ x# l) |: e根据上述原理,我们运用CATIA软件的自动化应用接口(Automation API)二次开发方法,运用Visual Basic语言进行编程来实现自动绘制修边线。本程序将绘制修边线分成三个功能界面来实现:(1)选择曲线、法面份数的方式创建修边点的功能界面。在此界面中系统要求用户交互选取参考曲线(如图1中 “工艺补充面与翻边面交线”)、选取外面(如图2中“工艺补充面”)、选取内面(如图2中“翻边面”)、设置法向面数量(即需要生成的修边点数量),设置完毕后点击创建即可生产相应数量的修边点;(2)选择两点的方式创建修边点的功能界面。此界面是在第一步已经产生的任意两个修边点之间再生成若干修边点,起到局部增加修边点密度的作用,此界面增加了交互选取起始点和终点的操作,其他操作与第一种操作相同。(3)创建修边曲线的操作界面。此界面只需交互选择修边线所处的曲面(选取“工艺补充面”),就可得到我们所需要的修边线。 * ?; G! f! v9 m+ c! |* x
+ i( w: b: P' r9 B9 u通过上述3个功能就可以将几个小时甚至几天的工作在几分钟之内完成,通常只需要上面所述的(1)和(3)这两个功能就可以得到一条满意的修边线,(2)在必要时使用。
0 ^& W; x2 J6 X! [图4 发动机罩外板 应用实例
1 X: o' l* y; A% r% H$ N- x9 B0 e" h! t( i t) K
本程序适用于白车身所有需要设计修边线的冲压件,在大型复杂冲压件上所体现的效率尤为明显。以图4所示的某车型发动机罩外板为例,一半的翻边线长度为2500mm,如果要得到一条精确的修边线就需要300~500个点,手工绘制的繁琐程度可想而知。以作300个修边点为例(见表),对手工绘制和使用本程序自动化设计的效率做了一个对比。 操作效率对比
* f% {6 r+ v/ j/ k. A1 \; `% e 表中所统计的手工操作时间是在不间断操作的情况下完成所需的时间,一般一名操作熟练的工程师需要两天左右的时间才能手工绘制完成,而使用二次开发的程序操作只需要1min,几百个修边点是计算机自动计算的,计算时间与电脑配置有关,一般也只需要10min左右的时间,设计效率的提高程度可见一斑。
. {. h( l W: a* K; Y+ B' }0 [
5 A/ j2 W% K) K3 R- ]. I9 n. T& c" J( w1 @- d; Z9 w
% {: |3 | [0 T2 ^" N1 q# i$ YCATIA软件提供了很好的二次开发接口。自动化对象编程(V5 Automation)的二次开发方式比较容易入门,而且能够根据自身需要进行相应开发,从而大大提高工作效率,因此更适合企业用来作为进行二次开发。本文所述的冲压模具修边线自动绘制将设计工程师从繁琐的手工操作中解脱出来,不但提高了效率,而且保证了精度。 |