CATIA二次开发.docx

上传人:b****8 文档编号:10230978 上传时间:2023-02-09 格式:DOCX 页数:102 大小:720.05KB
下载 相关 举报
CATIA二次开发.docx_第1页
第1页 / 共102页
CATIA二次开发.docx_第2页
第2页 / 共102页
CATIA二次开发.docx_第3页
第3页 / 共102页
CATIA二次开发.docx_第4页
第4页 / 共102页
CATIA二次开发.docx_第5页
第5页 / 共102页
点击查看更多>>
下载资源
资源描述

CATIA二次开发.docx

《CATIA二次开发.docx》由会员分享,可在线阅读,更多相关《CATIA二次开发.docx(102页珍藏版)》请在冰豆网上搜索。

CATIA二次开发.docx

CATIA二次开发

CATIA二次开发文件

第一课:

CATIAV5自动化及脚本语言结构

内容列表:

CATIAV5自动化及脚本语言介绍

VB、VBScript、VBA之间的区别

宏的兼容性、结构及文件

进程中的宏

2.1运行一个宏

2.2在工具栏上添加一个宏

外进程的编程

3.1使用VBA或VB运行外进程

例子:

从Excel里导出螺钉

3.2使用WindowsScriptingHost运行外进程

3.2.1WindowsScriptingHost下的VBScript

例子:

“BoltVBScript.vbs”

3.2.2WindowsScriptingHost下的JavaScript

例子:

“BoltJavaScript.js”

3.3用HTML运行外进程

3.3.1用VBScript在HTML里运行外进程

例子:

“BoltVBScript.html”

3.3.2用JavaScript在HTML里运行外进程

例子:

“BoltJavaScript.html”

1.CATIA自动化及脚本语言概述

通用在Unix和NT平台上

无论是在NT平台还是Unix平台上,脚本语言允许你使用宏以一个非常简单的方式来对CATIAV5进行编程。

CATIAV5使用了NT平台下的VB脚本和Unix平台下的BASIC脚本中相同的部分,所以我们在两个平台下可以运行相同的宏。

在NT平台下

自动化允许CATIA与其他程序共享对象,如EXCEL,WORD,VISUALBASIC。

 CATIA可以使用WORD/EXCEL对象,反之也相同。

在UNIX平台下

将来的CATIA的版本里,CATIA将允许同Java共享自己的对象,这将为Unix平台和NT平台提供完整的兼容性。

CATIAV5自动化:

概述(仅限NT平台)

自动化允许在不同的进程之间通讯

COM:

(对象组件模型):

COM是微软公司提出的目的在不同程序中共享对象标准。

Automation:

Automation是一种微软公司的技术,目的是在开发环境里使用COM对象

ActiveX组件是一种微软标准,目的是在开发环境里共享不同程序的对象。

OLE:

(对象链接及嵌入)意味着一个文件可以被另外的一个程序的文件链接。

这种链接及嵌入的对象可以被其他的程序在编辑区编辑。

VisualBasic,VBA,VBScript之间的区别

VisualBasic(VisualBasic专业版):

VB是个完全的版本。

1.可以编制独立的程序。

2.也可以创建ActiveX和程序服务器。

3.可以被编译。

4.VB提供了自己的文档——《在线帮助》

VBA(VisualBasicforApplication):

VBA是VB的一个子集。

1.VBA是程序中的主机,就象Word,Excel。

2.它提供了一个带有编辑器、除错器、帮助、对象浏览器、完成器的完整的开发环境。

3.利用它的Tools-Reference菜单可以声明使用的对象库。

这在完成和对象浏览器之间建立了一个通道。

VBScript(VisualBasicScript):

VBScript是VB的一个子集。

1.更简单的VB解释语言。

2.可以调运CATIA对象。

3.没有数据类型的区别。

系统总是动态的调用函数和对象属性。

(迟绑定调用对象通过他们的Idispatch接口)

宏兼容性

一个在无论是NT平台还是Unix平台已纪录的宏都可以运行在两个平台上(NT和Unix)。

有面板的ActiveX被添加到宏里,但这个只可以在NT平台下。

其他服务例如“Scripting.FileSystemObject”可以被“CreateObject”所调用,但这个也只可以在NT平台下使用。

对象类型的声明在宏中是被纪录的,即使是它未被使用,但它可以在下一步的编程中帮助你理解程序。

CATIAV5脚本性能

内进程应用:

在CATIA里打开TOOLS-MOCROS菜单,当宏运行时,CATIA是不响应的。

在两次调用之间,你不可以在一个宏中存储变量。

宏起到了连接在WindowsNT平台下的VBScript和Unix

平台下的BasicScript的作用。

外进程应用

外进程以AUTOMATION为基础,一个外进程可以调用CATIA,建立或修改草图,解码、定制、控制CATIA,与内进程不同的是,这个时候CATIA是可响应的。

外进程对CATIA对象作出的每一步修改我们都可以视修改情况决定是否保留来维持两个进程之间的同步,这种外进程可以通过一下工具来开发:

1.VisualBasic

2.WindowsScriptHost(VBScript,JavaScript)

3.WindowsExplorerHTML(VBScript,JavaScript)

4.其它的任何COM程序。

在以后,将提供一种JAVA/CROBA封装的CATIAV5的自动化对象,这些将使在NT平台和Unix平台下开发的语言变为Java,无论是外进程还是内进程。

2.运行内进程的宏

录制一个宏是指产生相应的脚本语言来纪录一串有次序的动作,如创建、修改对象。

当我们结束录制时,我们可以保存、修改、回放,这些被称为宏。

回放一个宏之所以为一个“内进程”是因为脚本被和CATIA同一个进程的解释器所执行。

宏可以存储为外部的文件或存储在自己本身所在的文件上。

按照惯例,录制一个宏有利于我们了解怎样去编制程序。

2.1运行一个宏

1.你可以象下面方式运行,这种方式时宏在CATIA一运行起时运行:

2.也可以以混合的方式运行CATIA,这种运行方式执行时,这个命令会打开CATIA,运行宏,然后退出CATIA.

你可以在宏菜单下以交互的方式运行一个宏,也可以在工具菜单上点击相应的按钮。

2.2在工具栏上添加宏

1.点击Tools->Customize,打开对话框,点击Command页,选择Macros选项。

2.拖动你想要添加的宏的名称到工具栏上。

3.选择另外一个代替默认的图标,点击这个图标会显示这个宏的属性。

3.运行外进程程序(仅限于NT平台)

脚本运行在其他程序的其他进程上,如:

1.VisualBasic。

2.VBA(Excel/Word)。

3.使用VB脚本或JAVA脚本的WSH(WindowsScriptHost)。

4.使用VB脚本或JAVA脚本的HTML。

CATIA可以被其他任何的COM程序脚本化。

3.1从VBA或VB上运行外进程

VisualBasic和VBA提供了非常有用的工具,使用这些工具,我们可以声明任何由DassaultSystemes提供的库文件(*。

tlb)。

库文件包含了所有对象的声明和所有外部对象的方法和属性。

1.因为有类型定义,所以有类型检查和“早期绑定”

2.完整的帮助系统将提供对象的所有属性和方法,帮助系统也会提供对象方法参数的类型。

3.对象浏览器将纪录所有的外部对象

这里有使用从VisualBasic或VBA引导CATIA的说明:

1.如果CATIA已经运行

2.如果CATIA没有运行:

如果INFITF.tbl库文件被引用的话,我们可以用INFITF.Application来声明CATIA.

示例:

这个示例是演示如何引导CATIA和从Excel里创建一个螺钉的零件。

在这个示例里我们将学习:

-在Excel里的VisualBasicofApplication(VBA)开发环境。

-怎么在Excel里创建一个按钮。

-怎么去在这个按钮上连接一个宏。

-这个宏将引导CATIA和创建一个螺钉。

第二课CATIA的脚本语言

内容列表:

1.介绍

2.基本特征的脚本语言

2.1基本特征的脚本语言介绍

3.草绘脚本

3.1草绘脚本介绍

4.零件特征设计脚本语言

4.1零件特征设计脚本语言介绍

5.外形特征设计脚本语言

5.1外形特征设计脚本语言介绍

6.装配特征设计脚本语言

6.1装配特征设计脚本语言介绍

7.草图特征脚本语言

7.1草图特征脚本语言介绍

8.测量

8.1注册和类型库

9.混合

10.常规的注释

-CATIA的注册和类型库

-关于数字、文字和单位

-关于安全数组变量

-关于set的使用

-关于call的使用

-如何将一个宏转换成VisualBasic程序

-如何将一个VisualBasic转换成宏

-宏

1.介绍

外部对象的结构

通过CATIA外部模式可以创建文档、零件、金属框架、产品、工程图和其他很多的包含在CATIA工作区的对象,这种外部对象提供了可以属性或方法去读取或修改现有的对象。

所有的对象可以被交互的看到,可以被宏或外进程的程序所脚本化。

内容列表:

-关于对象、属性、方法。

-关于继承和聚合

-关于数字、文字和单位

-关于安全数组变量

关于对象,对象数组,属性及方法。

脚本语言依赖于对象,例如VisualBasic。

在VisualBasic里,CATIA本身、文件、窗口、视图、零件、草图……甚至直线、曲线都有相对应的对象。

1.对象:

实体。

例如:

文档、直线、拉伸实体……

2.属性:

对应对象的特征。

例如:

DocName=CATIA.ActiveDocument.FullName

3.方法:

对象的一个动作。

例如:

CATIA.ActiveDocument.SaveAs“MyNewName”

4.对象数组:

对象的列表。

(提示:

CATIA里,以s结尾的才是数组)

CATIA对象数组索引从1开始,并不是0。

例如:

Fori=1toCATIA.Documents.Count

MsgboxCATIA.Documents.Item(i).Name

Next

我们还可以通过一个对象的名字来访问对象数组里的单个对象,例如:

MsgboxCATIA.Documents.Item("Product1.CATProduct").Name

我们通过使用Add函数来添加对象到对象数组里去,例如:

setmyPartDoc=CATIA.Documents.add("Part")(备注:

“Part”是个关键词)

关于继承与聚合

对象之间存在两种关系,分别是:

1.继承:

通过继承,你可以聚集很多通用的属性或方法与一个对象上以适应不同的要求。

2.聚合:

是指一个对象包含另一个对象的能力。

下面的视图中,Application对象聚合了documents数组。

PartDocument对象是个特殊的对象,它是从Document对象继承而来,专门为了零件存在的。

2.基本特征的脚本语言

基本特征用来显示或管理所有的CATIA文件。

内容列表:

2.1基本特征的脚本语言介绍。

-文档与窗口

-基础对象结构

-程序与文档

-创建和打开文档

-关闭和保存文档

-窗口

-视图及视点

-摄像机

2.2编程任务:

修改一个现有文件的视点

2.1基本特征的脚本语言介绍。

文档与窗口

CATIAApplication对象聚合了两个主要的数组对象:

Documents、Windows.

Documents数组对象,Documents聚合了任何的文档对象,然后通过*.加以标识。

Document对象是抽象的对象,只有他的起始类才可以被创建,为PartDocument、ProductDocument和DrawingDocument.

Windows数组聚集了很多的Window,而Window本身聚集了一个包含了全部的视图类的视图数组,在Windows对象和Documents对象之间的二元连接的关系表示了,Documents类是Windows类的父类。

基本对象结构

这些对象都为CATIA的Product对象所共享,根对象为Application对象,他聚合或包含了Documents和Windows对象。

程序和文档

Application对象是所有的CATIA宏的根对象,这和CATIA设计的窗口是相对应的,在内进程的宏里,CATIA程序一般被命名为CATIA。

Documents数组提供了Add方法来添加一个新的文档及Open方法来打开一个现有的文档,一个文档可以是个PartDocument,ProductDocument或DrawingDocument.每个Document对象自己提供了函数来保存或另存自己。

创建一个新文档

DimDocasDocument

SetDoc=CATIA.Documents.Add(“Part”)

----创建一个PartDocument,同理,替换“Part”为“Product”或“Drawing”,将创建一个ProductDocument和DrawingDocument.

打开一个现有文档

DimDocasDocument

SetDoc=CATIA.Documents.Open(“E:

\Parts\DocumentToOpen.CATPart”)

----无论是Open还是Add函数都把Document对象添加到Documents数组里。

关闭和保存文档

关闭文档:

关闭一个活动的文档:

CATIA.ActiveDocument.Close()

关闭一个被命名为Doc变量的文档:

Doc.Close()

关闭一个被命名为Name的文档:

CATIA.Documents.Item(“TheName”).Close()

----Close函数将把Document对象从Documents数组中删除。

保存文档:

保存一个活动的文档:

CATIA.ActiveDocument.Save()

保存一个被命名为Doc变量的文档:

Doc.Save()

保存一个被命名为Name的文档:

CATIA.Documents.Item(“TheName”).Save()

视图:

窗口数组聚集了窗口对象且使窗口系统和如何使文档可以被可视化的模式来显示之间建立了可靠的连接,这种显示主要以2D或3D的方式来显示,或者表现在特征树上。

视图数组使得窗口可以以一个适当的方式来现实程序数据。

SpecsAndGeomWindow对象聚集了2D或3D视图和特征树的特征。

视图与视点

视图是用来显示文档的,前提是给出了视点是显示选项。

依赖于文档的属性,接下来的视图都可以在一个窗口里找到。

 

 

摄像机

摄像机是视点的一种稳定的形式,你可以使用视图对象的NewCamera方法从当前视点来创建一个新的摄像机

3.草绘脚本

草图包含了在一个支撑平面的2D特征(点、线、圆等),草图被用来创建3D特征,如长方体、轴、表面等。

草图对象也被Drawing的2D视图所使用。

内容列表:

--Bodies和HybridBodies数组

--草图的两种不同的包含器

--打开和关闭

--创建和编辑几何体

--创建约束的简易方法

--录制一个创建草图的宏

3.1草绘脚本介绍

Bodies和HybridBodies数组

在PartDocuments里有两个数组

--Bodies数组:

聚集了所有的实体特征。

--HybridBodies数组:

聚集了所有的面、线、3D点(交互的称为OpenBodies)

草图的两种不同的包含器

草图在Bodies数组里和HybridBodis数组里都可以创建,

 

打开和关闭一个草图

为了在一个草图里创建一个2D元素,我们必须要打开草图和使factory2d被使用

setmyFactory2D=mySketch.OpenEdition

每一个草图对象都有自己的Factory2D用来在草图上创建所有可用的2D对象。

当你结束了创建几何对象,必须关闭草图。

mySketch.CloseEdition

创建和修改几何对象

通常来说,对于每个元素类型,我们只有一个简单的构造器与之对应。

举例来说,如果我们想创建一个圆,我们应该使用函数:

CreateClosedCircle(iCenterXAsDouble,iCenterYAsDouble,iRadiusAsDouble)AsCircle2D

如果你想把圆心固定在一个现有的点上,你使用”CenterPoint”的属性可以修改它。

创建约束的简易方法

在草图类里有一个名叫Constraints的数组,通过这个数组,我们可以在2D元素之间添加约束。

录制一个创建草图的宏

4.零件特征设计脚本语言

零件特征重组了所有的实体特征。

内容列表:

--取得或创建一个零件文件。

--取得或创建一个零件体

--ShapeFactory(外形)

--布尔运算

--引用

4.

1零件特征设计脚本语言介绍

 

零件特征设计脚本就是说在一个零件文档上创建一个图形。

 

取得或创建一个零件文件

使用ActiveDocument或Documents.Item(“Part1.CATPart”)或Documents.Add(“Part”)

取得或创建一个零件体

当我们创建一个零件文件时,系统会自动创建一个默认的零件体。

我们可以获得并使用它:

SetMyBody=MyDocument.Part.Bodies.Item("PartBody")

或者我们也可以创建一个新的零件体并使用:

SetMyNewBody=MyDocument.Part.Bodies.Add()

--ShapeFactory

ShapeFactory对象位于Part对象里,通过使用它可以在一个“活动”的零件里创建长方体、凹槽、轴、孔等,你也可以使用InWorkObject对象的属性来重新定义“活动”的零件。

布尔运算

如果你需要和另个零件体进行布尔运算的话,可以先使用下面的函数来添加一个新的零件体

MyDocument.Part.Bodies.Add(),然后再使用AddNewAdd,AddNewIntersect,AddNewTrim或AddNewRemove方法来进行运算。

引用

有些函数要使用对象的引用来代替它们本身,引用被用来把一个对象绑定到另一个对象上。

例如,你可以:

DimmyRefasReference

SetmyRef=Part.CreateReferenceFromGeometry(myGeometry)

这样就在MyGeometry对象上创建了一个引用

 

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

(2010-07-0221:

30:

29)

转载原文

标签:

转载

学习了,期待更多一些关于CATIA二次开发的文章,呵呵。

原文地址:

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

星星

  CATIA作为CAD/CAE/CAM/PDM一体化的软件,广泛用于航空航天、汽车、船舶及电子工业,尤其在航空航天业,有八成以上厂商使用CATIA的市场[11]。

然而由于使用习惯和使用的侧重点不用,功能再强大的软件也不可能同时满足各类用户的需求,因此,对CATIA进行二次开发已经受到国内外许多科研院所及高校的重视[12]。

CATIA二次开发的过程和意义可用图3-1来表示。

通过第三方开发工具对CATIA进行二次开发,可以开发出针对某一行业,甚至针对某一用户的特定模块,以方便该行业用户使用,是对CATIA功能的深入挖掘和拓展。

 

第三方开发工具

VB、VC++...

通用CATIA软件

新的功能模块

 

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

CAA(ComponentApplicationArchitecture)是CATIA的一套C++函数库,该函数库在CATIA运行时加载,用户可通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信。

这种方法可进行最有效率的程序开发,但入门困难,在国内这方面的技术资料比较少见。

Automation技术是建立在COM基础之上,其核心技术是允许一个应用程序操作另一个应用程序。

Automation技术并不是直接获取及处理数据,而是间接的通过暴露的对象和属性,利用对象的方法和属性来获取、设置及处理数据。

这种方法功能限制比较大,但入门比较容易。

基于上述两种开发方法的特点和本次毕业设计任务难度,本文选择使用Automation方法对CATIA进行二次开发。

由于CATIA宏录制生成的VBScript代码稍做修改就能在VB环境下运行,为编程提供了很大的方便,所以本文选用的开发环境是VisualBasic6.0。

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

在CATIAAutomation中所有数据都被封装成对象的形式,并形成树形结构,如图3-2,这样就可以通过根对象对所有的其他对象进行访问。

图3-2中,Application对象是根对象,通过这个对象的Documents,Windows和SystemService等属性就可以访问CATIA所有的对象。

 

本文研究中进行的CATIA二次开发主要涉及到CATIA的基本操作和零件对象下的各种属性、方法的操纵。

CATIA的基本操作主要是通过几个API(ApplicationProgrammingInterface)对CATIA进行文件操作,视图操作等。

零件操作主要是进行CATIA实体建模,如草绘、约束、实体等操作。

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

DimCATIAAsObject 

 

OnErrorResumeNext    

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

SetCATIA=GetObject(,"CATIA.Application")  

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

IfErr.Number<>0Then

 SetCATIA=CreateObject("CATIA.Application")

 CATIA.Visible=True

EndIf

OnErrorGoTo0

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

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

Document对象

 Add()方法

获取Application对象

获取Documents对象

获取Part对象

获取构造类

ShapFactory

建模

获取OriginElements对象

获取实体集合Bodies

添加Body对象

 

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

Part

Bodies

ShapeFactory

OriginElements

Body

Sketches

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1