更改图层名称时保留上一层

时间:2019-07-10 06:38:43

标签: python-3.x autocad

即使使用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

0 个答案:

没有答案