是否可以使用ezdxf在现有图层上定位文本?

时间:2019-12-06 07:02:29

标签: python-3.x autocad dxf ezdxf

我想在一个图层上获取多个TEXTMTEXT的位置信息,但我不知道如何。

请提供一些建议。

1 个答案:

答案 0 :(得分:1)

可以在excellent documentation中找到说明如何完成此操作的教程和示例。

例如,要获取位于模型空间中特定图层上的所有单行文本(TEXT)和多行文本(MTEXT)的集合,可以使用:

msp = doc.modelspace()
textset = msp.query('TEXT MTEXT[layer=="YourLayerHere"]')

获取此集合后,您可以遍历实体并查询插入点:

for e in msp.query('TEXT MTEXT[layer=="YourLayerHere"]'):
    if e.dxftype() == 'MTEXT' or (e.dxf.valign == 0 and e.dxf.halign in [0,3,5]):
        print("Position: %s\n" % e.dxf.insert)
    else:
        print("Position: %s\n" % e.dxf.align_point)