admin管理员组文章数量:1626976
一、背景:
在日常的工作中经常会遇到需要修改CAD文档的文字内容,假如需要修改的文档个数成百上千,每一个文档都需要依次打开就比较头疼了,这里分享给大家一个可以批量修改的小工具。
二、解决办法:
由于我已经把日常的生产力软件由arcmap转移为arcgispro3.02,所以插件开发也在arcgispro上进行,主要还是因为python3相比python2有很多升级,结合arcgis工具箱好用的交互界面可以在arcgis软件上开发很多与arcgis软件功能有关或没有关系的插件,而不必使用tkinter、pyqt等去设计UI,毕竟好用比好看重要嘛。
在使用插件之前需要搭建一下python环境(实在不明白的可以略过直接跳转文末)。
1、打开arcgispro(软件下载及安装可以百度一下,资源很多),依次进入工程→包管理器→环境管理器(齿轮形状的图标)
如果克隆失败,也可以手动创建文件夹,手动复制。
2、激活环境并加入系统环境变量(此操作初学python就要掌握的,这里简单截图)
3、使用pip安装一下pyautocad这个python控制AutoCAD的库。
打开cmd并输入(需要连接网络哟):
pip install pyautocad -i http://pypi.douban/simple --trusted-host pypi.douban
4、下面就可以正式制作工具箱了
5、上一部点击保存之后,新建的工具箱会自动添加到当前的工程,后面依次:右击工具箱-新建-脚本
选择与下图对应的选项(注意从上往下的对应顺序),都是下拉选项很简单
然后切换到“执行”输入下面这一段代码
import pyautocad
import glob
import json
import arcpy
import os
arcpy.AddMessage("熊顺兵\nqq514360223\n2024-1-19")
f_path = arcpy.GetParameterAsText(0)
rules_f = arcpy.GetParameterAsText(1)
text_style = arcpy.GetParameterAsText(2)
f_lis = glob.glob("{0}\\*.dwg".format(f_path))
rules_info = ""
with open(rules_f,"r",encoding = "utf-8") as f:
rules_info = f.readline()
replace_dic = json.loads(rules_info)
app = pyautocad.Autocad(create_if_not_exists = True)
for file_name in f_lis:
arcpy.AddMessage("正在修改:{0}".format(os.path.basename(file_name)))
doc = app.ActiveDocument.Application.Documents.Open(file_name)
for i in app.iter_objects(object_name_or_list = "Text",dont_cast=True):
old_str = i.TextString
for str in replace_dic.keys():
if str in old_str:
i.TextString = i.TextString.replace(str,replace_dic[str])
if text_style.replace(" ","") != "":
try:
i.StyleName = text_style
except Exception:
arcpy.AddMessage(Exception)
raise
doc.close()
arcpy.AddMessage("处理完成!")
6、工具箱就完成啦,真的特别简单。
三、工具箱使用方法
1、新建一个txt文件,并用python字典的格式输入需要替换的文字内容,键表示需要被替换的文字内容,值表示需要替换文字内容,键和值都用英文状态的双引号或单引号包围起来。如{"A":"1","B":"2","C":"3","D":"4"};
2、假如有两个cad文档需要处理,且它们都在同一个文件夹里面,第一个文档里面需要把A、B分别替换为1、2,第二个文档需要把C、D替换为3、4。
3、打开AutoCAD,并新建一个空白的文档(软件打开会自动新建,不要关闭就可以)
4、点击运行,CAD就会自动开始依次搜索文档里面的文字,并完成替换、保存、退出。
四、写在最后
AutoCAD、Office、Arcgis、Photoshop、FME这些吃饭家伙的二次开发开对测绘工作的帮助真的蛮大的,这是我第一个分享,希望可以帮到初入测绘行业的朋友。
嫌麻烦也没事,这里是工具下载地址:
链接:https://pan.baidu/s/1v3riqKeKB0u53Bu82G27Dg
提取码:6okq
版权声明:本文标题:使用python批量替换AutoCAD文档文字内容(包含搭建arcgispro python开发环境) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728984098a1181844.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论