利用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 相关文章推荐
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
深入解读Python解析XML的几种方式
Feb 16 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Python pandas用法最全整理
Aug 04 Python
python字符串下标与切片及使用方法
Feb 13 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
Python操作Jira库常用方法解析
Apr 10 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
Django与数据库交互的实现
Jun 03 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
我的论坛源代码(四)
2006/10/09 PHP
php zend 相对路径问题
2009/01/12 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php之Memcache学习笔记
2013/06/17 PHP
php不写闭合标签的好处
2014/03/04 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
JS宝典学习笔记(下)
2007/01/10 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
python正则表达式抓取成语网站
2013/11/20 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
python中scikit-learn机器代码实例
2018/08/05 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
2015年七一建党节慰问信
2015/03/23 职场文书
英文辞职信范文
2015/05/13 职场文书
海洋天堂观后感
2015/06/05 职场文书
春晚观后感
2015/06/11 职场文书
会议室使用管理制度
2015/08/06 职场文书
python解决12306登录验证码的实现
2021/04/18 Python