我尝试使用 INSERT 标签提取 HATCH 实体及其模式类型,这些实体作为 BLOCK REFERENCES 插入图纸中。dxf 图纸是https://drive.google.com/open?id=1SnGDaIh8XiMe0QKAQy1RXzpT-rLNcLk7
我在 python-3.6 上使用更新包 ezdxf-0.12 使用以下代码
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)
该代码未打印具有 ANSI31 模式的 HATCH 实体。dxf 文件中有 2 个,可以在 Autocad 中查看(甚至可以使用常规文本编辑器查找)。可以注意到,在给定的 dxf 文件中具有 SOLID 模式的 HATCH 实体照常打印。
代码或包更新中是否有任何错误?