【Python】自动操作Autocad的pyautocad库(一)
引言
利用python实现自动绘制CAD图。对于好久没有触碰autoCAD的笔者来说,利用python实现自动操作autoCAD,学会使用pyautocad库的同时,也想好好把autoCAD的基本使用操作重新捡起来学习,所以这篇博客记录pyautocad库的使用方法的同时也会附带autoCAD的相关用法。
1 模块与软件安装
1.1 pyautocad库
看过笔者前面博客的应该知道,笔者尤其钟爱在虚拟环境进行相关环境的搭建,这里也不例外:
pip install --upgrade pyautocad -i https://pypi.douban.com/simple
如下图所示,关键模块已安装完毕:(目前最新版本为:pyautocad-0.2.0)
1.2autoCAD软件安装
目前autoCAD已经更新到2020了,但笔者担心太新的版本存在文件的不兼容性(不知道是不是担心过多了),于是笔者折中选择了2014版本的autoCAD,尽量安装在非系统盘上,如笔者选择安装在D盘上。(详细安装这里不展开说明)
链接:https://pan.baidu.com/s/1lOsY6f3k9iCzQQa7bKHv1g
提取码:uz8v
2 pyautocad基本使用
在使用pyautocad进行cad自动绘图前,必须先打开autoCAD,否则会报如下错误:
"""
说明:
# 1 导入APoint类是非常必要的,画图都是靠点来画,而且CAD中所有的点都必须用APoint类进行包裹。APoint(10,30),
# 其中10代表点的x坐标,30代表点的y坐标。# 2 导入相关模块
from pyautocad import APoint, APoint
import math# 3 画直线,p1是画线的第一个点,p2是第二个点
acad.model.AddLine(p1,p2)# 4 添加文本,第一个参数就是添加的文本字符串,第二p是被APoint类包裹的点,也就是说在哪个坐标下显示文本,15是文本字体大小
text = acad.model.AddText("{0}".format(text), p, 15)
# 文本从p1点移动到p2点
text.move(p1, p2)# 5 画圆,第一个参数p就是APoint类包裹的点,也就是圆心位置,第二参数10是半径大小
acad.model.AddCircle(p, 10)# 6 画圆弧,第一个参数是在哪个点画圆弧,第二个参数是半径,第三个是开始弧(弧度制,不是角度制),第四个点是结束弧。
acad.model.AddArc(p, radius, math.radians(90), math.radians(270))# 7 保存cad图到指定位置,第一个参数一定是保存的绝对路径!!,64是保存的一种格式,笔者从1到100都试了一遍,有一些是可以生成图的,都是CAD可以打开的文件类型格式。其实跟着笔者写64就好!
acad.doc.SaveAs("{0}".format(save_path), 64)
"""
实例
from pyautocad import Autocad, APoint
import re
import math# 打开cad文件
# 自动连接上cad,只要cad是开着的,就创建了一个<pyautocad.api.Autocad> 对象。这个对象连接最近打开的cad文件。
# 如果此时还没有打开cad,将会创建一个新的dwg文件,并自动开启cad软件
acad = Autocad(create_if_not_exists=True)
# acad.prompt() 用来在cad控制台中打印文字
acad.prompt("Hello, Autocad from Python")
# acad.doc.Name储存着cad最近打开的图形名
print(acad.doc.Name)p1 = APoint(0, 0)
p2 = APoint(50, 25)
for i in range(5):text = acad.model.AddText('Hi %s!' % i, p1, 2.5)acad.model.AddLine(p1, p2) # 画线:指定起点和终点acad.model.AddCircle(p1, 10) # 指定圆心;半径p1.y += 10 # P1的y坐标累加10dp = APoint(10, 0)
# !!!!!!!遍历cad图形对象以及访问/修改对象属性
for text in acad.iter_objects('Text'):print('text: %s at: %s' % (text.TextString, text.InsertionPoint))text.InsertionPoint = APoint(text.InsertionPoint) + dpfor obj in acad.iter_objects(['Circle', 'Line']):print(obj.ObjectName)
绘图结果如下:
3 AutoCAD的基础知识和基本操作
AutoCAD是由美国Autodesk公司开发的通用计算机辅助设计(Computer Aided Design, CAD)软件,具有易于掌控、使用方便、体系结构开放等优点,能够绘制二维图形与三维图形、标注尺寸、渲染图形以及打印输入图纸,目前已广泛应用于机械、建筑、电子、航天、造船、土木工程等领域。
基本功能有:
- 绘制和编辑图形
- 标注图形尺寸
- 渲染三维图形
- 数据库管理功能
- Internet功能
- 输出和打印图形
推荐链接:https://wenku.baidu.com/view/821d25c1a1116c175f0e7cd184254b35effd1a42.html
【Python】自动操作Autocad的pyautocad库(一)相关推荐
- python开发autocad_利用Python自动化操作AutoCAD的实现
1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...
- python用于cad_【笔记】利用Python自动化操作AutoCAD
1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...
- python操作autocad_【笔记】利用Python自动化操作AutoCAD
1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...
- python提取cad坐标到excel_使用python来操作autocad,并且将坐标点转换成cad可见对象...
由于工作需要,在项目中遇到一个棘手的问题,如何将(mssql)数据库中的BLOB文件转成cad可见图形 (可能每个项目需求不一样,解决方式不同) 第一步 . 需要转换的图形类型 第二步 . 那我们先查 ...
- Python自动操作GUI神器PyAutoGUI
日常使用计算机,命令行程序可以说是为批量操作文件而生,但作为普通用户,最多的还是通过鼠标键盘操作形形色色的图形界面程序.试想下面一个场景:有成千上万个文件,都需要通过图形界面进行同样的一套编辑.保存工 ...
- 使用python来操作autocad,并且将坐标点转换成cad可见对象
由于工作需要,在项目中遇到一个棘手的问题,如何将(mssql)数据库中的BLOB文件转成cad可见图形 (可能每个项目需求不一样,解决方式不同) 第一步 . 需要转换的图形类型 第二步 . 那我们先查 ...
- python自动操作微信_微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答...
原标题:微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答 本文为微信智能回复相关python项目,通过模拟网页端微信接口,实现跟好友之间自动的回复,并接入了图灵智能库,进行相应的内容 ...
- Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...
- python自动操作微信_Python+Appium 自动化操作微信入门看这一篇就够了
简介 Appium 是一个开源的自动化测试工具,支持 Android.iOS 平台上的原生应用,支持 Java.Python.PHP 等多种语言. Appium 封装了 Selenium,能够为用户提 ...
最新文章
- testNG安装一直失败解决方法
- php for循环可以变量关联数组,数组字符串变量之间的转换,数组元素的回调,for循环遍历关联数组...
- 【画出漂亮的电路图】CircuiTikZ库学习第一天
- matlab plot title 包含变量的图片标题
- cdoj 1150 排名表 拓扑排序
- Linux如何进行GPIO读写操作的?
- mysql数据库版本不同_MySQL不同版本数据同步
- QApplication
- cmd长ping记录日志和时间_Ping记录时间的方法
- Objective-C 与 C++ 的区别
- 优思学院|精益六西格玛中的8大浪费是什么?
- 舵机的相关原理与控制原理
- 广东百望税控盘初始化设置
- 2020 春节买火车票攻略和抢票工具分享
- Image Retrieval using Scene Graphs ——基于场景图的图像检索 读书笔记
- HKEY_CLASSES_ROOT/Applications
- 小 V 视频号下载工具(可下载所有视频号中的视频+公众号中的部分视频、音频)
- 数码博主自用五款高性价比蓝牙耳机分享,双11不想踩雷选什么蓝牙耳机好?
- 推荐系统 --- 推荐算法 --- 基于用户行为的推荐算法 - 协同过滤算法
- STM32L系列简介
热门文章
- JavaScript实现简单的双向数据绑定(Ember、Angular、Vue)
- 观察者模式C++实现
- Matlab中ind2gray函数用法
- setVisibility()设置过度动画
- IDEA3.5最新版激活码
- NAS服务器有哪些优势
- Ubuntu下U盘没有不能新建粘贴文件 报错 [sdf] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
- 50个热门语义分割数据集免费、高速下载资源分享,涵盖通用视觉、遥感、自动驾驶、医疗等多种场景题
- 查询每个学生的总成绩的各个科目的分数和姓名,按总成绩排序
- 话机按键音效——DTMF生成