Как уже сказано в названии ezdxf , ezdxf работает с файлами DXF, а не с файлами DWG или DRW, в отличие от DXF, это DWG - недокументированный двоичный кодированный формат файла AutoCAD.
Может быть, вы можетеэкспортируйте ваши файлы как файлы DXF, чтобы обработать их с помощью ezdxf:
Сценарий 1, ATTRIB, прикрепленный к ссылке на блок INSERT:
doc = ezdxf.readfile('YourFile.dxf')
msp = doc.modelspace()
# block reference attributes (tags) are stored in the INSERT entity
for insert in msp.query('INSERT')
print(str(insert))
for attrib in insert.attribs():
print("Tag: {}, Value: {}".format(attrib.dxf.tag, attrib.dxf.text))
Сценарий 2, ATTRIB, MTEXT или TEXT в качестве отдельного объекта в пространстве моделиили пространство для бумаг:
msp = doc.modelspace()
# or getting paperspace:
# psp = doc.layout('TabName')
# search for ATTRIB entities
for attrib in msp.query('ATTRIB')
print("Tag: {}, Value: {}".format(attrib.dxf.tag, attrib.dxf.text))
# search for MTEXT entities
for mtext in msp.query('MTEXT')
print("MTEXT content: {}".format(mtext.get_text())
for text in msp.query('TEXT')
print("TEXT content: {}".format(text.dxf.text)
Сценарий 3, объекты, расположенные в определениях BLOCK:
for block in doc.blocks:
print('searching in BLOCK definition {}'.format(block.name))
# search for ATTRIB entities (or MTEXT and TEXT see above)
for attrib in block.query('ATTRIB')
print("Tag: {}, Value: {}".format(attrib.dxf.tag, attrib.dxf.text))
# or like scenarion 1, search for INSERT with attached ATTRIB
for insert in block.query('INSERT'):
for attrib in insert.attribs()
print("Tag: {}, Value: {}".format(attrib.dxf.tag, attrib.dxf.text))