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

查看 161|回复 11
作者:Eks6666   
[Python] 纯文本查看 复制代码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   

如果是中望CAD,需要先安装pyzwcad。
[Python] 纯文本查看 复制代码pip install pyzwcad
[Python] 纯文本查看 复制代码from pyautocad
替换成
[Python] 纯文本查看 复制代码from pyzwcad
“AutoCAD.Application.19”需要换成“ZWCAD.Application.2024”
pyzwcad与pyautocad基本命令,大同小异。
blindcat   


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

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

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

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

收藏一下
noheartme   

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

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

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

感谢分享,感谢分享;
您需要登录后才可以回帖 登录 | 立即注册

返回顶部