利用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

利用Python自动化操作AutoCAD的实现

图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所示。

利用Python自动化操作AutoCAD的实现

图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
  • asp之家 网络编程 m.aspxhome.com