Delmia帮助文档中给出了对象图,其描述了对象从属关系的整体结构:
Python 中连接 COM 接口,需要用到 win32com 包中的 client.Dispatch()方法,Application 对象的初始化如下所示:
import win32com.client
delmia = win32com.client.Dispatch('delmia.application')
新建一个part文件:
delmia.documents.add('Part') # 会在delmia里会新建一个名为Part1的Part文件。
用集合Documents的item方法获取Documents里某个对象(可通过索引或对象名):
# 以下三种方法等价
doc = delmia.documents.item(1) # 通过索引
doc = delmia.documents.item('Part1') # 通过对象名
doc = delmia.documents['Part1']
调用Documents的count属性和name属性,获取集合Documents里包含的 Document 数量以及对应名字。
print(delmia.documents.count)
print(doc.name)
运行得:
1
Part1.CATPart
绘制圆柱阵列。
首先看PartDocument的对象图:
代码如下,上述关系图可作为代码流程的解释。
import win32com.client
delmia = win32com.client.Dispatch('delmia.application')
document_1 = delmia.documents.add('Part')
part1 = document_1.Part
bodies1 = part1.Bodies
body1 = bodies1.Item("零件几何体")
sketches1 = body1.Sketches
originElements1 = part1.OriginElements
reference1 = originElements1.PlaneXY
sketch1 = sketches1.Add(reference1)
arrayOfVariantOfDouble1 = [0.000000, 0.000000, 0.000000,
1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000]
sketch1.SetAbsoluteAxisData(arrayOfVariantOfDouble1) # 定义草图轴的方向
factory2D1 = sketch1.OpenEdition() # 打开草图编辑器
geometricElements1 = sketch1.GeometricElements # 返回草图图元列表
axis2D1 = geometricElements1.Item("绝对轴")
line2D1 = axis2D1.GetItem("横向")
line2D1.ReportName = 1
line2D2 = axis2D1.GetItem("纵向")
line2D2.ReportName = 2 # 3D建模服务将使用该标识符来检索草图中的元素
for i in range(1, 6):
circle2D1 = factory2D1.CreateClosedCircle((i-1) * 20, 0.000000, 10.000000) # 圆点(0, 0),半径10
# point2D1 = axis2D1.GetItem("Origin")
# circle2D1.CenterPoint = point2D1 # 约束圆心
circle2D1.ReportName = i + 2
sketch1.CloseEdition() # 退出草图编辑
part1.update()
shapeFactory1 = part1.ShapeFactory
pad1 = shapeFactory1.AddNewPad(sketch1, 20.000000) # 创建拉伸,拉伸20mm
part1.Update()
document_1.saveas(r'C:\Users\QC\Desktop\CAAInfWriteDocument.CATPart') # 另存文件
运行 程序 ,在桌面自动生成结果文件,运行结果如图所示:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删