基于Python的delmia二次开发系列

文章目录

  • 前言
  • 一、基础概念
    • 1、对象、集合、属性、方法
    • 2、继承、聚合
  • 二、Python连接Delmia
  • 三、简单示例

前言

delmia和catia属同一公司产品,对delmia中对象的操作与对catia中对象的操作类似。


一、基础概念

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.clientdelmia = win32com.client.Dispatch('delmia.application')
document_1 = delmia.documents.add('Part')part1 = document_1.Part
bodies1 = part1.Bodies
body1 = bodies1.Item("零件几何体")
sketches1 = body1.SketchesoriginElements1 = 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 + 2sketch1.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')  # 另存文件

运行程序,在桌面自动生成结果文件,运行结果如图所示:

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

  1. 基于Python的DELMIA二次开发(二):创建产品

    DELMIA二次开发系列 文章目录 前言 一.创建前的准备 二.程序结构 三.运行结果 前言 本例基于CAA V5 VB help文档,用Python语言展示了如何创建产品以及以现有产品为参考创建其新 ...

  2. python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...

    2009 doi :10 1 3969/ j 1 issn 1 1007 2 2012 1 2009 1 04 1 013 基于 Python 的 ABAQUS 二次开发及在板料快速 冲压成形模拟中的 ...

  3. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

  4. autocad python二次开发_基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  5. 基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  6. abaqus生成odb文件_【前沿技术】基于Python的ABAQUS二次开发在飞机蒙皮锤铆中的应用...

    基于Python的ABAQUS 二次开发在飞机 蒙皮锤铆中的应用 在飞机蒙皮铆接技术中,锤铆是用一个小冲击力循环累计施加到铆钉使之变形的过程.根据锤铆铆接工艺和铆枪结构原理,铆钉的塑性变形是由铆枪的活 ...

  7. 基于Python的ArcGIS二次开发实验实习教程

    基于Python的ArcGIS二次开发实验实习教程. ISBN编号: 9787307221772 原价(定价): 39元, 武汉大学出版社 天猫正版链接: https://detail.tmall.c ...

  8. 基于python的abaqus二次开发_基于PYTHON的ABAQUS二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

  9. 基于python 的 ansys 二次开发-----借助pyansys安装包。

    基于python实现ansys的二次开发需要安装pyansys模块.主要通过输入apdl命令流实现对ansys的控制. pip install pyansys pip install pyvista ...

最新文章

  1. 用树莓派从0开始打造属于自己的服务器
  2. es6 数组找最大值_JavaScript 查找数组中最大值与最小值
  3. neo4j 查询同一节点的两个上级_WhatRoute for Mac(互联网流量诊断查询工具)
  4. [react] 你有用过哪些React的UI库?它们的优缺点分别是什么
  5. 解决 wamp网站访问慢的问题
  6. python库--Numpy and pandas
  7. [Spring Boot核心功能]1. SpringApplication 启动引导类(1)
  8. Vc数据库编程基础1
  9. spring事务失效场景三:内部方法调用
  10. 可以使用python开发财务软件吗_给还准备继续做审计的人提个醒!
  11. 机器人 陆梅东_第十八届全国中小学组电脑制作活动上海赛区.DOC
  12. 华为平行视界(应用内分屏)
  13. 河北单招计算机英语,2019年河北高职单招考试十类 和对口电子电工类、计算机类联考 专业基础考试(英语)考试大纲.doc...
  14. 专利申请中的期限及期限的延长
  15. mysql c bold转text_(转)MySQL字段类型
  16. VS+OpenCV 处理图像的颜色(下)用色调、饱和度和亮度表示颜色、肤色检测
  17. 知识图谱可视化应用研究现状文献综述
  18. 【报告分享】2021上半年热搜榜趋势报告-新浪微博(附下载)
  19. 选择合适的java脚本语言
  20. 众多商家都在用的小魔推同城拓客,到底是怎么做的

热门文章

  1. 【UE4笔记】蓝图升降电梯
  2. 如何使用风向偏移简化风速风向传感器安装
  3. 软考高级 真题 2012年下半年 信息系统项目管理师 论文
  4. 基于Python+Django+MYSQL的ERP管理系统的设计与实现
  5. 微信小程序踩坑(一)——开发者工具更新时,显示不能打开要写入的文件
  6. inside gen_server call
  7. C语言——基础指针篇
  8. vmware——vsphere 安装图形界面出现双鼠标问题(vsphere client 5.5)
  9. conda和pip临时和永久换源的方法
  10. 2018年一季度总结