我正在python,win32com和autoCAD中工作。我希望能够通过python程序执行以下操作:
我可以完成前两件事。但是,假设textObj
是正确的对象类型,则以下内容将达到剩余的一半-t
将包含所需的文本作为str:
t = textObj.copy().fieldcode()
问题1:正如代码所暗示的那样,这将在图形的正确位置创建对象的副本,并且似乎没有提供一种方法来稍后标识它以进行删除。
问题2:原始对象拒绝从选择集中删除。如果selection
是选择集,则selection.clear()
,selection.delete()
或selection.erase()
的任何变化都不会做。 (我检查了fieldcode()调用前后的选择集的长度-对象数保持不变。)
我很困惑,似乎没有一种方法可以在不复制文本的情况下将文本从对象中剔除。我想念什么?
[假设textObj
是单行文本对象(AcDbText
)或多行文本对象(AcDbMText
),那么您应该能够使用TextString
属性获得文本内容,例如:
TextString
请注意,在ActiveX t = textObj.TextString
上调用方法clear()
和clear()
不会删除其包含的对象,而是分别从SelectionSet中删除对象和删除SelectionSet对象。但是,delete()
方法应该成功擦除SelectionSet中包含的所有对象。
尽管,要删除对象,通常只需在对象本身上调用delete()
方法,例如:
SelectionSet object