利用Python自动化操作AutoCAD的实现
作者:W__hisky 发布时间:2022-02-14 21:32:28
标签:Python,自动化操作,AutoCAD
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
图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所示。
图2.修改对象属性后
来源:https://www.jianshu.com/p/32059c6c9b6e
0
投稿
猜你喜欢
- java.util.regex类支持用正则表达式来匹配和提取字符串,读者可以去官网查看java.util.regex的详细使用方法。首先给出
- 关于元组,上一讲中涉及到了这个名词。本讲完整地讲述它。先看一个例子:>>>#变量引用str>>> s =
- PHP simplexml_load_string() 函数实例转换形式良好的 XML 字符串为 SimpleXMLElement 对象,然
- 1、背景a、搜狗也发布了自己的人工智能 api,包括身份证ocr、名片ocr、文本翻译等API,初试感觉准确率一般般。b、基于python3
- 一、mock.js的使用mock.js的使用步骤① 下载依赖 npm install mock -d(开发环境使用)② 引入到main.js
- 有的时候,为了对python文件进行加密,会把python模块编译成.pyd文件,供其他人调用。拿到一个.pyd文件,在没有文档说明的情况下
- 环境 django 1.10.6缘起今天接到一个任务——解决终端满屏日志中的无用错误。 django 会尽可能给你准确报出错误位置,但是一些
- 一、进程与线程进程是操作系统资源分配的基本单位,是程序运行的实例。例如打开一个浏览器就开启了一个进程。线程是操作系统调度到CPU中执行的基本
- 前言写这次博客其实事出有因,前几天呢,一个非常优秀的学姐在QQ空间里晒了自己的CSDN博客的总阅读量,达到了7万+,很厉害了,而且确实她的博
- 一、array_map() 1、array_map() 函数将用户自定义函数作用到数组中的每
- 前言大家在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理。原先的流程:def cra
- 我们可能会出现这种情况,某个表原来设计不周全,导致表里面的数据数据重复,那么,如何对重复的数据进行删除呢?重复的数据可能有这样两种情况,第一
- 本文实例讲述了Go语言通过Luhn算法验证信用卡卡号是否有效的方法。分享给大家供大家参考。具体实现方法如下:package mainimpo
- 本文实例讲述了Python3变量与基本数据类型用法。分享给大家供大家参考,具体如下:3.1保留字和标识符3.1.1保留字 &nb
- 这篇文章主要介绍了简单了解django三种文件下载方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 一、问题描述一段 Python 代码在本地的 IDE 上运行正常,部署到服务器运行后,出现了 ModuleNotFoundError: No
- python的try语句有两种风格一是处理异常(try/except/else)二是无论是否发生异常都将执行最后的代码(try/finall
- Mysql简易索引一、没有索引的时候如何查找先忽略掉索引这个概念,如果现在直接要查某条记录,要如何查找呢?在一个页中查找如果表中的记录很少,
- 老外真是聪明,这个方法也想得到,有兴趣的不妨试试,但是如果对方的服务器安全搞的很好的话,这个代码也许就不能用了,但不管怎么样,学习一下也是好
- 我就废话不多说了,大家还是直接看代码吧~import tensorflow as tfh_doc=tf.placeholder(tf.int