【发布时间】:2016-10-09 13:19:25
【问题描述】:
我正在编写一个 Python3 程序来使用 AutoCAD。
我使用pyautocad 和comtypes。
我可以在绘图上获取任何对象并获得其最佳界面。 例如,我可以分解一些块参照并使用 AutoCAD 创建的新对象:
for NewItem in BlockReference.Explode():
# NewItem is unusable unknown object here
NewItem = comtypes.client.GetBestInterface(NewItem)
# Now NewItem is what it is in Acad (text, line or so on)
if NewItem.ObjectName == 'AcDbMText':
....
GetBestInterface 方法是完美的,如果我想获得“最佳”接口,它支持像使用特定 Acad 对象(例如,AcDbMText)一样对其进行迭代所需的方法。但是,例如,如果我想分解 MText 或 Dimension,我需要 AcDbEntity 的方法。
那么,请任何人告诉我,我怎样才能获得不是“最好的”而是对象的必要接口?并且,理想情况下,它支持的接口列表。
【问题讨论】: