跳转至

项目组织与发布

第九章:项目组织与发布

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。