ezdxf: как удалить сущность - PullRequest
0 голосов
/ 07 ноября 2019

Я использую пакет 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 и не могу перейти на новую версию прямо сейчас

...