zoukankan      html  css  js  c++  java
  • VB6.0环境下的CATIA二次开发简介

    CATIA作为CAD/CAE/CAM/PDM一体化的软件,广泛用于航空航天、汽车、船舶及电子工业,尤其在航空航天业,有八成以上厂商使用CATIA的市场[11]。然而由于使用习惯和使用的侧重点不用,功能再强大的软件也不可能同时满足各类用户的需求,因此,对CATIA进行二次开发已经受到国内外许多科研院所及高校的重视[12]。CATIA二次开发的过程和意义可用图3-1来表示。通过第三方开发工具对CATIA进行二次开发,可以开发出针对某一行业,甚至针对某一用户的特定模块,以方便该行业用户使用,是对CATIA功能的深入挖掘和拓展。

     VB6.0环境下的CATIA二次开发简介

     

    第三方开发工具

    VB、VC++...

    通用CATIA软件

    新的功能模块

     

    CATIA二次开发主要有两种方法,一种是采用CAA  C++技术,另一种是采用Automation技术。

    CAA(Component Application Architecture)是CATIA的一套C++函数库,该函数库在CATIA运行时加载,用户可通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信。这种方法可进行最有效率的程序开发,但入门困难,在国内这方面的技术资料比较少见。

    Automation技术是建立在COM基础之上,其核心技术是允许一个应用程序操作另一个应用程序。Automation技术并不是直接获取及处理数据,而是间接的通过暴露的对象和属性,利用对象的方法和属性来获取、设置及处理数据。这种方法功能限制比较大,但入门比较容易。

    基于上述两种开发方法的特点和本次毕业设计任务难度,本文选择使用Automation方法对CATIA进行二次开发。由于CATIA宏录制生成的VBScript代码稍做修改就能在VB环境下运行,为编程提供了很大的方便,所以本文选用的开发环境是Visual Basic 6.0。

    VB 6.0环境下的CATIA二次开发

    在CATIA Automation中所有数据都被封装成对象的形式,并形成树形结构,如图3-2,这样就可以通过根对象对所有的其他对象进行访问。图3-2中,Application对象是根对象,通过这个对象的Documents,Windows和SystemService等属性就可以访问CATIA所有的对象。

    VB6.0环境下的CATIA二次开发简介

     

     

    本文研究中进行的CATIA二次开发主要涉及到CATIA的基本操作和零件对象下的各种属性、方法的操纵。CATIA的基本操作主要是通过几个API(Application Programming Interface)对CATIA进行文件操作,视图操作等。零件操作主要是进行CATIA实体建模,如草绘、约束、实体等操作。

    要对CATIA进行操纵,首先是要连接到他的COM接口,主要有GetObject和CreateObject两种方法,即:

    Dim CATIA As Object 

    On Error Resume Next    

    ‘如果CATIA启动,用GetObject连接到CATIA

    Set CATIA = GetObject(, "CATIA.Application")  

    ‘如果CATIA没有运行,则先用Create Object启动CATIA

    If Err.Number <> 0 Then

      Set CATIA = CreateObject("CATIA.Application")

      CATIA.Visible = True

    End If

    On Error GoTo 0

    通过这段代码,程序即可访问到CATIA,如果CATIA没有启动,则程序先启动CATIA,再对CATIA进行访问。

    操纵零件文档的一般步骤如图3-3所示。

    VB6.0环境下的CATIA二次开发简介

    Document对象

      Add()方法

    获取Application对象

    获取Documents对象

    获取Part对象

    获取构造类

    ShapFactory

    建模

    获取OriginElements对象

    获取实体集合Bodies

    添加Body对象

     

    Part是零件文档最上层的对象,如图3-4所以,通过它可以操纵零件文档,可以对参考系、草绘、实体特征等属性进行操作,编程实现CATIA的实体建模。

    VB6.0环境下的CATIA二次开发简介

     

     

    Part

    Bodies

    ShapeFactory

    OriginElements

    Body

    Sketches

     

    Part对象下的几个属性下均含有较多函数,此处不一一详述,只对一些常用函数作简单介绍。Sketches属性下含有Factor2D草绘元素构造器,得到该对象后,可以使用它的创建方法来创建平面曲线特征。最常用的方法有:CreatePoint、CreateLine、CreateCircle和CreatClosedCircle,此处以CreateCircle为例介绍其用法。

    CreateCircle( double iCenterX,

    double iCenterY,

    double iRadius,

    double iStartParam,

    double iEndParam ) As CATIACircle2D

    参数说明:iCenterX,iCenterY:圆弧中心坐标;

    iRadius:圆弧半径

    iStartParam:圆弧起始圆心角,以弧度表示。

    iEndParam:圆弧终点圆心角,以弧度表示。

    该函数返回Circle2D类型的圆弧。如下代码将创建以(5,15)为圆心,从-90到+90,半径为30mm的半圆:

    Dim PI as Double

    PI=3.14159

    Dim Circle as Circle2D

    Set Circle=Factory2D.CreateCircle(5,15,30,-PI/2,PI/2)

    ShapeFactory是实体构造器,用它可以完成绝大部分的实体特征的创建,如Pad、Pocket等。以下代码将名为Sketch1的草绘特征做一个Pad特征,高度为20mm。 

    Dim SF as ShapFactory,Pad1 as Pad

    Set SF=Part1.ShapFactory.

    Set Pad1= SF.AddNewPad(Sketch1,20)

    其他函数此处不再做详细介绍,读者可参考CATIA V5自带的Automation文档。

  • 相关阅读:
    C语言不进行类型检查 和函数能够不进行前向声明
    EventBus 《二》 Android EventBus的简单使用
    android开发之SnackBar的使用
    iOS语音播放之切换听筒和扬声器
    使用NSURLConnection的网络请求与封装
    Mina Basics 02-基础
    Mina Basics 02-基础
    jquery移除事件,绑定事件,触发事件
    jquery移除事件,绑定事件,触发事件
    jquery移除事件,绑定事件,触发事件
  • 原文地址:https://www.cnblogs.com/tdskee/p/3799399.html
Copyright © 2011-2022 走看看