项目组织与发布
第九章:项目组织与发布
9.1 推荐的项目目录结构
YourId_BeamJoint/ ← 解决方案目录
├── YourId_BeamJoint.sln
└── YourId_BeamJoint/ ← 组件主项目
├── YourId_BeamJoint.cs ← 组件主类
├── YourId_BeamJointData.cs ← 参数数据类
├── YourId_BeamJointCalc.cs ← 纯几何计算(可单独测试)
├── YourId_BeamJointForm.cs ← WinForms 窗口
├── YourId_BeamJointForm.Designer.cs
└── YourId_BeamJoint.csproj
9.2 纯逻辑解耦与单元测试
将几何计算逻辑从 API 调用中分离出来:
// MyJointCalc.cs —— 不依赖任何 LoongCAD API
public static class MyJointCalc
{
public static List<double> CalcBoltDistances(int count, double spacing)
{
var list = new List<double>();
for (int i = 0; i < count - 1; i++) list.Add(spacing);
return list;
}
public static double CalcPlateWidth(
int cols, double spacing, double marginL, double marginR)
{
return marginL + (cols - 1) * spacing + marginR;
}
}
附录 A:开发速查清单
注册阶段
- [ ] [Plugin] 名称与 .inp 文件名一致
- [ ] [PluginNumber] 全局唯一(外部开发者使用 90000 以上号段)
- [ ] [PluginUserInterface] 与 WinForms 类名完全一致
- [ ] 项目名/命名空间/窗体类名包含开发者唯一标识,格式 {标识}_{功能}
Run() 方法
- [ ] 入口处对场景对象做 null 检查
- [ ] 获取数据前调用 Select()
- [ ] SetCurrentTransformationPlane() 激活和还原成对出现
- [ ] 还原时:先 refMat.Inverse() 再设置平面
参数数据类
- [ ] 标注 [AttributeFields]
- [ ] 所有字段在构造函数中初始化默认值
几何创建
- [ ] 所有对象调用 .Insert() 提交到场景
- [ ] 每个 ModelObject 设置不重复的 Label 属性
- [ ] #if DEBUG 中绘制坐标系辅助调试
附录 B:参考资源
- LoongCAD 官网:www.loongcad.com
- 本指南配套 Demo:见同仓库下
ConnectionDemo/、CustomDemo/、DetailDemo/等目录 - HelloComponents:最简单的入门示例,包含一个节点和一个自定义组件
- HelloRemoteCall:独立程序调用 LoongCAD 的示例
本指南持续更新中。如有疑问或发现错误,欢迎提交 Issue。