调试技巧
第六章:调试技巧
6.1 基础调试配置
回顾快速上手 - 2.5 节的三个要点:
- 启动操作:启动外部程序 →
LoongSTC.exe - 工作目录:LoongCAD 安装目录
- 生成后事件:自动复制 DLL 到模型目录
Documents\LoongSTC\Models\<模型名>\config\comps\<组件名>\
⚠️ 如果不配置生成后事件,VS 编译的 DLL 留在
bin\Debug\中,LoongCAD 无法加载。必须将 DLL 复制到模型目录下的config\comps\<组件名>\路径中。
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\<组件名>\ 下是否有 DLL;检查编号唯一性 |
| DLL 编译成功但软件没反应 | 生成后事件未配置或路径错误 | 检查 VS 输出窗口的生成后事件日志;确认模型目录路径存在 |
| 板/螺栓位置偏移 | 工作平面没正确激活或还原 | 在 DEBUG 下画坐标系,检查位置 |
GetCenterLine 返回旧数据 |
没调用 Select() |
在所有数据获取前加 Select() |
| 螺母放在板内侧 | 未设置 Position.Rotation 或 ThreadInMaterial |
检查螺栓的 Rotation 和 ThreadInMaterial 属性 |
| 切割面方向反了 | Plane 的法向量方向取反 | 试试 -normalVector |