主要是对pyautocad库的学习记录。
pip install --upgrade pyautocad -i https://pypi.douban.com/simple
直接复制上述代码,安装pyautocad库即可!笔者使用的版本是python3.9.2。
笔者使用的是cad2007,测试通过。具体安装包请自行搜索下载。
在使用pyautocad进行cad自动绘图前,必须先打开autoCAD,否则会报错;
说明:
# 1 导入APoint类是非常必要的,画图都是靠点来画,而且CAD中所有的点都必须用APoint类进行包裹。APoint(10,30),
# 其中10代表点的x坐标,30代表点的y坐标。
# 2 导入相关模块
from pyautocad import APoint, APoint
import math
# 3 画直线,p1是画线的第一个点,p2是第二个点
acad.model.AddLine(p1,p2)
# 4 添加文本,第一个参数就是添加的文本字符串,第二p是被APoint类包裹的点,也就是说在哪个坐标下显示文本,15是文本字体大小
text = acad.model.AddText("{0}".format(text), p, 15)
# 文本从p1点移动到p2点
text.move(p1, p2)
# 5 画圆,第一个参数p就是APoint类包裹的点,也就是圆心位置,第二参数10是半径大小
acad.model.AddCircle(p, 10)
# 6 画圆弧,第一个参数是在哪个点画圆弧,第二个参数是半径,第三个是开始弧(弧度制,不是角度制),第四个点是结束弧。
acad.model.AddArc(p, radius, math.radians(90), math.radians(270))
# 7 保存cad图到指定位置,第一个参数一定是保存的绝对路径!!,64是保存的一种格式,笔者从1到100都试了一遍,有一些是可以生成图的,都是CAD可以打开的文件类型格式。其实跟着笔者写64就好!
acad.doc.SaveAs("{0}".format(save_path), 64)
from pyautocad import Autocad, APoint
import re
import math
# 打开cad文件
# 自动连接上cad,只要cad是开着的,就创建了一个 对象。这个对象连接最近打开的cad文件。
# 如果此时还没有打开cad,将会创建一个新的dwg文件,并自动开启cad软件
acad = Autocad(create_if_not_exists=True)
# acad.prompt() 用来在cad控制台中打印文字
acad.prompt("Hello, Autocad from Python")
# acad.doc.Name储存着cad最近打开的图形名
print(acad.doc.Name)
p1 = APoint(0, 0)
p2 = APoint(50, 25)
for i in range(5):
text = acad.model.AddText('Hi %s!' % i, p1, 2.5)
acad.model.AddLine(p1, p2) # 画线:指定起点和终点
acad.model.AddCircle(p1, 10) # 指定圆心;半径
p1.y += 10 # P1的y坐标累加10
dp = APoint(10, 0)
# !!!!!!!遍历cad图形对象以及访问/修改对象属性
for text in acad.iter_objects('Text'):
print('text: %s at: %s' % (text.TextString, text.InsertionPoint))
text.InsertionPoint = APoint(text.InsertionPoint) + dp
for obj in acad.iter_objects(['Circle', 'Line']):
print(obj.ObjectName)
• PiPy: pyautocad 0.2.0 。
• GitHub: reclosedev/pyautocad 。
• Documentation: pyautocad’s documentation 。
• Blog: 1. 利用python控制Autocad:pyautocad. bsider 。