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


Posted in Python onApril 01, 2020

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.修改对象属性后

到此这篇关于利用Python自动化操作AutoCAD的实现的文章就介绍到这了,更多相关Python自动化操作AutoCAD内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python多线程编程(五):死锁的形成
Apr 05 Python
python中reduce()函数的使用方法示例
Sep 29 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
Python中collections模块的基本使用教程
Dec 07 Python
python 实现selenium断言和验证的方法
Feb 13 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Django密码存储策略分析
Jan 09 Python
pandas数据拼接的实现示例
Apr 16 Python
python 错误处理 assert详解
Apr 20 Python
python利用platform模块获取系统信息
Oct 09 Python
python使用信号量动态更新配置文件的操作
Apr 01 #Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 #Python
python自动脚本的pyautogui入门学习
Apr 01 #Python
Python自动重新加载模块详解(autoreload module)
Apr 01 #Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 #Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
Apr 01 #Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 #Python
You might like
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
小谈php正则提取图片地址
2014/03/27 PHP
轻松实现php文件上传功能
2017/02/17 PHP
php验证码生成器
2017/05/24 PHP
php7下的filesize函数
2019/09/30 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
python实现教务管理系统
2018/03/12 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Django实现跨域请求过程详解
2019/07/25 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
乡镇干部十八大感言
2014/02/17 职场文书
早会主持词
2014/03/17 职场文书
生活小常识广播稿
2014/09/16 职场文书
2015年宣传工作总结
2015/04/08 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
PHP基本语法
2021/03/31 PHP
PHP使用QR Code生成二维码实例
2021/07/07 PHP
MySQL空间数据存储及函数
2021/09/25 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python