超级干货-python批量修改替换cad图纸文本
from pyautocad import Autocad,APointimport 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程序
如果是中望CAD,需要先安装pyzwcad。
pip install pyzwcad
from pyautocad
替换成
from pyzwcad
“AutoCAD.Application.19”需要换成“ZWCAD.Application.2024”
pyzwcad与pyautocad基本命令,大同小异。
文风 发表于 2024-4-10 08:00
能告诉如何使用吗,这个代码
安装python环境,会建虚拟环境的话建一个,安装Autocad,APoint依赖。
把上面的代码复制到一个文本文件中,把里面的path路径改成你的,把文件名及后缀改成 main.py
然后在当前目录下使用命令行,运行:python main.py
收藏一下,也许以后能用得上 正好推给我设计院的同学看看 收藏一下 收藏一下!正好有此需要。 这个适用于大批量文件处理,要是少量几个文件可以直接在cad里面手动查找替换就行了 谢谢分享,正在研究cad方面的。 大佬 有psd 修改问题 能否请教下呢 blindcat 发表于 2024-4-10 07:24
收藏一下,也许以后能用得上
能告诉如何使用吗,这个代码 这代码怎么用?求教