利用Python自动化操作AutoCAD的实现
作者:W__hisky 时间:2022-02-14 21:32:28
1 Python自动绘图
在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图、CAD图像对象读取、对象属性修改等操作。
from pyautocad import Autocad,APoint
# 连接及库导入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)
# 定义点
p1=APoint(0,0)
p2=APoint(50,25)
for i in range(0,5):
text=acad.model.AddText('Hi %s' %i,p1,2.5) # 将i值插入到%s占位符的字符串中(字符串内容,坐标位置,字号大小)
acad.model.AddLine(p1,p2) # 绘制线段(起始点,终止点)
acad.model.AddCircle(p1,10) # 绘制圆(圆心,半径)
p1.y+=10 # p1点纵坐标加10
图1.Python自动绘图结果.png
如果此时你的计算机上未打开AutoCAD软件,在运行该代码时会自动打开AutoCAD并开始绘图;如果已经打开了AutoCAD软件,则在运行该代码时会默认在已打开的图上进行绘图。
2 读取CAD图像对象
from pyautocad import Autocad,APoint
# 连接及库导入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)
# 遍历CAD图像的所有文本对象,打印其文本内容及坐标位置
dp=APoint(10,0)
for text in acad.iter_objects('Text'):
print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
# 打印对象的类型名称
for obj in acad.iter_objects(['Circle','Line','Text']):
print(obj.ObjectName)
3 修改对象属性
from pyautocad import Autocad,APoint
# 连接及库导入
acad = Autocad(create_if_not_exists = True)
acad.prompt("Hello! Autocad from Python.")
print(acad.doc.Name)
# 遍历CAD图像对象,修改对象属性
for text in acad.iter_objects('Text'):
print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
# 将文本中的“Hi”字符替换为“OK”
if 'Hi' in text.TextString:
print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
# 修改對象屬性
text1 = str(text.TextString)
text1 = text1.replace('Hi','OK')
text.TextString = text1
将CAD图中,所有文本中的“Hi”字符串替换为“OK”,修改结果如图2所示。
图2.修改对象属性后
来源:https://www.jianshu.com/p/32059c6c9b6e
标签:Python,自动化操作,AutoCAD
0
投稿
猜你喜欢
js编写的语法高亮引擎工具
2008-05-25 13:27:00
Git如何修改已提交的commit注释
2023-10-04 02:17:54
wxPython绘图模块wxPyPlot实现数据可视化
2023-10-03 14:58:22
php简单防盗链验证实现方法
2023-09-12 04:55:15
CSS网页布局开发时的常见问题小结
2009-08-13 12:17:00
python3.x zip用法小结
2023-08-13 05:25:05
sql server Bulk Insert命令详细
2024-01-13 00:54:04
SQL Data Services将成为云中完整的数据库
2009-03-25 12:28:00
八条常见的CSS错误及修复方法
2010-04-08 16:54:00
python3实现飞机大战
2023-03-03 00:36:18
python区块链持久化和命令行接口实现简版
2023-10-28 09:43:08
MySQL 5.5 range分区增加删除处理的方法示例
2024-01-22 21:16:19
快速解决SQL server 2005孤立用户问题
2009-01-04 14:02:00
python读取浮点数和读取文本文件示例
2022-10-31 16:03:38
Python3中的tuple函数知识点讲解
2021-12-31 17:22:56
SpringBoot首页设置解析(推荐)
2021-11-03 05:43:00
详解VScode自动补全CSS3前缀插件以及配置无效的解决办法
2023-01-05 06:49:40
JS实现点击li标签弹出对应的索引功能【案例】
2024-04-17 10:24:23
python中plot实现即时数据动态显示方法
2021-04-20 22:09:18
Vue 实现从小到大的横向滑动效果详解
2024-05-10 14:14:10