文档

诊断与排错

从第一条错误开始,区分语法、模型、布局和动画问题。

PhysLoom 宁愿明确拒绝一个不完整模型,也不输出一张看似可信的错误图。诊断信息按编译阶段出现。

先修第一条错误

一行语法错误可能让后续引用都失效。先处理列表中的第一条,再看剩余信息。常见问题包括:

  • 标识符拼写不一致,例如定义 load 后引用了 Load。
  • 物理量缺少单位,例如把 mass=2kg 写成 mass=2。
  • 引用了不存在的端口或实体。
  • 某个关系缺少求解所需参数。

应用确定性修复

只有编译器能从当前语言定义和模型中推导出唯一、安全的改法时,Studio 才会显示应用修复。点击按钮或按 Alt+Enter 即可修改源码。整次修复是 一个编辑器操作,因此一次撤销就能恢复原文。

如果存在多个合理改法,Studio 只解释问题,不会替用户猜测。诊断生成后 源码一旦变化,对应修复也会失效,不会覆盖较新的编辑。

语法合法不等于模型完整

下面的语句能被解析,但如果 wheel 没有半径,滚动求解仍可能失败:

rolling rolling_wheel body=wheel surface=ramp mode=without_slipping

语法诊断回答“这句话能否读懂”;模型诊断回答“这些事实能否组成定义充分的物理系统”。

布局问题不应改动物理

物体重叠、标签遮挡或画布过窄属于布局问题。先尝试切换画布宽度或图示主题;只有特定构图确实重要时才使用 place。不要为了让线看起来垂直而改变绳路或连接关系。

动画失败

有 animate 并不保证任意模型都能动画。编译器必须找到支持该对象和参数组合的求解器,并验证生成的 MotionClip。如果静态图正确而动画被拒绝,可以:

  1. 查看诊断中缺失的参数或不支持边界。
  2. 删除 animate,确认静态模型本身有效。
  3. 从案例库选择同领域的已验证例子,逐项比较关系与单位。

不要通过调整 speed 或增大画布来修复物理诊断;它们只影响表现。

提交可复现问题

保留最短的 .phys 源码、完整诊断文本、浏览器版本和期望行为。分享链接会把源码放进 URL,包含未公开内容时请改发本地 .phys 源码文件。