python操作autocad2007绘制图形230201

引言

主要是对pyautocad库的学习记录。

使用

pip install --upgrade pyautocad -i https://pypi.douban.com/simple

直接复制上述代码,安装pyautocad库即可!笔者使用的版本是python3.9.2。

cad软件安装

笔者使用的是cad2007,测试通过。具体安装包请自行搜索下载。

pyautocad库的基本使用

在使用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)

效果预览

python操作autocad2007绘制图形230201_第1张图片
python操作autocad2007绘制图形230201_第2张图片

参考资料

  • PiPy: pyautocad 0.2.0 。

  • GitHub: reclosedev/pyautocad 。

  • Documentation: pyautocad’s documentation 。

  • Blog: 1. 利用python控制Autocad:pyautocad. bsider 。

你可能感兴趣的:(cad,python,开发语言)