利用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网络编程学习笔记(一)
Jun 09 Python
python django集成cas验证系统
Jul 14 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
python遍历序列enumerate函数浅析
Oct 17 Python
Python中装饰器高级用法详解
Dec 25 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
用python 实现在不确定行数情况下多行输入方法
Jan 28 Python
flask框架jinja2模板与模板继承实例分析
Aug 01 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php 获取完整url地址
2008/12/20 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP中soap的用法实例
2014/10/24 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
简单实例处理url特殊符号&处理(2种方法)
2013/04/02 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
Python os模块介绍
2014/11/30 Python
Python IDLE入门简介
2017/12/08 Python
django初始化数据库的实例
2018/05/27 Python
opencv与numpy的图像基本操作
2019/03/08 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python 求10个数的平均数实例
2019/12/16 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
SQL面试题
2013/12/09 面试题
工程专业毕业生自荐信范文
2013/12/25 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
2014年幼师工作总结
2014/11/22 职场文书
财务工作失误检讨书
2015/02/19 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
家庭经济困难证明
2015/06/23 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python
NASA 机智号火星直升机拍到了毅力号设备碎片
2022/04/29 数码科技
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs