【发布时间】:2020-04-01 07:12:15
【问题描述】:
有没有办法从图层列表中删除一个空图层? 我想做和 autocad purge 命令一样的事情。
我尝试编写代码,但没有成功。
del_lay = []
for layer in dwg.layers:
s = layer.dxf.name
lay_= re.search(layer.dxf.name, s)
if lay_:
L = lay_.group()
del_lay.append(L)
del_lay.remove("0") #0 layer cannot be deleted, so remove it from the list
for Lay in del_lay:
all_entities = dwg.modelspace().query('*[layer=="%s"]' % Lay)
print(all_entities)
for entity in all_entities: #If there is no entity in the layer
if entity not in all_entities:
delete_name = layer.dxf.name
my_lines = dwg.layers.get(delete_name)
dwg.layers.remove(my_lines)
我自己查的时候,有一层entity不存在,但是没有执行。
NameError: name 'delete_name' 未定义
【问题讨论】:
-
如果您删除一个层表条目,您可能需要检查更多可能的层使用情况,不仅是模型空间(布局、块定义、层过滤器等),而且所有可能的用例都是DXF 参考没有记录,我的建议是:不要删除层表条目并参加一些编程课程。