| @@ -0,0 +1,65 @@ | |||
| # 四份桥梁脚本:图片原文与训练编排索引 | |||
| 提取日期:2026-09-18。 | |||
| 来源:本目录上一级的 `1.jpg`~`10.jpg`,已逐张查看。工作区实际路径为 `E:/work/edit_3d/文档/桥梁/文件2`。本批文档直接依据图片转录,不以 Excel 摘要替代原文。 | |||
| ## 文档入口 | |||
| | 任务 | 原文文档 | 来源图片 | 原稿内容 | | |||
| |---|---|---|---| | |||
| | TASK-VIRTUAL-005 | [重型支援桥液压泵应急切换](TASK-VIRTUAL-005-液压泵应急切换.md) | [1](../1.jpg)、[2](../2.jpg)、[3](../3.jpg)、[4](../4.jpg) | 封面、故障背景、序幕、概念、供油原理、五项具体操作及末尾继续作业说明 | | |||
| | TASK-VIRTUAL-006 | [重型支援桥液压泵应急替代](TASK-VIRTUAL-006-液压泵应急替代.md) | [5](../5.jpg)、[6](../6.jpg) | 故障背景、替代概念、互救概念、七项操作 | | |||
| | TASK-VIRTUAL-007 | [重型支援桥前泵换件修复](TASK-VIRTUAL-007-前泵换件修复.md) | [7](../7.jpg)、[8](../8.jpg) | 故障背景、十一项操作;前置讲解区为空 | | |||
| | TASK-VIRTUAL-008 | [重型支援桥平衡阀拆拼互换](TASK-VIRTUAL-008-平衡阀拆拼互换.md) | [9](../9.jpg)、[10](../10.jpg) | 四组各四项操作;故障背景未填写,没有独立前置讲解 | | |||
| ## 转录约定 | |||
| - 保留原稿的画面要求、解说词、操作顺序、数量、工具规格及相反表述;只整理换行、段落和标点间距。 | |||
| - 每份文档将原文和“整理说明/待核对”分开。标题中的讲解编号、内容 ID 和下表分段是便于编排的整理建议,不是原稿已有编号。 | |||
| - 图片中的空白明确记为“原稿未填写”,不自行推断故障背景、扭矩、压力合格范围、试车判据或新增操作。 | |||
| - 原稿要求展示的原理图、场景画面、视频并不包含在这些文字照片中;照片链接用于查阅来源,不自动当作产品讲解背景图。 | |||
| - 圈线不改变印刷正文。无法可靠辨认的手写批注只记录其存在,不作为操作要求。 | |||
| - 原文中的疑似错别字单独说明。生产界面与讲解文案应使用核定后的内容,不将整理说明和待确认问题自动放入学员口播。 | |||
| ## 用户确认的页面流程 | |||
| 进入任务 → 项目背景介绍 → 讲解1 → 讲解2 → … → 讲解N → 现有操作步骤。 | |||
| 1. 左侧为一条连续目录:`背景`、`讲解1~N`、现有各操作步骤。 | |||
| 2. 背景页展示项目背景介绍。 | |||
| 3. 每个讲解节点支持两种展示形式:**背景图+文字**,或**视频**。 | |||
| 4. 背景、讲解内容和顺序在**训练编排**中配置,运行页读取配置。 | |||
| 5. 点击“下一步”按目录进入下一节点;最后一个讲解节点的“下一步”才进入现有操作阶段。 | |||
| 6. 背景页和每一个讲解页均增加“**跳过讲解**”,直接进入现有操作阶段的起点,结束当前讲解媒体播放;不把操作步骤标记为已完成。 | |||
| 7. 现有操作步骤的交互、准备记录、评分及提交保持原有含义。前置背景/讲解不作为已完成的模型操作。 | |||
| 以上为本次需求记录;尚未在本批文档提取中修改页面或发布任务。 | |||
| ## 根据原文建议的讲解分段 | |||
| | 任务 | 背景内容 | 前置讲解建议 | 接续操作 | | |||
| |---|---|---|---| | |||
| | 005 | `005-BG`:巨石撞击前泵、检查及0 MPa现象 | `005-L01` 液压泵作用与应急切换引入;`005-L02` 应急切换是什么;`005-L03` 双泵供油回路;`005-L04` 打开球阀后的回油问题;`005-L05` 自救阀与切换原理 | 现有五步,末尾继续作业说明单独保留 | | |||
| | 006 | `006-BG`:原稿重复的前泵受损背景 | `006-L01` 替代是什么;`006-L02` 双车互救是什么 | 七步 | | |||
| | 007 | `007-BG`:原稿前泵受损背景,存在一处疑似漏字 | 原稿无独立正文;不要凭空生成。需要增加时,可另写并标记“编写内容”,或将操作解说转为经确认的演示视频 | 十一步 | | |||
| | 008 | 原稿背景空白,待补充 | 原稿无独立正文;不要套用005的事故背景。后续背景及前置讲解需另行编写或提供 | 十六步 | | |||
| 对于没有前置讲解的配置,建议允许讲解数量为0:有背景时从背景进入操作;背景也未配置时直接进入操作。不在学员页展示“原稿未填写”的空白讲解占位。此项是空配置处理建议。 | |||
| ## 需要核定的原文问题 | |||
| | 位置 | 问题 | 本次处理 | | |||
| |---|---|---| | |||
| | 005,2.jpg,型号 | 转录为“GQZ009”,型号字母建议以清晰原件复核 | 在原文文档注明待核 | | |||
| | 005,3.jpg,球阀原理 | 出现“是而是经打开的球阀”,疑为“而是” | 保留可见原文并说明 | | |||
| | 005,3.jpg→4.jpg | 原理段跨页,4.jpg开头承接3.jpg最后一句 | 连续转录,并保留跨页标识 | | |||
| | 005,4.jpg | 原理段要求打开自救阀,操作段仅列互救开关等五项 | 不擅自增删步骤或判定两者等同 | | |||
| | 006,5.jpg | 背景是前泵受损,概念段是液压系统完全失效 | 两段分别保留,适用工况待核 | | |||
| | 006,5.jpg,第4项 | “在辅助控制盒能够将”疑为病句 | 原文保留;产品文案可核定后改为“在辅助控制盒内将” | | |||
| | 007,7.jpg,背景 | 写“所有执行机构动作”,同段稍后又写“均不动作”;005/006对应句为“不动作” | 保留差异,不能悄悄补“不” | | |||
| | 007,7.jpg~8.jpg | 工具出现“板手/把手”等写法 | 原文保留,整理说明列出建议规范词 | | |||
| | 008,9.jpg→10.jpg | 装配大腔第③项先写取袋旋紧,跨页后又写拧下并封袋 | 两句都保留,标记方向相反 | | |||
| | 008,10.jpg | 装配小腔第③项也同时有装配和拆卸句 | 两句都保留,待核定 | | |||
| | 008,9.jpg~10.jpg | 安装四颗固定螺栓后,又要求旋紧四颗阀体连接螺栓 | 是否同一组不得推定 | | |||
| | 008,9.jpg | 故障背景未填写;原稿未明确文字写出两阀交换的具体来源/目标 | 保留空白与标题“互换”,不编造位置 | | |||
| @@ -0,0 +1,160 @@ | |||
| # 重型支援桥液压泵应急切换 | |||
| 任务对应:`TASK-VIRTUAL-005`。 | |||
| 来源:[1.jpg](../1.jpg)、[2.jpg](../2.jpg)、[3.jpg](../3.jpg)、[4.jpg](../4.jpg)。提取日期:2026-09-18。 | |||
| > 本文为图片原文转录。`005-BG`、`005-L01~L05`为后续编排建议 ID。小节标题由整理时添加;原稿画面、解说词和操作正文分别保留。 | |||
| ## 封面 | |||
| 来源:[1.jpg](../1.jpg)。 | |||
| 重型支援桥液压泵应急切换 | |||
| ## 项目背景原文(005-BG) | |||
| 来源:[2.jpg](../2.jpg),表格上方“故障背景”。 | |||
| 重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。 | |||
| ## 讲解1:液压泵作用与应急切换引入(005-L01) | |||
| 来源:[2.jpg](../2.jpg),内容栏“序幕”,画面第1~2项及对应解说。 | |||
| ### 画面与字幕原文 | |||
| 1. 字幕:重型支援桥液压泵应急切换修复。 | |||
| - (1)画面显示受损重型支援桥; | |||
| - (2)画面依次显示重型支援桥架设环境、战场环境、抢修救灾场景。 | |||
| - (3)画面显示重型支援桥液压系统原理图。 | |||
| 2. 字幕:应急切换。 | |||
| ### 解说词原文 | |||
| GQZ009型重型支援桥作为应急保障力量的重要组成部分,在抢险救灾中起到了关键作用。在架设与撤收中,液压系统作为装备的动力系统,特别是液压系统的心脏——液压泵,这一关键部件的可靠性直接关系到能否完成桥梁架设撤收作业,面对复杂的战场环境,一旦液压系统出现故障,就会导致桥梁架设撤收作业被迫中断,甚至引发危险状态。 | |||
| 那在战时,如果液压泵损坏,该怎样快速完成架桥任务呢? | |||
| 通过对液压系统分析可知,重型支援桥液压系统采取了“双泵独立供油”的设计理念,因此,如果其中一个液压泵出现损伤,可以采取应急切换的方法,快速完成装备抢修。 | |||
| > 整理说明:型号暂录为“GQZ009”,建议以清晰原件核对,不由产品型号常识替换。图中只有上述画面要求,没有附上原理图及三类场景素材。 | |||
| ## 讲解2:应急切换是什么(005-L02) | |||
| 来源:[2.jpg](../2.jpg),画面第3~4项及对应解说。 | |||
| ### 画面与字幕原文 | |||
| 3. 字幕: | |||
| - 一、应急切换是什么 | |||
| - 二、应急切换怎么实现 | |||
| - 三、应急切换该怎么做 | |||
| 4. 画面:重型支援桥两个液压泵。 | |||
| ### 解说词原文 | |||
| 那什么是应急切换呢? | |||
| 在装备战场抢救抢修中,切换是一种应急修理方式,其是指通过回路转换或改接,脱开损伤部分,接通备用部分,或者将原来担负非基本功能的完好部分改换到基本功能回路中。 | |||
| 针对重型支援桥,应急切换是指在单个液压泵或取力器出现故障时,通过切换到另一个液压泵继续完成架设或撤收作业的方法。 | |||
| ## 讲解3:双泵供油回路(005-L03) | |||
| 来源:[3.jpg](../3.jpg),原理段开头。 | |||
| ### 画面与字幕原文 | |||
| 4. 字幕: | |||
| - 一、应急切换是什么 | |||
| - 二、应急切换怎么实现 | |||
| - 三、应急切换该怎么做 | |||
| 画面:重型支援桥液压系统原理图(供油回路)。 | |||
| > 整理说明:原稿此处编号仍为“4.”,与上一页重复,转录保留。 | |||
| ### 解说词原文 | |||
| 重型支援桥是如何实现应急切换的? | |||
| 我们从原理上来寻找答案,根据液压系统原理,重型支援桥设置有2个供油回路,一个是前泵供油回路,由前泵提供动力,主要负责为托架液压系统和架设架液压系统提供动力,主要由液压油箱、前泵、前泵出油滤油器、托架多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完成的液压回路;另一个是后泵供油回路,由后泵提供动力,主要负责为支腿液压系统和吊机液压系统提供动力,主要由液压油箱、后泵、后泵出油滤油器、支腿多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完成的液压回路。 | |||
| > 整理说明:“构成完成的液压回路”按图片文字保留,疑为“构成完整的液压回路”。 | |||
| ## 讲解4:打开球阀后的回油问题(005-L04) | |||
| 来源:[3.jpg](../3.jpg)至[4.jpg](../4.jpg)开头,连续原理段。 | |||
| ### 画面提示原文 | |||
| (1)打开球阀。 | |||
| ### 解说词原文 | |||
| 此时,我们应该注意到在两个出油滤油器的出口处设置一球阀,在正常情况下,该球阀处于关闭状态。 | |||
| 那如果将该球阀打开,会出现什么样的情况呢? | |||
| 此处以托架马达向前为例说明,当操作手操作托架马达向前时,来自负载侧的压力会将托架多路换向阀连接块内的三通流量调节阀关闭,此时来自前泵的液压油无法通过托架多路换向阀连接块内的三通流量调节阀返回液压油箱,应通过托架多路换向阀内部通道进入托架马达换向联,而后进入液压马达,推动液压马达旋转。 | |||
| 但此时液压马达侧负载压力较大,液压油便不会进入液压马达,是而是经打开的球阀,进入支腿多路换向阀连接块内,通过支腿多路换向阀内的三通流量调节阀返回液压油箱。 | |||
| 操作托架液压系统和架设架液压系统的任一执行机构时,均会出现上述现象。同理可分析,操作支腿液压系统和吊机液压系统的任一执行机构时,也会出现上述现象。 | |||
| 那在前泵损坏的情况下,可否利用液压系统这一设计理念,完成重型支援桥的架设和撤收作业呢? | |||
| 通过上述分析,操作重型支援桥任一执行机构时,负载侧压力总会关闭相应的多路换向阀连接块内的三通流量调节阀,使得来自液压泵的液压油从另一多路换向阀连接块内的三通流量调节阀返回液压油箱,因此,如果提前关闭两个多路换向阀连接块内的三通流量调节阀,则无论来自哪个液压泵的液压油均不会返回液压油箱,那通过哪个元件关闭三通流量调节阀呢? | |||
| > 整理说明:最后一段在3.jpg末行“负载侧压力总会”后跨页,4.jpg从“关闭相应的……”继续;已连为完整段落。“是而是”按可见原文保留,疑为“而是”。 | |||
| ## 讲解5:自救阀与切换原理(005-L05) | |||
| 来源:[4.jpg](../4.jpg)上半部。 | |||
| ### 画面提示原文 | |||
| (2)打开自救阀。 | |||
| ### 解说词原文 | |||
| 此时我们应注意到,托架多路换向阀和支腿多路换向阀的M口各串联一自救阀,如果将该自救阀打开,则在接通取力器时,来自液压泵的液压油便将三通流量调节阀关闭。 | |||
| 因此,在实施切换时,还需打开自救阀。 | |||
| ## 进入操作阶段的引导原文 | |||
| 来源:[4.jpg](../4.jpg)下半部。 | |||
| ### 画面与字幕原文 | |||
| 4. 字幕: | |||
| - 一、应急切换是什么 | |||
| - 二、应急切换怎么实现 | |||
| - 三、应急切换该怎么做 | |||
| 画面:重型支援桥实装,具体操作。 | |||
| ### 引导解说原文 | |||
| 以上就是应急切换的原理,那在前泵损坏的情况下,该如何操作呢?操作方法具体如下: | |||
| ## 具体操作原文 | |||
| 来源:[4.jpg](../4.jpg),被手写圈线标出的操作段。以下分项编号为整理时添加,原稿使用“首先/而后/最后”衔接。 | |||
| 1. 首先,根据故障现象确定是哪一个液压泵发生故障; | |||
| 2. 而后,断开架桥车取力器; | |||
| 3. 而后,将架桥车备胎斜上方连接两个红色滤油器的球阀打开;注意:手柄由垂直于管路方向旋转至平行于管路方向。 | |||
| 4. 而后,重新接通取力器; | |||
| 5. 而后,打开辅助控制盒内的“互救”开关。 | |||
| 最后,利用一个液压泵继续完成作业,作业时按照正常的装备操作要求进行操作即可。 | |||
| ## 待核对与素材记录 | |||
| - 原理段“打开自救阀”与操作段“互救开关”的对应关系没有在图片中解释,不能据此认定为同一操作或自行增加一步。 | |||
| - 最后一段继续作业为原文内容,不能因当前系统只有五步就省略;具体后续作业动作未在本图展开。 | |||
| - 两个液压泵画面、液压原理图、环境与救灾画面均为原稿要求,需另行关联素材。 | |||
| - 4.jpg有圈线和手写批注;底部手写字迹无法可靠辨认,本次未作文字推定。 | |||
| @@ -0,0 +1,47 @@ | |||
| # 重型支援桥液压泵应急替代 | |||
| 任务对应:`TASK-VIRTUAL-006`。 | |||
| 来源:[5.jpg](../5.jpg)、[6.jpg](../6.jpg)。提取日期:2026-09-18。 | |||
| > 本文为图片原文转录。`006-BG`、`006-L01~L02`为编排建议 ID。原图概念讲解对应的内容/画面栏未填写,不能视为已有背景图或视频。 | |||
| ## 项目背景原文(006-BG) | |||
| 来源:[5.jpg](../5.jpg),表格上方“故障背景”。 | |||
| 重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。 | |||
| ## 讲解1:替代是什么(006-L01) | |||
| 来源:[5.jpg](../5.jpg),解说词第一段。 | |||
| 替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。 | |||
| ## 讲解2:双车互救是什么(006-L02) | |||
| 来源:[5.jpg](../5.jpg),解说词第二段。 | |||
| 互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。 | |||
| ## 操作步骤原文 | |||
| 画面栏原文:操作步骤。 | |||
| 来源:[5.jpg](../5.jpg)第(1)~(5)项,[6.jpg](../6.jpg)第(6)~(7)项。 | |||
| 1. 确保架桥车的油泵取力器处于脱离状态并保持车辆启动; | |||
| 2. 连接液压油管,将保障车与架桥车的液压油管连接,架桥车端连接至液压油箱右侧的快速接头,保障车端连接至驾驶室外右下方的快速接头; | |||
| 3. 打开保障车液压油箱快速接头处的回油截止阀,保证回油油路畅通; | |||
| 4. 开启互救工作模式,在辅助控制盒能够将“互救作业”开关打开; | |||
| 5. 打开两出油滤油器出口处的球阀; | |||
| 6. 接通保障车液压泵取力器; | |||
| 7. 按正常操作步骤操作架桥车。 | |||
| ## 待核对与素材记录 | |||
| - 项目背景描述前泵损坏,互救概念描述架桥车液压系统完全失效,原图没有交代工况如何衔接,两段均原样保留。 | |||
| - 第(4)项可见文字为“在辅助控制盒能够将”,疑为病句。建议核定的产品表述是“在辅助控制盒内将”,本次不替换原文。 | |||
| - “互救作业”与005的“互救”开关是否同一个,原图未作说明。 | |||
| - 第(7)项没有展开正常作业动作;后续演示配置应另有依据。 | |||
| - 原图未填写前置讲解画面要求。使用双车图或视频是后续制作选择,不是本次提取到的素材。 | |||
| @@ -0,0 +1,46 @@ | |||
| # 重型支援桥前泵换件修复 | |||
| 任务对应:`TASK-VIRTUAL-007`。 | |||
| 来源:[7.jpg](../7.jpg)、[8.jpg](../8.jpg)。提取日期:2026-09-18。 | |||
| > 本文为图片原文转录。`007-BG`为编排建议 ID。本稿有故障背景与操作步骤,表格前置讲解区为空,没有可直接提取的独立讲解1~N。 | |||
| ## 项目背景原文(007-BG) | |||
| 来源:[7.jpg](../7.jpg),表格上方“故障背景”。 | |||
| 重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。 | |||
| > 原文疑点:本图可见文字是“所有执行机构动作”,没有“不”字;但同段后文写“均不动作”,且2.jpg、5.jpg对应句均为“不动作”。疑为漏字,转录没有静默更正,产品文案采用前需核定。 | |||
| ## 前置讲解原文 | |||
| 原稿未填写。7.jpg表格上半部分的内容、画面及解说词区域均无正文。 | |||
| ## 操作步骤原文 | |||
| 画面栏原文:操作步骤。 | |||
| 来源:[7.jpg](../7.jpg)第(1)~(6)项,[8.jpg](../8.jpg)第(7)~(11)项。 | |||
| 1. 桥车熄火,按照前泵与取力器连接处形状裁切一块牛皮纸; | |||
| 2. 关闭液压油箱出口处的1号球阀,将操作手柄由平行于油管方向转至垂直于油管方向; | |||
| 3. 用大活动板手拆开前泵的进出油管接头,并用封口袋封住油管接头; | |||
| 4. 用开口板手拆下液压泵与取力器处的4颗固定螺栓; | |||
| 5. 取下前泵; | |||
| 6. 将事前裁切的牛皮纸,按照液压泵安装形式,继续裁剪,使其与取力器贴合完整; | |||
| 7. 将裁剪好的牛皮纸贴在取力口处; | |||
| 8. 装上新泵; | |||
| 9. 打开新泵注油口,注入液压油; | |||
| 10. 用大活动把手装上前泵进出油管,并拧紧。 | |||
| 11. 起动装备,试车验证。 | |||
| ## 待核对与素材记录 | |||
| - 第(1)项图片为“桥车熄火”,整理后的产品文案可核定为“架桥车熄火”。 | |||
| - 图片材料名称为“牛皮纸”,按原文保留,不自行更换成其他密封材料。 | |||
| - 第(3)、(4)项可见“板手”,第(10)项为“把手”,常用工具名称为“扳手”;工具写法可核定后统一。 | |||
| - 原稿未给出开口扳手号数、螺栓扭矩、液压油加注量、试车合格数值,不补造参数。 | |||
| - 原稿没有额外列出关注油口盖、恢复球阀等动作;若补充训练流程,应明确是经核定的补充内容。 | |||
| - 没有独立前置讲解原文时,不应将“原稿没有展开”等整理说明作为学员讲解内容。 | |||
| @@ -0,0 +1,71 @@ | |||
| # 重型支援桥平衡阀拆拼互换 | |||
| 任务对应:`TASK-VIRTUAL-008`。 | |||
| 来源:[9.jpg](../9.jpg)、[10.jpg](../10.jpg)。提取日期:2026-09-18。 | |||
| > 本文为图片原文转录。原稿有四组操作,每组四项。下方额外标出当前系统对应步骤号,便于查阅,不改变原稿分组。 | |||
| ## 项目背景原文 | |||
| 来源:[9.jpg](../9.jpg),“故障背景:”之后为空白,原稿未填写。 | |||
| ## 前置讲解原文 | |||
| 原稿没有独立前置讲解正文。表格画面栏仅写“操作步骤”,解说词栏直接进入拆装步骤。 | |||
| ## 操作组一:拆卸小腔油口连接平衡阀 | |||
| 来源:[9.jpg](../9.jpg),第(1)组。对应现有系统第1~4步。 | |||
| 1. 用清洗液将平衡阀表面和各油管接头上的油污和灰尘进行清洗并用干净的抹布擦拭干净。 | |||
| 2. 用19号的开口板手拧下平衡阀控制端的油管接头;并用封口袋封住管口,防止灰尘进入油管内; | |||
| 3. 用8号的内六角拧下平衡阀固定螺栓,取下平衡阀; | |||
| 4. 用2个油堵头将阀体座上的2个油口堵住并用干净的抹布将阀体座表面的油污擦拭干净。 | |||
| ## 操作组二:拆卸大腔油口连接平衡阀 | |||
| 来源:[9.jpg](../9.jpg),第(2)组。对应现有系统第5~8步。 | |||
| 1. 用清洗液将平衡阀表面和各油管接头上的油污和灰尘进行清洗并用干净的抹布擦拭干净。 | |||
| 2. 用19号的开口板手拧下平衡阀控制端的油管接头;并用封口袋封住管口,防止灰尘进入油管内; | |||
| 3. 用8号的内六角拧下平衡阀固定螺栓,取下平衡阀; | |||
| 4. 用2个油堵头将阀体座上的2个油口堵住并用干净的抹布将阀体座表面的油污擦拭干净。 | |||
| ## 操作组三:装配大腔油口连接平衡阀 | |||
| 来源:[9.jpg](../9.jpg)末部至[10.jpg](../10.jpg)开头,第(3)组。对应现有系统第9~12步。 | |||
| 1. 对平衡阀、阀座表面进行擦拭,去除污渍,拆下阀座上的2个油堵头; | |||
| 2. 将平衡阀安装于阀座上,用8号的内六角装上平衡阀的4个固定螺栓; | |||
| 3. 将平衡阀控制端的油管接头封口袋取下并用板手将其旋紧; | |||
| **接续原文(10.jpg开头):** 用19号的开口板手拧下平衡阀控制端的油管接头;并用封口袋封住管口,防止灰尘进入油管内; | |||
| 4. 用内六角将阀体4个连接螺栓旋紧。 | |||
| > 原文疑点:第③项前半句是取袋并旋紧,接续句却是拧下并封袋,方向相反。两句均保留,没有选择其一作为核定步骤。 | |||
| ## 操作组四:装配小腔油口连接平衡阀 | |||
| 来源:[10.jpg](../10.jpg),第(4)组。对应现有系统第13~16步。 | |||
| 1. 对平衡阀、阀座表面进行擦拭,去除污渍,拆下阀座上的2个油堵头; | |||
| 2. 将平衡阀安装于阀座上,用8号的内六角装上平衡阀的4个固定螺栓; | |||
| 3. 将平衡阀控制端的油管接头封口袋取下并用板手将其旋紧; | |||
| **同项接续原文:** 用19号的开口板手拧下平衡阀控制端的油管接头;并用封口袋封住管口,防止灰尘进入油管内; | |||
| 4. 用内六角将阀体4个连接螺栓旋紧。 | |||
| > 原文疑点:本组第③项同样同时出现装配与拆卸指令,需要核定。 | |||
| ## 待核对与素材记录 | |||
| - 背景为空,不能把005/006/007的前泵撞击事故直接作为本项目背景原文。 | |||
| - 题名为“拆拼互换”,但操作正文未明确写出哪一个拆下的阀装到哪一处;两阀来源、目标位置及适用条件需核定。 | |||
| - 装配第②项的“四个固定螺栓”和第④项的“四个连接螺栓”是否同一组,图片没有说明。 | |||
| - 原图写“板手”,整理后的工具名称可核定为“扳手”;19号、8号规格按原文保留。 | |||
| - 原文“阀体座”和“阀座”两种称呼均保留,正式编排可在术语核定后统一。 | |||
| - 文本要求清洗阀体表面以及各油管接头,不能只表现阀体变色而遗漏接头。 | |||
| - 图片没有给出安装位置照片、背景图、讲解视频、油污贴图或互换后的试验判据;相关素材需另行配置。 | |||
| @@ -0,0 +1,80 @@ | |||
| { | |||
| "pass": true, | |||
| "checkedAt": "2026-09-16T17:12:05.890Z", | |||
| "fixture": { | |||
| "sceneId": "457", | |||
| "sceneVersionId": "544", | |||
| "trainingId": "458", | |||
| "mediaUploaded": true, | |||
| "trainingVersionId": "546", | |||
| "taskId": "116", | |||
| "taskStatus": "DRAFT", | |||
| "previewUrl": "/teaching/virtual-training/preview/116" | |||
| }, | |||
| "originals": [ | |||
| { | |||
| "id": "86", | |||
| "code": "TASK-VIRTUAL-005", | |||
| "versionId": "533", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "87", | |||
| "code": "TASK-VIRTUAL-006", | |||
| "versionId": "534", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "88", | |||
| "code": "TASK-VIRTUAL-007", | |||
| "versionId": "535", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "89", | |||
| "code": "TASK-VIRTUAL-008", | |||
| "versionId": "536", | |||
| "unchanged": true | |||
| } | |||
| ], | |||
| "steps": 5, | |||
| "operations": 6, | |||
| "partTargets": 7, | |||
| "editedAngle": 75, | |||
| "restoredAngle": 90, | |||
| "media": [ | |||
| { | |||
| "step": 1, | |||
| "video": "PILOT-005-1-VIDEO", | |||
| "audio": "PILOT-005-1-AUDIO" | |||
| }, | |||
| { | |||
| "step": 2, | |||
| "video": "PILOT-005-2-VIDEO", | |||
| "audio": "PILOT-005-2-AUDIO" | |||
| }, | |||
| { | |||
| "step": 3, | |||
| "video": "PILOT-005-3-VIDEO", | |||
| "audio": "PILOT-005-3-AUDIO" | |||
| }, | |||
| { | |||
| "step": 4, | |||
| "video": "PILOT-005-4-VIDEO", | |||
| "audio": "PILOT-005-4-AUDIO" | |||
| }, | |||
| { | |||
| "step": 5, | |||
| "video": "PILOT-005-5-VIDEO", | |||
| "audio": "PILOT-005-5-AUDIO" | |||
| } | |||
| ], | |||
| "evidence": [ | |||
| "editor-result", | |||
| "editor-result-90", | |||
| "runtime-edited-75", | |||
| "runtime-final-90-lan", | |||
| "original-tasks-regression", | |||
| "original-005-full-regression" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,5 @@ | |||
| { | |||
| "error": "AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n\n400 !== 200\n\n at file:///E:/work/edit_3d/unreal_tran/ute2e/tools/bridge-005-authoring-editor-live.mjs:52:63", | |||
| "errors": [], | |||
| "body": "装备数字车间\n工作总览\n内容制作\n虚实训练\n资源智能\n系统管理\n内部维护\n内部维护 · 装备数字车间\n应用导航\n内容制作\n4\n模型制作\n场景制作\n训练编排\n作业指导\n工作总览\n数字场景编辑\n训练编排\n返回列表\n005 液压泵应急切换(编排验证)\n草稿\n有未保存修改\n回退\n前进\n更多\n校验\n保存草稿\n发布\n预览训练\n操作指引:\n1)\n选步骤\n→\n2)\n选目标与动作\n→\n3)\n配置判定规则\n→\n4)\n预览并发布\n编排模式\n基础编排\n高级编排\n虚拟仿真配置\n项目设置\n训练流程\n选择步骤\n新增步骤\n01\n根据故障现象确定是哪一个液压泵发生故障\n液压泵 · 状态判定\n状态检测\n20 分\n↑\n↓\n02\n断开架桥车取力器\n取力器开关 · 状态判定\n状态检测\n20 分\n↑\n↓\n03\n将架桥车备胎斜上方链接两个红色滤油器的球阀打开\n球阀开关 · 状态判定\n状态检测\n20 分\n↑\n↓\n04\n重新联通取力器\n取力器开关 · 状态判定\n状态检测\n20 分\n↑\n↓\n05\n打开辅助控制盒内的“互救”开关\n辅助控制盒盖 · 状态判定\n状态检测\n20 分\n↑\n↓\n选择场景\n加载模型\n环境与场景\n野外环境\n外部 GLB\n三维实时编辑\n当前场景\n室外综合训练场\n3 个场景对象 · 设备与物模型绑定已继承\n当前选中\n液压泵\n动作:等待配置\n步骤配置\n第 1 步 · 根据故障现象确定是哪一个液压泵发生故障\n目标与动作\n判定规则\n讲解设置\n配置目标与动作\n填写步骤说明 → 在三维场景点选目标 → 选择标准动作\n步骤内容\n学员端将按此顺序显示\n步骤名称\n操作说明\n引导提示\n目标位置 / 状态\n完成提示\n编排建议\n\n步骤标题使用动宾结构;操作说明只写本步动作,不提前泄露后续答案。\n\n配置本步工具 配置机构动作\n动作训练配置\n仅开放当前运行时可执行的动作\n拖\n三维拖拽\n沿受控路径完成拆卸、移动或复装\n判\n状态检测\n点击目标并按规则完成检查或测量\n语义目标\n液压泵\n取力器\n取力器开关\n球阀开关\n辅助控制盒\n辅助控制盒盖\n互救开关\n操作模式\n检查 / 确认\n标准动作时长\n毫秒\n空间容差\n状态检测无需空间容差\n步骤动画\n绑定后写入当前步骤与高级时间轴\n+\n尚未绑定动画\n从模型编辑器已发布的动画成果中选择\n绑定动画\n运行边界\n\n编辑器不会写入任意脚本;动作和目标均从经过验证的运行时白名单中选择。\n\n当前步骤\n1 / 5\n步骤分值\n20 分\n总分配置\n100 / 100\ni\n已加载发布场景:3 个对象,位姿与语义已恢复\n发布未通过\n\n教学实训发布校验未通过(5 项):steps[0].targetId 引用的对象 front-pump-hydraulic-pump 不在绑定场景的可操作对象中;steps[1].targetId 引用的对象 front-pump-pto-switch 不在绑定场景的可操作对象中;steps[2].targetId 引用的对象 front-pump-ball-valve-switch 不在绑定场景的可操作对象中;steps[3].targetId 引用的对象 front-pump-pto-switch 不在绑定场景的可操作对象中;steps[4].targetId 引用的对象 front-pump-aux-control-box-cover 不在绑定场景的可操作对象中\n\n知道了" | |||
| } | |||
| @@ -0,0 +1,11 @@ | |||
| { | |||
| "pass": true, | |||
| "sceneObjects": 2, | |||
| "partTargets": 7, | |||
| "steps": 5, | |||
| "operations": 6, | |||
| "savedAngle": 90, | |||
| "originalPublishedVersion": "552", | |||
| "draftVersion": "552", | |||
| "errors": [] | |||
| } | |||
| @@ -0,0 +1,11 @@ | |||
| { | |||
| "pass": true, | |||
| "sceneObjects": 2, | |||
| "partTargets": 7, | |||
| "steps": 5, | |||
| "operations": 6, | |||
| "savedAngle": 75, | |||
| "originalPublishedVersion": "543", | |||
| "draftVersion": "543", | |||
| "errors": [] | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| <!doctype html><html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>005 场景与编排验收</title><style>body{font:16px/1.7 system-ui;margin:32px auto;padding:0 24px;max-width:1100px;color:#173d38;background:#f4f8f7}a{color:#087f70}section{background:white;padding:22px;border:1px solid #d5e7e3;border-radius:12px;margin:20px 0}img{width:100%;border-radius:8px}h1{font-size:28px}li{margin:8px 0}</style><h1>005 液压泵应急切换:场景制作 → 训练编排 → 教学预览</h1><p>验收时间:2026-09-16T17:12:05.890Z。独立验证工程,原四个已发布任务数据和版本完整对比一致。</p><section><h2>入口</h2><ul><li><a href="http://127.0.0.1:6180/content/scenes/457/edit">场景制作:整车、地形、七个真实部件目标</a></li><li><a href="http://127.0.0.1:6180/content/training-projects/458/legacy">训练编排:五步、六个机构动作及逐步数字人讲解</a></li><li><a href="http://127.0.0.1:6180/teaching/virtual-training/preview/116">独立教学预览</a>(草稿任务,不替换现有学员入口)</li></ul></section><section><h2>验证结果</h2><p>实际编辑场景并发布后,训练重新绑定已发布场景。球阀从 90° 改为 75°,保存、刷新、发布后,完成全部六次鼠标操作及服务端预览校验;随后恢复 90° 并在局域网完整复测。五段视频和五段语音已作为训练资产绑定。</p><p>原 005 完整流程回归、原四任务初始场景回归均通过。前端构建与合同测试、后端单元测试和打包通过。当前验证仅覆盖教员预览,不代表新增学员成绩验收。</p><ul><li><a href="editor-result.json">editor-result</a>:通过</li><li><a href="editor-result-90.json">editor-result-90</a>:通过</li><li><a href="runtime-edited-75.json">runtime-edited-75</a>:通过</li><li><a href="runtime-final-90-lan.json">runtime-final-90-lan</a>:通过</li><li><a href="original-tasks-regression.json">original-tasks-regression</a>:通过</li><li><a href="original-005-full-regression.json">original-005-full-regression</a>:通过</li><li><a href="audit.json">任务、版本、讲解资产与原数据核对结果</a></li></ul></section><section><h2>场景制作</h2><img src="scene-editor.png" alt="005 场景制作"></section><section><h2>训练编排</h2><img src="training-editor.png" alt="005 训练编排"></section><section><h2>球阀操作与互救开关</h2><img src="task-116-step-3.png" alt="球阀操作"><img src="task-116-step-5.png" alt="互救开关操作"></section></html> | |||
| @@ -0,0 +1,125 @@ | |||
| { | |||
| "objects": [ | |||
| { | |||
| "name": "野外山地训练场", | |||
| "position": [ | |||
| -3.1597256741842212, | |||
| 10.30528511389146, | |||
| -40.10715876774236 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 1.7159231079037875, | |||
| 1.7159231079037875, | |||
| 1.7159231079037875 | |||
| ] | |||
| }, | |||
| { | |||
| "name": "架桥车前泵互救操作整车模型", | |||
| "position": [ | |||
| 1.5698558846140135e-16, | |||
| 0.6112875194820317, | |||
| 0.13180482636746585 | |||
| ], | |||
| "rotation": [ | |||
| 3.0865583248298285e-17, | |||
| -3.96331642134641e-33, | |||
| -2.568113739801058e-16 | |||
| ], | |||
| "scale": [ | |||
| 0.9715696607300419, | |||
| 0.9715696607300419, | |||
| 0.9715696607300419 | |||
| ] | |||
| } | |||
| ], | |||
| "camera": { | |||
| "position": [ | |||
| 6.388234886169594, | |||
| 3.6955547610775583, | |||
| 7.955160424286662 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ] | |||
| }, | |||
| "parts": [ | |||
| { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-power-take-off", | |||
| "front": [ | |||
| 0.9805806756909202, | |||
| 0.1961161351381838, | |||
| 4.9599768641624273e-17 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-pto-switch", | |||
| "hinge": [ | |||
| 0.0000152587890625, | |||
| -4.159996032714844, | |||
| 9.5367431640625e-7 | |||
| ], | |||
| "front": [ | |||
| 0.9805806756909202, | |||
| 0.1961161351381838, | |||
| 4.9599768641624273e-17 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-ball-valve-switch", | |||
| "front": [ | |||
| 0.9805806756909202, | |||
| 0.1961161351381838, | |||
| 4.9599768641624273e-17 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-aux-control-box", | |||
| "front": [ | |||
| -1, | |||
| 2.568113739801058e-16, | |||
| 3.96331642134641e-33 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-aux-control-box-cover", | |||
| "front": [ | |||
| -1, | |||
| 2.568113739801058e-16, | |||
| 3.96331642134641e-33 | |||
| ] | |||
| }, | |||
| { | |||
| "id": "front-pump-rescue-switch", | |||
| "hinge": [ | |||
| 0.549492597579949, | |||
| -0.0000010728836059570312, | |||
| 4.76837158203125e-7 | |||
| ], | |||
| "front": [ | |||
| -1, | |||
| 2.568113739801058e-16, | |||
| 3.96331642134641e-33 | |||
| ], | |||
| "axis": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| @@ -0,0 +1,421 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 86 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.052363924053688, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 937.1159093565705, | |||
| "y": 510.8943121357542, | |||
| "localX": 678.1159093565705, | |||
| "localY": 322.3943121357542, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 670.919240275776, | |||
| "y": 316.01579133562, | |||
| "w": 14.309325962616413, | |||
| "h": 12.873100207788639 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 6.688026389433602, | |||
| 3.8228247388783156, | |||
| 8.328485692502216 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 881.0625, | |||
| "y": 533.375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 86 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743606, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.81006115045116, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645237 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 86 internal target inspected with explicit translucent tool", | |||
| "targetId": "front-pump-pto-switch", | |||
| "pass": true | |||
| }, | |||
| { | |||
| "name": "task 86 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,10 @@ | |||
| { | |||
| "sceneId": "457", | |||
| "sceneVersionId": "551", | |||
| "trainingId": "458", | |||
| "mediaUploaded": true, | |||
| "trainingVersionId": "552", | |||
| "taskId": "116", | |||
| "taskStatus": "DRAFT", | |||
| "previewUrl": "/teaching/virtual-training/preview/116" | |||
| } | |||
| @@ -0,0 +1,288 @@ | |||
| { | |||
| "objects": [ | |||
| { | |||
| "receiveShadow": true, | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "position": [ | |||
| -3.1597256741842212, | |||
| 10.30528511389146, | |||
| -40.10715876774236 | |||
| ], | |||
| "castShadow": true, | |||
| "semantic": "环境设施", | |||
| "visible": true, | |||
| "name": "野外山地训练场", | |||
| "mimeType": "model/gltf-binary", | |||
| "opacity": 1, | |||
| "contentUri": "/models/地形.glb", | |||
| "assetUrl": "/models/地形.glb", | |||
| "sourceName": "地形.glb", | |||
| "assetId": "front-pump-field-terrain", | |||
| "type": "imported", | |||
| "assetCode": "PILOT-TERRAIN", | |||
| "locked": false, | |||
| "scale": [ | |||
| 1.7159231079037875, | |||
| 1.7159231079037875, | |||
| 1.7159231079037875 | |||
| ], | |||
| "components": [], | |||
| "id": "front-pump-training-yard", | |||
| "sourceVersionId": "538", | |||
| "color": "#ffffff", | |||
| "modelId": "front-pump-field-terrain", | |||
| "modelOverrides": {}, | |||
| "modelTimeline": null, | |||
| "sceneId": "front-pump-training-yard", | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/地形.glb", | |||
| "assetRole": "environment", | |||
| "interactionId": "scene:front-pump-training-yard", | |||
| "operable": false, | |||
| "modelEditorAssetId": "content-model--538", | |||
| "modelEditorModelId": "front-pump-field-terrain", | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "fitToScene": false, | |||
| "apiManaged": true, | |||
| "modelPartTargets": [] | |||
| }, | |||
| { | |||
| "receiveShadow": true, | |||
| "rotation": [ | |||
| 3.0865583248298285e-17, | |||
| -3.96331642134641e-33, | |||
| -2.568113739801058e-16 | |||
| ], | |||
| "position": [ | |||
| 1.5698558846140135e-16, | |||
| 0.6112875194820317, | |||
| 0.13180482636746585 | |||
| ], | |||
| "castShadow": true, | |||
| "semantic": "实训装备", | |||
| "visible": true, | |||
| "name": "架桥车前泵互救操作整车模型", | |||
| "mimeType": "model/gltf-binary", | |||
| "opacity": 1, | |||
| "contentUri": "/models/步骤模型.glb", | |||
| "assetUrl": "/models/步骤模型.glb", | |||
| "sourceName": "步骤模型.glb", | |||
| "assetId": "front-pump-step-vehicle", | |||
| "type": "imported", | |||
| "assetCode": "PILOT-VEHICLE", | |||
| "locked": false, | |||
| "scale": [ | |||
| 0.9715696607300419, | |||
| 0.9715696607300419, | |||
| 0.9715696607300419 | |||
| ], | |||
| "components": [], | |||
| "id": "front-pump-rescue-vehicle", | |||
| "sourceVersionId": "538", | |||
| "color": "#ffffff", | |||
| "modelId": "front-pump-step-vehicle", | |||
| "modelOverrides": {}, | |||
| "modelTimeline": null, | |||
| "sceneId": "front-pump-rescue-vehicle", | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/步骤模型.glb", | |||
| "assetRole": "equipment", | |||
| "interactionId": "scene:front-pump-rescue-vehicle", | |||
| "operable": false, | |||
| "modelEditorAssetId": "content-model--538", | |||
| "modelEditorModelId": "front-pump-step-vehicle", | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "fitToScene": false, | |||
| "apiManaged": true, | |||
| "modelPartTargets": [ | |||
| { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "name": "液压泵", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "1液压泵", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "name": "取力器", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "2取力器", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "name": "取力器开关", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "2取力器开关", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "name": "球阀开关", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "3球阀开关", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "name": "辅助控制盒", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "5辅助控制盒", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "name": "辅助控制盒盖", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "5辅助控制盒盖", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "name": "互救开关", | |||
| "editorId": "", | |||
| "nodePath": "", | |||
| "sourceNodeName": "5互救开关", | |||
| "visible": true, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| ], | |||
| "parts": [ | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-hydraulic-pump", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-power-take-off", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-pto-switch", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-ball-valve-switch", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-aux-control-box", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-aux-control-box-cover", | |||
| "scene:front-pump-rescue-vehicle/part/front-pump-rescue-switch" | |||
| ], | |||
| "nodes": [ | |||
| [ | |||
| "野外山地训练场", | |||
| "野外山地训练场", | |||
| "DX", | |||
| "DX_1", | |||
| "DX_2", | |||
| "DX_3", | |||
| "DX_4", | |||
| "DX_5" | |||
| ], | |||
| [ | |||
| "架桥车前泵互救操作整车模型", | |||
| "架桥车前泵互救操作整车模型", | |||
| "车", | |||
| "车_1", | |||
| "车_2", | |||
| "车_3", | |||
| "车_4", | |||
| "车_5", | |||
| "车_6", | |||
| "车_7", | |||
| "车_8", | |||
| "车_9", | |||
| "车_10", | |||
| "车_11", | |||
| "车_12", | |||
| "车_13", | |||
| "车_14", | |||
| "车_15", | |||
| "车_16", | |||
| "5辅助控制盒盖", | |||
| "2取力器", | |||
| "2取力器_1", | |||
| "2取力器_2", | |||
| "2取力器开关", | |||
| "2取力器开关_1", | |||
| "2取力器开关_2", | |||
| "training-pick-proxy:scene:front-pump-rescue-vehicle/part/front-pump-pto-switch", | |||
| "5互救开关", | |||
| "training-pick-proxy:scene:front-pump-rescue-vehicle/part/front-pump-rescue-switch", | |||
| "5辅助控制盒", | |||
| "5辅助控制盒_1", | |||
| "5辅助控制盒_2", | |||
| "5辅助控制盒_3", | |||
| "5辅助控制盒_4", | |||
| "5辅助控制盒_5", | |||
| "5辅助控制盒_6", | |||
| "5辅助控制盒_7", | |||
| "1液压泵", | |||
| "关键螺丝", | |||
| "Obj_关键螺丝", | |||
| "Obj_关键螺丝_1", | |||
| "Obj_关键螺丝_2", | |||
| "Obj_关键螺丝_3", | |||
| "3球阀开关", | |||
| "training-pick-proxy:scene:front-pump-rescue-vehicle/part/front-pump-ball-valve-switch" | |||
| ] | |||
| ] | |||
| } | |||
| @@ -0,0 +1,511 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 116 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.026959938593922, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 933.2030379404363, | |||
| "y": 508.98653882111967, | |||
| "localX": 674.2030379404363, | |||
| "localY": 320.48653882111967, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 666.9159534482183, | |||
| "y": 314.22778469888664, | |||
| "w": 14.498295179786055, | |||
| "h": 12.630906367540888 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [ | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 937.5145895920471, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 505.25396597239484 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 512.8325097929194 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 512.8325097929194 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 512.8325097929194 | |||
| } | |||
| ], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 7.138234886169582, | |||
| 3.695554761077557, | |||
| 7.955160424286649 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 877.15625, | |||
| "y": 531.34375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 116 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743615, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.8100611504512, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645234 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 116 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,543 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 116 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.026959938593922, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 933.2030379404363, | |||
| "y": 508.98653882111967, | |||
| "localX": 674.2030379404363, | |||
| "localY": 320.48653882111967, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 666.9159534482183, | |||
| "y": 314.22778469888664, | |||
| "w": 14.498295179786055, | |||
| "h": 12.630906367540888 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [ | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 937.5145895920471, | |||
| "y": 509.0432378826571 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 507.14860192752593 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 510.93787383778823 | |||
| }, | |||
| { | |||
| "x": 935.3398453150792, | |||
| "y": 505.25396597239484 | |||
| }, | |||
| { | |||
| "x": 933.1651010381113, | |||
| "y": 512.8325097929194 | |||
| }, | |||
| { | |||
| "x": 930.9903567611434, | |||
| "y": 512.8325097929194 | |||
| }, | |||
| { | |||
| "x": 928.8156124841755, | |||
| "y": 512.8325097929194 | |||
| } | |||
| ], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 7.138234886169582, | |||
| 3.695554761077557, | |||
| 7.955160424286649 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 877.15625, | |||
| "y": 531.34375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "narration": [ | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 116 digital-human video playback", | |||
| "pass": true, | |||
| "media": { | |||
| "width": 480, | |||
| "height": 640, | |||
| "duration": 4.96, | |||
| "currentTime": 0.012821 | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 116 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743615, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.8100611504512, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645234 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 116 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/116/preview/validate" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,271 @@ | |||
| { | |||
| "pass": false, | |||
| "error": "The expression evaluated to a falsy value:\n\n assert.ok(state.outline>0)\n", | |||
| "checks": [], | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 10.556940520723852, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": null, | |||
| "bounds": null, | |||
| "projected": null, | |||
| "pivot": null, | |||
| "pickPoints": [], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "workflowCoverage": [], | |||
| "camera": [ | |||
| 6.388234886169593, | |||
| 3.6955547610775574, | |||
| 7.9551604242866585 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 0, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| } | |||
| }, | |||
| "errors": [], | |||
| "writes": [], | |||
| "networkErrors": [ | |||
| { | |||
| "path": "http://127.0.0.1:6180/14b2da40-8e59-4998-8ab4-cedb2d56e98f", | |||
| "error": "net::ERR_ABORTED" | |||
| } | |||
| ], | |||
| "pending": [] | |||
| } | |||
| @@ -0,0 +1,485 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 116 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 10.556940520723852, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 933.3103730673897, | |||
| "y": 513.1321797455187, | |||
| "localX": 674.3103730673897, | |||
| "localY": 324.6321797455186, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 666.7119490289721, | |||
| "y": 317.90271383869003, | |||
| "w": 15.10354286710276, | |||
| "h": 13.587830416252018 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [ | |||
| { | |||
| "x": 933.2637204625235, | |||
| "y": 513.196629046816 | |||
| }, | |||
| { | |||
| "x": 930.9981890324581, | |||
| "y": 513.196629046816 | |||
| }, | |||
| { | |||
| "x": 935.5292518925888, | |||
| "y": 513.196629046816 | |||
| }, | |||
| { | |||
| "x": 928.7326576023926, | |||
| "y": 513.196629046816 | |||
| }, | |||
| { | |||
| "x": 937.7947833226543, | |||
| "y": 513.196629046816 | |||
| }, | |||
| { | |||
| "x": 933.2637204625235, | |||
| "y": 511.15845448437824 | |||
| }, | |||
| { | |||
| "x": 930.9981890324581, | |||
| "y": 511.15845448437824 | |||
| }, | |||
| { | |||
| "x": 935.5292518925888, | |||
| "y": 511.15845448437824 | |||
| }, | |||
| { | |||
| "x": 933.2637204625235, | |||
| "y": 515.2348036092538 | |||
| }, | |||
| { | |||
| "x": 930.9981890324581, | |||
| "y": 515.2348036092538 | |||
| }, | |||
| { | |||
| "x": 935.5292518925888, | |||
| "y": 515.2348036092538 | |||
| }, | |||
| { | |||
| "x": 928.7326576023926, | |||
| "y": 515.2348036092538 | |||
| }, | |||
| { | |||
| "x": 935.5292518925888, | |||
| "y": 509.12027992194044 | |||
| }, | |||
| { | |||
| "x": 933.2637204625235, | |||
| "y": 517.2729781716916 | |||
| }, | |||
| { | |||
| "x": 930.9981890324581, | |||
| "y": 517.2729781716916 | |||
| }, | |||
| { | |||
| "x": 935.5292518925888, | |||
| "y": 517.2729781716916 | |||
| }, | |||
| { | |||
| "x": 928.7326576023926, | |||
| "y": 517.2729781716916 | |||
| } | |||
| ], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 6.388234886169593, | |||
| 3.6955547610775574, | |||
| 7.9551604242866585 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 877.25, | |||
| "y": 535.984375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 116 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743606, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.81006115045116, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645237 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 116 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 116 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/116/preview/validate" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,442 @@ | |||
| { | |||
| "objects": [ | |||
| { | |||
| "sceneId": "front-pump-training-yard", | |||
| "type": "imported", | |||
| "name": "野外山地训练场", | |||
| "deviceId": "front-pump-training-yard", | |||
| "modelId": "front-pump-field-terrain", | |||
| "semantic": "环境地形", | |||
| "assetRole": "environment", | |||
| "builtinAssetId": "front-pump-field-terrain", | |||
| "modelEditorAssetId": "", | |||
| "modelEditorModelId": "", | |||
| "modelEditorRevision": 0, | |||
| "modelOverrides": {}, | |||
| "materialPreset": null, | |||
| "modelPartTargets": [], | |||
| "partOverrides": {}, | |||
| "interactionId": "scene:front-pump-training-yard", | |||
| "operable": false, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "sourceNodeName": "", | |||
| "splitGroupId": "", | |||
| "visible": true, | |||
| "position": [ | |||
| -3.1597256741842212, | |||
| 10.30528511389146, | |||
| -40.10715876774236 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 1.7159231079037875, | |||
| 1.7159231079037875, | |||
| 1.7159231079037875 | |||
| ], | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/terrain-005-20260917.glb", | |||
| "sourceName": "terrain-005-20260917.glb", | |||
| "sizeBytes": 0, | |||
| "mimeType": "model/gltf-binary", | |||
| "enclosureMode": "", | |||
| "assetCode": "PILOT-TERRAIN-005", | |||
| "sourceAssetId": "" | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-vehicle", | |||
| "type": "imported", | |||
| "name": "架桥车前泵互救操作整车模型", | |||
| "deviceId": "front-pump-rescue-vehicle", | |||
| "modelId": "front-pump-step-vehicle", | |||
| "semantic": "实训装备", | |||
| "assetRole": "equipment", | |||
| "builtinAssetId": "front-pump-step-vehicle", | |||
| "modelEditorAssetId": "bridge-erector-0916", | |||
| "modelEditorModelId": "front-pump-step-vehicle", | |||
| "modelEditorRevision": 2, | |||
| "modelOverrides": {}, | |||
| "materialPreset": null, | |||
| "modelPartTargets": [ | |||
| { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "bridge-0916-node-92", | |||
| "nodePath": "0/46/0", | |||
| "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵", | |||
| "name": "液压泵", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "bridge-0916-node-80", | |||
| "nodePath": "0/40/0", | |||
| "sourceNodeName": "1_25取力器", | |||
| "name": "取力器", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "bridge-0916-node-82", | |||
| "nodePath": "0/41/0", | |||
| "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关", | |||
| "name": "取力器开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "bridge-0916-node-96", | |||
| "nodePath": "0/48/0", | |||
| "sourceNodeName": "1_26球阀开关", | |||
| "name": "球阀开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "bridge-0916-node-84", | |||
| "nodePath": "0/42/0", | |||
| "sourceNodeName": "1_28辅助控制盒内", | |||
| "name": "辅助控制盒", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "bridge-0916-node-78", | |||
| "nodePath": "0/39/0", | |||
| "sourceNodeName": "1_28辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "bridge-0916-node-86", | |||
| "nodePath": "0/43/0", | |||
| "sourceNodeName": "1_28和2_06互救开关", | |||
| "name": "互救开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| } | |||
| ], | |||
| "partOverrides": { | |||
| "front-pump-hydraulic-pump": { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "bridge-0916-node-92", | |||
| "nodePath": "0/46/0", | |||
| "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵", | |||
| "name": "液压泵", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-power-take-off": { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "bridge-0916-node-80", | |||
| "nodePath": "0/40/0", | |||
| "sourceNodeName": "1_25取力器", | |||
| "name": "取力器", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-pto-switch": { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "bridge-0916-node-82", | |||
| "nodePath": "0/41/0", | |||
| "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关", | |||
| "name": "取力器开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-ball-valve-switch": { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "bridge-0916-node-96", | |||
| "nodePath": "0/48/0", | |||
| "sourceNodeName": "1_26球阀开关", | |||
| "name": "球阀开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-aux-control-box": { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "bridge-0916-node-84", | |||
| "nodePath": "0/42/0", | |||
| "sourceNodeName": "1_28辅助控制盒内", | |||
| "name": "辅助控制盒", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-aux-control-box-cover": { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "bridge-0916-node-78", | |||
| "nodePath": "0/39/0", | |||
| "sourceNodeName": "1_28辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-rescue-switch": { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "bridge-0916-node-86", | |||
| "nodePath": "0/43/0", | |||
| "sourceNodeName": "1_28和2_06互救开关", | |||
| "name": "互救开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| } | |||
| }, | |||
| "interactionId": "scene:front-pump-rescue-vehicle", | |||
| "operable": false, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "sourceNodeName": "Group", | |||
| "splitGroupId": "", | |||
| "visible": true, | |||
| "position": [ | |||
| 1.5698558846140135e-16, | |||
| 0.00012730681329620186, | |||
| 0.13180482636746585 | |||
| ], | |||
| "rotation": [ | |||
| 3.0865583248298285e-17, | |||
| -3.96331642134641e-33, | |||
| -2.568113739801058e-16 | |||
| ], | |||
| "scale": [ | |||
| 0.9715696607300419, | |||
| 0.9715696607300419, | |||
| 0.9715696607300419 | |||
| ], | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/bridge-erector-20260916.glb", | |||
| "sourceName": "0916架桥车.glb", | |||
| "sizeBytes": 37160920, | |||
| "mimeType": "model/gltf-binary", | |||
| "enclosureMode": "", | |||
| "assetCode": "PILOT-VEHICLE-0916", | |||
| "sourceAssetId": "" | |||
| } | |||
| ], | |||
| "ready": 0 | |||
| } | |||
| @@ -0,0 +1,173 @@ | |||
| { | |||
| "pass": true, | |||
| "time": "2026-09-17T14:35:31.975Z", | |||
| "fixture": { | |||
| "sceneId": "457", | |||
| "sceneVersionId": "551", | |||
| "trainingId": "458", | |||
| "mediaUploaded": true, | |||
| "trainingVersionId": "552", | |||
| "taskId": "116", | |||
| "taskStatus": "DRAFT", | |||
| "previewUrl": "/teaching/virtual-training/preview/116" | |||
| }, | |||
| "model": "/models/bridge-erector-20260916.glb", | |||
| "sha256": "5993a52f55cf981fd7cb6113e346ff3c6b1f434bbd84f18232ab5af494d9ddca", | |||
| "targets": [ | |||
| { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "bridge-0916-node-92", | |||
| "nodePath": "0/46/0", | |||
| "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵", | |||
| "name": "液压泵", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "bridge-0916-node-80", | |||
| "nodePath": "0/40/0", | |||
| "sourceNodeName": "1_25取力器", | |||
| "name": "取力器", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "bridge-0916-node-82", | |||
| "nodePath": "0/41/0", | |||
| "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关", | |||
| "name": "取力器开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "bridge-0916-node-96", | |||
| "nodePath": "0/48/0", | |||
| "sourceNodeName": "1_26球阀开关", | |||
| "name": "球阀开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "bridge-0916-node-84", | |||
| "nodePath": "0/42/0", | |||
| "sourceNodeName": "1_28辅助控制盒内", | |||
| "name": "辅助控制盒", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "bridge-0916-node-78", | |||
| "nodePath": "0/39/0", | |||
| "sourceNodeName": "1_28辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "bridge-0916-node-86", | |||
| "nodePath": "0/43/0", | |||
| "sourceNodeName": "1_28和2_06互救开关", | |||
| "name": "互救开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| } | |||
| ], | |||
| "originals": [ | |||
| { | |||
| "id": "86", | |||
| "code": "TASK-VIRTUAL-005", | |||
| "versionId": "533", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "87", | |||
| "code": "TASK-VIRTUAL-006", | |||
| "versionId": "534", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "88", | |||
| "code": "TASK-VIRTUAL-007", | |||
| "versionId": "535", | |||
| "unchanged": true | |||
| }, | |||
| { | |||
| "id": "89", | |||
| "code": "TASK-VIRTUAL-008", | |||
| "versionId": "536", | |||
| "unchanged": true | |||
| } | |||
| ], | |||
| "grounding": { | |||
| "samples": 446, | |||
| "minGap": 3.3306690738754696e-16, | |||
| "maxGap": 0.001553249851667493 | |||
| }, | |||
| "media": { | |||
| "width": 480, | |||
| "height": 640, | |||
| "duration": 4.96, | |||
| "currentTime": 0.012008 | |||
| }, | |||
| "steps": 5, | |||
| "operations": 6 | |||
| } | |||
| @@ -0,0 +1,656 @@ | |||
| { | |||
| "project": { | |||
| "id": "457", | |||
| "type": "SCENE", | |||
| "code": "SCENE-EBC79290EA954BBC", | |||
| "name": "005 液压泵应急切换(编排验证)", | |||
| "description": "独立验证工程;不替换 TASK-VIRTUAL-005 及其发布版本。", | |||
| "categoryCode": "MAINTENANCE", | |||
| "trainingMode": "", | |||
| "coverUri": "fsvc://unreal-tran/image/2026/09/16/e660ee4fc97512fbc4f155b71f6dbeb4.jpg", | |||
| "status": "PUBLISHED", | |||
| "ownerUserId": "99", | |||
| "ownerName": "内部维护", | |||
| "departmentId": "1", | |||
| "currentVersionId": "544", | |||
| "currentVersionNo": 4, | |||
| "currentVersionCode": "V4.0.0", | |||
| "publishedVersionId": "544", | |||
| "publishedTime": 1789567749, | |||
| "usageCount": 1, | |||
| "version": 13, | |||
| "addTime": 1789566525, | |||
| "updateTime": "2026-09-17T01:09:37", | |||
| "contentSummary": { | |||
| "schema": "edit3dv4.scene", | |||
| "sceneType": "OUTDOOR", | |||
| "environmentName": "野外保障、抢修与多装备协同", | |||
| "objectCount": 2 | |||
| }, | |||
| "currentVersionStatus": "PUBLISHED", | |||
| "dependencyCount": 0, | |||
| "assetCount": 3, | |||
| "readCount": 0, | |||
| "downloadCount": 0 | |||
| }, | |||
| "currentVersion": { | |||
| "id": "544", | |||
| "projectId": "457", | |||
| "versionNo": 4, | |||
| "versionCode": "V4.0.0", | |||
| "status": "PUBLISHED", | |||
| "content": { | |||
| "schema": "edit3dv4.scene", | |||
| "version": "1.5", | |||
| "templateRevision": 1, | |||
| "presetId": "outdoor-1", | |||
| "name": "室外综合训练场", | |||
| "type": "outdoor", | |||
| "updatedAt": "2026-09-16T14:09:08.354Z", | |||
| "environment": { | |||
| "schema": "edit3dv4.scene-environment", | |||
| "version": "1.0", | |||
| "presetId": "outdoor-1", | |||
| "type": "outdoor", | |||
| "floorOnly": false, | |||
| "useModelFloor": false | |||
| }, | |||
| "rendering": { | |||
| "schema": "edit3dv4.scene-rendering", | |||
| "version": "1.0", | |||
| "background": 11062241, | |||
| "fog": { | |||
| "color": 11062241, | |||
| "near": 34, | |||
| "far": 88 | |||
| }, | |||
| "toneMappingExposure": 1.05, | |||
| "environment": { | |||
| "type": "room", | |||
| "sigma": 0.04 | |||
| }, | |||
| "camera": { | |||
| "fov": 45, | |||
| "near": 0.05, | |||
| "far": 800, | |||
| "position": [ | |||
| 7.138234886169582, | |||
| 3.695554761077557, | |||
| 7.955160424286649 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ] | |||
| }, | |||
| "lights": { | |||
| "hemisphere": { | |||
| "skyColor": 15594743, | |||
| "groundColor": 6910582, | |||
| "intensity": 1.45 | |||
| }, | |||
| "directional": { | |||
| "color": 16777215, | |||
| "intensity": 2, | |||
| "position": [ | |||
| 12, | |||
| 18, | |||
| 10 | |||
| ], | |||
| "castShadow": true, | |||
| "shadowMapSize": 2048, | |||
| "shadowBounds": 82 | |||
| } | |||
| } | |||
| }, | |||
| "objects": [ | |||
| { | |||
| "sceneId": "ENV-outdoor-1", | |||
| "type": "scene-environment", | |||
| "name": "室外基础环境", | |||
| "deviceId": "", | |||
| "modelId": "", | |||
| "semantic": "环境设施", | |||
| "assetRole": "environment-base", | |||
| "builtinAssetId": "outdoor-1", | |||
| "interactionId": "", | |||
| "operable": false, | |||
| "capabilities": [], | |||
| "visible": true, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 1, | |||
| 1, | |||
| 1 | |||
| ], | |||
| "environmentDescriptor": { | |||
| "schema": "edit3dv4.scene-environment", | |||
| "version": "1.0", | |||
| "presetId": "outdoor-1", | |||
| "type": "outdoor", | |||
| "floorOnly": false, | |||
| "useModelFloor": false | |||
| } | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-training-yard", | |||
| "type": "imported", | |||
| "name": "野外山地训练场", | |||
| "deviceId": "front-pump-training-yard", | |||
| "modelId": "front-pump-field-terrain", | |||
| "semantic": "环境地形", | |||
| "assetRole": "environment", | |||
| "builtinAssetId": "front-pump-field-terrain", | |||
| "modelEditorAssetId": "", | |||
| "modelEditorModelId": "", | |||
| "modelEditorRevision": 0, | |||
| "modelOverrides": {}, | |||
| "materialPreset": null, | |||
| "modelPartTargets": [], | |||
| "partOverrides": {}, | |||
| "interactionId": "scene:front-pump-training-yard", | |||
| "operable": false, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "sourceNodeName": "", | |||
| "splitGroupId": "", | |||
| "visible": true, | |||
| "position": [ | |||
| -3.1597256741842212, | |||
| 10.30528511389146, | |||
| -40.10715876774236 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 1.7159231079037875, | |||
| 1.7159231079037875, | |||
| 1.7159231079037875 | |||
| ], | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/地形.glb", | |||
| "sourceName": "地形.glb", | |||
| "sizeBytes": 0, | |||
| "mimeType": "model/gltf-binary", | |||
| "enclosureMode": "", | |||
| "assetCode": "PILOT-TERRAIN", | |||
| "sourceAssetId": "" | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-vehicle", | |||
| "type": "imported", | |||
| "name": "架桥车前泵互救操作整车模型", | |||
| "deviceId": "front-pump-rescue-vehicle", | |||
| "modelId": "front-pump-step-vehicle", | |||
| "semantic": "实训装备", | |||
| "assetRole": "equipment", | |||
| "builtinAssetId": "front-pump-step-vehicle", | |||
| "modelEditorAssetId": "content-scene-BRIDGE-005-AUTHORING-PILOT-SCENE-front-pump-rescue-vehicle", | |||
| "modelEditorModelId": "front-pump-step-vehicle", | |||
| "modelEditorRevision": 0, | |||
| "modelOverrides": {}, | |||
| "materialPreset": null, | |||
| "modelPartTargets": [ | |||
| { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "model-front-pump-step-vehicle-41", | |||
| "nodePath": "0/6/0", | |||
| "sourceNodeName": "1液压泵", | |||
| "name": "液压泵", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "model-front-pump-step-vehicle-22", | |||
| "nodePath": "0/2/0", | |||
| "sourceNodeName": "2取力器", | |||
| "name": "取力器", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "model-front-pump-step-vehicle-26", | |||
| "nodePath": "0/3/0", | |||
| "sourceNodeName": "2取力器开关", | |||
| "name": "取力器开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "model-front-pump-step-vehicle-53", | |||
| "nodePath": "0/12/0", | |||
| "sourceNodeName": "3球阀开关", | |||
| "name": "球阀开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "model-front-pump-step-vehicle-32", | |||
| "nodePath": "0/5/0", | |||
| "sourceNodeName": "5辅助控制盒", | |||
| "name": "辅助控制盒", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "model-front-pump-step-vehicle-20", | |||
| "nodePath": "0/1/0", | |||
| "sourceNodeName": "5辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "model-front-pump-step-vehicle-30", | |||
| "nodePath": "0/4/0", | |||
| "sourceNodeName": "5互救开关", | |||
| "name": "互救开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| } | |||
| ], | |||
| "partOverrides": { | |||
| "front-pump-hydraulic-pump": { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "model-front-pump-step-vehicle-41", | |||
| "nodePath": "0/6/0", | |||
| "sourceNodeName": "1液压泵", | |||
| "name": "液压泵", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-power-take-off": { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "model-front-pump-step-vehicle-22", | |||
| "nodePath": "0/2/0", | |||
| "sourceNodeName": "2取力器", | |||
| "name": "取力器", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-pto-switch": { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "model-front-pump-step-vehicle-26", | |||
| "nodePath": "0/3/0", | |||
| "sourceNodeName": "2取力器开关", | |||
| "name": "取力器开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-ball-valve-switch": { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "model-front-pump-step-vehicle-53", | |||
| "nodePath": "0/12/0", | |||
| "sourceNodeName": "3球阀开关", | |||
| "name": "球阀开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-aux-control-box": { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "model-front-pump-step-vehicle-32", | |||
| "nodePath": "0/5/0", | |||
| "sourceNodeName": "5辅助控制盒", | |||
| "name": "辅助控制盒", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ] | |||
| }, | |||
| "front-pump-aux-control-box-cover": { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "model-front-pump-step-vehicle-20", | |||
| "nodePath": "0/1/0", | |||
| "sourceNodeName": "5辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| }, | |||
| "front-pump-rescue-switch": { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "model-front-pump-step-vehicle-30", | |||
| "nodePath": "0/4/0", | |||
| "sourceNodeName": "5互救开关", | |||
| "name": "互救开关", | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "rotation": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "scale": [ | |||
| 0.01, | |||
| 0.01, | |||
| 0.01 | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false, | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ] | |||
| } | |||
| }, | |||
| "interactionId": "scene:front-pump-rescue-vehicle", | |||
| "operable": false, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "sourceNodeName": "Group", | |||
| "splitGroupId": "", | |||
| "visible": true, | |||
| "position": [ | |||
| 1.5698558846140135e-16, | |||
| 0.6112875194820317, | |||
| 0.13180482636746585 | |||
| ], | |||
| "rotation": [ | |||
| 3.0865583248298285e-17, | |||
| -3.96331642134641e-33, | |||
| -2.568113739801058e-16 | |||
| ], | |||
| "scale": [ | |||
| 0.9715696607300419, | |||
| 0.9715696607300419, | |||
| 0.9715696607300419 | |||
| ], | |||
| "assetKey": "", | |||
| "resourceUrl": "/models/步骤模型.glb", | |||
| "sourceName": "步骤模型.glb", | |||
| "sizeBytes": 0, | |||
| "mimeType": "model/gltf-binary", | |||
| "enclosureMode": "", | |||
| "assetCode": "PILOT-VEHICLE", | |||
| "sourceAssetId": "" | |||
| } | |||
| ], | |||
| "apiManaged": true, | |||
| "sceneType": "OUTDOOR", | |||
| "objectCount": 3, | |||
| "environmentName": "野外保障、抢修与多装备协同" | |||
| }, | |||
| "changeSummary": "", | |||
| "checksum": "1783a564084e83cf1919c7e9a2f58f6a7830cd9038c88d8bbc97838a51a04e53", | |||
| "createdByUserId": "99", | |||
| "createdByName": "内部维护", | |||
| "publishedByUserId": "99", | |||
| "publishedByName": "内部维护", | |||
| "publishedTime": 1789567749, | |||
| "version": 3, | |||
| "addTime": 1789567748, | |||
| "updateTime": "2026-09-16T22:09:09", | |||
| "dependencies": [], | |||
| "assets": [ | |||
| { | |||
| "id": "4223", | |||
| "versionId": "544", | |||
| "code": "PILOT-TERRAIN", | |||
| "name": "PILOT-TERRAIN", | |||
| "type": "MODEL_FILE", | |||
| "storageUri": "/models/地形.glb", | |||
| "mimeType": "model/gltf-binary", | |||
| "sizeBytes": 10726472, | |||
| "sha256": "fa71494be13ca2ef727031a8a0f2ac42da74bccefebb3b61c7d59489999f349e", | |||
| "metadata": { | |||
| "builtin": true | |||
| }, | |||
| "status": "READY", | |||
| "sortOrder": 0 | |||
| }, | |||
| { | |||
| "id": "4224", | |||
| "versionId": "544", | |||
| "code": "PILOT-VEHICLE", | |||
| "name": "PILOT-VEHICLE", | |||
| "type": "MODEL_FILE", | |||
| "storageUri": "/models/步骤模型.glb", | |||
| "mimeType": "model/gltf-binary", | |||
| "sizeBytes": 32195288, | |||
| "sha256": "e1ee2ff78956d68d224d662552ed7bf18c02223bb741f0f8002def9842db8995", | |||
| "metadata": { | |||
| "builtin": true | |||
| }, | |||
| "status": "READY", | |||
| "sortOrder": 0 | |||
| }, | |||
| { | |||
| "id": "4225", | |||
| "versionId": "544", | |||
| "code": "SCENE_COVER", | |||
| "name": "场景画面封面", | |||
| "type": "IMAGE", | |||
| "storageUri": "fsvc://unreal-tran/image/2026/09/16/e660ee4fc97512fbc4f155b71f6dbeb4.jpg", | |||
| "mimeType": "image/jpeg", | |||
| "sizeBytes": 39227, | |||
| "sha256": "0d2857905f830c320e9c7c3bc33f4d0a56b22ca501eeb073b3f67258fa49d45e", | |||
| "metadata": { | |||
| "usage": "scene-cover", | |||
| "source": "scene-editor-viewport", | |||
| "originalFilename": "scene-cover.jpg", | |||
| "format": "JPEG", | |||
| "width": 640, | |||
| "height": 496, | |||
| "integrity": "sha256" | |||
| }, | |||
| "status": "READY", | |||
| "sortOrder": 2 | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| @@ -0,0 +1 @@ | |||
| <!doctype html><html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>005 新模型验收</title><style>body{font:16px/1.7 system-ui;color:#173f39;background:#f3f8f6;max-width:1200px;margin:32px auto;padding:0 24px}section{background:white;border:1px solid #d5e6df;border-radius:12px;padding:24px;margin:20px 0}img{width:100%;border-radius:8px}a{color:#087f70}li{margin:8px 0}</style><h1>005 新版架桥车:替换与完整流程验收</h1><p>2026-09-17T14:35:31.975Z · 本地与局域网 · 管理员教员预览</p><section><h2>结果</h2><p>已替换为 0916架桥车.glb,七个目标全部重新绑定。五步六个动作、真实鼠标拖拽、服务端预览校验、数字人视频与语音回退通过。前端构建和新模型几何测试通过。</p><p>新增场景资产保留了原运行中的平整作业区,移除重复的基础地面;车轮贴地检查通过。盖板沿新版铰链向外开启,互救手柄向上拨动。</p><p>验证任务 116 保持草稿。原四个已发布任务的完整数据逐项对比一致,旧版 005 的完整流程回归通过。未切换原学员任务,未验证新增学员成绩。</p><ul><li><a href="http://127.0.0.1:6180/teaching/virtual-training/preview/116">打开新版 005 预览</a></li><li><a href="http://127.0.0.1:6180/content/scenes/457/edit">场景制作</a>(发布版本 551)</li><li><a href="http://127.0.0.1:6180/content/training-projects/458/legacy">训练编排</a>(发布版本 552)</li><li><a href="audit.json">模型、版本、贴地与原任务核对</a></li><li><a href="runtime-final-lan.json">局域网操作证据</a> / <a href="original-005-regression.json">原 005 回归</a></li></ul></section><section><h2>新版整车</h2><img src="task-116-initial.png"></section><section><h2>球阀操作</h2><img src="task-116-step-3.png"></section><section><h2>开盖与互救开关</h2><img src="task-116-step-5.png"></section><section><h2>场景制作与训练编排</h2><img src="scene-editor.png"><img src="training-editor.png"></section></html> | |||
| @@ -0,0 +1,138 @@ | |||
| { | |||
| "source": "0916架桥车.glb", | |||
| "sha256": "5993a52f55cf981fd7cb6113e346ff3c6b1f434bbd84f18232ab5af494d9ddca", | |||
| "resourceUrl": "/models/bridge-erector-20260916.glb", | |||
| "sceneVersionId": "549", | |||
| "map": { | |||
| "1液压泵": "1_24柱塞泵3_05前泵3_08新泵", | |||
| "2取力器": "1_25取力器", | |||
| "2取力器开关": "1_25和1_27和2_03和2_08取力器开关", | |||
| "3球阀开关": "1_26球阀开关", | |||
| "5辅助控制盒": "1_28辅助控制盒内", | |||
| "5辅助控制盒盖": "1_28辅助控制盒盖", | |||
| "5互救开关": "1_28和2_06互救开关" | |||
| }, | |||
| "targets": [ | |||
| { | |||
| "sceneId": "front-pump-hydraulic-pump", | |||
| "interactionId": "front-pump-hydraulic-pump", | |||
| "sourceInteractionId": "front-pump-hydraulic-pump", | |||
| "editorId": "bridge-0916-node-92", | |||
| "nodePath": "0/46/0", | |||
| "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵", | |||
| "name": "液压泵", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-power-take-off", | |||
| "interactionId": "front-pump-power-take-off", | |||
| "sourceInteractionId": "front-pump-power-take-off", | |||
| "editorId": "bridge-0916-node-80", | |||
| "nodePath": "0/40/0", | |||
| "sourceNodeName": "1_25取力器", | |||
| "name": "取力器", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-pto-switch", | |||
| "interactionId": "front-pump-pto-switch", | |||
| "sourceInteractionId": "front-pump-pto-switch", | |||
| "editorId": "bridge-0916-node-82", | |||
| "nodePath": "0/41/0", | |||
| "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关", | |||
| "name": "取力器开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-ball-valve-switch", | |||
| "interactionId": "front-pump-ball-valve-switch", | |||
| "sourceInteractionId": "front-pump-ball-valve-switch", | |||
| "editorId": "bridge-0916-node-96", | |||
| "nodePath": "0/48/0", | |||
| "sourceNodeName": "1_26球阀开关", | |||
| "name": "球阀开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box", | |||
| "interactionId": "front-pump-aux-control-box", | |||
| "sourceInteractionId": "front-pump-aux-control-box", | |||
| "editorId": "bridge-0916-node-84", | |||
| "nodePath": "0/42/0", | |||
| "sourceNodeName": "1_28辅助控制盒内", | |||
| "name": "辅助控制盒", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-aux-control-box-cover", | |||
| "interactionId": "front-pump-aux-control-box-cover", | |||
| "sourceInteractionId": "front-pump-aux-control-box-cover", | |||
| "editorId": "bridge-0916-node-78", | |||
| "nodePath": "0/39/0", | |||
| "sourceNodeName": "1_28辅助控制盒盖", | |||
| "name": "辅助控制盒盖", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| }, | |||
| { | |||
| "sceneId": "front-pump-rescue-switch", | |||
| "interactionId": "front-pump-rescue-switch", | |||
| "sourceInteractionId": "front-pump-rescue-switch", | |||
| "editorId": "bridge-0916-node-86", | |||
| "nodePath": "0/43/0", | |||
| "sourceNodeName": "1_28和2_06互救开关", | |||
| "name": "互救开关", | |||
| "operable": true, | |||
| "capabilities": [ | |||
| "select", | |||
| "inspect", | |||
| "mechanism" | |||
| ], | |||
| "visible": true, | |||
| "sceneDeleted": false | |||
| } | |||
| ], | |||
| "position": [ | |||
| 1.5698558846140135e-16, | |||
| 0.00012730681329620186, | |||
| 0.13180482636746585 | |||
| ] | |||
| } | |||
| @@ -0,0 +1,454 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 86 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "grounding": null, | |||
| "modelSources": [ | |||
| { | |||
| "name": "地形.glb", | |||
| "url": "/models/地形.glb" | |||
| }, | |||
| { | |||
| "name": "步骤模型.glb", | |||
| "url": "/models/步骤模型.glb" | |||
| } | |||
| ], | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.052363924053688, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 937.1159093565705, | |||
| "y": 510.8943121357542, | |||
| "localX": 678.1159093565705, | |||
| "localY": 322.3943121357542, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 670.919240275776, | |||
| "y": 316.01579133562, | |||
| "w": 14.309325962616413, | |||
| "h": 12.873100207788639 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 6.688026389433602, | |||
| 3.8228247388783156, | |||
| 8.328485692502216 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 881.0625, | |||
| "y": 533.375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "narration": [ | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 86 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743606, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.81006115045116, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645237 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 86 internal target inspected with explicit translucent tool", | |||
| "targetId": "front-pump-pto-switch", | |||
| "pass": true | |||
| }, | |||
| { | |||
| "name": "task 86 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate" | |||
| ] | |||
| } | |||
| @@ -0,0 +1,21 @@ | |||
| <!doctype html> | |||
| <html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"> | |||
| <title>005 操作准备与盒盖状态回归</title> | |||
| <style>body{font:16px/1.7 system-ui;max-width:1100px;margin:32px auto;padding:0 20px;color:#153b37}img{max-width:100%;border:1px solid #c9dfda}code{background:#edf4f2;padding:2px 5px}a{color:#087d69}</style> | |||
| <h1>005 操作准备与盒盖状态回归</h1> | |||
| <p>环境:本地 127.0.0.1:6180、局域网 192.168.31.168:6180,现有 /api 网关代理。账号类型:管理员,教员预览。</p> | |||
| <p>原因:准备校验失败会恢复模型,但未恢复当前步骤已完成的机构动作。005 没有补充操作台,原恢复逻辑因此跳过了已打开的盒盖。</p> | |||
| <p>修复:恢复当前步骤已完成的动作不再依赖补充操作台。拒绝末项操作时,仅回退该项动作,保留开盖状态和动作进度。</p> | |||
| <ul> | |||
| <li><a href="before-fix.json">修复前:真实鼠标操作复现失败</a>,盒盖从打开 100° 复位为关闭。</li> | |||
| <li><a href="after-fix.json">修复后:新模型任务 116 全流程</a>。开盖后触发准备提示,校验已开盖姿态、开关回退、操作序号及证据数量;连续保存两次后,真实拖动开关完成第 5 步。</li> | |||
| <li><a href="original-005-regression.json">原有任务 86 全流程回归</a>,五步、六项交互,任务版本及定义快照保持不变。</li> | |||
| <li><a href="lan-smoke.json">局域网预览检查</a>。</li> | |||
| </ul> | |||
| <p>执行:<code>node tools/bridge-controls-live.mjs</code>,新任务启用 <code>TASK_IDS=116 EXECUTE=1 PREPARE_SAFETY=1 LATE_PREPARATION=1 MANUAL_OCCLUSION_TOOLS=1</code>;原有任务设置 <code>TASK_IDS=86</code>,不启用 LATE_PREPARATION(原任务没有该准备拦截)。</p> | |||
| <p>前端验证:<code>node scripts/virtual-training-formal-route.contract.test.mjs</code>、<code>pnpm run build</code>。本次没有创建任务、发布新版本或写入学员成绩;预览准备信息仅用于本次预览,测试只留下本目录报告与截图。</p> | |||
| <h2>保存准备后,盒盖保持打开</h2> | |||
| <img src="task-116-late-preparation-lid-open.png" alt="保存准备后盒盖仍打开,互救开关可见"> | |||
| <h2>继续操作互救开关,完成第 5 步</h2> | |||
| <img src="task-116-step-5.png" alt="新模型第5步已完成"> | |||
| </html> | |||
| @@ -0,0 +1,899 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 116 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "lid": { | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| }, | |||
| "evidenceCount": 0, | |||
| "grounding": null, | |||
| "modelSources": [ | |||
| { | |||
| "name": "terrain-005-20260917.glb", | |||
| "url": "/models/terrain-005-20260917.glb" | |||
| }, | |||
| { | |||
| "name": "0916架桥车.glb", | |||
| "url": "/models/bridge-erector-20260916.glb" | |||
| } | |||
| ], | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.026959938593922, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 933.2020303264042, | |||
| "y": 508.95441504276926, | |||
| "localX": 674.2020303264042, | |||
| "localY": 320.45441504276926, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935033827385107, | |||
| 0.13537495848346393, | |||
| 0.1972360067697554 | |||
| ], | |||
| "projected": { | |||
| "x": 666.91484191321, | |||
| "y": 314.1958643764656, | |||
| "w": 14.498500962929938, | |||
| "h": 12.630497316989477 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817634914491466, | |||
| 0.6152234412401882, | |||
| 1.6466822177405493 | |||
| ], | |||
| "pickPoints": [ | |||
| { | |||
| "x": 933.164092394675, | |||
| "y": 509.0111130349603 | |||
| }, | |||
| { | |||
| "x": 930.9893172502354, | |||
| "y": 509.0111130349603 | |||
| }, | |||
| { | |||
| "x": 935.3388675391145, | |||
| "y": 509.0111130349603 | |||
| }, | |||
| { | |||
| "x": 928.814542105796, | |||
| "y": 509.0111130349603 | |||
| }, | |||
| { | |||
| "x": 937.5136426835539, | |||
| "y": 509.0111130349603 | |||
| }, | |||
| { | |||
| "x": 933.164092394675, | |||
| "y": 507.1165384374119 | |||
| }, | |||
| { | |||
| "x": 930.9893172502354, | |||
| "y": 507.1165384374119 | |||
| }, | |||
| { | |||
| "x": 935.3388675391145, | |||
| "y": 507.1165384374119 | |||
| }, | |||
| { | |||
| "x": 933.164092394675, | |||
| "y": 510.9056876325087 | |||
| }, | |||
| { | |||
| "x": 930.9893172502354, | |||
| "y": 510.9056876325087 | |||
| }, | |||
| { | |||
| "x": 935.3388675391145, | |||
| "y": 510.9056876325087 | |||
| }, | |||
| { | |||
| "x": 928.814542105796, | |||
| "y": 510.9056876325087 | |||
| }, | |||
| { | |||
| "x": 935.3388675391145, | |||
| "y": 505.22196383986346 | |||
| }, | |||
| { | |||
| "x": 933.164092394675, | |||
| "y": 512.8002622300571 | |||
| }, | |||
| { | |||
| "x": 930.9893172502354, | |||
| "y": 512.8002622300571 | |||
| }, | |||
| { | |||
| "x": 928.814542105796, | |||
| "y": 512.8002622300571 | |||
| } | |||
| ], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 4.7683715820306587e-7, | |||
| 1.629206909017054e-7, | |||
| -0.9999999999998731 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 7.138234886169582, | |||
| 3.695554761077557, | |||
| 7.955160424286649 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 877.15625, | |||
| "y": 531.3125, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "narration": [ | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [] | |||
| } | |||
| @@ -0,0 +1,468 @@ | |||
| { | |||
| "pass": true, | |||
| "checks": [ | |||
| { | |||
| "name": "task 86 first view", | |||
| "state": { | |||
| "id": "front-pump-hydraulic-pump", | |||
| "step": 0, | |||
| "operation": 0, | |||
| "errors": 0, | |||
| "complete": false, | |||
| "pending": false, | |||
| "lid": { | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| }, | |||
| "evidenceCount": 0, | |||
| "grounding": null, | |||
| "modelSources": [ | |||
| { | |||
| "name": "地形.glb", | |||
| "url": "/models/地形.glb" | |||
| }, | |||
| { | |||
| "name": "步骤模型.glb", | |||
| "url": "/models/步骤模型.glb" | |||
| } | |||
| ], | |||
| "hdr": "venice_sunset_1k", | |||
| "distance": 11.052363924053688, | |||
| "zoom": 1, | |||
| "exposure": 1, | |||
| "light": [ | |||
| 0.8, | |||
| 1.4 | |||
| ], | |||
| "screen": { | |||
| "x": 937.1159093565705, | |||
| "y": 510.8943121357542, | |||
| "localX": 678.1159093565705, | |||
| "localY": 322.3943121357542, | |||
| "visible": true | |||
| }, | |||
| "bounds": [ | |||
| 0.10935024518472723, | |||
| 0.13537492625037484, | |||
| 0.19723593501664283 | |||
| ], | |||
| "projected": { | |||
| "x": 670.919240275776, | |||
| "y": 316.01579133562, | |||
| "w": 14.309325962616413, | |||
| "h": 12.873100207788639 | |||
| }, | |||
| "pivot": [ | |||
| -0.12817655929936847, | |||
| 0.6146985381013499, | |||
| 1.6466816717666437 | |||
| ], | |||
| "pickPoints": [], | |||
| "freePoints": [], | |||
| "tip": null, | |||
| "front": [ | |||
| 6.098689649701348e-32, | |||
| 2.5291018817332963e-16, | |||
| -1 | |||
| ], | |||
| "workflowCoverage": [ | |||
| { | |||
| "name": "front-pump-hydraulic-pump", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-pto-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-ball-valve-switch", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-aux-control-box-cover", | |||
| "glowing": true | |||
| }, | |||
| { | |||
| "name": "front-pump-rescue-switch", | |||
| "glowing": true | |||
| } | |||
| ], | |||
| "camera": [ | |||
| 6.688026389433602, | |||
| 3.8228247388783156, | |||
| 8.328485692502216 | |||
| ], | |||
| "target": [ | |||
| 2.220446049250313e-16, | |||
| 0.9835682527980127, | |||
| 0 | |||
| ], | |||
| "outline": 1, | |||
| "cutaway": 0, | |||
| "materials": [ | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| }, | |||
| { | |||
| "opacity": 1, | |||
| "baseline": 1, | |||
| "side": 2 | |||
| } | |||
| ], | |||
| "labels": [ | |||
| { | |||
| "text": "聚焦 · 液压泵", | |||
| "x": 881.0625, | |||
| "y": 533.375, | |||
| "w": 112, | |||
| "h": 30, | |||
| "id": "front-pump-hydraulic-pump" | |||
| } | |||
| ], | |||
| "narration": [ | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| }, | |||
| { | |||
| "video": true, | |||
| "fallback": true | |||
| } | |||
| ], | |||
| "operationData": { | |||
| "targetId": "front-pump-hydraulic-pump", | |||
| "axis": [ | |||
| 0, | |||
| 1, | |||
| 0 | |||
| ], | |||
| "toleranceDegrees": 6, | |||
| "directionHint": "点击并确认发生故障的液压泵", | |||
| "index": 0, | |||
| "kind": "identify", | |||
| "deltaDegrees": 0 | |||
| }, | |||
| "position": [ | |||
| 0, | |||
| 0, | |||
| 0 | |||
| ], | |||
| "quaternion": [ | |||
| 0, | |||
| 0, | |||
| 0, | |||
| 1 | |||
| ] | |||
| } | |||
| }, | |||
| { | |||
| "name": "task 86 step 1 operation 1", | |||
| "target": "front-pump-hydraulic-pump", | |||
| "drag": false, | |||
| "distance": 2.5322004355743606, | |||
| "projected": { | |||
| "x": 705.1374098658791, | |||
| "y": 222.81006115045116, | |||
| "w": 91.72518026824184, | |||
| "h": 113.44868046645237 | |||
| }, | |||
| "labels": 3 | |||
| }, | |||
| { | |||
| "name": "task 86 internal target inspected with explicit translucent tool", | |||
| "targetId": "front-pump-pto-switch", | |||
| "pass": true | |||
| }, | |||
| { | |||
| "name": "task 86 step 2 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 709.0006218750913, | |||
| "y": 263.03238137674134, | |||
| "w": 83.99875624981757, | |||
| "h": 33.023591730971475 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 3 operation 1", | |||
| "target": "front-pump-ball-valve-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 742.9515028622343, | |||
| "y": 259.69721416379815, | |||
| "w": 16.096994275529482, | |||
| "h": 40.44894573262036 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 4 operation 1", | |||
| "target": "front-pump-pto-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 706.5903063366927, | |||
| "y": 244.5697698769074, | |||
| "w": 88.81938732661342, | |||
| "h": 69.87239851232039 | |||
| }, | |||
| "labels": 2 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 1", | |||
| "target": "front-pump-aux-control-box-cover", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 699.1228274926349, | |||
| "y": 249.2085662189188, | |||
| "w": 103.7543450147308, | |||
| "h": 60.65167032951712 | |||
| }, | |||
| "labels": 4 | |||
| }, | |||
| { | |||
| "name": "task 86 step 5 operation 2", | |||
| "target": "front-pump-rescue-switch", | |||
| "drag": true, | |||
| "distance": 2.532200435574361, | |||
| "projected": { | |||
| "x": 748.0136091802624, | |||
| "y": 276.397277651574, | |||
| "w": 5.972781639476352, | |||
| "h": 6.274247464206724 | |||
| }, | |||
| "labels": 4 | |||
| } | |||
| ], | |||
| "errors": [], | |||
| "writes": [ | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate", | |||
| "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/86/preview/validate" | |||
| ] | |||
| } | |||