引言
CATIA是法国达索系统公司开发的集成了CAD、CAM和CAE的大型软件,凭借其突出的技术优势在制造业的各个领域得到了广泛的应用,现已成为全球制造业的主流设计软件。应用CATIA先进的设计理念,可极大地提高企业的设计水平、设计质量和设计效率。
二次开发是对软件的用户化和专业化的有效手段,可以使软件更好地为用户服务,在提高CAD软件的应用效率、专业性,充分发挥CAD软件的使用效益,提高工作效率和工作质量等方面有着十分重要的作用。CATIA作为一款通用、大型软件,为用户提供了二次开发接口和开放式的内部命令集合,给用户的二次开发带来了方便。在熟练掌握CATIA软件功能的情况下,通过对CATIA软件的二次开发功能进行深入研究,就可以开发出适用于本单位和个人习惯的CAT-IA二次开发程序,为提高工作效率和产品质量服务。因此,对CATIA进行二次开发研究,已受到国内外许多科研院所及高校的重视。
机载电子设备的结构设计通常会使用大量的各类标准件,如螺钉、垫圈、螺母等。在CATIA的装配设计中,设计人员对这些标准件往往进行手工插入,在这样的设计模式下,设计人员不得不重复地选择零件、几何约束对象并创建约束,费时费力且容易出错。为解决上述问题,文献10]提出了标准件的“批装配”方法,文献11]提出了‘‘栈式”装配方法,但这些方法都需要用户选择多个装配几何元素。本文在上述研究的基础上,给出了一个新的螺钉智能装配程序实例,只需让用户选择一个装配几何元素(即螺钉安装面),就可完成对所选安装面上所有孔的螺钉(包括垫圈、螺母等)的自动装配,极大地提高了CATIA装配设计中标准件的装配工作效率。
1CATIA二次开发技术的主要研究方向及应用前景
1.1CATIA二次开发技术的主要研究方向
文献对CATIA二次开发技术进行了研究,我们可以从上述文献所做工作中提取出CATIA二次开发技术的主要研究方向:(1)参数化设计。通常的CAT-IA二次开发技术在参数化设计中的应用是编写一个界面获取用户指定的参数后,通过编程来调用CATIA相应的造型函数,从而完成参数化设计。文献1-4]是在这方面所做的工作。(2)CAE开发。强度设计和热设计已越来越多地应用于结构设计领域,将强度设计和热设计的相应算法通过编程的方式应用到CATIA的二次开发中,继而编写出适合于本单位的强度设计和热设计的程序,可实现结构设计和热设计、强度设计的有机统一。由于这些程序是由本单位研发人员所编写,因此它不仅能实现和CATIA的无缝集成,而且在操作上还很符合本单位设计人员的习惯。文献是在这方面所做的工作。(3)优化设计。针对用户产品设计的特点,为达到最优设计而提出相应的算法,并在CATIA二次开发程序中实现这种算法,从而达到优化设计的目的。文献7-8是在这方面所做的工作。(4)简化操作。针对CATIA中某些比较繁琐的操作,结合用户研发设计的特点,通过编程,使CATIA相关操作得以简化。文献9-10]是在这方面所做的工作。
1.2CATIA二次开发技术的应用前景
上述4个研究方向均有广阔的应用前景。研究方向1的相关研究最多,其主要思想是通过参数化设计,将已有设计思想知识化和标准化,即使设计经验相对欠缺的设计师通过输入相关参数也能完成产品设计,从而大大提高产品重用化水平,提高设计效率。研究方向2难度最大但应用前景最广。通过CATIA的二次开发,将强度设计和热设计融入CATIA中,开发出与CATIA无缝集成的强度设计和热设计程序,从而实现结构设计和强度设计、热设计的有机统一。但其开发难度也较高,程序开发者不仅需要具备一定的编程经验,更需要掌握强度设计和热设计的算法并且具有把这种算法应用于CATIA二次开发的能力。研究方向3提供了一个有效的进行产品优化设计的途径。在工程设计中,使设计效果达到最优是设计师不断追求的目标,他们在长期的设计实践中产生了大量的优化策略和方法,研究方向3的主要工作就是将上述优化策略和方法转化成计算机能识别的算法并在CATIA二次开发程序中实现,从而达到优化设计的目的`。研究方向4针对CATIA中不满足用户应用习惯和应用需求的部分,开发出适用于本单位和个人习惯的工具,为提高工作效率和产品质量服务。本文第3节给出的应用实例“智能化螺钉装配程序”就是在这方面所做的工作。
2 V5 Automation的关键技术
2.1CATIA二次开发接口
CATIA主要提供了两种二次开发的接口,包括自动化对象编程(V5Automation)和开放的基于构件的应用编程接口(CAA)。前者采用VisualBasic6.0(简称VB)对CATIA进行二次开发。VB是一种基于Bas?ic的可视化程序设计语言,它继承了先前Basic程序设计语言所具有的简单、易用的特点,而且在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。结合VB强大的功能和CATIA本身提供的丰富的类、库及二次开发函数,就能开发出个性化的CATIA二次开发程序。CATIA二次开发的过程和意义如图1所示。
2.2利用V5Automation进行CATIA二次开发的基本流程
在V5Automation中,所有的数据都被封装成对象的形式,并形成树形结构,如图2所示。图2中,通过根对象Application可以访问所有其他对象,如通过Application对象的Documents、Windows和SystemSer-vice等属性就可以访问CATIA的所有对象。同时,VB提供了许多非常有用的工具,使用这些工具,可以声明任何由CATIA提供的库文件(.tlb),这些库文件包含了所有对象的声明和所有外部对象的方法和属性。
在VB中对CATIA进行工程引用后,利用下面的程序代码,米用GetObject和CreateObject方法,即可实现VB对CATIA的连接。
Dim CATIAAs Object On Error Resume NextSet CATIA=Get Object(/"CATIA.Application")
If Err.Number<>0 Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True End If
On Error GoTo 0
连接到CATIA之后,就可以在VB中对CATIA进行操纵,而CATIA也提供了丰富的类、库及二次开发函数供用户调用。CATIA二次开发的过程可以理解为:用户为实现某种功能,根据需要,合理地调用上述类、库的属性和方法以及二次开发函数。CATIA中的每个功能(包括零件设计、曲面造型、装配设计、工程制图等)以及所有的实体特征(包括草图特征、修饰特征、曲面特征、变换特征、组合特征等)都有相应的类、库支撑,因此CATIA二次开发的主要工作就是合理地对对象进行编程。图3表示了利用V5Automation进行CATIA二次开发的基本流程。
3应用实例
基于上述思想,开发了一个智能化螺钉装配程序。该程序的主要功能如下:在CATIA装配界面中,程序提示用户选择螺钉安装面,并在程序对话框中选择螺钉规格、螺钉长度和装配螺钉的方向后,即可自动完成对所选螺钉安装面上所有孔的螺钉的自动装配。图4(a)为该程序启动时的界面,用户需点击“请选择螺钉安装平面,并计算孔”按钮,并在CATIA装配界面中选择一个螺钉安装面。用户选择螺钉安装面后,当所选螺钉安装面上的螺钉规格为GB818时,程序经过计算后进入选择界面,见图4(b)。在该选择界面上,程序显示了所选螺钉安装面上的孔的情况,并提示用户选择螺钉长度、装配螺钉的方向以及是否需要装配弹平垫等。最后,用户点击“装配螺钉”按钮,即可完成螺钉的自动装配。
下面给出该“智能化螺钉装配程序”的步骤:
1)提示用户在CATIA装配界面中选择螺钉安装面;
2)判断所选螺钉安装面所在的零件;
3)搜索该零件上所有的孔特征,如果孔特征满足其中心点在所选螺钉安装面上,则该孔特征进入“我需要的孔”数组;
4)计算“我需要的孔”数组中元素的个数,如个数为0,则程序提示“所选螺钉安装面上没有孔特征,不能进行螺钉装配”并退出;
5)在“我需要的孔”数组中,计算孔的种类和大小;
6)程序根据“我需要的孔”数组中孔的种类和大小计算出适用于所选螺钉安装面的螺钉规格;
7)提示用户选择螺钉长度和装配螺钉的方向,如果螺钉规格为GB818,程序还会提示用户选择是否需要装配弹平垫;
8)根据用户的选择情况,程序进入装配实施阶段,通过编程,在程序中对螺钉施加装配约束,约束条件1为螺钉“安装面”与所选螺钉安装面重合;约束条件2为螺钉“中心轴”与“我需要的孔”数组中孔特征的中心轴重合;
9)通过一个循环语句,完成对“我需要的孔”数组中所有孔的螺钉装配。
4结束语
本文对CATIA的二次开发技术进行了研究,提出了基于V5Automation的CATIA二次开发技术的基本方法、一般原则和开发流程,并通过一个智能化螺钉装配程序的实例,验证了CATIA二次开发技术。应用CATIA二次开发技术可以实现强大的功能,对CATIA进行二次开发可实现真正意义上的CAD、CAM、CAE技术的有效应用,因此探索CATIA二次开发的技术和方法有着较大的现实意义。目前已作了初步的研究,今后,还可以在参数化设计、CAE开发、优化设计等方面对CATIA的二次开发技术展开更深入的研究,以推动设计水平的提升。
【基于V5 Automation的CATIA 二次开发技术研究论文】相关文章:
浅谈基于CATIA二次开发的单排四点接触球轴承三维设计论文11-16
基于移动Agent系统的安全技术研究论文11-06
基于遗传算法的车牌定位技术研究论文11-06
基于非连续频谱的短波传输技术研究论文11-06
基于网格的数据传输与复制技术研究论文11-07
基于有源吸声单元的声隐身技术研究论文11-06
基于数据挖掘的数字图书馆检索技术研究论文11-06