①打开Visual Basic。
②选择“标准EXE”,然后点击“打开”。
③在菜单栏点击“工程”->“引用”。
④选中所有以CATIA开头的类库声明,然后点击“确定”退出。
⑤绘制用户窗体如下,然后双击“创建”按钮,进入并编辑按钮的点击函数。
⑥输入按钮的点击函数如下:
Private Sub Command1_Click()
CreateCylinder Val(Text1.Text), Val(Text2.Text) ‘调用CreateCylinder主函数,通过Val函数强制转换为数值型数据,请注意Text1和Text2分别为两个文本框控件的名称
End Sub
⑦编写主函数CreateCylinder。
'***************************************************
'Purpose: 创建圆柱体的主程序
'
'Inputs: iCount: 圆柱体的数量
' iDis: 圆柱体圆心之间的距离
'***************************************************
Sub CreateCylinder(iCount As Integer, iDis As Integer)
Dim CATIA As Object '定义CATIA物体变量
On Error Resume Next '在发生错误时,让程序继续执行下一句代码
Set CATIA = GetObject(, "CATIA.Application") '打开运行中的CATIA程序
If Err.Number <> 0 Then '如果发生异常
Set CATIA = CreateObject("CATIA.Application") '则系统启动CATIA程序
CATIA.Visible = True '设置CATIA进程可见
End If
On Error GoTo 0 '在发生异常时,返回异常代码为0
Set documents1 = CATIA.Documents '定义CATIA的文档集合
Set partDocument1 = documents1.Add("Part") '向文档集合添加“Part”类型的文档对象
Set part1 = partDocument1.Part '定义Part文档对象
Set hybridBodies1 = part1.HybridBodies '定义混合图形集合
Set hybridBody1 = hybridBodies1.Item("几何图形集.1") '定义几何图形集对象
Set sketches1 = hybridBody1.HybridSketches '定义草图集合
Set originElements1 = part1.OriginElements '定义初始元素集合
Set reference1 = originElements1.PlaneXY '定义XY平面对象
Set sketch1 = sketches1.Add(reference1) '定义基于XY平面的草图对象
Dim arrayOfVariantOfDouble1(8) '定义数组来表示轴系的坐标,0-2为原点,3-5为轴1终点,6-8为轴2终点
arrayOfVariantOfDouble1(0) = 0
arrayOfVariantOfDouble1(1) = 0
arrayOfVariantOfDouble1(2) = 0
arrayOfVariantOfDouble1(3) = 1
arrayOfVariantOfDouble1(4) = 0
arrayOfVariantOfDouble1(5) = 0
arrayOfVariantOfDouble1(6) = 0
arrayOfVariantOfDouble1(7) = 1
arrayOfVariantOfDouble1(8) = 0
sketch1.SetAbsoluteAxisData arrayOfVariantOfDouble1 '定义草图的轴
part1.InWorkObject = sketch1 '定义工作对象为草图
Set factory2D1 = sketch1.OpenEdition() '打开草图编辑并定义草图2D对象
Set geometricElements1 = sketch1.GeometricElements '定义草图的几何元素
Set axis2D1 = geometricElements1.Item("绝对轴") '定义草图2D绝对轴
Set line2D1 = axis2D1.GetItem("横向") '定义草图2D横轴
line2D1.ReportName = 1 '定义横轴在系统内部参数
Set line2D2 = axis2D1.GetItem("纵向") '定义草图2D纵轴
line2D2.ReportName = 2 '定义纵轴在系统内部参数
X = 0 '定义变量x初始值
For I = 1 To iCount '开始iCount次For循环
Set circle2D1 = factory2D1.CreateClosedCircle(X, 0, 50) '创建一个以(x,0)为中心,半径为50mm的圆
X = X + iDis '设置间距为iDis
Next '进入下一次循环
sketch1.CloseEdition '关闭草图编辑
part1.InWorkObject = hybridBody1 '定义工作对象为几何图形集
part1.Update '更新Part文档对象
Set bodies1 = part1.Bodies '定义几何体集合
Set body1 = bodies1.Item("零件几何体") '定义零件几何体对象
part1.InWorkObject = body1 '定义工作对象为零件几何体
Set shapeFactory1 = part1.ShapeFactory '定义图形命令集合
Set pad1 = shapeFactory1.AddNewPad(sketch1, 20) '创建以草图为截面、拉伸20mm的凸台
part1.Update '更新Part文档对象
End Sub
⑧按F5进行编译,测试OK后,点击菜单栏“文件”->“生成工程1.exe”,导出程序完成。