分图层导出CAD中的文字及格式,修改后再导入CAD。达到批量修改替换的目的。
仅做抛砖引玉,表述自己的思路。因:
1,工作需要,使用PDMS时report工具做批量修改很方便。
2,工作需要,CAD中也会有需要批量修改、替换文字内容、格式等。
使用说明:自行搜索pyautocad相关
参考:
https://help.autodesk.com/view/OARX/2025/CHS/?guid=GUID-ED298AC7-19E0-4E54-8983-48439EF70116
pyautocad 手册 中文版.pdf
依赖库:pyzwcad,pandas
同理:pyautocad
导出:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pyzwcad import ZwCAD, APoint
import pandas as pd
import re
acad = ZwCAD()
# acad.prompt("Hello, Autocad from Python\n")
print(acad.doc.Name)
# target_layer1 = "1"# 指定目标图层名称
data = []# 用于存储文本和坐标信息的列表
for text in acad.iter_objects('Text'):
if text.Layer == "0"\
or text.Layer == "1"\
or text.Layer == "2":
# if re.findall(u"V", text.TextString):
# print(text.TextString, text.InsertionPoint)
text.InsertionPoint = APoint(text.InsertionPoint)
data.append({'Text': text.TextString,
'XPosition': text.InsertionPoint,
'YPosition': text.InsertionPoint,
'Layer': text.Layer,
'handle': text.Handle,
"ID": text.ObjectID,
"Style": text.StyleName,
'Height': text.Height})
print(text.TextString,text.Layer)
# 创建DataFrame对象
df = pd.DataFrame(data)
print("----总数:%d ----" % df.shape)
# 将DataFrame导出为Excel文件
df.to_excel('output.xlsx', index=False)
# 将DataFrame导出为txt文件
df.to_csv('output.txt', sep='\t',index=False)
# # 或将DataFrame导出为CSV文件
# df.to_csv('text_data.csv', index=False)
导出指定图层的文字内容、格式。见output.xlsx或output.txt
可根据Autocad帮助手册自行选择需导出内容
对output.xlsx内容修改后,导入:
from pyzwcad import ZwCAD, APoint
import pandas as pd
acad = ZwCAD()
acad.prompt("Hello, Autocad from Python\n")
print(acad.doc.Name)
# target_layer = "1"# 指定目标图层名称
data_out = []# 用于存储文本和坐标信息的列表
df_in = pd.read_excel(io=r'output.xlsx')
i = 0
for text in acad.iter_objects('Text'):
if text.Layer == "0"\
or text.Layer == "1"\
or text.Layer == "2":
text.TextString = df_in.values
i = i + 1
print("%d / %d" % (i, df_in.shape))
按照修改后的output.xlsx导入
Gweyshyn 发表于 2024-10-8 15:29
我遇到过的问题主要是很多设计院的图纸,它设计说明是炸开的文字,很多都是不能用多行文字复制出来,这种 ...
浩辰好像还没推出类似pyautocad的依赖库,大概率无法使用 Gweyshyn 发表于 2024-10-8 15:37
单行字,经过字母或者标点符号时候单行也换变成单个文字,不是点线组成的文字
单行文字和多行文字都可以导出,需要修改筛选类型,参考Autocad的帮助文件
https://help.autodesk.com/view/OARX/2025/CHS/?guid=GUID-ED298AC7-19E0-4E54-8983-48439EF70116 专业,不明觉厉,公司几年前就已经买了正版浩辰了,说是被传票吓炸了 Gweyshyn 发表于 2024-10-8 15:26
专业,不明觉厉,公司几年前就已经买了正版浩辰了,说是被传票吓炸了
我们也全部卸载AutoCAD了 Rick_Nikita 发表于 2024-10-8 15:27
我们也全部卸载AutoCAD了
我遇到过的问题主要是很多设计院的图纸,它设计说明是炸开的文字,很多都是不能用多行文字复制出来,这种可以用您这个插件吗,浩辰
Gweyshyn 发表于 2024-10-8 15:29
我遇到过的问题主要是很多设计院的图纸,它设计说明是炸开的文字,很多都是不能用多行文字复制出来,这种 ...
炸开的文字,是指单行文字还是由点线组成的文字 Rick_Nikita 发表于 2024-10-8 15:32
炸开的文字,是指单行文字还是由点线组成的文字
单行字,经过字母或者标点符号时候单行也换变成单个文字,不是点线组成的文字
一直用的是AUTOCAD试试有没有用。 hyxk 发表于 2024-10-8 16:08
一直用的是AUTOCAD试试有没有用。
pyautocad就是为AutoCAD开发的