即使使用ezdxf更改了层名称,也将保留前一层。 我在ezdxf中更改了autocad图层名称,但是添加了新的图层名称,而保留了旧的图层名称。
import ezdxf
import glob
from pathlib import Path
import os
from typing import TYPE_CHECKING, TextIO, Iterable
ile_list=glob.glob('./input/*.dxf')
for filename in file_list:
dwg = ezdxf.readfile(filename,encoding='auto',legacy_mode=False)
msp = dwg.modelspace()
OLD_LAYER_NAME1 = 'ABC'
NEW_LAYER_NAME1= 'DEF'
try:
layer = dwg.layers.get(OLD_LAYER_NAME1)
except ValueError:
print('Layer {} not found.'.format(OLD_LAYER_NAME1))
else:
layer.dxf.name = NEW_LAYER_NAME1
all_entities_on_old_layer = dwg.modelspace().query('*[layer=="%s"]' % OLD_LAYER_NAME1)
for entity in all_entities_on_old_layer:
entity.dxf.layer = NEW_LAYER_NAME1 # this assigns the new layer
没有错误消息出现,但是当您查看图层名称列表时,旧的图层名称仍然保留。
更改前的层名称列表:
ABC
ABCD
ABCDE
・・・
更改后的层名称列表:
ABC
DEF
ABCD
ABCDE
理想:
DEF
ABCD
ABCDE