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

猜你喜欢

  • SQL Server与Oracle数据库在查询优化上的差异

    2009-02-18 14:28:00
  • python生成每日报表数据(Excel)并邮件发送的实例

    2021-10-31 21:39:44
  • 有效地使用 SQL事件探查器的提示和技巧

    2009-01-15 13:39:00
  • 用VB生成DLL封装ASP代码一个例子:连接access数据库等

    2008-04-07 13:06:00
  • Python实现暴力破解wifi密码并打包成exe

    2022-04-27 22:24:29
  • 教女朋友学Python3(二)简单的输入输出及内置函数查看 <font color=red>原创</font>

    2022-11-14 08:32:18
  • python用moviepy对视频进行简单的处理

    2023-08-03 07:02:15
  • 利用Python实现sqlite3增删改查的封装

    2021-06-19 14:57:05
  • python Timer 类使用介绍

    2022-09-02 18:36:37
  • keras模型保存为tensorflow的二进制模型方式

    2022-12-21 07:20:08
  • python新式类和经典类的区别实例分析

    2023-07-28 10:01:02
  • SQLServer 镜像功能完全实现

    2011-09-30 11:33:07
  • 推荐技术人员一款Python开源库(造数据神器)

    2023-11-10 19:57:45
  • Python文件的应用之序列化与反序列化详解

    2021-06-19 22:20:45
  • tensorflow 动态获取 BatchSzie 的大小实例

    2023-03-05 16:56:48
  • 利用python库在局域网内传输文件的方法

    2021-01-29 03:41:48
  • mysql从执行.sql文件时处理换行的问题

    2009-09-06 11:46:00
  • Python 内置变量和函数的查看及说明介绍

    2021-06-11 16:12:14
  • line-height 属性的继承问题

    2008-07-26 12:27:00
  • Python 中的lambda匿名函数和三元运算符

    2023-04-21 05:22:18
  • asp之家 网络编程 m.aspxhome.com