文档
诊断与排错
从第一条错误开始,区分语法、模型、布局和动画问题。
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。如果静态图正确而动画被拒绝,可以:
- 查看诊断中缺失的参数或不支持边界。
- 删除
animate,确认静态模型本身有效。 - 从案例库选择同领域的已验证例子,逐项比较关系与单位。
不要通过调整 speed 或增大画布来修复物理诊断;它们只影响表现。
提交可复现问题
保留最短的 .phys 源码、完整诊断文本、浏览器版本和期望行为。分享链接会把源码放进 URL,包含未公开内容时请改发本地 .phys 源码文件。