如何使用 ezdxf 将序号添加到图层名称
How to Add Sequential Numbers to Layer Names using ezdxf
我想知道如何使用ezdxf给图层名称添加序号。
AutoCAD图层名称列表:
- ABC
- 防御
- GHI
修改后的图层名称列表:
- AAA1
- AAA2
- AAA3
我想像上面那样更改图层名称。
我尝试使用 for
语句,但它不起作用。
import ezdxf
import glob
from pathlib import Path
import os
import re
from typing import TYPE_CHECKING, TextIO, Iterable
file_list=glob.glob('./input/*.dxf')
for filename in file_list:
dwg = ezdxf.readfile(filename,encoding='auto',legacy_mode=False)
msp = dwg.modelspace()
old_layername1 = '\w+'
for layer in dwg.layers:
s=layer.dxf.name
old_layername11 = re.search(old_layername1,s)
if old_layername11:
old_layername11=old_layername11.group()
for i in range(1,10):
new_layername1 = 'AAA'+str(i)
try:
layer = dwg.layers.get(old_layername11)
except ValueError:
print('Layer {} not found.'.format(old_layername11))
else:
layer.dxf.name = new_layername1
所有层名后的数字变为相同的数字
您不需要单独的 for
循环来递增变量 i
;相反,在遍历图层集合时增加此变量。
即:
i = 1
for layer in dwg.layers:
new_layername1 = 'AAA' + str(i)
...
i += 1
您可能还想在重命名之前检查目标图层名称是否存在。
我想知道如何使用ezdxf给图层名称添加序号。
AutoCAD图层名称列表:
- ABC
- 防御
- GHI
修改后的图层名称列表:
- AAA1
- AAA2
- AAA3
我想像上面那样更改图层名称。
我尝试使用 for
语句,但它不起作用。
import ezdxf
import glob
from pathlib import Path
import os
import re
from typing import TYPE_CHECKING, TextIO, Iterable
file_list=glob.glob('./input/*.dxf')
for filename in file_list:
dwg = ezdxf.readfile(filename,encoding='auto',legacy_mode=False)
msp = dwg.modelspace()
old_layername1 = '\w+'
for layer in dwg.layers:
s=layer.dxf.name
old_layername11 = re.search(old_layername1,s)
if old_layername11:
old_layername11=old_layername11.group()
for i in range(1,10):
new_layername1 = 'AAA'+str(i)
try:
layer = dwg.layers.get(old_layername11)
except ValueError:
print('Layer {} not found.'.format(old_layername11))
else:
layer.dxf.name = new_layername1
所有层名后的数字变为相同的数字
您不需要单独的 for
循环来递增变量 i
;相反,在遍历图层集合时增加此变量。
即:
i = 1
for layer in dwg.layers:
new_layername1 = 'AAA' + str(i)
...
i += 1
您可能还想在重命名之前检查目标图层名称是否存在。