Eks6666 发表于 2024-4-10 00:41

超级干货-python批量修改替换cad图纸文本

from pyautocad import Autocad,APoint
import math
import os
import os.path as osp
import re

reg=re.compile(r'.*(.dwg)$')#匹配dwg文件
path=r"F:\22年14批预算明细"
lst=[]
for dirpath,dirname,filename in os.walk(path):
        li=[osp.join(dirpath,s) for s in filename if osp.isfile(osp.join(dirpath,s))
                                                                                          if reg.findall(s)]
        for i in li:
                if i:
                        lst.append(i)

for filename in lst:
        #连接CAD
        acad=Autocad(create_if_not_exists=True,visible=True)#create_if_not_exists—如果CAD不运行,则会创建新的实例.visible -如果为True,新AutoCAD实例将可见(默认)
        #打开/读取CAD文件
        acad.ActiveDocument.Application.Documents.open(filename)
        acad.prompt("Hello! ZWCAD from pyautocad.")
        print(acad.doc.Name)

        #遍历CAD文件中的所有文本对象,打印其文本内容及坐标位置
        for text in acad.iter_objects("Text"):#遍历Text对象
                #修改对象属性,将文本中的"x批"字符替换为"14批"
                if 'x批' in text.TextString:
                        print('text: %s at: %s' %(text.TextString,text.InsertionPoint))
                        # 修改對象屬性
                        text1 = str(text.TextString)
                        text1 = text1.replace('x批','14批')
                        text.TextString = text1
                        acad.ActiveDocument.SaveAs(filename, 61)#同名另存

        acad.ActiveDocument.Close()#关闭当前
         

acad.app.Quit()#退出cad程序


         

Rick_Nikita 发表于 2024-4-12 17:16

如果是中望CAD,需要先安装pyzwcad。
pip install pyzwcad
from pyautocad
替换成
from pyzwcad

“AutoCAD.Application.19”需要换成“ZWCAD.Application.2024”

pyzwcad与pyautocad基本命令,大同小异。

blindcat 发表于 2024-4-11 08:56

文风 发表于 2024-4-10 08:00
能告诉如何使用吗,这个代码

安装python环境,会建虚拟环境的话建一个,安装Autocad,APoint依赖。
把上面的代码复制到一个文本文件中,把里面的path路径改成你的,把文件名及后缀改成 main.py
然后在当前目录下使用命令行,运行:python main.py

blindcat 发表于 2024-4-10 07:24

收藏一下,也许以后能用得上

Cleaf007 发表于 2024-4-10 07:35

正好推给我设计院的同学看看

360204878 发表于 2024-4-10 07:42

收藏一下

noheartme 发表于 2024-4-10 07:46

收藏一下!正好有此需要。

xiaoyaochaoran 发表于 2024-4-10 07:48

这个适用于大批量文件处理,要是少量几个文件可以直接在cad里面手动查找替换就行了

happyxuexi 发表于 2024-4-10 07:51

谢谢分享,正在研究cad方面的。

Vincent2018 发表于 2024-4-10 07:55

大佬 有psd 修改问题 能否请教下呢

文风 发表于 2024-4-10 08:00

blindcat 发表于 2024-4-10 07:24
收藏一下,也许以后能用得上

能告诉如何使用吗,这个代码

luxiaoqi0811 发表于 2024-4-10 08:03

这代码怎么用?求教
页: [1] 2 3 4 5
查看完整版本: 超级干货-python批量修改替换cad图纸文本