首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ezdxf向层名添加顺序编号

如何使用ezdxf向层名添加顺序编号
EN

Stack Overflow用户
提问于 2019-08-06 07:28:22
回答 1查看 118关注 0票数 0

我想知道如何使用ezdxf向层名添加序列号。

AutoCAD层名称列表:

  • ABC
  • 定义
  • GHI

更改后的图层名称列表:

  • AAA1
  • AAA2
  • AAA3

我想改变上面的图层名称。

我尝试使用for语句,但它不起作用。

代码语言:javascript
复制
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

所有层名之后的数字都变成了相同的数字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-06 12:04:15

您不需要单独的for循环来增加变量i;相反,在层集合上迭代时增加这个变量。

即:

代码语言:javascript
复制
i = 1
for layer in dwg.layers:
    new_layername1 = 'AAA' + str(i)
    ...
    i += 1

您还可能希望在重命名之前检查目标层名称是否存在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57370968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档