使用 Python 自动化 AutoCAD

Posted

技术标签:

【中文标题】使用 Python 自动化 AutoCAD【英文标题】:Using Python to Automate AutoCAD 【发布时间】:2017-07-19 17:09:36 【问题描述】:

我对 Python 和 AutoCAD 很陌生,所以请多多包涵。我正在尝试使用 Python 来自动化 AutoCAD 中的设计周期。到目前为止,我可以通过 Python 在 AutoCAD 中添加点和线,但我希望能够将线型更改为虚线。我知道这可以通过几个简单的命令在 AutoCAD 的命令栏中完成,但我不知道如何通过 Python 来完成。

import array
from _ast import If
import comtypes.client
import pyautocad

#Get running instance of the AutoCAD application
acad = comtypes.client.GetActiveObject("AutoCAD.Application")

# Document object
doc = acad.ActiveDocument

#Get the ModelSpace object
ms = doc.ModelSpace

#In ModelSpace
#Set up A4 Space
pt1 = array.array('d', [0.0, 0.0, 0])
pt2 = array.array('d', [210.0, 0.0, 0])
pt3 = array.array('d', [210.0, 297.0, 0])
pt4 = array.array('d', [0.0, 297.0, 0])
line1 = ms.AddLine(pt1, pt2)
line2 = ms.AddLine(pt2, pt3)
line3 = ms.AddLine(pt3, pt4)
line4 = ms.AddLine(pt4, pt1)

#Add central fold
pt5 = array.array('d', [105.0, 0.0, 0])
pt6 = array.array('d', [105.0, 297.0, 0])

line5 = ms.AddLine(pt5, pt6)

print("Done.")

这会生成一个带有实线分割线的 A4 大小的矩形,但我想要一条虚线。知道在哪里可以找到有关在 AutoCAD 中使用 Python 的一些信息吗?任何帮助是极大的赞赏!

【问题讨论】:

pyautocad 使用 AutoCAD COM/ActiveX API,您可以从这里找到文档:usa.autodesk.com/adsk/servlet/… 【参考方案1】:

尝试这样做来改变line5的线型:

line5.linetype = 'dot'

请确保在线型管理器列表中添加(加载)使用的线型(即本例中的 DOT)。

您可以通过以下方式更改线型比例:

line5.linetypescale = '0.01'

【讨论】:

以上是关于使用 Python 自动化 AutoCAD的主要内容,如果未能解决你的问题,请参考以下文章

如何使用设计自动化 API 从上传的 AutoCAD 文件中提取元数据?

设计自动化中的 AutoCAD 选择过滤器

AutoCAD 的设计自动化 - 超出了进程内存限制

autocad二次开发的为啥要对AutoCAD进行二次开发

AutoCAD Electrical电气版 2023软件安装包下载及安装教程

AutoCAD Electrical 2024(电气CAD)安装破解步骤