使用python获取AutoCAD AcDbText对象的文本

问题描述 投票:0回答:1

在python中,获取AcDbText对象的文本的最佳方法是什么?

我正在python,win32com和autoCAD中工作。我希望能够通过python程序执行以下操作:

  • 将对象放入选择集中
  • 确定哪些是AcDbText对象
  • 从中提取文本,然后删除。

我可以完成前两件事。但是,假设textObj是正确的对象类型,则以下内容将达到剩余的一半-t将包含所需的文本作为str:

t = textObj.copy().fieldcode()
  • 问题1:正如代码所暗示的那样,这将在图形的正确位置创建对象的副本,并且似乎没有提供一种方法来稍后标识它以进行删除。

  • 问题2:原始对象拒绝从选择集中删除。如果selection是选择集,则selection.clear()selection.delete()selection.erase()的任何变化都不会做。 (我检查了fieldcode()调用前后的选择集的长度-对象数保持不变。)

我很困惑,似乎没有一种方法可以在不复制文本的情况下将文本从对象中剔除。我想念什么?

python-3.x com autocad
1个回答
0
投票

[假设textObj是单行文本对象(AcDbText)或多行文本对象(AcDbMText),那么您应该能够使用TextString属性获得文本内容,例如:

TextString

请注意,在ActiveX t = textObj.TextString 上调用方法clear()clear()不会删除其包含的对象,而是分别从SelectionSet中删除对象和删除SelectionSet对象。但是,delete()方法应该成功擦除SelectionSet中包含的所有对象。

尽管,要删除对象,通常只需在对象本身上调用delete()方法,例如:

SelectionSet object
© www.soinside.com 2019 - 2024. All rights reserved.