98 lines
4.0 KiB
Markdown
98 lines
4.0 KiB
Markdown
# 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/` 里的生成产物。
|
||
- 最终说明要列清楚改了哪些模板、哪些文件、验证结果。
|