利用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二分法搜索算法实例分析
May 11 Python
深入浅析python继承问题
May 29 Python
深入理解Python变量与常量
Jun 02 Python
Python实现字典去除重复的方法示例
Jul 31 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
在python中实现导入一个需要传参的模块
May 12 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
Python中基础数据类型 set集合知识点总结
Aug 02 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写的serv-u的web申请账号的程序
2006/10/09 PHP
防止用户利用PHP代码DOS造成用光网络带宽
2011/03/01 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
jcarousellite.js 基于Jquery的图片无缝滚动插件
2010/12/30 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
简单了解Django应用app及分布式路由
2019/07/24 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python中bytes和str类型的区别
2019/10/21 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
介绍一下gcc特性
2012/01/20 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
金鑫耀Java笔试题
2014/09/06 面试题
公共事业管理本科生求职信
2013/10/07 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
Python import模块的缓存问题解决方案
2021/06/02 Python
python 常用的异步框架汇总整理
2021/06/18 Python
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL