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.doc
andActiveDocument.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 ...
随机推荐
- 记账APP市场分析
文/欧小慧(简书作者)原文链接:http://www.jianshu.com/p/281fcdce3baa著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 一.市场环境 1.理财记账类用 ...
- 网络编程之IO复用:select or epoll
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接.同时处理 ...
- jQUery中的$(document).ready()方法和window.onload()方法的区别
1.常规的Javascript代码中,通常使用window.onload方法 window.onload = function(){//代码} 2.jquery中,则使用$(document).rea ...
- Dancing Links 模板
struct dl{ // x: line, y: column struct node{ int c, left, right, up, down; }; vector<node> a; ...
- ACM程序设计选修课——1044: (ds:队列)打印队列(queue模拟)
问题 A: (ds:队列)打印队列 时间限制: 1 Sec 内存限制: 128 MB 提交: 25 解决: 4 [提交][状态][讨论版] 题目描述 网络工程实验室只有一台打印机,它承担了非常繁重 ...
- P1473 校门外的树3
时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……如今学校决定在某个时刻在某一段种上一 ...
- CodeForces 333E. Summer Earnings
time limit per test 9 seconds memory limit per test 256 megabytes input standard input output standa ...
- 【MFC】禁用鼠标拖拽标题栏移动窗口
解决方案:重载WM_NCLBUTTONDOWN消息 (1) .h 文件 afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point); (2) . ...
- 快充 IC BQ25896 的 ICO (input current optimizer)
ICO (input current optimizer) 手機接上 adapter 後, 手機裡的 charger IC bq25896 開始向 adapter 抽取 current 供給 batt ...
- (5)DataSet
DataTable赋值给DataSet DataSet ds = new DataSet(); DataTable dt1 = new DataTable(); DataTable dt2 = new ...