利用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将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
python多线程http下载实现示例
Dec 30 Python
Python中使用select模块实现非阻塞的IO
Feb 03 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
Python用csv写入文件_消除空余行的方法
Jul 06 Python
Python中的枚举类型示例介绍
Jan 09 Python
Python提取频域特征知识点浅析
Mar 04 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
python函数指定默认值的实例讲解
Mar 29 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下删除一篇文章生成的多个静态页面
2010/08/08 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
Javascript MD4
2006/12/20 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Web服务器框架 Tornado简介
2014/07/16 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python六大开源框架对比
2015/10/19 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
python访问hdfs的操作
2020/06/06 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
校庆团日活动总结
2014/08/28 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL