SuperAPI AI 工具集

solidcraft-checking

编程与开发

查看项目

更新于 11-03 16:16

技能介绍

solidcraft-checking 是 SolidCraft 的配套检查技能,用于在建模、修改或移植设计时捕获 SolidCraft 未报告的潜在错误。它与 solidcraft-modeling 和 solidcraft-editing 互补,后者覆盖命令、平面轴、ID、边选择及 MCP 工作流,而本技能专注于补充检查与仓库化设计的工作流程。以下内容基于项目资料整理。

用途 本技能用于检查 SolidCraft 设计中的隐藏问题,例如草图自由度未归零、参数取零导致的尺寸退化、布尔重试警告、测量精度偏差等;同时提供将设计保存为脚本或 JSON 文件并纳入代码仓库的方法,以支持可重复构建与版本追踪。

主要能力

  • 脚本运行与检查:run.py 执行脚本并输出 FAIL、WARN、SKETCH、BODY 信息,报告端状态及脚本内每个 document.inspect 的结果。
  • 生成器辅助:scb.py 提供 Script 与 cmd,包含六边形、圆、圆角矩形、放置等草图辅助,可拒绝重复的草图、特征和体名称。
  • 精确对比:compare_step.py 计算两个 STEP 文件差异的精确体积及位置。
  • 快照渲染:solidcraft-cli snapshot 可输出 PNG 视图用于查看。
  • 参数与特征建议:为参数注释允许范围、派生尺寸、命名参数、标记驱动参数、按用户认知拆分特征等。
  • 草图自由度检查:确保每个草图自由度为 0,避免参数变更后形状意外变化。
  • 全范围参数遍历:通过参数变更脚本遍历每个驱动参数的允许范围两端,并在每个端点后执行测量检查。
  • 仓库化设计:将设计保存为 JSON 文件,保留可读的 git diff,并使用模板测试文件验证。

使用方式 资料给出了具体命令示例,例如:

  • 运行测试:PYTHONDONTWRITEBYTECODE=1 uv run --no-project --with pytest --with build123d pytest -p no:cacheprovider $SKILL/scripts/tests
  • 运行脚本:python3 $SKILL/scripts/run.py script.json [--in <design>] [--save <name>.json]
  • 对比 STEP:uv run --no-project --with build123d python $SKILL/scripts/compare_step.py actual.step expected.step
  • 生成快照:solidcraft-cli snapshot <design or script> --out shot.png --view iso
  • 保存设计:run.py build.json --save <name>.json 此外,资料提到可通过 MCP 客户端调用 skill_reference 获取 reference/porting.md,或直接阅读该文件。

适用场景

  • 将 SolidCraft 设计放入代码仓库,需要脚本化重建与版本管理。
  • 移植设计时,需要与参考 STEP 文件进行精确体积对比。
  • 需要验证参数在允许范围内变化时设计的稳定性。
  • 多个子代理并行工作时,使用 solidcraft-cli 而非共享 MCP 设计。
  • 需要检查布尔运算重试、重复体名称、多边形约束等隐藏问题。

限制与注意事项

  • 本技能依赖 SolidCraft 0.21.0 进行校验,升级后需运行测试并修正文本。
  • 测试和对比脚本通过 build123d 使用 OpenCASCADE,但 SolidCraft 本身不依赖、链接或分发这些组件。
  • 表达式语法不支持 if 和比较运算;asin、acos、atan、atan2 返回角度,不能存入无单位参数。
  • 模式计数取 1 到 1000,取 0 会导致重建失败;小数计数会四舍五入。
  • 测量体积、质心和包围盒存在约 5e-5 的相对偏差,测试容差需按模板设置。
  • 部分命令需要用户应用以额外标志启动(桥接模式),需询问用户。
  • 资料未提供收费、价格或平台信息。