CadParamPluging/AGENTS.md

98 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md
## 输出风格
- 先给结论,再说明必要条件和风险。
- 说业务含义,不只报类名、方法名。
- 不重复用户已经明确的前提。
- 不用长篇背景说明替代直接答案。
- 发现需求表达可能有歧义时,先确认,不要自行扩大范围。
## 开发原则
- 不过度开发,只做当前需求能闭环的最小改动。
- 每一行改动都要能对应到用户需求。
- 不顺手重构、不清理无关代码、不改无关格式。
- 先定位模板和调用链,再改代码。
- 物理隔离模板优先改各自独立 Drawer不要改通用 `FeatureDrivenDrawer`,除非明确要影响所有模板。
## 项目结构认知
- 这是 AutoCAD 插件项目,主工程是 `CadParamPluging.csproj`
- CAD 绘图逻辑主要在 `Cad/`
- 模板生成器注册在 `Cad/Drawers/`
- 模板参数默认配置在 `Common/TemplateSchemaDefaults.cs`
- UI 参数入口主要在 `UI/ParamDrawingPanel.cs` 和相关窗体。
- 断线、中心线、图层、线型样式由 `Cad/DrawingStyleManager.cs` 管理。
## 模板隔离规则
当前项目模板是物理分开的,改模板前必须先确认对应文件:
- 车加工-轧制-环形:
- Drawer`Cad/RingMachinedRollingDrawer.cs`
- Generator`Cad/Drawers/RingMachinedRollingGenerator.cs`
- 毛料态-轧制-环形:
- Drawer`Cad/RingRawRollingDrawer.cs`
- Generator`Cad/Drawers/RingRawRollingGenerator.cs`
- 毛料态-自由锻-轴杆-圆轴:
- Drawer`Cad/ShaftRawFreeForgeRoundShaftDrawer.cs`
- Generator`Cad/Drawers/ShaftRawFreeForgeRoundShaftGenerator.cs`
- 毛料态-自由锻-轴杆-方轴:
- Drawer`Cad/ShaftRawFreeForgeSquareShaftDrawer.cs`
- Generator`Cad/Drawers/ShaftRawFreeForgeSquareShaftGenerator.cs`
不要因为模板逻辑相似就改错文件。确认 `TemplateKeyBuilder.Build(...)` 的四个参数后再动代码。
## 断线相关约定
- “断线数量”和“线型样式”是两回事:
- 几何断线数量:图上实际画几根竖线。
- 线型样式:每一根线内部显示为长线、短线、点划线等。
- 用户说“中间三个短竖线”时,通常指单根断线的线型图案,不是新增第三根几何断线。
- 四个相关模板的断线几何应保持两根竖向断线。
- 断线线型统一走 `DrawingStyleManager.Role.BreakLine`
- 断线对象需要显式设置 `LinetypeScale = 5.0`
- 若要改断线图案,优先改 `DrawingStyleManager` 的 BreakLine 线型定义,不要在各模板里新增额外断线实体。
## 轧制环形左侧断口约定
车加工-轧制-环形和毛料态-轧制-环形应保持一致:
- 左侧上下横线需要向断线左侧外延 10 个单位。
- 外延后的最左侧需要加中心线。
- 中心线使用 `Centerline` 样式,线型比例为 `8.0`
- 上下横线不能穿过两根断线之间,断线区域要断开。
- 底部水平尺寸标注线的左侧起点要和左延后的图形最左边对齐。
## 验证要求
修改后至少执行:
```powershell
& "C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" "CadParamPluging.csproj" /p:Configuration=Debug /p:Platform=AnyCPU /nologo
```
当前项目可能存在既有警告:
- AutoCAD 引用是 AMD64项目是 AnyCPU可能出现 `MSB3270`
- 个别文件可能有重复 `using System` 警告。
如果编译结果是 `0 个错误`,这些既有警告不要顺手处理,除非用户明确要求。
## 测试与回归检查
- 若行为可以用轻量源码级检查覆盖,可以在 `Tests/` 下增加窄范围测试。
- 测试只覆盖本次需求,不要扩大成通用框架。
- 测试生成的临时 `.exe` 要清理,不要留编译产物。
## Git 与改动边界
- 可能存在用户未提交改动,不能随意回退。
- 不使用 `git reset --hard`、`git checkout --` 等破坏性命令,除非用户明确要求。
- 不改 `bin/`、`obj/` 里的生成产物。
- 最终说明要列清楚改了哪些模板、哪些文件、验证结果。