【问题标题】:How to Add Sequential Numbers to Layer Names using ezdxf如何使用 ezdxf 将序号添加到层名称
【发布时间】:2019-08-08 03:15:19
【问题描述】:

我想知道如何使用 ezdxf 为图层名称添加序号。

AutoCAD 图层名称列表:

  • ABC
  • DEF
  • 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

所有图层名称后的数字变为相同的数字。

【问题讨论】:

    标签: python-3.x autocad dxf


    【解决方案1】:

    您不需要单独的for 循环来增加变量i;相反,在您遍历图层集合时递增此变量。

    即:

    i = 1
    for layer in dwg.layers:
        new_layername1 = 'AAA' + str(i)
        ...
        i += 1
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-26
      • 2019-02-06
      • 2012-01-31
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多