我想从DXF文件中删除每个Circle实体。我正在使用ezdxf,它似乎是这种工作的好工具。
我使用ezdxf doc编写我的代码,但是我收到Python的错误:
AttributeError: 'str' objet has no attribute 'destroy'
我不明白为什么。我使用了这个文档:http://pythonhosted.org/ezdxf/layouts.html#delete-entities
这是我的代码:
import dxfgrabber
import ezdxf
dwg = dxfgrabber.readfile("test.dxf")
print(dwg)
c = []
center_points = [entity.center for entity in dwg.entities if entity.dxftype == 'CIRCLE']
dxf = ezdxf.readfile("test.dxf")
modelspace = dxf.modelspace()
for point in center_points:
modelspace.add_point(point)
c.append(point)
modelspace.delete_entity('CIRCLE')
dxf.save()
print(c)
感谢。
答案 0 :(得分:2)
我成功了。我发布了我的代码:
entities = dxf.entities
for e in entities:
if e.dxftype() == 'CIRCLE':
modelspace.delete_entity(e)
而不是:
modelspace.delete_entity('CIRCLE')
我认为它可能有更好的方法,但它正在发挥作用。
答案 1 :(得分:1)
或使用query()函数:
msp = dxf.modelspace()
for circle in msp.query('CIRCLE'):
msp.delete_entity(circle)