import ezdxf def replace_texts_in_dxf(file_path, replacements): # 加载DXF文档 doc = ezdxf.readfile(file_path) # 获取模型空间 msp = doc.modelspace() # 遍历模型空间中的所有TEXT和MTEXT实体 for e in msp: if isinstance(e, ezdxf.entities.Text): # 对于TEXT实体,遍历替换字典并应用替换 for old_text, new_text in replacements.items(): if old_text in e.dxf.text: e.dxf.text = e.dxf.text.replace(old_text, new_text) elif isinstance(e, ezdxf.entities.MText): # 对于MTEXT实体,同样遍历替换字典并应用替换 # 注意:这可能会破坏MText的格式,因为整个文本内容被替换了 # 如果需要保留格式,您可能需要实现更复杂的逻辑来处理MText实体 current_text = e.text for old_text, new_text in replacements.items(): if old_text in current_text: current_text = current_text.replace(old_text, new_text) e.text = current_text # 保存更改后的DXF文件 doc.saveas(file_path) # 替换字典,键是要替换的旧文本,值是新文本 replace_dict = { '关键词1': '替换词1', '关键词2': '替换词2', '关键词3': '替换词3' } # 使用示例 filename='需替换的文件.dxf' replace_texts_in_dxf(filename, replace_dict)
测试可用.