我正在使用该ezdxf
软件包对 DXF 图纸进行后处理。然后,我将 DXF 转换为 SVG。
在后处理期间,我需要删除一些位于绘图区域之外的 INSERT 实体,以便转换后的 SVG 具有正确的尺寸。我正在做这样的事情:
def dxftype(entity):
notHandled = []
if entity.dxftype() in notHandled:
return None
else:
return entity.dxftype()
def hasToBeDeleted(entity):
"""
Some criteria for deleting an entity
return a Boolean
"""
dwg = ezdxf.readfile("myDxfFile.dxf")
msp = dwg.modelspace()
group = msp.groupby(key=dxftype)
for entityType, entities in group.items():
for e in entities:
if hasToBedeleted(e):
msp.delete_entity(e)
问题是,在转换实体时不会删除。事实上,如果我在这之后立即执行另一个抑制循环,循环仍然会采取行动删除实体,证明实体并未真正从模型空间中删除。
那么从 ezdxf 的模型空间中删除实体的正确方法是什么?我目前使用的是 0.9 版本,目前无法升级到新版本