本节就以绘制翼肋为例,简要介绍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 所示。