文章目录

  • 一、使用
    • 1、主接口和类型
    • 2、处理表
  • 二、API
    • 1、AutoCAD主接口

一、使用

1、主接口和类型

导入相关模块

from pyautocad import Autocad, APoint

创建AutoCAD应用程序或连接到已经运行的应用程序:

acad = Autocad(create_if_not_exists=True)
# 在CAD命令行输出内容
acad.prompt("Hello, Autocad from Python\n")
# 输出当前图形文件的名称
print(acad.doc.Name)

在文档中添加对象:

p1 = APoint(0, 0)
p2 = APoint(50, 25)
for i in range(5):text = acad.model.AddText(u'Hi %s!' % i, p1, 2.5)acad.model.AddLine(p1, p2)acad.model.AddCircle(p1, 10)p1.y += 10

迭代文档中的Texts, Lines和Circles对象:

for obj in acad.iter_objects():print(obj.ObjectName)for text in acad.iter_objects('Text'):print(text.TextString, text.InsertionPoint)for obj in acad.iter_objects(['Text', 'Line']):print(obj.ObjectName)

在一定条件下找到第一个对象:

def text_contains_3(text_obj):return '3' in text_obj.TextStringtext = acad.find_one('Text', predicate=text_contains_3)
print(text.TextString)

通过ACAD查找对象并修改属性:

from pyautocad import ACADfor text in acad.iter_objects('Text'):old_insertion_point = APoint(text.InsertionPoint)text.Alignment = ACAD.acAlignmentRighttext.TextAlignmentPoint = old_insertion_point

更改对象位置:

for line in acad.iter_objects('Line'):p1 = APoint(line.StartPoint)line.EndPoint = p1 - APoint(20, 0)

2、处理表

添加对象并保存到EXCEL中:

from pyautocad import Autocad, APoint
from pyautocad.contrib.tables import Tableacad = Autocad()
p1 = APoint(0, 0)
for i in range(5):obj = acad.model.AddText(u'Hi %s!' % i, p1, 2.5)p1.y += 10table = Table()
for obj in acad.iter_objects('Text'):x, y, z = obj.InsertionPointtable.writerow([obj.TextString, x, y, z])
table.save('C:/Users/liuzhi/Desktop/data.xls', 'xls')

提高AutoCAD表格操作的速度:

table = acad.model.AddTable(pos, rows, columns, row_height, col_width)
with suppressed_regeneration_of(table):table.SetAlignment(ACAD.acDataRow, ACAD.acMiddleCenter)for row in range(rows):for col in range(columns):table.SetText(row, col, '%s %s' % (row, col))

二、API

1、AutoCAD主接口

class pyautocad.api.Autocad(create_if_not_exists=False, visible=True)

参数:
创建if_NOT_存在-如果AutoCAD不运行,那么新的实例化将被装箱
可见-如果是True(默认),新的AutoCAD实例将是可见的。

prompt(文本)

在控制台和AutoCAD提示符

get_selection(Text=“SelectObjects”)

要求用户选择对象

pyautocad.types.distance(P1, P2)

返回两点之间的距离P1和P2

pyautocad.types.aDouble(*seq)

回报array.array为传递到AutoCAD的双倍代码(‘d’代码),对于3D点使用APoint相反。

pyautocad.types.aInt(*seq)

回报array.array用于传递到AutoCAD的INTS(‘l’代码)

pyautocad.types.aShort(*seq)

回报array.array传递到AutoCAD的简写(h‘代码)

python:pyautocad相关推荐

  1. python读取cad表格,Python使用pyautocad+openpyxl处理cad文件示例

    本文实例讲述了Python使用pyautocad+openpyxl处理cad文件.分享给大家供大家参考,具体如下: 示例1: from pyautocad import Autocad import ...

  2. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  3. OpenCV+python:Canny边缘检测算法

    1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...

  4. pyhton 安装pip 以及 numpy (解决python:ModuleNotFoundError:No module named numpy 等类似缺包问题

    https://blog.csdn.net/phs999/article/details/79218869 pyhton 安装pip 以及 numpy (解决python:ModuleNotFound ...

  5. 中文Python:中文编程不是梦

    我曾经与一位朋友讨论有没有可能用中文编程.当然计算机语言毕竟不是自然语言,但是目前大多数计算机语言(包括内置函数和库函数)都是基于英语的.所以,你会写System.PrintScreen(" ...

  6. python:未找到命令

    参考下面的文章: python:未找到命令_无色云的博客-CSDN博客https://blog.csdn.net/weixin_38669561/article/details/103010621这样 ...

  7. python:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes问题解决

    python:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes问题解决 参考文章: (1) ...

  8. python: 关于解决‘\u‘开头的字符串转中文的方法

    python: 关于解决'\u'开头的字符串转中文的方法 参考文章: (1)python: 关于解决'\u'开头的字符串转中文的方法 (2)https://www.cnblogs.com/hahaxz ...

  9. Python:SMOTE算法——样本不均衡时候生成新样本的算法

    Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...

最新文章

  1. (笔试题)不用除法操作符,实现两个整数的除法
  2. windows密钥连接linux,windows使用密钥登录linux
  3. Obj文件和Bin文件
  4. linux gnome 桌面,GNOME Linux桌面
  5. html 模板配置,模板文件配置
  6. python手机编译器可以干什么_世界上最好的Python编辑器是什么?
  7. 你留言,我送书!20本《玩转Python轻松过二级》等你拿!
  8. 空间复杂度,实现从excel导出到txt文件中的java代码自动构建,逻辑条件不同实现则不同...
  9. ASP.NET深入浅出系列3- Page类
  10. group by分组后获得每组中时间最大的那条记录
  11. 尚硅谷大数据hadoop教程
  12. Python RPM包制作
  13. 用C语言编译一元二次方程的求解,用c语言求解一元二次方程
  14. 网易云评论 爬虫 java_网易云歌曲评论爬虫如何实现翻页?
  15. css 屏幕背景图片 img.html
  16. 快速正确的搭建一个微服务架构需要了解的那几个点
  17. 小学生的搞笑考试卷子
  18. centos安装MySQL到指定盘_Centos下安装mysql 和挂载硬盘
  19. 关于第三方App发起Unity开发的app的解决方案
  20. 雷林鹏最人性化访谈:做投资不仅仅是要赚钱,要成为有价值的人

热门文章

  1. RK3399平台开发系列讲解(网络篇)7.25、Socket接口的分层
  2. 数据仓库之缓慢变化维度处理
  3. DB2数据库安装(db2 9.7 ,centos7)
  4. poi中word中表格跨列合并以及不兼容wps问题,java下 linux下word转pdf 问题解决
  5. 微信小程序 错题记事本 111111
  6. LeetCode-5299. 找到一个数字的 K 美丽值_Python
  7. python jpg压缩_python 实现图片批量压缩的示例
  8. php代码加密tp5,TP5.1写接口用来加密解密的方法
  9. 计算机语言栏在哪里,缺少计算机语言栏的解决方案是什么
  10. The container name XXX is already in use by container