Я попытался извлечь объекты HATCH вместе с их типами шаблонов, которые вставлены в чертежи в качестве БЛОКИРОВКИ, используя тег INSERT. Чертеж dxf: https://drive.google.com/open?id=1SnGDaIh8XiMe0QKAQy1RXzpT-rLNcLk7
Я использовал следующий код, используя обновленный пакет ezdxf-0.12 для python -3.6
import ezdxf
import argparse
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True,
help="path to input dxf file")
args = vars(ap.parse_args())
file = args["input"]
doc = ezdxf.readfile(file)
msp = doc.modelspace()
for flag_ref in msp.query('INSERT'):
for entity in flag_ref.virtual_entities():
if entity.dxftype() == 'HATCH':
print("HATCH", entity.dxf.pattern_name)
Код не печатался HATCH объекты, имеющие шаблоны ANSI31. В файле dxf их 2, которые можно просматривать в Autocad (или даже просматривать с помощью обычных текстовых редакторов). Можно отметить, что объекты HATCH, имеющие шаблоны SOLID в данном файле dxf, были напечатаны как обычно.
Есть ли какая-либо ошибка в коде или обновлении пакета?