首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ezdxf :如何删除实体

ezdxf :如何删除实体
EN

Stack Overflow用户
提问于 2019-11-07 22:58:41
回答 1查看 340关注 0票数 1

我正在使用ezdxf包对DXF图形进行后处理。然后,我将DXF转换为SVG。

在后处理过程中,我需要删除一些位于绘图区域之外的插入实体,以便转换后的SVG具有正确的尺寸。我正在做这样的事情:

代码语言:javascript
复制
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版本,现在不能升级到新版本

EN

回答 1

Stack Overflow用户

发布于 2021-06-05 03:52:25

我刚刚开始使用ezdxf,并看到了以下内容:

https://ezdxf.mozman.at/docs/develop/entitydb.html

注意purgetrashcan。垃圾桶提到“离开上下文时”,所以也许有一种方法可以使用with语句来促进对象的删除?保存它,使用delete_entity在循环之后显式调用purge?迭代器文档说它不会返回已删除的项目,但“从轨道核它,这是唯一的方法来确定”是一个很好的座右铭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58751445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档