基于VS.NET 的CATIA 二次开发的自由曲面设计 来源:袁允伟 发布时间:2015-04-10 浏览次数:189

基于VS.NET 的CATIA 二次开发的自由曲面设计

Designing free-form surface by CATIA Secondary Development on VS.NET  

 袁允伟 王勤易

(上海行健职业学院 上海 200072

      摘  要:CATIA是一款高档的CAD/CAE/CAM一体化软件系统。CATIA的二次开发技术能够拓展CATIA的功能,满足个性化的需求,在设计、制造和管理等领域有很高的应用价值。本文介绍采用VS.NET 2010 集成开发环境、VB.NET 2010语言和MS SQL SERVER 2008 数据库对CATIA V5R18 进行了自由曲面设计的二次开发的研究。

    关键词CATIA 二次开发 VS.NET VB.NET  自由曲面 

    Abstract: CATIA is the deluxe CAD/CAE/CAM software system .CATIA secondary development techniqueses can expand CATIA function and satisfy to characteristically make to order a need, at design, manufacturing and  management etc. contain very high application value . This text introduction is used VS.NET 2010 integration development environment and VB.NET 2010 languages and MS SQL SERVER 2008 databases carried on  researches of developments that the free curved face designs by the CATIA V5 R18.

Key words:  CATIA secondary development   VS.NET VB.NET  free-form surface

 引 言

    CATIA(Computer Aided Three & Two Dimensional Interaction Application System,计算机辅助三维/二维交互式应用系统)是法国达索公司的软件产品,是集计算机辅助设计(CAD)、计算机辅助工程分析(CAE)、计算机辅助制造(CAM)和计算机辅助工艺规划(CAPP)等为一体的高端软件系统。CATIA广泛应用于航空航天、汽车船舶、电子电器等制造行业。

    目前国产ARJ21支线飞机的数字化平台也集成了和应用了CATIA软件。上海行健职业学院成为上海飞机制造有限公司的教育培训基地和中国商飞总装制造中心创新人才培养合作伙伴,承担教育培训和总装课程开发等人才培养方面的任务,CATIA软件的课程无疑成为培训的重点课程。CATIA的二次开发技术的是该课程的难点。

1   CATIA软件的二次开发

   CATIA软件的二次开发是根据用户的需求,进行新功能开发或软件环境定制,能够拓展CATIA软件的应用,在设计、测试、仿真、制造和管理等领域有很高的应用价值,它能实现目前CATIA软件不易实现的功能,拓展软件的应用范围,提高工作效率,是一种软件的再创新。

    CATIA软件二次开发必须调用CATIA软件本身提供的开发的接口。CATIA支持两种二次开发方式:进程内应用程序(In-process Application)方式和进程外应用程序(Out-Process Application)方式。在进程内应用程序方式下主要是使用宏方式(Macro)。在CATIA环境下通过记录宏(Record Macro),生成VB脚本程序,通过修改和运行脚本程序来拓展CATIA功能,满足用户定制系统的要求。这种方式是在CATIA环境中编辑实现的,功能受到一定限制,难以适应规模比较大、技术比较复杂的系统开发要求;在进程外应用程序方式下,二次开发程序在CATIA外部运行,能够创建、修改CATIA环境和零件的数据参数,控制CATIA程序的运行结果。这种方式开发的的难度首先在于要充分的掌握CATIA内部接口、操作命令和各部件参数设置方式。在进程外应用程序方式中有两种技术,一种是组件应用架构CAA(Component Application Architecture) C++ 技术。但是一套正版CATIA CAA软件非常昂贵,一般用户是很难支付使用;另一种是自动化对象编程 Automation技术。Automation技术是建立在COM(Component Object Model 组件对象模块)基础之上。Automation技术提供了API(Application Programming Interface ,应用程序编程接口)函数。二次开发可以用API与CATIA进行通信,可以操控CATIA。

在CATIA Automation中,所有的程序和数据都被封装成了对象的形式,并形成逐层包含的树状结构。Application是根对象,下面又派生出许多子对象。每一个对象都有其自己的操纵集合的方法和属性。CATIA文档包含多种类型,如零件(Part)、产品(Product)等。而Documents对象就是这几种对象的集合,而Document则是上面所述文档中的某一种,对不同的文档有不同的属性和操作方法。Part是零件文档最上层的对象,通过它可以操纵零件文档,可以对参考系、草绘、实体特征等属性进行操作。

本文使用的是Automation技术对CATIA V5R18 进行二次开发。目前,CATIA提供二次开发的接口、命令和参数资料并不完整,就是CATIA自身用VB脚本语言记录的宏程序,也有参数不匹配,程序有缺失和运行出错的现象。 

开发工具和数据库

   目前微软的IDE(Integrated Development Environment) 集成开发环境已经成为重要的软件开发工具,从Visual Studio 6到Visual Studio 2010,功能增强,内部组件增多,开发效率提高。VB 6.0也随着升级为VB.NET 2010。但是目前CATIA的二次开发公开的参考资料中采用的语言基本上采用的都是VB 6.0。能够采用Visual Studio 2010集成开发系统和VB.NET 2010无疑对最新的二次开发和系统集成有很高的价值。

    数据库的技术能够提高系统的稳定性和安全性,能够与较大的应用项目集成。微软的MS SQL SERVER 数据库也已经升级到 2008版本,它与Visual Studio 2010集成开发系统和VB.NET 2010有很好的连接接口。数据库的使用无疑可提高CATIA二次开发的适用范围。

3   基于CATIA二次开发曲面设计实例 

    自由曲面已广泛应用于制造行业,从飞机机身,船舶船体,到3C产品,如何精确、高效地设计和制造自由曲面件成为重要课题。自由曲面是以复杂方式自由地变化的曲面,用手工绘制精确度低、数据难控制,工作效率低,应尽可能采用自动编程和外部参数控制的方式。

3.1 CATIA制作曲面的实例

本文的实例是在Visual Studio .NET 2010环境下,用VB.NET2010语言,调用数据库的数据和启动和操控CATIA软件,建立一个平面(参考平面,支持平面),画上一个有5个参考点的样条曲线形成的二维不规则的封闭曲线,以曲线在平面的投影为约束,根据高度参数和点-点确定直线的方向凸起一个三维的自由曲面。图1所示为本实例VB.NET2010程序读取和更新MS SQL SERVER 2008数据调用CATIA软件绘制自由曲面的流程。

     catia_qm_01.png

图1  自由曲面绘制程序框图

3.2 创建VS.NET的解决方案

  (1)启动Visual Studio .NET 2010,在适当的目录地址,新建Visual Studio 空白解决方案

  (2)在解决方案内,添加Visual Basic 语言的Windows窗体应用程序项目

  (3)在Windows窗体应用程序项目中新建Windows 窗体程序,在窗体页面和程序中实现对数据库的连接,数据的增删改,以及根据数据调用CATIA软件,绘制不同自由曲面。

5.3 建立VB.NET 的项目和Windows Form 窗体

   (1)在项目中添加引入 CATIA的COM库函数

CATIA V5 AECReview Interface Object Library

CATIA V5 CAT3DXmlInterfaces Object Library

 ……

(2)在Windows Form 窗体程序中引入命名空间

在程序代码页引入CATIA和数据库的命名空间,(namespace,也称名称空间),以区分不同的程序代码。

Imports MECMOD

Imports INFITF

……

Imports System.Data.SqlClient

3.4 CATIA自由曲面制图模块

首先用VB.NET 2010 在CATIA程序外启动或调用CATIA软件,创建零件文档。

'定义CATIA为Object

Dim CATIA As Object     

'如CATIA已经打开,则获取CATIA对象

On Error Resume Next

CATIA = GetObject(, "CATIA.Application") 

'如CATIA未打开,则创建CATIA对象

If Err.Number <> 0 Then

 CATIA = CreateObject("CATIA.Application") 

 CATIA.Visible = True

End If

'创建CATIA文件

Dim documents1 As Documents

documents1 = CATIA.Documents

'创建CATIA 零件文档

Dim partDocument1 As Document

partDocument1 = documents1.Add("Part")

 ……

上述VB.NET 2010程序启动CATIA软件的结果如图2所示。

   catia_qm_02.png

图2  VB.NET启动或调用CATIA软件

然后用VB.NET在草图1的xy平面画制一条直线,并把直线垂直拉伸为一个平面

Dim sketches1 As Sketches

'定义草图对象

sketches1 = body1.Sketches

  ……

Dim line2D3 As Line2D                

'定义二维直线对象

line2D3 = factory2D1.CreateLine(x1,y1,x2,y2)

  ……

Dim hybridShapeExtrude1 As HybridShapeExtrude

’定义拉伸对象   

hybridShapeExtrude1 = hybridShapeFactory1

.AddNewExtrude(reference5, 200.0, 0.0, hybridShapeDirection1)

  ……

接着在草图2的xy平面上,画制一个有5个参考点的样条线,组成一个不规则封闭曲线。

 controlPoint2D1 = factory2D2

.CreateControlPoint(x1, y1)   '样点1

  ……

Dim arrayOfObject1(5)

 ……

arrayOfObject1(4) = controlPoint2D2

arrayOfObject1(5) = controlPoint2D1

Dim spline2D1 As Spline2D

'定义二维样条曲线

spline2D1 = factory2D2

.CreateSpline(arrayOfObject1)

最后,调用高级曲面的凸起变形对象,在将草图2的封闭曲线,投影到草图1的参考平面(支持平面)上,形成曲面的凸起区域,选择变形中心、变形方向和变形距离,形成自由曲面。

  '定义曲面凸起变形对象

  Dim hybridShapeBump1 As HybridShapeBump

  hybridShapeBump1 = hybridShapeFactory1.AddNewBump(reference12)

  hybridShapeBump1.LimitCurve = reference13

  '设置变形中心

  hybridShapeBump1.DeformationCenter = reference14

  '设置变形方向

  hybridShapeBump1.DeformationDir = reference15

  '设置变形高度

  hybridShapeBump1.DeformationDistValue = h1

  '加入曲面凸起变形对象

hybridBody1.AppendHybridShape(hybridShapeBump1)

3.5基于VB.NET 2010的SQL Server 2008数据库操作

在本实例中自由曲面的参数是存放在MS SQL Server 2008 数据库的数据表中。这些参数能够浏览、增加、删除和修改更新,能够传递控制CATIA的制图模块。  

    (1)实现对数据库数据的增删改和浏览,对CATIA模块的控制

    在SQL Server 2008 构建数据库和新建数据表,存放曲面变形区域样点,变形方向和变形高度的数值。

    在Windows 窗体程序的设计页,加入DataGridView控件,BindingNavigator1数据导航控件,引入BindingSource1数据源对象、DataSet数据集对象和TableAdapter数据表接口对象,实现与数据库的连接和对数据的操作处理。

    在DataGridView控件的任务栏,选择数据源,选择数据库中的数据表,产生DataSet数据集对象和TableAdapter数据表接口对象。在BindingSource1数据源对象的DataSource设置中,通过添加项目数据源的设置,可在App.config文件里产生相应的数据库连接字符串。

为实现数据更新,在DataGridView控件的列中,增添“数据更新”按钮,并在DataGridView对象的CellContentClick事件处理程序中,加入利用数据适配器的数据更新的语句:

Me.Qm_Table_1_TableAdapter.Update(Me.Catia_qmDataSet1._qm_Table_1_)

(2)将选中的DataGridView控件的行数据,传送到CATIA绘图子程序模块

Dim ss1(5, 2) As Double

Dim h1, l1 As Double

ss1(1, 1) = Double.Parse(    DataGridView1.

Rows(e.RowIndex).Cells(1).Value.ToString())

 ss1(1, 2) = Double.Parse(DataGridView1

.Rows(e.RowIndex).Cells(2).Value.ToString())

 ……

CATMain00_qm1(ss1, h1, l1)

图3为VB.NET读取和更新数据库数据,操控CATIA软件的界面,图4,图5为对应不同的数据库数据调用CATIA软件绘制的自由曲面示意图。

catia_qm_03.png

              图3  VB.NET读取数据库数据操控CATIA软件

     catia_qm_04.png

      图4  依据第一行数据参数绘制曲面

catia_qm_05.png

          图5  依据第二行数据参数绘制曲面

4 结束语

CATIA软件在曲面设计方面功能特别强大。利用CATIA的API接口,采用新版本的微软集成开发环境、开发语言和数据库系统,拓宽了CATIA软件的应用范围,提高了曲面设计的效率。

   参考文献

[1]曹俊生.基于CATIA/CAA的飞机结构虚拟装配信息模型研究[D]. 南京航空航天大学,2005

[2]叶伟,吴介琴.ARJ21新支线飞机研制数字化应用与研究[C]. 虚拟制造技术论文集, 2007:40-47

[3]黄莹.基于CATIA的圆盘烘口机关键部件参数化设计研究[D]. 天津科技大学,2008

[4]康文利,张颖.CATIA二次开发技术在齿轮参数化设计中的应用[J] 机械工程师, 2010(11):81-83

[5]孙淼.基于CATIA的自由曲面的设计及数控加工[D]. 合肥工业大学, 2009.(03)

[6]谭琳琳.基于CATIA平台下的槽轮机构CAD系统的开发与研究[D]. 天津科技大学机械工程学院, 2005

[7]席德科.基于CATIA的离心风机参数化设计系统初步研究[D]. 西北工业大学,2004