CATIA VBA 教学大纲
关于各个模块中代码的讲解,根据实际意义挑选讲解,catia二次开发中的代码太多啦
1 什么是VBA ,为啥要用vba?学习vba要有什么基础?
2 演示几个自己编写的小程序以吸引学者兴趣!
二次开发是对软件的用户化和专业化的有效手段,使软件更好的为客户服务
Catia提供多种二次开发的接口 V5 AUTOMATION 和caa
1 vb程序设计基础(数据类型 变量 常亮 常用的内部函数)
2 顺序语句 选择语句 循环语句
3 数组介绍
4 键盘与鼠标事件过程
5 其他简单基础内容介绍(对catia vba的学习有辅助作用的)
编程访问catia多种不同的方法
Catia只是一个ole自动化对象服务器
进程内的脚本与进程外的脚本
VBA本身有一个完整的ide 集成开发环境
Automation API 是独立于语言的编程接口
宏的保存位置,路径 文档 和vba项目三种
Vbscript 是有一个变量类型 variant
常用的循环语法 for do—while
8 子函数的概念
9 宏编辑器 的简介
10 插入对象分辨率
11 对象浏览器 中 表明了 出自于哪一个reference
12 不推荐大家再catia宏工具中编写自己的代码
13 脚本运行方式(这一部分自己还得研究一下 不是重点)
14 自己创建一个vb程序,添加引用,就这一个就好 参考基础 书
15 factory显示声明 否则报错,什么是显示声明 隐式声明
Catia与vb关联
要对catia进行操纵 首先要链接到他的com端口 这个时候不一定非要用catia,可以使用任何其他名来作为object变量名
1 宏的录制
2 宏的修改编辑以及运行
3 宏库介绍, catvba catscript catvbs 介绍,以不同的方式编写脚本
4 延伸内容,在vb6.0 visual studio 以及python中怎么与catia 互联并进行catia二次开发
5 automation 字典的介绍
6 简单实例演示及学习
1 工具条介绍
2 设置介绍
3 菜单介绍
1 catia文档结构
2 对catia编程的基本流程
3 application对象介绍
4 documents和document 对象
5 Cameras 和camera对象
6 Windows和window对象
7 Viewers和viewer对象
8 文件及视图操作的实例演示及学习
9文件及视图的操作实例
1操作零件文档的步骤演示
2 part文件
3 originelements
4 sketches 对象
5 factory2d工厂对象
6 contraints 约束集合
7 shapefactory 工厂
8完整实例代码
9 附加一个练习实例
以上内容中设计很多代码,可以挑出重要的进行讲解
1创建混合元素的一般步骤
2 hybridbodies集合
3 reference
4 hybridshapefactory
5 曲面模块中的实例讲解
第七章 装配模块二次开发介绍
1 操作product文件的方法
2 组件管理
3 组件的位置信息
4 约束管理
5 装配实例演示以及学习
第八章工程制图模块二次开发介绍
1操作工程图文档的步骤
2 页面管理
3view管理
4几何图形的创建与编辑
5 text的编辑
6 关于标题栏和明细栏
1 人机交互的方式
2 selection 对象
3选择集管理
4 编辑菜单命令
5 交互命令介绍
6 人机交互实例
1 fea模块
2 材料模块
3 spa 模块
4 fta模块 等
1 catia与execel word 等互联
2 catia如何引用其他库 以及实例
3 类模块的定义
4 标准模块的应用
5 常见错误bug的解决方法
5 其他扩展内容
CATIA VBA 教学大纲
关于各个模块中代码的讲解,根据实际意义挑选讲解,catia二次开发中的代码太多啦
第一讲 认识VBA
1 什么是VBA ,为啥要用vba?学习vba要有什么基础?
2 演示几个自己编写的小程序以吸引学者兴趣!
第二讲 VBA与VB语言的关系,VB语言的简单学习
1 vb程序设计基础(数据类型 变量 常亮 常用的内部函数)
2 顺序语句 选择语句 循环语句
3 数组介绍
4 键盘与鼠标事件过程
5 其他简单基础内容介绍(对catia vba的学习有辅助作用的)
Right
If Right(CATIA.ActiveDocument.Name, 8) = ".CATPart" Then
Set rootProd = CATIA.ActiveDocument.Product
If Right(CATIA.ActiveDocument.Name, 8) = ".CATPart" Then
Set doc = CATIA.ActiveDocument
Else
MsgBox "当前文档不支持此操作", vbInformation, "ERROR"
Exit Sub
End If
第三讲 catia vba 入门
1 宏的录制
Alt+F8快捷键的使用
Ide的意思 ,集成开发环境, integerate development environment
Alt+F11快捷键的使用
宏的修改编辑以及运行
宏库介绍, catvba catscript catvbs 介绍,以不同的方式编写脚本
延伸内容,在vb6.0 visual studio 以及python中怎么与catia 互联并进行catia二次开发
automation 字典的介绍
简单实例演示及学习
1.1宏脚本的两种语法,catvbs与catscript
1.2 宏库,part里 /目录里/ vbaproject ,option里面设置默认的目录,录制的宏可以存放在part文件里,也可以存放在路径或者是project文档中
1.3 录制一个宏(catvbs)
1.4 宏代码的解释
1.5 catmain开头 函数里 套用子函数被其他函数调用
1.6 catia宏是进程内的程序,可以直接调用catia对象
1.7修改宏,常用的循环语法解释 正选曲线的创建
1.8 使用inputbox 输入函数周期
1.9 创建圆柱 阵列的例子,输入阵列数量
1.10 添加宏到catia工具条
1.11 在ide中创建vba项目,创建圆柱 阵列的例子,输入阵列数量
1.12 使用userform定义变量
第四讲 catia automation的介绍
4.1 如何找到automation
4.2 对象的聚合关系! 下级是上级的属性,set给对象赋值
4.3 带箭头的实线表示继承关系,下级对象继承了上级对象所有的属性和方法
Partdocument是document的派生对象
4.4 collection对象 indext count name 英文工作环境和中文的 切换后会发生错误 这个一定要注意
4.5 anyobject可以代表除了collection和reference对象之外的任何对象
4.6 property 属性解释 hybridshapepointcoord
Sub CATMain()
Set jkjk = CATIA.ActiveDocument
Set Part = jkjk.Part
Set hybo = Part.HybridBodies.Item(1)
Set point1 = hybo.HybridShapes.Item(1)
Dim length1 As CATIALength’这个地方应该定义成length
Set length1 = point1.X
MsgBox length1.Value
aa = length1.ValueAsString 'x点的坐标值转换成字符串
End Sub
4.7 方法介绍
方法有返回值 (function)和没有返回值的举例说明
有返回值 比如果 workbench get
4.8 参考的解释
Createreferencefrombrepname “遍历孔的时候能用到
有的并不需要reference
4.9 automation查询技巧
4.10 示例代码
4.11 搜索功能
1 工具条介绍
2 设置介绍
3 菜单介绍
1 catia文档结构
sub CATMain()
msgbox CATIA.caption
end sub
2 对catia编程的基本流程
3 application对象介绍
4 documents和document 对象
5 Cameras 和camera对象
6 Windows和window对象
判断是否打开了一个文件的方法
If CATIA.Windows.Count < 1 Then
infoBox "请打开一个产品文档!"
Exit Sub
ElseIf Right(CATIA.ActiveDocument.Name, 11) <> ".CATProduct" Then
infoBox "当前文档不是产品文档!"
Exit Sub
End If
7 Viewers和viewer对象
8 文件及视图操作的实例演示及学习
4 application对象的常见属性
System configuration/system service/excutescript
Catia.getworkbenchid 的方法把每个模块的代码都统计一下,枚举变量
5document对象 获取
有些文档 不具有窗口 或者显示属 性,是非正常关闭后的残留文档,可以通过命名规则来排除
Catia.documents.add(part) 类似part的创建的文件类型 可以在新建文件窗口 查看
在当前装配体中新增加零件产品 addnewcomponentfromfiles
6document属性和方法
Fullname name selection close
7 save as 可以保存其他格式的文件,但是 并不能改变属性
9 不进行提示直接覆盖已经有的文件的解决方法
10 exportdata的使用方法
11 selection的介绍
Selection对象是document的一个属性
12 用户交互选择,单选和多选两种方式
Selectelement2 sfilter定义数组的时候不能指定为字符类型
Seletion.item.leafproduct 应用
Selectionelement3的应用
Ifilter type 的枚举类型 可以automation 搜一下 catselectionfilter(特征的拓扑形式)
13 复制粘贴操作
14 selection在不同的零件 或者装配体之间进行操作的时候 应该怎么定义
Product.selection 还是 partdoc.selection 重点介绍!
15 删除 先把关联的关系删除,再删除特征
16 图形显示属性
Sub CATMain()
Set jkjk = CATIA.ActiveDocument
Set opart = jkjk.Part
Set pa = opart.Parameters
Set obody = opart.Bodies.Item(1)
Set oshape = obody.Shapes.Item(1)
Set oparams = pa.SubList(oshape, True)
For Each param In oparams
If param.IsTrueParameter Then
On Error Resume Next
Set Relation = param.OptionalRelation
Relation.deactive
Set Selection = jkjk.Selection
Selection.Add Relation
Selection.Delete
Selection.Clear
On Error GoTo 0
End If
Next
Selection.Add oshape
oselection.Delete
oselection.Clear
End Sub
17 search 介绍
18 常见的边界或者尖点对象类型,在选择的集合中排除边界和尖点
19 枚举变量是常量数组,枚举变量不属于automation ,在使用vb的时候需要添加引用才可以用
20 catia选项 settingcontroller可以直接修改 option
21 判断catia界面是中英文
Sub CATMain()
A = Left(CATIA.StatusBar, 1)
If A > "~" Then
MsgBox "中文"
Exit Sub
End If
MsgBox "英文"
End Sub
22 视图控制
23 截图到某一个文件夹中
24 显示文档结构树
25 msgbox的使用
IntMsgRtrn = MsgBox("Do you want to Continue ?", vbYesNo, "Continue printing")
If IntMsgRtrn = vbYes Then
直接将msgbox定义成块
Function infoBox(text)
infoBox = MsgBox(text, vbInformation, "斤口")
End Function
Function yesNoBox(text)
yesNoBox = MsgBox(text, vbYesNo + vbQuestion, "헝朞嶝")
End Function
Function yesNoCancelBox(text)
yesNoCancelBox = MsgBox(text, vbYesNoCancel + vbQuestion, "헝朞嶝")
End Function
Function warringBox(text)
warringBox = MsgBox(text, vbExclamation, "쒸멩")
End Function
Function errorBox(text)
errorBox = MsgBox(text, vbCritical, "댄轎")
End Function
判断当前打开的文档是不是产品文档
If Right(CATIA.ActiveDocument.Name, 11) <> ".CATProduct" Then
infoBox "当前文档不是产品文档!"
Exit Sub
End If
另外一种方法 直接用typename
草图设计模块
1 sketch对象的方法和属性
2 创建一个定位草图 ? 有点鸡肋
3 创建草图特征
4 草图约束
1操作零件文档的步骤演示
2 part文件
3 originelements
4 sketches 对象
5 factory2d工厂对象
6 contraints 约束集合
7 shapefactory 工厂
8完整实例代码
9 附加一个练习实例
以上内容中设计很多代码,可以挑出重要的进行讲解
1userproperty 用户自定义属性 应用
2 extract bom比较有局限性
3 obody.inworkobject
4 add shketch on plane之前需要对plane进行更新,让plane已经存在
5 factory对象需要进行显示的声明
曲面设计模快讲解
1创建混合元素的一般步骤
2 hybridbodies集合
3 reference
4 hybridshapefactory
5 曲面模块中的实例讲解
1hybridshapefactory 可以创建基于曲面的实体对象
2 obody.inserthybridshape oplane
3 GetGeometricalFeatureType 获取某个集合元素的拓扑类型
Sub CAMain()
Set jkjk = CATIA.ActiveDocument
Set opart = jkjk.Part
Set pa = opart.Parameters
Set obody = opart.Bodies.Item(1)
'Set oshape = obody.Shapes.Item(1)
Set Selection = jkjk.Selection
Set aa = opart.HybridBodies.Item(1).HybridShapes.Item(1)
Set hsf = opart.HybridShapeFactory
Set ref1 = opart.CreateReferenceFromObject(aa)
mm = hsf.GetGeometricalFeatureType(ref1)
'aa.SetShow 1
'aa.SetShow catVisPropertyNoShowAttr
End Sub
4 GSMvisibility直接控制某个几何元素的可见性
5 几何图形集
6 提高 gsd的练习,创建离散元素的集合
7 创建旋转楼梯
8 catia的交互界面就是catia的绘图区域
9 临时堆栈
10 扫略曲面的创建方法 选一个进行讲解
11旋转楼梯实例
12什么是混合元素
第七章 装配模块二次开发介绍
1 操作product文件的方法
2 组件管理
3 组件的位置信息
4 约束管理
5 装配实例演示以及学习
Sub CATMain()
Set aa = CATIA.ActiveDocument
Set product1 = aa.Product
'massvalue = product1.Analyze.Mass
Set product2 = product1.Products.Item(2)
Dim arr(11)
product2.Position.GetComponents arr
End Sub
1product 对象 ,文档对象 用referenceproduct 来获取,用来获得一个产品的本质对象
Referenceproduct相当于 part文件中的 product属性
2userrefproperties 的应用
3产品文档本身不包含零件信息,他只是对各个组件在产品中相互关系的描述
4 product products的对应关系
5 缺省表达对象是啥意思 不懂
Sub CATMain()
Dim aa As Product
Set aa = CATIA.ActiveDocument.Product
Set p1 = aa.Products.Item(2)
Set ref1 = p1.ReferenceProduct
Set ddd = aa.Products.AddComponent(ref1)
End Sub
Sub CATMain()
Dim aa As Product
Set aa = CATIA.ActiveDocument.Product
Set p1 = aa.Products.Item(2)
Set ref1 = p1.ReferenceProduct
Set bb = CATIA.Documents.Item(CATIA.Documents.Count)
Set GearBox = aa.Products.AddExternalComponent(bb)
End Sub
Sub CATMain()
Dim aa 'As Product
Set aa = CATIA.ActiveDocument.Product
Set p1 = aa.Products.Item(2)
Set B = aa.Products.ReplaceComponent(p1, "H:\Part1.CATPart", True)
End Sub
6组件位置信息 (可以做一个错误的演示)
7 setcomponents与move apply的区别
Sub CATMain()
Dim aa 'As Product
Set aa = CATIA.ActiveDocument.Product
Set p1 = aa.Products.Item(2)
Dim iAxisComponentsArray(11)
'x axis components
iAxisComponentsArray(0) = 1
iAxisComponentsArray(1) = 0
iAxisComponentsArray(2) = 0
'1y axls components
iAxisComponentsArray(3) = 0
iAxisComponentsArray(4) = 0.707
iAxisComponentsArray(5) = 0.707
'1 Z axlsconIponents
iAxisComponentsArray(6) = 0
iAxisComponentsArray(7) = -0.707
iAxisComponentsArray(8) = 0.707
''origin point coordinates
iAxisComponentsArray(9) = 10
iAxisComponentsArray(10) = 20
iAxisComponentsArray(11) = 30
p1.Position.SetComponents iAxisComponentsArray
End Sub
约束
Sub CATMain()
Dim aa 'As Product
Set aa = CATIA.ActiveDocument.Product
Set p1 = aa.Products.Item(2)
Dim oConstraints As Constraints, oConstraint As Constraint
Set oConstraints = aa.Connections("CATIAConstraints")
Set oConstraint = oConstraints.AddBiEltCst(catCstTypeOn, reDPtl, reDPt2)
End Sub
8装配模块将摸一个子部件下的零件全部固定的vbs
Sub jk()
Dim aa As String
Set dd = CATIA.ActiveDocument.Selection.Item(1).LeafProduct
Set cc = CATIA.ActiveDocument.Product.Products.Item(1)
Set nn = CATIA.ActiveDocument.Product.Products.Item(1).ReferenceProduct
Set xx = CATIA.ActiveDocument.Product.Products.Item(1).ReferenceProduct.Parent
Set mm = CATIA.ActiveDocument.Product.Products.Item(1).ReferenceProduct.Parent.Product
End Sub
prod.ApplyWorkMode (DESIGN_MODE)
jk()
Set oProduct = CATIA.ActiveDocument.Product
Set aa = oProduct.Products.Item(3)
Set bb = aa.Parent
Set mm = aa.ReferenceProduct.Parent
End Sub
第八章工程制图模块二次开发介绍
1操作工程图文档的步骤
2 页面管理
3view管理
4几何图形的创建与编辑
5 text的编辑
6 关于标题栏和明细栏
7 sheet的scale属性的写法,特殊性
8视图对象的定位
9 drawingview的generative behavior对象的 document属性使得视图与零件文件相关联
10 osheetview 的definefront view的方法
知识工程与专家系统
1 遍历参数的效率很低 , 所以自定义参数
2 获取某一个元素下面的参数集合
Sub CAMain()
Set jkjk = CATIA.ActiveDocument
Set opart = jkjk.Part
Set pa = opart.Parameters
Set obody = opart.Bodies.Item(1)
'Set oshape = obody.Shapes.Item(1)
Set Selection = jkjk.Selection
Set aa = opart.HybridBodies.Item(1).HybridShapes.Item(2)
Set bb = opart.Parameters.SubList(aa, True)
'Set hsf = opart.HybridShapeFactory
'Set ref1 = opart.CreateReferenceFromObject(aa)
'mm = hsf.GetGeometricalFeatureType(ref1)
'aa.SetShow 1
'aa.SetShow catVisPropertyNoShowAttr
End Sub
3新建参数集合
Sub CATMain()
Set aa = CATIA.ActiveDocument
Set oPart = aa.Part
Set oroot = oPart.Parameters.RootParameterSet
Set newpa = oroot.ParameterSets.CreateSet("新件衬衫 ")
End Sub
4 create releation
Sub CATMain()
Set aa = CATIA.ActiveDocument
Set oPart = aa.Part
Dim width
Set width = oPart.Parameters.CreateReal("width", 1#)
End Sub
1 人机交互的方式
2 selection 对象
3选择集管理
4 编辑菜单命令
5 交互命令介绍
6 人机交互实例
Filtercrrespondence这个方法常和SelectElement2 方法连用,参数和示例请详见过滤器部分。
如下代码在当前选择集中搜索Pad 特征。
Dim FoundObject As AnyObject
Set FoundObject = Selection. FindO均ect( "CA TIAPad" )
2 若文档中不存在符合条:
件的元素,则该命令会产生一个错误,要使用错误控制。
运行交互命令 startcommand
7 indicateorselectelement3d的应用
8 过滤器的解释
1 fea模块
2 材料模块
3 spa 模块
4 fta模块 等
1 catia与execel word 等互联
2 catia如何引用其他库 以及实例
3 类模块的定义
4 标准模块的应用
5 常见错误bug的解决方法
5 其他扩展内容
1 提高中 有读取文本文件和excel文件实例
2 文件对话框
3 打开文件的方法
Sub CATMain()
FilePath = CATIA.FileSelectionBox("Select a text file", "*.txt", CatFileSelectionModeOpen)
CATIA.SystemServices.Print "The selected file is " & FilePath
End Sub
脚本语言中打开文件
Sub jk()
Set ie = CreateObject("internetexplorer.application")
With ie
.Visible = True
.Navigate ("about:blank")
Do Until .readystate = 4
Loop
End With
End Sub
4调用外部脚本的方法 executescript
5 宏脚本加密
6 vba界面简介 option选项的解释
7控件事件
8启动一个窗体 分为从 moudule 启动 以及从窗体直接启动
两种情况 对窗体的模态有影响
9 VBa项目的使用限制 ,定义selection的时候 将as selection注释掉 或者 定义为object 同理 measurable 也是同样的情况
10 http://vb.net 库的版本兼容
11 在automation中,每个对象都包含在某一个接口中,点击framework就可以找到
12 对象浏览器解释
13 自定义函数封装
14 如何使用模板工作
15 声明变量可以减少键入错误 问题查找所用掉的时间
16 结构化编码
17 编写代码的一些规范