在这篇博文中,我将讨论 AutoCAD 应用程序对象及其一些重要的方法和属性。我将展示如何在 pyautocad 中实现 AutoCAD 应用程序对象。
从这个编码示例开始,我从 pyautocad 导入相关的类和方法。我在下面的代码中创建了一个新模型。
from pyautocad import Autocad, APoint, aDouble
acad = Autocad(create_if_not_exists=True)
在 Python 中获取 AutoCAD 应用程序对象
为了能够对 AutoCAD 应用程序对象执行任何操作,我需要获取该对象。在 pyautocad 中,我为此使用“acad.app”。
如果我想使用通信模块而不是 pyautocad,我可以按照下面的代码进行。在这种情况下,我使用win32com和 pythoncom Python 模块。
from win32com.client import *
import pythoncom
acad1 = win32com.client.Dispatch("AutoCAD.Application")
在这种情况下,acad1 表示应用程序对象。
应用程序 AutoCAD 对象的属性
许多应用程序对象属性提高了 AutoCAD 绘图的自动化程度。我将讨论一些重要的属性,一一讨论。
要获取与 AutoCAD 应用程序对象相关的各种信息,例如应用程序的名称、应用程序的全名或文档名称,我可以使用代码。
print(acad.app.Application.Name)
print(acad.app.Caption)
print(acad.app.ActiveDocument.Name)
print(acad.app.Path)
print(acad.app.FullName)
O/p:
AutoCAD
Autodesk AutoCAD 2018 - [Drawing2.dwg]
Drawing2.dwg
C:\Program Files\Autodesk\AutoCAD 2018
C:\Program Files\Autodesk\AutoCAD 2018\acad.exe
假设我想检查当前在 AutoCAD 应用程序中打开的所有文档。为此,我可以使用 Documents 属性并迭代该属性。
我将通过 AutoCAD 中的一个简单示例来演示这一点。在他的示例中,我打开了两个绘图,Drawing1 和 Drawing2。下面的屏幕截图显示了这一点。
当前选择了绘图“Drawing2.dwg”。从我之前的输出和上图可以清楚地看出,这张图是作为 ActiveDocuments 获取的。但让我检查一下它是否也返回 Drawing1.dwg。应该是这样,因为该文件也已打开。
print(acad.app.Documents)
for i in acad.app.Documents:
print(i.Name)
O/p:
Drawing1.dwg
Drawing2.dwg
MenuGroups 和 MenuBar 属性
现在我得到了当前正在使用的菜单栏和菜单组对象。我在下面的代码中这样做:
print(acad.app.MenuBar)
print(acad.app.MenuGroups)
for i in acad.app.MenuGroups:
print(i.Name)
O/p:
<comtypes.client.lazybind.Dispatch object at 0x0000021BBCA23EB0>
ACAD
CUSTOM
MODELDOC
EXPRESS
AUTODESKSEEK
在这里,我可以看到 MenuBar 的第一段代码返回了一个调度对象,它是 AutoCAD 绘图中的活动菜单栏。我将在另一篇文章中讨论 MenuBar 对象。
AutoCAD 应用程序对象 WindowState 属性
要调整或查看 AutoCAD 应用程序或 AutoCAD 文档窗口的状态,我可以使用 WindowState 属性。WindowState 使用整数值进行编码。简而言之,整数以如下方式表示窗口状态:
- 最小值(1):窗口最小化。
- 最大动作(2):窗口最大化。
- acNorm(3):窗口正常(既没有最小化也没有最大化)。
print(acad.app.WindowState)
O/p:
1
AutoCAD 应用程序对象方法
现在,我将讨论一些用于处理 AutoCAD 应用程序的重要 pyautocad 方法。其实用AutoCAD应用对象进行操作大家应该都知道。
每当我编写代码时,我都必须检查应用程序是否处于静止(非活动)状态。检查我是否使用了 IsQuiescent 方法。这是一个例子:
print(acad.app.GetAcadState().IsQuiescent)
O/p:
False
当我在运行此代码后使用该应用程序时,它显示该应用程序处于活动状态(即 False)。
另外,如果我想关闭当前文档,我可以使用 Quit 方法。当然,这只会关闭当前活动的文档,而不会返回空值的整个应用程序。
acad.app.Quit()
最后,为了在应用代码后更新应用程序,我可以使用也返回 null 的 Update 方法。
acad.app.Update()
结束语及相关内容
有关涵盖 AutoCAD自动化的其他信息性文章,请查看我与 pyautocad 和 pywin32 相关的其他文章。请在评论部分评论您的问题。如需任何技术咨询,请随时与我联系。您可以使用联系表格。
以下是一些涉及 AutoCAD 自动化和 Python 中的 AutoCAD 脚本的相关文章:
- 链接: Python for AutoCAD pyautocad 模块
- 链接: pyautocad 中的 add() 方法
- 链接: 已解决的呼叫被 pythoncom 中的被呼叫者拒绝
- 链接: 使用 Python 的 AutoCAD 对象的树数据结构
- 链接: 在 Python 中使用 pyautocad 扩展 AutoCAD 中的对象
- 链接: 使用 Python 列表和字典通过 pyautocad 处理 AutoCAD 对象
- 链接: 在 Python 中使用 pywin32 在 AutoCAD 模板上填充对象
- 链接: AutoCAD 中的光栅图像对象与 Python 中的 pyautocad
- 链接: 在 Python 中使用 pyautocad 在 AutoCAD 中处理 3D 网格对象
- 链接: 在 Python 中使用 pywin32 创建双重构造函数
- 链接: 在 Python 中使用 pywin32 创建点方法
- 链接: 使用 pywin32 和 win32com 将 Python 与 AutoCAD 集成
- 链接: 使用 Python 中的 pyautocad 和 pywin32 删除 AutoCAD 模板中的对象
- 链接: 使用 Python 中的 pyautocad 在二维平面上镜像对象
- 链接: 在 Python 中使用 pyautocad 在 Autocad 中处理文本
- 链接: AutoCAD 中的极坐标阵列,在 Python 中使用 pyautocad
- 链接: AutoCAD 中的矩形阵列在 Python 中使用 pyautocad
- 链接: 在 Python 中使用 pyautocad 对 AutoCAD 对象进行操作
- 链接: AutoCAD 中的实体对象在 Python 中使用 pyautocad
- 链接: 在 Python 中使用 pyautocad 在 AutoCAD 中处理螺旋
- 链接: 在 AutoCAD 中使用 Python 中的 pyautocad 绘制样条曲线
- 链接: pyautocad 中的折线,用于在 Python 中绘制 AutoCAD 多边形
- 链接: 在 AutoCAD 中使用 Python 中的 pyautocad 绘制椭圆弧
- 链接: 在 AutoCAD 中使用 Python 中的 pyautocad 绘制圆弧
- 链接: 使用 Promodel AutoCAD 版本近乎同步的工厂设计和流程优化
- 链接: Python for AutoCAD pyautocad 模块
- 链接: AutoCAD 中使用 Python 的区域对象
Leave a Reply