带有pyautocad的AutoCAD的Python

在上一篇文章中,我已经介绍了AutoCAD基础知识和各种AutoCAD命令。例如,我介绍了AutoCAD LINE,AutoCAD MLINE,AutoCAD PLINE,AutoCAD XLINE,AutoCAD CIRCLE,AutoCAD RECTANG,AutoCAD OFFSET等。在此博客的AutoCAD选项卡下或作为我的AutoCAD教程的一部分,提供了完整的概述。

在这篇文章中,我想介绍一个Python中可用的模块,用于在AutoCAD中自动创建图形。该模块称为pyautocad。 pip install支持它,以方便安装。 pyautocad模块还允许您通过例如调整现有工程图处理图形中的对象。

pyautocad可以识别当前打开的AutoCAD图形,也可以识别当前活动的模型空间。因此,在运行下面的Python代码之前,我将打开一个新的AutoCAD图形。

然后,我导入pyautocad。我使用pyautocad创建一个AutoCAD实例。

# 导入pyautocad
import pyautocad
# 创建AutoCAD实例
acad = pyautocad.Autocad()

让我们检查pyautocad是否真正识别当前活动的AutoCAD图形:

# 当前在AutoCAD中被激活的文档的打印名称
print(acad.doc.Name)
Drawing1.dwg

接下来,我可以在2D平面中创建一个圆。

# 指定圆心的x和y坐标
from pyautocad import APoint
point1 = APoint(100.0,100.0) # x and y coordinates of points
# 在图纸上添加圆
circle1 = acad.model.AddCircle(point1,100)

以下圆圈已添加到我的AutoCAD图形中:

pyautocad也可以更改圆圈的颜色。我在下面的代码中这样做:

# 将圆圈颜色更改为红色
circle1.Color = 10 #10是红色

执行Python代码时,我的绘图结果如下:

颜色索引号可以在AutoCAD中找到。请参见下面的屏幕截图。

我还可以检查刚添加到图形中的圆的其他当前属性值。以下是一些示例:

#检查图层分配
print("current layer: "  + str(circle1.Layer))
# 检查当前线型
print("current linetype: " + str(circle1.Linetype))
# 检查线型比例
print("current linetype scale: " + str(circle1.LinetypeScale))
# 检查当前线宽
print("current line weight: " + str(circle1.Lineweight))
# 检查当前厚度
print("current thickness: " + str(circle1.Thickness))
# 检查当前材料
print("current material:" + str(circle1.Material))
current layer: 0
current linetype: ByLayer
current linetype scale: 1.0
current line weight: -1
current thickness: 0.0
current material:ByLayer

我可以在AutoCAD中使用AutoCAD PROPERTIES命令来了解对象可以具有的属性属性:

我可以使用例如圆形对象进行调整。例如,我有一个想要将圆分配到的“圆”层。我可以使用pyautocad做到这一点:

circle1.Layer = "circles"

现在,我还可以调整圆形对象的颜色设置,以使颜色由图层指定-该索引是颜色索引号256:

circle1.Color = 256

在下面,您可以在AutoCAD中看到结果:

现在,我在我的图形中使用pyautocad创建了另外两个圆。之后,我使用pyautocad iter_objects方法循环遍历图形中的所有对象,并演示了在需要时执行此操作的选项:

#在绘图中添加两个圆圈
circle2 = acad.model.AddCircle(APoint(200.0,200.0),100)
circle3 = acad.model.AddCircle(APoint(300.0,300.0),100)
#遍历所有对象
for obj in acad.iter_objects():
    print(obj)
<POINTER(IAcadCircle) ptr=0x223f8ed65f8 at 223faa5c848>
<POINTER(IAcadCircle) ptr=0x223f8ed6358 at 223faa5ca48>
<POINTER(IAcadCircle) ptr=0x223f89ede28 at 223faa5c148>

这就是我的AutoCAD图形中的结果:

这就完成了我对使用pyautocad在Python中使用AutoCAD的介绍。为了更好地了解AutoCAD,请参考我的其他AutoCAD培训,并建议检查pyautocad文档。

您可以找到更多在Youtube上使用pyautocad的示例。例如。我在这里找到了更详细的示例:https://www.youtube.com/watch?v=AwDL8p2OG-c&t=20s

Leave a Reply

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Close

功能