Даже если имя слоя изменяется с помощью ezdxf, предыдущий слой остается.
Я изменил имя слоя autocad в ezdxf, однако новые имена слоев добавляются, а старые имена слоев остаются.
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
Ideal:
DEF
ABCD
ABCDE