From 8d0dde58b52951dbedc778afde22a82e21350d0d Mon Sep 17 00:00:00 2001 From: sladro Date: Mon, 23 Feb 2026 11:24:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20ParamDrawingPanel?= =?UTF-8?q?=20UI=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UI/ParamDrawingPanel.cs | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/UI/ParamDrawingPanel.cs b/UI/ParamDrawingPanel.cs index 49eb66c..fcfc375 100644 --- a/UI/ParamDrawingPanel.cs +++ b/UI/ParamDrawingPanel.cs @@ -532,6 +532,50 @@ namespace CadParamPluging.UI } } + // --------- 新增:提示用户保存参数文档 --------- + using (var saveDialog = new SaveFileDialog()) + { + saveDialog.Filter = "文本文件 (*.txt)|*.txt"; + string docName = System.IO.Path.GetFileNameWithoutExtension(doc.Name); + saveDialog.FileName = $"{docName}_生成参数.txt"; + + if (saveDialog.ShowDialog() == DialogResult.OK) + { + try + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine("========== CAD图纸生成参数 =========="); + sb.AppendLine($"生成时间: {DateTime.Now:yyyy-MM-dd HH:mm:ss}"); + sb.AppendLine($"关联图纸: {docName}"); + sb.AppendLine("------------------------------------"); + + // 从 catalog 中获取中文名称映射 + var catalogForSave = ParamCatalogStore.Load(); + + // 这里的 bag 已经在上面收集完成 + foreach (var item in bag.Items) + { + if (!string.IsNullOrWhiteSpace(item.Value)) + { + var def = catalogForSave?.FindByKey(item.Key); + string label = def != null ? def.Label : item.Key; + sb.AppendLine($"{label}: {item.Value}"); + } + } + + sb.AppendLine("===================================="); + + System.IO.File.WriteAllText(saveDialog.FileName, sb.ToString(), System.Text.Encoding.UTF8); + AppendLog($"参数文档已保存至: {saveDialog.FileName}"); + } + catch (Exception ex) + { + AppendLog($"保存参数文档失败: {ex.Message}"); + } + } + } + // --------------------------------------------- + AppendLog("图纸生成完成。"); } catch (BusinessException bex)