2023年11月30日发(作者:)

CATIA二次开发文件

第一课:CATIAV5自动化及脚本语言结构

内容列表:

CATIAV5自动化及脚本语言介绍

VBVBScriptVBA之间的区别

宏的兼容性、结构及文件

进程中的宏

2.1运行一个宏

2.2在工具栏上添加一个宏

外进程的编程

3.1 使用VBAVB 运行外进程

例子:从Excel里导出螺钉

3.2使用Windows Scripting Host运行外进程

..Windows Scripting Host 下的VBScript

例子:

“”

3.2.2Windows Scripting Host 下的JavaScript

例子:

“”

.3用HTML运行外进程

3.3.1VBScriptHTML里运行外进程

例子:

“”

3.3.2JavaScriptHTML里运行外进程

例子:“”

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

通用在UnixNT平台上

无论是在NT平台还是Unix平台上,脚本语言允许你使用宏以一个非常简单的方式

来对CATIAV5进行编程。

CATIAV5使用了NT平台下的VB脚本和Unix平台下的BASIC脚本中相同的部分,

所以我们在两个平台下可以运行相同的宏。

NT平台下

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

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

UNIX平台下

将来的CATIA的版本里,CATIA将允许同Java共享自己的对象,这将为Unix平台和

NT平台提供完整的兼容性。

CATIAV5 自动化:概述(仅限NT平台)

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

COM:(对象组件模型)COM是微软公司提出的目的在不同程序中共享对象标准。

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

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

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

嵌入的对象可以被其他的程序在编辑区编辑。

Visual Basic ,VBA,VBScript之间的区别

Visual Basic(Visual Basic专业版)VB是个完全的版本。

1 可以编制独立的程序。

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

3 可以被编译。

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

VBA(Visual Basic for Application)VBAVB的一个子集。

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

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

3 利用它的Tools-Reference菜单可以声明使用的对象库。这在完成和对象浏览器之间建立了

一个通道。

VBScript(Visual Basic Script)VBScriptVB的一个子集。

1 更简单的VB解释语言。

2 可以调运CATIA对象。

3 没有数据类型的区别。系统总是动态的调用函数和对象属性。(迟绑定调用对象通过他们的

Idispatch接口)

宏兼容性

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

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

其他服务例如stemObject可以被CreateObject所调用,但这个也只

可以在NT平台下使用。

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

你理解程序。

CATIAV5脚本性能

内进程应用:

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

间,你不可以在一个宏中存储变量。宏起到了连接在Windows NT平台下的VBScript和U

nix

平台下的BasicScript的作用。

外进程应用

外进程以AUTOMATION为基础,一个外进程可以调用CATIA,建立或修改草图,解码、

定制、控制CATIA,与内进程不同的是,这个时候CATIA是可响应的。外进程对CATIA

象作出的每一步修改我们都可以视修改情况决定是否保留来维持两个进程之间的同步,这

种外进程可以通过一下工具来开发:

1. Visual Basic

2. Windows Script Host(VBScript,JavaScript)

3. Windows Explorer HTML(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. Visual Basic。

2. VBA(Excel/Word)。

3. 使用VB脚本或JAVA脚本的WSH(Windows Script Host)。

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

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

3.1 从VBA或VB上运行外进程

Visual Basic和VBA提供了非常有用的工具,使用这些工具,我们可以声明任何由Dassault

Systemes提供的库文件(*。tlb)。库文件包含了所有对象的声明和所有外部对象的方法

和属性。

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

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

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

1. 如果CATIA已经运行

2. 如果CATIA没有运行:

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

示例:

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

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

-在Excel里的Visual Basic of Application(VBA)开发环境。

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

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

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

第二课CATIA的脚本语言

内容列表:

1 介绍

2 基本特征的脚本语言

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

3. 草绘脚本

3.1草绘脚本介绍

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

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

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

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

-关于继承和聚合

-关于数字、文字和单位

-关于安全数组变量

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

脚本语言依赖于对象,例如Visual Basic。在Visual Basic里,CATIA本身、文件、

窗口、视图、零件、草图……甚至直线、曲线都有相对应的对象。

1.对象:实体。例如:文档、直线、拉伸实体……

2.属性:对应对象的特征。例如:DocName= me

3.方法:对象的一个动作。例如: “MyNewName”

4.对象数组:对象的列表。(提示:CATIA里,以s结尾的才是数组)

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

For i=1 to

Msgbox (i).Name

Next

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

Msgbox ("duct").Name

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

set myPartDoc= ("Part") (备注:“Part”是个关键词)

关于继承与聚合

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

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

同的要求。

2. 聚合:是指一个对象包含另一个对象的能力。

-窗口

-视图及视点

-摄像机

2.2编程任务:修改一个现有文件的视点

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

文档与窗口

CATIA Application对象聚合了两个主要的数组对象:Documents、Windows.

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

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

和DrawingDocument.

关闭和保存文档

关闭文档:

关闭一个活动的文档:

()

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

关闭一个被命名为Name的文档:(“TheName”).Close()

----

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

保存文档:

保存一个活动的文档()

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

保存一个被命名为Name的文档:(“The Name”).Save()

SpecsAndGeomWindow对象聚集了2D3D视图和特征树的特征。

视图与视点

视图是用来显示文档的,前提是给

出了视点是显示选项。

依赖于文档的属性,接下来的视图

都可以在一个窗口里找到。

3.1草绘脚本介绍

Bodies和HybridBodies数组

在PartDocuments里有两个数组

--Bodies数组:聚集了所有的实

体特征。

--HybridBodies数组:聚集了所

有的面、线、3D点(交互的称为

OpenBodies)

草图的两种不同的包含器

草图在Bodies数组里和

HybridBodis数组里都可以创建,

Circle2D

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

创建约束的简易方法

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

束。

录制一个创建草图的宏

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

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

内容列表:

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

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

--ShapeFactory(外形)

--布尔运算

--引用

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

零件特征

设计脚本

就是说在

一个零件

文档上创

建一个图

Set MyBody = ("PartBody")

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

Set MyNewBody = ()

--ShapeFactory

ShapeFactory对象位于Part对象里,通过使用它可以在一个“活动”的零件里创建长方体、

凹槽、轴、孔等,你也可以使用InWorkObject对象的属性来重新定义“活动”的零件。

布尔运算

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

(),然后再使用AddNewAdd, AddNewIntersect,

AddNewTrim AddNewRemove方法来进行运算。

引用

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

上。

例如,你可以:

Dim myRef as Reference

Set myRef = Part.CreateReferenceFromGeometry(myGeometry)

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