搜档网
当前位置:搜档网 › CATIA二次开发实例

CATIA二次开发实例

CATIA二次开发实例
CATIA二次开发实例

本节就以绘制翼肋为例,简要介绍CATIA 的二次开发过程。

动手编程之前还有几项准备工作:

(1)要求将CATIA 的环境语言设置为英语。

(2)要准备一个翼型数据文件,要求先生成翼型的CAD 模型。

准备工作做好后我们就可以开始了。首先是初始化COM 库。具体方法是在VB 中新建

一个标准工程,在VB 编程环境中选择Project/References 打开对象库功能,选择相关的CATIA 对象库,如图2.6 所示。注意CATIA 提供的对象库大约有90 多个,在选择对象库的时候,尽量选择我们所需的,若在分不清楚的情况下,可以将其全选上来保证对象的可引用性,但这会造成不必要的系统开支。然后删除窗体(Form),加入一个模块(Add Module),开始编程。

程序如下,程序中“’”符号后的文字均为注释。

Sub Main() ’程序开始

On Error Resume Next ’错误控制语句,发生错误执行下一句

Set CATIA = GetObject(, "CATIA.Application") ’用GetObject 连接CATIA

If Err.Number <> 0 Then

Set CATIA = CreateObject("CATIA.Application") ’用CreateObject 启动CATIA

CATIA.Visible = True ’将CATIA 界面设为可见

End If

’以上程序实现在CATIA 处于开启状态时就连接到CATIA,否则执行启动

’CATIA。程序中CATIA 是Application 的根对象,关键词“Set”用于对象操作

'----------------创建一个product 文档加载外形---------Set documents1 = CATIA.Documents ’加入Documents 对象

Set productDocument1 = documents1.Add("Product") ’用Add 函数加入Document 对象,’Add 函数的参数可以是Part、Product、Drawing 三种,分别对应零件文档、产

’品文档和工程图文档

Set product1 = productDocument1.Product ’进入产品文档

Set products1 = product1.Products’通过对象的层层继承关系,最后创建了Product 对象Dim arrayOfVariantOfBSTR1(0) ’定义一个CAD 文档的引用

arrayOfVariantOfBSTR1(0) = "F:\wurenji\li\waixing.CATPart"’用绝对路径打开外形CAD 文

products1.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All"’将waixing.CATPart加入’该Product 对象

Set product2 = products1.AddNewComponent("Part", "") ’在该Product 文档中生成新的

’PartBody

'------------------------------引入参考面与线----------------------------

Set productDocument1 = CATIA.ActiveDocument’确定该Product 文档为当前文档

Set selection1 = productDocument1.Selection’选择该Product 文档

Set documents1 = CATIA.Documents’加入Documents 对象

Set partDocument1 = documents1.Item("waixing.CATPart") ’加入waixing.CATPart 为Part 文档

Set part1 = partDocument1.Part

Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("PartBody")

’定义当前对象的层层继承关系

Set hybridShapes1 = body1.HybridShapes’进入创成式曲面设计工作台

Set hybridShapeRotate1 = hybridShapes1.Item("Rotate.2")’选择曲面造型Rotate.2 selection1.Add hybridShapeRotate1

selection1.Copy’复制曲面造型Rotate.2

Set partDocument2 = documents1.Item("Part1.CATPart")

Set part2 = partDocument2.Part

Set bodies2 = part1.Bodies

Set body2 = bodies2.Item("PartBody")

’重新选择PartBody 对象,选择新建的PartBody 文档为当前文档,定义当前对象的层层继

’承关系

selection2.Add part2

selection2.PasteSpecial "CATPrtResultWithOutLink"’作为结果不关联引用粘贴曲面造型

’Rotate.2

Set productDocument1 = CATIA.ActiveDocument

Set selection1 = productDocument1.Selection

selection1.Clear ’清除选择内容

………………………………

………………………………

………………………………’其它的引用与以上类似,省略介绍

'---------------生成基准平面----------------------

Set reference7 = part1.CreateReferenceFromObject(hybridShapePointOnCurve3)

Set reference8 = part1.CreateReferenceFromObject(hybridShapePointOnCurve4)

Set hybridShapeLinePtPt2 = hybridShapeFactory1.AddNewLinePtPt(reference7, reference8) body1.InsertHybridShape hybridShapeLinePtPt2

part1.InWorkObject = hybridShapeLinePtPt2

part1.Update

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Item("Part1.CATPart")

Set part1 = partDocument1.Part

Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("PartBody")

Set hybridShapes1 = body1.HybridShapes

Set hybridShapeLinePtPt1 = hybridShapes1.Item("Line.1")

Set reference1 = part1.CreateReferenceFromObject(hybridShapeLinePtPt1)

Set hybridShapeFactory1 = part1.HybridShapeFactory

Set hybridShapePointOnCurve1 =

hybridShapeFactory1.AddNewPointOnCurveFromDistance(reference1, P1#, False)’P1 为基准’面位置参数

hybridShapePointOnCurve1.DistanceType = 1

body1.InsertHybridShape hybridShapePointOnCurve1

part1.InWorkObject = hybridShapePointOnCurve1

part1.Update

'-------------------生成交线--缩放图形与pad pocket----Set reference12 = part1.CreateReferenceFromName("")

Set pocket1 = shapeFactory1.AddNewPocketFromRef(reference12, 35#)

Set reference13 = part1.CreateReferenceFromObject(hybridShapeCurvePar2)

pocket1.SetProfileElement reference13

Set reference14 = part1.CreateReferenceFromObject(hybridShapeCurvePar2)

pocket1.SetProfileElement reference14

pocket1.DirectionOrientation = catRegularOrientation

Set limit2 = pocket1.FirstLimit

Set length2 = limit2.Dimension

length2.Value = 25# ’控制弯边长度

part1.UpdateObject pocket1

length2.Value = 20# ’控制下陷的深度

part1.Update

'----------------------------改文件名-------------------

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Item("Part1.CATPart")

Set product1 = partDocument1.GetItem("Part1")

product1.PartNumber = "le6"

Set productDocument1 = CATIA.ActiveDocument

Set product2 = productDocument1.Product

Set products1 = product2.Products

Set product3 = products1.Item("Part1.1")

https://www.sodocs.net/doc/a22417494.html, = "yile"

运行上述程序,便可在CATIA环境里自动绘制出翼肋的CAD模型,并保存为yile. CATP

art 文件,翼肋的CAD 模型如图2.7 所示。

相关主题