利用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实现识别相似图片小结
Feb 22 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
Django中cookie的基本使用方法示例
Feb 03 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
如何查看Django ORM执行的SQL语句的实现
Apr 20 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
基于python实现操作git过程代码解析
Jul 27 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
python在package下继续嵌套一个package
Apr 14 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
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
python实现批量监控网站
2016/09/09 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
什么是URL
2015/12/13 面试题
出国导师推荐信
2014/01/16 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
财务部绩效考核方案
2014/05/04 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫