From d876d663a4129b7264eb96d6573379bf568e2bf8 Mon Sep 17 00:00:00 2001 From: sladro Date: Thu, 5 Feb 2026 10:14:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Implement=20square=20shaft=20free=20for?= =?UTF-8?q?ge=20drawing=20functionality,=20including=20its=20generator,=20?= =?UTF-8?q?drawer,=20and=20parameter=20UI,=20and=20add=20.editorconfig.?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E6=96=B9=E8=BD=B4=E7=9A=84=E7=94=BB?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 4 ++++ .../ShaftRawFreeForgeSquareShaftGenerator.cs | 2 ++ Cad/ShaftRawFreeForgeSquareShaftDrawer.cs | Bin 34474 -> 18034 bytes UI/ParamDrawingPanel.cs | 8 ++++++++ 4 files changed, 14 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..cfbf1c6 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*.cs] +charset = utf-8-bom diff --git a/Cad/Drawers/ShaftRawFreeForgeSquareShaftGenerator.cs b/Cad/Drawers/ShaftRawFreeForgeSquareShaftGenerator.cs index 165fade..35a3e57 100644 --- a/Cad/Drawers/ShaftRawFreeForgeSquareShaftGenerator.cs +++ b/Cad/Drawers/ShaftRawFreeForgeSquareShaftGenerator.cs @@ -38,7 +38,9 @@ namespace CadParamPluging.Cad public void Draw(CadContext ctx, ParamBag bag, TemplateParams templateParams, Point3d center, double scaleFactor) { + System.Diagnostics.Debug.WriteLine($"[SquareShaftGenerator] Draw() 被调用,准备调用 Drawer"); ShaftRawFreeForgeSquareShaftDrawer.Draw(ctx, bag, center, scaleFactor); + System.Diagnostics.Debug.WriteLine($"[SquareShaftGenerator] Drawer 调用完成"); } } } diff --git a/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs b/Cad/ShaftRawFreeForgeSquareShaftDrawer.cs index 562ef669ac62bcb24036d02a78457e8e1bbee99b..c8079e456e4f332cc1e3eae7025ed77dfb94910c 100644 GIT binary patch literal 18034 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 literal 34474 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 M%UWKYtgySO5S3 diff --git a/UI/ParamDrawingPanel.cs b/UI/ParamDrawingPanel.cs index dcac0b2..49eb66c 100644 --- a/UI/ParamDrawingPanel.cs +++ b/UI/ParamDrawingPanel.cs @@ -236,6 +236,9 @@ namespace CadParamPluging.UI AppendLog($"未找到该模板的图纸生成逻辑(TemplateKey={templateKey})。请先实现对应模板生成器。"); return; } + + // 调试日志:显示找到的生成器类型 + AppendLog($"[调试] 已找到生成器: {generator.GetType().Name}, TemplateKey={templateKey}"); var catalog = ParamCatalogStore.Load(); CadParamPluging.Common.ParamBag bag; @@ -442,14 +445,19 @@ namespace CadParamPluging.UI // Let's just log specific keys we suspect. AppendLog($"Bag Keys check: OD1={bag.GetDoubleOrNull("OuterDiameter1")}, H1={bag.GetDoubleOrNull("Height1")}"); + // 方轴参数检查 + AppendLog($"[方轴参数] Size1={bag.GetDoubleOrNull("SquareShaftSize1")}, Size2={bag.GetDoubleOrNull("SquareShaftSize2")}, Size3={bag.GetDoubleOrNull("SquareShaftSize3")}"); + // 根据模板参数绘制半剖视图,居中放置于原图纸位置 // 使用特征驱动模式:根据参数存在性动态绘制对应特征 + AppendLog($"[绘图] 准备调用 generator.Draw, scaleFactor={scaleFactor}"); generator.Draw( ctx, bag, tplParams, removeResult.OriginalCenter, scaleFactor); + AppendLog($"[绘图] generator.Draw 调用完成"); // Force Zoom Extents to ensure visibility try { doc.SendStringToExecute("._ZOOM _E ", true, false, false); } catch { }