Process Autocad by python
一、处理AutoCad模块 -pyautocad
1.安装
pip install pyautocad
注:1.该操作会自动安装 comtypes模块,如果其他方式安装,请自行安装comtypes模块
2.如要使用tables 命令,要另外安装xlrd 和 tablib
2.使用准备
pyautocad 通过调用autocad的com接口,具体可以参考AutoCAD ActiveX documentation。
acad_aag.chm- ActiveX and VBA Developer’s Guideacadauto.chm- ActiveX and VBA Reference
二、连接AutoCad
使用pyautocad连接cad 会自动打开电脑上安装的cad软件,所以必须安装autocad,任意版本均可。
#导入模块
from pyautocad import Autocad, APoint
#创建cad实例
acad = Autocad(create_if_not_exists=True)
#在cad控制面板中输出
acad.prompt("Hello, Autocad from Python\n")
#输出文件的名字
print(acad.doc.Name)
python会自动连接上cad,只要cad是开着的,就创建了一个<pyautocad.api.Autocad> 对象。这个对象连接最近打开的cad文件。
create_if_not_exists=True:如果此时还没有打开cad,将会创建一个新的dwg文件,并自动开启cad软件
使用ActiveX接口简单操作cad,具体参考原文文档:
To work with AutoCAD documents and objects we can use ActiveX interface,
Autocad(from pyautocad) contains some methods to simplify common Automation tasks, such as object iteration and searching, getting objects from user’s selection, printing messages.There are shortcuts for current
ActiveDocument-Autocad.docandActiveDocument.ModelSpace-Autocad.model
二、pyautocad使用方式
调用方式主要有如下几种:
1.Autocad.app :对应Autocad Active 接口中的 Application
method:
- Eval
- GetAcadState
- GetInterfaceObject
- ListARX
- LoadARX
- LoadDVB
- Quit
- RunMacro
- StatusID
- UnloadARX
- UnloadDVB
- Update
- ZoomAll
- ZoomCenter
- ZoomExtents
- ZoomPickWindow
- ZoomPrevious
- ZoomScaled
- ZoomWindow
2.Autocad.doc :对应Autocad Active 接口中的 Document(ActiveDocument)
method:
- Activate
- AuditInfo
- Close
- CopyObjects
- EndUndoMark
- Export
- GetVariable
- HandleToObject
- Import
- LoadShapeFile
- ObjectIDToObject
- Open
- PurgeAll
- Regen
- Save
- SaveAs
- SendCommand
- SetVariable
- StartUndoMark
- WBlock
2.Autocad.model :对应Autocad Active 接口中的 Document.ModelSpace(ActiveDocument.ModelSpace)
method:
- Add3DFace
- Add3DMesh
- Add3DPoly
- AddArc
- AddAttribute
- AddBox
- AddCircle
- AddCone
- AddCustomObject
- AddCylinder
- AddDim3PointAngular
- AddDimAligned
- AddDimAngular
- AddDimArc
- AddDimDiametric
- AddDimOrdinate
- AddDimRadial
- AddDimRadialLarge
- AddDimRotated
- AddEllipse
- AddEllipticalCone
- AddEllipticalCylinder
- AddExtrudedSolid
- AddExtrudedSolidALongPath
- AddHatch
- AddLeader
- AddLightWeightPolyline
- AddLine
- AddMLeader
- AddMLine
- AddMText
- AddPoint
- AddPolyfaceMesh
- AddPolyline
- AddRaster
- AddRay
- AddRegion
- AddRevolvedSolid
- AddShape
- AddSolid
- AddSphere
- AddSpline
- AddTable
- AddText
- AddTolerance
- AddTorus
- AddTrace
- AddWedge
- AddXLine
- AttachExternalReference
- InsertBlock
- Item
三、结语
pyautocad仅仅封装了一下接口,加入了一些迭代方式和table操作,可以导入导出excel等文本数据,官方文档也比较简陋,只有一两个简单实例,并未接受所有的方法,而这些方法主要是一个接口,所以这些方法所要求的参数并不太清楚,只能自己测试。本文只做简单介绍,更多实例会在以后更新。
Process Autocad by python的更多相关文章
- A daemon process class in python
In everbright task schedule project, we need some daemon process to do certain work, here is a examp ...
- Process Pool实现Python的并行执行
参考:Python3.6.2文档 Source code: Lib/concurrent/futures/thread.py and Lib/concurrent/futures/process.py ...
- python学习笔记——multiprocessing 多进程模块Process
系统自带的fork模块创建的多进程是基于Linux或Unix平台的,而window平台并不支持: python中的multiprocess为跨平台版本的多进程模块,支持子进程.通信和共享数据.执行不同 ...
- python操作cad
from pyautocad import Autocad # 自動連接上cad,只要cad是開着的,就創建了一個<pyautocad.api.Autocad> 對象.這個對象連接最近打開 ...
- Python之路第一课Day9--随堂笔记之二(进程、线程、协程篇)
本节内容 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queu ...
- python高级之多进程
python高级之多进程 本节内容 多进程概念 Process类 进程间通讯 进程同步 进程池 1.多进程概念 multiprocessing is a package that supports s ...
- Python之路,Day9, 进程、线程、协程篇
本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者 ...
- python之路-Day10
操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 ...
- python学习笔记-多进程
multiprocessing from multiprocessing import Process import time def f(name): time.sleep(2) print('he ...
随机推荐
- 【Luogu】P1251餐巾计划(上下界费用流)
题目链接 学了一下上下界费用流,似乎很nb.但是我说得不好,所以这里给出博客链接. 某dalao的博客 然后这道题的解法就是先用上下界费用流的建图方式连早上和晚上之间的那条边,保证当天一定会有r条或以 ...
- CentOS7 Failed to start iptables.解决方法
Shit, CentOS怎么这么多bug.... 公司机房周日突然掉电,之前的Openstack环境就不能用了. 重新Run了一遍安装脚本,发现这个错误: iptables 咋又起不来了呢..... ...
- hdu 4305 生成树计数问题
Lightning Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 【CF725D】Contest Balloons(贪心,堆)
题意:acm队伍可以得气球,相同气球数是一个排名.每个队伍有一个气球数上限,如果该队伍的气球数大于上限 该队伍被淘汰.给了你队伍的气球数,你的气球可以给别人,问你最大可能的排名. (2 ≤ n ≤ 3 ...
- es6总结(二)--正则表达式和字符串
- hdu 5461(分类讨论)
Largest Point Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- 安装sass的艰难过程
1.ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby.先导官网下载个ruby 在安装的时候,请勾选Add Ruby executables to your PATH这 ...
- Hash Collision DoS 问题
Hash Collision DoS 问题http://coolshell.cn/articles/6424.html Hash Collision DoS (Hash碰撞的拒绝式服务攻击),有恶意的 ...
- OS | Socket
TCP 创建socket: int socket(int domain, int type, int protocol); AF = Address FamilyPF = Protocol Famil ...
- OpenLDAP给我的启发
首先这篇文章没什么技术性,但亮点是:我会给广大运维同行提一点建议,这个一点仅仅是一点,而不是很多点. 年前计划深度掌握一些诸如:Jenkins.Gitlab.ELK.k8s等的软件,但学着学着总是想学 ...