许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  基于Python的DELMIA二次开发(一):创建零件

基于Python的DELMIA二次开发(一):创建零件

阅读数 1
点赞 0
article_banner

一、基础概念

1、对象、集合、属性、方法

Delmia帮助文档中给出了对象图,其描述了对象从属关系的整体结构:


  • 在Catia或Delmia中,文档、窗口、视图、零件、直线等都以对象的形式表示;
  • 集合指对象的集合,可以使用索引或对象名称访问对象,但注意集合索引开始于1;
  • 属性是对象的特征;
  • 方法是请求对象执行的操作。

2、继承、聚合

  • 如上图,PartDocuent继承自Document,故其拥有Document对象的所有属性和方法,但同时,又有独属于自己的属性和方法。
  • 聚合表示一个对象包含另一个对象的能力,一系列同类型对象的聚合即为集合。

二、Python连接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')  # 另存文件

运行 程序 ,在桌面自动生成结果文件,运行结果如图所示:
在这里插入图片描述
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空