跳转至

调试技巧

第六章:调试技巧

6.1 基础调试配置

回顾快速上手 - 2.5 节的三个要点:

  • 启动操作:启动外部程序 → LoongSTC.exe
  • 工作目录:LoongCAD 安装目录
  • 生成后事件:自动复制 DLL 到模型目录 Documents\LoongSTC\Models\<模型名>\config\comps\<组件名>\plugin.dll

⚠️ 如果不配置生成后事件,VS 编译的 DLL 留在 bin\Debug\ 中,LoongCAD 无法加载。目录里必须出现 plugin.dll;项目名 .dll 留在 bin\Debug\ 无效。

6.2 可视化辅助调试

在 #if DEBUG 块中绘制参考坐标系,是在 3D 场景中验证计算正确性的最佳手段:

#if DEBUG
void DrawCoord(Vector x, Vector y, Vector z, Point origin, double len = 500)
{
    // 原点
    new ControlPoint { Point = new Point(origin) }.Insert();
    // X 轴(红色)
    new ControlLine {
        Line  = new LineSegment(new Point(origin), new Point(origin + x * len)),
        Color = new Color(1, 0, 0)
    }.Insert();
    // Y 轴(绿色)
    new ControlLine {
        Line  = new LineSegment(new Point(origin), new Point(origin + y * len)),
        Color = new Color(0, 1, 0)
    }.Insert();
    // Z 轴(蓝色)
    new ControlLine {
        Line  = new LineSegment(new Point(origin), new Point(origin + z * len)),
        Color = new Color(0, 0, 1)
    }.Insert();
}
#endif

在 CalcParams() 末尾调用 DrawCoord(axisX, axisY, axisZ, origin),你就能在 3D 视图中看到你计算的坐标系是否合理。

6.3 常见坑及排查

现象 可能原因 排查方法
组件不显示在组件管理器中 DLL 未复制到模型目录或用户目录,或 [PluginNumber] 冲突 检查 Documents\LoongSTC\Models\<模型>\config\comps\<组件名>\ 下是否存在 plugin.dll(不是 Acme_BeamDemo.dll 这类项目名);若仍没有,再查 工具 → 模型设置 → 用户目录 → 组件节点 下的同名子目录;检查编号唯一性
DLL 编译成功但软件没反应 生成后事件未配置或路径错误 检查 VS 输出窗口的生成后事件日志;确认模型目录路径存在
板/螺栓位置偏移 工作平面没正确激活或还原 在 DEBUG 下画坐标系,检查位置
GetCenterLine 返回旧数据 没调用 Select() 在所有数据获取前加 Select()
螺母放在板内侧 未设置 Position.Rotation 或 ThreadInMaterial 检查螺栓的 Rotation 和 ThreadInMaterial 属性
切割面方向反了 Plane 的法向量方向取反 试试 -normalVector