在上一篇文章中,我已经介绍了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
专业领域为优化和仿真的工业工程师(R,Python,SQL,VBA)
Leave a Reply