diff --git a/reports/bridge-006-hose-connections-20260921/after-task.json b/reports/bridge-006-hose-connections-20260921/after-task.json
new file mode 100644
index 0000000..0112963
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/after-task.json
@@ -0,0 +1,1580 @@
+{
+ "id": "87",
+ "code": "TASK-VIRTUAL-006",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "439",
+ "contentVersionId": "566",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-hose-line-a",
+ "bridge-hose-line-b",
+ "bridge-return-line-a",
+ "bridge-return-line-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "打开架桥车快速接口防尘盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "先打开架桥车、保障车的快速接口防尘盖,再依次将供油软管和回油软管的两端连接到对应接口。点击高亮部件播放动作,也可按住接头拖动至行程末端;四个接头全部到位后才完成本步。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "打开架桥车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "打开保障车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-a",
+ "kind": "identify",
+ "directionHint": "连接供油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-b",
+ "kind": "identify",
+ "directionHint": "连接供油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-a",
+ "kind": "identify",
+ "directionHint": "连接回油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-b",
+ "kind": "identify",
+ "directionHint": "连接回油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "44c2dd629efd479ef7f134226fd239cd91571e8a2dc79f3474901656095bc1b6",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1790004481,
+ "withdrawnAt": null,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 15,
+ "addTime": 1789309631,
+ "updateTime": "2026-09-13T22:27:12",
+ "serverNow": 1790004481,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/before-project.json b/reports/bridge-006-hose-connections-20260921/before-project.json
new file mode 100644
index 0000000..21b5168
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/before-project.json
@@ -0,0 +1,1703 @@
+{
+ "project": {
+ "id": "439",
+ "type": "TRAINING",
+ "code": "TRAINING-439DE936E7CF4371",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "categoryCode": "MAINTENANCE",
+ "trainingMode": "VIRTUAL",
+ "coverUri": "",
+ "status": "PUBLISHED",
+ "ownerUserId": "99",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "currentVersionId": "557",
+ "currentVersionNo": 6,
+ "currentVersionCode": "V6.0.0",
+ "publishedVersionId": "557",
+ "publishedTime": 1789663314,
+ "usageCount": 0,
+ "version": 12,
+ "addTime": 1789309630,
+ "updateTime": "2026-09-18T00:41:54",
+ "contentSummary": {
+ "schema": "digital-workshop-training-project",
+ "trainingMode": "VIRTUAL",
+ "stepCount": 7
+ },
+ "currentVersionStatus": "PUBLISHED",
+ "dependencyCount": 0,
+ "assetCount": 7,
+ "readCount": 0,
+ "downloadCount": 0
+ },
+ "currentVersion": {
+ "id": "557",
+ "projectId": "439",
+ "versionNo": 6,
+ "versionCode": "V6.0.0",
+ "status": "PUBLISHED",
+ "content": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "连接架桥车快速接头",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "连接架桥车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "连接保障车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-return-line",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "changeSummary": "接入图片原文背景与前置讲解;保留原操作步骤、模型和评分",
+ "checksum": "98bab14f24d856208e23e11a4e38baf1ab9a4163a6facbdce4737628476a9aae",
+ "createdByUserId": "99",
+ "createdByName": "内部维护",
+ "publishedByUserId": "99",
+ "publishedByName": "内部维护",
+ "publishedTime": 1789663314,
+ "version": 2,
+ "addTime": 1789663313,
+ "updateTime": "2026-09-18T00:41:54",
+ "dependencies": [],
+ "assets": [
+ {
+ "id": "4562",
+ "versionId": "557",
+ "code": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "name": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/75748c295407bd0768e760d4593dbdee.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 554961,
+ "sha256": "d82bb8354acfca494e2ff515e5ef79887fb9d1f929a62779119d136857944ba6",
+ "metadata": {
+ "sourceVideoId": "58",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4563",
+ "versionId": "557",
+ "code": "DH_B9F2CBFE36274528825899153DB98195",
+ "name": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/d4c77791615f95ed57751597446e35c5.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 400318,
+ "sha256": "8791296620dbb4cc823bab5f24af07b8b48d510292b4baf966598b0b0351e4f9",
+ "metadata": {
+ "sourceVideoId": "59",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4564",
+ "versionId": "557",
+ "code": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "name": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/0fbe417a88b14dc657256c924e8ba532.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 224021,
+ "sha256": "f78a59ebddcd35e937ce42910aed82fcaf9b49c07be4e1d460fc701e666d3d29",
+ "metadata": {
+ "sourceVideoId": "60",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4565",
+ "versionId": "557",
+ "code": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "name": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/0e886b5158602172fb149cb7bb4c07cc.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 332829,
+ "sha256": "a784a79790a96f486eb6be917fa879db7071813a31f461f5d95d31c754ce3f46",
+ "metadata": {
+ "sourceVideoId": "61",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4566",
+ "versionId": "557",
+ "code": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "name": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/3a57549a9c62a2faa19f4a9af7740193.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 241632,
+ "sha256": "db5c8f4a531e958712d309f25f9c51a145f717e4687893fcc41b65e2c8242175",
+ "metadata": {
+ "sourceVideoId": "62",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4567",
+ "versionId": "557",
+ "code": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "name": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/34657e7ed592e7d7a987f90e0f0188ba.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 401336,
+ "sha256": "05ffeff41d2cf4162b6e8181d4d002ba3f12531589a25d31bac76c69f5dea6bb",
+ "metadata": {
+ "sourceVideoId": "63",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4568",
+ "versionId": "557",
+ "code": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "name": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/715a4ac02abad5bf00d7a0a1bd0edb15.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 762615,
+ "sha256": "7b85bbf9c21adc74b56a26f6d92db1448f9f565101da6feba7ca9ad4cdd137f7",
+ "metadata": {
+ "sourceVideoId": "64",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/before-task.json b/reports/bridge-006-hose-connections-20260921/before-task.json
new file mode 100644
index 0000000..bbb242f
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/before-task.json
@@ -0,0 +1,1524 @@
+{
+ "id": "87",
+ "code": "TASK-VIRTUAL-006",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "439",
+ "contentVersionId": "557",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "连接架桥车快速接头",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "连接架桥车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "连接保障车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-return-line",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "98bab14f24d856208e23e11a4e38baf1ab9a4163a6facbdce4737628476a9aae",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789657622,
+ "withdrawnAt": 1789657622,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 12,
+ "addTime": 1789309631,
+ "updateTime": "2026-09-13T22:27:12",
+ "serverNow": 1790004382,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-1.png b/reports/bridge-006-hose-connections-20260921/hose-operation-1.png
new file mode 100644
index 0000000..cd34bcc
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-1.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-2.png b/reports/bridge-006-hose-connections-20260921/hose-operation-2.png
new file mode 100644
index 0000000..8bec2c1
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-2.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-3.png b/reports/bridge-006-hose-connections-20260921/hose-operation-3.png
new file mode 100644
index 0000000..1042a84
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-3.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-4.png b/reports/bridge-006-hose-connections-20260921/hose-operation-4.png
new file mode 100644
index 0000000..cc4f2df
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-4.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-5.png b/reports/bridge-006-hose-connections-20260921/hose-operation-5.png
new file mode 100644
index 0000000..ac44e0c
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-5.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/hose-operation-6.png b/reports/bridge-006-hose-connections-20260921/hose-operation-6.png
new file mode 100644
index 0000000..c184131
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/hose-operation-6.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/index.html b/reports/bridge-006-hose-connections-20260921/index.html
new file mode 100644
index 0000000..46e2411
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/index.html
@@ -0,0 +1 @@
+
006 双车软管连接修正006 · 连接两车液压软管
2026-09-21 · 内容版本 557 → 566 · 现有任务 87 · 管理员教员预览 · 不写学员成绩
本地打开任务局域网打开任务本地验证局域网验证内容版本更新记录
原因与修正
原实现把两个接口盖当作连接目标,点击盖子后直接显示供油或回油软管。现已拆分为两个开盖动作和四个独立接管动作,全部接头到位后才完成第 2 步。
按顶部提示点击高亮的部件播放动作,或按住接头拖动至行程末端再松开。点击标签只聚焦;短拖后松开会复原,不能计为完成。供油、回油以及两车端头都有独立名称。
接头沿接口方向插入,附近管体随动,最终位置严格恢复所提供模型的导出装配坐标。尚不包含快接锁套独立锁紧和工程级软管力学仿真。
验证包括真实鼠标拖动、四端分别连接、两盖打开后仍未完成、短拖取消、重复保存准备记录后状态保持、七步全部经过服务端预览校验。数字教员提示随当前小动作更新。
讲解、成绩规则、其他六步与成员保留;旧内容版本和备份保留。本次没有创建测试教学任务。
1. 打开架桥车接口防尘盖
动作完成后的画面;未完成全部六项时,页面提示下一项操作。

2. 打开保障车接口防尘盖
动作完成后的画面;未完成全部六项时,页面提示下一项操作。

3. 连接供油软管架桥车端
动作完成后的画面;未完成全部六项时,页面提示下一项操作。

4. 连接供油软管保障车端
动作完成后的画面;未完成全部六项时,页面提示下一项操作。

5. 连接回油软管架桥车端
动作完成后的画面;未完成全部六项时,页面提示下一项操作。

6. 连接回油软管保障车端
动作完成后的画面;未完成全部六项时,页面提示下一项操作。
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/lan-runtime.json b/reports/bridge-006-hose-connections-20260921/lan-runtime.json
new file mode 100644
index 0000000..6a4a297
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/lan-runtime.json
@@ -0,0 +1,1624 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 87 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 15.259438616959523,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1013.602930281089,
+ "y": 496.20521864360535,
+ "localX": 550.602930281089,
+ "localY": 307.70521864360535,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 536.7233791838236,
+ "y": 296.80898942798194,
+ "w": 27.71510311051361,
+ "h": 22.135003784886635
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-pto-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-valve",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-aux-control-box-cover",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-rescue-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-support-pto",
+ "glowing": true
+ },
+ {
+ "name": "bridge-supply",
+ "glowing": true
+ },
+ {
+ "name": "bridge-normal-control",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 10.052979982711939,
+ 6.245383343985843,
+ 11.135487493970418
+ ],
+ "target": [
+ 1.197076935786147,
+ 1.0123497253478748,
+ -0.13566183848059057
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 949.578125,
+ "y": 523.4375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "hoseConnections": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 87 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 87 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 1 operation 2",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 709.0006218687108,
+ "y": 263.03238137723895,
+ "w": 83.99875626257597,
+ "h": 33.023591730972726
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 hose operation 1 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 1",
+ "target": "bridge-hose-a",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 716.5751089643882,
+ "y": 235.1456238637226,
+ "w": 68.84978207122037,
+ "h": 89.46479408676683
+ },
+ "labels": 10
+ },
+ {
+ "name": "006 hose operation 2 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 2",
+ "target": "bridge-hose-b",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 716.5749979728365,
+ "y": 235.14564999479703,
+ "w": 68.85000405432356,
+ "h": 89.46473781586778
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 short hose drag does not count as a connection",
+ "pass": true
+ },
+ {
+ "name": "006 hose operation 3 geometry and completion guard",
+ "pass": true,
+ "connected": 1,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 3",
+ "target": "bridge-hose-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8016963712324,
+ "y": 246.3561291464537,
+ "w": 56.39660725753561,
+ "h": 66.60615034164394
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 4 geometry and completion guard",
+ "pass": true,
+ "connected": 2,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 4",
+ "target": "bridge-hose-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8017098128092,
+ "y": 246.35605894123788,
+ "w": 56.396580374382324,
+ "h": 66.60629498856335
+ },
+ "labels": 4
+ },
+ {
+ "name": "006 hose operation 5 geometry and completion guard",
+ "pass": true,
+ "connected": 3,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 5",
+ "target": "bridge-return-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817238724916,
+ "y": 255.9786090146429,
+ "w": 36.03655225501757,
+ "h": 47.310764141427484
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 6 geometry and completion guard",
+ "pass": true,
+ "connected": 4,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 6",
+ "target": "bridge-return-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817678929677,
+ "y": 255.9785383102741,
+ "w": 36.03646421406563,
+ "h": 47.31090878328561
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 3 operation 1",
+ "target": "bridge-return-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.7555261168103,
+ "y": 264.6492748792297,
+ "w": 116.48894776638076,
+ "h": 29.793580229157556
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 4 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 699.1228274833263,
+ "y": 249.20856621347716,
+ "w": 103.75434503334805,
+ "h": 60.651670340400216
+ },
+ "labels": 14
+ },
+ {
+ "name": "task 87 step 4 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104569
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 87 step 5 operation 1",
+ "target": "bridge-filter-valve-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.6892130062968,
+ "y": 264.8954801602761,
+ "w": 116.62157398740703,
+ "h": 29.326181621991225
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 5 operation 2",
+ "target": "bridge-filter-valve-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 7
+ },
+ {
+ "name": "task 87 step 6 operation 1",
+ "target": "bridge-support-pto",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 713.0499877342736,
+ "y": 234.09443864742252,
+ "w": 75.90002453145382,
+ "h": 91.19538520202474
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 6 operation 2",
+ "target": "bridge-supply",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 716.8964976099176,
+ "y": 231.9366905664349,
+ "w": 68.2070047801659,
+ "h": 95.45439604586647
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 7 operation 1",
+ "target": "bridge-normal-control",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 713.0499877342731,
+ "y": 234.094438647423,
+ "w": 75.90002453145382,
+ "h": 91.19538520202471
+ },
+ "labels": 8
+ }
+ ],
+ "errors": [],
+ "writes": [
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/migration.json b/reports/bridge-006-hose-connections-20260921/migration.json
new file mode 100644
index 0000000..4ab6181
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/migration.json
@@ -0,0 +1,8 @@
+{
+ "pass": true,
+ "id": "87",
+ "oldContentVersion": "557",
+ "newContentVersion": "566",
+ "operations": 6,
+ "runCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/runtime.json b/reports/bridge-006-hose-connections-20260921/runtime.json
new file mode 100644
index 0000000..74815e1
--- /dev/null
+++ b/reports/bridge-006-hose-connections-20260921/runtime.json
@@ -0,0 +1,1625 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 87 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 15.259438616959523,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1013.602930281089,
+ "y": 496.20521864360535,
+ "localX": 550.602930281089,
+ "localY": 307.70521864360535,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 536.7233791838236,
+ "y": 296.80898942798194,
+ "w": 27.71510311051361,
+ "h": 22.135003784886635
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-pto-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-valve",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-aux-control-box-cover",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-rescue-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-support-pto",
+ "glowing": true
+ },
+ {
+ "name": "bridge-supply",
+ "glowing": true
+ },
+ {
+ "name": "bridge-normal-control",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 10.052979982711939,
+ 6.245383343985843,
+ 11.135487493970418
+ ],
+ "target": [
+ 1.197076935786147,
+ 1.0123497253478748,
+ -0.13566183848059057
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 949.578125,
+ "y": 523.4375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "teacherWarning": "当前操作:保持架桥车发动机运行。",
+ "hoseConnections": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 87 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 87 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 1 operation 2",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 709.0006218687108,
+ "y": 263.03238137723895,
+ "w": 83.99875626257597,
+ "h": 33.023591730972726
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 hose operation 1 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 1",
+ "target": "bridge-hose-a",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 716.5751089643882,
+ "y": 235.1456238637226,
+ "w": 68.84978207122037,
+ "h": 89.46479408676683
+ },
+ "labels": 10
+ },
+ {
+ "name": "006 hose operation 2 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 2",
+ "target": "bridge-hose-b",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 716.5749979728365,
+ "y": 235.14564999479703,
+ "w": 68.85000405432356,
+ "h": 89.46473781586778
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 short hose drag does not count as a connection",
+ "pass": true
+ },
+ {
+ "name": "006 hose operation 3 geometry and completion guard",
+ "pass": true,
+ "connected": 1,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 3",
+ "target": "bridge-hose-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8016963712324,
+ "y": 246.3561291464537,
+ "w": 56.39660725753561,
+ "h": 66.60615034164394
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 4 geometry and completion guard",
+ "pass": true,
+ "connected": 2,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 4",
+ "target": "bridge-hose-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8017098128092,
+ "y": 246.35605894123788,
+ "w": 56.396580374382324,
+ "h": 66.60629498856335
+ },
+ "labels": 4
+ },
+ {
+ "name": "006 hose operation 5 geometry and completion guard",
+ "pass": true,
+ "connected": 3,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 5",
+ "target": "bridge-return-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817238724916,
+ "y": 255.9786090146429,
+ "w": 36.03655225501757,
+ "h": 47.310764141427484
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 6 geometry and completion guard",
+ "pass": true,
+ "connected": 4,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 6",
+ "target": "bridge-return-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817678929677,
+ "y": 255.9785383102741,
+ "w": 36.03646421406563,
+ "h": 47.31090878328561
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 3 operation 1",
+ "target": "bridge-return-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.7555261168103,
+ "y": 264.6492748792297,
+ "w": 116.48894776638076,
+ "h": 29.793580229157556
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 4 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 699.1228274833263,
+ "y": 249.20856621347716,
+ "w": 103.75434503334805,
+ "h": 60.651670340400216
+ },
+ "labels": 14
+ },
+ {
+ "name": "task 87 step 4 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104569
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 87 step 5 operation 1",
+ "target": "bridge-filter-valve-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.6892130062968,
+ "y": 264.8954801602761,
+ "w": 116.62157398740703,
+ "h": 29.326181621991225
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 5 operation 2",
+ "target": "bridge-filter-valve-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 6 operation 1",
+ "target": "bridge-support-pto",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 713.0499877342736,
+ "y": 234.09443864742252,
+ "w": 75.90002453145382,
+ "h": 91.19538520202474
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 6 operation 2",
+ "target": "bridge-supply",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 716.8964976099176,
+ "y": 231.9366905664349,
+ "w": 68.2070047801659,
+ "h": 95.45439604586647
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 7 operation 1",
+ "target": "bridge-normal-control",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 713.0499877342731,
+ "y": 234.094438647423,
+ "w": 75.90002453145382,
+ "h": 91.19538520202471
+ },
+ "labels": 8
+ }
+ ],
+ "errors": [],
+ "writes": [
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-fullscreen.png b/reports/bridge-006-hose-connections-20260921/task-87-fullscreen.png
new file mode 100644
index 0000000..978df83
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-fullscreen.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-initial.png b/reports/bridge-006-hose-connections-20260921/task-87-initial.png
new file mode 100644
index 0000000..f4f14fd
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-initial.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-rescue-moving.png b/reports/bridge-006-hose-connections-20260921/task-87-rescue-moving.png
new file mode 100644
index 0000000..fe3c2bb
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-rescue-moving.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-1.png b/reports/bridge-006-hose-connections-20260921/task-87-step-1.png
new file mode 100644
index 0000000..b58e015
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-1.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-2.png b/reports/bridge-006-hose-connections-20260921/task-87-step-2.png
new file mode 100644
index 0000000..c184131
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-2.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-3.png b/reports/bridge-006-hose-connections-20260921/task-87-step-3.png
new file mode 100644
index 0000000..11fb9c1
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-3.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-4.png b/reports/bridge-006-hose-connections-20260921/task-87-step-4.png
new file mode 100644
index 0000000..0e9b114
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-4.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-5.png b/reports/bridge-006-hose-connections-20260921/task-87-step-5.png
new file mode 100644
index 0000000..f5d48e7
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-5.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-6.png b/reports/bridge-006-hose-connections-20260921/task-87-step-6.png
new file mode 100644
index 0000000..9ce5da6
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-6.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-step-7.png b/reports/bridge-006-hose-connections-20260921/task-87-step-7.png
new file mode 100644
index 0000000..1288438
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-step-7.png differ
diff --git a/reports/bridge-006-hose-connections-20260921/task-87-translucent.png b/reports/bridge-006-hose-connections-20260921/task-87-translucent.png
new file mode 100644
index 0000000..c88ec87
Binary files /dev/null and b/reports/bridge-006-hose-connections-20260921/task-87-translucent.png differ
diff --git a/reports/bridge-006-six-steps-20260921/after-task.json b/reports/bridge-006-six-steps-20260921/after-task.json
new file mode 100644
index 0000000..40671ae
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/after-task.json
@@ -0,0 +1,1507 @@
+{
+ "id": "87",
+ "code": "TASK-VIRTUAL-006",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "439",
+ "contentVersionId": "567",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-hose-line-a",
+ "bridge-hose-line-b",
+ "bridge-return-line-a",
+ "bridge-return-line-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.67,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "打开架桥车快速接口防尘盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "先打开架桥车、保障车的快速接口防尘盖,再依次将供油软管和回油软管的两端连接到对应接口。点击高亮部件播放动作,也可按住接头拖动至行程末端;四个接头全部到位后才完成本步。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "打开架桥车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "打开保障车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-a",
+ "kind": "identify",
+ "directionHint": "连接供油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-b",
+ "kind": "identify",
+ "directionHint": "连接供油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-a",
+ "kind": "identify",
+ "directionHint": "连接回油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-b",
+ "kind": "identify",
+ "directionHint": "连接回油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.67,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.67,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.67,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.67,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 16.65,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "5"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "5e832b48eb1552d8154508d3628202446bc40ef351cda6c7a2ff45e850613b7e",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1790005753,
+ "withdrawnAt": null,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 18,
+ "addTime": 1789309631,
+ "updateTime": "2026-09-13T22:27:12",
+ "serverNow": 1790005753,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/before-project.json b/reports/bridge-006-six-steps-20260921/before-project.json
new file mode 100644
index 0000000..90a74c8
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/before-project.json
@@ -0,0 +1,1759 @@
+{
+ "project": {
+ "id": "439",
+ "type": "TRAINING",
+ "code": "TRAINING-439DE936E7CF4371",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "categoryCode": "MAINTENANCE",
+ "trainingMode": "VIRTUAL",
+ "coverUri": "",
+ "status": "PUBLISHED",
+ "ownerUserId": "99",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "currentVersionId": "566",
+ "currentVersionNo": 7,
+ "currentVersionCode": "V7.0.0",
+ "publishedVersionId": "566",
+ "publishedTime": 1790004480,
+ "usageCount": 0,
+ "version": 14,
+ "addTime": 1789309630,
+ "updateTime": "2026-09-21T23:28:00",
+ "contentSummary": {
+ "schema": "digital-workshop-training-project",
+ "trainingMode": "VIRTUAL",
+ "stepCount": 7
+ },
+ "currentVersionStatus": "PUBLISHED",
+ "dependencyCount": 0,
+ "assetCount": 7,
+ "readCount": 0,
+ "downloadCount": 0
+ },
+ "currentVersion": {
+ "id": "566",
+ "projectId": "439",
+ "versionNo": 7,
+ "versionCode": "V7.0.0",
+ "status": "PUBLISHED",
+ "content": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-hose-line-a",
+ "bridge-hose-line-b",
+ "bridge-return-line-a",
+ "bridge-return-line-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "打开架桥车快速接口防尘盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "先打开架桥车、保障车的快速接口防尘盖,再依次将供油软管和回油软管的两端连接到对应接口。点击高亮部件播放动作,也可按住接头拖动至行程末端;四个接头全部到位后才完成本步。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "打开架桥车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "打开保障车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-a",
+ "kind": "identify",
+ "directionHint": "连接供油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-b",
+ "kind": "identify",
+ "directionHint": "连接供油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-a",
+ "kind": "identify",
+ "directionHint": "连接回油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-b",
+ "kind": "identify",
+ "directionHint": "连接回油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "changeSummary": "006软管连接修正:两车防尘盖与供回油软管四个端头分开操作,保留讲解、准备项与评分规则",
+ "checksum": "44c2dd629efd479ef7f134226fd239cd91571e8a2dc79f3474901656095bc1b6",
+ "createdByUserId": "99",
+ "createdByName": "内部维护",
+ "publishedByUserId": "99",
+ "publishedByName": "内部维护",
+ "publishedTime": 1790004480,
+ "version": 2,
+ "addTime": 1790004480,
+ "updateTime": "2026-09-21T23:28:00",
+ "dependencies": [],
+ "assets": [
+ {
+ "id": "4858",
+ "versionId": "566",
+ "code": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "name": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/75748c295407bd0768e760d4593dbdee.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 554961,
+ "sha256": "d82bb8354acfca494e2ff515e5ef79887fb9d1f929a62779119d136857944ba6",
+ "metadata": {
+ "sourceVideoId": "58",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4859",
+ "versionId": "566",
+ "code": "DH_B9F2CBFE36274528825899153DB98195",
+ "name": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/d4c77791615f95ed57751597446e35c5.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 400318,
+ "sha256": "8791296620dbb4cc823bab5f24af07b8b48d510292b4baf966598b0b0351e4f9",
+ "metadata": {
+ "sourceVideoId": "59",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4860",
+ "versionId": "566",
+ "code": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "name": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/0fbe417a88b14dc657256c924e8ba532.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 224021,
+ "sha256": "f78a59ebddcd35e937ce42910aed82fcaf9b49c07be4e1d460fc701e666d3d29",
+ "metadata": {
+ "sourceVideoId": "60",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4861",
+ "versionId": "566",
+ "code": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "name": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/0e886b5158602172fb149cb7bb4c07cc.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 332829,
+ "sha256": "a784a79790a96f486eb6be917fa879db7071813a31f461f5d95d31c754ce3f46",
+ "metadata": {
+ "sourceVideoId": "61",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4862",
+ "versionId": "566",
+ "code": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "name": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/3a57549a9c62a2faa19f4a9af7740193.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 241632,
+ "sha256": "db5c8f4a531e958712d309f25f9c51a145f717e4687893fcc41b65e2c8242175",
+ "metadata": {
+ "sourceVideoId": "62",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4863",
+ "versionId": "566",
+ "code": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "name": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/34657e7ed592e7d7a987f90e0f0188ba.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 401336,
+ "sha256": "05ffeff41d2cf4162b6e8181d4d002ba3f12531589a25d31bac76c69f5dea6bb",
+ "metadata": {
+ "sourceVideoId": "63",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ },
+ {
+ "id": "4864",
+ "versionId": "566",
+ "code": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "name": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "type": "VIDEO",
+ "storageUri": "fsvc://unreal-tran/video/2026/09/14/715a4ac02abad5bf00d7a0a1bd0edb15.mp4",
+ "mimeType": "video/mp4",
+ "sizeBytes": 762615,
+ "sha256": "7b85bbf9c21adc74b56a26f6d92db1448f9f565101da6feba7ca9ad4cdd137f7",
+ "metadata": {
+ "sourceVideoId": "64",
+ "sourceSystem": "DIGITAL_HUMAN",
+ "sourceAppId": "AP_238179E0A10F97927EA49FA3",
+ "boxCount": 4,
+ "majorBrand": "isom",
+ "format": "MP4",
+ "originalFilename": "digital-human.mp4",
+ "integrity": "sha256"
+ },
+ "status": "READY",
+ "sortOrder": 0
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/before-task.json b/reports/bridge-006-six-steps-20260921/before-task.json
new file mode 100644
index 0000000..b7c2088
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/before-task.json
@@ -0,0 +1,1580 @@
+{
+ "id": "87",
+ "code": "TASK-VIRTUAL-006",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "439",
+ "contentVersionId": "566",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-hose-line-a",
+ "bridge-hose-line-b",
+ "bridge-return-line-a",
+ "bridge-return-line-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "打开架桥车快速接口防尘盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "先打开架桥车、保障车的快速接口防尘盖,再依次将供油软管和回油软管的两端连接到对应接口。点击高亮部件播放动作,也可按住接头拖动至行程末端;四个接头全部到位后才完成本步。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "打开架桥车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "打开保障车快速接口防尘盖",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-a",
+ "kind": "identify",
+ "directionHint": "连接供油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line-b",
+ "kind": "identify",
+ "directionHint": "连接供油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-a",
+ "kind": "identify",
+ "directionHint": "连接回油软管架桥车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-a",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-return-line-b",
+ "kind": "identify",
+ "directionHint": "连接回油软管保障车端接头",
+ "effects": [
+ {
+ "targetId": "bridge-return-line-b",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "44c2dd629efd479ef7f134226fd239cd91571e8a2dc79f3474901656095bc1b6",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1790004481,
+ "withdrawnAt": 1790004481,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 15,
+ "addTime": 1789309631,
+ "updateTime": "2026-09-13T22:27:12",
+ "serverNow": 1790005750,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-1.png b/reports/bridge-006-six-steps-20260921/hose-operation-1.png
new file mode 100644
index 0000000..f8381df
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-1.png differ
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-2.png b/reports/bridge-006-six-steps-20260921/hose-operation-2.png
new file mode 100644
index 0000000..a218d44
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-2.png differ
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-3.png b/reports/bridge-006-six-steps-20260921/hose-operation-3.png
new file mode 100644
index 0000000..f4361af
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-3.png differ
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-4.png b/reports/bridge-006-six-steps-20260921/hose-operation-4.png
new file mode 100644
index 0000000..7201814
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-4.png differ
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-5.png b/reports/bridge-006-six-steps-20260921/hose-operation-5.png
new file mode 100644
index 0000000..31ef054
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-5.png differ
diff --git a/reports/bridge-006-six-steps-20260921/hose-operation-6.png b/reports/bridge-006-six-steps-20260921/hose-operation-6.png
new file mode 100644
index 0000000..1848469
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/hose-operation-6.png differ
diff --git a/reports/bridge-006-six-steps-20260921/index.html b/reports/bridge-006-six-steps-20260921/index.html
new file mode 100644
index 0000000..8099148
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/index.html
@@ -0,0 +1 @@
+006 六步流程验收006:应急替代完成后结束训练
2026-09-21 · 管理员教员预览 · 本地 127.0.0.1:6180 与局域网 192.168.31.168:6180 · 请求经过 Gateway。
现有任务 87 从内容版本 566 更新为 567,脚本 v5,操作步骤由 7 项减为 6 项。项目背景和两段讲解仍保留,目录共 9 项。
- 保持架桥车运行并断开取力器
- 连接两车液压软管
- 打开支援车回油截止阀
- 打开互救作业开关
- 打开滤油器出口连通球阀
- 接通支援车液压取力器
原第七步及正常作业示意手柄已移除;第六步完成后可直接点击“完成训练”。完成说明为“应急替代操作训练已完成,后续可按正常作业规程使用架桥车”。
保留六步的操作、准备项及讲解不变,评分权重合计 100%。旧发布版本和第七段音视频文件保留。005、007、008 及 005 编排验证任务没有修改。
验证:Java 17 Maven package(439 项测试通过);前端 19 项相关测试与生产构建通过;本地和局域网均以真实鼠标操作完成六步、15 个小动作,经过服务端预览校验并打开完成页。无新增测试任务或学员成绩。
打开本地 006 · 本地交互记录 · 局域网交互记录 · 版本更新记录
第六步即最后一步

完成说明
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-1.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-1.png
new file mode 100644
index 0000000..4c1302a
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-1.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-2.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-2.png
new file mode 100644
index 0000000..32d8bbc
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-2.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-3.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-3.png
new file mode 100644
index 0000000..ef174d0
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-3.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-4.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-4.png
new file mode 100644
index 0000000..c502472
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-4.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-5.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-5.png
new file mode 100644
index 0000000..0bb077b
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-5.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/hose-operation-6.png b/reports/bridge-006-six-steps-20260921/lan/hose-operation-6.png
new file mode 100644
index 0000000..9e9abc2
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/hose-operation-6.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/runtime.json b/reports/bridge-006-six-steps-20260921/lan/runtime.json
new file mode 100644
index 0000000..dc9c04b
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/lan/runtime.json
@@ -0,0 +1,1599 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 87 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 15.259438616959523,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1013.602930281089,
+ "y": 496.20521864360535,
+ "localX": 550.602930281089,
+ "localY": 307.70521864360535,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 536.7233791838236,
+ "y": 296.80898942798194,
+ "w": 27.71510311051361,
+ "h": 22.135003784886635
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-pto-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-valve",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-aux-control-box-cover",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-rescue-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-support-pto",
+ "glowing": true
+ },
+ {
+ "name": "bridge-supply",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 10.052979982711939,
+ 6.245383343985843,
+ 11.135487493970418
+ ],
+ "target": [
+ 1.197076935786147,
+ 1.0123497253478748,
+ -0.13566183848059057
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 949.578125,
+ "y": 523.4375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "teacherWarning": "当前操作:保持架桥车发动机运行。",
+ "stepCount": 6,
+ "hasNormalControl": false,
+ "hoseConnections": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 87 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 87 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 1 operation 2",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 709.0006218687108,
+ "y": 263.03238137723895,
+ "w": 83.99875626257597,
+ "h": 33.023591730972726
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 hose operation 1 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 1",
+ "target": "bridge-hose-a",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 716.5751089643882,
+ "y": 235.1456238637226,
+ "w": 68.84978207122037,
+ "h": 89.46479408676683
+ },
+ "labels": 9
+ },
+ {
+ "name": "006 hose operation 2 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 2",
+ "target": "bridge-hose-b",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 716.5749979728365,
+ "y": 235.14564999479703,
+ "w": 68.85000405432356,
+ "h": 89.46473781586778
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 short hose drag does not count as a connection",
+ "pass": true
+ },
+ {
+ "name": "006 hose operation 3 geometry and completion guard",
+ "pass": true,
+ "connected": 1,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 3",
+ "target": "bridge-hose-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8016963712324,
+ "y": 246.3561291464537,
+ "w": 56.39660725753561,
+ "h": 66.60615034164394
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 4 geometry and completion guard",
+ "pass": true,
+ "connected": 2,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 4",
+ "target": "bridge-hose-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8017098128092,
+ "y": 246.35605894123788,
+ "w": 56.396580374382324,
+ "h": 66.60629498856335
+ },
+ "labels": 4
+ },
+ {
+ "name": "006 hose operation 5 geometry and completion guard",
+ "pass": true,
+ "connected": 3,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 5",
+ "target": "bridge-return-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817238724916,
+ "y": 255.9786090146429,
+ "w": 36.03655225501757,
+ "h": 47.310764141427484
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 6 geometry and completion guard",
+ "pass": true,
+ "connected": 4,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 6",
+ "target": "bridge-return-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817678929677,
+ "y": 255.9785383102741,
+ "w": 36.03646421406563,
+ "h": 47.31090878328561
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 3 operation 1",
+ "target": "bridge-return-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.7555261168103,
+ "y": 264.6492748792297,
+ "w": 116.48894776638076,
+ "h": 29.793580229157556
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 4 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 699.1228274833263,
+ "y": 249.20856621347716,
+ "w": 103.75434503334805,
+ "h": 60.651670340400216
+ },
+ "labels": 13
+ },
+ {
+ "name": "task 87 step 4 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104569
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 87 step 5 operation 1",
+ "target": "bridge-filter-valve-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.6892130062968,
+ "y": 264.8954801602761,
+ "w": 116.62157398740703,
+ "h": 29.326181621991225
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 5 operation 2",
+ "target": "bridge-filter-valve-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 6 operation 1",
+ "target": "bridge-support-pto",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 713.0499877342736,
+ "y": 234.09443864742252,
+ "w": 75.90002453145382,
+ "h": 91.19538520202474
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 6 operation 2",
+ "target": "bridge-supply",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 716.8964976099176,
+ "y": 231.9366905664349,
+ "w": 68.2070047801659,
+ "h": 95.45439604586647
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 completes after six steps with no synthetic normal-operation handle, six paired narrations and completion message",
+ "pass": true
+ }
+ ],
+ "errors": [],
+ "writes": [
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://192.168.31.168:6180/api/tran/v1/teaching/assignments/87/preview/validate"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/lan/six-step-completion.png b/reports/bridge-006-six-steps-20260921/lan/six-step-completion.png
new file mode 100644
index 0000000..c1bde50
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/six-step-completion.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-fullscreen.png b/reports/bridge-006-six-steps-20260921/lan/task-87-fullscreen.png
new file mode 100644
index 0000000..5833e72
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-fullscreen.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-initial.png b/reports/bridge-006-six-steps-20260921/lan/task-87-initial.png
new file mode 100644
index 0000000..0e4eb76
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-initial.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-rescue-moving.png b/reports/bridge-006-six-steps-20260921/lan/task-87-rescue-moving.png
new file mode 100644
index 0000000..6e831c1
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-rescue-moving.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-1.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-1.png
new file mode 100644
index 0000000..b9f2891
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-1.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-2.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-2.png
new file mode 100644
index 0000000..9e9abc2
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-2.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-3.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-3.png
new file mode 100644
index 0000000..6f3a9c8
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-3.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-4.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-4.png
new file mode 100644
index 0000000..24fb344
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-4.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-5.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-5.png
new file mode 100644
index 0000000..7b72888
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-5.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-step-6.png b/reports/bridge-006-six-steps-20260921/lan/task-87-step-6.png
new file mode 100644
index 0000000..4781ed2
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-step-6.png differ
diff --git a/reports/bridge-006-six-steps-20260921/lan/task-87-translucent.png b/reports/bridge-006-six-steps-20260921/lan/task-87-translucent.png
new file mode 100644
index 0000000..0d74087
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/lan/task-87-translucent.png differ
diff --git a/reports/bridge-006-six-steps-20260921/migration.json b/reports/bridge-006-six-steps-20260921/migration.json
new file mode 100644
index 0000000..ed3b1b6
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/migration.json
@@ -0,0 +1,15 @@
+{
+ "pass": true,
+ "id": "87",
+ "oldContentVersion": "566",
+ "newContentVersion": "567",
+ "steps": 6,
+ "scoreWeight": 100,
+ "runCount": 0,
+ "unchangedTasks": [
+ 86,
+ 88,
+ 89,
+ 116
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/runtime.json b/reports/bridge-006-six-steps-20260921/runtime.json
new file mode 100644
index 0000000..8473ef7
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/runtime.json
@@ -0,0 +1,1599 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 87 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 15.259438616959523,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1013.602930281089,
+ "y": 496.20521864360535,
+ "localX": 550.602930281089,
+ "localY": 307.70521864360535,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 536.7233791838236,
+ "y": 296.80898942798194,
+ "w": 27.71510311051361,
+ "h": 22.135003784886635
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-pto-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-line-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-valve",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-aux-control-box-cover",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-rescue-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-support-pto",
+ "glowing": true
+ },
+ {
+ "name": "bridge-supply",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 10.052979982711939,
+ 6.245383343985843,
+ 11.135487493970418
+ ],
+ "target": [
+ 1.197076935786147,
+ 1.0123497253478748,
+ -0.13566183848059057
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 949.578125,
+ "y": 523.4375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "teacherWarning": "当前操作:保持架桥车发动机运行。",
+ "stepCount": 6,
+ "hasNormalControl": false,
+ "hoseConnections": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 87 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 87 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 1 operation 2",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 709.0006218687108,
+ "y": 263.03238137723895,
+ "w": 83.99875626257597,
+ "h": 33.023591730972726
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 hose operation 1 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 1",
+ "target": "bridge-hose-a",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 716.5751089643882,
+ "y": 235.1456238637226,
+ "w": 68.84978207122037,
+ "h": 89.46479408676683
+ },
+ "labels": 9
+ },
+ {
+ "name": "006 hose operation 2 geometry and completion guard",
+ "pass": true,
+ "connected": 0,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 2",
+ "target": "bridge-hose-b",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 716.5749979728365,
+ "y": 235.14564999479703,
+ "w": 68.85000405432356,
+ "h": 89.46473781586778
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 short hose drag does not count as a connection",
+ "pass": true
+ },
+ {
+ "name": "006 hose operation 3 geometry and completion guard",
+ "pass": true,
+ "connected": 1,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0.1200000000000001
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 3",
+ "target": "bridge-hose-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8016963712324,
+ "y": 246.3561291464537,
+ "w": 56.39660725753561,
+ "h": 66.60615034164394
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 4 geometry and completion guard",
+ "pass": true,
+ "connected": 2,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.6497425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0.12
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 4",
+ "target": "bridge-hose-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.8017098128092,
+ "y": 246.35605894123788,
+ "w": 56.396580374382324,
+ "h": 66.60629498856335
+ },
+ "labels": 4
+ },
+ {
+ "name": "006 hose operation 5 geometry and completion guard",
+ "pass": true,
+ "connected": 3,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.077364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0.1200000000000001
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 5",
+ "target": "bridge-return-line-a",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817238724916,
+ "y": 255.9786090146429,
+ "w": 36.03655225501757,
+ "h": 47.310764141427484
+ },
+ "labels": 5
+ },
+ {
+ "name": "006 hose operation 6 geometry and completion guard",
+ "pass": true,
+ "connected": 4,
+ "ends": [
+ {
+ "id": "bridge-hose-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9717301726341248,
+ 0.11148320883512497
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5208766460418701,
+ 1.110397458076477
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-a",
+ "position": [
+ -0.5297425091266632,
+ 0.9708543121814728,
+ 0.07469351589679718
+ ],
+ "remaining": 0
+ },
+ {
+ "id": "bridge-return-line-b",
+ "position": [
+ 3.197364330291748,
+ 0.5211287438869476,
+ 1.0733574628829956
+ ],
+ "remaining": 0
+ }
+ ]
+ },
+ {
+ "name": "task 87 step 2 operation 6",
+ "target": "bridge-return-line-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 732.9817678929677,
+ "y": 255.9785383102741,
+ "w": 36.03646421406563,
+ "h": 47.31090878328561
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 3 operation 1",
+ "target": "bridge-return-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.7555261168103,
+ "y": 264.6492748792297,
+ "w": 116.48894776638076,
+ "h": 29.793580229157556
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 4 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 699.1228274833263,
+ "y": 249.20856621347716,
+ "w": 103.75434503334805,
+ "h": 60.651670340400216
+ },
+ "labels": 13
+ },
+ {
+ "name": "task 87 step 4 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104569
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 87 step 5 operation 1",
+ "target": "bridge-filter-valve-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.6892130062968,
+ "y": 264.8954801602761,
+ "w": 116.62157398740703,
+ "h": 29.326181621991225
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 5 operation 2",
+ "target": "bridge-filter-valve-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 87 step 6 operation 1",
+ "target": "bridge-support-pto",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 713.0499877342736,
+ "y": 234.09443864742252,
+ "w": 75.90002453145382,
+ "h": 91.19538520202474
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 6 operation 2",
+ "target": "bridge-supply",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 716.8964976099176,
+ "y": 231.9366905664349,
+ "w": 68.2070047801659,
+ "h": 95.45439604586647
+ },
+ "labels": 1
+ },
+ {
+ "name": "006 completes after six steps with no synthetic normal-operation handle, six paired narrations and completion message",
+ "pass": true
+ }
+ ],
+ "errors": [],
+ "writes": [
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/six-step-completion.png b/reports/bridge-006-six-steps-20260921/six-step-completion.png
new file mode 100644
index 0000000..bcab5b8
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/six-step-completion.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-fullscreen.png b/reports/bridge-006-six-steps-20260921/task-87-fullscreen.png
new file mode 100644
index 0000000..5833e72
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-fullscreen.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-initial.png b/reports/bridge-006-six-steps-20260921/task-87-initial.png
new file mode 100644
index 0000000..48268b3
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-initial.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-rescue-moving.png b/reports/bridge-006-six-steps-20260921/task-87-rescue-moving.png
new file mode 100644
index 0000000..51757d1
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-rescue-moving.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-1.png b/reports/bridge-006-six-steps-20260921/task-87-step-1.png
new file mode 100644
index 0000000..b9f2891
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-1.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-2.png b/reports/bridge-006-six-steps-20260921/task-87-step-2.png
new file mode 100644
index 0000000..1848469
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-2.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-3.png b/reports/bridge-006-six-steps-20260921/task-87-step-3.png
new file mode 100644
index 0000000..c596f0a
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-3.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-4.png b/reports/bridge-006-six-steps-20260921/task-87-step-4.png
new file mode 100644
index 0000000..6ca6186
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-4.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-5.png b/reports/bridge-006-six-steps-20260921/task-87-step-5.png
new file mode 100644
index 0000000..907a604
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-5.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-step-6.png b/reports/bridge-006-six-steps-20260921/task-87-step-6.png
new file mode 100644
index 0000000..4781ed2
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-step-6.png differ
diff --git a/reports/bridge-006-six-steps-20260921/task-87-translucent.png b/reports/bridge-006-six-steps-20260921/task-87-translucent.png
new file mode 100644
index 0000000..b6b2704
Binary files /dev/null and b/reports/bridge-006-six-steps-20260921/task-87-translucent.png differ
diff --git a/reports/bridge-006-six-steps-20260921/unchanged-116.json b/reports/bridge-006-six-steps-20260921/unchanged-116.json
new file mode 100644
index 0000000..33e228b
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/unchanged-116.json
@@ -0,0 +1,2255 @@
+{
+ "id": "116",
+ "code": "BRIDGE-005-AUTHORING-PILOT",
+ "name": "005 液压泵应急切换(编排验证)",
+ "description": "独立编排验证,不替换现有005",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "458",
+ "contentVersionId": "560",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "trainingMode": "VIRTUAL",
+ "enabledChannels": [
+ "VIRTUAL"
+ ],
+ "channelProfiles": {
+ "VIRTUAL": {
+ "type": "VIRTUAL",
+ "renderMode": "三维实时仿真",
+ "interactionMode": "三维操作、动画引导与规则自动判定",
+ "assistance": "演示、训练与模拟考试"
+ }
+ },
+ "level": "标准",
+ "durationMinutes": 10,
+ "totalScore": 100,
+ "objectives": [],
+ "steps": [
+ {
+ "id": "front-pump-step-01",
+ "stepCode": "front-pump-step-01",
+ "order": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "summary": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-01",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-hydraulic-pump",
+ "targetName": "液压泵",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "guidance": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "warning": "",
+ "destination": "液压泵",
+ "success": "根据故障现象确定是哪一个液压泵发生故障",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-hydraulic-pump",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "identify",
+ "axisSpace": "world",
+ "highlightColor": "#e53935",
+ "steps": [
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "toleranceDegrees": 6,
+ "directionHint": "点击并确认发生故障的液压泵"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第1步,确定故障液压泵。根据故障现象确定发生故障的液压泵。",
+ "narrationAssetCode": "PILOT-005-1-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-1-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 1,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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新泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-hydraulic-pump",
+ "targetNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-02",
+ "stepCode": "front-pump-step-02",
+ "order": 2,
+ "title": "断开架桥车取力器",
+ "summary": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-02",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "guidance": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "断开架桥车取力器",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 6,
+ "directionHint": "向断开方向摇动"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "narrationAssetCode": "PILOT-005-2-AUDIO",
+ "safetyText": "安全提示:请确认压力归零并可靠支承后再进行拆卸。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-2-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 2,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-03",
+ "stepCode": "front-pump-step-03",
+ "order": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "summary": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-03",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-ball-valve-switch",
+ "targetName": "球阀开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "guidance": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "warning": "",
+ "destination": "球阀开关",
+ "success": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-ball-valve-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "steps": [
+ {
+ "targetId": "front-pump-ball-valve-switch",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "由垂直与官道方向旋转至平行于管道方向"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "narrationAssetCode": "PILOT-005-3-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-3-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "focus",
+ "number": 3,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceInteractionId": "front-pump-ball-valve-switch",
+ "editorId": "bridge-0916-node-96",
+ "nodePath": "0/48/0",
+ "sourceNodeName": "1_26球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-ball-valve-switch",
+ "targetNodeName": "1_26球阀开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-04",
+ "stepCode": "front-pump-step-04",
+ "order": 4,
+ "title": "重新联通取力器",
+ "summary": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-04",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "guidance": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "重新联通取力器",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "按步骤2的相反方向摇回去"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "narrationAssetCode": "PILOT-005-4-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-4-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 4,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-05",
+ "stepCode": "front-pump-step-05",
+ "order": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "summary": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-05",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "guidance": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "warning": "",
+ "destination": "辅助控制盒盖",
+ "success": "打开辅助控制盒内的“互救”开关",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "mode": "inspect",
+ "durationMs": 1600,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "sequence",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-aux-control-box"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "沿控制盒盖边缘铰链打开",
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ }
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "往上搬"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "narrationAssetCode": "PILOT-005-5-AUDIO",
+ "safetyText": "安全提示:请确认压力归零并可靠支承后再进行拆卸。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-5-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "focus",
+ "number": 5,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-aux-control-box-cover",
+ "targetNodeName": "1_28辅助控制盒盖",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ }
+ ],
+ "modeConfig": {
+ "type": "VIRTUAL",
+ "renderMode": "三维实时仿真",
+ "interactionMode": "三维操作、动画引导与规则自动判定",
+ "assistance": "演示、训练与模拟考试"
+ },
+ "task": {
+ "code": "BRIDGE-005-AUTHORING-PILOT",
+ "title": "005 液压泵应急切换(编排验证)",
+ "category": "小修",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ],
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "categoryId": "minor-repair",
+ "image": "/models/step-model-front-pump-thumb.png"
+ },
+ "scenario": {
+ "environmentName": "真实野外训练场",
+ "sceneLayout": "2 个场景对象 · 设备与物模型绑定已继承",
+ "equipmentState": "压力不足 · 内泄待定位",
+ "sceneTags": [],
+ "visibleParts": [
+ "front-pump-hydraulic-pump",
+ "front-pump-pto-switch",
+ "front-pump-ball-valve-switch",
+ "front-pump-aux-control-box-cover"
+ ],
+ "operableParts": [
+ "front-pump-hydraulic-pump",
+ "front-pump-pto-switch",
+ "front-pump-ball-valve-switch",
+ "front-pump-aux-control-box-cover"
+ ],
+ "sensorFeeds": [
+ {
+ "id": "STATE",
+ "label": "装备状态",
+ "value": "就绪",
+ "unit": "",
+ "state": "ok"
+ },
+ {
+ "id": "STEP",
+ "label": "流程节点",
+ "value": "1 / 8",
+ "unit": "",
+ "state": "ready"
+ },
+ {
+ "id": "RULE",
+ "label": "规则判定",
+ "value": "等待操作",
+ "unit": "",
+ "state": "ready"
+ }
+ ],
+ "id": "hydraulic-fault-scenario",
+ "publishedSceneId": "457@551",
+ "publishedSceneVersion": "7",
+ "sceneResource": {
+ "sceneId": "457@551",
+ "sourceProjectId": "457",
+ "sourceVersionId": "551",
+ "version": "7",
+ "sourceKind": "published",
+ "status": "已发布",
+ "publishedAt": "2026-09-17T14:33:41.000Z",
+ "objectCount": 2,
+ "assetKey": "",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "name": "005 液压泵应急切换(编排验证)",
+ "environment": {
+ "schema": "edit3dv4.scene-environment",
+ "version": "1.0",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "floorOnly": false,
+ "useModelFloor": true
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene: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": {},
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "",
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "visible": true,
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene: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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ }
+ ],
+ "partOverrides": {
+ "front-pump-hydraulic-pump": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-power-take-off": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-pto-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-ball-valve-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-aux-control-box": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-aux-control-box-cover": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-rescue-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ }
+ },
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "Group",
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "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
+ ]
+ }
+ ],
+ "assetReferences": [
+ {
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "environment",
+ "builtinAssetId": "front-pump-field-terrain"
+ },
+ {
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "equipment",
+ "builtinAssetId": "front-pump-step-vehicle"
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "7",
+ "presetId": "terrain-1",
+ "name": "真实野外训练场",
+ "type": "outdoor",
+ "assetKey": "",
+ "environment": {
+ "schema": "edit3dv4.scene-environment",
+ "version": "1.0",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "floorOnly": false,
+ "useModelFloor": true
+ },
+ "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": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene: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": {},
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "",
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "visible": true,
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene: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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ }
+ ],
+ "partOverrides": {
+ "front-pump-hydraulic-pump": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-power-take-off": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-pto-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-ball-valve-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-aux-control-box": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-aux-control-box-cover": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-rescue-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ }
+ },
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "Group",
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "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
+ ]
+ }
+ ]
+ }
+ },
+ "baseVisualKey": "diagnostic-bay",
+ "environment": {
+ "type": "outdoor",
+ "mode": "external",
+ "sourceName": "005 液压泵应急切换(编排验证) · 场景发布包",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "accent": "#e98a2f",
+ "background": 12178915,
+ "fog": 12178915,
+ "ground": 6450803,
+ "camera": {
+ "position": [
+ 9.6,
+ 6.2,
+ 12.3
+ ],
+ "target": [
+ -0.25,
+ 2.45,
+ 0
+ ]
+ },
+ "retainStoredParts": false
+ },
+ "tools": [
+ {
+ "id": "pressure-gauge",
+ "name": "数字压力表",
+ "purpose": "卸压确认与压力复测",
+ "thumbnailKey": "pressure-gauge",
+ "modelKind": "pressure-gauge",
+ "defaultScale": 1
+ },
+ {
+ "id": "leak-detector",
+ "name": "泄漏检测灯",
+ "purpose": "油管与密封外泄检查",
+ "thumbnailKey": "leak-detector",
+ "modelKind": "leak-detector",
+ "defaultScale": 1
+ },
+ {
+ "id": "leakage-tester",
+ "name": "内泄保压仪",
+ "purpose": "压力衰减诊断",
+ "thumbnailKey": "leakage-tester",
+ "modelKind": "leakage-tester",
+ "defaultScale": 1
+ },
+ {
+ "id": "hose-wrench",
+ "name": "油管扳手",
+ "purpose": "接头拆装",
+ "thumbnailKey": "hose-wrench",
+ "modelKind": "hose-wrench",
+ "defaultScale": 1
+ },
+ {
+ "id": "pin-puller",
+ "name": "液压拔销器",
+ "purpose": "销轴同轴分离",
+ "thumbnailKey": "pin-puller",
+ "modelKind": "pin-puller",
+ "defaultScale": 1
+ },
+ {
+ "id": "lifting-sling",
+ "name": "起吊带与平衡梁",
+ "purpose": "液压缸总成吊运",
+ "thumbnailKey": "lifting-sling",
+ "modelKind": "lifting-sling",
+ "defaultScale": 1
+ },
+ {
+ "id": "seal-kit",
+ "name": "密封拆装工具",
+ "purpose": "密封组件更换",
+ "thumbnailKey": "seal-kit",
+ "modelKind": "seal-kit",
+ "defaultScale": 1
+ },
+ {
+ "id": "torque-wrench",
+ "name": "数字扭矩扳手",
+ "purpose": "规范力矩紧固",
+ "thumbnailKey": "torque-wrench",
+ "modelKind": "torque-wrench",
+ "defaultScale": 1
+ },
+ {
+ "id": "checklist-terminal",
+ "name": "数字点检终端",
+ "purpose": "路线签到与清单确认",
+ "thumbnailKey": "checklist-terminal",
+ "modelKind": "checklist-terminal",
+ "defaultScale": 1
+ },
+ {
+ "id": "feeler-gauge",
+ "name": "间隙规",
+ "purpose": "销轴配合间隙测量",
+ "thumbnailKey": "feeler-gauge",
+ "modelKind": "feeler-gauge",
+ "defaultScale": 1
+ },
+ {
+ "id": "lock-tool",
+ "name": "锁止件拆装钳",
+ "purpose": "解除与恢复锁止件",
+ "thumbnailKey": "lock-tool",
+ "modelKind": "lock-tool",
+ "defaultScale": 1
+ },
+ {
+ "id": "alignment-tool",
+ "name": "同轴装配导向器",
+ "purpose": "反向复装校准",
+ "thumbnailKey": "alignment-tool",
+ "modelKind": "alignment-tool",
+ "defaultScale": 1
+ }
+ ],
+ "faults": [],
+ "authoring": {
+ "schema": "unreal-tran.training-authoring/v1",
+ "version": 1,
+ "nodes": [
+ {
+ "id": "flow-start",
+ "type": "start",
+ "title": "训练开始",
+ "x": 32,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-01",
+ "type": "step",
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "stepId": "front-pump-step-01",
+ "x": 240,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-02",
+ "type": "step",
+ "title": "断开架桥车取力器",
+ "stepId": "front-pump-step-02",
+ "x": 500,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-03",
+ "type": "step",
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "stepId": "front-pump-step-03",
+ "x": 760,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-04",
+ "type": "step",
+ "title": "重新联通取力器",
+ "stepId": "front-pump-step-04",
+ "x": 240,
+ "y": 270,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-05",
+ "type": "step",
+ "title": "打开辅助控制盒内的“互救”开关",
+ "stepId": "front-pump-step-05",
+ "x": 500,
+ "y": 270,
+ "config": {}
+ },
+ {
+ "id": "flow-end",
+ "type": "end",
+ "title": "训练结束",
+ "x": 760,
+ "y": 270,
+ "config": {}
+ }
+ ],
+ "edges": [
+ {
+ "id": "edge:flow-start:step-node:front-pump-step-01",
+ "from": "flow-start",
+ "to": "step-node:front-pump-step-01",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-01:step-node:front-pump-step-02",
+ "from": "step-node:front-pump-step-01",
+ "to": "step-node:front-pump-step-02",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-02:step-node:front-pump-step-03",
+ "from": "step-node:front-pump-step-02",
+ "to": "step-node:front-pump-step-03",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-03:step-node:front-pump-step-04",
+ "from": "step-node:front-pump-step-03",
+ "to": "step-node:front-pump-step-04",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-04:step-node:front-pump-step-05",
+ "from": "step-node:front-pump-step-04",
+ "to": "step-node:front-pump-step-05",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-05:flow-end",
+ "from": "step-node:front-pump-step-05",
+ "to": "flow-end",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ }
+ ],
+ "timeline": {
+ "currentTime": 0,
+ "tracks": {
+ "front-pump-step-01": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-1-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-02": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-2-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-03": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-3-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-04": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-4-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-05": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-5-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ }
+ }
+ }
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN"
+ },
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急切换",
+ "status": "published",
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/4.jpg",
+ "resources": {
+ "models": [],
+ "animations": []
+ },
+ "legacyBridge": {
+ "schema": "unreal-tran.training-legacy-bridge/v1",
+ "uris": [],
+ "tracks": {
+ "front-pump-step-01": {
+ "audio": ""
+ },
+ "front-pump-step-02": {
+ "audio": ""
+ },
+ "front-pump-step-03": {
+ "audio": ""
+ },
+ "front-pump-step-04": {
+ "audio": ""
+ },
+ "front-pump-step-05": {
+ "audio": ""
+ }
+ }
+ },
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急切换",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-005-L1",
+ "title": "液压泵作用与应急切换引入",
+ "body": "重型支援桥作为应急保障力量的重要组成部分,在抢险救灾中起到了关键作用。在架设与撤收中,液压系统作为装备的动力系统,特别是液压系统的心脏——液压泵,这一关键部件的可靠性直接关系到能否完成桥梁架设撤收作业,面对复杂的战场环境,一旦液压系统出现故障,就会导致桥梁架设撤收作业被迫中断,甚至引发危险状态。\n\n那在战时,如果液压泵损坏,该怎样快速完成架桥任务呢?\n\n通过对液压系统分析可知,重型支援桥液压系统采取了“双泵独立供油”的设计理念,因此,如果其中一个液压泵出现损伤,可以采取应急切换的方法,快速完成装备抢修。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L2",
+ "title": "应急切换是什么",
+ "body": "那什么是应急切换呢?\n\n在装备战场抢救抢修中,切换是一种应急修理方式,其是指通过回路转换或改接,脱开损伤部分,接通备用部分,或者将原来担负非基本功能的完好部分改换到基本功能回路中。\n\n针对重型支援桥,应急切换是指在单个液压泵或取力器出现故障时,通过切换到另一个液压泵继续完成架设或撤收作业的方法。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L3",
+ "title": "双泵供油回路",
+ "body": "重型支援桥是如何实现应急切换的?\n\n我们从原理上来寻找答案,根据液压系统原理,重型支援桥设置有2个供油回路,一个是前泵供油回路,由前泵提供动力,主要负责为托架液压系统和架设架液压系统提供动力,主要由液压油箱、前泵、前泵出油滤油器、托架多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路;另一个是后泵供油回路,由后泵提供动力,主要负责为支腿液压系统和吊机液压系统提供动力,主要由液压油箱、后泵、后泵出油滤油器、支腿多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L4",
+ "title": "打开球阀后的回油问题",
+ "body": "此时,我们应该注意到在两个出油滤油器的出口处设置一球阀,在正常情况下,该球阀处于关闭状态。\n\n那如果将该球阀打开,会出现什么样的情况呢?\n\n此处以托架马达向前为例说明,当操作手操作托架马达向前时,来自负载侧的压力会将托架多路换向阀连接块内的三通流量调节阀关闭,此时来自前泵的液压油无法通过托架多路换向阀连接块内的三通流量调节阀返回液压油箱,应通过托架多路换向阀内部通道进入托架马达换向联,而后进入液压马达,推动液压马达旋转。\n\n但此时液压马达侧负载压力较大,液压油便不会进入液压马达,而是经打开的球阀,进入支腿多路换向阀连接块内,通过支腿多路换向阀内的三通流量调节阀返回液压油箱。\n\n操作托架液压系统和架设架液压系统的任一执行机构时,均会出现上述现象。同理可分析,操作支腿液压系统和吊机液压系统的任一执行机构时,也会出现上述现象。\n\n那在前泵损坏的情况下,可否利用液压系统这一设计理念,完成重型支援桥的架设和撤收作业呢?\n\n通过上述分析,操作重型支援桥任一执行机构时,负载侧压力总会关闭相应的多路换向阀连接块内的三通流量调节阀,使得来自液压泵的液压油从另一多路换向阀连接块内的三通流量调节阀返回液压油箱,因此,如果提前关闭两个多路换向阀连接块内的三通流量调节阀,则无论来自哪个液压泵的液压油均不会返回液压油箱,那通过哪个元件关闭三通流量调节阀呢?",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L5",
+ "title": "自救阀与切换原理",
+ "body": "此时我们应注意到,托架多路换向阀和支腿多路换向阀的M口各串联一自救阀,如果将该自救阀打开,则在接通取力器时,来自液压泵的液压油便将三通流量调节阀关闭。\n\n因此,在实施切换时,还需打开自救阀。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ }
+ ]
+ },
+ "teachingScene": {
+ "version": "1.5",
+ "schema": "edit3dv4.scene",
+ "sourceVersionId": "551",
+ "name": "真实野外训练场",
+ "sceneType": "OUTDOOR",
+ "sourceProjectId": "457",
+ "objects": [
+ {
+ "semantic": "环境地形",
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ],
+ "contentUri": "/models/terrain-005-20260917.glb",
+ "mimeType": "model/gltf-binary",
+ "visible": true,
+ "sourceVersionId": "551",
+ "assetCode": "PILOT-TERRAIN-005",
+ "sourceName": "terrain-005-20260917.glb",
+ "sourceNodeName": "",
+ "name": "野外山地训练场",
+ "id": "scene-object-1",
+ "type": "imported",
+ "splitGroupId": ""
+ },
+ {
+ "semantic": "实训装备",
+ "rotation": [
+ 3.0865583248298285e-17,
+ -3.96331642134641e-33,
+ -2.568113739801058e-16
+ ],
+ "position": [
+ 1.5698558846140135e-16,
+ 0.00012730681329620186,
+ 0.13180482636746585
+ ],
+ "scale": [
+ 0.9715696607300419,
+ 0.9715696607300419,
+ 0.9715696607300419
+ ],
+ "contentUri": "/models/bridge-erector-20260916.glb",
+ "mimeType": "model/gltf-binary",
+ "visible": true,
+ "sourceVersionId": "551",
+ "assetCode": "PILOT-VEHICLE-0916",
+ "sourceName": "0916架桥车.glb",
+ "sourceNodeName": "Group",
+ "name": "架桥车前泵互救操作整车模型",
+ "id": "scene-object-2",
+ "type": "imported",
+ "splitGroupId": ""
+ }
+ ],
+ "templateRevision": 1,
+ "rendering": {
+ "background": 11062241
+ }
+ }
+ },
+ "definitionChecksum": "b2a75f19bb8118e135a2b8ac90e12fb3ca78170649eddba87df10bbf7f37d114",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "DRAFT",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": null,
+ "withdrawnAt": null,
+ "archivedAt": null,
+ "lifecycleReason": "",
+ "version": 8,
+ "addTime": 1789566632,
+ "updateTime": "2026-09-16T21:50:33",
+ "serverNow": 1790005751,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/unchanged-86.json b/reports/bridge-006-six-steps-20260921/unchanged-86.json
new file mode 100644
index 0000000..b2da3d5
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/unchanged-86.json
@@ -0,0 +1,1293 @@
+{
+ "id": "86",
+ "code": "TASK-VIRTUAL-005",
+ "name": "重型支援桥液压泵应急切换",
+ "description": "原稿:桥梁/文件2/4.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "438",
+ "contentVersionId": "556",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急切换",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "架桥车前泵故障互救处置训练(虚拟仿真)",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "架桥车互救操作训练场",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "前泵故障 · 待执行互救处置",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "内置架桥车互救操作训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "架桥车前泵故障互救处置训练场景",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "2取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "5辅助控制盒",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "5互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ }
+ ],
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "fitToScene": true,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "架桥车前泵故障互救处置训练场景",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "2取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "5辅助控制盒",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "5互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ }
+ ],
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "fitToScene": true,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "真实整车步骤模型",
+ "前泵故障互救",
+ "机构顺序操作"
+ ],
+ "sensorFeeds": []
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "front-pump-step-01",
+ "code": "FRONT-PUMP-STEP-01",
+ "stepCode": "front-pump-step-01",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-01",
+ "number": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "targetId": "front-pump-hydraulic-pump",
+ "targetName": "液压泵",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "guidance": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "warning": "",
+ "destination": "液压泵",
+ "success": "根据故障现象确定是哪一个液压泵发生故障",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-hydraulic-pump",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "identify",
+ "axisSpace": "world",
+ "highlightColor": "#e53935",
+ "steps": [
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "toleranceDegrees": 6,
+ "directionHint": "点击并确认发生故障的液压泵"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-hydraulic-pump",
+ "targetNodeName": "1液压泵",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,确定故障液压泵。根据故障现象确定发生故障的液压泵。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_FF17FDE117E94B80BB30DF3E058821FD",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "53",
+ "videoName": "重型支援桥液压泵应急切换 · 1 根据故障现象确定是哪一个液压泵发生故障",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-02",
+ "code": "FRONT-PUMP-STEP-02",
+ "stepCode": "front-pump-step-02",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-02",
+ "number": 2,
+ "title": "断开架桥车取力器",
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "guidance": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "断开架桥车取力器",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 6,
+ "directionHint": "向断开方向摇动"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "2取力器开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_6E75DADE9D0649DCA16A2499D1EE8776",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "54",
+ "videoName": "重型支援桥液压泵应急切换 · 2 断开架桥车取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-03",
+ "code": "FRONT-PUMP-STEP-03",
+ "stepCode": "front-pump-step-03",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-03",
+ "number": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "targetId": "front-pump-ball-valve-switch",
+ "targetName": "球阀开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "guidance": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "warning": "",
+ "destination": "球阀开关",
+ "success": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-ball-valve-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "steps": [
+ {
+ "targetId": "front-pump-ball-valve-switch",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "由垂直与官道方向旋转至平行于管道方向"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-ball-valve-switch",
+ "targetNodeName": "3球阀开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_9A4629F90E614E60835441B5D0AAE86C",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "55",
+ "videoName": "重型支援桥液压泵应急切换 · 3 将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-04",
+ "code": "FRONT-PUMP-STEP-04",
+ "stepCode": "front-pump-step-04",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-04",
+ "number": 4,
+ "title": "重新联通取力器",
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "guidance": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "重新联通取力器",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "按步骤2的相反方向摇回去"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "2取力器开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_DA42FE5C995F4C67A559E6E94DB1C440",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "56",
+ "videoName": "重型支援桥液压泵应急切换 · 4 重新联通取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-05",
+ "code": "FRONT-PUMP-STEP-05",
+ "stepCode": "front-pump-step-05",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-05",
+ "number": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "辅助控制盒盖",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "guidance": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "warning": "",
+ "destination": "辅助控制盒盖",
+ "success": "打开辅助控制盒内的“互救”开关",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "mode": "inspect",
+ "durationMs": 1600,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "sequence",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-aux-control-box"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "沿控制盒盖边缘铰链打开",
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ }
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "往上搬"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-aux-control-box-cover",
+ "targetNodeName": "5辅助控制盒盖",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D85C34259BB34E0C966C5A79569DBF10",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "57",
+ "videoName": "重型支援桥液压泵应急切换 · 5 打开辅助控制盒内的“互救”开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-switch",
+ "scriptVersion": "2"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/4.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急切换",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-005-L1",
+ "title": "液压泵作用与应急切换引入",
+ "body": "重型支援桥作为应急保障力量的重要组成部分,在抢险救灾中起到了关键作用。在架设与撤收中,液压系统作为装备的动力系统,特别是液压系统的心脏——液压泵,这一关键部件的可靠性直接关系到能否完成桥梁架设撤收作业,面对复杂的战场环境,一旦液压系统出现故障,就会导致桥梁架设撤收作业被迫中断,甚至引发危险状态。\n\n那在战时,如果液压泵损坏,该怎样快速完成架桥任务呢?\n\n通过对液压系统分析可知,重型支援桥液压系统采取了“双泵独立供油”的设计理念,因此,如果其中一个液压泵出现损伤,可以采取应急切换的方法,快速完成装备抢修。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L2",
+ "title": "应急切换是什么",
+ "body": "那什么是应急切换呢?\n\n在装备战场抢救抢修中,切换是一种应急修理方式,其是指通过回路转换或改接,脱开损伤部分,接通备用部分,或者将原来担负非基本功能的完好部分改换到基本功能回路中。\n\n针对重型支援桥,应急切换是指在单个液压泵或取力器出现故障时,通过切换到另一个液压泵继续完成架设或撤收作业的方法。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L3",
+ "title": "双泵供油回路",
+ "body": "重型支援桥是如何实现应急切换的?\n\n我们从原理上来寻找答案,根据液压系统原理,重型支援桥设置有2个供油回路,一个是前泵供油回路,由前泵提供动力,主要负责为托架液压系统和架设架液压系统提供动力,主要由液压油箱、前泵、前泵出油滤油器、托架多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路;另一个是后泵供油回路,由后泵提供动力,主要负责为支腿液压系统和吊机液压系统提供动力,主要由液压油箱、后泵、后泵出油滤油器、支腿多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L4",
+ "title": "打开球阀后的回油问题",
+ "body": "此时,我们应该注意到在两个出油滤油器的出口处设置一球阀,在正常情况下,该球阀处于关闭状态。\n\n那如果将该球阀打开,会出现什么样的情况呢?\n\n此处以托架马达向前为例说明,当操作手操作托架马达向前时,来自负载侧的压力会将托架多路换向阀连接块内的三通流量调节阀关闭,此时来自前泵的液压油无法通过托架多路换向阀连接块内的三通流量调节阀返回液压油箱,应通过托架多路换向阀内部通道进入托架马达换向联,而后进入液压马达,推动液压马达旋转。\n\n但此时液压马达侧负载压力较大,液压油便不会进入液压马达,而是经打开的球阀,进入支腿多路换向阀连接块内,通过支腿多路换向阀内的三通流量调节阀返回液压油箱。\n\n操作托架液压系统和架设架液压系统的任一执行机构时,均会出现上述现象。同理可分析,操作支腿液压系统和吊机液压系统的任一执行机构时,也会出现上述现象。\n\n那在前泵损坏的情况下,可否利用液压系统这一设计理念,完成重型支援桥的架设和撤收作业呢?\n\n通过上述分析,操作重型支援桥任一执行机构时,负载侧压力总会关闭相应的多路换向阀连接块内的三通流量调节阀,使得来自液压泵的液压油从另一多路换向阀连接块内的三通流量调节阀返回液压油箱,因此,如果提前关闭两个多路换向阀连接块内的三通流量调节阀,则无论来自哪个液压泵的液压油均不会返回液压油箱,那通过哪个元件关闭三通流量调节阀呢?",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L5",
+ "title": "自救阀与切换原理",
+ "body": "此时我们应注意到,托架多路换向阀和支腿多路换向阀的M口各串联一自救阀,如果将该自救阀打开,则在接通取力器时,来自液压泵的液压油便将三通流量调节阀关闭。\n\n因此,在实施切换时,还需打开自救阀。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "22ed2fef2fabe2653ffd176d3cfe2b15bf073bd3e3507a08f196bf05ccabc1bc",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789311584,
+ "withdrawnAt": 1789311583,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 6,
+ "addTime": 1789309630,
+ "updateTime": "2026-09-13T22:27:11",
+ "serverNow": 1790005751,
+ "members": [
+ {
+ "id": "169",
+ "userId": "99",
+ "username": "root",
+ "displayName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ },
+ {
+ "id": "184",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ },
+ {
+ "id": "186",
+ "userId": "59",
+ "username": "uat.student01",
+ "displayName": "王强",
+ "departmentId": "5",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 3,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/unchanged-88.json b/reports/bridge-006-six-steps-20260921/unchanged-88.json
new file mode 100644
index 0000000..02c20f9
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/unchanged-88.json
@@ -0,0 +1,2045 @@
+{
+ "id": "88",
+ "code": "TASK-VIRTUAL-007",
+ "name": "重型支援桥前泵换件修复",
+ "description": "原稿:桥梁/文件2/7.jpg、8.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "440",
+ "contentVersionId": "558",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥前泵换件修复",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥前泵换件修复",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥前泵换件修复",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥前泵换件修复",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "pump-bags",
+ "sceneId": "pump-bags",
+ "interactionId": "scene:pump-bags",
+ "type": "imported",
+ "name": "3封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "pump-bags",
+ "modelEditorAssetId": "pump-bags",
+ "modelEditorModelId": "pump-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "3封口袋.glb",
+ "resourceUrl": "/models/bridge-pump-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "gasket-paper",
+ "sceneId": "gasket-paper",
+ "interactionId": "scene:gasket-paper",
+ "type": "imported",
+ "name": "牛皮纸.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "gasket-paper",
+ "modelEditorAssetId": "gasket-paper",
+ "modelEditorModelId": "gasket-paper",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "牛皮纸.glb",
+ "resourceUrl": "/models/bridge-paper-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥前泵换件修复",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "pump-bags",
+ "sceneId": "pump-bags",
+ "interactionId": "scene:pump-bags",
+ "type": "imported",
+ "name": "3封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "pump-bags",
+ "modelEditorAssetId": "pump-bags",
+ "modelEditorModelId": "pump-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "3封口袋.glb",
+ "resourceUrl": "/models/bridge-pump-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "gasket-paper",
+ "sceneId": "gasket-paper",
+ "interactionId": "scene:gasket-paper",
+ "type": "imported",
+ "name": "牛皮纸.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "gasket-paper",
+ "modelEditorAssetId": "gasket-paper",
+ "modelEditorModelId": "gasket-paper",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "牛皮纸.glb",
+ "resourceUrl": "/models/bridge-paper-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥前泵换件修复",
+ "title": "重型支援桥前泵换件修复",
+ "operableParts": [
+ "bridge-engine",
+ "bridge-paper",
+ "bridge-tank-valve",
+ "bridge-inlet",
+ "bridge-inlet-bag",
+ "bridge-outlet",
+ "bridge-outlet-bag",
+ "bridge-pump-bolt-1",
+ "bridge-pump-bolt-2",
+ "bridge-pump-bolt-3",
+ "bridge-pump-bolt-4",
+ "bridge-old-pump",
+ "bridge-gasket",
+ "bridge-new-pump",
+ "bridge-fill-cap",
+ "bridge-oil-can",
+ "bridge-test-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "停机并初裁牛皮纸",
+ "targetId": "bridge-engine",
+ "targetName": "关闭架桥车发动机",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "guidance": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "warning": "",
+ "success": "停机并初裁牛皮纸:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "关闭架桥车发动机",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 13195851
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "directionHint": "按结合面初裁牛皮纸",
+ "effects": [
+ {
+ "targetId": "bridge-paper",
+ "scale": [
+ 0.85,
+ 1,
+ 0.85
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_1CE71ECA76194F06B098A012B360BB06",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "65",
+ "videoName": "重型支援桥前泵换件修复 · 1 停机并初裁牛皮纸",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "关闭液压油箱出油口一号球阀",
+ "targetId": "bridge-tank-valve",
+ "targetName": "关闭一号出油球阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将一号球阀手柄从平行管道转到垂直管道。",
+ "guidance": "将一号球阀手柄从平行管道转到垂直管道。",
+ "warning": "",
+ "success": "关闭液压油箱出油口一号球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-tank-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-tank-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "关闭一号出油球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_34129B61FA1F4E628AF295E3EF714364",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "66",
+ "videoName": "重型支援桥前泵换件修复 · 2 关闭液压油箱出油口一号球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "拆开并包扎进出油管",
+ "targetId": "bridge-inlet",
+ "targetName": "拆开进油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "guidance": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开并包扎进出油管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-inlet",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "directionHint": "拆开进油管",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ -0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "directionHint": "包扎进油管口",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "directionHint": "拆开出油管",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "directionHint": "包扎出油管口",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_533EAE94D45D49A2BECD7E24E48835E6",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "67",
+ "videoName": "重型支援桥前泵换件修复 · 3 拆开并包扎进出油管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "拆下四个安装螺栓",
+ "targetId": "bridge-pump-bolt-1",
+ "targetName": "拆下第 1 个安装螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "guidance": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "warning": "",
+ "success": "拆下四个安装螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-pump-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_787B4C212CF644AE9A3D8D49DEDCB65E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "68",
+ "videoName": "重型支援桥前泵换件修复 · 4 拆下四个安装螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "取下旧前泵",
+ "targetId": "bridge-old-pump",
+ "targetName": "取下旧前泵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "取下原前泵。",
+ "guidance": "取下原前泵。",
+ "warning": "",
+ "success": "取下旧前泵:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-old-pump",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-old-pump",
+ "kind": "identify",
+ "directionHint": "取下旧前泵",
+ "effects": [
+ {
+ "targetId": "bridge-old-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": false
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,取下旧前泵。取下原前泵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5672FD367E8F41A5A026E3C68E8C8726",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "69",
+ "videoName": "重型支援桥前泵换件修复 · 5 取下旧前泵",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "修裁牛皮纸",
+ "targetId": "bridge-paper",
+ "targetName": "按安装面修裁纸垫",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "guidance": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "warning": "",
+ "success": "修裁牛皮纸:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-paper",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "directionHint": "按安装面修裁纸垫",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "visible": true
+ },
+ {
+ "targetId": "bridge-paper",
+ "visible": false
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_C0E73EC20FD44C608A795A03DE4F7401",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "70",
+ "videoName": "重型支援桥前泵换件修复 · 6 修裁牛皮纸",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "放置牛皮纸垫",
+ "targetId": "bridge-gasket",
+ "targetName": "将纸垫放到取力器结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将裁好的牛皮纸放在取力器接口处。",
+ "guidance": "将裁好的牛皮纸放在取力器接口处。",
+ "warning": "",
+ "success": "放置牛皮纸垫:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-gasket",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-gasket",
+ "kind": "identify",
+ "directionHint": "将纸垫放到取力器结合面",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "offset": [
+ 2.3,
+ 0,
+ -0.4
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_17FAC41643804A22A8B71A2FF8DCBC28",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "71",
+ "videoName": "重型支援桥前泵换件修复 · 7 放置牛皮纸垫",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-8",
+ "stepCode": "BRIDGE-STEP-8",
+ "actionCode": "COMPLETE_BRIDGE-STEP-8",
+ "number": 8,
+ "title": "安装新液压泵",
+ "targetId": "bridge-new-pump",
+ "targetName": "安装新泵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "guidance": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "warning": "",
+ "success": "安装新液压泵:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-new-pump",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-new-pump",
+ "kind": "identify",
+ "directionHint": "安装新泵",
+ "effects": [
+ {
+ "targetId": "bridge-new-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 1 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 2 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 3 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 4 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第8步,安装新液压泵。安装新的液压泵。原稿没有给出拧紧力矩。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_2284ABD91F544E2EB7799E9FA1C4BCF6",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "72",
+ "videoName": "重型支援桥前泵换件修复 · 8 安装新液压泵",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-9",
+ "stepCode": "BRIDGE-STEP-9",
+ "actionCode": "COMPLETE_BRIDGE-STEP-9",
+ "number": 9,
+ "title": "向新泵加注液压油",
+ "targetId": "bridge-fill-cap",
+ "targetName": "打开加油口",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "guidance": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "warning": "",
+ "success": "向新泵加注液压油:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-fill-cap",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-fill-cap",
+ "kind": "identify",
+ "directionHint": "打开加油口",
+ "effects": [
+ {
+ "targetId": "bridge-fill-cap",
+ "offset": [
+ 0,
+ 0.45,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-oil-can",
+ "kind": "identify",
+ "directionHint": "向新泵加注液压油",
+ "effects": [
+ {
+ "targetId": "bridge-oil-can",
+ "offset": [
+ -1.3,
+ 0.6,
+ -0.3
+ ]
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_BF468C49DDCB462E8E2C75CF8C6BD172",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "73",
+ "videoName": "重型支援桥前泵换件修复 · 9 向新泵加注液压油",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-10",
+ "stepCode": "BRIDGE-STEP-10",
+ "actionCode": "COMPLETE_BRIDGE-STEP-10",
+ "number": 10,
+ "title": "恢复进出油管连接",
+ "targetId": "bridge-inlet-bag",
+ "targetName": "取下进油管封口袋",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "guidance": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "warning": "",
+ "success": "恢复进出油管连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-inlet-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "directionHint": "取下进油管封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "directionHint": "连接并拧紧进油管",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "directionHint": "取下出油管封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "directionHint": "连接并拧紧出油管",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_88908FEBE6054EE99087F8653A8C5FAA",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "74",
+ "videoName": "重型支援桥前泵换件修复 · 10 恢复进出油管连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-11",
+ "stepCode": "BRIDGE-STEP-11",
+ "actionCode": "COMPLETE_BRIDGE-STEP-11",
+ "number": 11,
+ "title": "启动设备试验",
+ "targetId": "bridge-engine",
+ "targetName": "启动设备试验",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "guidance": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "warning": "",
+ "success": "启动设备试验:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "启动设备试验",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": false
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-test-control",
+ "kind": "identify",
+ "directionHint": "操作试验手柄并观察",
+ "effects": [
+ {
+ "targetId": "bridge-test-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第11步,启动设备试验。启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_4D873387CF324AAF9C6D3BE1A72C247E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "75",
+ "videoName": "重型支援桥前泵换件修复 · 11 启动设备试验",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-replace",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/7.jpg、8.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 前泵换件修复",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-replace-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-007 图片原文",
+ "enabled": true
+ },
+ "lectures": []
+ }
+ },
+ "definitionChecksum": "45163b8e73fb2d0733055b71eaa37e0c08f43536bc0cdc766e8ea660b56d33e2",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789395442,
+ "withdrawnAt": 1789395442,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 10,
+ "addTime": 1789309632,
+ "updateTime": "2026-09-13T22:27:13",
+ "serverNow": 1790005751,
+ "members": [
+ {
+ "id": "183",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 1,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-006-six-steps-20260921/unchanged-89.json b/reports/bridge-006-six-steps-20260921/unchanged-89.json
new file mode 100644
index 0000000..af4b894
--- /dev/null
+++ b/reports/bridge-006-six-steps-20260921/unchanged-89.json
@@ -0,0 +1,2689 @@
+{
+ "id": "89",
+ "code": "TASK-VIRTUAL-008",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "description": "原稿:桥梁/文件2/9.jpg、10.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "441",
+ "contentVersionId": "559",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥平衡阀拆拼互换",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "valve-bags",
+ "sceneId": "valve-bags",
+ "interactionId": "scene:valve-bags",
+ "type": "imported",
+ "name": "4封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "valve-bags",
+ "modelEditorAssetId": "valve-bags",
+ "modelEditorModelId": "valve-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "4封口袋.glb",
+ "resourceUrl": "/models/bridge-valve-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "valve-bags",
+ "sceneId": "valve-bags",
+ "interactionId": "scene:valve-bags",
+ "type": "imported",
+ "name": "4封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "valve-bags",
+ "modelEditorAssetId": "valve-bags",
+ "modelEditorModelId": "valve-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "4封口袋.glb",
+ "resourceUrl": "/models/bridge-valve-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥平衡阀拆拼互换",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "operableParts": [
+ "bridge-small-cloth",
+ "bridge-small-pipe",
+ "bridge-small-bag",
+ "bridge-small-bolt-1",
+ "bridge-small-bolt-2",
+ "bridge-small-bolt-3",
+ "bridge-small-bolt-4",
+ "bridge-small-valve",
+ "bridge-small-plug-1",
+ "bridge-small-plug-2",
+ "bridge-small-seat",
+ "bridge-large-cloth",
+ "bridge-large-pipe",
+ "bridge-large-bag",
+ "bridge-large-bolt-1",
+ "bridge-large-bolt-2",
+ "bridge-large-bolt-3",
+ "bridge-large-bolt-4",
+ "bridge-large-valve",
+ "bridge-large-plug-1",
+ "bridge-large-plug-2",
+ "bridge-large-seat"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "清洗小腔平衡阀",
+ "targetId": "bridge-small-cloth",
+ "targetName": "清洗并擦净阀体",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "guidance": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "warning": "",
+ "success": "清洗小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-cloth",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-small-cloth",
+ "kind": "identify",
+ "directionHint": "清洗并擦净阀体",
+ "effects": [
+ {
+ "targetId": "bridge-small-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_76F80444AA9C4C3183A0EEDF6E655C25",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "76",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 1 清洗小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "拆开小腔控制油口管路",
+ "targetId": "bridge-small-pipe",
+ "targetName": "拆开控制油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "guidance": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开小腔控制油口管路:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-pipe",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "directionHint": "拆开控制油管",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "directionHint": "封袋包扎管口",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_EAF5F0A89D454E6FBAFB061C93D2F760",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "77",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 2 拆开小腔控制油口管路",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "拆下小腔平衡阀",
+ "targetId": "bridge-small-bolt-1",
+ "targetName": "拆下第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "guidance": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "warning": "",
+ "success": "拆下小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "directionHint": "取下平衡阀",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_981034D69E3047C6B9D1DAE9BBF4F7D4",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "78",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 3 拆下小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "封堵小腔油口",
+ "targetId": "bridge-small-plug-1",
+ "targetName": "封堵第 1 个油堵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "guidance": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "warning": "",
+ "success": "封堵小腔油口:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-plug-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "directionHint": "封堵第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "directionHint": "封堵第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "directionHint": "擦净阀座结合面",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_60D40306A9E74E96ADD7641932934BE4",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "79",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 4 封堵小腔油口",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "清洗大腔平衡阀",
+ "targetId": "bridge-large-cloth",
+ "targetName": "清洗并擦净阀体",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "guidance": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "warning": "",
+ "success": "清洗大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-cloth",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-large-cloth",
+ "kind": "identify",
+ "directionHint": "清洗并擦净阀体",
+ "effects": [
+ {
+ "targetId": "bridge-large-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_A6EFEC7D339E4BA8994C525CA3709E2E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "80",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 5 清洗大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "拆开大腔控制油口管路",
+ "targetId": "bridge-large-pipe",
+ "targetName": "拆开控制油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "guidance": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开大腔控制油口管路:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-pipe",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "directionHint": "拆开控制油管",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "directionHint": "封袋包扎管口",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D9E1BAFBD89D48019B9445B2A5752E68",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "81",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 6 拆开大腔控制油口管路",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "拆下大腔平衡阀",
+ "targetId": "bridge-large-bolt-1",
+ "targetName": "拆下第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "guidance": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "warning": "",
+ "success": "拆下大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "directionHint": "取下平衡阀",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_E83DDAB19F774A418C82EBA7E8EDCF8A",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "82",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 7 拆下大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-8",
+ "stepCode": "BRIDGE-STEP-8",
+ "actionCode": "COMPLETE_BRIDGE-STEP-8",
+ "number": 8,
+ "title": "封堵大腔油口",
+ "targetId": "bridge-large-plug-1",
+ "targetName": "封堵第 1 个油堵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "guidance": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "warning": "",
+ "success": "封堵大腔油口:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-plug-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "directionHint": "封堵第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "directionHint": "封堵第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "directionHint": "擦净阀座结合面",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第8步,封堵大腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_4FE31068F3EB410BAC72E19F1D1BAF49",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "83",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 8 封堵大腔油口",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-9",
+ "stepCode": "BRIDGE-STEP-9",
+ "actionCode": "COMPLETE_BRIDGE-STEP-9",
+ "number": 9,
+ "title": "准备安装大腔平衡阀",
+ "targetId": "bridge-large-seat",
+ "targetName": "擦净安装结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "guidance": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "warning": "",
+ "success": "准备安装大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-seat",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "directionHint": "擦净安装结合面",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "directionHint": "取下第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "directionHint": "取下第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第9步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D0A3CAC5278C4A57AC9BEF13DA2690BC",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "84",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 9 准备安装大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-10",
+ "stepCode": "BRIDGE-STEP-10",
+ "actionCode": "COMPLETE_BRIDGE-STEP-10",
+ "number": 10,
+ "title": "安装大腔平衡阀",
+ "targetId": "bridge-small-valve",
+ "targetName": "将互换平衡阀装到阀座",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "guidance": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "warning": "",
+ "success": "安装大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "directionHint": "将互换平衡阀装到阀座",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_0F40DAF3E28F4FA088EA943D9470CAA7",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "85",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 10 安装大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-11",
+ "stepCode": "BRIDGE-STEP-11",
+ "actionCode": "COMPLETE_BRIDGE-STEP-11",
+ "number": 11,
+ "title": "核对大腔控制油口管路连接",
+ "targetId": "bridge-large-bag",
+ "targetName": "取下封口袋",
+ "mode": "measure",
+ "interaction": "mechanism-operation",
+ "instruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "guidance": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "warning": "请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "success": "核对大腔控制油口管路连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "directionHint": "取下封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "directionHint": "按记录的处理依据连接管路",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第11步,核对大腔控制油口管路连接。原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用十九号开口扳手拆开管路并包扎”的相反描述。请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_F6427532AF5F40348CEB154F031F2AED",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "86",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 11 核对大腔控制油口管路连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-12",
+ "stepCode": "BRIDGE-STEP-12",
+ "actionCode": "COMPLETE_BRIDGE-STEP-12",
+ "number": 12,
+ "title": "紧固大腔阀体连接螺栓",
+ "targetId": "bridge-large-bolt-1",
+ "targetName": "紧固第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "guidance": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "warning": "",
+ "success": "紧固大腔阀体连接螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_F601DB08C8D44934AD3A1B1582E804DB",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "87",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 12 紧固大腔阀体连接螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-13",
+ "stepCode": "BRIDGE-STEP-13",
+ "actionCode": "COMPLETE_BRIDGE-STEP-13",
+ "number": 13,
+ "title": "准备安装小腔平衡阀",
+ "targetId": "bridge-small-seat",
+ "targetName": "擦净安装结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "guidance": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "warning": "",
+ "success": "准备安装小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-seat",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "directionHint": "擦净安装结合面",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "directionHint": "取下第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "directionHint": "取下第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B1BBA42CE5F346228B6B39A51F190CB3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "88",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 13 准备安装小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-14",
+ "stepCode": "BRIDGE-STEP-14",
+ "actionCode": "COMPLETE_BRIDGE-STEP-14",
+ "number": 14,
+ "title": "安装小腔平衡阀",
+ "targetId": "bridge-large-valve",
+ "targetName": "将互换平衡阀装到阀座",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "guidance": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "warning": "",
+ "success": "安装小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "directionHint": "将互换平衡阀装到阀座",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ -3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_2BCD762C693242FF8DA420BD9A5D4DF9",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "89",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 14 安装小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-15",
+ "stepCode": "BRIDGE-STEP-15",
+ "actionCode": "COMPLETE_BRIDGE-STEP-15",
+ "number": 15,
+ "title": "核对小腔控制油口管路连接",
+ "targetId": "bridge-small-bag",
+ "targetName": "取下封口袋",
+ "mode": "measure",
+ "interaction": "mechanism-operation",
+ "instruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "guidance": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "warning": "请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "success": "核对小腔控制油口管路连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "directionHint": "取下封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "directionHint": "按记录的处理依据连接管路",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第15步,核对小腔控制油口管路连接。原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用十九号开口扳手拆开管路并包扎”的相反描述。请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5F8309BF74344C568C2C9EEFDD9E74BF",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "90",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 15 核对小腔控制油口管路连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-16",
+ "stepCode": "BRIDGE-STEP-16",
+ "actionCode": "COMPLETE_BRIDGE-STEP-16",
+ "number": 16,
+ "title": "紧固小腔阀体连接螺栓",
+ "targetId": "bridge-small-bolt-1",
+ "targetName": "紧固第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "guidance": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "warning": "",
+ "success": "紧固小腔阀体连接螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D525E35EDA12402DA13302C2B3874CC3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "91",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 16 紧固小腔阀体连接螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-balance-valve-swap",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/9.jpg、10.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 平衡阀拆拼互换",
+ "body": "本项目训练重型支援桥平衡阀的拆拼互换。\n\n按脚本依次完成四组操作:\n1. 拆卸小腔油口连接平衡阀。\n2. 拆卸大腔油口连接平衡阀。\n3. 将拆下的平衡阀互换安装到大腔油口。\n4. 将另一平衡阀安装到小腔油口。\n\n操作阶段包含清洗、拆卸、油口封堵和安装等步骤。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-balance-valve-swap-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "由9.jpg、10.jpg四组操作归纳的项目概览;原稿未提供故障背景",
+ "enabled": true
+ },
+ "lectures": []
+ }
+ },
+ "definitionChecksum": "ccafb14275197c1105c86f5177636ca55aaf981297ce24441f2af71b8c230dd1",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789316083,
+ "withdrawnAt": 1789316082,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 10,
+ "addTime": 1789309633,
+ "updateTime": "2026-09-13T22:27:14",
+ "serverNow": 1790005751,
+ "members": [
+ {
+ "id": "185",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 1,
+ "pendingReviewCount": 0
+}
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/assessment.json b/reports/bridge-model-acceptance-20260921/assessment.json
new file mode 100644
index 0000000..7f34c20
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/assessment.json
@@ -0,0 +1,1822 @@
+{
+ "date": "2026-09-21",
+ "counts": {
+ "基本对应": 9,
+ "简化实现": 23,
+ "待资料确认": 5,
+ "关键内容缺失": 2
+ },
+ "verifiedSteps": 39,
+ "totalSteps": 39,
+ "verifiedOperations": 95,
+ "original005RuntimePass": true,
+ "runtimePass": true,
+ "copiedModels": [
+ {
+ "source": "0916架桥车.glb",
+ "file": "/models/bridge-erector-20260916.glb",
+ "sha256": "5993a52f55cf981fd7cb6113e346ff3c6b1f434bbd84f18232ab5af494d9ddca"
+ },
+ {
+ "source": "0916保障车.glb",
+ "file": "/models/bridge-support-20260916.glb",
+ "sha256": "a101c5b5b59eb65daeacfaddd5dd70b6a3ab47f9b5b12d848c6c0e9fb3c0aba3"
+ },
+ {
+ "source": "双车连接油管.glb",
+ "file": "/models/bridge-rescue-hoses-20260916.glb",
+ "sha256": "239070f86b5c51c01f1b74cedef94a6340456f069a0132e42d7fe9d71dde1d9a"
+ },
+ {
+ "source": "3封口袋.glb",
+ "file": "/models/bridge-pump-bags-20260916.glb",
+ "sha256": "eff5f46392c9b4c777e8f4696cd9831711a5790df94086b105c792f479caecba"
+ },
+ {
+ "source": "牛皮纸.glb",
+ "file": "/models/bridge-paper-20260916.glb",
+ "sha256": "315f25c1735a3d97d03d3b418bef90b214ed22928bea427a03bc2f63d60349b8"
+ },
+ {
+ "source": "4封口袋.glb",
+ "file": "/models/bridge-valve-bags-20260916.glb",
+ "sha256": "b945eb761daaf2ccbd391669edbf8a7a09f883338985984cc1eacd7cf0f52840"
+ }
+ ],
+ "rows": [
+ {
+ "code": "005",
+ "number": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "grade": "简化实现",
+ "note": "真实前泵可点选确认;故障由脚本预设,没有两个泵之间的诊断分支。",
+ "source": "1-动画!B30:D30",
+ "original": "首先,根据故障现象确定是哪一个液压泵发生故障",
+ "operations": [
+ {
+ "targetId": "front-pump-hydraulic-pump"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-116-step-1.png"
+ },
+ {
+ "code": "005",
+ "number": 2,
+ "title": "断开架桥车取力器",
+ "grade": "基本对应",
+ "note": "真实取力器开关可旋转断开;模型命名及原稿均提示该开关实物准确性仍需确认。",
+ "source": "1-动画!B31:D31",
+ "original": "而后,断开架桥车取力器",
+ "operations": [
+ {
+ "targetId": "front-pump-pto-switch"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-116-step-2.png"
+ },
+ {
+ "code": "005",
+ "number": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "grade": "基本对应",
+ "note": "真实球阀手柄旋转;已验证交互,最终与管轴平行关系仍需实装确认。",
+ "source": "1-动画!B32:D32",
+ "original": "而后,将备胎斜上方连接两个红色滤油器的球阀打开(手柄由垂直转至平行于管路)",
+ "operations": [
+ {
+ "targetId": "front-pump-ball-valve-switch"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-116-step-3.png"
+ },
+ {
+ "code": "005",
+ "number": 4,
+ "title": "重新联通取力器",
+ "grade": "基本对应",
+ "note": "同一取力器开关反向旋转复位,接通动作可完成。",
+ "source": "1-动画!B33:D33",
+ "original": "而后,重新接通取力器",
+ "operations": [
+ {
+ "targetId": "front-pump-pto-switch"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-116-step-4.png"
+ },
+ {
+ "code": "005",
+ "number": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "grade": "基本对应",
+ "note": "真实盒盖与互救开关分两次操作;盒盖铰链、手柄固定端转轴已有。单泵驱动整车的结果动画未接入。",
+ "source": "1-动画!B34:D34",
+ "original": "而后,打开辅助控制盒内的\"互救\"开关",
+ "operations": [
+ {
+ "targetId": "front-pump-aux-control-box-cover"
+ },
+ {
+ "targetId": "front-pump-rescue-switch"
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-116-step-5.png"
+ },
+ {
+ "code": "006",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "grade": "简化实现",
+ "note": "发动机以颜色表示运行,取力器开关可断开;无发动机/液压动力联动。",
+ "source": "1-动画!B39:D39",
+ "original": "(1)确保架桥车油泵取力器处于脱离状态并保持车辆启动",
+ "operations": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate"
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-1.png"
+ },
+ {
+ "code": "006",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "grade": "简化实现",
+ "note": "双车、接口盖和两条真实软管存在;移动盖子后显示预成形软管,没有快接插入与锁紧动作。",
+ "source": "1-动画!B40:D40",
+ "original": "(2)架桥车端接液压油箱右侧快速接头,保障车端接驾驶室外右下方快速接头",
+ "operations": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-return-line",
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-2.png"
+ },
+ {
+ "code": "006",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "grade": "基本对应",
+ "note": "使用保障车独立回油截止阀节点,可旋转打开;实装位置待专业确认。",
+ "source": "1-动画!B41:D41",
+ "original": "(3)打开保障车液压油箱快速接头处的回油截止阀,保证回油油路畅通",
+ "operations": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-3.png"
+ },
+ {
+ "code": "006",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "grade": "基本对应",
+ "note": "使用真实盒盖和互救开关;与005是否同一开关,原表列为待澄清项。",
+ "source": "1-动画!B42:D42",
+ "original": "(4)开启互救工作模式,在辅助控制盒将\"互救作业\"开关打开",
+ "operations": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate"
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-4.png"
+ },
+ {
+ "code": "006",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "grade": "基本对应",
+ "note": "两个独立滤油器出口球阀均绑定,必须分别完成操作。",
+ "source": "1-动画!B43:D43",
+ "original": "(5)打开两出油滤油器出口处的球阀",
+ "operations": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate"
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-5.png"
+ },
+ {
+ "code": "006",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "grade": "简化实现",
+ "note": "保障车GLB只有整车、玻璃、接口盖、回油阀四个网格;取力器开关是代码补充件,供油靠软管变色表示。",
+ "source": "1-动画!B44:D44",
+ "original": "(6)接通保障车液压泵取力器",
+ "operations": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-6.png"
+ },
+ {
+ "code": "006",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "grade": "关键内容缺失",
+ "note": "可移动示意手柄结束步骤,但没有“按正常步骤操作架桥车”的整机作业动作。不能据此验收正常作业已完成。",
+ "source": "1-动画!B45:D45",
+ "original": "(7)按正常操作步骤操作架桥车",
+ "operations": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-87-step-7.png"
+ },
+ {
+ "code": "007",
+ "number": 1,
+ "title": "停机并初裁牛皮纸",
+ "grade": "简化实现",
+ "note": "停机着色及牛皮纸缩放已实现;未用裁剪工具沿真实结合面轮廓裁切。",
+ "source": "1-动画!B47:D47",
+ "original": "(1)桥车熄火,按前泵与取力器连接处形状裁切一块牛皮纸",
+ "operations": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 13195851
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-paper",
+ "scale": [
+ 0.85,
+ 1,
+ 0.85
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-1.png"
+ },
+ {
+ "code": "007",
+ "number": 2,
+ "title": "关闭液压油箱出油口一号球阀",
+ "grade": "待资料确认",
+ "note": "绑定2_07球阀开关02和3-02球阀开关,能关闭;是否对应“1号球阀”须确认编号。",
+ "source": "1-动画!B48:D48",
+ "original": "(2)关闭液压油箱出口处的 1 号球阀(手柄由平行转至垂直于油管)",
+ "operations": [
+ {
+ "targetId": "bridge-tank-valve",
+ "kind": "rotate"
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-2.png"
+ },
+ {
+ "code": "007",
+ "number": 3,
+ "title": "拆开并包扎进出油管",
+ "grade": "简化实现",
+ "note": "进出油接头与两封口袋可独立操作;接头只有位移,缺大活动扳手旋松及包扎动作。",
+ "source": "1-动画!B49:D49",
+ "original": "(3)用大活动扳手拆开前泵进出油管接头,用封口袋封住",
+ "operations": [
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ -0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 4,
+ "verifiedOperations": 4,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-3.png"
+ },
+ {
+ "code": "007",
+ "number": 4,
+ "title": "拆下四个安装螺栓",
+ "grade": "简化实现",
+ "note": "两组源网格拆成四颗真实螺栓,逐颗旋转拆下;无开口扳手动作,旋转行程为示意。",
+ "source": "1-动画!B50:D50",
+ "original": "(4)用开口扳手拆下液压泵与取力器处的 4 颗固定螺栓",
+ "operations": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 4,
+ "verifiedOperations": 4,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-4.png"
+ },
+ {
+ "code": "007",
+ "number": 5,
+ "title": "取下旧前泵",
+ "grade": "基本对应",
+ "note": "原位旧前泵可取下,安装位置保留。",
+ "source": "1-动画!B51:D51",
+ "original": "(5)取下前泵",
+ "operations": [
+ {
+ "targetId": "bridge-old-pump",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-old-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-5.png"
+ },
+ {
+ "code": "007",
+ "number": 6,
+ "title": "修裁牛皮纸",
+ "grade": "简化实现",
+ "note": "从初裁纸切换为精裁纸垫几何;没有实际轮廓裁切过程。",
+ "source": "1-动画!B52:D52",
+ "original": "(6)按液压泵安装形式继续裁剪,使其与取力器贴合完整",
+ "operations": [
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "visible": true
+ },
+ {
+ "targetId": "bridge-paper",
+ "visible": false
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-6.png"
+ },
+ {
+ "code": "007",
+ "number": 7,
+ "title": "放置牛皮纸垫",
+ "grade": "简化实现",
+ "note": "纸垫可移动到取力器接口;贴合位置按偏移估算,尚缺结合面形状尺寸验收依据。",
+ "source": "1-动画!B53:D53",
+ "original": "(7)将裁剪好的牛皮纸贴在取力口处",
+ "operations": [
+ {
+ "targetId": "bridge-gasket",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "offset": [
+ 2.3,
+ 0,
+ -0.4
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-7.png"
+ },
+ {
+ "code": "007",
+ "number": 8,
+ "title": "安装新液压泵",
+ "grade": "基本对应",
+ "note": "新泵归位并安装四颗螺栓;新旧泵复用同一源几何。不能据此验收扭矩或装配尺寸。",
+ "source": "1-动画!B54:D54",
+ "original": "(8)装上新泵",
+ "operations": [
+ {
+ "targetId": "bridge-new-pump",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-new-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 5,
+ "verifiedOperations": 5,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-8.png"
+ },
+ {
+ "code": "007",
+ "number": 9,
+ "title": "向新泵加注液压油",
+ "grade": "简化实现",
+ "note": "真实加油口盖随新泵移动,可打开;加油壶与油流是补充件,无油量计算及关盖动作。",
+ "source": "1-动画!B55:D55",
+ "original": "(9)打开新泵注油口,注入液压油",
+ "operations": [
+ {
+ "targetId": "bridge-fill-cap",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-fill-cap",
+ "offset": [
+ 0,
+ 0.45,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-oil-can",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-oil-can",
+ "offset": [
+ -1.3,
+ 0.6,
+ -0.3
+ ]
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-9.png"
+ },
+ {
+ "code": "007",
+ "number": 10,
+ "title": "恢复进出油管连接",
+ "grade": "简化实现",
+ "note": "取袋和接头归位可完成;没有“拧紧”的接头旋转及扳手动作。",
+ "source": "1-动画!B56:D56",
+ "original": "(10)用大活动把手装上前泵进出油管,并拧紧",
+ "operations": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 4,
+ "verifiedOperations": 4,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-10.png"
+ },
+ {
+ "code": "007",
+ "number": 11,
+ "title": "启动设备试验",
+ "grade": "关键内容缺失",
+ "note": "发动机变色、示意试验手柄可操作;没有整机试车工况、泄漏检查、压力响应与合格判据。",
+ "source": "1-动画!B57:D57",
+ "original": "(11)起动装备,试车验证",
+ "operations": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": false
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-test-control",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-test-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-88-step-11.png"
+ },
+ {
+ "code": "008",
+ "number": 1,
+ "title": "清洗小腔平衡阀",
+ "grade": "简化实现",
+ "note": "补充布块移动和阀体变色;没有清洗剂、油污到洁净的材质变化及各管接头擦拭。",
+ "source": "1-动画!B59:D59",
+ "original": "① 用清洗液清洗平衡阀表面和各油管接头,用抹布擦拭干净",
+ "operations": [
+ {
+ "targetId": "bridge-small-cloth",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-1.png"
+ },
+ {
+ "code": "008",
+ "number": 2,
+ "title": "拆开小腔控制油口管路",
+ "grade": "简化实现",
+ "note": "真实管接头移开、封口袋就位;无19号开口扳手及旋松过程。",
+ "source": "1-动画!B60:D60",
+ "original": "② 用 19 号开口扳手拧下控制端油管接头,用封口袋封住管口",
+ "operations": [
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-2.png"
+ },
+ {
+ "code": "008",
+ "number": 3,
+ "title": "拆下小腔平衡阀",
+ "grade": "简化实现",
+ "note": "四颗真实安装螺栓分别拆除并取阀;无8号内六角工具。",
+ "source": "1-动画!B61:D61",
+ "original": "③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀",
+ "operations": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 5,
+ "verifiedOperations": 5,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-3.png"
+ },
+ {
+ "code": "008",
+ "number": 4,
+ "title": "封堵小腔油口",
+ "grade": "简化实现",
+ "note": "两个真实油堵分别封堵;擦净结合面仅为示意阀座平面变色。",
+ "source": "1-动画!B62:D62",
+ "original": "④ 用 2 个油堵头堵住阀体座上 2 个油口,擦拭阀座表面",
+ "operations": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 3,
+ "verifiedOperations": 3,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-4.png"
+ },
+ {
+ "code": "008",
+ "number": 5,
+ "title": "清洗大腔平衡阀",
+ "grade": "简化实现",
+ "note": "同小腔,补充布块移动、阀体变色;缺去污材质和管接头清洗。",
+ "source": "1-动画!B64:D64",
+ "original": "① 清洗平衡阀表面和各油管接头,用抹布擦拭干净",
+ "operations": [
+ {
+ "targetId": "bridge-large-cloth",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 1,
+ "verifiedOperations": 1,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-5.png"
+ },
+ {
+ "code": "008",
+ "number": 6,
+ "title": "拆开大腔控制油口管路",
+ "grade": "简化实现",
+ "note": "真实大腔接头和封口袋可操作;无19号扳手和接头旋松。",
+ "source": "1-动画!B65:D65",
+ "original": "② 用 19 号开口扳手拧下控制端油管接头,封口袋封住管口",
+ "operations": [
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-6.png"
+ },
+ {
+ "code": "008",
+ "number": 7,
+ "title": "拆下大腔平衡阀",
+ "grade": "简化实现",
+ "note": "四颗真实安装螺栓与大腔阀体可拆除;无8号内六角工具。",
+ "source": "1-动画!B66:D66",
+ "original": "③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀",
+ "operations": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 5,
+ "verifiedOperations": 5,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-7.png"
+ },
+ {
+ "code": "008",
+ "number": 8,
+ "title": "封堵大腔油口",
+ "grade": "简化实现",
+ "note": "两个真实油堵可封堵;阀座接触面仍是代码补充平面。",
+ "source": "1-动画!B67:D67",
+ "original": "④ 用 2 个油堵头堵住阀体座 2 个油口,擦拭阀座",
+ "operations": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 3,
+ "verifiedOperations": 3,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-8.png"
+ },
+ {
+ "code": "008",
+ "number": 9,
+ "title": "准备安装大腔平衡阀",
+ "grade": "简化实现",
+ "note": "示意阀座变色及两个油堵移开;缺阀体、阀座双方的擦拭动作。",
+ "source": "1-动画!B69:D69",
+ "original": "① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头",
+ "operations": [
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 3,
+ "verifiedOperations": 3,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-9.png"
+ },
+ {
+ "code": "008",
+ "number": 10,
+ "title": "安装大腔平衡阀",
+ "grade": "简化实现",
+ "note": "小腔来源阀换装到大腔位置,按四螺栓安装面换算朝向;可安装四颗螺栓,缺内六角工具。",
+ "source": "1-动画!B70:D70",
+ "original": "② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓",
+ "operations": [
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 5,
+ "verifiedOperations": 5,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-10.png"
+ },
+ {
+ "code": "008",
+ "number": 11,
+ "title": "核对大腔控制油口管路连接",
+ "grade": "待资料确认",
+ "note": "原表同时写连接拧紧与拆开包扎。当前执行取袋接管并要求记录依据,交教员核对;不能自动判为正确装配。",
+ "source": "1-动画!B71:D71",
+ "original": "③ 将控制端油管接头封口袋取下并用扳手旋紧",
+ "operations": [
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-11.png"
+ },
+ {
+ "code": "008",
+ "number": 12,
+ "title": "紧固大腔阀体连接螺栓",
+ "grade": "待资料确认",
+ "note": "复用第10步同一组四颗螺栓再次旋转。若固定螺栓和阀体连接螺栓是两组,当前缺第二组。",
+ "source": "1-动画!B72:D72",
+ "original": "④ 用内六角将阀体 4 个连接螺栓旋紧",
+ "operations": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 4,
+ "verifiedOperations": 4,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-12.png"
+ },
+ {
+ "code": "008",
+ "number": 13,
+ "title": "准备安装小腔平衡阀",
+ "grade": "简化实现",
+ "note": "示意阀座变色及两个油堵移开;缺阀体和阀座双面擦拭。",
+ "source": "1-动画!B74:D74",
+ "original": "① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头",
+ "operations": [
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 3,
+ "verifiedOperations": 3,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-13.png"
+ },
+ {
+ "code": "008",
+ "number": 14,
+ "title": "安装小腔平衡阀",
+ "grade": "简化实现",
+ "note": "大腔来源阀换装到小腔位置并调整朝向;四颗真实螺栓可装,缺内六角工具。",
+ "source": "1-动画!B75:D75",
+ "original": "② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓",
+ "operations": [
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ -3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 5,
+ "verifiedOperations": 5,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-14.png"
+ },
+ {
+ "code": "008",
+ "number": 15,
+ "title": "核对小腔控制油口管路连接",
+ "grade": "待资料确认",
+ "note": "与第11步相同的装/拆原文矛盾;保留人工依据与教员核对,不能当作已澄清。",
+ "source": "1-动画!B76:D76",
+ "original": "③ 将控制端油管接头封口袋取下并用扳手旋紧",
+ "operations": [
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 2,
+ "verifiedOperations": 2,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-15.png"
+ },
+ {
+ "code": "008",
+ "number": 16,
+ "title": "紧固小腔阀体连接螺栓",
+ "grade": "待资料确认",
+ "note": "复用第14步四颗螺栓。是否另有一组四颗阀体连接螺栓仍待确认。",
+ "source": "1-动画!B77:D77",
+ "original": "④ 用内六角将阀体 4 个连接螺栓旋紧",
+ "operations": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ],
+ "expectedOperations": 4,
+ "verifiedOperations": 4,
+ "runtimeComplete": true,
+ "screenshot": "task-89-step-16.png"
+ }
+ ],
+ "limitation": "仅教员预览真实点击/拖拽、准备与服务端步骤校验;不写学员成绩,不等同实装质量、工具尺寸、扭矩、压力和安全流程验收。"
+}
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/current-tasks.json b/reports/bridge-model-acceptance-20260921/current-tasks.json
new file mode 100644
index 0000000..5906180
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/current-tasks.json
@@ -0,0 +1,9808 @@
+[
+ {
+ "id": "86",
+ "code": "TASK-VIRTUAL-005",
+ "name": "重型支援桥液压泵应急切换",
+ "description": "原稿:桥梁/文件2/4.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "438",
+ "contentVersionId": "556",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急切换",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "架桥车前泵故障互救处置训练(虚拟仿真)",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "架桥车互救操作训练场",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "前泵故障 · 待执行互救处置",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "内置架桥车互救操作训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "架桥车前泵故障互救处置训练场景",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "2取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "5辅助控制盒",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "5互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ }
+ ],
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "fitToScene": true,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "架桥车前泵故障互救处置训练场景",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "2取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "5辅助控制盒",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "5互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true
+ }
+ ],
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "fitToScene": true,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "真实整车步骤模型",
+ "前泵故障互救",
+ "机构顺序操作"
+ ],
+ "sensorFeeds": []
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "front-pump-step-01",
+ "code": "FRONT-PUMP-STEP-01",
+ "stepCode": "front-pump-step-01",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-01",
+ "number": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "targetId": "front-pump-hydraulic-pump",
+ "targetName": "液压泵",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "guidance": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "warning": "",
+ "destination": "液压泵",
+ "success": "根据故障现象确定是哪一个液压泵发生故障",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-hydraulic-pump",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "identify",
+ "axisSpace": "world",
+ "highlightColor": "#e53935",
+ "steps": [
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "toleranceDegrees": 6,
+ "directionHint": "点击并确认发生故障的液压泵"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-hydraulic-pump",
+ "targetNodeName": "1液压泵",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,确定故障液压泵。根据故障现象确定发生故障的液压泵。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_FF17FDE117E94B80BB30DF3E058821FD",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "53",
+ "videoName": "重型支援桥液压泵应急切换 · 1 根据故障现象确定是哪一个液压泵发生故障",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-02",
+ "code": "FRONT-PUMP-STEP-02",
+ "stepCode": "front-pump-step-02",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-02",
+ "number": 2,
+ "title": "断开架桥车取力器",
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "guidance": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "断开架桥车取力器",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 6,
+ "directionHint": "向断开方向摇动"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "2取力器开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_6E75DADE9D0649DCA16A2499D1EE8776",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "54",
+ "videoName": "重型支援桥液压泵应急切换 · 2 断开架桥车取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-03",
+ "code": "FRONT-PUMP-STEP-03",
+ "stepCode": "front-pump-step-03",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-03",
+ "number": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "targetId": "front-pump-ball-valve-switch",
+ "targetName": "球阀开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "3球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "guidance": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "warning": "",
+ "destination": "球阀开关",
+ "success": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-ball-valve-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "steps": [
+ {
+ "targetId": "front-pump-ball-valve-switch",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "由垂直与官道方向旋转至平行于管道方向"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-ball-valve-switch",
+ "targetNodeName": "3球阀开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_9A4629F90E614E60835441B5D0AAE86C",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "55",
+ "videoName": "重型支援桥液压泵应急切换 · 3 将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-04",
+ "code": "FRONT-PUMP-STEP-04",
+ "stepCode": "front-pump-step-04",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-04",
+ "number": 4,
+ "title": "重新联通取力器",
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "2取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "guidance": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "重新联通取力器",
+ "cameraPolicy": "exterior",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "按步骤2的相反方向摇回去"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "2取力器开关",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_DA42FE5C995F4C67A559E6E94DB1C440",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "56",
+ "videoName": "重型支援桥液压泵应急切换 · 4 重新联通取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ },
+ {
+ "id": "front-pump-step-05",
+ "code": "FRONT-PUMP-STEP-05",
+ "stepCode": "front-pump-step-05",
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-05",
+ "number": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "辅助控制盒盖",
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "5辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "guidance": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "warning": "",
+ "destination": "辅助控制盒盖",
+ "success": "打开辅助控制盒内的“互救”开关",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "mode": "inspect",
+ "durationMs": 1600,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "sequence",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-aux-control-box"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "沿控制盒盖边缘铰链打开",
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ }
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "往上搬"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "targetNodeId": "front-pump-aux-control-box-cover",
+ "targetNodeName": "5辅助控制盒盖",
+ "measurement": "",
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "narrationUrl": "",
+ "safetyText": "",
+ "safetyUrl": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D85C34259BB34E0C966C5A79569DBF10",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "57",
+ "videoName": "重型支援桥液压泵应急切换 · 5 打开辅助控制盒内的“互救”开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ },
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-switch",
+ "scriptVersion": "2"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/4.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急切换",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-005-L1",
+ "title": "液压泵作用与应急切换引入",
+ "body": "重型支援桥作为应急保障力量的重要组成部分,在抢险救灾中起到了关键作用。在架设与撤收中,液压系统作为装备的动力系统,特别是液压系统的心脏——液压泵,这一关键部件的可靠性直接关系到能否完成桥梁架设撤收作业,面对复杂的战场环境,一旦液压系统出现故障,就会导致桥梁架设撤收作业被迫中断,甚至引发危险状态。\n\n那在战时,如果液压泵损坏,该怎样快速完成架桥任务呢?\n\n通过对液压系统分析可知,重型支援桥液压系统采取了“双泵独立供油”的设计理念,因此,如果其中一个液压泵出现损伤,可以采取应急切换的方法,快速完成装备抢修。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L2",
+ "title": "应急切换是什么",
+ "body": "那什么是应急切换呢?\n\n在装备战场抢救抢修中,切换是一种应急修理方式,其是指通过回路转换或改接,脱开损伤部分,接通备用部分,或者将原来担负非基本功能的完好部分改换到基本功能回路中。\n\n针对重型支援桥,应急切换是指在单个液压泵或取力器出现故障时,通过切换到另一个液压泵继续完成架设或撤收作业的方法。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L3",
+ "title": "双泵供油回路",
+ "body": "重型支援桥是如何实现应急切换的?\n\n我们从原理上来寻找答案,根据液压系统原理,重型支援桥设置有2个供油回路,一个是前泵供油回路,由前泵提供动力,主要负责为托架液压系统和架设架液压系统提供动力,主要由液压油箱、前泵、前泵出油滤油器、托架多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路;另一个是后泵供油回路,由后泵提供动力,主要负责为支腿液压系统和吊机液压系统提供动力,主要由液压油箱、后泵、后泵出油滤油器、支腿多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L4",
+ "title": "打开球阀后的回油问题",
+ "body": "此时,我们应该注意到在两个出油滤油器的出口处设置一球阀,在正常情况下,该球阀处于关闭状态。\n\n那如果将该球阀打开,会出现什么样的情况呢?\n\n此处以托架马达向前为例说明,当操作手操作托架马达向前时,来自负载侧的压力会将托架多路换向阀连接块内的三通流量调节阀关闭,此时来自前泵的液压油无法通过托架多路换向阀连接块内的三通流量调节阀返回液压油箱,应通过托架多路换向阀内部通道进入托架马达换向联,而后进入液压马达,推动液压马达旋转。\n\n但此时液压马达侧负载压力较大,液压油便不会进入液压马达,而是经打开的球阀,进入支腿多路换向阀连接块内,通过支腿多路换向阀内的三通流量调节阀返回液压油箱。\n\n操作托架液压系统和架设架液压系统的任一执行机构时,均会出现上述现象。同理可分析,操作支腿液压系统和吊机液压系统的任一执行机构时,也会出现上述现象。\n\n那在前泵损坏的情况下,可否利用液压系统这一设计理念,完成重型支援桥的架设和撤收作业呢?\n\n通过上述分析,操作重型支援桥任一执行机构时,负载侧压力总会关闭相应的多路换向阀连接块内的三通流量调节阀,使得来自液压泵的液压油从另一多路换向阀连接块内的三通流量调节阀返回液压油箱,因此,如果提前关闭两个多路换向阀连接块内的三通流量调节阀,则无论来自哪个液压泵的液压油均不会返回液压油箱,那通过哪个元件关闭三通流量调节阀呢?",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L5",
+ "title": "自救阀与切换原理",
+ "body": "此时我们应注意到,托架多路换向阀和支腿多路换向阀的M口各串联一自救阀,如果将该自救阀打开,则在接通取力器时,来自液压泵的液压油便将三通流量调节阀关闭。\n\n因此,在实施切换时,还需打开自救阀。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "22ed2fef2fabe2653ffd176d3cfe2b15bf073bd3e3507a08f196bf05ccabc1bc",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789311584,
+ "withdrawnAt": 1789311583,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 6,
+ "addTime": 1789309630,
+ "updateTime": "2026-09-13T22:27:11",
+ "serverNow": 1790002125,
+ "members": [
+ {
+ "id": "169",
+ "userId": "99",
+ "username": "root",
+ "displayName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ },
+ {
+ "id": "184",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ },
+ {
+ "id": "186",
+ "userId": "59",
+ "username": "uat.student01",
+ "displayName": "王强",
+ "departmentId": "5",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 3,
+ "pendingReviewCount": 0
+ },
+ {
+ "id": "116",
+ "code": "BRIDGE-005-AUTHORING-PILOT",
+ "name": "005 液压泵应急切换(编排验证)",
+ "description": "独立编排验证,不替换现有005",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "458",
+ "contentVersionId": "560",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "trainingMode": "VIRTUAL",
+ "enabledChannels": [
+ "VIRTUAL"
+ ],
+ "channelProfiles": {
+ "VIRTUAL": {
+ "type": "VIRTUAL",
+ "renderMode": "三维实时仿真",
+ "interactionMode": "三维操作、动画引导与规则自动判定",
+ "assistance": "演示、训练与模拟考试"
+ }
+ },
+ "level": "标准",
+ "durationMinutes": 10,
+ "totalScore": 100,
+ "objectives": [],
+ "steps": [
+ {
+ "id": "front-pump-step-01",
+ "stepCode": "front-pump-step-01",
+ "order": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "summary": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-01",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-hydraulic-pump",
+ "targetName": "液压泵",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "guidance": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "warning": "",
+ "destination": "液压泵",
+ "success": "根据故障现象确定是哪一个液压泵发生故障",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-hydraulic-pump",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "identify",
+ "axisSpace": "world",
+ "highlightColor": "#e53935",
+ "steps": [
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "toleranceDegrees": 6,
+ "directionHint": "点击并确认发生故障的液压泵"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第1步,确定故障液压泵。根据故障现象确定发生故障的液压泵。",
+ "narrationAssetCode": "PILOT-005-1-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-1-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 1,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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新泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-hydraulic-pump",
+ "targetNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-02",
+ "stepCode": "front-pump-step-02",
+ "order": 2,
+ "title": "断开架桥车取力器",
+ "summary": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-02",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "guidance": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "断开架桥车取力器",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 6,
+ "directionHint": "向断开方向摇动"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "narrationAssetCode": "PILOT-005-2-AUDIO",
+ "safetyText": "安全提示:请确认压力归零并可靠支承后再进行拆卸。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-2-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 2,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-03",
+ "stepCode": "front-pump-step-03",
+ "order": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "summary": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-03",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-ball-valve-switch",
+ "targetName": "球阀开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "guidance": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "warning": "",
+ "destination": "球阀开关",
+ "success": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-ball-valve-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "steps": [
+ {
+ "targetId": "front-pump-ball-valve-switch",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "由垂直与官道方向旋转至平行于管道方向"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "narrationAssetCode": "PILOT-005-3-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-3-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "focus",
+ "number": 3,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceInteractionId": "front-pump-ball-valve-switch",
+ "editorId": "bridge-0916-node-96",
+ "nodePath": "0/48/0",
+ "sourceNodeName": "1_26球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-ball-valve-switch",
+ "targetNodeName": "1_26球阀开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-04",
+ "stepCode": "front-pump-step-04",
+ "order": 4,
+ "title": "重新联通取力器",
+ "summary": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-04",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-pto-switch",
+ "targetName": "取力器开关",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "guidance": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "warning": "",
+ "destination": "取力器开关",
+ "success": "重新联通取力器",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-pto-switch",
+ "mode": "inspect",
+ "durationMs": 900,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "exterior",
+ "mechanism": {
+ "type": "rotate",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-power-take-off"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-pto-switch",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "按步骤2的相反方向摇回去"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "narrationAssetCode": "PILOT-005-4-AUDIO",
+ "safetyText": "安全提示:请按规定顺序操作并远离危险区域。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-4-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "exterior",
+ "number": 4,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-pto-switch",
+ "targetNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ },
+ {
+ "id": "front-pump-step-05",
+ "stepCode": "front-pump-step-05",
+ "order": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "summary": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "score": 10,
+ "actionCode": "COMPLETE_FRONT-PUMP-STEP-05",
+ "allowedPositions": [],
+ "physicalEventRule": {},
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "rule-check",
+ "instruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "guidance": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "warning": "",
+ "destination": "辅助控制盒盖",
+ "success": "打开辅助控制盒内的“互救”开关",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "mode": "inspect",
+ "durationMs": 1600,
+ "tolerance": 0,
+ "requiresPlacement": false,
+ "cameraPolicy": "focus",
+ "mechanism": {
+ "type": "sequence",
+ "axisSpace": "world",
+ "visualTargetIds": [
+ "front-pump-aux-control-box"
+ ],
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "沿控制盒盖边缘铰链打开",
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ }
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 6,
+ "directionHint": "往上搬"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "safetyRules": [
+ {
+ "id": "ppeConfirmed",
+ "label": "个人防护用品齐全",
+ "required": true
+ },
+ {
+ "id": "routeAuthorized",
+ "label": "作业路线已授权",
+ "required": true
+ }
+ ],
+ "audio": {
+ "narrationText": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "narrationAssetCode": "PILOT-005-5-AUDIO",
+ "safetyText": "安全提示:请确认压力归零并可靠支承后再进行拆卸。",
+ "safetyAssetCode": "",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationSource": "offline",
+ "offlineSource": "upload",
+ "offlineMediaType": "video",
+ "offlineFileName": "",
+ "offlineAssetKey": "",
+ "offlineMimeType": "",
+ "offlineSizeBytes": 0,
+ "narrationVideoAssetCode": "PILOT-005-5-VIDEO",
+ "narrationUrl": "",
+ "safetyUrl": "",
+ "digitalHuman": {
+ "enabled": false,
+ "mode": "video",
+ "videoSource": "upload",
+ "videoId": "",
+ "appId": "",
+ "videoUrl": "",
+ "videoFileName": "",
+ "folderId": "equipment-hydraulic-fault",
+ "folderPath": "装备维修 / 液压系统 / 故障排查",
+ "videoName": "",
+ "avatarId": "",
+ "avatarName": "",
+ "backgroundImage": "",
+ "backgroundName": "",
+ "audioUrl": "",
+ "audioName": "",
+ "voiceId": "",
+ "voiceName": "",
+ "scriptText": "",
+ "generatedVideoId": "",
+ "generatedVideoUrl": "",
+ "generatedAt": "",
+ "generationStatus": "generated"
+ }
+ },
+ "animationBinding": null,
+ "faultIds": [],
+ "assessment": {
+ "weight": 20,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "cameraPolicy": "focus",
+ "number": 5,
+ "targetRef": {
+ "sceneId": "front-pump-rescue-vehicle",
+ "sceneObjectId": "front-pump-rescue-vehicle",
+ "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辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ "toolRequirements": [],
+ "targetNodeId": "front-pump-aux-control-box-cover",
+ "targetNodeName": "1_28辅助控制盒盖",
+ "toolPlacement": {
+ "placed": false,
+ "position": [
+ -3.2,
+ 0.18,
+ 1.8
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": 1,
+ "attachedTargetId": "",
+ "pose": "tray"
+ }
+ }
+ ],
+ "modeConfig": {
+ "type": "VIRTUAL",
+ "renderMode": "三维实时仿真",
+ "interactionMode": "三维操作、动画引导与规则自动判定",
+ "assistance": "演示、训练与模拟考试"
+ },
+ "task": {
+ "code": "BRIDGE-005-AUTHORING-PILOT",
+ "title": "005 液压泵应急切换(编排验证)",
+ "category": "小修",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ],
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "categoryId": "minor-repair",
+ "image": "/models/step-model-front-pump-thumb.png"
+ },
+ "scenario": {
+ "environmentName": "真实野外训练场",
+ "sceneLayout": "2 个场景对象 · 设备与物模型绑定已继承",
+ "equipmentState": "压力不足 · 内泄待定位",
+ "sceneTags": [],
+ "visibleParts": [
+ "front-pump-hydraulic-pump",
+ "front-pump-pto-switch",
+ "front-pump-ball-valve-switch",
+ "front-pump-aux-control-box-cover"
+ ],
+ "operableParts": [
+ "front-pump-hydraulic-pump",
+ "front-pump-pto-switch",
+ "front-pump-ball-valve-switch",
+ "front-pump-aux-control-box-cover"
+ ],
+ "sensorFeeds": [
+ {
+ "id": "STATE",
+ "label": "装备状态",
+ "value": "就绪",
+ "unit": "",
+ "state": "ok"
+ },
+ {
+ "id": "STEP",
+ "label": "流程节点",
+ "value": "1 / 8",
+ "unit": "",
+ "state": "ready"
+ },
+ {
+ "id": "RULE",
+ "label": "规则判定",
+ "value": "等待操作",
+ "unit": "",
+ "state": "ready"
+ }
+ ],
+ "id": "hydraulic-fault-scenario",
+ "publishedSceneId": "457@551",
+ "publishedSceneVersion": "7",
+ "sceneResource": {
+ "sceneId": "457@551",
+ "sourceProjectId": "457",
+ "sourceVersionId": "551",
+ "version": "7",
+ "sourceKind": "published",
+ "status": "已发布",
+ "publishedAt": "2026-09-17T14:33:41.000Z",
+ "objectCount": 2,
+ "assetKey": "",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "name": "005 液压泵应急切换(编排验证)",
+ "environment": {
+ "schema": "edit3dv4.scene-environment",
+ "version": "1.0",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "floorOnly": false,
+ "useModelFloor": true
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene: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": {},
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "",
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "visible": true,
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene: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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ }
+ ],
+ "partOverrides": {
+ "front-pump-hydraulic-pump": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-power-take-off": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-pto-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-ball-valve-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-aux-control-box": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-aux-control-box-cover": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-rescue-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ }
+ },
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "Group",
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "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
+ ]
+ }
+ ],
+ "assetReferences": [
+ {
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "environment",
+ "builtinAssetId": "front-pump-field-terrain"
+ },
+ {
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "equipment",
+ "builtinAssetId": "front-pump-step-vehicle"
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "7",
+ "presetId": "terrain-1",
+ "name": "真实野外训练场",
+ "type": "outdoor",
+ "assetKey": "",
+ "environment": {
+ "schema": "edit3dv4.scene-environment",
+ "version": "1.0",
+ "presetId": "terrain-1",
+ "type": "outdoor",
+ "floorOnly": false,
+ "useModelFloor": true
+ },
+ "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": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene: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": {},
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "",
+ "assetKey": "",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "sourceName": "terrain-005-20260917.glb",
+ "sizeBytes": 0,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "visible": true,
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene: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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ },
+ {
+ "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
+ }
+ ],
+ "partOverrides": {
+ "front-pump-hydraulic-pump": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-power-take-off": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-pto-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-ball-valve-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-aux-control-box": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ]
+ },
+ "front-pump-aux-control-box-cover": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ },
+ "front-pump-rescue-switch": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 0.01,
+ 0.01,
+ 0.01
+ ],
+ "visible": true,
+ "operable": true,
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ]
+ }
+ },
+ "operable": false,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "splitGroupId": "",
+ "splitParts": [],
+ "sourceNodeName": "Group",
+ "assetKey": "",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "sourceName": "0916架桥车.glb",
+ "sizeBytes": 37160920,
+ "mimeType": "model/gltf-binary",
+ "fitToScene": false,
+ "fitSize": 7,
+ "groundLevelY": null,
+ "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
+ ]
+ }
+ ]
+ }
+ },
+ "baseVisualKey": "diagnostic-bay",
+ "environment": {
+ "type": "outdoor",
+ "mode": "external",
+ "sourceName": "005 液压泵应急切换(编排验证) · 场景发布包",
+ "resourceUrl": "/models/terrain-005-20260917.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "accent": "#e98a2f",
+ "background": 12178915,
+ "fog": 12178915,
+ "ground": 6450803,
+ "camera": {
+ "position": [
+ 9.6,
+ 6.2,
+ 12.3
+ ],
+ "target": [
+ -0.25,
+ 2.45,
+ 0
+ ]
+ },
+ "retainStoredParts": false
+ },
+ "tools": [
+ {
+ "id": "pressure-gauge",
+ "name": "数字压力表",
+ "purpose": "卸压确认与压力复测",
+ "thumbnailKey": "pressure-gauge",
+ "modelKind": "pressure-gauge",
+ "defaultScale": 1
+ },
+ {
+ "id": "leak-detector",
+ "name": "泄漏检测灯",
+ "purpose": "油管与密封外泄检查",
+ "thumbnailKey": "leak-detector",
+ "modelKind": "leak-detector",
+ "defaultScale": 1
+ },
+ {
+ "id": "leakage-tester",
+ "name": "内泄保压仪",
+ "purpose": "压力衰减诊断",
+ "thumbnailKey": "leakage-tester",
+ "modelKind": "leakage-tester",
+ "defaultScale": 1
+ },
+ {
+ "id": "hose-wrench",
+ "name": "油管扳手",
+ "purpose": "接头拆装",
+ "thumbnailKey": "hose-wrench",
+ "modelKind": "hose-wrench",
+ "defaultScale": 1
+ },
+ {
+ "id": "pin-puller",
+ "name": "液压拔销器",
+ "purpose": "销轴同轴分离",
+ "thumbnailKey": "pin-puller",
+ "modelKind": "pin-puller",
+ "defaultScale": 1
+ },
+ {
+ "id": "lifting-sling",
+ "name": "起吊带与平衡梁",
+ "purpose": "液压缸总成吊运",
+ "thumbnailKey": "lifting-sling",
+ "modelKind": "lifting-sling",
+ "defaultScale": 1
+ },
+ {
+ "id": "seal-kit",
+ "name": "密封拆装工具",
+ "purpose": "密封组件更换",
+ "thumbnailKey": "seal-kit",
+ "modelKind": "seal-kit",
+ "defaultScale": 1
+ },
+ {
+ "id": "torque-wrench",
+ "name": "数字扭矩扳手",
+ "purpose": "规范力矩紧固",
+ "thumbnailKey": "torque-wrench",
+ "modelKind": "torque-wrench",
+ "defaultScale": 1
+ },
+ {
+ "id": "checklist-terminal",
+ "name": "数字点检终端",
+ "purpose": "路线签到与清单确认",
+ "thumbnailKey": "checklist-terminal",
+ "modelKind": "checklist-terminal",
+ "defaultScale": 1
+ },
+ {
+ "id": "feeler-gauge",
+ "name": "间隙规",
+ "purpose": "销轴配合间隙测量",
+ "thumbnailKey": "feeler-gauge",
+ "modelKind": "feeler-gauge",
+ "defaultScale": 1
+ },
+ {
+ "id": "lock-tool",
+ "name": "锁止件拆装钳",
+ "purpose": "解除与恢复锁止件",
+ "thumbnailKey": "lock-tool",
+ "modelKind": "lock-tool",
+ "defaultScale": 1
+ },
+ {
+ "id": "alignment-tool",
+ "name": "同轴装配导向器",
+ "purpose": "反向复装校准",
+ "thumbnailKey": "alignment-tool",
+ "modelKind": "alignment-tool",
+ "defaultScale": 1
+ }
+ ],
+ "faults": [],
+ "authoring": {
+ "schema": "unreal-tran.training-authoring/v1",
+ "version": 1,
+ "nodes": [
+ {
+ "id": "flow-start",
+ "type": "start",
+ "title": "训练开始",
+ "x": 32,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-01",
+ "type": "step",
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "stepId": "front-pump-step-01",
+ "x": 240,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-02",
+ "type": "step",
+ "title": "断开架桥车取力器",
+ "stepId": "front-pump-step-02",
+ "x": 500,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-03",
+ "type": "step",
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "stepId": "front-pump-step-03",
+ "x": 760,
+ "y": 120,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-04",
+ "type": "step",
+ "title": "重新联通取力器",
+ "stepId": "front-pump-step-04",
+ "x": 240,
+ "y": 270,
+ "config": {}
+ },
+ {
+ "id": "step-node:front-pump-step-05",
+ "type": "step",
+ "title": "打开辅助控制盒内的“互救”开关",
+ "stepId": "front-pump-step-05",
+ "x": 500,
+ "y": 270,
+ "config": {}
+ },
+ {
+ "id": "flow-end",
+ "type": "end",
+ "title": "训练结束",
+ "x": 760,
+ "y": 270,
+ "config": {}
+ }
+ ],
+ "edges": [
+ {
+ "id": "edge:flow-start:step-node:front-pump-step-01",
+ "from": "flow-start",
+ "to": "step-node:front-pump-step-01",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-01:step-node:front-pump-step-02",
+ "from": "step-node:front-pump-step-01",
+ "to": "step-node:front-pump-step-02",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-02:step-node:front-pump-step-03",
+ "from": "step-node:front-pump-step-02",
+ "to": "step-node:front-pump-step-03",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-03:step-node:front-pump-step-04",
+ "from": "step-node:front-pump-step-03",
+ "to": "step-node:front-pump-step-04",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-04:step-node:front-pump-step-05",
+ "from": "step-node:front-pump-step-04",
+ "to": "step-node:front-pump-step-05",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ },
+ {
+ "id": "edge:step-node:front-pump-step-05:flow-end",
+ "from": "step-node:front-pump-step-05",
+ "to": "flow-end",
+ "label": "",
+ "kind": "base-sequence",
+ "rule": ""
+ }
+ ],
+ "timeline": {
+ "currentTime": 0,
+ "tracks": {
+ "front-pump-step-01": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-1-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-02": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-2-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-03": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-3-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-04": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-4-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ },
+ "front-pump-step-05": {
+ "duration": 8,
+ "action": "mechanism-operation",
+ "camera": "跟随目标",
+ "audioAssetCode": "PILOT-005-5-AUDIO",
+ "animationAssetId": "",
+ "animationName": ""
+ }
+ }
+ }
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN"
+ },
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急切换",
+ "status": "published",
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/4.jpg",
+ "resources": {
+ "models": [],
+ "animations": []
+ },
+ "legacyBridge": {
+ "schema": "unreal-tran.training-legacy-bridge/v1",
+ "uris": [],
+ "tracks": {
+ "front-pump-step-01": {
+ "audio": ""
+ },
+ "front-pump-step-02": {
+ "audio": ""
+ },
+ "front-pump-step-03": {
+ "audio": ""
+ },
+ "front-pump-step-04": {
+ "audio": ""
+ },
+ "front-pump-step-05": {
+ "audio": ""
+ }
+ }
+ },
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急切换",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-005-L1",
+ "title": "液压泵作用与应急切换引入",
+ "body": "重型支援桥作为应急保障力量的重要组成部分,在抢险救灾中起到了关键作用。在架设与撤收中,液压系统作为装备的动力系统,特别是液压系统的心脏——液压泵,这一关键部件的可靠性直接关系到能否完成桥梁架设撤收作业,面对复杂的战场环境,一旦液压系统出现故障,就会导致桥梁架设撤收作业被迫中断,甚至引发危险状态。\n\n那在战时,如果液压泵损坏,该怎样快速完成架桥任务呢?\n\n通过对液压系统分析可知,重型支援桥液压系统采取了“双泵独立供油”的设计理念,因此,如果其中一个液压泵出现损伤,可以采取应急切换的方法,快速完成装备抢修。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L2",
+ "title": "应急切换是什么",
+ "body": "那什么是应急切换呢?\n\n在装备战场抢救抢修中,切换是一种应急修理方式,其是指通过回路转换或改接,脱开损伤部分,接通备用部分,或者将原来担负非基本功能的完好部分改换到基本功能回路中。\n\n针对重型支援桥,应急切换是指在单个液压泵或取力器出现故障时,通过切换到另一个液压泵继续完成架设或撤收作业的方法。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L3",
+ "title": "双泵供油回路",
+ "body": "重型支援桥是如何实现应急切换的?\n\n我们从原理上来寻找答案,根据液压系统原理,重型支援桥设置有2个供油回路,一个是前泵供油回路,由前泵提供动力,主要负责为托架液压系统和架设架液压系统提供动力,主要由液压油箱、前泵、前泵出油滤油器、托架多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路;另一个是后泵供油回路,由后泵提供动力,主要负责为支腿液压系统和吊机液压系统提供动力,主要由液压油箱、后泵、后泵出油滤油器、支腿多路换向阀连接块内的三通流量调节阀、回油滤油器等构成完整的液压回路。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L4",
+ "title": "打开球阀后的回油问题",
+ "body": "此时,我们应该注意到在两个出油滤油器的出口处设置一球阀,在正常情况下,该球阀处于关闭状态。\n\n那如果将该球阀打开,会出现什么样的情况呢?\n\n此处以托架马达向前为例说明,当操作手操作托架马达向前时,来自负载侧的压力会将托架多路换向阀连接块内的三通流量调节阀关闭,此时来自前泵的液压油无法通过托架多路换向阀连接块内的三通流量调节阀返回液压油箱,应通过托架多路换向阀内部通道进入托架马达换向联,而后进入液压马达,推动液压马达旋转。\n\n但此时液压马达侧负载压力较大,液压油便不会进入液压马达,而是经打开的球阀,进入支腿多路换向阀连接块内,通过支腿多路换向阀内的三通流量调节阀返回液压油箱。\n\n操作托架液压系统和架设架液压系统的任一执行机构时,均会出现上述现象。同理可分析,操作支腿液压系统和吊机液压系统的任一执行机构时,也会出现上述现象。\n\n那在前泵损坏的情况下,可否利用液压系统这一设计理念,完成重型支援桥的架设和撤收作业呢?\n\n通过上述分析,操作重型支援桥任一执行机构时,负载侧压力总会关闭相应的多路换向阀连接块内的三通流量调节阀,使得来自液压泵的液压油从另一多路换向阀连接块内的三通流量调节阀返回液压油箱,因此,如果提前关闭两个多路换向阀连接块内的三通流量调节阀,则无论来自哪个液压泵的液压油均不会返回液压油箱,那通过哪个元件关闭三通流量调节阀呢?",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-005-L5",
+ "title": "自救阀与切换原理",
+ "body": "此时我们应注意到,托架多路换向阀和支腿多路换向阀的M口各串联一自救阀,如果将该自救阀打开,则在接通取力器时,来自液压泵的液压油便将三通流量调节阀关闭。\n\n因此,在实施切换时,还需打开自救阀。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-switch-v2.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-005 图片解说词"
+ }
+ ]
+ },
+ "teachingScene": {
+ "version": "1.5",
+ "schema": "edit3dv4.scene",
+ "sourceVersionId": "551",
+ "name": "真实野外训练场",
+ "sceneType": "OUTDOOR",
+ "sourceProjectId": "457",
+ "objects": [
+ {
+ "semantic": "环境地形",
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "position": [
+ -3.1597256741842212,
+ 10.30528511389146,
+ -40.10715876774236
+ ],
+ "scale": [
+ 1.7159231079037875,
+ 1.7159231079037875,
+ 1.7159231079037875
+ ],
+ "contentUri": "/models/terrain-005-20260917.glb",
+ "mimeType": "model/gltf-binary",
+ "visible": true,
+ "sourceVersionId": "551",
+ "assetCode": "PILOT-TERRAIN-005",
+ "sourceName": "terrain-005-20260917.glb",
+ "sourceNodeName": "",
+ "name": "野外山地训练场",
+ "id": "scene-object-1",
+ "type": "imported",
+ "splitGroupId": ""
+ },
+ {
+ "semantic": "实训装备",
+ "rotation": [
+ 3.0865583248298285e-17,
+ -3.96331642134641e-33,
+ -2.568113739801058e-16
+ ],
+ "position": [
+ 1.5698558846140135e-16,
+ 0.00012730681329620186,
+ 0.13180482636746585
+ ],
+ "scale": [
+ 0.9715696607300419,
+ 0.9715696607300419,
+ 0.9715696607300419
+ ],
+ "contentUri": "/models/bridge-erector-20260916.glb",
+ "mimeType": "model/gltf-binary",
+ "visible": true,
+ "sourceVersionId": "551",
+ "assetCode": "PILOT-VEHICLE-0916",
+ "sourceName": "0916架桥车.glb",
+ "sourceNodeName": "Group",
+ "name": "架桥车前泵互救操作整车模型",
+ "id": "scene-object-2",
+ "type": "imported",
+ "splitGroupId": ""
+ }
+ ],
+ "templateRevision": 1,
+ "rendering": {
+ "background": 11062241
+ }
+ }
+ },
+ "definitionChecksum": "b2a75f19bb8118e135a2b8ac90e12fb3ca78170649eddba87df10bbf7f37d114",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "DRAFT",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": null,
+ "withdrawnAt": null,
+ "archivedAt": null,
+ "lifecycleReason": "",
+ "version": 8,
+ "addTime": 1789566632,
+ "updateTime": "2026-09-16T21:50:33",
+ "serverNow": 1790002126,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+ },
+ {
+ "id": "87",
+ "code": "TASK-VIRTUAL-006",
+ "name": "重型支援桥液压泵应急替代",
+ "description": "原稿:桥梁/文件2/5.jpg、6.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "439",
+ "contentVersionId": "557",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥液压泵应急替代",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥液压泵应急替代",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥液压泵应急替代",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥液压泵应急替代",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "support-vehicle",
+ "sceneId": "support-vehicle",
+ "interactionId": "scene:support-vehicle",
+ "type": "imported",
+ "name": "0916保障车.glb",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "support-vehicle",
+ "modelEditorAssetId": "support-vehicle",
+ "modelEditorModelId": "support-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "0916保障车.glb",
+ "resourceUrl": "/models/bridge-support-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "rescue-hoses",
+ "sceneId": "rescue-hoses",
+ "interactionId": "scene:rescue-hoses",
+ "type": "imported",
+ "name": "双车连接油管.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "rescue-hoses",
+ "modelEditorAssetId": "rescue-hoses",
+ "modelEditorModelId": "rescue-hoses",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "双车连接油管.glb",
+ "resourceUrl": "/models/bridge-rescue-hoses-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥液压泵应急替代",
+ "title": "重型支援桥液压泵应急替代",
+ "operableParts": [
+ "bridge-engine",
+ "front-pump-pto-switch",
+ "bridge-hose-a",
+ "bridge-hose-b",
+ "bridge-return-valve",
+ "front-pump-aux-control-box-cover",
+ "front-pump-rescue-switch",
+ "bridge-filter-valve-1",
+ "bridge-filter-valve-2",
+ "bridge-support-pto",
+ "bridge-supply",
+ "bridge-normal-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "targetId": "bridge-engine",
+ "targetName": "保持架桥车发动机运行",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "guidance": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "warning": "",
+ "success": "保持架桥车运行并断开取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ]
+ },
+ {
+ "targetId": "front-pump-pto-switch",
+ "kind": "rotate",
+ "axis": [
+ 1,
+ 0,
+ 0
+ ],
+ "deltaDegrees": -30,
+ "toleranceDegrees": 8,
+ "directionHint": "断开架桥车取力器"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5AEA5274E6664D43B8C53F55859D5717",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "58",
+ "videoName": "重型支援桥液压泵应急替代 · 1 保持架桥车运行并断开取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "targetId": "bridge-hose-a",
+ "targetName": "连接架桥车快速接头",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "guidance": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "warning": "",
+ "success": "连接两车液压软管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-hose-a",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-hose-a",
+ "kind": "identify",
+ "directionHint": "连接架桥车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-a",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-hose-line",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-hose-b",
+ "kind": "identify",
+ "directionHint": "连接保障车快速接头",
+ "effects": [
+ {
+ "targetId": "bridge-hose-b",
+ "offset": [
+ 0,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-return-line",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B9F2CBFE36274528825899153DB98195",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "59",
+ "videoName": "重型支援桥液压泵应急替代 · 2 连接两车液压软管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "targetId": "bridge-return-valve",
+ "targetName": "打开保障车回油截止阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "guidance": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "warning": "",
+ "success": "打开支援车回油截止阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-return-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-return-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开保障车回油截止阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_983218ACA84345B5B032A5DFA8F08E4E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "60",
+ "videoName": "重型支援桥液压泵应急替代 · 3 打开支援车回油截止阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "targetId": "front-pump-aux-control-box-cover",
+ "targetName": "打开辅助控制盒盖",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开辅助控制盒上的“互救作业”开关。",
+ "guidance": "打开辅助控制盒上的“互救作业”开关。",
+ "warning": "",
+ "success": "打开互救作业开关:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "front-pump-aux-control-box-cover",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "front-pump-aux-control-box-cover",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "deltaDegrees": 100,
+ "toleranceDegrees": 8,
+ "directionHint": "打开辅助控制盒盖"
+ },
+ {
+ "targetId": "front-pump-rescue-switch",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "打开互救作业开关"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_AC0F121CD04B44B5A373BE82D5083AE1",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "61",
+ "videoName": "重型支援桥液压泵应急替代 · 4 打开互救作业开关",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "targetId": "bridge-filter-valve-1",
+ "targetName": "滤油器出口球阀 1",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开两个输油滤油器出口处的连通球阀。",
+ "guidance": "打开两个输油滤油器出口处的连通球阀。",
+ "warning": "",
+ "success": "打开滤油器出口连通球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-filter-valve-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-filter-valve-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 1 个滤油器出口球阀"
+ },
+ {
+ "targetId": "bridge-filter-valve-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "打开第 2 个滤油器出口球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_774F7400E0B54F4696EBDAD800A289C3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "62",
+ "videoName": "重型支援桥液压泵应急替代 · 5 打开滤油器出口连通球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "targetId": "bridge-support-pto",
+ "targetName": "接通保障车取力器",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "guidance": "接通支援车液压系统取力器,向架桥车供油。",
+ "warning": "",
+ "success": "接通支援车液压取力器:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-support-pto",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-support-pto",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 30,
+ "toleranceDegrees": 8,
+ "directionHint": "接通保障车取力器"
+ },
+ {
+ "targetId": "bridge-supply",
+ "kind": "identify",
+ "directionHint": "观察供油示意",
+ "effects": [
+ {
+ "targetId": "bridge-hose-line",
+ "color": 15312947
+ },
+ {
+ "targetId": "bridge-return-line",
+ "color": 3325905
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_64D9ECF315DA41568D936CFEBF28E403",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "63",
+ "videoName": "重型支援桥液压泵应急替代 · 6 接通支援车液压取力器",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "targetId": "bridge-normal-control",
+ "targetName": "操作正常作业控制手柄",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "guidance": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "warning": "该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "success": "按正常步骤操作架桥车:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-normal-control",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-normal-control",
+ "kind": "identify",
+ "directionHint": "操作正常作业控制手柄",
+ "effects": [
+ {
+ "targetId": "bridge-normal-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 14.285714285714286,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,按正常步骤操作架桥车。原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。该项为原稿概括项,本预演不代表后续正常作业已经完成。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_356ADFCC874448D28ADB2DF8067582E8",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "64",
+ "videoName": "重型支援桥液压泵应急替代 · 7 按正常步骤操作架桥车",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-substitute",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 液压泵应急替代",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后桥梁分队分队长指挥操作手试车检查,驾驶员在接通取力器后,操作手按照规定程序试车,此时托架和架设架所有执行机构不动作,随即向分队长报告。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片原文",
+ "enabled": true
+ },
+ "lectures": [
+ {
+ "id": "TASK-VIRTUAL-006-L1",
+ "title": "替代是什么",
+ "body": "替代是指使用性能相似或相近的单元或原材料、油液、仪表等暂时替换损伤或缺少的资源,以恢复工程装备的基本功能或能自救。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ },
+ {
+ "id": "TASK-VIRTUAL-006-L2",
+ "title": "双车互救是什么",
+ "body": "互救是指在架桥车液压系统完全失效时,通过连接保障车的液压系统,利用保障车的液压泵为架桥车提供动力,完成桥梁的架设和撤收作业。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-substitute-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-006 图片解说词"
+ }
+ ]
+ }
+ },
+ "definitionChecksum": "98bab14f24d856208e23e11a4e38baf1ab9a4163a6facbdce4737628476a9aae",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789657622,
+ "withdrawnAt": 1789657622,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 12,
+ "addTime": 1789309631,
+ "updateTime": "2026-09-13T22:27:12",
+ "serverNow": 1790002126,
+ "members": [],
+ "runCount": 0,
+ "pendingReviewCount": 0
+ },
+ {
+ "id": "88",
+ "code": "TASK-VIRTUAL-007",
+ "name": "重型支援桥前泵换件修复",
+ "description": "原稿:桥梁/文件2/7.jpg、8.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "440",
+ "contentVersionId": "558",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥前泵换件修复",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥前泵换件修复",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥前泵换件修复",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥前泵换件修复",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "pump-bags",
+ "sceneId": "pump-bags",
+ "interactionId": "scene:pump-bags",
+ "type": "imported",
+ "name": "3封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "pump-bags",
+ "modelEditorAssetId": "pump-bags",
+ "modelEditorModelId": "pump-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "3封口袋.glb",
+ "resourceUrl": "/models/bridge-pump-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "gasket-paper",
+ "sceneId": "gasket-paper",
+ "interactionId": "scene:gasket-paper",
+ "type": "imported",
+ "name": "牛皮纸.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "gasket-paper",
+ "modelEditorAssetId": "gasket-paper",
+ "modelEditorModelId": "gasket-paper",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "牛皮纸.glb",
+ "resourceUrl": "/models/bridge-paper-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥前泵换件修复",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "pump-bags",
+ "sceneId": "pump-bags",
+ "interactionId": "scene:pump-bags",
+ "type": "imported",
+ "name": "3封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "pump-bags",
+ "modelEditorAssetId": "pump-bags",
+ "modelEditorModelId": "pump-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "3封口袋.glb",
+ "resourceUrl": "/models/bridge-pump-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "gasket-paper",
+ "sceneId": "gasket-paper",
+ "interactionId": "scene:gasket-paper",
+ "type": "imported",
+ "name": "牛皮纸.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "gasket-paper",
+ "modelEditorAssetId": "gasket-paper",
+ "modelEditorModelId": "gasket-paper",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "牛皮纸.glb",
+ "resourceUrl": "/models/bridge-paper-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥前泵换件修复",
+ "title": "重型支援桥前泵换件修复",
+ "operableParts": [
+ "bridge-engine",
+ "bridge-paper",
+ "bridge-tank-valve",
+ "bridge-inlet",
+ "bridge-inlet-bag",
+ "bridge-outlet",
+ "bridge-outlet-bag",
+ "bridge-pump-bolt-1",
+ "bridge-pump-bolt-2",
+ "bridge-pump-bolt-3",
+ "bridge-pump-bolt-4",
+ "bridge-old-pump",
+ "bridge-gasket",
+ "bridge-new-pump",
+ "bridge-fill-cap",
+ "bridge-oil-can",
+ "bridge-test-control"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "停机并初裁牛皮纸",
+ "targetId": "bridge-engine",
+ "targetName": "关闭架桥车发动机",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "guidance": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "warning": "",
+ "success": "停机并初裁牛皮纸:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "关闭架桥车发动机",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 13195851
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "directionHint": "按结合面初裁牛皮纸",
+ "effects": [
+ {
+ "targetId": "bridge-paper",
+ "scale": [
+ 0.85,
+ 1,
+ 0.85
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_1CE71ECA76194F06B098A012B360BB06",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "65",
+ "videoName": "重型支援桥前泵换件修复 · 1 停机并初裁牛皮纸",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "关闭液压油箱出油口一号球阀",
+ "targetId": "bridge-tank-valve",
+ "targetName": "关闭一号出油球阀",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将一号球阀手柄从平行管道转到垂直管道。",
+ "guidance": "将一号球阀手柄从平行管道转到垂直管道。",
+ "warning": "",
+ "success": "关闭液压油箱出油口一号球阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-tank-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "rotate",
+ "steps": [
+ {
+ "targetId": "bridge-tank-valve",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 90,
+ "toleranceDegrees": 8,
+ "directionHint": "关闭一号出油球阀"
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_34129B61FA1F4E628AF295E3EF714364",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "66",
+ "videoName": "重型支援桥前泵换件修复 · 2 关闭液压油箱出油口一号球阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "拆开并包扎进出油管",
+ "targetId": "bridge-inlet",
+ "targetName": "拆开进油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "guidance": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开并包扎进出油管:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-inlet",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "directionHint": "拆开进油管",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ -0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "directionHint": "包扎进油管口",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "directionHint": "拆开出油管",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0.6,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "directionHint": "包扎出油管口",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_533EAE94D45D49A2BECD7E24E48835E6",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "67",
+ "videoName": "重型支援桥前泵换件修复 · 3 拆开并包扎进出油管",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "拆下四个安装螺栓",
+ "targetId": "bridge-pump-bolt-1",
+ "targetName": "拆下第 1 个安装螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "guidance": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "warning": "",
+ "success": "拆下四个安装螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-pump-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_787B4C212CF644AE9A3D8D49DEDCB65E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "68",
+ "videoName": "重型支援桥前泵换件修复 · 4 拆下四个安装螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "取下旧前泵",
+ "targetId": "bridge-old-pump",
+ "targetName": "取下旧前泵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "取下原前泵。",
+ "guidance": "取下原前泵。",
+ "warning": "",
+ "success": "取下旧前泵:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-old-pump",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-old-pump",
+ "kind": "identify",
+ "directionHint": "取下旧前泵",
+ "effects": [
+ {
+ "targetId": "bridge-old-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": false
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,取下旧前泵。取下原前泵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5672FD367E8F41A5A026E3C68E8C8726",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "69",
+ "videoName": "重型支援桥前泵换件修复 · 5 取下旧前泵",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "修裁牛皮纸",
+ "targetId": "bridge-paper",
+ "targetName": "按安装面修裁纸垫",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "guidance": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "warning": "",
+ "success": "修裁牛皮纸:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-paper",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-paper",
+ "kind": "identify",
+ "directionHint": "按安装面修裁纸垫",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "visible": true
+ },
+ {
+ "targetId": "bridge-paper",
+ "visible": false
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_C0E73EC20FD44C608A795A03DE4F7401",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "70",
+ "videoName": "重型支援桥前泵换件修复 · 6 修裁牛皮纸",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "放置牛皮纸垫",
+ "targetId": "bridge-gasket",
+ "targetName": "将纸垫放到取力器结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将裁好的牛皮纸放在取力器接口处。",
+ "guidance": "将裁好的牛皮纸放在取力器接口处。",
+ "warning": "",
+ "success": "放置牛皮纸垫:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-gasket",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-gasket",
+ "kind": "identify",
+ "directionHint": "将纸垫放到取力器结合面",
+ "effects": [
+ {
+ "targetId": "bridge-gasket",
+ "offset": [
+ 2.3,
+ 0,
+ -0.4
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_17FAC41643804A22A8B71A2FF8DCBC28",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "71",
+ "videoName": "重型支援桥前泵换件修复 · 7 放置牛皮纸垫",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-8",
+ "stepCode": "BRIDGE-STEP-8",
+ "actionCode": "COMPLETE_BRIDGE-STEP-8",
+ "number": 8,
+ "title": "安装新液压泵",
+ "targetId": "bridge-new-pump",
+ "targetName": "安装新泵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "guidance": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "warning": "",
+ "success": "安装新液压泵:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-new-pump",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-new-pump",
+ "kind": "identify",
+ "directionHint": "安装新泵",
+ "effects": [
+ {
+ "targetId": "bridge-new-pump",
+ "offset": [
+ -2,
+ 0,
+ 0
+ ]
+ },
+ {
+ "targetId": "front-pump-hydraulic-pump",
+ "visible": true
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 1 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 2 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 3 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "安装第 4 个安装螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-pump-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第8步,安装新液压泵。安装新的液压泵。原稿没有给出拧紧力矩。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_2284ABD91F544E2EB7799E9FA1C4BCF6",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "72",
+ "videoName": "重型支援桥前泵换件修复 · 8 安装新液压泵",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-9",
+ "stepCode": "BRIDGE-STEP-9",
+ "actionCode": "COMPLETE_BRIDGE-STEP-9",
+ "number": 9,
+ "title": "向新泵加注液压油",
+ "targetId": "bridge-fill-cap",
+ "targetName": "打开加油口",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "guidance": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "warning": "",
+ "success": "向新泵加注液压油:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-fill-cap",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-fill-cap",
+ "kind": "identify",
+ "directionHint": "打开加油口",
+ "effects": [
+ {
+ "targetId": "bridge-fill-cap",
+ "offset": [
+ 0,
+ 0.45,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-oil-can",
+ "kind": "identify",
+ "directionHint": "向新泵加注液压油",
+ "effects": [
+ {
+ "targetId": "bridge-oil-can",
+ "offset": [
+ -1.3,
+ 0.6,
+ -0.3
+ ]
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": true
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_BF468C49DDCB462E8E2C75CF8C6BD172",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "73",
+ "videoName": "重型支援桥前泵换件修复 · 9 向新泵加注液压油",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-10",
+ "stepCode": "BRIDGE-STEP-10",
+ "actionCode": "COMPLETE_BRIDGE-STEP-10",
+ "number": 10,
+ "title": "恢复进出油管连接",
+ "targetId": "bridge-inlet-bag",
+ "targetName": "取下进油管封口袋",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "guidance": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "warning": "",
+ "success": "恢复进出油管连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-inlet-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "kind": "identify",
+ "directionHint": "取下进油管封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-inlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-inlet",
+ "kind": "identify",
+ "directionHint": "连接并拧紧进油管",
+ "effects": [
+ {
+ "targetId": "bridge-inlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet-bag",
+ "kind": "identify",
+ "directionHint": "取下出油管封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-outlet-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-outlet",
+ "kind": "identify",
+ "directionHint": "连接并拧紧出油管",
+ "effects": [
+ {
+ "targetId": "bridge-outlet",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_88908FEBE6054EE99087F8653A8C5FAA",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "74",
+ "videoName": "重型支援桥前泵换件修复 · 10 恢复进出油管连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-11",
+ "stepCode": "BRIDGE-STEP-11",
+ "actionCode": "COMPLETE_BRIDGE-STEP-11",
+ "number": 11,
+ "title": "启动设备试验",
+ "targetId": "bridge-engine",
+ "targetName": "启动设备试验",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "guidance": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "warning": "",
+ "success": "启动设备试验:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-engine",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "启动设备试验",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ },
+ {
+ "targetId": "bridge-oil-stream",
+ "visible": false
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-test-control",
+ "kind": "identify",
+ "directionHint": "操作试验手柄并观察",
+ "effects": [
+ {
+ "targetId": "bridge-test-control",
+ "offset": [
+ 0,
+ 0,
+ -0.25
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 9.090909090909092,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第11步,启动设备试验。启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_4D873387CF324AAF9C6D3BE1A72C247E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "75",
+ "videoName": "重型支援桥前泵换件修复 · 11 启动设备试验",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-pump-replace",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/7.jpg、8.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 前泵换件修复",
+ "body": "重型支援桥在将移动架推出至中间位置时,突遇山体滑坡,巨石滚落,飞入底盘车两副车架内,产生巨大撞击声,操作手随即停车检查,发现前泵被飞入巨石击中,导致泵体变形。而后分队长指挥操作手对装备进行动作检查,操作手在托架和架设架均不动作的状态下,手动将托架马达换向联手柄搬至“向前”位置,同时,分队长观察前泵出口处(托架多路换向阀M口)压力表,此时压力表显示0MPa。由此分队长判断前泵损坏。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-pump-replace-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "TASK-VIRTUAL-007 图片原文",
+ "enabled": true
+ },
+ "lectures": []
+ }
+ },
+ "definitionChecksum": "45163b8e73fb2d0733055b71eaa37e0c08f43536bc0cdc766e8ea660b56d33e2",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789395442,
+ "withdrawnAt": 1789395442,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 10,
+ "addTime": 1789309632,
+ "updateTime": "2026-09-13T22:27:13",
+ "serverNow": 1790002126,
+ "members": [
+ {
+ "id": "183",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 1,
+ "pendingReviewCount": 0
+ },
+ {
+ "id": "89",
+ "code": "TASK-VIRTUAL-008",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "description": "原稿:桥梁/文件2/9.jpg、10.jpg",
+ "channel": "VIRTUAL",
+ "assignmentKind": "TRAINING",
+ "executionMode": "PRACTICE",
+ "audienceType": "COMMON",
+ "collaborationMode": "INDIVIDUAL",
+ "digitalHumanAllowed": false,
+ "digitalInstructorAgentSlug": "",
+ "digitalInstructorAgentName": "",
+ "digitalInstructorKnowledgeSource": "AGENT",
+ "contentProjectId": "441",
+ "contentVersionId": "559",
+ "definitionSnapshot": {
+ "schema": "digital-workshop-training-project",
+ "version": 1,
+ "id": "front-pump-rescue-operation-v1",
+ "projectId": "front-pump-rescue-operation-v1",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "status": "published",
+ "trainingMode": "VIRTUAL",
+ "resources": {
+ "models": [
+ {
+ "id": "front-pump-step-vehicle",
+ "modelId": "front-pump-step-vehicle",
+ "name": "架桥车前泵互救操作整车模型",
+ "baseModelName": "架桥车前泵互救操作整车模型",
+ "sourceName": "步骤模型.glb",
+ "resourceUrl": "/models/步骤模型.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 32195288,
+ "revision": 1,
+ "materialPreset": null,
+ "parts": [
+ {
+ "editorId": "",
+ "interactionId": "front-pump-hydraulic-pump",
+ "nodeName": "1液压泵",
+ "sourceNodeName": "1液压泵",
+ "nodePath": "",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-power-take-off",
+ "nodeName": "2取力器",
+ "sourceNodeName": "2取力器",
+ "nodePath": "",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-pto-switch",
+ "nodeName": "2取力器开关",
+ "sourceNodeName": "2取力器开关",
+ "nodePath": "",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-ball-valve-switch",
+ "nodeName": "3球阀开关",
+ "sourceNodeName": "3球阀开关",
+ "nodePath": "",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box",
+ "nodeName": "5辅助控制盒",
+ "sourceNodeName": "5辅助控制盒",
+ "nodePath": "",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-aux-control-box-cover",
+ "nodeName": "5辅助控制盒盖",
+ "sourceNodeName": "5辅助控制盒盖",
+ "nodePath": "",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ },
+ {
+ "editorId": "",
+ "interactionId": "front-pump-rescue-switch",
+ "nodeName": "5互救开关",
+ "sourceNodeName": "5互救开关",
+ "nodePath": "",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "visible": true
+ }
+ ]
+ }
+ ],
+ "animations": []
+ },
+ "task": {
+ "id": "TR-FRONT-PUMP-RESCUE-001",
+ "code": "TR-FRONT-PUMP-RESCUE-001",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "categoryId": "minor-repair",
+ "difficulty": "标准",
+ "level": "标准",
+ "duration": 10,
+ "description": "前泵损坏的情况下如何操作。",
+ "image": "/models/step-model-front-pump-thumb.png",
+ "equipment": "架桥车",
+ "skills": [
+ "液压泵故障识别",
+ "取力器断开与联通",
+ "球阀开启",
+ "互救开关操作"
+ ]
+ },
+ "scenario": {
+ "id": "front-pump-rescue-scenario",
+ "publishedSceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "publishedSceneVersion": "1.0",
+ "baseVisualKey": "front-pump-rescue",
+ "visualKey": "front-pump-rescue",
+ "environmentName": "重型支援桥平衡阀拆拼互换",
+ "sceneLayout": "架桥车整车操作位",
+ "equipmentState": "按步骤操作对应部件",
+ "tools": [],
+ "faults": [],
+ "environment": {
+ "type": "outdoor",
+ "mode": "builtin",
+ "sourceName": "桥梁脚本三维训练场",
+ "resourceUrl": "",
+ "sizeBytes": 0,
+ "lastModified": 0,
+ "embeddedDataUrl": ""
+ },
+ "sceneResource": {
+ "sceneId": "SCENE-FRONT-PUMP-RESCUE-01",
+ "version": "1.0",
+ "sourceKind": "published",
+ "status": "已发布",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "objectCount": 2,
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "valve-bags",
+ "sceneId": "valve-bags",
+ "interactionId": "scene:valve-bags",
+ "type": "imported",
+ "name": "4封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "valve-bags",
+ "modelEditorAssetId": "valve-bags",
+ "modelEditorModelId": "valve-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "4封口袋.glb",
+ "resourceUrl": "/models/bridge-valve-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ],
+ "snapshot": {
+ "schema": "edit3dv4.scene",
+ "version": "1.0",
+ "name": "重型支援桥平衡阀拆拼互换",
+ "presetId": "outdoor-1",
+ "type": "outdoor",
+ "environment": {
+ "presetId": "outdoor-1",
+ "type": "outdoor"
+ },
+ "rendering": {
+ "background": 11062241,
+ "fog": {
+ "color": 11062241,
+ "near": 70,
+ "far": 240
+ },
+ "toneMappingExposure": 1.05,
+ "environment": {
+ "type": "room",
+ "sigma": 0.04
+ },
+ "camera": {
+ "fov": 45,
+ "near": 0.1,
+ "far": 800,
+ "position": [
+ 11,
+ 8,
+ 16
+ ],
+ "target": [
+ 0,
+ 1.5,
+ 2
+ ]
+ }
+ },
+ "objects": [
+ {
+ "id": "front-pump-training-yard",
+ "sceneId": "front-pump-training-yard",
+ "interactionId": "scene:front-pump-training-yard",
+ "type": "imported",
+ "name": "野外山地训练场",
+ "semantic": "场景地形",
+ "assetRole": "environment",
+ "operable": false,
+ "visible": true,
+ "modelId": "front-pump-field-terrain",
+ "modelEditorAssetId": "front-pump-field-terrain",
+ "modelEditorModelId": "front-pump-field-terrain",
+ "modelEditorRevision": 1,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "sourceName": "地形.glb",
+ "resourceUrl": "/models/地形.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 10726472,
+ "fitToScene": true,
+ "fitSize": 140,
+ "groundLevelY": 0,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": "front-pump-rescue-vehicle",
+ "sceneId": "front-pump-rescue-vehicle",
+ "interactionId": "scene:front-pump-rescue-vehicle",
+ "type": "imported",
+ "name": "架桥车前泵互救操作整车模型",
+ "semantic": "实训装备",
+ "assetRole": "training-content",
+ "operable": true,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "front-pump-step-vehicle",
+ "modelEditorAssetId": "front-pump-step-vehicle",
+ "modelEditorModelId": "front-pump-step-vehicle",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [
+ {
+ "interactionId": "front-pump-hydraulic-pump",
+ "sourceNodeName": "1_24柱塞泵3_05前泵3_08新泵",
+ "name": "液压泵",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-power-take-off",
+ "sourceNodeName": "1_25取力器",
+ "name": "取力器",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-pto-switch",
+ "sourceNodeName": "1_25和1_27和2_03和2_08取力器开关",
+ "name": "取力器开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-ball-valve-switch",
+ "sourceNodeName": "1_26球阀开关",
+ "name": "球阀开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box",
+ "sourceNodeName": "1_28辅助控制盒内",
+ "name": "辅助控制盒",
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-aux-control-box-cover",
+ "sourceNodeName": "1_28辅助控制盒盖",
+ "name": "辅助控制盒盖",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "pivotEdge": {
+ "space": "world",
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "edge": "nearest-vertical-edge"
+ },
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ },
+ {
+ "interactionId": "front-pump-rescue-switch",
+ "sourceNodeName": "1_28和2_06互救开关",
+ "name": "互救开关",
+ "capabilities": [
+ "select",
+ "inspect",
+ "mechanism"
+ ],
+ "sceneId": "front-pump-rescue-vehicle",
+ "operable": true,
+ "visible": true,
+ "nodePath": "",
+ "editorId": ""
+ }
+ ],
+ "sourceName": "0916架桥车.glb",
+ "resourceUrl": "/models/bridge-erector-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ },
+ {
+ "id": "valve-bags",
+ "sceneId": "valve-bags",
+ "interactionId": "scene:valve-bags",
+ "type": "imported",
+ "name": "4封口袋.glb",
+ "semantic": "实训装备",
+ "assetRole": "script-accessory",
+ "operable": false,
+ "visible": true,
+ "capabilities": [
+ "select",
+ "inspect"
+ ],
+ "modelId": "valve-bags",
+ "modelEditorAssetId": "valve-bags",
+ "modelEditorModelId": "valve-bags",
+ "modelEditorRevision": 2,
+ "modelOverrides": {},
+ "materialPreset": null,
+ "modelPartTargets": [],
+ "sourceName": "4封口袋.glb",
+ "resourceUrl": "/models/bridge-valve-bags-20260916.glb",
+ "assetKey": "",
+ "mimeType": "model/gltf-binary",
+ "sizeBytes": 37160920,
+ "fitToScene": false,
+ "fitSize": 8,
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 0
+ ],
+ "scale": [
+ 1,
+ 1,
+ 1
+ ],
+ "partOverrides": {}
+ }
+ ]
+ },
+ "assetReferences": [
+ {
+ "resourceUrl": "/models/步骤模型.glb",
+ "sourceName": "步骤模型.glb",
+ "sizeBytes": 32195288,
+ "mimeType": "model/gltf-binary",
+ "assetRole": "training-content"
+ }
+ ]
+ },
+ "accent": "#2d86d8",
+ "background": 11062241,
+ "fog": 11062241,
+ "ground": 7110499,
+ "camera": {
+ "position": [
+ 10.6,
+ 6.4,
+ 13.2
+ ],
+ "target": [
+ 0,
+ 1.9,
+ 0
+ ]
+ },
+ "retainStoredParts": true,
+ "sceneTags": [
+ "新版整车模型",
+ "原位部件操作"
+ ],
+ "sensorFeeds": [],
+ "name": "重型支援桥平衡阀拆拼互换",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "operableParts": [
+ "bridge-small-cloth",
+ "bridge-small-pipe",
+ "bridge-small-bag",
+ "bridge-small-bolt-1",
+ "bridge-small-bolt-2",
+ "bridge-small-bolt-3",
+ "bridge-small-bolt-4",
+ "bridge-small-valve",
+ "bridge-small-plug-1",
+ "bridge-small-plug-2",
+ "bridge-small-seat",
+ "bridge-large-cloth",
+ "bridge-large-pipe",
+ "bridge-large-bag",
+ "bridge-large-bolt-1",
+ "bridge-large-bolt-2",
+ "bridge-large-bolt-3",
+ "bridge-large-bolt-4",
+ "bridge-large-valve",
+ "bridge-large-plug-1",
+ "bridge-large-plug-2",
+ "bridge-large-seat"
+ ]
+ },
+ "tools": [],
+ "faults": [],
+ "steps": [
+ {
+ "id": "BRIDGE-STEP-1",
+ "stepCode": "BRIDGE-STEP-1",
+ "actionCode": "COMPLETE_BRIDGE-STEP-1",
+ "number": 1,
+ "title": "清洗小腔平衡阀",
+ "targetId": "bridge-small-cloth",
+ "targetName": "清洗并擦净阀体",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "guidance": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "warning": "",
+ "success": "清洗小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-cloth",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-small-cloth",
+ "kind": "identify",
+ "directionHint": "清洗并擦净阀体",
+ "effects": [
+ {
+ "targetId": "bridge-small-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_76F80444AA9C4C3183A0EEDF6E655C25",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "76",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 1 清洗小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-2",
+ "stepCode": "BRIDGE-STEP-2",
+ "actionCode": "COMPLETE_BRIDGE-STEP-2",
+ "number": 2,
+ "title": "拆开小腔控制油口管路",
+ "targetId": "bridge-small-pipe",
+ "targetName": "拆开控制油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "guidance": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开小腔控制油口管路:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-pipe",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "directionHint": "拆开控制油管",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "directionHint": "封袋包扎管口",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_EAF5F0A89D454E6FBAFB061C93D2F760",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "77",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 2 拆开小腔控制油口管路",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-3",
+ "stepCode": "BRIDGE-STEP-3",
+ "actionCode": "COMPLETE_BRIDGE-STEP-3",
+ "number": 3,
+ "title": "拆下小腔平衡阀",
+ "targetId": "bridge-small-bolt-1",
+ "targetName": "拆下第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "guidance": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "warning": "",
+ "success": "拆下小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "directionHint": "取下平衡阀",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_981034D69E3047C6B9D1DAE9BBF4F7D4",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "78",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 3 拆下小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-4",
+ "stepCode": "BRIDGE-STEP-4",
+ "actionCode": "COMPLETE_BRIDGE-STEP-4",
+ "number": 4,
+ "title": "封堵小腔油口",
+ "targetId": "bridge-small-plug-1",
+ "targetName": "封堵第 1 个油堵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "guidance": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "warning": "",
+ "success": "封堵小腔油口:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-plug-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "directionHint": "封堵第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "directionHint": "封堵第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "directionHint": "擦净阀座结合面",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_60D40306A9E74E96ADD7641932934BE4",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "79",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 4 封堵小腔油口",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-5",
+ "stepCode": "BRIDGE-STEP-5",
+ "actionCode": "COMPLETE_BRIDGE-STEP-5",
+ "number": 5,
+ "title": "清洗大腔平衡阀",
+ "targetId": "bridge-large-cloth",
+ "targetName": "清洗并擦净阀体",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "guidance": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "warning": "",
+ "success": "清洗大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-cloth",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "identify",
+ "steps": [
+ {
+ "targetId": "bridge-large-cloth",
+ "kind": "identify",
+ "directionHint": "清洗并擦净阀体",
+ "effects": [
+ {
+ "targetId": "bridge-large-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "color": 8492701
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_A6EFEC7D339E4BA8994C525CA3709E2E",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "80",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 5 清洗大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-6",
+ "stepCode": "BRIDGE-STEP-6",
+ "actionCode": "COMPLETE_BRIDGE-STEP-6",
+ "number": 6,
+ "title": "拆开大腔控制油口管路",
+ "targetId": "bridge-large-pipe",
+ "targetName": "拆开控制油管",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "guidance": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "warning": "",
+ "success": "拆开大腔控制油口管路:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-pipe",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "directionHint": "拆开控制油管",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0.55,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "directionHint": "封袋包扎管口",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ -0.65
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D9E1BAFBD89D48019B9445B2A5752E68",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "81",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 6 拆开大腔控制油口管路",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-7",
+ "stepCode": "BRIDGE-STEP-7",
+ "actionCode": "COMPLETE_BRIDGE-STEP-7",
+ "number": 7,
+ "title": "拆下大腔平衡阀",
+ "targetId": "bridge-large-bolt-1",
+ "targetName": "拆下第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "guidance": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "warning": "",
+ "success": "拆下大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": -180,
+ "toleranceDegrees": 8,
+ "directionHint": "拆下第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0.65
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "directionHint": "取下平衡阀",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ 0,
+ 0,
+ 1.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_E83DDAB19F774A418C82EBA7E8EDCF8A",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "82",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 7 拆下大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-8",
+ "stepCode": "BRIDGE-STEP-8",
+ "actionCode": "COMPLETE_BRIDGE-STEP-8",
+ "number": 8,
+ "title": "封堵大腔油口",
+ "targetId": "bridge-large-plug-1",
+ "targetName": "封堵第 1 个油堵",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "guidance": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "warning": "",
+ "success": "封堵大腔油口:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-plug-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "directionHint": "封堵第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "directionHint": "封堵第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "directionHint": "擦净阀座结合面",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 12965080
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第8步,封堵大腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_4FE31068F3EB410BAC72E19F1D1BAF49",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "83",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 8 封堵大腔油口",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-9",
+ "stepCode": "BRIDGE-STEP-9",
+ "actionCode": "COMPLETE_BRIDGE-STEP-9",
+ "number": 9,
+ "title": "准备安装大腔平衡阀",
+ "targetId": "bridge-large-seat",
+ "targetName": "擦净安装结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "guidance": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "warning": "",
+ "success": "准备安装大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-seat",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-seat",
+ "kind": "identify",
+ "directionHint": "擦净安装结合面",
+ "effects": [
+ {
+ "targetId": "bridge-large-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-1",
+ "kind": "identify",
+ "directionHint": "取下第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-plug-2",
+ "kind": "identify",
+ "directionHint": "取下第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-large-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第9步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D0A3CAC5278C4A57AC9BEF13DA2690BC",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "84",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 9 准备安装大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-10",
+ "stepCode": "BRIDGE-STEP-10",
+ "actionCode": "COMPLETE_BRIDGE-STEP-10",
+ "number": 10,
+ "title": "安装大腔平衡阀",
+ "targetId": "bridge-small-valve",
+ "targetName": "将互换平衡阀装到阀座",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "guidance": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "warning": "",
+ "success": "安装大腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-valve",
+ "kind": "identify",
+ "directionHint": "将互换平衡阀装到阀座",
+ "effects": [
+ {
+ "targetId": "bridge-small-valve",
+ "offset": [
+ 3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_0F40DAF3E28F4FA088EA943D9470CAA7",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "85",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 10 安装大腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-11",
+ "stepCode": "BRIDGE-STEP-11",
+ "actionCode": "COMPLETE_BRIDGE-STEP-11",
+ "number": 11,
+ "title": "核对大腔控制油口管路连接",
+ "targetId": "bridge-large-bag",
+ "targetName": "取下封口袋",
+ "mode": "measure",
+ "interaction": "mechanism-operation",
+ "instruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "guidance": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "warning": "请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "success": "核对大腔控制油口管路连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bag",
+ "kind": "identify",
+ "directionHint": "取下封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-large-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-pipe",
+ "kind": "identify",
+ "directionHint": "按记录的处理依据连接管路",
+ "effects": [
+ {
+ "targetId": "bridge-large-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第11步,核对大腔控制油口管路连接。原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用十九号开口扳手拆开管路并包扎”的相反描述。请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_F6427532AF5F40348CEB154F031F2AED",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "86",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 11 核对大腔控制油口管路连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-12",
+ "stepCode": "BRIDGE-STEP-12",
+ "actionCode": "COMPLETE_BRIDGE-STEP-12",
+ "number": 12,
+ "title": "紧固大腔阀体连接螺栓",
+ "targetId": "bridge-large-bolt-1",
+ "targetName": "紧固第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "guidance": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "warning": "",
+ "success": "紧固大腔阀体连接螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-large-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-large-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_F601DB08C8D44934AD3A1B1582E804DB",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "87",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 12 紧固大腔阀体连接螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-13",
+ "stepCode": "BRIDGE-STEP-13",
+ "actionCode": "COMPLETE_BRIDGE-STEP-13",
+ "number": 13,
+ "title": "准备安装小腔平衡阀",
+ "targetId": "bridge-small-seat",
+ "targetName": "擦净安装结合面",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "guidance": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "warning": "",
+ "success": "准备安装小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-seat",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-seat",
+ "kind": "identify",
+ "directionHint": "擦净安装结合面",
+ "effects": [
+ {
+ "targetId": "bridge-small-seat",
+ "color": 14477797
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-1",
+ "kind": "identify",
+ "directionHint": "取下第 1 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-1",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-plug-2",
+ "kind": "identify",
+ "directionHint": "取下第 2 个油堵",
+ "effects": [
+ {
+ "targetId": "bridge-small-plug-2",
+ "offset": [
+ 0,
+ 0.55,
+ 0.5
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_B1BBA42CE5F346228B6B39A51F190CB3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "88",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 13 准备安装小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-14",
+ "stepCode": "BRIDGE-STEP-14",
+ "actionCode": "COMPLETE_BRIDGE-STEP-14",
+ "number": 14,
+ "title": "安装小腔平衡阀",
+ "targetId": "bridge-large-valve",
+ "targetName": "将互换平衡阀装到阀座",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "guidance": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "warning": "",
+ "success": "安装小腔平衡阀:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-large-valve",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-large-valve",
+ "kind": "identify",
+ "directionHint": "将互换平衡阀装到阀座",
+ "effects": [
+ {
+ "targetId": "bridge-large-valve",
+ "offset": [
+ -3.2,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_2BCD762C693242FF8DA420BD9A5D4DF9",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "89",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 14 安装小腔平衡阀",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-15",
+ "stepCode": "BRIDGE-STEP-15",
+ "actionCode": "COMPLETE_BRIDGE-STEP-15",
+ "number": 15,
+ "title": "核对小腔控制油口管路连接",
+ "targetId": "bridge-small-bag",
+ "targetName": "取下封口袋",
+ "mode": "measure",
+ "interaction": "mechanism-operation",
+ "instruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "guidance": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "warning": "请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "success": "核对小腔控制油口管路连接:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bag",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bag",
+ "kind": "identify",
+ "directionHint": "取下封口袋",
+ "effects": [
+ {
+ "targetId": "bridge-small-bag",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-pipe",
+ "kind": "identify",
+ "directionHint": "按记录的处理依据连接管路",
+ "effects": [
+ {
+ "targetId": "bridge-small-pipe",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第15步,核对小腔控制油口管路连接。原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用十九号开口扳手拆开管路并包扎”的相反描述。请记录采用的处理方式及依据,随训练记录提交教员核对;系统不自动判定该项操作正确。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_5F8309BF74344C568C2C9EEFDD9E74BF",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "90",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 15 核对小腔控制油口管路连接",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ },
+ {
+ "id": "BRIDGE-STEP-16",
+ "stepCode": "BRIDGE-STEP-16",
+ "actionCode": "COMPLETE_BRIDGE-STEP-16",
+ "number": 16,
+ "title": "紧固小腔阀体连接螺栓",
+ "targetId": "bridge-small-bolt-1",
+ "targetName": "紧固第 1 个螺栓",
+ "mode": "inspect",
+ "interaction": "mechanism-operation",
+ "instruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "guidance": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "warning": "",
+ "success": "紧固小腔阀体连接螺栓:三维操作已保存",
+ "cameraPolicy": "focus",
+ "action": {
+ "kind": "mechanism-operation",
+ "targetId": "bridge-small-bolt-1",
+ "requiresPlacement": false,
+ "durationMs": 700,
+ "mechanism": {
+ "type": "sequence",
+ "steps": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 1 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-1",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-2",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 2 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-2",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-3",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 3 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-3",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ },
+ {
+ "targetId": "bridge-small-bolt-4",
+ "kind": "rotate",
+ "axis": [
+ 0,
+ 0,
+ 1
+ ],
+ "deltaDegrees": 180,
+ "toleranceDegrees": 8,
+ "directionHint": "紧固第 4 个螺栓",
+ "effects": [
+ {
+ "targetId": "bridge-small-bolt-4",
+ "offset": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "toolId": "",
+ "measurement": "",
+ "assessment": {
+ "weight": 6.25,
+ "requiredDimensions": [
+ "action",
+ "sequence"
+ ],
+ "passPolicy": "all-required"
+ },
+ "audio": {
+ "narrationSource": "digital-generate",
+ "narrationText": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "successCue": "ui",
+ "errorCue": "collision-error",
+ "narrationUrl": "",
+ "narrationAssetCode": "",
+ "narrationVideoAssetCode": "DH_D525E35EDA12402DA13302C2B3874CC3",
+ "digitalHuman": {
+ "enabled": true,
+ "mode": "video",
+ "videoSource": "library",
+ "videoId": "91",
+ "videoName": "重型支援桥平衡阀拆拼互换 · 16 紧固小腔阀体连接螺栓",
+ "appId": "AP_238179E0A10F97927EA49FA3",
+ "videoUrl": "",
+ "generatedVideoUrl": "",
+ "generationStatus": "generated"
+ }
+ }
+ }
+ ],
+ "executionPlan": {
+ "schema": "digital-workshop.training-execution-plan",
+ "version": 1,
+ "entryNodeId": "front-pump-step-01",
+ "traversalOrder": [
+ "front-pump-step-01",
+ "front-pump-step-02",
+ "front-pump-step-03",
+ "front-pump-step-04",
+ "front-pump-step-05"
+ ]
+ },
+ "assessment": {
+ "passScore": 80,
+ "maxScore": 100,
+ "totalScore": 100,
+ "scoringMode": "weighted-rules",
+ "allowRetry": true,
+ "recordProcess": true
+ },
+ "runtime": {
+ "startMode": "practice",
+ "offline": true,
+ "teacherEnabled": true,
+ "teacherVoiceEnabled": true,
+ "actionSoundEnabled": true,
+ "showStepPanel": true,
+ "showProgress": true,
+ "allowReplay": true,
+ "language": "zh-CN",
+ "definitionSource": "SCRIPT",
+ "scriptId": "bridge-balance-valve-swap",
+ "scriptVersion": "4"
+ },
+ "schemaVersion": 1,
+ "source": "桥梁/文件2/9.jpg、10.jpg",
+ "introduction": {
+ "version": 1,
+ "background": {
+ "id": "background",
+ "title": "项目背景 · 平衡阀拆拼互换",
+ "body": "本项目训练重型支援桥平衡阀的拆拼互换。\n\n按脚本依次完成四组操作:\n1. 拆卸小腔油口连接平衡阀。\n2. 拆卸大腔油口连接平衡阀。\n3. 将拆下的平衡阀互换安装到大腔油口。\n4. 将另一平衡阀安装到小腔油口。\n\n操作阶段包含清洗、拆卸、油口封堵和安装等步骤。",
+ "format": "image-text",
+ "imageUrl": "/models/bridge-training/bridge-balance-valve-swap-v4.jpg",
+ "videoUrl": "",
+ "imageAssetCode": "",
+ "videoAssetCode": "",
+ "source": "由9.jpg、10.jpg四组操作归纳的项目概览;原稿未提供故障背景",
+ "enabled": true
+ },
+ "lectures": []
+ }
+ },
+ "definitionChecksum": "ccafb14275197c1105c86f5177636ca55aaf981297ce24441f2af71b8c230dd1",
+ "ownerUserId": "99",
+ "ownerUsername": "root",
+ "ownerName": "内部维护",
+ "departmentId": "1",
+ "departmentName": "",
+ "status": "PUBLISHED",
+ "scheduleStartAt": null,
+ "dueAt": null,
+ "publishedAt": 1789316083,
+ "withdrawnAt": 1789316082,
+ "archivedAt": null,
+ "lifecycleReason": "发布教学任务",
+ "version": 10,
+ "addTime": 1789309633,
+ "updateTime": "2026-09-13T22:27:14",
+ "serverNow": 1790002126,
+ "members": [
+ {
+ "id": "185",
+ "userId": "66",
+ "username": "baidengdeng",
+ "displayName": "白澄澄",
+ "departmentId": "25",
+ "departmentName": "",
+ "memberType": "LEARNER",
+ "roleCode": "LEARNER",
+ "teamCode": "NEUTRAL",
+ "groupCode": "INDIVIDUAL",
+ "positionCode": "LEARNER",
+ "stationCode": "",
+ "sortOrder": 0,
+ "version": 0
+ }
+ ],
+ "runCount": 1,
+ "pendingReviewCount": 0
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/index.html b/reports/bridge-model-acceptance-20260921/index.html
new file mode 100644
index 0000000..7e4bb05
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/index.html
@@ -0,0 +1,57 @@
+四套脚本新模型逐步验收005~008 · 新模型逐步验收
39/39 步完成配置操作;内容完整性另行判断基本对应 9步 · 简化实现 23步 · 待资料确认 5步 · 关键内容缺失 2步
005 正式任务86仍是旧模型;新模型验证入口为116。006~008正式任务已用新模型。
主要缺口:006整机正常作业、007试车;008装拆方向与螺栓分组待确认。交互通关不等同于实装检修合格。
完整 Markdown 报告 ·
逐项证据 根据故障现象确定是哪一个液压泵发生故障
真实前泵可点选确认;故障由脚本预设,没有两个泵之间的诊断分支。
1-动画!B30:D30 · 已验证 1/1 项交互查看原稿和动作目标
首先,根据故障现象确定是哪一个液压泵发生故障
front-pump-hydraulic-pump · undefined

断开架桥车取力器
真实取力器开关可旋转断开;模型命名及原稿均提示该开关实物准确性仍需确认。
1-动画!B31:D31 · 已验证 1/1 项交互查看原稿和动作目标
而后,断开架桥车取力器
front-pump-pto-switch · undefined

将架桥车备胎斜上方链接两个红色滤油器的球阀打开
真实球阀手柄旋转;已验证交互,最终与管轴平行关系仍需实装确认。
1-动画!B32:D32 · 已验证 1/1 项交互查看原稿和动作目标
而后,将备胎斜上方连接两个红色滤油器的球阀打开(手柄由垂直转至平行于管路)
front-pump-ball-valve-switch · undefined

重新联通取力器
同一取力器开关反向旋转复位,接通动作可完成。
1-动画!B33:D33 · 已验证 1/1 项交互查看原稿和动作目标
而后,重新接通取力器
front-pump-pto-switch · undefined

打开辅助控制盒内的“互救”开关
真实盒盖与互救开关分两次操作;盒盖铰链、手柄固定端转轴已有。单泵驱动整车的结果动画未接入。
1-动画!B34:D34 · 已验证 2/2 项交互查看原稿和动作目标
而后,打开辅助控制盒内的"互救"开关
front-pump-aux-control-box-cover · undefined
+front-pump-rescue-switch · undefined

保持架桥车运行并断开取力器
发动机以颜色表示运行,取力器开关可断开;无发动机/液压动力联动。
1-动画!B39:D39 · 已验证 2/2 项交互查看原稿和动作目标
(1)确保架桥车油泵取力器处于脱离状态并保持车辆启动
bridge-engine · identify
+front-pump-pto-switch · rotate

连接两车液压软管
双车、接口盖和两条真实软管存在;移动盖子后显示预成形软管,没有快接插入与锁紧动作。
1-动画!B40:D40 · 已验证 2/2 项交互查看原稿和动作目标
(2)架桥车端接液压油箱右侧快速接头,保障车端接驾驶室外右下方快速接头
bridge-hose-a · identify
+bridge-hose-b · identify

打开支援车回油截止阀
使用保障车独立回油截止阀节点,可旋转打开;实装位置待专业确认。
1-动画!B41:D41 · 已验证 1/1 项交互查看原稿和动作目标
(3)打开保障车液压油箱快速接头处的回油截止阀,保证回油油路畅通
bridge-return-valve · rotate

打开互救作业开关
使用真实盒盖和互救开关;与005是否同一开关,原表列为待澄清项。
1-动画!B42:D42 · 已验证 2/2 项交互查看原稿和动作目标
(4)开启互救工作模式,在辅助控制盒将"互救作业"开关打开
front-pump-aux-control-box-cover · rotate
+front-pump-rescue-switch · rotate

打开滤油器出口连通球阀
两个独立滤油器出口球阀均绑定,必须分别完成操作。
1-动画!B43:D43 · 已验证 2/2 项交互查看原稿和动作目标
(5)打开两出油滤油器出口处的球阀
bridge-filter-valve-1 · rotate
+bridge-filter-valve-2 · rotate

接通支援车液压取力器
保障车GLB只有整车、玻璃、接口盖、回油阀四个网格;取力器开关是代码补充件,供油靠软管变色表示。
1-动画!B44:D44 · 已验证 2/2 项交互查看原稿和动作目标
(6)接通保障车液压泵取力器
bridge-support-pto · rotate
+bridge-supply · identify

按正常步骤操作架桥车
可移动示意手柄结束步骤,但没有“按正常步骤操作架桥车”的整机作业动作。不能据此验收正常作业已完成。
1-动画!B45:D45 · 已验证 1/1 项交互查看原稿和动作目标
(7)按正常操作步骤操作架桥车
bridge-normal-control · identify

停机并初裁牛皮纸
停机着色及牛皮纸缩放已实现;未用裁剪工具沿真实结合面轮廓裁切。
1-动画!B47:D47 · 已验证 2/2 项交互查看原稿和动作目标
(1)桥车熄火,按前泵与取力器连接处形状裁切一块牛皮纸
bridge-engine · identify
+bridge-paper · identify

关闭液压油箱出油口一号球阀
绑定2_07球阀开关02和3-02球阀开关,能关闭;是否对应“1号球阀”须确认编号。
1-动画!B48:D48 · 已验证 1/1 项交互查看原稿和动作目标
(2)关闭液压油箱出口处的 1 号球阀(手柄由平行转至垂直于油管)
bridge-tank-valve · rotate

拆开并包扎进出油管
进出油接头与两封口袋可独立操作;接头只有位移,缺大活动扳手旋松及包扎动作。
1-动画!B49:D49 · 已验证 4/4 项交互查看原稿和动作目标
(3)用大活动扳手拆开前泵进出油管接头,用封口袋封住
bridge-inlet · identify
+bridge-inlet-bag · identify
+bridge-outlet · identify
+bridge-outlet-bag · identify

拆下四个安装螺栓
两组源网格拆成四颗真实螺栓,逐颗旋转拆下;无开口扳手动作,旋转行程为示意。
1-动画!B50:D50 · 已验证 4/4 项交互查看原稿和动作目标
(4)用开口扳手拆下液压泵与取力器处的 4 颗固定螺栓
bridge-pump-bolt-1 · rotate
+bridge-pump-bolt-2 · rotate
+bridge-pump-bolt-3 · rotate
+bridge-pump-bolt-4 · rotate

取下旧前泵
原位旧前泵可取下,安装位置保留。
1-动画!B51:D51 · 已验证 1/1 项交互查看原稿和动作目标
(5)取下前泵
bridge-old-pump · identify

修裁牛皮纸
从初裁纸切换为精裁纸垫几何;没有实际轮廓裁切过程。
1-动画!B52:D52 · 已验证 1/1 项交互查看原稿和动作目标
(6)按液压泵安装形式继续裁剪,使其与取力器贴合完整
bridge-paper · identify

放置牛皮纸垫
纸垫可移动到取力器接口;贴合位置按偏移估算,尚缺结合面形状尺寸验收依据。
1-动画!B53:D53 · 已验证 1/1 项交互查看原稿和动作目标
(7)将裁剪好的牛皮纸贴在取力口处
bridge-gasket · identify

安装新液压泵
新泵归位并安装四颗螺栓;新旧泵复用同一源几何。不能据此验收扭矩或装配尺寸。
1-动画!B54:D54 · 已验证 5/5 项交互查看原稿和动作目标
(8)装上新泵
bridge-new-pump · identify
+bridge-pump-bolt-1 · rotate
+bridge-pump-bolt-2 · rotate
+bridge-pump-bolt-3 · rotate
+bridge-pump-bolt-4 · rotate

向新泵加注液压油
真实加油口盖随新泵移动,可打开;加油壶与油流是补充件,无油量计算及关盖动作。
1-动画!B55:D55 · 已验证 2/2 项交互查看原稿和动作目标
(9)打开新泵注油口,注入液压油
bridge-fill-cap · identify
+bridge-oil-can · identify

恢复进出油管连接
取袋和接头归位可完成;没有“拧紧”的接头旋转及扳手动作。
1-动画!B56:D56 · 已验证 4/4 项交互查看原稿和动作目标
(10)用大活动把手装上前泵进出油管,并拧紧
bridge-inlet-bag · identify
+bridge-inlet · identify
+bridge-outlet-bag · identify
+bridge-outlet · identify

启动设备试验
发动机变色、示意试验手柄可操作;没有整机试车工况、泄漏检查、压力响应与合格判据。
1-动画!B57:D57 · 已验证 2/2 项交互查看原稿和动作目标
(11)起动装备,试车验证
bridge-engine · identify
+bridge-test-control · identify

清洗小腔平衡阀
补充布块移动和阀体变色;没有清洗剂、油污到洁净的材质变化及各管接头擦拭。
1-动画!B59:D59 · 已验证 1/1 项交互查看原稿和动作目标
① 用清洗液清洗平衡阀表面和各油管接头,用抹布擦拭干净
bridge-small-cloth · identify

拆开小腔控制油口管路
真实管接头移开、封口袋就位;无19号开口扳手及旋松过程。
1-动画!B60:D60 · 已验证 2/2 项交互查看原稿和动作目标
② 用 19 号开口扳手拧下控制端油管接头,用封口袋封住管口
bridge-small-pipe · identify
+bridge-small-bag · identify

拆下小腔平衡阀
四颗真实安装螺栓分别拆除并取阀;无8号内六角工具。
1-动画!B61:D61 · 已验证 5/5 项交互查看原稿和动作目标
③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀
bridge-small-bolt-1 · rotate
+bridge-small-bolt-2 · rotate
+bridge-small-bolt-3 · rotate
+bridge-small-bolt-4 · rotate
+bridge-small-valve · identify

封堵小腔油口
两个真实油堵分别封堵;擦净结合面仅为示意阀座平面变色。
1-动画!B62:D62 · 已验证 3/3 项交互查看原稿和动作目标
④ 用 2 个油堵头堵住阀体座上 2 个油口,擦拭阀座表面
bridge-small-plug-1 · identify
+bridge-small-plug-2 · identify
+bridge-small-seat · identify

清洗大腔平衡阀
同小腔,补充布块移动、阀体变色;缺去污材质和管接头清洗。
1-动画!B64:D64 · 已验证 1/1 项交互查看原稿和动作目标
① 清洗平衡阀表面和各油管接头,用抹布擦拭干净
bridge-large-cloth · identify

拆开大腔控制油口管路
真实大腔接头和封口袋可操作;无19号扳手和接头旋松。
1-动画!B65:D65 · 已验证 2/2 项交互查看原稿和动作目标
② 用 19 号开口扳手拧下控制端油管接头,封口袋封住管口
bridge-large-pipe · identify
+bridge-large-bag · identify

拆下大腔平衡阀
四颗真实安装螺栓与大腔阀体可拆除;无8号内六角工具。
1-动画!B66:D66 · 已验证 5/5 项交互查看原稿和动作目标
③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀
bridge-large-bolt-1 · rotate
+bridge-large-bolt-2 · rotate
+bridge-large-bolt-3 · rotate
+bridge-large-bolt-4 · rotate
+bridge-large-valve · identify

封堵大腔油口
两个真实油堵可封堵;阀座接触面仍是代码补充平面。
1-动画!B67:D67 · 已验证 3/3 项交互查看原稿和动作目标
④ 用 2 个油堵头堵住阀体座 2 个油口,擦拭阀座
bridge-large-plug-1 · identify
+bridge-large-plug-2 · identify
+bridge-large-seat · identify

准备安装大腔平衡阀
示意阀座变色及两个油堵移开;缺阀体、阀座双方的擦拭动作。
1-动画!B69:D69 · 已验证 3/3 项交互查看原稿和动作目标
① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头
bridge-large-seat · identify
+bridge-large-plug-1 · identify
+bridge-large-plug-2 · identify

安装大腔平衡阀
小腔来源阀换装到大腔位置,按四螺栓安装面换算朝向;可安装四颗螺栓,缺内六角工具。
1-动画!B70:D70 · 已验证 5/5 项交互查看原稿和动作目标
② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓
bridge-small-valve · identify
+bridge-large-bolt-1 · rotate
+bridge-large-bolt-2 · rotate
+bridge-large-bolt-3 · rotate
+bridge-large-bolt-4 · rotate

核对大腔控制油口管路连接
原表同时写连接拧紧与拆开包扎。当前执行取袋接管并要求记录依据,交教员核对;不能自动判为正确装配。
1-动画!B71:D71 · 已验证 2/2 项交互查看原稿和动作目标
③ 将控制端油管接头封口袋取下并用扳手旋紧
bridge-large-bag · identify
+bridge-large-pipe · identify

紧固大腔阀体连接螺栓
复用第10步同一组四颗螺栓再次旋转。若固定螺栓和阀体连接螺栓是两组,当前缺第二组。
1-动画!B72:D72 · 已验证 4/4 项交互查看原稿和动作目标
④ 用内六角将阀体 4 个连接螺栓旋紧
bridge-large-bolt-1 · rotate
+bridge-large-bolt-2 · rotate
+bridge-large-bolt-3 · rotate
+bridge-large-bolt-4 · rotate

准备安装小腔平衡阀
示意阀座变色及两个油堵移开;缺阀体和阀座双面擦拭。
1-动画!B74:D74 · 已验证 3/3 项交互查看原稿和动作目标
① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头
bridge-small-seat · identify
+bridge-small-plug-1 · identify
+bridge-small-plug-2 · identify

安装小腔平衡阀
大腔来源阀换装到小腔位置并调整朝向;四颗真实螺栓可装,缺内六角工具。
1-动画!B75:D75 · 已验证 5/5 项交互查看原稿和动作目标
② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓
bridge-large-valve · identify
+bridge-small-bolt-1 · rotate
+bridge-small-bolt-2 · rotate
+bridge-small-bolt-3 · rotate
+bridge-small-bolt-4 · rotate

核对小腔控制油口管路连接
与第11步相同的装/拆原文矛盾;保留人工依据与教员核对,不能当作已澄清。
1-动画!B76:D76 · 已验证 2/2 项交互查看原稿和动作目标
③ 将控制端油管接头封口袋取下并用扳手旋紧
bridge-small-bag · identify
+bridge-small-pipe · identify

紧固小腔阀体连接螺栓
复用第14步四颗螺栓。是否另有一组四颗阀体连接螺栓仍待确认。
1-动画!B77:D77 · 已验证 4/4 项交互查看原稿和动作目标
④ 用内六角将阀体 4 个连接螺栓旋紧
bridge-small-bolt-1 · rotate
+bridge-small-bolt-2 · rotate
+bridge-small-bolt-3 · rotate
+bridge-small-bolt-4 · rotate
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/new-model-runtime.json b/reports/bridge-model-acceptance-20260921/new-model-runtime.json
new file mode 100644
index 0000000..2e3de22
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/new-model-runtime.json
@@ -0,0 +1,5573 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 116 first view",
+ "state": {
+ "id": "front-pump-hydraulic-pump",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": 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": 1035.2020303264044,
+ "y": 508.95441504276926,
+ "localX": 572.2020303264044,
+ "localY": 320.45441504276926,
+ "visible": true
+ },
+ "bounds": [
+ 0.10935033827385107,
+ 0.13537495848346393,
+ 0.1972360067697554
+ ],
+ "projected": {
+ "x": 564.9148419132101,
+ "y": 314.1958643764656,
+ "w": 14.498500962929938,
+ "h": 12.630497316989477
+ },
+ "pivot": [
+ -0.12817634914491466,
+ 0.6152234412401882,
+ 1.6466822177405493
+ ],
+ "pickPoints": [
+ {
+ "x": 1035.1640923946752,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1032.9893172502357,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1037.3388675391147,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1030.8145421057961,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1039.513642683554,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1028.6397669613566,
+ "y": 509.0111130349603
+ },
+ {
+ "x": 1035.1640923946752,
+ "y": 507.1165384374119
+ },
+ {
+ "x": 1032.9893172502357,
+ "y": 507.1165384374119
+ },
+ {
+ "x": 1037.3388675391147,
+ "y": 507.1165384374119
+ },
+ {
+ "x": 1035.1640923946752,
+ "y": 510.9056876325087
+ },
+ {
+ "x": 1032.9893172502357,
+ "y": 510.9056876325087
+ },
+ {
+ "x": 1037.3388675391147,
+ "y": 510.9056876325087
+ },
+ {
+ "x": 1030.8145421057961,
+ "y": 510.9056876325087
+ },
+ {
+ "x": 1028.6397669613566,
+ "y": 510.9056876325087
+ },
+ {
+ "x": 1037.3388675391147,
+ "y": 505.22196383986346
+ },
+ {
+ "x": 1035.1640923946752,
+ "y": 512.8002622300571
+ },
+ {
+ "x": 1032.9893172502357,
+ "y": 512.8002622300571
+ },
+ {
+ "x": 1030.8145421057961,
+ "y": 512.8002622300571
+ },
+ {
+ "x": 1028.6397669613566,
+ "y": 512.8002622300571
+ },
+ {
+ "x": 1032.9893172502357,
+ "y": 514.6948368276055
+ }
+ ],
+ "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": 979.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
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 3.3306690738754696e-16,
+ "maxGap": 0.001553249851667493
+ },
+ "modelSources": [
+ {
+ "name": "terrain-005-20260917.glb",
+ "url": "/models/terrain-005-20260917.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 116 digital-human video playback",
+ "pass": true,
+ "media": {
+ "width": 480,
+ "height": 640,
+ "duration": 4.96,
+ "currentTime": 0.199797
+ }
+ },
+ {
+ "name": "task 116 step 1 operation 1",
+ "target": "front-pump-hydraulic-pump",
+ "drag": false,
+ "distance": 2.5322003064450387,
+ "projected": {
+ "x": 705.1374278203289,
+ "y": 222.81008281733952,
+ "w": 91.72522226722424,
+ "h": 113.44866354779649
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 116 step 2 operation 1",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.5322003064450382,
+ "projected": {
+ "x": 709.0006218687124,
+ "y": 263.03238137723895,
+ "w": 83.99875626257528,
+ "h": 33.02359173097284
+ },
+ "labels": 2
+ },
+ {
+ "name": "task 116 step 3 operation 1",
+ "target": "front-pump-ball-valve-switch",
+ "drag": true,
+ "distance": 2.5322003064450382,
+ "projected": {
+ "x": 742.9515540010899,
+ "y": 259.69722037090486,
+ "w": 16.09689199781792,
+ "h": 40.448933045487706
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 116 step 4 operation 1",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.532200306445038,
+ "projected": {
+ "x": 706.5903063267405,
+ "y": 244.56976987545553,
+ "w": 88.81938734651817,
+ "h": 69.87239851232502
+ },
+ "labels": 2
+ },
+ {
+ "name": "task 116 step 5 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.5322003064450387,
+ "projected": {
+ "x": 699.1228274833262,
+ "y": 249.20856621347718,
+ "w": 103.75434503334805,
+ "h": 60.651670340400244
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 116 step 5 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.5322003064450382,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104513
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 15.259438616959523,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1013.602930281089,
+ "y": 496.20521864360535,
+ "localX": 550.602930281089,
+ "localY": 307.70521864360535,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 536.7233791838236,
+ "y": 296.80898942798194,
+ "w": 27.71510311051361,
+ "h": 22.135003784886635
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-pto-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-a",
+ "glowing": true
+ },
+ {
+ "name": "bridge-hose-b",
+ "glowing": true
+ },
+ {
+ "name": "bridge-return-valve",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-aux-control-box-cover",
+ "glowing": true
+ },
+ {
+ "name": "front-pump-rescue-switch",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-filter-valve-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-support-pto",
+ "glowing": true
+ },
+ {
+ "name": "bridge-supply",
+ "glowing": true
+ },
+ {
+ "name": "bridge-normal-control",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 10.052979982711939,
+ 6.245383343985843,
+ 11.135487493970418
+ ],
+ "target": [
+ 1.197076935786147,
+ 1.0123497253478748,
+ -0.13566183848059057
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 949.578125,
+ "y": 523.4375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "保持架桥车发动机运行",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 2209160
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "0916保障车.glb",
+ "url": "/models/bridge-support-20260916.glb"
+ },
+ {
+ "name": "双车连接油管.glb",
+ "url": "/models/bridge-rescue-hoses-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 87 digital-human video playback",
+ "pass": true,
+ "media": {
+ "width": 480,
+ "height": 640,
+ "duration": 7.84,
+ "currentTime": 0.213652
+ }
+ },
+ {
+ "name": "task 87 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 87 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 1 operation 2",
+ "target": "front-pump-pto-switch",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 709.0006218687108,
+ "y": 263.03238137723895,
+ "w": 83.99875626257597,
+ "h": 33.023591730972726
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 2 operation 1",
+ "target": "bridge-hose-a",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 716.5751089643882,
+ "y": 235.1456238637226,
+ "w": 68.84978207122037,
+ "h": 89.46479408676683
+ },
+ "labels": 8
+ },
+ {
+ "name": "task 87 step 2 operation 2",
+ "target": "bridge-hose-b",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 716.5749979728365,
+ "y": 235.14564999479725,
+ "w": 68.85000405432356,
+ "h": 89.46473781586755
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 87 step 3 operation 1",
+ "target": "bridge-return-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.7555261168103,
+ "y": 264.6492748792297,
+ "w": 116.48894776638076,
+ "h": 29.793580229157556
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 4 operation 1",
+ "target": "front-pump-aux-control-box-cover",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 699.1228274833263,
+ "y": 249.20856621347716,
+ "w": 103.75434503334805,
+ "h": 60.651670340400216
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 87 step 4 operation 2",
+ "target": "front-pump-rescue-switch",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 748.0136078101959,
+ "y": 276.39727764862505,
+ "w": 5.972784379609266,
+ "h": 6.274247470104569
+ },
+ "labels": 8
+ },
+ {
+ "name": "task 87 step 5 operation 1",
+ "target": "bridge-filter-valve-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 692.6892130062968,
+ "y": 264.8954801602761,
+ "w": 116.62157398740703,
+ "h": 29.326181621991225
+ },
+ "labels": 4
+ },
+ {
+ "name": "task 87 step 5 operation 2",
+ "target": "bridge-filter-valve-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 5
+ },
+ {
+ "name": "task 87 step 6 operation 1",
+ "target": "bridge-support-pto",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 713.0499877342736,
+ "y": 234.09443864742252,
+ "w": 75.90002453145382,
+ "h": 91.19538520202474
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 87 step 6 operation 2",
+ "target": "bridge-supply",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 716.8964976099176,
+ "y": 231.9366905664349,
+ "w": 68.2070047801659,
+ "h": 95.45439604586647
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 87 step 7 operation 1",
+ "target": "bridge-normal-control",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 713.0499877342731,
+ "y": 234.094438647423,
+ "w": 75.90002453145382,
+ "h": 91.19538520202471
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 88 first view",
+ "state": {
+ "id": "bridge-engine",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "3封口袋.glb",
+ "url": "/models/bridge-pump-bags-20260916.glb"
+ },
+ {
+ "name": "牛皮纸.glb",
+ "url": "/models/bridge-paper-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 14.031448510979672,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1065.8717047547857,
+ "y": 520.1103707503868,
+ "localX": 602.8717047547856,
+ "localY": 331.6103707503868,
+ "visible": true
+ },
+ "bounds": [
+ 0.5236417353153229,
+ 0.2973613739013672,
+ 0.33587217330932617
+ ],
+ "projected": {
+ "x": 586.588293543999,
+ "y": 318.3601303469393,
+ "w": 32.50593271809521,
+ "h": 26.99337044201178
+ },
+ "pivot": [
+ 0.0013664013147354215,
+ 0.6606327220894567,
+ 1.9416658949851993
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0,
+ 0.6246950475544243,
+ 0.7808688094430303
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-engine",
+ "glowing": true
+ },
+ {
+ "name": "bridge-paper",
+ "glowing": true
+ },
+ {
+ "name": "bridge-tank-valve",
+ "glowing": true
+ },
+ {
+ "name": "bridge-inlet",
+ "glowing": true
+ },
+ {
+ "name": "bridge-inlet-bag",
+ "glowing": true
+ },
+ {
+ "name": "bridge-outlet",
+ "glowing": true
+ },
+ {
+ "name": "bridge-outlet-bag",
+ "glowing": true
+ },
+ {
+ "name": "bridge-pump-bolt-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-pump-bolt-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-pump-bolt-3",
+ "glowing": true
+ },
+ {
+ "name": "bridge-pump-bolt-4",
+ "glowing": true
+ },
+ {
+ "name": "bridge-old-pump",
+ "glowing": true
+ },
+ {
+ "name": "bridge-new-pump",
+ "glowing": true
+ },
+ {
+ "name": "bridge-fill-cap",
+ "glowing": true
+ },
+ {
+ "name": "bridge-oil-can",
+ "glowing": true
+ },
+ {
+ "name": "bridge-test-control",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 7.635968123741495,
+ 5.824259496034759,
+ 10.228451513768084
+ ],
+ "target": [
+ -0.5072637958824635,
+ 1.0123497253478748,
+ -0.13566183848059055
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 1001.828125,
+ "y": 549.84375,
+ "w": 128,
+ "h": 30,
+ "id": "bridge-engine"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-engine",
+ "kind": "identify",
+ "directionHint": "关闭架桥车发动机",
+ "effects": [
+ {
+ "targetId": "bridge-engine",
+ "color": 13195851
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ 0.0013663864135741999,
+ 0.6606327220894567,
+ 1.941665954589844
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "3封口袋.glb",
+ "url": "/models/bridge-pump-bags-20260916.glb"
+ },
+ {
+ "name": "牛皮纸.glb",
+ "url": "/models/bridge-paper-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 88 digital-human video playback",
+ "pass": true,
+ "media": {
+ "width": 480,
+ "height": 640,
+ "duration": 6.64,
+ "currentTime": 0.198695
+ }
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-engine",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 1 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 662.9122984279823,
+ "y": 212.61469837836887,
+ "w": 176.17540314403573,
+ "h": 135.83320316240622
+ },
+ "labels": 13
+ },
+ {
+ "name": "task 88 step 1 operation 2",
+ "target": "bridge-paper",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 705.9165139407212,
+ "y": 239.86053373487454,
+ "w": 90.16697211855751,
+ "h": 79.34773529760554
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 2 operation 1",
+ "target": "bridge-tank-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 693.775094204158,
+ "y": 260.62023383483773,
+ "w": 114.44981159168424,
+ "h": 37.8674482852453
+ },
+ "labels": 2
+ },
+ {
+ "name": "task 88 step 3 operation 1",
+ "target": "bridge-inlet",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 707.1967494441142,
+ "y": 237.945529196464,
+ "w": 87.60650111177142,
+ "h": 83.2926560456832
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 88 step 3 operation 2",
+ "target": "bridge-inlet-bag",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 719.738401122812,
+ "y": 229.76683300030663,
+ "w": 62.52319775437593,
+ "h": 99.82890798692472
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 88 step 3 operation 3",
+ "target": "bridge-outlet",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 741.025696329206,
+ "y": 231.15000943769226,
+ "w": 19.9486073415884,
+ "h": 96.85227290736358
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 3 operation 4",
+ "target": "bridge-outlet-bag",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 722.482903100959,
+ "y": 233.9689954606381,
+ "w": 57.034193798082015,
+ "h": 91.3325596016823
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-1",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-1",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 4 operation 1",
+ "target": "bridge-pump-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8326080501041,
+ "y": 244.29517714071181,
+ "w": 52.33478389979166,
+ "h": 70.61770246344639
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-2",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-2",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 4 operation 2",
+ "target": "bridge-pump-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8326086080093,
+ "y": 244.29525439887468,
+ "w": 52.33478278398138,
+ "h": 70.61754613937924
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-3",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-3",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 4 operation 3",
+ "target": "bridge-pump-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8325955003246,
+ "y": 244.29535205442357,
+ "w": 52.334808999350685,
+ "h": 70.61735074287185
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-4",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-4",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 4 operation 4",
+ "target": "bridge-pump-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8325949424191,
+ "y": 244.29527479625744,
+ "w": 52.33481011516176,
+ "h": 70.61750706693817
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 5 operation 1",
+ "target": "bridge-old-pump",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 724.7874722647147,
+ "y": 230.84458978011276,
+ "w": 52.42505547057067,
+ "h": 99.33074988238945
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 88 step 6 operation 1",
+ "target": "bridge-paper",
+ "drag": false,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 709.2811380231877,
+ "y": 236.34267360712718,
+ "w": 83.43772395362487,
+ "h": 86.38345555310022
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 7 operation 1",
+ "target": "bridge-gasket",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 704.0515203420828,
+ "y": 242.08178309313172,
+ "w": 93.89695931583458,
+ "h": 74.90523658109112
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 8 operation 1",
+ "target": "bridge-new-pump",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 724.7874722647147,
+ "y": 230.84458978011264,
+ "w": 52.42505547057067,
+ "h": 99.33074988238951
+ },
+ "labels": 15
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-1",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-1",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 8 operation 2",
+ "target": "bridge-pump-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8326080501041,
+ "y": 244.29517714071105,
+ "w": 52.33478389979166,
+ "h": 70.61770246344636
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 8 operation 3",
+ "target": "bridge-pump-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 736.1718115445386,
+ "y": 259.565551425622,
+ "w": 29.656376910922745,
+ "h": 40.01660947898159
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 88 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-pump-bolt-3",
+ "pass": true
+ },
+ {
+ "name": "task 88 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-pump-bolt-3",
+ "pass": true
+ },
+ {
+ "name": "task 88 step 8 operation 4",
+ "target": "bridge-pump-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 724.8325955003245,
+ "y": 244.29535205442357,
+ "w": 52.3348089993508,
+ "h": 70.61735074287185
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 8 operation 5",
+ "target": "bridge-pump-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 736.1718038007041,
+ "y": 259.5655629841389,
+ "w": 29.65639239859172,
+ "h": 40.01658733793164
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 88 step 9 operation 1",
+ "target": "bridge-fill-cap",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 732.9405581479806,
+ "y": 261.479802690801,
+ "w": 36.11888370403881,
+ "h": 36.10066689076939
+ },
+ "labels": 7
+ },
+ {
+ "name": "task 88 step 9 operation 2",
+ "target": "bridge-oil-can",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 722.143424467501,
+ "y": 228.35168938173362,
+ "w": 57.7131510649981,
+ "h": 101.81297266046417
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 88 step 10 operation 1",
+ "target": "bridge-inlet-bag",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 719.7384011228119,
+ "y": 229.76683300030697,
+ "w": 62.52319775437593,
+ "h": 99.82890798692438
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 88 step 10 operation 2",
+ "target": "bridge-inlet",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 707.1967494441142,
+ "y": 237.9455291964638,
+ "w": 87.60650111177142,
+ "h": 83.29265604568323
+ },
+ "labels": 7
+ },
+ {
+ "name": "task 88 step 10 operation 3",
+ "target": "bridge-outlet-bag",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 722.482903100959,
+ "y": 233.96899546063767,
+ "w": 57.034193798082015,
+ "h": 91.33255960168273
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 88 step 10 operation 4",
+ "target": "bridge-outlet",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 741.0256963292057,
+ "y": 231.15000943769226,
+ "w": 19.948607341588513,
+ "h": 96.85227290736358
+ },
+ "labels": 3
+ },
+ {
+ "name": "task 88 step 11 operation 1",
+ "target": "bridge-engine",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 701.0836357758566,
+ "y": 241.61323634733586,
+ "w": 99.83272844828696,
+ "h": 76.97214845869686
+ },
+ "labels": 14
+ },
+ {
+ "name": "task 88 step 11 operation 2",
+ "target": "bridge-test-control",
+ "drag": true,
+ "distance": 2.6062982499292247,
+ "projected": {
+ "x": 713.0499877342731,
+ "y": 234.094438647423,
+ "w": 75.90002453145382,
+ "h": 91.19538520202471
+ },
+ "labels": 2
+ },
+ {
+ "name": "task 89 first view",
+ "state": {
+ "id": "bridge-small-cloth",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": false,
+ "lid": {
+ "position": [
+ 0,
+ 0,
+ 0
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ },
+ "evidenceCount": 0,
+ "grounding": null,
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "4封口袋.glb",
+ "url": "/models/bridge-valve-bags-20260916.glb"
+ }
+ ],
+ "hdr": "venice_sunset_1k",
+ "distance": 13.128428964347265,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1042.5644838107387,
+ "y": 468.8732551756536,
+ "localX": 579.5644838107388,
+ "localY": 280.3732551756536,
+ "visible": true
+ },
+ "bounds": [
+ 0.03999999910593033,
+ 0.02500000037252903,
+ 0.004000000189989805
+ ],
+ "projected": {
+ "x": 578.6785180850379,
+ "y": 279.47756640303066,
+ "w": 1.7728053091440188,
+ "h": 1.7927080345392596
+ },
+ "pivot": [
+ -0.26305295361571907,
+ 1.4348609031173236,
+ 1.6002156960638991
+ ],
+ "pickPoints": [],
+ "freePoints": [],
+ "tip": null,
+ "front": [
+ 0.4982728791224398,
+ 0.8304547985373997,
+ 0.2491364395612199
+ ],
+ "workflowCoverage": [
+ {
+ "name": "bridge-small-cloth",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-pipe",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-bag",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-bolt-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-bolt-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-bolt-3",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-bolt-4",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-valve",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-plug-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-plug-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-small-seat",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-cloth",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-pipe",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-bag",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-bolt-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-bolt-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-bolt-3",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-bolt-4",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-valve",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-plug-1",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-plug-2",
+ "glowing": true
+ },
+ {
+ "name": "bridge-large-seat",
+ "glowing": true
+ }
+ ],
+ "camera": [
+ 7.619159270010263,
+ 5.514580236893299,
+ 9.561450032540323
+ ],
+ "target": [
+ -5.7220459037665705e-8,
+ 1.0123497253478748,
+ -0.13566183848059055
+ ],
+ "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
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "opacity": 1,
+ "baseline": 1,
+ "side": 2
+ },
+ {
+ "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": 972.5625,
+ "y": 485.765625,
+ "w": 140,
+ "h": 30,
+ "id": "bridge-small-cloth"
+ }
+ ],
+ "narration": [
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ },
+ {
+ "video": true,
+ "fallback": true
+ }
+ ],
+ "operationData": {
+ "targetId": "bridge-small-cloth",
+ "kind": "identify",
+ "directionHint": "清洗并擦净阀体",
+ "effects": [
+ {
+ "targetId": "bridge-small-cloth",
+ "offset": [
+ 0.7,
+ 0,
+ -0.7
+ ]
+ },
+ {
+ "targetId": "bridge-small-valve",
+ "color": 8492701
+ }
+ ],
+ "index": 0,
+ "axis": [
+ 0,
+ 1,
+ 0
+ ],
+ "deltaDegrees": 0,
+ "toleranceDegrees": 6
+ },
+ "position": [
+ -0.26305295361571907,
+ 1.4348609031173236,
+ 1.6002156960638991
+ ],
+ "quaternion": [
+ 0,
+ 0,
+ 0,
+ 1
+ ]
+ }
+ },
+ {
+ "name": "new model source and ground contacts",
+ "pass": true,
+ "grounding": {
+ "samples": 446,
+ "minGap": 0,
+ "maxGap": 0.001598701477051434
+ },
+ "modelSources": [
+ {
+ "name": "地形.glb",
+ "url": "/models/地形.glb"
+ },
+ {
+ "name": "0916架桥车.glb",
+ "url": "/models/bridge-erector-20260916.glb"
+ },
+ {
+ "name": "4封口袋.glb",
+ "url": "/models/bridge-valve-bags-20260916.glb"
+ }
+ ]
+ },
+ {
+ "name": "task 89 digital-human video playback",
+ "pass": true,
+ "media": {
+ "width": 480,
+ "height": 640,
+ "duration": 5.96,
+ "currentTime": 0.268403
+ }
+ },
+ {
+ "name": "task 89 step 1 operation 1",
+ "target": "bridge-small-cloth",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 713.0551617039472,
+ "y": 199.8762788489029,
+ "w": 76.16745557914555,
+ "h": 159.32132156424493
+ },
+ "labels": 2
+ },
+ {
+ "name": "task 89 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-small-pipe",
+ "pass": true
+ },
+ {
+ "name": "task 89 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-small-pipe",
+ "pass": true
+ },
+ {
+ "name": "task 89 step 2 operation 1",
+ "target": "bridge-small-pipe",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.7712670189921,
+ "y": 258.4566105517278,
+ "w": 34.46759426227413,
+ "h": 42.148721396905046
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 89 explicit isolate for overlapping workflow targets",
+ "targetId": "bridge-small-bag",
+ "pass": true
+ },
+ {
+ "name": "task 89 internal target inspected with explicit translucent tool",
+ "targetId": "bridge-small-bag",
+ "pass": true
+ },
+ {
+ "name": "task 89 step 2 operation 2",
+ "target": "bridge-small-bag",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 726.5989007241701,
+ "y": 249.54502501185422,
+ "w": 48.82519512972635,
+ "h": 59.96985961527329
+ },
+ "labels": 1
+ },
+ {
+ "name": "task 89 step 3 operation 1",
+ "target": "bridge-small-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1020178600464,
+ "y": 225.56375225947545,
+ "w": 41.90386337448217,
+ "h": 107.35748348612509
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 3 operation 2",
+ "target": "bridge-small-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.101956369818,
+ "y": 225.56374836709816,
+ "w": 41.90398643298022,
+ "h": 107.35748980923583
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 3 operation 3",
+ "target": "bridge-small-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1020468486516,
+ "y": 225.56377086244714,
+ "w": 41.90380531004871,
+ "h": 107.35744460559681
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 3 operation 4",
+ "target": "bridge-small-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1019563698185,
+ "y": 225.56374836709918,
+ "w": 41.903986432980105,
+ "h": 107.35748980923628
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 3 operation 5",
+ "target": "bridge-small-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 711.8571182536385,
+ "y": 219.86745936164928,
+ "w": 79.15370015179201,
+ "h": 119.57708505374839
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 4 operation 1",
+ "target": "bridge-small-plug-1",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 734.3815583742876,
+ "y": 255.3961759678843,
+ "w": 33.267681147020085,
+ "h": 48.250084623901046
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 4 operation 2",
+ "target": "bridge-small-plug-2",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 734.3815517145613,
+ "y": 255.39616492373926,
+ "w": 33.26769452636461,
+ "h": 48.250106768818114
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 4 operation 3",
+ "target": "bridge-small-seat",
+ "drag": false,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 694.2254127192891,
+ "y": 230.54587309368728,
+ "w": 113.84869051687656,
+ "h": 98.67663471942606
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 5 operation 1",
+ "target": "bridge-large-cloth",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 713.1760583557226,
+ "y": 247.71474757026036,
+ "w": 75.53189964988792,
+ "h": 63.5320173357903
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 6 operation 1",
+ "target": "bridge-large-pipe",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 741.0840357184769,
+ "y": 267.4472527643896,
+ "w": 19.838408870971875,
+ "h": 24.17192181208327
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 6 operation 2",
+ "target": "bridge-large-bag",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 737.1726535850977,
+ "y": 262.5403979585547,
+ "w": 27.66772419367055,
+ "h": 33.98296750672006
+ },
+ "labels": 6
+ },
+ {
+ "name": "task 89 step 7 operation 1",
+ "target": "bridge-large-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 733.3751860063155,
+ "y": 229.20308467431818,
+ "w": 35.30982526493153,
+ "h": 99.9963490514744
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 7 operation 2",
+ "target": "bridge-large-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.3752195890214,
+ "y": 229.20310886483736,
+ "w": 35.30975799233249,
+ "h": 99.9962990864201
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 7 operation 3",
+ "target": "bridge-large-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.375213472072,
+ "y": 229.2031071048878,
+ "w": 35.309770234411076,
+ "h": 99.99630261839388
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 7 operation 4",
+ "target": "bridge-large-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.3751860063161,
+ "y": 229.2030846743188,
+ "w": 35.309825264931646,
+ "h": 99.99634905147445
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 7 operation 5",
+ "target": "bridge-large-valve",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 710.2512801908184,
+ "y": 220.69540001554415,
+ "w": 82.42293895668968,
+ "h": 118.27900785582202
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 8 operation 1",
+ "target": "bridge-large-plug-1",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 734.9945559273345,
+ "y": 257.00320508985214,
+ "w": 32.03634955820576,
+ "h": 45.03950738026572
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 8 operation 2",
+ "target": "bridge-large-plug-2",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 734.994552597162,
+ "y": 257.0031995668463,
+ "w": 32.03635624673643,
+ "h": 45.03951845272877
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 8 operation 3",
+ "target": "bridge-large-seat",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 694.2254127192888,
+ "y": 230.5458730936875,
+ "w": 113.84869051687667,
+ "h": 98.67663471942629
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 9 operation 1",
+ "target": "bridge-large-seat",
+ "drag": false,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 694.2254127192888,
+ "y": 230.5458730936875,
+ "w": 113.84869051687667,
+ "h": 98.67663471942629
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 9 operation 2",
+ "target": "bridge-large-plug-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 734.9945559273348,
+ "y": 257.0032050898515,
+ "w": 32.03634955820564,
+ "h": 45.03950738026566
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 9 operation 3",
+ "target": "bridge-large-plug-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 734.9945525971626,
+ "y": 257.00319956684586,
+ "w": 32.03635624673632,
+ "h": 45.0395184527286
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 10 operation 1",
+ "target": "bridge-small-valve",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 711.8571182536396,
+ "y": 219.86745936164863,
+ "w": 79.1537001517919,
+ "h": 119.57708505374842
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 10 operation 2",
+ "target": "bridge-large-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 727.8056064333605,
+ "y": 223.0985601694498,
+ "w": 46.58451268827946,
+ "h": 112.34291741697973
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 10 operation 3",
+ "target": "bridge-large-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 727.80562222695,
+ "y": 223.09856613143972,
+ "w": 46.58448124721065,
+ "h": 112.34290433062625
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 10 operation 4",
+ "target": "bridge-large-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 727.805617382866,
+ "y": 223.09856468984,
+ "w": 46.584490959481855,
+ "h": 112.34290723954146
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 10 operation 5",
+ "target": "bridge-large-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 727.8056064333605,
+ "y": 223.09856016944983,
+ "w": 46.58451268827946,
+ "h": 112.34291741697982
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 11 operation 1",
+ "target": "bridge-large-bag",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 737.1726535850976,
+ "y": 262.54039795855493,
+ "w": 27.66772419367055,
+ "h": 33.98296750672006
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 11 operation 2",
+ "target": "bridge-large-pipe",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 741.0840357184771,
+ "y": 267.447252764394,
+ "w": 19.838408870971875,
+ "h": 24.17192181208344
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 12 operation 1",
+ "target": "bridge-large-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 733.3751860063155,
+ "y": 229.20308467431818,
+ "w": 35.30982526493153,
+ "h": 99.9963490514744
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 12 operation 2",
+ "target": "bridge-large-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.3752195890214,
+ "y": 229.20310886483736,
+ "w": 35.30975799233249,
+ "h": 99.9962990864201
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 12 operation 3",
+ "target": "bridge-large-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.375213472072,
+ "y": 229.2031071048878,
+ "w": 35.309770234411076,
+ "h": 99.99630261839388
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 12 operation 4",
+ "target": "bridge-large-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 733.3751860063161,
+ "y": 229.2030846743188,
+ "w": 35.309825264931646,
+ "h": 99.99634905147445
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 13 operation 1",
+ "target": "bridge-small-seat",
+ "drag": false,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 694.2254127192891,
+ "y": 230.54587309368728,
+ "w": 113.84869051687656,
+ "h": 98.67663471942606
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 13 operation 2",
+ "target": "bridge-small-plug-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 734.3815583742885,
+ "y": 255.3961759678824,
+ "w": 33.26768114702054,
+ "h": 48.25008462390127
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 13 operation 3",
+ "target": "bridge-small-plug-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 734.3815517145625,
+ "y": 255.39616492373693,
+ "w": 33.26769452636461,
+ "h": 48.250106768817886
+ },
+ "labels": 10
+ },
+ {
+ "name": "task 89 step 14 operation 1",
+ "target": "bridge-large-valve",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 710.2512801908182,
+ "y": 220.69540001554472,
+ "w": 82.42293895668956,
+ "h": 118.27900785582213
+ },
+ "labels": 12
+ },
+ {
+ "name": "task 89 step 14 operation 2",
+ "target": "bridge-small-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 725.8282859732907,
+ "y": 221.9512018941729,
+ "w": 50.627760499197166,
+ "h": 114.81260701135218
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 14 operation 3",
+ "target": "bridge-small-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 725.8282216003923,
+ "y": 221.95118166502374,
+ "w": 50.627890131494496,
+ "h": 114.81264759934965
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 14 operation 4",
+ "target": "bridge-small-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 725.8282930429814,
+ "y": 221.95120386968313,
+ "w": 50.62774677978814,
+ "h": 114.81260257095443
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 14 operation 5",
+ "target": "bridge-small-bolt-4",
+ "drag": true,
+ "distance": 2.606298249929224,
+ "projected": {
+ "x": 725.8282216003923,
+ "y": 221.9511816650243,
+ "w": 50.62789013149472,
+ "h": 114.81264759934942
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 15 operation 1",
+ "target": "bridge-small-bag",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 737.1727104103626,
+ "y": 262.5404214396442,
+ "w": 27.667610573511638,
+ "h": 33.982920448655136
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 15 operation 2",
+ "target": "bridge-small-pipe",
+ "drag": true,
+ "distance": 2.6062982499292233,
+ "projected": {
+ "x": 741.2370513107613,
+ "y": 267.5903199122409,
+ "w": 19.53163674862253,
+ "h": 23.884275458246236
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 16 operation 1",
+ "target": "bridge-small-bolt-1",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1020178600464,
+ "y": 225.56375225947545,
+ "w": 41.90386337448217,
+ "h": 107.35748348612509
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 16 operation 2",
+ "target": "bridge-small-bolt-2",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.101956369818,
+ "y": 225.56374836709816,
+ "w": 41.90398643298022,
+ "h": 107.35748980923583
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 16 operation 3",
+ "target": "bridge-small-bolt-3",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1020468486516,
+ "y": 225.56377086244714,
+ "w": 41.90380531004871,
+ "h": 107.35744460559681
+ },
+ "labels": 11
+ },
+ {
+ "name": "task 89 step 16 operation 4",
+ "target": "bridge-small-bolt-4",
+ "drag": true,
+ "distance": 2.6062982499292238,
+ "projected": {
+ "x": 730.1019563698185,
+ "y": 225.56374836709918,
+ "w": 41.903986432980105,
+ "h": 107.35748980923628
+ },
+ "labels": 11
+ }
+ ],
+ "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",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/87/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/88/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate",
+ "http://127.0.0.1:6180/api/tran/v1/teaching/assignments/89/preview/validate"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/original-005-runtime.json b/reports/bridge-model-acceptance-20260921/original-005-runtime.json
new file mode 100644
index 0000000..67c1e2c
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/original-005-runtime.json
@@ -0,0 +1,479 @@
+{
+ "pass": true,
+ "checks": [
+ {
+ "name": "task 86 first view",
+ "state": {
+ "id": "front-pump-hydraulic-pump",
+ "step": 0,
+ "operation": 0,
+ "errors": 0,
+ "complete": false,
+ "pending": false,
+ "cameraTween": 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": 12.786856607239322,
+ "zoom": 1,
+ "exposure": 1,
+ "light": [
+ 0.8,
+ 1.4
+ ],
+ "screen": {
+ "x": 1049.9038779904613,
+ "y": 504.55038482922,
+ "localX": 586.9038779904612,
+ "localY": 316.05038482922,
+ "visible": true
+ },
+ "bounds": [
+ 0.10935024518472723,
+ 0.13537492625037484,
+ 0.19723593501664283
+ ],
+ "projected": {
+ "x": 580.832016086736,
+ "y": 310.657143952833,
+ "w": 12.083281670042425,
+ "h": 10.869975607959134
+ },
+ "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": [
+ 7.737605729847714,
+ 4.268400873959779,
+ 9.635509022074508
+ ],
+ "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": 993.859375,
+ "y": 526.015625,
+ "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 digital-human video playback",
+ "pass": true,
+ "media": {
+ "width": 480,
+ "height": 640,
+ "duration": 4.96,
+ "currentTime": 0.070476
+ }
+ },
+ {
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/report-preview.png b/reports/bridge-model-acceptance-20260921/report-preview.png
new file mode 100644
index 0000000..648e465
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/report-preview.png differ
diff --git a/reports/bridge-model-acceptance-20260921/source-models.json b/reports/bridge-model-acceptance-20260921/source-models.json
new file mode 100644
index 0000000..5f3c6f3
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/source-models.json
@@ -0,0 +1,238 @@
+[
+ {
+ "name": "0916保障车.glb",
+ "sha256": "a101c5b5b59eb65daeacfaddd5dd70b6a3ab47f9b5b12d848c6c0e9fb3c0aba3",
+ "bytes": 63730648,
+ "animations": 0,
+ "nodes": [
+ "玻璃",
+ "",
+ "保障车",
+ "",
+ "2_04保障车接口盖子",
+ "",
+ "2_05回油截止阀",
+ ""
+ ],
+ "meshes": 4
+ },
+ {
+ "name": "0916架桥车.glb",
+ "sha256": "5993a52f55cf981fd7cb6113e346ff3c6b1f434bbd84f18232ab5af494d9ddca",
+ "bytes": 37160920,
+ "animations": 0,
+ "nodes": [
+ "底盘车_3",
+ "",
+ "底盘车_1",
+ "",
+ "底盘车_7",
+ "",
+ "底盘车_6",
+ "",
+ "底盘车_2",
+ "",
+ "销齿轮",
+ "",
+ "托架滚轮组",
+ "",
+ "前推送装置",
+ "",
+ "托架体",
+ "",
+ "托架座",
+ "",
+ "托架变幅油缸",
+ "",
+ "前横梁总成",
+ "",
+ "托架托轮",
+ "",
+ "滚轮组",
+ "",
+ "定位传力销",
+ "",
+ "后横梁总成",
+ "",
+ "架设架连接座",
+ "",
+ "发动机",
+ "",
+ "管",
+ "",
+ "支承座",
+ "",
+ "下臂架油缸",
+ "",
+ "底盘车_8",
+ "",
+ "四连杆机构",
+ "",
+ "下臂架",
+ "",
+ "上臂架油缸",
+ "",
+ "上臂架",
+ "",
+ "插销机构",
+ "",
+ "回转支承",
+ "",
+ "回转支承座",
+ "",
+ "导梁推进机构",
+ "",
+ "Obj_销齿轮",
+ "",
+ "摆块",
+ "",
+ "架设架结构",
+ "",
+ "推桥机构",
+ "",
+ "变幅缸",
+ "",
+ "调整油缸",
+ "",
+ "托轮",
+ "",
+ "架设架油缸支座",
+ "",
+ "后支座",
+ "",
+ "1_28辅助控制盒盖",
+ "",
+ "1_25取力器",
+ "",
+ "1_25和1_27和2_03和2_08取力器开关",
+ "",
+ "1_28辅助控制盒内",
+ "",
+ "1_28和2_06互救开关",
+ "",
+ "3_04柱塞泵关键螺丝1",
+ "",
+ "3_09新泵注油口盖",
+ "",
+ "1_24柱塞泵3_05前泵3_08新泵",
+ "",
+ "液压系统相关模型",
+ "",
+ "1_26球阀开关",
+ "",
+ "2_04架桥车接口盖子",
+ "",
+ "2_07球阀开关02和3-02球阀开关",
+ "",
+ "2_07球阀开关01",
+ "",
+ "3_03柱塞泵关键螺丝",
+ "",
+ "Obj_3_03柱塞泵关键螺丝",
+ "",
+ "3_04柱塞泵关键螺丝2",
+ "",
+ "3_1取力器3_4取力器",
+ "",
+ "4_08油堵头001",
+ "",
+ "4_05大腔平衡阀",
+ "",
+ "4_07平衡阀固定螺丝",
+ "",
+ "4_01小腔平衡阀",
+ "",
+ "4_03平衡阀固定螺丝",
+ "",
+ "4_02油管接头",
+ "",
+ "4_04油堵头001",
+ "",
+ "4_06油管接头",
+ "",
+ "副梁和滑道总成",
+ ""
+ ],
+ "meshes": 65
+ },
+ {
+ "name": "3封口袋.glb",
+ "sha256": "eff5f46392c9b4c777e8f4696cd9831711a5790df94086b105c792f479caecba",
+ "bytes": 36776,
+ "animations": 0,
+ "nodes": [
+ "3-3封口袋1",
+ "",
+ "3-3封口袋2",
+ ""
+ ],
+ "meshes": 2
+ },
+ {
+ "name": "4封口袋.glb",
+ "sha256": "b945eb761daaf2ccbd391669edbf8a7a09f883338985984cc1eacd7cf0f52840",
+ "bytes": 36756,
+ "animations": 0,
+ "nodes": [
+ "4_02封口袋",
+ "",
+ "4_06封口袋",
+ ""
+ ],
+ "meshes": 2
+ },
+ {
+ "name": "双车连接油管.glb",
+ "sha256": "239070f86b5c51c01f1b74cedef94a6340456f069a0132e42d7fe9d71dde1d9a",
+ "bytes": 93700,
+ "animations": 0,
+ "nodes": [
+ "2_04油罐连接线大",
+ "",
+ "2_04油罐连接线小",
+ ""
+ ],
+ "meshes": 2
+ },
+ {
+ "name": "开口扳手.glb",
+ "sha256": "2f00842b4d15ed6785b19d5b59625e1d02476b7ef163e334989f66169b8c7b1c",
+ "bytes": 145544,
+ "animations": 0,
+ "nodes": [
+ "3_3和3_4开口扳手2",
+ "",
+ "3_3和3_4开口扳手1",
+ ""
+ ],
+ "meshes": 2
+ },
+ {
+ "name": "油堵头.glb",
+ "sha256": "1d5faa06ec8c35d03dae2b7fc1b0a598f6a331c5630d8dc07261238f6ade4ec3",
+ "bytes": 26236,
+ "animations": 0,
+ "nodes": [
+ "4_04油堵头",
+ "",
+ "4_08油堵头",
+ ""
+ ],
+ "meshes": 2
+ },
+ {
+ "name": "牛皮纸.glb",
+ "sha256": "315f25c1735a3d97d03d3b418bef90b214ed22928bea427a03bc2f63d60349b8",
+ "bytes": 1062760,
+ "animations": 0,
+ "nodes": [
+ "牛皮纸",
+ "",
+ "3_01_1剪牛皮纸",
+ "",
+ "3_06_2剪牛皮纸",
+ ""
+ ],
+ "meshes": 3
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/source.json b/reports/bridge-model-acceptance-20260921/source.json
new file mode 100644
index 0000000..5d07f16
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/source.json
@@ -0,0 +1,779 @@
+[
+ {
+ "name": "1-动画",
+ "rows": [
+ {
+ "A1": "动画清单(65 条) 难度:低=现有能力直接做 中=要补小件或新动作 高=缺模型或缺资料"
+ },
+ {
+ "A3": "序号",
+ "B3": "动画",
+ "C3": "原始脚本内容",
+ "D3": "缺什么模型",
+ "E3": "难度"
+ },
+ {
+ "A4": "脚本一 · 液压泵应急切换(序幕)"
+ },
+ {
+ "A5": "1-01",
+ "B5": "片头字幕",
+ "C5": "字幕:重型支援桥液压泵应急切换修复",
+ "D5": "不缺",
+ "E5": "低"
+ },
+ {
+ "A6": "1-02",
+ "B6": "受损装备全景",
+ "C6": "(1)画面显示受损重型支援桥",
+ "D6": "不缺",
+ "E6": "低"
+ },
+ {
+ "A7": "1-03",
+ "B7": "液压泵作用讲解",
+ "C7": "解说:液压泵是液压系统的心脏,可靠性直接关系架设撤收作业",
+ "D7": "不缺",
+ "E7": "低"
+ },
+ {
+ "A8": "1-04",
+ "B8": "架设环境画面",
+ "C8": "(2)画面依次显示架设环境",
+ "D8": "不缺(用图片)",
+ "E8": "低"
+ },
+ {
+ "A9": "1-05",
+ "B9": "战场环境画面",
+ "C9": "(2)画面依次显示战场环境",
+ "D9": "不缺(用图片)",
+ "E9": "低"
+ },
+ {
+ "A10": "1-06",
+ "B10": "救灾场景画面",
+ "C10": "(2)画面依次显示抢修救灾场景",
+ "D10": "不缺(用图片)",
+ "E10": "低"
+ },
+ {
+ "A11": "1-07",
+ "B11": "故障后果设问",
+ "C11": "解说:液压泵故障导致作业中断甚至危险状态;战时如何快速完成架桥",
+ "D11": "不缺",
+ "E11": "低"
+ },
+ {
+ "A12": "1-08",
+ "B12": "原理图总览",
+ "C12": "(3)画面显示重型支援桥液压系统原理图",
+ "D12": "不缺模型,缺原理图",
+ "E12": "高"
+ },
+ {
+ "A13": "1-09",
+ "B13": "双泵独立供油",
+ "C13": "解说:采取\"双泵独立供油\"设计理念,一泵损伤可应急切换",
+ "D13": "缺原理图",
+ "E13": "高"
+ },
+ {
+ "A14": "1-10",
+ "B14": "章节字幕",
+ "C14": "字幕:应急切换",
+ "D14": "不缺",
+ "E14": "低"
+ },
+ {
+ "A15": "1-11",
+ "B15": "三问目录",
+ "C15": "字幕:一、是什么 二、怎么实现 三、该怎么做",
+ "D15": "不缺",
+ "E15": "低"
+ },
+ {
+ "A16": "1-12",
+ "B16": "切换概念说明",
+ "C16": "解说:切换是通过回路转换或改接,脱开损伤部分,接通备用部分",
+ "D16": "不缺",
+ "E16": "低"
+ },
+ {
+ "A17": "1-13",
+ "B17": "两个液压泵定位",
+ "C17": "(4)画面:重型支援桥两个液压泵",
+ "D17": "缺后泵",
+ "E17": "中"
+ },
+ {
+ "A18": "脚本一 · 应急切换怎么实现(画面:液压系统原理图 · 供油回路)"
+ },
+ {
+ "A19": "1-14",
+ "B19": "前泵供油回路",
+ "C19": "解说:前泵回路由油箱、前泵、前泵出油滤油器、托架多路换向阀三通流量调节阀、回油滤油器构成",
+ "D19": "缺原理图",
+ "E19": "高"
+ },
+ {
+ "A20": "1-15",
+ "B20": "后泵供油回路",
+ "C20": "解说:后泵回路由油箱、后泵、后泵出油滤油器、支腿多路换向阀三通流量调节阀、回油滤油器构成",
+ "D20": "缺原理图",
+ "E20": "高"
+ },
+ {
+ "A21": "1-16",
+ "B21": "球阀关闭状态",
+ "C21": "解说:两个出油滤油器出口处设一球阀,正常处于关闭状态",
+ "D21": "缺原理图",
+ "E21": "高"
+ },
+ {
+ "A22": "1-17",
+ "B22": "三通阀被关闭",
+ "C22": "(1)打开球阀。解说:托架马达向前时负载压力将三通流量调节阀关闭",
+ "D22": "缺原理图",
+ "E22": "高"
+ },
+ {
+ "A23": "1-18",
+ "B23": "油路受阻",
+ "C23": "解说:液压油无法经三通阀回油箱,应经内部通道进马达换向联推动马达",
+ "D23": "缺原理图",
+ "E23": "高"
+ },
+ {
+ "A24": "1-19",
+ "B24": "油路改道(关键)",
+ "C24": "解说:马达侧压力大,油经打开的球阀进支腿多路换向阀,经其三通阀回油箱",
+ "D24": "缺原理图",
+ "E24": "高"
+ },
+ {
+ "A25": "1-20",
+ "B25": "任一机构均如此",
+ "C25": "解说:操作托架、架设架任一执行机构均如此;支腿、吊机同理",
+ "D25": "缺原理图",
+ "E25": "高"
+ },
+ {
+ "A26": "1-21",
+ "B26": "两阀同时关闭推论",
+ "C26": "解说:提前关闭两个三通流量调节阀,则任一泵的油都不回油箱",
+ "D26": "缺原理图",
+ "E26": "高"
+ },
+ {
+ "A27": "1-22",
+ "B27": "自救阀作用",
+ "C27": "(2)打开自救阀。解说:两个多路换向阀 M 口各串联一自救阀,打开后油将三通阀关闭",
+ "D27": "缺原理图",
+ "E27": "高"
+ },
+ {
+ "A28": "1-23",
+ "B28": "切换需开自救阀",
+ "C28": "解说:因此在实施切换时,还需打开自救阀",
+ "D28": "缺原理图",
+ "E28": "高"
+ },
+ {
+ "A29": "脚本一 · 应急切换该怎么做(画面:重型支援桥实装,具体操作)"
+ },
+ {
+ "A30": "1-24",
+ "B30": "确定故障泵",
+ "C30": "首先,根据故障现象确定是哪一个液压泵发生故障",
+ "D30": "不缺",
+ "E30": "低"
+ },
+ {
+ "A31": "1-25",
+ "B31": "断开取力器",
+ "C31": "而后,断开架桥车取力器",
+ "D31": "不缺",
+ "E31": "低",
+ "F31": "不准确/补的模型"
+ },
+ {
+ "A32": "1-26",
+ "B32": "打开球阀",
+ "C32": "而后,将备胎斜上方连接两个红色滤油器的球阀打开(手柄由垂直转至平行于管路)",
+ "D32": "不缺",
+ "E32": "低"
+ },
+ {
+ "A33": "1-27",
+ "B33": "接通取力器",
+ "C33": "而后,重新接通取力器",
+ "D33": "不缺",
+ "E33": "低"
+ },
+ {
+ "A34": "1-28",
+ "B34": "开盖拨互救开关",
+ "C34": "而后,打开辅助控制盒内的\"互救\"开关",
+ "D34": "不缺",
+ "E34": "低"
+ },
+ {
+ "A35": "1-29",
+ "B35": "单泵继续作业",
+ "C35": "最后,利用一个液压泵继续完成作业",
+ "D35": "不缺",
+ "E35": "低",
+ "F35": "缺/没有交代过第二个液压泵"
+ },
+ {
+ "A36": "脚本二 · 液压泵应急替代(互救)"
+ },
+ {
+ "A37": "2-01",
+ "B37": "替代概念",
+ "C37": "解说:替代是用性能相似的单元、油液、仪表暂时替换损伤资源,恢复基本功能",
+ "D37": "不缺",
+ "E37": "低"
+ },
+ {
+ "A38": "2-02",
+ "B38": "互救概念·双车",
+ "C38": "解说:互救是架桥车液压系统失效时,连接保障车液压系统,用其液压泵供动力",
+ "D38": "缺保障车整车、互救油管",
+ "E38": "高"
+ },
+ {
+ "A39": "46056",
+ "B39": "确认取力器脱离",
+ "C39": "(1)确保架桥车油泵取力器处于脱离状态并保持车辆启动",
+ "D39": "不缺",
+ "E39": "低",
+ "F39": "不准确/补的模型"
+ },
+ {
+ "A40": "46057",
+ "B40": "连接双车油管",
+ "C40": "(2)架桥车端接液压油箱右侧快速接头,保障车端接驾驶室外右下方快速接头",
+ "D40": "缺互救油管、两个快速接头",
+ "E40": "高",
+ "F40": "有"
+ },
+ {
+ "A41": "46058",
+ "B41": "开回油截止阀",
+ "C41": "(3)打开保障车液压油箱快速接头处的回油截止阀,保证回油油路畅通",
+ "D41": "缺保障车回油截止阀、油箱",
+ "E41": "高",
+ "F41": "有/不准确"
+ },
+ {
+ "A42": "46059",
+ "B42": "开互救作业开关",
+ "C42": "(4)开启互救工作模式,在辅助控制盒将\"互救作业\"开关打开",
+ "D42": "不缺",
+ "E42": "低",
+ "F42": "有"
+ },
+ {
+ "A43": "46060",
+ "B43": "打开两个球阀",
+ "C43": "(5)打开两出油滤油器出口处的球阀",
+ "D43": "缺第二个球阀手柄",
+ "E43": "中",
+ "F43": "有/不准确"
+ },
+ {
+ "A44": "46061",
+ "B44": "接通保障车取力器",
+ "C44": "(6)接通保障车液压泵取力器",
+ "D44": "缺保障车取力器、开关、液压泵",
+ "E44": "高",
+ "F44": "不准确/补的模型"
+ },
+ {
+ "A45": "2-09",
+ "B45": "双车联动作业",
+ "C45": "(7)按正常操作步骤操作架桥车",
+ "D45": "缺保障车整车",
+ "E45": "高",
+ "F45": "缺/有车模型不知道具体指怎么操作架桥车"
+ },
+ {
+ "A46": "脚本三 · 前泵换件修复"
+ },
+ {
+ "A47": "46082",
+ "B47": "熄火·裁切牛皮纸",
+ "C47": "(1)桥车熄火,按前泵与取力器连接处形状裁切一块牛皮纸",
+ "D47": "缺牛皮纸",
+ "E47": "中",
+ "F47": "不准确/补的模型"
+ },
+ {
+ "A48": "3-02",
+ "B48": "关 1 号球阀",
+ "C48": "(2)关闭液压油箱出口处的 1 号球阀(手柄由平行转至垂直于油管)",
+ "D48": "缺 1 号球阀手柄",
+ "E48": "中",
+ "F48": "有/不准确"
+ },
+ {
+ "A49": "46084",
+ "B49": "拆油管接头",
+ "C49": "(3)用大活动扳手拆开前泵进出油管接头,用封口袋封住",
+ "D49": "缺进出油管接头、封口袋",
+ "E49": "中",
+ "F49": "有/不准确"
+ },
+ {
+ "A50": "3-04",
+ "B50": "拆 4 颗螺栓",
+ "C50": "(4)用开口扳手拆下液压泵与取力器处的 4 颗固定螺栓",
+ "D50": "现有 5 颗螺丝规格不一、位置不对,需重做",
+ "E50": "高",
+ "F50": "有"
+ },
+ {
+ "A51": "3-05",
+ "B51": "取下前泵",
+ "C51": "(5)取下前泵",
+ "D51": "前泵与取力器不相邻,需重做装配关系",
+ "E51": "高",
+ "F51": "有"
+ },
+ {
+ "A52": "3-06",
+ "B52": "二次裁剪牛皮纸",
+ "C52": "(6)按液压泵安装形式继续裁剪,使其与取力器贴合完整",
+ "D52": "缺牛皮纸",
+ "E52": "中",
+ "F52": "有/不准确"
+ },
+ {
+ "A53": "3-07",
+ "B53": "贴牛皮纸",
+ "C53": "(7)将裁剪好的牛皮纸贴在取力口处",
+ "D53": "缺牛皮纸、取力口安装面",
+ "E53": "高",
+ "F53": "有/不准确"
+ },
+ {
+ "A54": "3-08",
+ "B54": "装新泵",
+ "C54": "(8)装上新泵",
+ "D54": "同 3-04、3-05",
+ "E54": "高",
+ "F54": "有"
+ },
+ {
+ "A55": "3-09",
+ "B55": "注入液压油",
+ "C55": "(9)打开新泵注油口,注入液压油",
+ "D55": "缺注油口盖(可用字幕代替)",
+ "E55": "中",
+ "F55": "有"
+ },
+ {
+ "A56": "3-10",
+ "B56": "装回油管",
+ "C56": "(10)用大活动把手装上前泵进出油管,并拧紧",
+ "D56": "缺进出油管接头",
+ "E56": "中",
+ "F56": "有"
+ },
+ {
+ "A57": "3-11",
+ "B57": "起动试车",
+ "C57": "(11)起动装备,试车验证",
+ "D57": "不缺",
+ "E57": "低",
+ "F57": "缺/有车模型不知道具体指什么试车"
+ },
+ {
+ "A58": "脚本四 · 平衡阀拆拼互换 —— 拆卸小腔平衡阀"
+ },
+ {
+ "A59": "46113",
+ "B59": "清洗小腔阀",
+ "C59": "① 用清洗液清洗平衡阀表面和各油管接头,用抹布擦拭干净",
+ "D59": "缺带油污贴图",
+ "E59": "中",
+ "F59": "有平衡阀/缺油污贴图不知道则怎么表现"
+ },
+ {
+ "A60": "4-02",
+ "B60": "拆控制端接头",
+ "C60": "② 用 19 号开口扳手拧下控制端油管接头,用封口袋封住管口",
+ "D60": "缺封口袋",
+ "E60": "中",
+ "F60": "有/不准确"
+ },
+ {
+ "A61": "4-03",
+ "B61": "拆螺栓取下阀",
+ "C61": "③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀",
+ "D61": "不缺",
+ "E61": "中",
+ "F61": "有"
+ },
+ {
+ "A62": "4-04",
+ "B62": "堵油口·擦阀座",
+ "C62": "④ 用 2 个油堵头堵住阀体座上 2 个油口,擦拭阀座表面",
+ "D62": "缺油堵头",
+ "E62": "中",
+ "F62": "有"
+ },
+ {
+ "A63": "脚本四 · 拆卸大腔平衡阀"
+ },
+ {
+ "A64": "46117",
+ "B64": "清洗大腔阀",
+ "C64": "① 清洗平衡阀表面和各油管接头,用抹布擦拭干净",
+ "D64": "缺带油污贴图",
+ "E64": "中",
+ "F64": "有平衡阀/缺油污贴图不知道则怎么表现"
+ },
+ {
+ "A65": "4-06",
+ "B65": "拆控制端接头",
+ "C65": "② 用 19 号开口扳手拧下控制端油管接头,封口袋封住管口",
+ "D65": "缺封口袋",
+ "E65": "中",
+ "F65": "有/不准确"
+ },
+ {
+ "A66": "4-07",
+ "B66": "拆螺栓取下阀",
+ "C66": "③ 用 8 号内六角拧下平衡阀固定螺栓,取下平衡阀",
+ "D66": "不缺",
+ "E66": "中",
+ "F66": "有"
+ },
+ {
+ "A67": "4-08",
+ "B67": "堵油口·擦阀座",
+ "C67": "④ 用 2 个油堵头堵住阀体座 2 个油口,擦拭阀座",
+ "D67": "缺油堵头",
+ "E67": "中",
+ "F67": "有"
+ },
+ {
+ "A68": "脚本四 · 装配大腔平衡阀"
+ },
+ {
+ "A69": "4-09",
+ "B69": "擦拭·拆油堵头",
+ "C69": "① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头",
+ "D69": "缺油堵头",
+ "E69": "中",
+ "F69": "有/不准确"
+ },
+ {
+ "A70": "4-10",
+ "B70": "装阀·上 4 螺栓",
+ "C70": "② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓",
+ "D70": "不缺",
+ "E70": "中",
+ "F70": "有"
+ },
+ {
+ "A71": "4-11",
+ "B71": "接头旋紧",
+ "C71": "③ 将控制端油管接头封口袋取下并用扳手旋紧",
+ "D71": "缺封口袋(脚本此条有矛盾)",
+ "E71": "中",
+ "F71": "有/不准确"
+ },
+ {
+ "A72": "4-12",
+ "B72": "阀体螺栓旋紧",
+ "C72": "④ 用内六角将阀体 4 个连接螺栓旋紧",
+ "D72": "不缺(螺栓组待甲方确认)",
+ "E72": "中",
+ "F72": "有"
+ },
+ {
+ "A73": "脚本四 · 装配小腔平衡阀"
+ },
+ {
+ "A74": "4-13",
+ "B74": "擦拭·拆油堵头",
+ "C74": "① 擦拭平衡阀与阀座去除污渍,拆下阀座上 2 个油堵头",
+ "D74": "缺油堵头",
+ "E74": "中",
+ "F74": "有/不准确"
+ },
+ {
+ "A75": "4-14",
+ "B75": "装阀·上 4 螺栓",
+ "C75": "② 将平衡阀安装于阀座上,用 8 号内六角装上 4 个固定螺栓",
+ "D75": "不缺",
+ "E75": "中",
+ "F75": "有"
+ },
+ {
+ "A76": "4-15",
+ "B76": "接头旋紧",
+ "C76": "③ 将控制端油管接头封口袋取下并用扳手旋紧",
+ "D76": "缺封口袋(脚本此条有矛盾)",
+ "E76": "中",
+ "F76": "有/不准确"
+ },
+ {
+ "A77": "4-16",
+ "B77": "阀体螺栓旋紧",
+ "C77": "④ 用内六角将阀体 4 个连接螺栓旋紧",
+ "D77": "不缺(螺栓组待甲方确认)",
+ "E77": "中",
+ "F77": "有"
+ }
+ ]
+ },
+ {
+ "name": "2-团队提供模型",
+ "rows": [
+ {
+ "A1": "团队(建模)需要提供什么"
+ },
+ {
+ "A3": "序号",
+ "B3": "需要提供的模型",
+ "C3": "用在哪",
+ "D3": "说明"
+ },
+ {
+ "A4": "必须先解决(现有模型做不出脚本要求的效果)"
+ },
+ {
+ "A5": "1",
+ "B5": "前泵移到取力器输出端,做出安装法兰面与取力口",
+ "C5": "3-04 3-05 3-07 3-08",
+ "D5": "实测两者中心距 1.890,是前泵尺寸的 9.3 倍,相当于整车长的 23%,不是装配关系"
+ },
+ {
+ "A6": "2",
+ "B6": "前泵固定螺栓 4 颗(同规格,放在泵与取力器结合面)",
+ "C6": "3-04 3-08",
+ "D6": "现有 5 颗螺丝是三种规格,且都在泵一侧,不在结合面上"
+ },
+ {
+ "A7": "3",
+ "B7": "一个含四份脚本全部所需件的统一模型",
+ "C7": "全部 65 条",
+ "D7": "脚本一二的 7 个操作件与脚本四的平衡阀现在分处两个文件,比例差 3.5~6 倍,不能合用"
+ },
+ {
+ "A8": "4",
+ "B8": "保障车整车(含取力器、开关、液压泵、油箱、回油截止阀、快速接头)",
+ "C8": "2-02 2-04 2-05 2-08 2-09",
+ "D8": "白膜先发来核验分件、UV、面数"
+ },
+ {
+ "A9": "要补的小件"
+ },
+ {
+ "A10": "5",
+ "B10": "后泵(第二个液压泵)",
+ "C10": "1-13",
+ "D10": "脚本要\"两个液压泵\",现在只有一个"
+ },
+ {
+ "A11": "6",
+ "B11": "互救液压油管(给连接好的形态)",
+ "C11": "2-04",
+ "D11": "软管弯曲算不出来,直接给装配好的形状"
+ },
+ {
+ "A12": "7",
+ "B12": "两处快速接头",
+ "C12": "2-04",
+ "D12": "位置等甲方指认后建"
+ },
+ {
+ "A13": "8",
+ "B13": "第二个出油滤油器球阀手柄",
+ "C13": "2-07",
+ "D13": "脚本要开两个球阀,现在只有一个手柄"
+ },
+ {
+ "A14": "9",
+ "B14": "液压油箱出口 1 号球阀手柄",
+ "C14": "3-02",
+ "D14": "—"
+ },
+ {
+ "A15": "10",
+ "B15": "前泵进出油管接头 2 个",
+ "C15": "3-03 3-10",
+ "D15": "要能和油管分开"
+ },
+ {
+ "A16": "11",
+ "B16": "牛皮纸 1 张平片",
+ "C16": "3-01 3-06 3-07",
+ "D16": "粗裁精裁用贴图区分,不用做三个模型"
+ },
+ {
+ "A17": "12",
+ "B17": "封口袋 1 个",
+ "C17": "3-03 3-10 4-02 4-06 4-11 4-15",
+ "D17": "多处复用,做一个"
+ },
+ {
+ "A18": "13",
+ "B18": "油堵头 1 个",
+ "C18": "4-04 4-08 4-09 4-13",
+ "D18": "复制两份用"
+ },
+ {
+ "A19": "14",
+ "B19": "平衡阀带油污贴图 1 套",
+ "C19": "4-01 4-05",
+ "D19": "清洗动画靠脏净材质切换"
+ },
+ {
+ "A20": "15",
+ "B20": "前泵注油口盖(可选)",
+ "C20": "3-09",
+ "D20": "不做就用字幕代替"
+ },
+ {
+ "A21": "要改的命名"
+ },
+ {
+ "A22": "16",
+ "B22": "成对平衡阀与螺栓加区分后缀(如 _大腔 / _小腔)",
+ "C22": "脚本四 16 条",
+ "D22": "现有 19 组同名节点,按名字找零件会撞车。这些件不能删,是成对阀各自的螺栓"
+ },
+ {
+ "A23": "已核验可用,不用做"
+ },
+ {
+ "A24": "17",
+ "B24": "平衡阀阀体 + 每阀 4 颗固定螺栓 + 阀座 + 管道",
+ "C24": "4-03 4-07 4-10 4-14",
+ "D24": "实测 12 个阀体每个都配齐 4 颗螺栓(距离 0.07~0.14)+ 阀座 + 管道,成组完整"
+ },
+ {
+ "A25": "18",
+ "B25": "取力器、取力器开关、球阀开关、辅助控制盒、盒盖、互救开关",
+ "C25": "1-24~1-28 2-03 2-06",
+ "D25": "这 7 件成组关系正确,脚本一操作五步已实装可运行"
+ },
+ {
+ "A26": "19",
+ "B26": "整机联动演示(支腿、移动架、架设架、吊机)",
+ "C26": "1-29 2-09 3-11",
+ "D26": "已有 12 条动作,12 秒循环"
+ }
+ ]
+ },
+ {
+ "name": "3-甲方提供",
+ "rows": [
+ {
+ "A1": "甲方需要提供什么"
+ },
+ {
+ "A3": "序号",
+ "B3": "需要甲方提供",
+ "C3": "影响的动画",
+ "D3": "脚本出处"
+ },
+ {
+ "A4": "资料"
+ },
+ {
+ "A5": "1",
+ "B5": "重型支援桥液压系统原理图(供油回路)",
+ "C5": "1-08 1-09 及 1-14~1-23,共 12 条",
+ "D5": "序幕第 3 项「画面显示液压系统原理图」;「怎么实现」全段画面栏「液压系统原理图(供油回路)」"
+ },
+ {
+ "A6": "2",
+ "B6": "架设环境、战场环境、抢修救灾场景三类画面素材",
+ "C6": "1-04 1-05 1-06",
+ "D6": "序幕第 2 项「画面依次显示架设环境、战场环境、抢修救灾场景」"
+ },
+ {
+ "A7": "3",
+ "B7": "大腔、小腔平衡阀在装备上的安装位置",
+ "C7": "脚本四 16 条",
+ "D7": "《平衡阀拆拼互换》故障背景栏为空、画面栏未填写;模型里有前中后三组,需指认是哪一组"
+ },
+ {
+ "A8": "4",
+ "B8": "架桥车侧、保障车侧两处快速接头的实装位置",
+ "C8": "2-04",
+ "D8": "《应急替代》第 2 项「液压油箱右侧的快速接头」「驾驶室外右下方的快速接头」"
+ },
+ {
+ "A9": "5",
+ "B9": "前泵与取力器连接处的形状与尺寸",
+ "C9": "3-01 3-06 3-07",
+ "D9": "《前泵换件修复》第 1 项「按前泵与取力器连接处形状裁切」、第 6 项「按液压泵安装形式继续裁剪」"
+ },
+ {
+ "A10": "6",
+ "B10": "液压油箱出口球阀的编号对应关系",
+ "C10": "3-02",
+ "D10": "《前泵换件修复》第 2 项「1 号球阀」;另两份脚本称「两出油滤油器出口处的球阀」"
+ },
+ {
+ "A11": "7",
+ "B11": "试车验证的合格判据",
+ "C11": "3-11",
+ "D11": "《前泵换件修复》第 11 项「起动装备,试车验证」"
+ },
+ {
+ "A12": "脚本待澄清"
+ },
+ {
+ "A13": "8",
+ "B13": "自救阀在实装上是否需人工打开",
+ "C13": "1-22 1-23",
+ "D13": "原理段「实施切换时还需打开自救阀」,但操作段 5 步未列此步"
+ },
+ {
+ "A14": "9",
+ "B14": "「互救」开关与「互救作业」开关是否同一个",
+ "C14": "1-28 2-06",
+ "D14": "《应急切换》第 5 步称「互救」开关,《应急替代》第 4 项称「互救作业」开关"
+ },
+ {
+ "A15": "10",
+ "B15": "《应急替代》的故障背景与正文工况不一致",
+ "C15": "2-01 2-02",
+ "D15": "故障背景为前泵损坏,正文为「架桥车液压系统完全失效」,两者不是同一工况"
+ },
+ {
+ "A16": "11",
+ "B16": "平衡阀装配的螺栓是一组 4 颗还是两组 8 颗",
+ "C16": "4-10 4-12 4-14 4-16",
+ "D16": "装配段②「4 个固定螺栓」,④「阀体 4 个连接螺栓」"
+ },
+ {
+ "A17": "12",
+ "B17": "平衡阀装配段中的拆卸表述",
+ "C17": "4-11 4-15",
+ "D17": "装配段③前半句为取下封口袋、旋紧接头(装配),后半句为拧下接头、封住管口(拆卸),动作方向相反"
+ },
+ {
+ "A18": "13",
+ "B18": "第 10 项「大活动把手」是否即大活动扳手",
+ "C18": "3-10",
+ "D18": "《前泵换件修复》第 3 项写「大活动扳手」,第 10 项写「大活动把手」"
+ },
+ {
+ "A19": "14",
+ "B19": "第 4 项开口扳手的规格号数",
+ "C19": "3-04",
+ "D19": "《前泵换件修复》第 4 项未标号数;平衡阀脚本各步均标明了 19 号、8 号"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/sources.json b/reports/bridge-model-acceptance-20260921/sources.json
new file mode 100644
index 0000000..6aed55e
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/sources.json
@@ -0,0 +1,4 @@
+{
+ "workbookSha256": "c8144318186800a574b909cd58bd80e62462b7faf5fe31628ff3821cc1f92605",
+ "matchesPreviousExtraction": true
+}
\ No newline at end of file
diff --git a/reports/bridge-model-acceptance-20260921/task-116-fullscreen.png b/reports/bridge-model-acceptance-20260921/task-116-fullscreen.png
new file mode 100644
index 0000000..2ecb961
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-fullscreen.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-initial.png b/reports/bridge-model-acceptance-20260921/task-116-initial.png
new file mode 100644
index 0000000..d2f84f0
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-initial.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-rescue-moving.png b/reports/bridge-model-acceptance-20260921/task-116-rescue-moving.png
new file mode 100644
index 0000000..5c2f532
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-rescue-moving.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-step-1.png b/reports/bridge-model-acceptance-20260921/task-116-step-1.png
new file mode 100644
index 0000000..65512d0
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-step-1.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-step-2.png b/reports/bridge-model-acceptance-20260921/task-116-step-2.png
new file mode 100644
index 0000000..c3b9f66
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-step-2.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-step-3.png b/reports/bridge-model-acceptance-20260921/task-116-step-3.png
new file mode 100644
index 0000000..1175c9e
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-step-3.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-step-4.png b/reports/bridge-model-acceptance-20260921/task-116-step-4.png
new file mode 100644
index 0000000..19ba7fb
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-step-4.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-step-5.png b/reports/bridge-model-acceptance-20260921/task-116-step-5.png
new file mode 100644
index 0000000..09a85b0
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-step-5.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-116-translucent.png b/reports/bridge-model-acceptance-20260921/task-116-translucent.png
new file mode 100644
index 0000000..1347b6e
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-116-translucent.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-fullscreen.png b/reports/bridge-model-acceptance-20260921/task-86-fullscreen.png
new file mode 100644
index 0000000..aa0876c
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-fullscreen.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-initial.png b/reports/bridge-model-acceptance-20260921/task-86-initial.png
new file mode 100644
index 0000000..d5b46be
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-initial.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-rescue-moving.png b/reports/bridge-model-acceptance-20260921/task-86-rescue-moving.png
new file mode 100644
index 0000000..bdf5d07
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-rescue-moving.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-step-1.png b/reports/bridge-model-acceptance-20260921/task-86-step-1.png
new file mode 100644
index 0000000..ace8c47
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-step-1.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-step-2.png b/reports/bridge-model-acceptance-20260921/task-86-step-2.png
new file mode 100644
index 0000000..bd73fb9
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-step-2.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-step-3.png b/reports/bridge-model-acceptance-20260921/task-86-step-3.png
new file mode 100644
index 0000000..00b8668
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-step-3.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-step-4.png b/reports/bridge-model-acceptance-20260921/task-86-step-4.png
new file mode 100644
index 0000000..cd682e4
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-step-4.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-step-5.png b/reports/bridge-model-acceptance-20260921/task-86-step-5.png
new file mode 100644
index 0000000..f62b3a4
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-step-5.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-86-translucent.png b/reports/bridge-model-acceptance-20260921/task-86-translucent.png
new file mode 100644
index 0000000..f12e792
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-86-translucent.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-fullscreen.png b/reports/bridge-model-acceptance-20260921/task-87-fullscreen.png
new file mode 100644
index 0000000..e389ba1
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-fullscreen.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-initial.png b/reports/bridge-model-acceptance-20260921/task-87-initial.png
new file mode 100644
index 0000000..08488d8
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-initial.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-rescue-moving.png b/reports/bridge-model-acceptance-20260921/task-87-rescue-moving.png
new file mode 100644
index 0000000..42f2522
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-rescue-moving.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-1.png b/reports/bridge-model-acceptance-20260921/task-87-step-1.png
new file mode 100644
index 0000000..6139321
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-1.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-2.png b/reports/bridge-model-acceptance-20260921/task-87-step-2.png
new file mode 100644
index 0000000..8504cbe
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-2.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-3.png b/reports/bridge-model-acceptance-20260921/task-87-step-3.png
new file mode 100644
index 0000000..7015601
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-3.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-4.png b/reports/bridge-model-acceptance-20260921/task-87-step-4.png
new file mode 100644
index 0000000..2acd588
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-4.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-5.png b/reports/bridge-model-acceptance-20260921/task-87-step-5.png
new file mode 100644
index 0000000..4e3408d
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-5.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-6.png b/reports/bridge-model-acceptance-20260921/task-87-step-6.png
new file mode 100644
index 0000000..fc03530
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-6.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-step-7.png b/reports/bridge-model-acceptance-20260921/task-87-step-7.png
new file mode 100644
index 0000000..9c7cbac
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-step-7.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-87-translucent.png b/reports/bridge-model-acceptance-20260921/task-87-translucent.png
new file mode 100644
index 0000000..c4396df
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-87-translucent.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-fullscreen.png b/reports/bridge-model-acceptance-20260921/task-88-fullscreen.png
new file mode 100644
index 0000000..c7ba364
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-fullscreen.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-initial.png b/reports/bridge-model-acceptance-20260921/task-88-initial.png
new file mode 100644
index 0000000..d88ed05
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-initial.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-1.png b/reports/bridge-model-acceptance-20260921/task-88-step-1.png
new file mode 100644
index 0000000..126bf58
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-1.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-10.png b/reports/bridge-model-acceptance-20260921/task-88-step-10.png
new file mode 100644
index 0000000..8096a41
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-10.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-11.png b/reports/bridge-model-acceptance-20260921/task-88-step-11.png
new file mode 100644
index 0000000..9d2e112
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-11.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-2.png b/reports/bridge-model-acceptance-20260921/task-88-step-2.png
new file mode 100644
index 0000000..59ce323
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-2.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-3.png b/reports/bridge-model-acceptance-20260921/task-88-step-3.png
new file mode 100644
index 0000000..b52df9c
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-3.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-4.png b/reports/bridge-model-acceptance-20260921/task-88-step-4.png
new file mode 100644
index 0000000..2cb171e
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-4.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-5.png b/reports/bridge-model-acceptance-20260921/task-88-step-5.png
new file mode 100644
index 0000000..54647bb
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-5.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-6.png b/reports/bridge-model-acceptance-20260921/task-88-step-6.png
new file mode 100644
index 0000000..eca8a49
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-6.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-7.png b/reports/bridge-model-acceptance-20260921/task-88-step-7.png
new file mode 100644
index 0000000..9dccefe
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-7.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-8.png b/reports/bridge-model-acceptance-20260921/task-88-step-8.png
new file mode 100644
index 0000000..ffcc926
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-8.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-step-9.png b/reports/bridge-model-acceptance-20260921/task-88-step-9.png
new file mode 100644
index 0000000..1db1ce5
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-step-9.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-88-translucent.png b/reports/bridge-model-acceptance-20260921/task-88-translucent.png
new file mode 100644
index 0000000..999a81c
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-88-translucent.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-fullscreen.png b/reports/bridge-model-acceptance-20260921/task-89-fullscreen.png
new file mode 100644
index 0000000..ea48e02
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-fullscreen.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-initial.png b/reports/bridge-model-acceptance-20260921/task-89-initial.png
new file mode 100644
index 0000000..0a28c47
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-initial.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-1.png b/reports/bridge-model-acceptance-20260921/task-89-step-1.png
new file mode 100644
index 0000000..5694ec5
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-1.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-10.png b/reports/bridge-model-acceptance-20260921/task-89-step-10.png
new file mode 100644
index 0000000..a9da517
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-10.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-11.png b/reports/bridge-model-acceptance-20260921/task-89-step-11.png
new file mode 100644
index 0000000..2de6a58
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-11.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-12.png b/reports/bridge-model-acceptance-20260921/task-89-step-12.png
new file mode 100644
index 0000000..631ed48
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-12.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-13.png b/reports/bridge-model-acceptance-20260921/task-89-step-13.png
new file mode 100644
index 0000000..60c57f9
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-13.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-14.png b/reports/bridge-model-acceptance-20260921/task-89-step-14.png
new file mode 100644
index 0000000..c97c070
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-14.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-15.png b/reports/bridge-model-acceptance-20260921/task-89-step-15.png
new file mode 100644
index 0000000..f08d2c2
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-15.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-16.png b/reports/bridge-model-acceptance-20260921/task-89-step-16.png
new file mode 100644
index 0000000..fbd3e32
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-16.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-2.png b/reports/bridge-model-acceptance-20260921/task-89-step-2.png
new file mode 100644
index 0000000..033e5e4
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-2.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-3.png b/reports/bridge-model-acceptance-20260921/task-89-step-3.png
new file mode 100644
index 0000000..9f6ac79
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-3.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-4.png b/reports/bridge-model-acceptance-20260921/task-89-step-4.png
new file mode 100644
index 0000000..37b3943
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-4.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-5.png b/reports/bridge-model-acceptance-20260921/task-89-step-5.png
new file mode 100644
index 0000000..85d3507
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-5.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-6.png b/reports/bridge-model-acceptance-20260921/task-89-step-6.png
new file mode 100644
index 0000000..8e9fc76
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-6.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-7.png b/reports/bridge-model-acceptance-20260921/task-89-step-7.png
new file mode 100644
index 0000000..15ac472
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-7.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-8.png b/reports/bridge-model-acceptance-20260921/task-89-step-8.png
new file mode 100644
index 0000000..a487344
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-8.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-step-9.png b/reports/bridge-model-acceptance-20260921/task-89-step-9.png
new file mode 100644
index 0000000..e35701d
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-step-9.png differ
diff --git a/reports/bridge-model-acceptance-20260921/task-89-translucent.png b/reports/bridge-model-acceptance-20260921/task-89-translucent.png
new file mode 100644
index 0000000..2824114
Binary files /dev/null and b/reports/bridge-model-acceptance-20260921/task-89-translucent.png differ
diff --git a/reports/bridge-model-acceptance-20260921/验收报告.md b/reports/bridge-model-acceptance-20260921/验收报告.md
new file mode 100644
index 0000000..451077d
--- /dev/null
+++ b/reports/bridge-model-acceptance-20260921/验收报告.md
@@ -0,0 +1,76 @@
+# 四套脚本新模型逐步验收(2026-09-21)
+
+对照原始工作簿,检查当前接口任务定义、GLB节点与运行时代码,并用真实浏览器逐项操作。工作簿内容与2026-09-17提取件一致,本次重新读取并记录SHA-256。
+
+## 结论
+
+本次实际完成新模型95项机构操作;另独立验证原正式005的5步6项操作通过。截图中半透明、标签展开等为测试主动使用的检视工具状态,不表示默认视图。
+
+- 新模型39步:39/39步完成全部配置操作;浏览器总结果:通过。
+- 内容匹配:基本对应 9步;简化实现 23步;待资料确认 5步;关键内容缺失 2步。这些是内容判断,不能用交互通关替代。
+- 005正式任务86仍使用旧“步骤模型.glb”;新模型005在验证任务116。006~008正式任务87~89已使用0916新模型。本次没有擅自更换任务版本。
+- 006第7步的整机正常作业、007第11步的试车验证,目前只有示意手柄,不能按原要求完成。
+- 008第11/15步装拆方向、12/16步是否两组螺栓、007第2步球阀编号,仍需专业资料确认。
+- 所有新GLB均无内嵌动画;局部机构动画由运行代码实现。提供的“开口扳手.glb”未接入当前场景,工具操作并非模型里自动具备。
+
+## 每一步
+
+|流程|步|步骤|内容匹配|操作验证|缺口/边界|原表|
+|---|---:|---|---|---|---|---|
+|005|1|根据故障现象确定是哪一个液压泵发生故障|简化实现|1/1|真实前泵可点选确认;故障由脚本预设,没有两个泵之间的诊断分支。|1-动画!B30:D30|
+|005|2|断开架桥车取力器|基本对应|1/1|真实取力器开关可旋转断开;模型命名及原稿均提示该开关实物准确性仍需确认。|1-动画!B31:D31|
+|005|3|将架桥车备胎斜上方链接两个红色滤油器的球阀打开|基本对应|1/1|真实球阀手柄旋转;已验证交互,最终与管轴平行关系仍需实装确认。|1-动画!B32:D32|
+|005|4|重新联通取力器|基本对应|1/1|同一取力器开关反向旋转复位,接通动作可完成。|1-动画!B33:D33|
+|005|5|打开辅助控制盒内的“互救”开关|基本对应|2/2|真实盒盖与互救开关分两次操作;盒盖铰链、手柄固定端转轴已有。单泵驱动整车的结果动画未接入。|1-动画!B34:D34|
+|006|1|保持架桥车运行并断开取力器|简化实现|2/2|发动机以颜色表示运行,取力器开关可断开;无发动机/液压动力联动。|1-动画!B39:D39|
+|006|2|连接两车液压软管|简化实现|2/2|双车、接口盖和两条真实软管存在;移动盖子后显示预成形软管,没有快接插入与锁紧动作。|1-动画!B40:D40|
+|006|3|打开支援车回油截止阀|基本对应|1/1|使用保障车独立回油截止阀节点,可旋转打开;实装位置待专业确认。|1-动画!B41:D41|
+|006|4|打开互救作业开关|基本对应|2/2|使用真实盒盖和互救开关;与005是否同一开关,原表列为待澄清项。|1-动画!B42:D42|
+|006|5|打开滤油器出口连通球阀|基本对应|2/2|两个独立滤油器出口球阀均绑定,必须分别完成操作。|1-动画!B43:D43|
+|006|6|接通支援车液压取力器|简化实现|2/2|保障车GLB只有整车、玻璃、接口盖、回油阀四个网格;取力器开关是代码补充件,供油靠软管变色表示。|1-动画!B44:D44|
+|006|7|按正常步骤操作架桥车|关键内容缺失|1/1|可移动示意手柄结束步骤,但没有“按正常步骤操作架桥车”的整机作业动作。不能据此验收正常作业已完成。|1-动画!B45:D45|
+|007|1|停机并初裁牛皮纸|简化实现|2/2|停机着色及牛皮纸缩放已实现;未用裁剪工具沿真实结合面轮廓裁切。|1-动画!B47:D47|
+|007|2|关闭液压油箱出油口一号球阀|待资料确认|1/1|绑定2_07球阀开关02和3-02球阀开关,能关闭;是否对应“1号球阀”须确认编号。|1-动画!B48:D48|
+|007|3|拆开并包扎进出油管|简化实现|4/4|进出油接头与两封口袋可独立操作;接头只有位移,缺大活动扳手旋松及包扎动作。|1-动画!B49:D49|
+|007|4|拆下四个安装螺栓|简化实现|4/4|两组源网格拆成四颗真实螺栓,逐颗旋转拆下;无开口扳手动作,旋转行程为示意。|1-动画!B50:D50|
+|007|5|取下旧前泵|基本对应|1/1|原位旧前泵可取下,安装位置保留。|1-动画!B51:D51|
+|007|6|修裁牛皮纸|简化实现|1/1|从初裁纸切换为精裁纸垫几何;没有实际轮廓裁切过程。|1-动画!B52:D52|
+|007|7|放置牛皮纸垫|简化实现|1/1|纸垫可移动到取力器接口;贴合位置按偏移估算,尚缺结合面形状尺寸验收依据。|1-动画!B53:D53|
+|007|8|安装新液压泵|基本对应|5/5|新泵归位并安装四颗螺栓;新旧泵复用同一源几何。不能据此验收扭矩或装配尺寸。|1-动画!B54:D54|
+|007|9|向新泵加注液压油|简化实现|2/2|真实加油口盖随新泵移动,可打开;加油壶与油流是补充件,无油量计算及关盖动作。|1-动画!B55:D55|
+|007|10|恢复进出油管连接|简化实现|4/4|取袋和接头归位可完成;没有“拧紧”的接头旋转及扳手动作。|1-动画!B56:D56|
+|007|11|启动设备试验|关键内容缺失|2/2|发动机变色、示意试验手柄可操作;没有整机试车工况、泄漏检查、压力响应与合格判据。|1-动画!B57:D57|
+|008|1|清洗小腔平衡阀|简化实现|1/1|补充布块移动和阀体变色;没有清洗剂、油污到洁净的材质变化及各管接头擦拭。|1-动画!B59:D59|
+|008|2|拆开小腔控制油口管路|简化实现|2/2|真实管接头移开、封口袋就位;无19号开口扳手及旋松过程。|1-动画!B60:D60|
+|008|3|拆下小腔平衡阀|简化实现|5/5|四颗真实安装螺栓分别拆除并取阀;无8号内六角工具。|1-动画!B61:D61|
+|008|4|封堵小腔油口|简化实现|3/3|两个真实油堵分别封堵;擦净结合面仅为示意阀座平面变色。|1-动画!B62:D62|
+|008|5|清洗大腔平衡阀|简化实现|1/1|同小腔,补充布块移动、阀体变色;缺去污材质和管接头清洗。|1-动画!B64:D64|
+|008|6|拆开大腔控制油口管路|简化实现|2/2|真实大腔接头和封口袋可操作;无19号扳手和接头旋松。|1-动画!B65:D65|
+|008|7|拆下大腔平衡阀|简化实现|5/5|四颗真实安装螺栓与大腔阀体可拆除;无8号内六角工具。|1-动画!B66:D66|
+|008|8|封堵大腔油口|简化实现|3/3|两个真实油堵可封堵;阀座接触面仍是代码补充平面。|1-动画!B67:D67|
+|008|9|准备安装大腔平衡阀|简化实现|3/3|示意阀座变色及两个油堵移开;缺阀体、阀座双方的擦拭动作。|1-动画!B69:D69|
+|008|10|安装大腔平衡阀|简化实现|5/5|小腔来源阀换装到大腔位置,按四螺栓安装面换算朝向;可安装四颗螺栓,缺内六角工具。|1-动画!B70:D70|
+|008|11|核对大腔控制油口管路连接|待资料确认|2/2|原表同时写连接拧紧与拆开包扎。当前执行取袋接管并要求记录依据,交教员核对;不能自动判为正确装配。|1-动画!B71:D71|
+|008|12|紧固大腔阀体连接螺栓|待资料确认|4/4|复用第10步同一组四颗螺栓再次旋转。若固定螺栓和阀体连接螺栓是两组,当前缺第二组。|1-动画!B72:D72|
+|008|13|准备安装小腔平衡阀|简化实现|3/3|示意阀座变色及两个油堵移开;缺阀体和阀座双面擦拭。|1-动画!B74:D74|
+|008|14|安装小腔平衡阀|简化实现|5/5|大腔来源阀换装到小腔位置并调整朝向;四颗真实螺栓可装,缺内六角工具。|1-动画!B75:D75|
+|008|15|核对小腔控制油口管路连接|待资料确认|2/2|与第11步相同的装/拆原文矛盾;保留人工依据与教员核对,不能当作已澄清。|1-动画!B76:D76|
+|008|16|紧固小腔阀体连接螺栓|待资料确认|4/4|复用第14步四颗螺栓。是否另有一组四颗阀体连接螺栓仍待确认。|1-动画!B77:D77|
+
+## 优先补齐
+
+1. 006最后一步、007试车:需明确整机作业内容及试车合格判据,再绑定真实机构联动,不能仅移动示意开关。
+2. 008两组螺栓及装拆矛盾、007球阀编号:请模型/业务人员确认后才能据此更改评分或动作。
+3. 接入已有开口扳手,补充内六角工具、接头旋紧动作;工具规格与接触点需要核验。
+4. 补齐纸垫真实结合面尺寸、清洗去污、加油口关闭;005补充独立后泵定位及单泵工作结果演示。
+5. 005从验证入口切换正式任务另走内容发布与模型换版,避免影响已有运行。
+
+## 讲解与背景范围
+
+背景和讲解页已存在,不能继续沿用旧报告“没有导入页面”的结论。但文字/背景图不等于液压原理图和动态供油回路;原表要求的液压原理图、三类环境素材及整机作业演示仍需单独验收。本次新数字人资源覆盖39个操作步骤。
+
+## 验证边界
+
+仅教员预览真实点击/拖拽、准备与服务端步骤校验;不写学员成绩,不等同实装质量、工具尺寸、扭矩、压力和安全流程验收。
+
+新模型文件已逐项与用户提供原文件核对SHA-256。步骤截图、接口快照、原表提取、模型节点清单与实时操作结果都保存在本报告目录。
diff --git a/reports/bridge-narration-junhao-20260921/005-frame-review.jpg b/reports/bridge-narration-junhao-20260921/005-frame-review.jpg
new file mode 100644
index 0000000..c790ce3
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/005-frame-review.jpg differ
diff --git a/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-005-new-video.png b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-005-new-video.png
new file mode 100644
index 0000000..7c85278
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-005-new-video.png differ
diff --git a/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-006-new-video.png b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-006-new-video.png
new file mode 100644
index 0000000..766a574
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-006-new-video.png differ
diff --git a/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-007-new-video.png b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-007-new-video.png
new file mode 100644
index 0000000..a8076dd
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-007-new-video.png differ
diff --git a/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-008-new-video.png b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-008-new-video.png
new file mode 100644
index 0000000..adc852c
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/TASK-VIRTUAL-008-new-video.png differ
diff --git a/reports/bridge-narration-junhao-20260921/activation.json b/reports/bridge-narration-junhao-20260921/activation.json
new file mode 100644
index 0000000..38f6c5b
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/activation.json
@@ -0,0 +1,8 @@
+{
+ "release": "junhao-v2-20260921",
+ "oldMediaCount": 80,
+ "oldMediaUnchanged": true,
+ "clips": 39,
+ "qualityPassed": true,
+ "taskDefinitionsChanged": false
+}
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/audio-manifest.json b/reports/bridge-narration-junhao-20260921/audio-manifest.json
new file mode 100644
index 0000000..582409b
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/audio-manifest.json
@@ -0,0 +1,495 @@
+{
+ "voice": {
+ "revision": "junhao-v2-20260921",
+ "agent": "测试虚拟教员",
+ "agentSlug": "dh-ffcaecf8b65d",
+ "agentDataVersion": 19,
+ "avatarName": "教员1",
+ "providerAvatarId": "a1000000000000000000000000000005",
+ "voice": "MOSS · Junhao",
+ "voiceCapabilityId": "builtin-voice-moss-junhao",
+ "engine": "MOSS-TTS-Nano",
+ "speaker": "Junhao",
+ "speed": 1.0,
+ "materialVersion": "v2",
+ "width": 480,
+ "height": 640,
+ "fps": 25,
+ "lipAndPlaybackInput": "same mono 16kHz PCM16 WAV",
+ "pauseProcessing": "silence below -48dB longer than 0.65s shortened to 0.32s",
+ "avatarManifestSha256": "8155a21af68b60ea024c7591c8ad454aa9884a2c7d22cb069c16bb192bc4e122"
+ },
+ "scripts": [
+ {
+ "id": "bridge-pump-switch",
+ "version": "2",
+ "code": "TASK-VIRTUAL-005",
+ "title": "重型支援桥液压泵应急切换",
+ "source": "桥梁/文件2/4.jpg",
+ "steps": [
+ {
+ "stepCode": "front-pump-step-01",
+ "number": 1,
+ "expectedTitle": "根据故障现象确定是哪一个液压泵发生故障",
+ "expectedInstruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "text": "第一步,根据故障现象,确认是哪一个液压泵发生故障。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.wav",
+ "stepDuration": 5.5900625,
+ "stepSha256": "bc5a1de8b7b0af8821546413874961a8adcc7dab368090ea2e50f653115f34ca"
+ },
+ {
+ "stepCode": "front-pump-step-02",
+ "number": 2,
+ "expectedTitle": "断开架桥车取力器",
+ "expectedInstruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "text": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-02.wav",
+ "stepDuration": 4.508291666666667,
+ "stepSha256": "0e3966c2298dd7e22ec00e4f058e0e83981ed4d32e18369c25c2f8ac04ce2a76"
+ },
+ {
+ "stepCode": "front-pump-step-03",
+ "number": 3,
+ "expectedTitle": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "expectedInstruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "text": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-03.wav",
+ "stepDuration": 9.2885,
+ "stepSha256": "6618e6023ce1653042b715f1fcf7f7ff1a244e8932e702a0e8ff5c3a7193d6c3"
+ },
+ {
+ "stepCode": "front-pump-step-04",
+ "number": 4,
+ "expectedTitle": "重新联通取力器",
+ "expectedInstruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "text": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-04.wav",
+ "stepDuration": 4.835791666666666,
+ "stepSha256": "cfd2d19c5f400de716cf82cb519a181c1eb2d5fcbf9e62bd9eddc62649cb20c4"
+ },
+ {
+ "stepCode": "front-pump-step-05",
+ "number": 5,
+ "expectedTitle": "打开辅助控制盒内的“互救”开关",
+ "expectedInstruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "text": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-05.wav",
+ "stepDuration": 7.9308125,
+ "stepSha256": "e1befdbc2ef76c35a6fa8d0e596a9769bce19fd8bbb627232d33d468d2f97bc6"
+ }
+ ]
+ },
+ {
+ "id": "bridge-pump-substitute",
+ "version": "3",
+ "code": "TASK-VIRTUAL-006",
+ "title": "重型支援桥液压泵应急替代",
+ "source": "桥梁/文件2/5.jpg、6.jpg",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "保持架桥车运行并断开取力器",
+ "expectedInstruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "text": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.wav",
+ "stepDuration": 9.180875,
+ "stepSha256": "7f08b11a5a887f1d42f8fbfb89ef5299dee1fd6886f75dd707b54415a923e5c0"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "连接两车液压软管",
+ "expectedInstruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "text": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-02.wav",
+ "stepDuration": 13.432895833333333,
+ "stepSha256": "5e92281b2ed11f10b304c2f75baa7530aa06f377545a04a6c96c33aa543a0eec"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "打开支援车回油截止阀",
+ "expectedInstruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "text": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-03.wav",
+ "stepDuration": 7.062708333333333,
+ "stepSha256": "ffe83823c5d5abd47eae7a882b985afef9ff34649cabf3f1a1a84740ab7b7a89"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "打开互救作业开关",
+ "expectedInstruction": "打开辅助控制盒上的“互救作业”开关。",
+ "text": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-04.wav",
+ "stepDuration": 5.478833333333333,
+ "stepSha256": "1fdc5b85ce85c5b1013d93e8cddc12593b911ba5862744947c6a6b9e40c8338e"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "打开滤油器出口连通球阀",
+ "expectedInstruction": "打开两个输油滤油器出口处的连通球阀。",
+ "text": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-05.wav",
+ "stepDuration": 8.040229166666666,
+ "stepSha256": "47b4adecdd234d509c8ab94ec0039f1c5bd674ffbb3c8d8c82255e4ecbbaf04f"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "接通支援车液压取力器",
+ "expectedInstruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "text": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-06.wav",
+ "stepDuration": 6.6985625,
+ "stepSha256": "f1e8b7f54e540b7ea3d56ca866cce6a2a4ab2e211108ecd3694088cf8662b63c"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "按正常步骤操作架桥车",
+ "expectedInstruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "text": "第七步,按照正常操作步骤,操作架桥车。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.wav",
+ "stepDuration": 4.1680625,
+ "stepSha256": "c1133dc86ef2feab2e80e819740aebf3db93ac88a606e3fb0ecfce1323ab3167"
+ }
+ ]
+ },
+ {
+ "id": "bridge-pump-replace",
+ "version": "3",
+ "code": "TASK-VIRTUAL-007",
+ "title": "重型支援桥前泵换件修复",
+ "source": "桥梁/文件2/7.jpg、8.jpg",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "停机并初裁牛皮纸",
+ "expectedInstruction": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.wav",
+ "stepDuration": 8.514208333333332,
+ "stepSha256": "e9bce11fdd68ccda4ee72fabd3a3f9c7d94e91d1129a51356563e58bcb4c481d"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "关闭液压油箱出油口一号球阀",
+ "expectedInstruction": "将一号球阀手柄从平行管道转到垂直管道。",
+ "text": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-02.wav",
+ "stepDuration": 8.625541666666667,
+ "stepSha256": "12c0ab199cc465bf032b1573517beb37190266aed8ccbd737a298bad972b71c0"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "拆开并包扎进出油管",
+ "expectedInstruction": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "text": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-03.wav",
+ "stepDuration": 8.409583333333334,
+ "stepSha256": "dfd4ef206a8a2a88662a9387497a0e88b5902cc05d2db28e6a7f314c61e36ff6"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "拆下四个安装螺栓",
+ "expectedInstruction": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "text": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-04.wav",
+ "stepDuration": 6.8256875,
+ "stepSha256": "c1f86afb2ef776ded20262411c8f30791b3452654bc88d2f3a0c613eaa1b6e5b"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "取下旧前泵",
+ "expectedInstruction": "取下原前泵。",
+ "text": "第五步,取下发生故障的前部液压泵。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.wav",
+ "stepDuration": 4.147354166666666,
+ "stepSha256": "12729d37dff4222cfd2247511effb499b377a672b66566d52a224e8e05eb28f5"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "修裁牛皮纸",
+ "expectedInstruction": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "text": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-06.wav",
+ "stepDuration": 9.067791666666666,
+ "stepSha256": "01a5b2f70a439405bec413c60c2af77ab19a35b305371b6e1a73b91ac6ffdb2c"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "放置牛皮纸垫",
+ "expectedInstruction": "将裁好的牛皮纸放在取力器接口处。",
+ "text": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-07.wav",
+ "stepDuration": 5.917208333333333,
+ "stepSha256": "8cec361c85279854e2cc7ab52d86c585e867572653c1d67f52c687b6cc16824b"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-8",
+ "number": 8,
+ "expectedTitle": "安装新液压泵",
+ "expectedInstruction": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "text": "第8步,安装新液压泵。安装新的液压泵。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-08.wav",
+ "stepDuration": 4.149770833333333,
+ "stepSha256": "fd8368f88cade493ce87ac5c386cbf019e13881876004aae48cb3771560f5137"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-9",
+ "number": 9,
+ "expectedTitle": "向新泵加注液压油",
+ "expectedInstruction": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "text": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-09.wav",
+ "stepDuration": 6.706979166666667,
+ "stepSha256": "f1ad7a5a0eb57a5b0d53326dc1f4e1e486f339e36fb4cb6e578f19ced6ab8396"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-10",
+ "number": 10,
+ "expectedTitle": "恢复进出油管连接",
+ "expectedInstruction": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "text": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-10.wav",
+ "stepDuration": 6.988833333333333,
+ "stepSha256": "4a7e5ecb93b1c2e652984f61d27800c3b45c3871e804eed1d7b45d13bc823e64"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-11",
+ "number": 11,
+ "expectedTitle": "启动设备试验",
+ "expectedInstruction": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "text": "第11步,启动设备试验。启动设备进行试验。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-11.wav",
+ "stepDuration": 4.123208333333333,
+ "stepSha256": "edff35ec9425c44aa26d1054e6a379dd524fdc59a1f4fcba1c2ae7719205afaf"
+ }
+ ]
+ },
+ {
+ "id": "bridge-balance-valve-swap",
+ "version": "3",
+ "code": "TASK-VIRTUAL-008",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "source": "桥梁/文件2/9.jpg、10.jpg",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "清洗小腔平衡阀",
+ "expectedInstruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "text": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.wav",
+ "stepDuration": 7.271916666666667,
+ "stepSha256": "422e282bc0e3107a5420f3019ee29b45ca96cf3e5e5779556cf9622f0aa79e42"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "拆开小腔控制油口管路",
+ "expectedInstruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "text": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-02.wav",
+ "stepDuration": 9.819708333333333,
+ "stepSha256": "da959cff13b068572da4a9859a29b09d2370dcb4f7feced8200697aa044e18a6"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "拆下小腔平衡阀",
+ "expectedInstruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "text": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-03.wav",
+ "stepDuration": 7.1658125,
+ "stepSha256": "43eecdb643f0654505c7839be44629147a18bc16d53a2f54a2202a9e66f408f5"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "封堵小腔油口",
+ "expectedInstruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "text": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-04.wav",
+ "stepDuration": 6.804020833333333,
+ "stepSha256": "d9e4bf3e7cfb55bc9aaaa2c15dd12c70a04ac31da59fd779576307333216f60c"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "清洗大腔平衡阀",
+ "expectedInstruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "text": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-05.wav",
+ "stepDuration": 7.1415,
+ "stepSha256": "f5b085d1fa2ebb04cc8c638e5902ac5555c494817d8f5449d6203dc04c526b56"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "拆开大腔控制油口管路",
+ "expectedInstruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "text": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-06.wav",
+ "stepDuration": 7.975645833333333,
+ "stepSha256": "c624624b7131c622800e0c124b7934df5c56995750d49377e0b7f7cb02270af4"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "拆下大腔平衡阀",
+ "expectedInstruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "text": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-07.wav",
+ "stepDuration": 7.487666666666667,
+ "stepSha256": "e1af60ab666359ef67bb7f72ccb162966bba796d43555ae786205d26b8cf50bf"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-8",
+ "number": 8,
+ "expectedTitle": "封堵大腔油口",
+ "expectedInstruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "text": "第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.wav",
+ "stepDuration": 5.876479166666667,
+ "stepSha256": "a7dd8fdf33edf9829c1ed42a966cf7526d913c1f5ce88ef5484907b4e5db9a87"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-9",
+ "number": 9,
+ "expectedTitle": "准备安装大腔平衡阀",
+ "expectedInstruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "text": "第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.wav",
+ "stepDuration": 8.155604166666667,
+ "stepSha256": "82f94b806b887a81ab94e2fbf1b0cd8ff699bfe9ffbe606c44f255dd38e73d0f"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-10",
+ "number": 10,
+ "expectedTitle": "安装大腔平衡阀",
+ "expectedInstruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "text": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-10.wav",
+ "stepDuration": 8.6706875,
+ "stepSha256": "5a94875494870c27f7b83a0c26f2bbd5a5eb6efa693d6c4fc8bc19c4bba5249d"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-11",
+ "number": 11,
+ "expectedTitle": "核对大腔控制油口管路连接",
+ "expectedInstruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "text": "第11步,核对大腔控制油口管路连接。核对大腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "safetyText": "请记录控制油口管路的处理方式及依据,提交教员核对。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-11.wav",
+ "stepDuration": 10.3055625,
+ "stepSha256": "bd4be69a227537c50c81a7d8ecd03d1dd7fd53270aeb89b42555335619fbb964",
+ "safetyUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/safety-4485b025b0869e9b.wav",
+ "safetyDuration": 4.0796875,
+ "safetySha256": "dcd5d638f37b2379706263c82131095577e6f4b4353aa3eaddb0cab4524c70fc"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-12",
+ "number": 12,
+ "expectedTitle": "紧固大腔阀体连接螺栓",
+ "expectedInstruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "text": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-12.wav",
+ "stepDuration": 7.049729166666666,
+ "stepSha256": "0508cd1bb050dbf68609dfc51cb920a249e37151d36c8f6f9f887c3ff7f075cd"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-13",
+ "number": 13,
+ "expectedTitle": "准备安装小腔平衡阀",
+ "expectedInstruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "text": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-13.wav",
+ "stepDuration": 6.655458333333334,
+ "stepSha256": "fb09053a76dfcb7d8cf77f9e6acc6b903f33281f904434d8ae0090ba02d8e6b3"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-14",
+ "number": 14,
+ "expectedTitle": "安装小腔平衡阀",
+ "expectedInstruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "text": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-14.wav",
+ "stepDuration": 9.931458333333333,
+ "stepSha256": "113d188ab7c9683cc7dedc0f31f9faf5b4d42f422ef9da78988c3138e3d44c3c"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-15",
+ "number": 15,
+ "expectedTitle": "核对小腔控制油口管路连接",
+ "expectedInstruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "text": "第15步,核对小腔控制油口管路连接。核对小腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "safetyText": "请记录控制油口管路的处理方式及依据,提交教员核对。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-15.wav",
+ "stepDuration": 9.658125,
+ "stepSha256": "4f7a9dac1e437e4665ba6eaac7074a2ebe7ddeb4f99b02a63bc33ae597dc5706",
+ "safetyUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/safety-4485b025b0869e9b.wav",
+ "safetyDuration": 4.0796875,
+ "safetySha256": "dcd5d638f37b2379706263c82131095577e6f4b4353aa3eaddb0cab4524c70fc"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-16",
+ "number": 16,
+ "expectedTitle": "紧固小腔阀体连接螺栓",
+ "expectedInstruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "text": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "safetyText": "",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-16.wav",
+ "stepDuration": 7.864604166666667,
+ "stepSha256": "aed896c8f746641fe5601cf6f58ae2ee4b6e65b29b0af2ada2ef643385bd3ae0"
+ }
+ ]
+ }
+ ]
+}
diff --git a/reports/bridge-narration-junhao-20260921/generation.json b/reports/bridge-narration-junhao-20260921/generation.json
new file mode 100644
index 0000000..d4e5731
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/generation.json
@@ -0,0 +1,1001 @@
+{
+ "profile": {
+ "revision": "junhao-v2-20260921",
+ "agent": "测试虚拟教员",
+ "agentSlug": "dh-ffcaecf8b65d",
+ "agentDataVersion": 19,
+ "avatarName": "教员1",
+ "providerAvatarId": "a1000000000000000000000000000005",
+ "voice": "MOSS · Junhao",
+ "voiceCapabilityId": "builtin-voice-moss-junhao",
+ "engine": "MOSS-TTS-Nano",
+ "speaker": "Junhao",
+ "speed": 1.0,
+ "materialVersion": "v2",
+ "width": 480,
+ "height": 640,
+ "fps": 25,
+ "lipAndPlaybackInput": "same mono 16kHz PCM16 WAV",
+ "pauseProcessing": "silence below -48dB longer than 0.65s shortened to 0.32s",
+ "avatarManifestSha256": "8155a21af68b60ea024c7591c8ad454aa9884a2c7d22cb069c16bb192bc4e122"
+ },
+ "clips": [
+ {
+ "key": "TASK-VIRTUAL-005-step-01",
+ "code": "TASK-VIRTUAL-005",
+ "number": 1,
+ "title": "根据故障现象确定是哪一个液压泵发生故障",
+ "text": "第一步,根据故障现象,确认是哪一个液压泵发生故障。",
+ "duration": 5.5900625,
+ "rawDuration": 7.676645833333334,
+ "pauseCuts": [
+ {
+ "start": 0.581583,
+ "end": 1.937979,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.078458,
+ "end": 4.448646,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 5.88,
+ "audioSha256": "bc5a1de8b7b0af8821546413874961a8adcc7dab368090ea2e50f653115f34ca",
+ "videoSha256": "1f1c9d88b4840a9d829fde376b2f84d32a40d44501fffffcacfd4f28f9f14694",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-02",
+ "code": "TASK-VIRTUAL-005",
+ "number": 2,
+ "title": "断开架桥车取力器",
+ "text": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "duration": 4.508291666666667,
+ "rawDuration": 6.156375,
+ "pauseCuts": [
+ {
+ "start": 0.502208,
+ "end": 1.463979,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.126812,
+ "end": 4.453125,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 4.72,
+ "audioSha256": "0e3966c2298dd7e22ec00e4f058e0e83981ed4d32e18369c25c2f8ac04ce2a76",
+ "videoSha256": "048eea17d6b0486994eb8cadb84ea4e1b240c0fbaefa9ee1767f9be7fa9d5bdd",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-02.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-02.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-03",
+ "code": "TASK-VIRTUAL-005",
+ "number": 3,
+ "title": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "text": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "duration": 9.2885,
+ "rawDuration": 11.1179375,
+ "pauseCuts": [
+ {
+ "start": 0.705917,
+ "end": 1.678083,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 2.931563,
+ "end": 4.428833,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 9.52,
+ "audioSha256": "6618e6023ce1653042b715f1fcf7f7ff1a244e8932e702a0e8ff5c3a7193d6c3",
+ "videoSha256": "3ce0a02818a4fe79a48d8243b0902805e2226d6eb4bf5f09cdd8a859c00191e2",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-03.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-03.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-04",
+ "code": "TASK-VIRTUAL-005",
+ "number": 4,
+ "title": "重新联通取力器",
+ "text": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "duration": 4.835791666666666,
+ "rawDuration": 6.6371875,
+ "pauseCuts": [
+ {
+ "start": 0.629625,
+ "end": 1.575208,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 2.976396,
+ "end": 4.472208,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 5.12,
+ "audioSha256": "cfd2d19c5f400de716cf82cb519a181c1eb2d5fcbf9e62bd9eddc62649cb20c4",
+ "videoSha256": "bce9bfd1d0a96d38978f29159f0a4e565516dd2ae3deb80eb6cde84780e435cf",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-04.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-04.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-05",
+ "code": "TASK-VIRTUAL-005",
+ "number": 5,
+ "title": "打开辅助控制盒内的“互救”开关",
+ "text": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "duration": 7.9308125,
+ "rawDuration": 9.672583333333334,
+ "pauseCuts": [
+ {
+ "start": 0.579292,
+ "end": 1.490417,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.424771,
+ "end": 4.895417,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.08,
+ "audioSha256": "e1befdbc2ef76c35a6fa8d0e596a9769bce19fd8bbb627232d33d468d2f97bc6",
+ "videoSha256": "22df33fbc0b4c14c50328ddc361f71ca46089a2342163232a52ae7cd45b0d554",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-05.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-05.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-01",
+ "code": "TASK-VIRTUAL-006",
+ "number": 1,
+ "title": "保持架桥车运行并断开取力器",
+ "text": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "duration": 9.180875,
+ "rawDuration": 9.592416666666667,
+ "pauseCuts": [
+ {
+ "start": 0.582333,
+ "end": 1.313875,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 9.4,
+ "audioSha256": "7f08b11a5a887f1d42f8fbfb89ef5299dee1fd6886f75dd707b54415a923e5c0",
+ "videoSha256": "78c4ac8fddbcd7794afc921edc68c8109222200783d205631056b070b5715ff6",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-02",
+ "code": "TASK-VIRTUAL-006",
+ "number": 2,
+ "title": "连接两车液压软管",
+ "text": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "duration": 13.432895833333333,
+ "rawDuration": 16.076645833333334,
+ "pauseCuts": [
+ {
+ "start": 2.925,
+ "end": 4.466271,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 7.279667,
+ "end": 8.276542,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 11.32625,
+ "end": 12.391854,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 13.72,
+ "audioSha256": "5e92281b2ed11f10b304c2f75baa7530aa06f377545a04a6c96c33aa543a0eec",
+ "videoSha256": "5556bc1752237995a103f28a83b05f87093eba7dfcadbc948d185ba4392edc96",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-02.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-02.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-03",
+ "code": "TASK-VIRTUAL-006",
+ "number": 3,
+ "title": "打开支援车回油截止阀",
+ "text": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "duration": 7.062708333333333,
+ "rawDuration": 8.715645833333333,
+ "pauseCuts": [
+ {
+ "start": 0.558688,
+ "end": 1.447,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.532667,
+ "end": 4.937292,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.36,
+ "audioSha256": "ffe83823c5d5abd47eae7a882b985afef9ff34649cabf3f1a1a84740ab7b7a89",
+ "videoSha256": "95d4fb73d116fbe97fe4d0563bb2540a7031760c11829f7a7c4d095fa100e73d",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-03.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-03.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-04",
+ "code": "TASK-VIRTUAL-006",
+ "number": 4,
+ "title": "打开互救作业开关",
+ "text": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "duration": 5.478833333333333,
+ "rawDuration": 7.6725,
+ "pauseCuts": [
+ {
+ "start": 0.567042,
+ "end": 1.574437,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 2.987083,
+ "end": 4.813354,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 5.72,
+ "audioSha256": "1fdc5b85ce85c5b1013d93e8cddc12593b911ba5862744947c6a6b9e40c8338e",
+ "videoSha256": "2d64dabab5230a4e1436bb2e4b3d0d474b1e6e10fb2873ec003c4f047f84526b",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-04.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-04.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-05",
+ "code": "TASK-VIRTUAL-006",
+ "number": 5,
+ "title": "打开滤油器出口连通球阀",
+ "text": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "duration": 8.040229166666666,
+ "rawDuration": 8.713541666666666,
+ "pauseCuts": [
+ {
+ "start": 0.610396,
+ "end": 1.603708,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.36,
+ "audioSha256": "47b4adecdd234d509c8ab94ec0039f1c5bd674ffbb3c8d8c82255e4ecbbaf04f",
+ "videoSha256": "0a240839c426cfca2dc4334e773588e428eaea27e31714f7e021215505486134",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-05.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-05.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-06",
+ "code": "TASK-VIRTUAL-006",
+ "number": 6,
+ "title": "接通支援车液压取力器",
+ "text": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "duration": 6.6985625,
+ "rawDuration": 7.996854166666667,
+ "pauseCuts": [
+ {
+ "start": 0.56625,
+ "end": 1.577125,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.505375,
+ "end": 4.432792,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 6.84,
+ "audioSha256": "f1e8b7f54e540b7ea3d56ca866cce6a2a4ab2e211108ecd3694088cf8662b63c",
+ "videoSha256": "98cc5e425b5918000079be140ddedf02d16b4c7dca8871a276beb4f65259da8d",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-06.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-06.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-07",
+ "code": "TASK-VIRTUAL-006",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "text": "第七步,按照正常操作步骤,操作架桥车。",
+ "duration": 4.1680625,
+ "rawDuration": 4.794229166666667,
+ "pauseCuts": [
+ {
+ "start": 0.712479,
+ "end": 1.658646,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 4.4,
+ "audioSha256": "c1133dc86ef2feab2e80e819740aebf3db93ac88a606e3fb0ecfce1323ab3167",
+ "videoSha256": "0cc7e428a1b746de54ccd9d6706a46a3c1d447be7a2a99752d8ca8cc4282e77a",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-01",
+ "code": "TASK-VIRTUAL-007",
+ "number": 1,
+ "title": "停机并初裁牛皮纸",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "duration": 8.514208333333332,
+ "rawDuration": 12.237791666666666,
+ "pauseCuts": [
+ {
+ "start": 0.569146,
+ "end": 2.896708,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.641521,
+ "end": 5.988625,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 7.055958,
+ "end": 8.064875,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.68,
+ "audioSha256": "e9bce11fdd68ccda4ee72fabd3a3f9c7d94e91d1129a51356563e58bcb4c481d",
+ "videoSha256": "10a3f3b0c78c0aedee94d17a118c4e0ed46b7b4d94dc258e1f95acbcb7bc9289",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-02",
+ "code": "TASK-VIRTUAL-007",
+ "number": 2,
+ "title": "关闭液压油箱出油口一号球阀",
+ "text": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "duration": 8.625541666666667,
+ "rawDuration": 10.0740625,
+ "pauseCuts": [
+ {
+ "start": 0.610583,
+ "end": 1.619312,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.615896,
+ "end": 5.695688,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.88,
+ "audioSha256": "12c0ab199cc465bf032b1573517beb37190266aed8ccbd737a298bad972b71c0",
+ "videoSha256": "4c6f16027800fdb1a352cbf056b5c2c8a372b664245704dc5106828f51ce744e",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-02.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-02.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-03",
+ "code": "TASK-VIRTUAL-007",
+ "number": 3,
+ "title": "拆开并包扎进出油管",
+ "text": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "duration": 8.409583333333334,
+ "rawDuration": 10.39725,
+ "pauseCuts": [
+ {
+ "start": 2.691104,
+ "end": 4.998771,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.56,
+ "audioSha256": "dfd4ef206a8a2a88662a9387497a0e88b5902cc05d2db28e6a7f314c61e36ff6",
+ "videoSha256": "9af81f3791114af9f50860b88333888bdfa7b996c8182a45a931df82e959114f",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-03.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-03.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-04",
+ "code": "TASK-VIRTUAL-007",
+ "number": 4,
+ "title": "拆下四个安装螺栓",
+ "text": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "duration": 6.8256875,
+ "rawDuration": 11.0329375,
+ "pauseCuts": [
+ {
+ "start": 0.579187,
+ "end": 2.167958,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.602854,
+ "end": 6.861333,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 6.96,
+ "audioSha256": "c1f86afb2ef776ded20262411c8f30791b3452654bc88d2f3a0c613eaa1b6e5b",
+ "videoSha256": "39716062e06b70f6d52f9a4eb87a80c91e72a321e5ebd48c1b8113dd3380f5e6",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-04.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-04.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-05",
+ "code": "TASK-VIRTUAL-007",
+ "number": 5,
+ "title": "取下旧前泵",
+ "text": "第五步,取下发生故障的前部液压泵。",
+ "duration": 4.147354166666666,
+ "rawDuration": 4.793375,
+ "pauseCuts": [
+ {
+ "start": 0.561312,
+ "end": 1.527333,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 4.4,
+ "audioSha256": "12729d37dff4222cfd2247511effb499b377a672b66566d52a224e8e05eb28f5",
+ "videoSha256": "ef530aed60e20d356e291bfb39925ff4ec8c4ed3d3be4acc681e7905cf90ee36",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-06",
+ "code": "TASK-VIRTUAL-007",
+ "number": 6,
+ "title": "修裁牛皮纸",
+ "text": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "duration": 9.067791666666666,
+ "rawDuration": 10.391770833333334,
+ "pauseCuts": [
+ {
+ "start": 0.66225,
+ "end": 1.651437,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.013625,
+ "end": 3.988417,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 9.4,
+ "audioSha256": "01a5b2f70a439405bec413c60c2af77ab19a35b305371b6e1a73b91ac6ffdb2c",
+ "videoSha256": "d53f2bef5b0e5547c680fe98e3d7aa020fabf5242628f903430165e65ae872d0",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-06.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-06.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-07",
+ "code": "TASK-VIRTUAL-007",
+ "number": 7,
+ "title": "放置牛皮纸垫",
+ "text": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "duration": 5.917208333333333,
+ "rawDuration": 5.917208333333333,
+ "pauseCuts": [],
+ "videoDuration": 6.16,
+ "audioSha256": "8cec361c85279854e2cc7ab52d86c585e867572653c1d67f52c687b6cc16824b",
+ "videoSha256": "e8225937c25fb6a0978c0803ceb4efaa0947f08e48ccfa5be86f0f056943be5e",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-07.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-07.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-08",
+ "code": "TASK-VIRTUAL-007",
+ "number": 8,
+ "title": "安装新液压泵",
+ "text": "第8步,安装新液压泵。安装新的液压泵。",
+ "duration": 4.149770833333333,
+ "rawDuration": 5.198770833333334,
+ "pauseCuts": [
+ {
+ "start": 0.919396,
+ "end": 1.670729,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 2.86725,
+ "end": 3.804917,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 4.4,
+ "audioSha256": "fd8368f88cade493ce87ac5c386cbf019e13881876004aae48cb3771560f5137",
+ "videoSha256": "235398c28f7558352a80bc0aa2dd2678bf01b0910e1fe8a80ced21cd97c424d4",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-08.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-08.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-09",
+ "code": "TASK-VIRTUAL-007",
+ "number": 9,
+ "title": "向新泵加注液压油",
+ "text": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。",
+ "duration": 6.706979166666667,
+ "rawDuration": 9.832604166666666,
+ "pauseCuts": [
+ {
+ "start": 0.670292,
+ "end": 1.676,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.884437,
+ "end": 6.644354,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 6.88,
+ "audioSha256": "f1ad7a5a0eb57a5b0d53326dc1f4e1e486f339e36fb4cb6e578f19ced6ab8396",
+ "videoSha256": "7e2ed8add709aa1f5957e8c12cf905d918b021253197e5baf6fbd21519c7534d",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-09.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-09.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-10",
+ "code": "TASK-VIRTUAL-007",
+ "number": 10,
+ "title": "恢复进出油管连接",
+ "text": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "duration": 6.988833333333333,
+ "rawDuration": 8.556145833333334,
+ "pauseCuts": [
+ {
+ "start": 2.373771,
+ "end": 4.261083,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.32,
+ "audioSha256": "4a7e5ecb93b1c2e652984f61d27800c3b45c3871e804eed1d7b45d13bc823e64",
+ "videoSha256": "cea220f1b0094547a1033392b38bf44fe80827a3ea692a5642fb3e7d30c93d55",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-10.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-10.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-11",
+ "code": "TASK-VIRTUAL-007",
+ "number": 11,
+ "title": "启动设备试验",
+ "text": "第11步,启动设备试验。启动设备进行试验。",
+ "duration": 4.123208333333333,
+ "rawDuration": 5.519645833333334,
+ "pauseCuts": [
+ {
+ "start": 0.707646,
+ "end": 1.402562,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 2.649396,
+ "end": 3.990917,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 4.24,
+ "audioSha256": "edff35ec9425c44aa26d1054e6a379dd524fdc59a1f4fcba1c2ae7719205afaf",
+ "videoSha256": "857a911869eb44198b025a838c1e7986b167893b9d1a0f517f7729b1181750e0",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-11.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-11.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-01",
+ "code": "TASK-VIRTUAL-008",
+ "number": 1,
+ "title": "清洗小腔平衡阀",
+ "text": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "duration": 7.271916666666667,
+ "rawDuration": 10.393625,
+ "pauseCuts": [
+ {
+ "start": 0.582542,
+ "end": 1.620625,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.620417,
+ "end": 5.832167,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 8.500562,
+ "end": 9.332437,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.48,
+ "audioSha256": "422e282bc0e3107a5420f3019ee29b45ca96cf3e5e5779556cf9622f0aa79e42",
+ "videoSha256": "e70419c63a0d8936621e118785461158a1e639d57bbad60f852c332050c96ba1",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-02",
+ "code": "TASK-VIRTUAL-008",
+ "number": 2,
+ "title": "拆开小腔控制油口管路",
+ "text": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "duration": 9.819708333333333,
+ "rawDuration": 11.111770833333333,
+ "pauseCuts": [
+ {
+ "start": 0.610979,
+ "end": 1.875458,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.237229,
+ "end": 4.904813,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 10.0,
+ "audioSha256": "da959cff13b068572da4a9859a29b09d2370dcb4f7feced8200697aa044e18a6",
+ "videoSha256": "f7ef97db523bca45e659d5f2540775e1d3db90dab4273f65c142622fafec1cb0",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-02.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-02.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-03",
+ "code": "TASK-VIRTUAL-008",
+ "number": 3,
+ "title": "拆下小腔平衡阀",
+ "text": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "duration": 7.1658125,
+ "rawDuration": 9.5966875,
+ "pauseCuts": [
+ {
+ "start": 0.630917,
+ "end": 1.657792,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.069854,
+ "end": 5.113854,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.4,
+ "audioSha256": "43eecdb643f0654505c7839be44629147a18bc16d53a2f54a2202a9e66f408f5",
+ "videoSha256": "ee544089145d42e6c8b043155215c256070bac2f2ba3b6f8af427d733fc17a63",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-03.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-03.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-04",
+ "code": "TASK-VIRTUAL-008",
+ "number": 4,
+ "title": "封堵小腔油口",
+ "text": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "duration": 6.804020833333333,
+ "rawDuration": 7.518916666666667,
+ "pauseCuts": [
+ {
+ "start": 2.522125,
+ "end": 3.557021,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 6.88,
+ "audioSha256": "d9e4bf3e7cfb55bc9aaaa2c15dd12c70a04ac31da59fd779576307333216f60c",
+ "videoSha256": "f0e42b0e196bafc976f958aafe3d61bc7470f3f7223e551df7998c02263c8284",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-04.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-04.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-05",
+ "code": "TASK-VIRTUAL-008",
+ "number": 5,
+ "title": "清洗大腔平衡阀",
+ "text": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "duration": 7.1415,
+ "rawDuration": 7.516333333333334,
+ "pauseCuts": [
+ {
+ "start": 2.327417,
+ "end": 3.02225,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.36,
+ "audioSha256": "f5b085d1fa2ebb04cc8c638e5902ac5555c494817d8f5449d6203dc04c526b56",
+ "videoSha256": "6c70b944776a7cb128ef570008e18c4d7ada24ab9e1141d374a5ac46306f4da5",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-05.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-05.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-06",
+ "code": "TASK-VIRTUAL-008",
+ "number": 6,
+ "title": "拆开大腔控制油口管路",
+ "text": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "duration": 7.975645833333333,
+ "rawDuration": 9.194458333333333,
+ "pauseCuts": [
+ {
+ "start": 0.663271,
+ "end": 1.552,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.473583,
+ "end": 4.443667,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.16,
+ "audioSha256": "c624624b7131c622800e0c124b7934df5c56995750d49377e0b7f7cb02270af4",
+ "videoSha256": "41b5097bcdb8298e1daf62f2b3abe476977dca125b3ebf301a177fe1a95b916a",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-06.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-06.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-07",
+ "code": "TASK-VIRTUAL-008",
+ "number": 7,
+ "title": "拆下大腔平衡阀",
+ "text": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "duration": 7.487666666666667,
+ "rawDuration": 11.434,
+ "pauseCuts": [
+ {
+ "start": 0.714458,
+ "end": 3.023917,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.48625,
+ "end": 5.959854,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 9.13725,
+ "end": 10.260521,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.72,
+ "audioSha256": "e1af60ab666359ef67bb7f72ccb162966bba796d43555ae786205d26b8cf50bf",
+ "videoSha256": "19ddbaa145fbceda54807d7def679351dff77ece26e860920f54e59ecc9e67f5",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-07.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-07.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-08",
+ "code": "TASK-VIRTUAL-008",
+ "number": 8,
+ "title": "封堵大腔油口",
+ "text": "第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。",
+ "duration": 5.876479166666667,
+ "rawDuration": 6.396,
+ "pauseCuts": [
+ {
+ "start": 0.600979,
+ "end": 1.4405,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 6.16,
+ "audioSha256": "a7dd8fdf33edf9829c1ed42a966cf7526d913c1f5ce88ef5484907b4e5db9a87",
+ "videoSha256": "f2ea5d6f09c08b5a28b0e22cfb9de1227bc72823b75dc99496be0e870baa9ab3",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-09",
+ "code": "TASK-VIRTUAL-008",
+ "number": 9,
+ "title": "准备安装大腔平衡阀",
+ "text": "第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。",
+ "duration": 8.155604166666667,
+ "rawDuration": 8.155604166666667,
+ "pauseCuts": [],
+ "videoDuration": 8.44,
+ "audioSha256": "82f94b806b887a81ab94e2fbf1b0cd8ff699bfe9ffbe606c44f255dd38e73d0f",
+ "videoSha256": "c35b2d862896ca508d6991badabfb2a331c515b351d282d75174a3a76eeabb0c",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-10",
+ "code": "TASK-VIRTUAL-008",
+ "number": 10,
+ "title": "安装大腔平衡阀",
+ "text": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "duration": 8.6706875,
+ "rawDuration": 10.632145833333333,
+ "pauseCuts": [
+ {
+ "start": 0.634292,
+ "end": 1.873375,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.584208,
+ "end": 4.946583,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 9.04,
+ "audioSha256": "5a94875494870c27f7b83a0c26f2bbd5a5eb6efa693d6c4fc8bc19c4bba5249d",
+ "videoSha256": "b81832388ff8e000570d1ed4b8c9eebe83fe7f7890864802efcc924d3dbbedc7",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-10.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-10.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-11",
+ "code": "TASK-VIRTUAL-008",
+ "number": 11,
+ "title": "核对大腔控制油口管路连接",
+ "text": "第11步,核对大腔控制油口管路连接。核对大腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "duration": 10.3055625,
+ "rawDuration": 12.7143125,
+ "pauseCuts": [
+ {
+ "start": 0.753125,
+ "end": 1.878958,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.62,
+ "end": 6.542917,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 10.6,
+ "audioSha256": "bd4be69a227537c50c81a7d8ecd03d1dd7fd53270aeb89b42555335619fbb964",
+ "videoSha256": "f29c0bab1481152f39d44f68dca5a3f87178d5047b238b83cd936c6a62e9b4ce",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-11.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-11.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-12",
+ "code": "TASK-VIRTUAL-008",
+ "number": 12,
+ "title": "紧固大腔阀体连接螺栓",
+ "text": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "duration": 7.049729166666666,
+ "rawDuration": 9.8373125,
+ "pauseCuts": [
+ {
+ "start": 0.751021,
+ "end": 2.266854,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 4.071125,
+ "end": 5.982875,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.36,
+ "audioSha256": "0508cd1bb050dbf68609dfc51cb920a249e37151d36c8f6f9f887c3ff7f075cd",
+ "videoSha256": "20d103a2bf73ac67f624011dd136ef68c3ba62bc644df16d9f779e13d2dbfdb8",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-12.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-12.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-13",
+ "code": "TASK-VIRTUAL-008",
+ "number": 13,
+ "title": "准备安装小腔平衡阀",
+ "text": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "duration": 6.655458333333334,
+ "rawDuration": 7.5144166666666665,
+ "pauseCuts": [
+ {
+ "start": 0.931021,
+ "end": 1.652562,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.031979,
+ "end": 3.809396,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 7.0,
+ "audioSha256": "fb09053a76dfcb7d8cf77f9e6acc6b903f33281f904434d8ae0090ba02d8e6b3",
+ "videoSha256": "c4ea5cc4916f7ffd6f3a3a6ca3145c669c2d30998f9cbd300e1615ee9cc46e47",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-13.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-13.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-14",
+ "code": "TASK-VIRTUAL-008",
+ "number": 14,
+ "title": "安装小腔平衡阀",
+ "text": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "duration": 9.931458333333333,
+ "rawDuration": 19.352520833333333,
+ "pauseCuts": [
+ {
+ "start": 0.807458,
+ "end": 3.788604,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 5.136833,
+ "end": 6.875729,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 8.868688,
+ "end": 10.122146,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 13.655042,
+ "end": 18.382604,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 10.2,
+ "audioSha256": "113d188ab7c9683cc7dedc0f31f9faf5b4d42f422ef9da78988c3138e3d44c3c",
+ "videoSha256": "c12449d3d7ea0400f2771bfac8ef4a39b4fb74ad20573864052e2a6c92770289",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-14.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-14.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-15",
+ "code": "TASK-VIRTUAL-008",
+ "number": 15,
+ "title": "核对小腔控制油口管路连接",
+ "text": "第15步,核对小腔控制油口管路连接。核对小腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "duration": 9.658125,
+ "rawDuration": 11.030104166666666,
+ "pauseCuts": [
+ {
+ "start": 3.786062,
+ "end": 5.135833,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 8.986937,
+ "end": 9.649146,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 9.92,
+ "audioSha256": "4f7a9dac1e437e4665ba6eaac7074a2ebe7ddeb4f99b02a63bc33ae597dc5706",
+ "videoSha256": "b3eca4435a6def03796cac3d942c937113df8a187aad4c03b90dd74ff2320098",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-15.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-15.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-16",
+ "code": "TASK-VIRTUAL-008",
+ "number": 16,
+ "title": "紧固小腔阀体连接螺栓",
+ "text": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "duration": 7.864604166666667,
+ "rawDuration": 9.114354166666667,
+ "pauseCuts": [
+ {
+ "start": 0.789875,
+ "end": 1.670271,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.650021,
+ "end": 4.659375,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.12,
+ "audioSha256": "aed896c8f746641fe5601cf6f58ae2ee4b6e65b29b0af2ada2ef643385bd3ae0",
+ "videoSha256": "358eb10b0db772f883e87a4d468620c0c050f0441e20e9a59142ee2ce08d3437",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-16.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-16.mp4"
+ }
+ ]
+}
diff --git a/reports/bridge-narration-junhao-20260921/index.html b/reports/bridge-narration-junhao-20260921/index.html
new file mode 100644
index 0000000..8e3c459
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/index.html
@@ -0,0 +1 @@
+005~008 · Junhao 新讲解005~008 · 新版步骤讲解
教员1 v2 · MOSS · Junhao · 1.0倍速 · 3:439段视频,共296.84秒。对应39份新语音,复核提示音同样使用Junhao。旧版80个媒体文件全部保留。
本地任务已切换新版静态引用。音轨、编码和时长检查通过;发音、自然度和视觉口型仍需人工试听确认。
文件位置与回退方法 · 四套模型逐步验收
TASK-VIRTUAL-005 · 第1步
根据故障现象确定是哪一个液压泵发生故障
第一步,根据故障现象,确认是哪一个液压泵发生故障。
Junhao 语音 · 旧版视频对比 · 5.88秒
查看机器转写辅助记录
第一步根据故障现象确认是哪一个液压泵发生故障
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-005 · 第2步
断开架桥车取力器
第2步,断开架桥车取力器。将架桥车取力器断开。
Junhao 语音 · 旧版视频对比 · 4.72秒
查看机器转写辅助记录
第二步断开假桥车取利器将架桥车取利器断开
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-005 · 第3步
将架桥车备胎斜上方链接两个红色滤油器的球阀打开
第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。
Junhao 语音 · 旧版视频对比 · 9.52秒
查看机器转写辅助记录
第三步打开呼救囚阀打开备胎上方两个红色滤油器之间的联通球阀手柄由垂直管道转为平行管道
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-005 · 第4步
重新联通取力器
第4步,重新接通取力器。将架桥车取力器重新接通。
Junhao 语音 · 旧版视频对比 · 5.12秒
查看机器转写辅助记录
第四步重新接通取利器将架桥车取利器重新接通
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-005 · 第5步
打开辅助控制盒内的“互救”开关
第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。
Junhao 语音 · 旧版视频对比 · 8.08秒
查看机器转写辅助记录
第五步打开辅助控制猴呼救开关打开辅助控制盒盖再打开呼就开关进入单浦作业状态
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-006 · 第1步
保持架桥车运行并断开取力器
第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。
Junhao 语音 · 旧版视频对比 · 9.40秒
查看机器转写辅助记录
第一步保持架桥车运行并断开取粒器保持架桥车发动机运转确保架桥车取利器处于断开状态
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-006 · 第2步
连接两车液压软管
第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。
Junhao 语音 · 旧版视频对比 · 13.72秒
查看机器转写辅助记录
第二步连接两车液压软管连接支援车与架桥车液压软管架桥车快接接头位于液压油箱右侧支援车快接接头位于驾驶室外右下方
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-006 · 第3步
打开支援车回油截止阀
第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。
Junhao 语音 · 旧版视频对比 · 7.36秒
查看机器转写辅助记录
李三步打开支援车回油檄阀打开支援车页压油箱快接接头处的洪邮截止阀
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-006 · 第4步
打开互救作业开关
第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。
Junhao 语音 · 旧版视频对比 · 5.72秒
查看机器转写辅助记录
第四步打开呼救作业开关打开辅助控制盒上的呼救作业开关
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-006 · 第5步
打开滤油器出口连通球阀
第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。
Junhao 语音 · 旧版视频对比 · 8.36秒
查看机器转写辅助记录
第五步打开滤油器出口连同囚罚打开两个输油滤油器出口处的联通囚阀
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.19ms。TASK-VIRTUAL-006 · 第6步
接通支援车液压取力器
第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。
Junhao 语音 · 旧版视频对比 · 6.84秒
查看机器转写辅助记录
第六步接通支援车液压取力器接通支援车液压系统取利器向架桥车供油
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-006 · 第7步
按正常步骤操作架桥车
第七步,按照正常操作步骤,操作架桥车。
Junhao 语音 · 旧版视频对比 · 4.40秒
查看机器转写辅助记录
第七步按照正常操作步骤操作架桥车
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-007 · 第1步
停机并初裁牛皮纸
第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。
Junhao 语音 · 旧版视频对比 · 8.68秒
查看机器转写辅助记录
并第一步停机并初踩牛皮纸架桥车焰暗夜压泵与取力器结合面形状初步跪牛皮纸
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-007 · 第2步
关闭液压油箱出油口一号球阀
第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。
Junhao 语音 · 旧版视频对比 · 8.88秒
查看机器转写辅助记录
第二步关闭液压油箱出油口一号求法将一号球罚手柄从平行管道转到垂直管道
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-007 · 第3步
拆开并包扎进出油管
第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。
Junhao 语音 · 旧版视频对比 · 8.56秒
查看机器转写辅助记录
第三步拆开并包扎进出油管用大火洞扳手拆开液压泵进出油管接头用呆包扎管口
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-007 · 第4步
拆下四个安装螺栓
第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。
Junhao 语音 · 旧版视频对比 · 6.96秒
查看机器转写辅助记录
第四步拆下四个安装螺栓用开口扳手拆下液压泵与取利器之间的四个安装螺栓
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-007 · 第5步
取下旧前泵
第五步,取下发生故障的前部液压泵。
Junhao 语音 · 旧版视频对比 · 4.40秒
查看机器转写辅助记录
并不去下发生故障的前部液压泵
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-007 · 第6步
修裁牛皮纸
第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。
Junhao 语音 · 旧版视频对比 · 9.40秒
查看机器转写辅助记录
别留步修才牛皮纸进一步裁剪牛皮纸使其与液压泵安装面及取力器结合面吻合
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-007 · 第7步
放置牛皮纸垫
第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。
Junhao 语音 · 旧版视频对比 · 6.16秒
查看机器转写辅助记录
第七步放置牛皮纸店将裁好的牛皮纸放在取利器接口处
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-007 · 第8步
安装新液压泵
第8步,安装新液压泵。安装新的液压泵。
Junhao 语音 · 旧版视频对比 · 4.40秒
查看机器转写辅助记录
并立八部安装新液压泵安装新的液压泵
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-007 · 第9步
向新泵加注液压油
第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。
Junhao 语音 · 旧版视频对比 · 6.88秒
查看机器转写辅助记录
一九部向新迸加柱液压油打开新液压泵加油口加注液压油
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-007 · 第10步
恢复进出油管连接
第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。
Junhao 语音 · 旧版视频对比 · 7.32秒
查看机器转写辅助记录
历史部恢复进出油管连接用大活动扳手连接并拧紧液压浸出油管
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-007 · 第11步
启动设备试验
第11步,启动设备试验。启动设备进行试验。
Junhao 语音 · 旧版视频对比 · 4.24秒
查看机器转写辅助记录
你是一步启动设备试验启动设备进行试验
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-008 · 第1步
清洗小腔平衡阀
第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。
Junhao 语音 · 旧版视频对比 · 7.48秒
查看机器转写辅助记录
第一步清晰小枪平衡阀用清洗机清洗平衡阀和管接头并用麻布擦净
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.19ms。TASK-VIRTUAL-008 · 第2步
拆开小腔控制油口管路
第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。
Junhao 语音 · 旧版视频对比 · 10.00秒
查看机器转写辅助记录
第二步拆开小箱控制油口管路右十九号开口扳手拆开控制油口管路用塑料袋包扎管口
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第3步
拆下小腔平衡阀
第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。
Junhao 语音 · 旧版视频对比 · 7.40秒
查看机器转写辅助记录
因为三步拆下小羌平衡阀用八号内六角扳手拆下安装螺栓取下平衡阀
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第4步
封堵小腔油口
第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。
Junhao 语音 · 旧版视频对比 · 6.88秒
查看机器转写辅助记录
第四步封堵小枪油口用两个油堵封住两个油口擦进阀作结合面
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第5步
清洗大腔平衡阀
第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。
Junhao 语音 · 旧版视频对比 · 7.36秒
查看机器转写辅助记录
第五步清洗大腔平衡法用清洗剂清洗平衡逛和管接头并用抹布擦净
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第6步
拆开大腔控制油口管路
第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。
Junhao 语音 · 旧版视频对比 · 8.16秒
查看机器转写辅助记录
第六部拆开大箱控制油口管路用时九号开口泳拆开控制油口管路用呆袋包扎管口
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.19ms。TASK-VIRTUAL-008 · 第7步
拆下大腔平衡阀
第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。
Junhao 语音 · 旧版视频对比 · 7.72秒
查看机器转写辅助记录
第七步拆下大枪平衡法用八号内右脚泳手拆下安装螺栓取下平衡阀
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-008 · 第8步
封堵大腔油口
第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。
Junhao 语音 · 旧版视频对比 · 6.16秒
查看机器转写辅助记录
一八步用两个油堵封住大腔的两个油口并擦进阀作结合面
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第9步
准备安装大腔平衡阀
第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。
Junhao 语音 · 旧版视频对比 · 8.44秒
查看机器转写辅助记录
第九步准备安装大枪平衡阀擦进平衡阀及阀作结合面然后取下两个油堵
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-008 · 第10步
安装大腔平衡阀
第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。
Junhao 语音 · 旧版视频对比 · 9.04秒
查看机器转写辅助记录
近十步安装大枪平衡阀将平衡逗放置于阀座上用八号内六角扳手安装四个安装螺栓
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.19ms。TASK-VIRTUAL-008 · 第11步
核对大腔控制油口管路连接
第11步,核对大腔控制油口管路连接。核对大腔控制油口管路连接,记录处理方式及依据,并提交教员核对。
Junhao 语音 · 旧版视频对比 · 10.60秒
查看机器转写辅助记录
第十一部核对大箱控制有口管路连接和对大腔控制油口管路连接记录处理方式及依据并提交教员核对
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 28.5ms。TASK-VIRTUAL-008 · 第12步
紧固大腔阀体连接螺栓
第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。
Junhao 语音 · 旧版视频对比 · 7.36秒
查看机器转写辅助记录
第十二步紧顾大枪法体连接螺栓用内六角扳手拧紧四个法体连接螺栓
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第13步
准备安装小腔平衡阀
第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。
Junhao 语音 · 旧版视频对比 · 7.00秒
查看机器转写辅助记录
比十三部准备安装小相平衡法擦进平衡阀及阀作结合面取下两个油堵
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。TASK-VIRTUAL-008 · 第14步
安装小腔平衡阀
第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。
Junhao 语音 · 旧版视频对比 · 10.20秒
查看机器转写辅助记录
第十四部安装小箱平衡阀将平衡法放置于阀座上用八号内六角扳手安装四个安装螺栓但装螺栓
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.19ms。TASK-VIRTUAL-008 · 第15步
核对小腔控制油口管路连接
第15步,核对小腔控制油口管路连接。核对小腔控制油口管路连接,记录处理方式及依据,并提交教员核对。
Junhao 语音 · 旧版视频对比 · 9.92秒
查看机器转写辅助记录
必须五步核对小枪控制油口管路连接和对小箱控制油口管路连接记录处理方式及依据并提交教员核对
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 27.81ms。TASK-VIRTUAL-008 · 第16步
紧固小腔阀体连接螺栓
第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。
Junhao 语音 · 旧版视频对比 · 8.12秒
查看机器转写辅助记录
第十六步紧顾小枪法体连接螺栓右内六角扳手拧紧四个法体连接螺栓
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 29.81ms。
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/lan-playback.json b/reports/bridge-narration-junhao-20260921/lan-playback.json
new file mode 100644
index 0000000..7c7dd10
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/lan-playback.json
@@ -0,0 +1,43 @@
+{
+ "origin": "http://192.168.31.168:6180",
+ "pass": true,
+ "results": [
+ {
+ "code": "TASK-VIRTUAL-005",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-006",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-007",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-008",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/playback.json b/reports/bridge-narration-junhao-20260921/playback.json
new file mode 100644
index 0000000..fa7b7fe
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/playback.json
@@ -0,0 +1,43 @@
+{
+ "origin": "http://127.0.0.1:6180",
+ "pass": true,
+ "results": [
+ {
+ "code": "TASK-VIRTUAL-005",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-006",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-007",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ },
+ {
+ "code": "TASK-VIRTUAL-008",
+ "activeRelease": "junhao-v2-20260921",
+ "defaultVideo": true,
+ "newVideo": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.mp4",
+ "newAudioFallback": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.wav",
+ "failedVideoFallback": true,
+ "noPlaybackDuringLoading": true
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/previous-media.json b/reports/bridge-narration-junhao-20260921/previous-media.json
new file mode 100644
index 0000000..9a849f7
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/previous-media.json
@@ -0,0 +1,322 @@
+[
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-switch/v2/step-01-4b0be5be669cfeaf.wav",
+ "sha256": "3b29f93a367e7f8738500a2adeb56dc4752ce91f17e3b5bf671d3ee0f7f080eb"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-switch/v2/step-02-2e6be19cade105be.wav",
+ "sha256": "6483f2df65230985db961bef38b3c55684bc623058fc8c0589e66f816d62dc29"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-switch/v2/step-03-b2401eb08aa0a8e8.wav",
+ "sha256": "96f5889aa3ba307d05572b3912ebc5ac756b87957fddb2838e77a6b6f314296b"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-switch/v2/step-04-98693ab8c5150fd5.wav",
+ "sha256": "1cf2f643138ceddaf4c0cf5b751abe2e9f74437f68efb20e6acc5263311f1bc0"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-switch/v2/step-05-a21afc5ebe5af2ee.wav",
+ "sha256": "a6baf1bc2900f1daecbe77be41aeecc8914cc5ae3f170bbf7c7c7ded86f8a4a2"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-01-7584e4158566d224.wav",
+ "sha256": "7bd2bc0bab9f5009cb9bdae4d0b201e089cb18b7c2a5a5c5dee3fc8f215b0aa0"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-02-63419c9269e953d9.wav",
+ "sha256": "980996376e1eac8713b14fc6316e0ed1c611dce783341a45e85b6e6cc9d87d12"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-03-0ae0974737dbd97d.wav",
+ "sha256": "e07a1ae6033c7adca8b43a9eeedd8e69ae2d7d44613661ae6c93728276738dd7"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-04-12baddb3a8f3bc1b.wav",
+ "sha256": "916268d72d860334f7ca70c02c2611ee7a3ae407bba3293deb51068c9e727feb"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-05-0a5c8ac984f02d75.wav",
+ "sha256": "01f49e5a2f42288e6fd52f19633637d17164d23c16c7dea0e9aa95e6808a8838"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-06-9a08c1ab2cc3229b.wav",
+ "sha256": "4963fd312b6b021fbda36c1a96eef634b2ae7d8b5d72a76e01c5139502c9f40b"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-substitute/v3/step-07-9fa9d42953215bdd.wav",
+ "sha256": "2abb993085e1ad3a7ea7b4103d836cceab8a4d3821fcfaacf8799716882a16a2"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-01-2de2b12cc45b7893.wav",
+ "sha256": "2723f8e8db47cc3101bd88c1e5d0c57db1de676eeb10360e9c5ffaeafd483431"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-02-7144daf79c235d5e.wav",
+ "sha256": "b5a26f072f31dd75f813ef17f736eee0c1c5f3c49af87e9869f56d69714b7be9"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-03-005e99b68d7d893e.wav",
+ "sha256": "f92e26bc1e413ef3511841511ad1b40b39a6f608d4d5439a28ddef996444825c"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-04-26852f94d435cfca.wav",
+ "sha256": "599f8df6b367d3a1d846896ebb9d667059390f56d4fb9376756c685d1f47d98f"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-05-ddb3fcb704bf7442.wav",
+ "sha256": "ad5c7bbe9e306e758a650e6c6c58cfb6d918c2760634e64b8f97f7791ede8457"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-06-6f9c954385802ccc.wav",
+ "sha256": "714bdd7183c866bfb1543d44bd3da7dd2fd5063dfadfba468bafe9b38dd6080f"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-07-32e6e350e9bdf86c.wav",
+ "sha256": "47d92fb06b17c9cdf32cc1e6d35551f4759ec2a157bf8f2a19c1a3bd3046973a"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-08-3ceca5450b18c4ba.wav",
+ "sha256": "5dd1afc550ea20c1f728543dc01f6c4ce82af82c7cec216ee2452bc67d8291db"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-09-0bf9c5e7979deec8.wav",
+ "sha256": "14cdc8dae461a998f820fc2e4fc8739a061b69e83ce0f6b9d6155c80c49d1b02"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-10-d8d77b3072c93264.wav",
+ "sha256": "8107a88cadfc4d9d7e9d8d3887a1d521bf5606cb1e707e7b1fce6f37dd945477"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-pump-replace/v3/step-11-7617879d42c2d4e2.wav",
+ "sha256": "368b4ca3f55e9f20f2128d82db7b34283da0b53ef3fb8ffb7dc582e57fda7427"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-01-ea1da2456af43dba.wav",
+ "sha256": "ac012c8fb98f2bec6306f9191370db056dae1fa149a503b0935ed2693682ff04"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-02-ce4a4236a649cdaa.wav",
+ "sha256": "ee5a36959dc40a2b6add9867b9fb8133952e6631984d42a326737e86d8c59a04"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-03-10e99ab9d685c071.wav",
+ "sha256": "8916862dc0b935dc72b8c173d5454423b3d71f7d605f225236d4014c5352276e"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-04-637a9a4953c95518.wav",
+ "sha256": "fa373eae3647d10a3309f537ccc303ec23ada62600d922ebef6078d724d80842"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-05-3ec2faf63a53606b.wav",
+ "sha256": "2cf2bcb15e99e30fede366d563b566664abbe02373d2db06518701e8dc879d08"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-06-d799ca1e85de6dc1.wav",
+ "sha256": "5b5997cff09a9b8b5d0abf9c8ca42f9690ebcf3d1a14af5016a7d3e65aedb62c"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-07-e869fb72d97cc851.wav",
+ "sha256": "cac1312389c9bd08aebade4bc430a698610141785fb6ff3c7e1cb766a001c89b"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-08-cb20f78a2b88ab3d.wav",
+ "sha256": "1a6c29b60980f7e7e562008bd67893033fcb03ddf48750bbd7868af9c9363ec4"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-09-16254636cfc9d0c7.wav",
+ "sha256": "adb4d0d6341d324f7d90b55de072ad7820170a6dd456d2fe8a4adade4384e5b5"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-10-44988514081776bc.wav",
+ "sha256": "155824ee57251f1217a455a2e8d233a0d23daef7b74f5ff447409b903503895d"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-11-74165e700ea1b9a1.wav",
+ "sha256": "e27f07e1aa08e7436cb5956ff7207050df35ff3a72c95cec32c9ac546d66cdde"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/safety-11-cd17b636a027797c.wav",
+ "sha256": "5851d9f87954894e8da970e54eeb6c9a62b0bd109e35a7b7018ba2912c9cf8eb"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-12-990b9ddf6e1b0ced.wav",
+ "sha256": "e8ca6a606f3e18f82317211b0bbe4463c21743314ed1e7c67346d7d53fb3cb39"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-13-46556532f15bf882.wav",
+ "sha256": "af96100a06b9ef2faf41f8e4372c163e924b86163e7e41e65703dcf451a9154e"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-14-b6791d3d51bd7892.wav",
+ "sha256": "2f8020d015e761de746c4dd148eb90048e95dedf267d80dd454c3ce874d06487"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-15-f9d2e3b55442209e.wav",
+ "sha256": "e48c2d2ab65996db7106528bef5dbdd03ceea1b4fa961b9aee96ad581fd47ac5"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/safety-15-cd17b636a027797c.wav",
+ "sha256": "3e92f88eb2d9a4366926100e1fd386a8ad4072fbd551fdf471c2bcf24f772963"
+ },
+ {
+ "url": "/legacy/virtual-training/audio/narration/bridge-balance-valve-swap/v3/step-16-20ecc40d88e8c4e0.wav",
+ "sha256": "c943039c9c52878772f3b1bae62f3f03d4e633ea186578ed4aacb0fa08338bdf"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-switch/v2/instructor-1-v2/step-01-bd17dc16621458c4.mp4",
+ "sha256": "7db0b2653aa8719268764ff4fb4f1ede92c947b9f4603308ce2ad7d0903ac45c"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-switch/v2/instructor-1-v2/step-02-f485ff03a609c910.mp4",
+ "sha256": "421922b32e5a9cb84c2fef6d1b026918044af2ce1ce0b725a89b60900d2052ef"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-switch/v2/instructor-1-v2/step-03-81ea8dc0e23da76d.mp4",
+ "sha256": "4ff18d5fa228f6c040d39ec4f435fcac9eb9bfe768f108a27f57577ebcada362"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-switch/v2/instructor-1-v2/step-04-aa6bbd5769344dc0.mp4",
+ "sha256": "e841b61cf522ed5f1633b8569eba04bc17ee77d777f811ddbb2334abb856f2cb"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-switch/v2/instructor-1-v2/step-05-422f9e85bb468fd5.mp4",
+ "sha256": "6def38648367bbd7475e7bcba40d407d8530e9bbbdda128121c320ccd252275c"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-01-053bd89d013ca8c2.mp4",
+ "sha256": "87b2c3c11e2170f6be3e11c35d353e19a9772101d881b06d827912a97623ca18"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-02-7e103c9898230504.mp4",
+ "sha256": "19ecd4d56bd96f6c513f43abc2f5baaf8d0f53dae3edfaceda51dc82a9014f05"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-03-d0d26b774e96a981.mp4",
+ "sha256": "216e6300b28fcf5b34bb9afe8bf1339870d2d31dc8d2780f66bd4a338622878c"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-04-a7cafe4130983380.mp4",
+ "sha256": "1c22bb9066f42642903038fd2c6272603a5e758d95edf5f7f2447c9be82eb8a1"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-05-ef62a148cdeb4c73.mp4",
+ "sha256": "6aa84f6c7ed9017ec1789b70357d4163364512951568a028658a76b2a4566a72"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-06-f4bb8c70dc263869.mp4",
+ "sha256": "b4f70d76acf8bfc50952c2d981f8910d0da865a32639bb972508409e19404b1f"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-substitute/v3/instructor-1-v2/step-07-4c2f4821d77d37d6.mp4",
+ "sha256": "936edea840e0e1a08ebeb3033541afd8da7857109cb6935c95d33ba4feb35c80"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-01-071874b4ec4b9e19.mp4",
+ "sha256": "cbaf3a71793502c3f08262bba414c78c1565ba68e32f0dd51b82efaf35070ca7"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-02-26d142b67538ea4d.mp4",
+ "sha256": "1f1b83d60763eb2d71fd06654c6ace25cb73bd69bd7f31a72f930bbd75f6f72b"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-03-9e2b426e945678f0.mp4",
+ "sha256": "2b81b7b187f3445c2c72b1135ccc6a82b131635ff1de9fd2c42da7b70ceb95ce"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-04-fe998d3697e1a463.mp4",
+ "sha256": "6f49c2a6cdf334ef439ca1dd5b31ea8c31a6b0c39e5820bd821fe6f001cb7a3e"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-05-e0348b0ea0055779.mp4",
+ "sha256": "4ed2cee9a68503af9951909cf0162c03e978ff9fc5665a918bb3e634952547e1"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-06-488750524bd2c0a8.mp4",
+ "sha256": "be089ff024fb7166a408613a5f0afc1a19b4a33672f8be5d07b4347824900e48"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-07-5dbddd64c54251a5.mp4",
+ "sha256": "513e55b9110879d17d7bf45cc726b6642646731a657c0a276cc3c749ca768637"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-08-112b34220df76ad2.mp4",
+ "sha256": "a3407af6e75ccd86db414b7d4acd98f4c8782b617c4533bc9cc8e8c76b0d13ff"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-09-87051eca2269dcec.mp4",
+ "sha256": "e146ad861a508f8679eff1768c8a0d94e88dbf9d6807ca78923bb49f073df045"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-10-c14fe764c6a78575.mp4",
+ "sha256": "7f51d9ff1ce26c7a29ed6de1543a49883c0a46cad20e262c87aec79eb9a3afec"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-pump-replace/v3/instructor-1-v2/step-11-e3328d50b4700fb4.mp4",
+ "sha256": "af2151f73318dc03389466af1be454bda3e2ab3d719f590a8df038572819d612"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-01-8540f64d275cd500.mp4",
+ "sha256": "e9f87d4d2f08b827e66a769344493c8475ff51a974c37283b2bfb3edfcaf60d4"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-02-3ed7b91337a0c00e.mp4",
+ "sha256": "b8b4468ce061596ba616d6449c870627f5cc0d659786f0104a48406079990f4a"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-03-8dba240adff9be00.mp4",
+ "sha256": "63b2c9dd87654c9795d81c4dfa8149512dc0980b63e07990c0d0af3ad4515dba"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-04-24da11990de8e484.mp4",
+ "sha256": "c70d5879a4261e52ff84dc70ad4916cf553136307819144c9f8dc42ac43eb023"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-05-714a15e72dfa2832.mp4",
+ "sha256": "16cbea74ac0717dc600522796538740113c6c7018ff2ba7c341c2c90607e9a8b"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-06-5478cc2211086156.mp4",
+ "sha256": "3064f526e6a887cd892628420b0860240044f5bff9ab6b1431ab289f78d30fc2"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-07-98bf30b8947911aa.mp4",
+ "sha256": "098359d57fcd11fb7fcaaeff0d237373462674b7fe6fafcce03bbf6f5cb1a722"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-08-2101b2ebb4bf1783.mp4",
+ "sha256": "93c9f6c1ce727c7363b04b7f2ff359cb2b9509363ef597a1f20c30e5bac371d0"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-09-74cedc700826b5d5.mp4",
+ "sha256": "eab74396df9583d53a0262ca9440d3469fbdd33b1278fa8cda2f5902b137e70e"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-10-32f16dc6b235d2d6.mp4",
+ "sha256": "e600a45218921a3e06a3af53b6575858e641c294ac3913a9ffb4e68d0a4d2d5a"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-11-f5b91f1736b72a17.mp4",
+ "sha256": "f6c5140f910d0ded60194e2ecd2e07127bdb7cdd4f4e2eb4689f5a7bd97d317e"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-12-81396098754fccab.mp4",
+ "sha256": "355bf751999942f0e330115315ae31019b56a8263c237f041f7e54c5c4b1b81d"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-13-672e69748f537f2f.mp4",
+ "sha256": "0023ab39f3a28981c8819d1f6492c486f64cab9c850bf510749fef58adb7bd2f"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-14-0eaebfde856428f8.mp4",
+ "sha256": "14ea83fb883f2657d38a3851ebbfd608bc975027c8ba9ebc54883a2543f3bbb8"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-15-4469fbd3dc5cbb84.mp4",
+ "sha256": "9ed868f9c933e9cb21f898f99eb4833eb0f561d2dcd42da1173dc725a7fbcbfa"
+ },
+ {
+ "url": "/legacy/virtual-training/videos/narration/bridge-balance-valve-swap/v3/instructor-1-v2/step-16-ab6b316a229cd837.mp4",
+ "sha256": "ea676012e2a34aa57bcbc616042d71f9bd4e56e7d29cc4958cd2e973de72ff30"
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/quality.json b/reports/bridge-narration-junhao-20260921/quality.json
new file mode 100644
index 0000000..ca0fe2f
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/quality.json
@@ -0,0 +1,548 @@
+[
+ {
+ "key": "TASK-VIRTUAL-005-step-01",
+ "sha256": "1f1c9d88b4840a9d829fde376b2f84d32a40d44501fffffcacfd4f28f9f14694",
+ "text": "第一步,根据故障现象,确认是哪一个液压泵发生故障。",
+ "asrText": "第一步根据故障现象确认是哪一个液压泵发生故障",
+ "asrSimilarity": 1.0,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9977,
+ "sourceSeconds": 5.5900625,
+ "videoAudioSeconds": 5.6106875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-02",
+ "sha256": "048eea17d6b0486994eb8cadb84ea4e1b240c0fbaefa9ee1767f9be7fa9d5bdd",
+ "text": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "asrText": "第二步断开假桥车取利器将架桥车取利器断开",
+ "asrSimilarity": 0.85,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9972,
+ "sourceSeconds": 4.5083125,
+ "videoAudioSeconds": 4.5226875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-03",
+ "sha256": "3ce0a02818a4fe79a48d8243b0902805e2226d6eb4bf5f09cdd8a859c00191e2",
+ "text": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "asrText": "第三步打开呼救囚阀打开备胎上方两个红色滤油器之间的联通球阀手柄由垂直管道转为平行管道",
+ "asrSimilarity": 0.9286,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9931,
+ "sourceSeconds": 9.2885,
+ "videoAudioSeconds": 9.28,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-04",
+ "sha256": "bce9bfd1d0a96d38978f29159f0a4e565516dd2ae3deb80eb6cde84780e435cf",
+ "text": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "asrText": "第四步重新接通取利器将架桥车取利器重新接通",
+ "asrSimilarity": 0.9048,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9984,
+ "sourceSeconds": 4.8358125,
+ "videoAudioSeconds": 4.8213125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-005-step-05",
+ "sha256": "22df33fbc0b4c14c50328ddc361f71ca46089a2342163232a52ae7cd45b0d554",
+ "text": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "asrText": "第五步打开辅助控制猴呼救开关打开辅助控制盒盖再打开呼就开关进入单浦作业状态",
+ "asrSimilarity": 0.8649,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9948,
+ "sourceSeconds": 7.9308125,
+ "videoAudioSeconds": 7.9573125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-01",
+ "sha256": "78c4ac8fddbcd7794afc921edc68c8109222200783d205631056b070b5715ff6",
+ "text": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "asrText": "第一步保持架桥车运行并断开取粒器保持架桥车发动机运转确保架桥车取利器处于断开状态",
+ "asrSimilarity": 0.95,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9915,
+ "sourceSeconds": 9.180875,
+ "videoAudioSeconds": 9.216,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-02",
+ "sha256": "5556bc1752237995a103f28a83b05f87093eba7dfcadbc948d185ba4392edc96",
+ "text": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "asrText": "第二步连接两车液压软管连接支援车与架桥车液压软管架桥车快接接头位于液压油箱右侧支援车快接接头位于驾驶室外右下方",
+ "asrSimilarity": 1.0,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9971,
+ "sourceSeconds": 13.432875,
+ "videoAudioSeconds": 13.4186875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-03",
+ "sha256": "95d4fb73d116fbe97fe4d0563bb2540a7031760c11829f7a7c4d095fa100e73d",
+ "text": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "asrText": "李三步打开支援车回油檄阀打开支援车页压油箱快接接头处的洪邮截止阀",
+ "asrSimilarity": 0.8308,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9981,
+ "sourceSeconds": 7.0626875,
+ "videoAudioSeconds": 7.0613125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-04",
+ "sha256": "2d64dabab5230a4e1436bb2e4b3d0d474b1e6e10fb2873ec003c4f047f84526b",
+ "text": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "asrText": "第四步打开呼救作业开关打开辅助控制盒上的呼救作业开关",
+ "asrSimilarity": 0.9231,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9934,
+ "sourceSeconds": 5.4788125,
+ "videoAudioSeconds": 5.4826875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-05",
+ "sha256": "0a240839c426cfca2dc4334e773588e428eaea27e31714f7e021215505486134",
+ "text": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "asrText": "第五步打开滤油器出口连同囚罚打开两个输油滤油器出口处的联通囚阀",
+ "asrSimilarity": 0.8387,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.19,
+ "audioCorrelation": 0.9912,
+ "sourceSeconds": 8.04025,
+ "videoAudioSeconds": 8.064,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-06",
+ "sha256": "98cc5e425b5918000079be140ddedf02d16b4c7dca8871a276beb4f65259da8d",
+ "text": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "asrText": "第六步接通支援车液压取力器接通支援车液压系统取利器向架桥车供油",
+ "asrSimilarity": 0.9677,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9941,
+ "sourceSeconds": 6.6985625,
+ "videoAudioSeconds": 6.6986875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-01",
+ "sha256": "10a3f3b0c78c0aedee94d17a118c4e0ed46b7b4d94dc258e1f95acbcb7bc9289",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "asrText": "并第一步停机并初踩牛皮纸架桥车焰暗夜压泵与取力器结合面形状初步跪牛皮纸",
+ "asrSimilarity": 0.8169,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9979,
+ "sourceSeconds": 8.5141875,
+ "videoAudioSeconds": 8.4906875,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-02",
+ "sha256": "4c6f16027800fdb1a352cbf056b5c2c8a372b664245704dc5106828f51ce744e",
+ "text": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "asrText": "第二步关闭液压油箱出油口一号求法将一号球罚手柄从平行管道转到垂直管道",
+ "asrSimilarity": 0.9118,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9975,
+ "sourceSeconds": 8.6255625,
+ "videoAudioSeconds": 8.6186875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-03",
+ "sha256": "9af81f3791114af9f50860b88333888bdfa7b996c8182a45a931df82e959114f",
+ "text": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "asrText": "第三步拆开并包扎进出油管用大火洞扳手拆开液压泵进出油管接头用呆包扎管口",
+ "asrSimilarity": 0.8889,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9971,
+ "sourceSeconds": 8.4095625,
+ "videoAudioSeconds": 8.4266875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-04",
+ "sha256": "39716062e06b70f6d52f9a4eb87a80c91e72a321e5ebd48c1b8113dd3380f5e6",
+ "text": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "asrText": "第四步拆下四个安装螺栓用开口扳手拆下液压泵与取利器之间的四个安装螺栓",
+ "asrSimilarity": 0.9706,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9904,
+ "sourceSeconds": 6.8256875,
+ "videoAudioSeconds": 6.8053125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-06",
+ "sha256": "d53f2bef5b0e5547c680fe98e3d7aa020fabf5242628f903430165e65ae872d0",
+ "text": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "asrText": "别留步修才牛皮纸进一步裁剪牛皮纸使其与液压泵安装面及取力器结合面吻合",
+ "asrSimilarity": 0.9118,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9914,
+ "sourceSeconds": 9.0678125,
+ "videoAudioSeconds": 9.088,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-07",
+ "sha256": "e8225937c25fb6a0978c0803ceb4efaa0947f08e48ccfa5be86f0f056943be5e",
+ "text": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "asrText": "第七步放置牛皮纸店将裁好的牛皮纸放在取利器接口处",
+ "asrSimilarity": 0.9167,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9927,
+ "sourceSeconds": 5.9171875,
+ "videoAudioSeconds": 5.9093125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-08",
+ "sha256": "235398c28f7558352a80bc0aa2dd2678bf01b0910e1fe8a80ced21cd97c424d4",
+ "text": "第8步,安装新液压泵。安装新的液压泵。",
+ "asrText": "并立八部安装新液压泵安装新的液压泵",
+ "asrSimilarity": 0.8485,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9907,
+ "sourceSeconds": 4.14975,
+ "videoAudioSeconds": 4.1813125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-09",
+ "sha256": "7e2ed8add709aa1f5957e8c12cf905d918b021253197e5baf6fbd21519c7534d",
+ "text": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。",
+ "asrText": "一九部向新迸加柱液压油打开新液压泵加油口加注液压油",
+ "asrSimilarity": 0.84,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9944,
+ "sourceSeconds": 6.707,
+ "videoAudioSeconds": 6.6986875,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-10",
+ "sha256": "cea220f1b0094547a1033392b38bf44fe80827a3ea692a5642fb3e7d30c93d55",
+ "text": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "asrText": "历史部恢复进出油管连接用大活动扳手连接并拧紧液压浸出油管",
+ "asrSimilarity": 0.8421,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9947,
+ "sourceSeconds": 6.9888125,
+ "videoAudioSeconds": 6.9973125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-11",
+ "sha256": "857a911869eb44198b025a838c1e7986b167893b9d1a0f517f7729b1181750e0",
+ "text": "第11步,启动设备试验。启动设备进行试验。",
+ "asrText": "你是一步启动设备试验启动设备进行试验",
+ "asrSimilarity": 0.8889,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9887,
+ "sourceSeconds": 4.1231875,
+ "videoAudioSeconds": 4.1173125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-01",
+ "sha256": "e70419c63a0d8936621e118785461158a1e639d57bbad60f852c332050c96ba1",
+ "text": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "asrText": "第一步清晰小枪平衡阀用清洗机清洗平衡阀和管接头并用麻布擦净",
+ "asrSimilarity": 0.8621,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.19,
+ "audioCorrelation": 0.9916,
+ "sourceSeconds": 7.2719375,
+ "videoAudioSeconds": 7.296,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-02",
+ "sha256": "f7ef97db523bca45e659d5f2540775e1d3db90dab4273f65c142622fafec1cb0",
+ "text": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "asrText": "第二步拆开小箱控制油口管路右十九号开口扳手拆开控制油口管路用塑料袋包扎管口",
+ "asrSimilarity": 0.9459,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.992,
+ "sourceSeconds": 9.8196875,
+ "videoAudioSeconds": 9.8133125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-03",
+ "sha256": "ee544089145d42e6c8b043155215c256070bac2f2ba3b6f8af427d733fc17a63",
+ "text": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "asrText": "因为三步拆下小羌平衡阀用八号内六角扳手拆下安装螺栓取下平衡阀",
+ "asrSimilarity": 0.9153,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9914,
+ "sourceSeconds": 7.1658125,
+ "videoAudioSeconds": 7.168,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-04",
+ "sha256": "f0e42b0e196bafc976f958aafe3d61bc7470f3f7223e551df7998c02263c8284",
+ "text": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "asrText": "第四步封堵小枪油口用两个油堵封住两个油口擦进阀作结合面",
+ "asrSimilarity": 0.8889,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.995,
+ "sourceSeconds": 6.804,
+ "videoAudioSeconds": 6.8053125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-05",
+ "sha256": "6c70b944776a7cb128ef570008e18c4d7ada24ab9e1141d374a5ac46306f4da5",
+ "text": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "asrText": "第五步清洗大腔平衡法用清洗剂清洗平衡逛和管接头并用抹布擦净",
+ "asrSimilarity": 0.931,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9923,
+ "sourceSeconds": 7.1415,
+ "videoAudioSeconds": 7.168,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-06",
+ "sha256": "41b5097bcdb8298e1daf62f2b3abe476977dca125b3ebf301a177fe1a95b916a",
+ "text": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "asrText": "第六部拆开大箱控制油口管路用时九号开口泳拆开控制油口管路用呆袋包扎管口",
+ "asrSimilarity": 0.8333,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.19,
+ "audioCorrelation": 0.9917,
+ "sourceSeconds": 7.975625,
+ "videoAudioSeconds": 7.9573125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-07",
+ "sha256": "19ddbaa145fbceda54807d7def679351dff77ece26e860920f54e59ecc9e67f5",
+ "text": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "asrText": "第七步拆下大枪平衡法用八号内右脚泳手拆下安装螺栓取下平衡阀",
+ "asrSimilarity": 0.8276,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9974,
+ "sourceSeconds": 7.4876875,
+ "videoAudioSeconds": 7.4666875,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-10",
+ "sha256": "b81832388ff8e000570d1ed4b8c9eebe83fe7f7890864802efcc924d3dbbedc7",
+ "text": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "asrText": "近十步安装大枪平衡阀将平衡逗放置于阀座上用八号内六角扳手安装四个安装螺栓",
+ "asrSimilarity": 0.9167,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.19,
+ "audioCorrelation": 0.9908,
+ "sourceSeconds": 8.6706875,
+ "videoAudioSeconds": 8.6613125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-11",
+ "sha256": "f29c0bab1481152f39d44f68dca5a3f87178d5047b238b83cd936c6a62e9b4ce",
+ "text": "第11步,核对大腔控制油口管路连接。核对大腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "asrText": "第十一部核对大箱控制有口管路连接和对大腔控制油口管路连接记录处理方式及依据并提交教员核对",
+ "asrSimilarity": 0.9091,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9983,
+ "sourceSeconds": 10.3055625,
+ "videoAudioSeconds": 10.2826875,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-12",
+ "sha256": "20d103a2bf73ac67f624011dd136ef68c3ba62bc644df16d9f779e13d2dbfdb8",
+ "text": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "asrText": "第十二步紧顾大枪法体连接螺栓用内六角扳手拧紧四个法体连接螺栓",
+ "asrSimilarity": 0.8667,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9935,
+ "sourceSeconds": 7.04975,
+ "videoAudioSeconds": 7.0613125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-13",
+ "sha256": "c4ea5cc4916f7ffd6f3a3a6ca3145c669c2d30998f9cbd300e1615ee9cc46e47",
+ "text": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "asrText": "比十三部准备安装小相平衡法擦进平衡阀及阀作结合面取下两个油堵",
+ "asrSimilarity": 0.8,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.992,
+ "sourceSeconds": 6.6554375,
+ "videoAudioSeconds": 6.6346875,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-14",
+ "sha256": "c12449d3d7ea0400f2771bfac8ef4a39b4fb74ad20573864052e2a6c92770289",
+ "text": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "asrText": "第十四部安装小箱平衡阀将平衡法放置于阀座上用八号内六角扳手安装四个安装螺栓但装螺栓",
+ "asrSimilarity": 0.8718,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.19,
+ "audioCorrelation": 0.9912,
+ "sourceSeconds": 9.9314375,
+ "videoAudioSeconds": 9.9413125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-15",
+ "sha256": "b3eca4435a6def03796cac3d942c937113df8a187aad4c03b90dd74ff2320098",
+ "text": "第15步,核对小腔控制油口管路连接。核对小腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "asrText": "必须五步核对小枪控制油口管路连接和对小箱控制油口管路连接记录处理方式及依据并提交教员核对",
+ "asrSimilarity": 0.8864,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9945,
+ "sourceSeconds": 9.658125,
+ "videoAudioSeconds": 9.6213125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-16",
+ "sha256": "358eb10b0db772f883e87a4d468620c0c050f0441e20e9a59142ee2ce08d3437",
+ "text": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "asrText": "第十六步紧顾小枪法体连接螺栓右内六角扳手拧紧四个法体连接螺栓",
+ "asrSimilarity": 0.8333,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9922,
+ "sourceSeconds": 7.864625,
+ "videoAudioSeconds": 7.8933125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-006-step-07",
+ "sha256": "0cc7e428a1b746de54ccd9d6706a46a3c1d447be7a2a99752d8ca8cc4282e77a",
+ "text": "第七步,按照正常操作步骤,操作架桥车。",
+ "asrText": "第七步按照正常操作步骤操作架桥车",
+ "asrSimilarity": 1.0,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9981,
+ "sourceSeconds": 4.1680625,
+ "videoAudioSeconds": 4.1813125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-05",
+ "sha256": "ef530aed60e20d356e291bfb39925ff4ec8c4ed3d3be4acc681e7905cf90ee36",
+ "text": "第五步,取下发生故障的前部液压泵。",
+ "asrText": "并不去下发生故障的前部液压泵",
+ "asrSimilarity": 0.7586,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 28.5,
+ "audioCorrelation": 0.9977,
+ "sourceSeconds": 4.147375,
+ "videoAudioSeconds": 4.1813125,
+ "technicalPass": true,
+ "needsTranscriptReview": true
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-08",
+ "sha256": "f2ea5d6f09c08b5a28b0e22cfb9de1227bc72823b75dc99496be0e870baa9ab3",
+ "text": "第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。",
+ "asrText": "一八步用两个油堵封住大腔的两个油口并擦进阀作结合面",
+ "asrSimilarity": 0.88,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 27.81,
+ "audioCorrelation": 0.9949,
+ "sourceSeconds": 5.8765,
+ "videoAudioSeconds": 5.8453125,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-09",
+ "sha256": "c35b2d862896ca508d6991badabfb2a331c515b351d282d75174a3a76eeabb0c",
+ "text": "第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。",
+ "asrText": "第九步准备安装大枪平衡阀擦进平衡阀及阀作结合面然后取下两个油堵",
+ "asrSimilarity": 0.9032,
+ "asrTailSeconds": 0.8,
+ "audioLagMs": 29.81,
+ "audioCorrelation": 0.9933,
+ "sourceSeconds": 8.155625,
+ "videoAudioSeconds": 8.128,
+ "technicalPass": true,
+ "needsTranscriptReview": false
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/refinement-before.json b/reports/bridge-narration-junhao-20260921/refinement-before.json
new file mode 100644
index 0000000..52f152f
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/refinement-before.json
@@ -0,0 +1,95 @@
+[
+ {
+ "key": "TASK-VIRTUAL-006-step-07",
+ "code": "TASK-VIRTUAL-006",
+ "number": 7,
+ "title": "按正常步骤操作架桥车",
+ "text": "第7步,按正常步骤操作架桥车。按正常操作步骤操作架桥车。",
+ "duration": 5.807958333333334,
+ "rawDuration": 8.152541666666666,
+ "pauseCuts": [
+ {
+ "start": 0.654479,
+ "end": 1.928458,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.734104,
+ "end": 5.444708,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 5.96,
+ "audioSha256": "2c238a92e853c388433895375664a5013daa90e6deb14c4ba364a9649f943dc8",
+ "videoSha256": "39c219768dffb845b2a6ad2e30911aec788d3353e791733422271b74d5020cfa",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-007-step-05",
+ "code": "TASK-VIRTUAL-007",
+ "number": 5,
+ "title": "取下旧前泵",
+ "text": "第5步,取下旧前泵。取下原前泵。",
+ "duration": 3.4111041666666666,
+ "rawDuration": 5.5196875,
+ "pauseCuts": [
+ {
+ "start": 0.550312,
+ "end": 2.012229,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.188125,
+ "end": 4.474792,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 3.68,
+ "audioSha256": "121054c1262b6aed7a9ed6621065b9a729b5e048930df9b9ed275f91b0cdf1a3",
+ "videoSha256": "03266164836e13f2212decdb6c3644e1f16cefc0aea5868d41fdd1c5ca1d9c1a",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-08",
+ "code": "TASK-VIRTUAL-008",
+ "number": 8,
+ "title": "封堵大腔油口",
+ "text": "第8步,封堵大腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "duration": 7.032979166666666,
+ "rawDuration": 7.032979166666666,
+ "pauseCuts": [],
+ "videoDuration": 7.12,
+ "audioSha256": "92d3a549e183b1710f6fd74071401bbaa14c5630017c63f5612f468782950c63",
+ "videoSha256": "610cba8e9a81e1d2e6f8025d91b4fa0608b8cc096a5a17aa274a033fa836bc8d",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.mp4"
+ },
+ {
+ "key": "TASK-VIRTUAL-008-step-09",
+ "code": "TASK-VIRTUAL-008",
+ "number": 9,
+ "title": "准备安装大腔平衡阀",
+ "text": "第9步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "duration": 8.031229166666666,
+ "rawDuration": 9.197270833333333,
+ "pauseCuts": [
+ {
+ "start": 0.739292,
+ "end": 1.650083,
+ "keptSeconds": 0.32
+ },
+ {
+ "start": 3.905167,
+ "end": 4.800417,
+ "keptSeconds": 0.32
+ }
+ ],
+ "videoDuration": 8.32,
+ "audioSha256": "b086486d5a4c72e81e2492d0291c51e3dd4e271a72023b1b05d41dc28e6b22fd",
+ "videoSha256": "24004296ee1424a1c2187fa854ea77e16c37502d1f74656b0ffde93a466d0ced",
+ "audioUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.wav",
+ "videoUrl": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.mp4"
+ }
+]
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/report-preview.png b/reports/bridge-narration-junhao-20260921/report-preview.png
new file mode 100644
index 0000000..fb1d7c9
Binary files /dev/null and b/reports/bridge-narration-junhao-20260921/report-preview.png differ
diff --git a/reports/bridge-narration-junhao-20260921/verification.json b/reports/bridge-narration-junhao-20260921/verification.json
new file mode 100644
index 0000000..6c4878b
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/verification.json
@@ -0,0 +1,13 @@
+{
+ "clips": 39,
+ "oldMediaUnchanged": 80,
+ "technicalChecksPassed": 39,
+ "localPlayback": true,
+ "lanPlayback": true,
+ "modelStepsPassed": 39,
+ "modelOperationsPassed": 95,
+ "original005Passed": true,
+ "contractTests": 19,
+ "buildPassed": true,
+ "deployed": false
+}
\ No newline at end of file
diff --git a/reports/bridge-narration-junhao-20260921/video-manifest.json b/reports/bridge-narration-junhao-20260921/video-manifest.json
new file mode 100644
index 0000000..7ca1ff0
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/video-manifest.json
@@ -0,0 +1,446 @@
+{
+ "profile": {
+ "revision": "junhao-v2-20260921",
+ "agent": "测试虚拟教员",
+ "agentSlug": "dh-ffcaecf8b65d",
+ "agentDataVersion": 19,
+ "avatarName": "教员1",
+ "providerAvatarId": "a1000000000000000000000000000005",
+ "voice": "MOSS · Junhao",
+ "voiceCapabilityId": "builtin-voice-moss-junhao",
+ "engine": "MOSS-TTS-Nano",
+ "speaker": "Junhao",
+ "speed": 1.0,
+ "materialVersion": "v2",
+ "width": 480,
+ "height": 640,
+ "fps": 25,
+ "lipAndPlaybackInput": "same mono 16kHz PCM16 WAV",
+ "pauseProcessing": "silence below -48dB longer than 0.65s shortened to 0.32s",
+ "avatarManifestSha256": "8155a21af68b60ea024c7591c8ad454aa9884a2c7d22cb069c16bb192bc4e122"
+ },
+ "scripts": [
+ {
+ "id": "bridge-pump-switch",
+ "version": "2",
+ "code": "TASK-VIRTUAL-005",
+ "title": "重型支援桥液压泵应急切换",
+ "steps": [
+ {
+ "stepCode": "front-pump-step-01",
+ "number": 1,
+ "expectedTitle": "根据故障现象确定是哪一个液压泵发生故障",
+ "expectedInstruction": "根据故障现象确定是哪一个液压泵发生故障(注:模型_1液压泵标记出来。例如显红色)",
+ "text": "第一步,根据故障现象,确认是哪一个液压泵发生故障。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-01.mp4",
+ "duration": 5.88,
+ "sha256": "1f1c9d88b4840a9d829fde376b2f84d32a40d44501fffffcacfd4f28f9f14694"
+ },
+ {
+ "stepCode": "front-pump-step-02",
+ "number": 2,
+ "expectedTitle": "断开架桥车取力器",
+ "expectedInstruction": "断开架桥车取力器。(注:显示模型2取力器和2取力器开关,摇动模型2取力器开关。特别说明这个这边是早上随手补的不准确,车外看就行,不要拉近)",
+ "text": "第2步,断开架桥车取力器。将架桥车取力器断开。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-02.mp4",
+ "duration": 4.72,
+ "sha256": "048eea17d6b0486994eb8cadb84ea4e1b240c0fbaefa9ee1767f9be7fa9d5bdd"
+ },
+ {
+ "stepCode": "front-pump-step-03",
+ "number": 3,
+ "expectedTitle": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开",
+ "expectedInstruction": "将架桥车备胎斜上方链接两个红色滤油器的球阀打开。(注;把模型3球阀开关由垂直与官道方向旋转至平行于管道方向)",
+ "text": "第3步,打开互救球阀。打开备胎上方两个红色滤油器之间的连通球阀,手柄由垂直管道转为平行管道。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-03.mp4",
+ "duration": 9.52,
+ "sha256": "3ce0a02818a4fe79a48d8243b0902805e2226d6eb4bf5f09cdd8a859c00191e2"
+ },
+ {
+ "stepCode": "front-pump-step-04",
+ "number": 4,
+ "expectedTitle": "重新联通取力器",
+ "expectedInstruction": "重新联通取力器(注:把步骤2的2取力器开关摇回去:还是不要拉近)",
+ "text": "第4步,重新接通取力器。将架桥车取力器重新接通。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-04.mp4",
+ "duration": 5.12,
+ "sha256": "bce9bfd1d0a96d38978f29159f0a4e565516dd2ae3deb80eb6cde84780e435cf"
+ },
+ {
+ "stepCode": "front-pump-step-05",
+ "number": 5,
+ "expectedTitle": "打开辅助控制盒内的“互救”开关",
+ "expectedInstruction": "打开辅助控制盒内的“互救”开关(注:打开5辅助控制盒盖在5辅助控制盒面板上,把5互救开关往上搬)",
+ "text": "第5步,打开辅助控制盒互救开关。打开辅助控制盒盖,再打开互救开关,进入单泵作业状态。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-005-step-05.mp4",
+ "duration": 8.08,
+ "sha256": "22df33fbc0b4c14c50328ddc361f71ca46089a2342163232a52ae7cd45b0d554"
+ }
+ ]
+ },
+ {
+ "id": "bridge-pump-substitute",
+ "version": "3",
+ "code": "TASK-VIRTUAL-006",
+ "title": "重型支援桥液压泵应急替代",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "保持架桥车运行并断开取力器",
+ "expectedInstruction": "保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "text": "第1步,保持架桥车运行并断开取力器。保持架桥车发动机运转,确保架桥车取力器处于断开状态。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-01.mp4",
+ "duration": 9.4,
+ "sha256": "78c4ac8fddbcd7794afc921edc68c8109222200783d205631056b070b5715ff6"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "连接两车液压软管",
+ "expectedInstruction": "连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "text": "第2步,连接两车液压软管。连接支援车与架桥车液压软管。架桥车快接接头位于液压油箱右侧;支援车快接接头位于驾驶室外右下方。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-02.mp4",
+ "duration": 13.72,
+ "sha256": "5556bc1752237995a103f28a83b05f87093eba7dfcadbc948d185ba4392edc96"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "打开支援车回油截止阀",
+ "expectedInstruction": "打开支援车液压油箱快接接头处的回油截止阀。",
+ "text": "第3步,打开支援车回油截止阀。打开支援车液压油箱快接接头处的回油截止阀。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-03.mp4",
+ "duration": 7.36,
+ "sha256": "95d4fb73d116fbe97fe4d0563bb2540a7031760c11829f7a7c4d095fa100e73d"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "打开互救作业开关",
+ "expectedInstruction": "打开辅助控制盒上的“互救作业”开关。",
+ "text": "第4步,打开互救作业开关。打开辅助控制盒上的“互救作业”开关。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-04.mp4",
+ "duration": 5.72,
+ "sha256": "2d64dabab5230a4e1436bb2e4b3d0d474b1e6e10fb2873ec003c4f047f84526b"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "打开滤油器出口连通球阀",
+ "expectedInstruction": "打开两个输油滤油器出口处的连通球阀。",
+ "text": "第5步,打开滤油器出口连通球阀。打开两个输油滤油器出口处的连通球阀。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-05.mp4",
+ "duration": 8.36,
+ "sha256": "0a240839c426cfca2dc4334e773588e428eaea27e31714f7e021215505486134"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "接通支援车液压取力器",
+ "expectedInstruction": "接通支援车液压系统取力器,向架桥车供油。",
+ "text": "第6步,接通支援车液压取力器。接通支援车液压系统取力器,向架桥车供油。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-06.mp4",
+ "duration": 6.84,
+ "sha256": "98cc5e425b5918000079be140ddedf02d16b4c7dca8871a276beb4f65259da8d"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "按正常步骤操作架桥车",
+ "expectedInstruction": "原图只概括“按正常操作步骤操作架桥车”,没有展开后续作业。",
+ "text": "第七步,按照正常操作步骤,操作架桥车。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-006-step-07.mp4",
+ "duration": 4.4,
+ "sha256": "0cc7e428a1b746de54ccd9d6706a46a3c1d447be7a2a99752d8ca8cc4282e77a"
+ }
+ ]
+ },
+ {
+ "id": "bridge-pump-replace",
+ "version": "3",
+ "code": "TASK-VIRTUAL-007",
+ "title": "重型支援桥前泵换件修复",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "停机并初裁牛皮纸",
+ "expectedInstruction": "架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-01.mp4",
+ "duration": 8.68,
+ "sha256": "10a3f3b0c78c0aedee94d17a118c4e0ed46b7b4d94dc258e1f95acbcb7bc9289"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "关闭液压油箱出油口一号球阀",
+ "expectedInstruction": "将一号球阀手柄从平行管道转到垂直管道。",
+ "text": "第2步,关闭液压油箱出油口一号球阀。将一号球阀手柄从平行管道转到垂直管道。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-02.mp4",
+ "duration": 8.88,
+ "sha256": "4c6f16027800fdb1a352cbf056b5c2c8a372b664245704dc5106828f51ce744e"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "拆开并包扎进出油管",
+ "expectedInstruction": "用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "text": "第3步,拆开并包扎进出油管。用大活动扳手拆开液压泵进、出油管接头,用塑料袋包扎管口。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-03.mp4",
+ "duration": 8.56,
+ "sha256": "9af81f3791114af9f50860b88333888bdfa7b996c8182a45a931df82e959114f"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "拆下四个安装螺栓",
+ "expectedInstruction": "用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "text": "第4步,拆下四个安装螺栓。用开口扳手拆下液压泵与取力器之间的四个安装螺栓。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-04.mp4",
+ "duration": 6.96,
+ "sha256": "39716062e06b70f6d52f9a4eb87a80c91e72a321e5ebd48c1b8113dd3380f5e6"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "取下旧前泵",
+ "expectedInstruction": "取下原前泵。",
+ "text": "第五步,取下发生故障的前部液压泵。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-05.mp4",
+ "duration": 4.4,
+ "sha256": "ef530aed60e20d356e291bfb39925ff4ec8c4ed3d3be4acc681e7905cf90ee36"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "修裁牛皮纸",
+ "expectedInstruction": "进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "text": "第6步,修裁牛皮纸。进一步裁剪牛皮纸,使其与液压泵安装面及取力器结合面吻合。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-06.mp4",
+ "duration": 9.4,
+ "sha256": "d53f2bef5b0e5547c680fe98e3d7aa020fabf5242628f903430165e65ae872d0"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "放置牛皮纸垫",
+ "expectedInstruction": "将裁好的牛皮纸放在取力器接口处。",
+ "text": "第7步,放置牛皮纸垫。将裁好的牛皮纸放在取力器接口处。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-07.mp4",
+ "duration": 6.16,
+ "sha256": "e8225937c25fb6a0978c0803ceb4efaa0947f08e48ccfa5be86f0f056943be5e"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-8",
+ "number": 8,
+ "expectedTitle": "安装新液压泵",
+ "expectedInstruction": "安装新的液压泵。原稿没有给出拧紧力矩。",
+ "text": "第8步,安装新液压泵。安装新的液压泵。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-08.mp4",
+ "duration": 4.4,
+ "sha256": "235398c28f7558352a80bc0aa2dd2678bf01b0910e1fe8a80ced21cd97c424d4"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-9",
+ "number": 9,
+ "expectedTitle": "向新泵加注液压油",
+ "expectedInstruction": "打开新液压泵加油口,加注液压油。原稿没有给出定量值。",
+ "text": "第9步,向新泵加注液压油。打开新液压泵加油口,加注液压油。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-09.mp4",
+ "duration": 6.88,
+ "sha256": "7e2ed8add709aa1f5957e8c12cf905d918b021253197e5baf6fbd21519c7534d"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-10",
+ "number": 10,
+ "expectedTitle": "恢复进出油管连接",
+ "expectedInstruction": "用大活动扳手连接并拧紧液压泵进、出油管。",
+ "text": "第10步,恢复进出油管连接。用大活动扳手连接并拧紧液压泵进、出油管。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-10.mp4",
+ "duration": 7.32,
+ "sha256": "cea220f1b0094547a1033392b38bf44fe80827a3ea692a5642fb3e7d30c93d55"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-11",
+ "number": 11,
+ "expectedTitle": "启动设备试验",
+ "expectedInstruction": "启动设备进行试验。原稿没有展开具体试验项目和判定数值。",
+ "text": "第11步,启动设备试验。启动设备进行试验。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-007-step-11.mp4",
+ "duration": 4.24,
+ "sha256": "857a911869eb44198b025a838c1e7986b167893b9d1a0f517f7729b1181750e0"
+ }
+ ]
+ },
+ {
+ "id": "bridge-balance-valve-swap",
+ "version": "3",
+ "code": "TASK-VIRTUAL-008",
+ "title": "重型支援桥平衡阀拆拼互换",
+ "steps": [
+ {
+ "stepCode": "BRIDGE-STEP-1",
+ "number": 1,
+ "expectedTitle": "清洗小腔平衡阀",
+ "expectedInstruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "text": "第1步,清洗小腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-01.mp4",
+ "duration": 7.48,
+ "sha256": "e70419c63a0d8936621e118785461158a1e639d57bbad60f852c332050c96ba1"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-2",
+ "number": 2,
+ "expectedTitle": "拆开小腔控制油口管路",
+ "expectedInstruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "text": "第2步,拆开小腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-02.mp4",
+ "duration": 10.0,
+ "sha256": "f7ef97db523bca45e659d5f2540775e1d3db90dab4273f65c142622fafec1cb0"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-3",
+ "number": 3,
+ "expectedTitle": "拆下小腔平衡阀",
+ "expectedInstruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "text": "第3步,拆下小腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-03.mp4",
+ "duration": 7.4,
+ "sha256": "ee544089145d42e6c8b043155215c256070bac2f2ba3b6f8af427d733fc17a63"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-4",
+ "number": 4,
+ "expectedTitle": "封堵小腔油口",
+ "expectedInstruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "text": "第4步,封堵小腔油口。用两个油堵封住两个油口,擦净阀座结合面。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-04.mp4",
+ "duration": 6.88,
+ "sha256": "f0e42b0e196bafc976f958aafe3d61bc7470f3f7223e551df7998c02263c8284"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-5",
+ "number": 5,
+ "expectedTitle": "清洗大腔平衡阀",
+ "expectedInstruction": "用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "text": "第5步,清洗大腔平衡阀。用清洗剂清洗平衡阀和管接头,并用抹布擦净。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-05.mp4",
+ "duration": 7.36,
+ "sha256": "6c70b944776a7cb128ef570008e18c4d7ada24ab9e1141d374a5ac46306f4da5"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-6",
+ "number": 6,
+ "expectedTitle": "拆开大腔控制油口管路",
+ "expectedInstruction": "用19开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "text": "第6步,拆开大腔控制油口管路。用十九号开口扳手拆开控制油口管路,用塑料袋包扎管口。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-06.mp4",
+ "duration": 8.16,
+ "sha256": "41b5097bcdb8298e1daf62f2b3abe476977dca125b3ebf301a177fe1a95b916a"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-7",
+ "number": 7,
+ "expectedTitle": "拆下大腔平衡阀",
+ "expectedInstruction": "用8内六角扳手拆下安装螺栓,取下平衡阀。",
+ "text": "第7步,拆下大腔平衡阀。用八号内六角扳手拆下安装螺栓,取下平衡阀。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-07.mp4",
+ "duration": 7.72,
+ "sha256": "19ddbaa145fbceda54807d7def679351dff77ece26e860920f54e59ecc9e67f5"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-8",
+ "number": 8,
+ "expectedTitle": "封堵大腔油口",
+ "expectedInstruction": "用两个油堵封住两个油口,擦净阀座结合面。",
+ "text": "第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-08.mp4",
+ "duration": 6.16,
+ "sha256": "f2ea5d6f09c08b5a28b0e22cfb9de1227bc72823b75dc99496be0e870baa9ab3"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-9",
+ "number": 9,
+ "expectedTitle": "准备安装大腔平衡阀",
+ "expectedInstruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "text": "第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-09.mp4",
+ "duration": 8.44,
+ "sha256": "c35b2d862896ca508d6991badabfb2a331c515b351d282d75174a3a76eeabb0c"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-10",
+ "number": 10,
+ "expectedTitle": "安装大腔平衡阀",
+ "expectedInstruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "text": "第10步,安装大腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-10.mp4",
+ "duration": 9.04,
+ "sha256": "b81832388ff8e000570d1ed4b8c9eebe83fe7f7890864802efcc924d3dbbedc7"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-11",
+ "number": 11,
+ "expectedTitle": "核对大腔控制油口管路连接",
+ "expectedInstruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "text": "第11步,核对大腔控制油口管路连接。核对大腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-11.mp4",
+ "duration": 10.6,
+ "sha256": "f29c0bab1481152f39d44f68dca5a3f87178d5047b238b83cd936c6a62e9b4ce"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-12",
+ "number": 12,
+ "expectedTitle": "紧固大腔阀体连接螺栓",
+ "expectedInstruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "text": "第12步,紧固大腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-12.mp4",
+ "duration": 7.36,
+ "sha256": "20d103a2bf73ac67f624011dd136ef68c3ba62bc644df16d9f779e13d2dbfdb8"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-13",
+ "number": 13,
+ "expectedTitle": "准备安装小腔平衡阀",
+ "expectedInstruction": "擦净平衡阀及阀座结合面,取下两个油堵。",
+ "text": "第13步,准备安装小腔平衡阀。擦净平衡阀及阀座结合面,取下两个油堵。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-13.mp4",
+ "duration": 7.0,
+ "sha256": "c4ea5cc4916f7ffd6f3a3a6ca3145c669c2d30998f9cbd300e1615ee9cc46e47"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-14",
+ "number": 14,
+ "expectedTitle": "安装小腔平衡阀",
+ "expectedInstruction": "将平衡阀放置于阀座上,用8内六角扳手安装四个安装螺栓。",
+ "text": "第14步,安装小腔平衡阀。将平衡阀放置于阀座上,用八号内六角扳手安装四个安装螺栓。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-14.mp4",
+ "duration": 10.2,
+ "sha256": "c12449d3d7ea0400f2771bfac8ef4a39b4fb74ad20573864052e2a6c92770289"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-15",
+ "number": 15,
+ "expectedTitle": "核对小腔控制油口管路连接",
+ "expectedInstruction": "原稿先写“拆下包扎袋,连接并拧紧管路”,随后又出现“用19开口扳手拆开管路并包扎”的相反描述。",
+ "text": "第15步,核对小腔控制油口管路连接。核对小腔控制油口管路连接,记录处理方式及依据,并提交教员核对。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-15.mp4",
+ "duration": 9.92,
+ "sha256": "b3eca4435a6def03796cac3d942c937113df8a187aad4c03b90dd74ff2320098"
+ },
+ {
+ "stepCode": "BRIDGE-STEP-16",
+ "number": 16,
+ "expectedTitle": "紧固小腔阀体连接螺栓",
+ "expectedInstruction": "用内六角扳手拧紧四个阀体连接螺栓。",
+ "text": "第16步,紧固小腔阀体连接螺栓。用内六角扳手拧紧四个阀体连接螺栓。",
+ "url": "/legacy/virtual-training/narration-revisions/junhao-v2-20260921/TASK-VIRTUAL-008-step-16.mp4",
+ "duration": 8.12,
+ "sha256": "358eb10b0db772f883e87a4d468620c0c050f0441e20e9a59142ee2ce08d3437"
+ }
+ ]
+ }
+ ]
+}
diff --git a/reports/bridge-narration-junhao-20260921/交付说明.md b/reports/bridge-narration-junhao-20260921/交付说明.md
new file mode 100644
index 0000000..3326985
--- /dev/null
+++ b/reports/bridge-narration-junhao-20260921/交付说明.md
@@ -0,0 +1,26 @@
+# Junhao 讲解资源交付(2026-09-21)
+
+- 默认配置来源:数字车间所绑定的“测试虚拟教员”,配置版本19;默认音色MOSS · Junhao,语速1.0,教员1 v2。
+- 39段操作步骤视频(480×640、25fps、H.264/AAC),39份配套WAV;两个平衡阀复核步骤共享1份Junhao提示音。
+- 当前静态目录:`unreal_tran_web/public/legacy/virtual-training/narration-revisions/junhao-v2-20260921/`。
+- 文件以任务号和步骤命名,例如`TASK-VIRTUAL-005-step-01.mp4`和同名WAV。
+- 新版引用:`src/features/virtual-training-scripts/narration-release.js`。新的两个清单文件记录准确标题、说明、讲解词、时长、SHA-256。
+- 原清单和80个旧媒体文件保持原字节;`previous-media.json`记录旧文件摘要。4段初版重做前的音视频也保留在本报告目录。
+
+## 回退
+
+在前端环境配置中设置`VITE_BRIDGE_NARRATION_RELEASE=previous`,开发环境重启Vite;部署环境重新构建前端。切回新版设为`junhao-v2-20260921`。两代音视频都在项目中,无需重新生成或改数据库。
+
+## 实施范围
+
+只切换005~008四个静态脚本的操作步骤讲解。背景/讲解导入页与普通训练编排任务不改,005独立新模型编排验证入口116保留原资产。任务模型、步骤、评分和成绩记录不改。没有发布测试环境,也没有提交或推送Git。
+
+## 验证
+
+- 39段全部通过解码、分辨率、帧率、音轨、时长及源音频比对;音轨偏移27.81~29.81ms,不是视觉口型误差测量。
+- CPU ASR辅助转写记录见`quality.json`。专业名词/序号会误识别,11段标为人工复核;不能把机器转写相似度当作最终发音评分。
+- 四任务本地浏览器播放/切换语音/视频错误回退/加载门控见`playback.json`;局域网结果见`lan-playback.json`。
+- 19项模型与讲解合同测试、正式路由检查、生产构建通过。
+- 模型验收见相邻报告,39步95项配置动作通过;原正式005另验证5步6项通过。内容上仍有23步简化、5步待确认和2步关键内容缺失。
+
+技术检查不代替自然度与视觉口型的人工验收,请使用本目录index.html逐段试听对比。
diff --git a/tools/activate-bridge-narration-release.mjs b/tools/activate-bridge-narration-release.mjs
new file mode 100644
index 0000000..2f6cfd2
--- /dev/null
+++ b/tools/activate-bridge-narration-release.mjs
@@ -0,0 +1,43 @@
+import fs from 'node:fs';
+import path from 'node:path';
+import assert from 'node:assert/strict';
+import crypto from 'node:crypto';
+const web=path.resolve('../unreal_tran_web'),dir=path.resolve('reports/bridge-narration-junhao-20260921');
+const source=path.join(web,'src/features/virtual-training-scripts');
+const audio=JSON.parse(fs.readFileSync(path.join(dir,'audio-manifest.json'),'utf8'));
+const video=JSON.parse(fs.readFileSync(path.join(dir,'video-manifest.json'),'utf8'));
+const quality=JSON.parse(fs.readFileSync(path.join(dir,'quality.json'),'utf8'));
+const hash=file=>crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex');
+assert.equal(quality.length,39);assert.ok(quality.every(c=>c.technicalPass));
+for(const old of JSON.parse(fs.readFileSync(path.join(dir,'previous-media.json'),'utf8')))assert.equal(hash(web+'/public'+old.url),old.sha256);
+assert.equal(audio.scripts.flatMap(p=>p.steps).length,39);
+for(const pack of audio.scripts)for(const clip of pack.steps){
+ const v=video.scripts.find(p=>p.code===pack.code)?.steps.find(s=>s.stepCode===clip.stepCode);
+ assert.equal(v.text,clip.text);assert.equal(v.expectedTitle,clip.expectedTitle);assert.equal(v.expectedInstruction,clip.expectedInstruction);
+ assert.equal(hash(web+'/public'+clip.url),clip.stepSha256);assert.equal(hash(web+'/public'+v.url),v.sha256);
+ assert.equal(quality.find(q=>q.key===`${pack.code}-step-${String(clip.number).padStart(2,'0')}`).sha256,v.sha256);
+ if(clip.safetyUrl){assert.match(clip.safetyUrl,/junhao-v2-20260921/);assert.equal(hash(web+'/public'+clip.safetyUrl),clip.safetySha256);}
+}
+for(const [name,data]of [['narration-junhao-20260921.js',audio],['narration-video-junhao-20260921.js',video]])
+ fs.writeFileSync(path.join(source,name),'// Generated by bridge-narration-current-voice.py; original release remains unchanged.\nexport default '+JSON.stringify(data,null,2)+';\n');
+fs.writeFileSync(path.join(source,'narration-release.js'),`import previousAudio from './narration-manifest.js';
+import previousVideo from './narration-video-manifest.js';
+import junhaoAudio from './narration-junhao-20260921.js';
+import junhaoVideo from './narration-video-junhao-20260921.js';
+
+// Build-time switch. Preserve both generations so rollback never regenerates media.
+export function selectNarrationRelease(name) {
+ if (name === 'previous') return { manifest: previousAudio, videos: previousVideo };
+ if (name === 'junhao-v2-20260921') return { manifest: junhaoAudio, videos: junhaoVideo };
+ throw new Error('未知的桥梁讲解资源版本:' + name);
+}
+export const activeRelease = import.meta.env?.VITE_BRIDGE_NARRATION_RELEASE || 'junhao-v2-20260921';
+export const { manifest, videos } = selectNarrationRelease(activeRelease);
+`);
+const filename=path.join(source,'narration.js');
+const original=fs.readFileSync(filename,'utf8');
+const replacement=original.replace("import manifest from './narration-manifest.js';\nimport videos from './narration-video-manifest.js';","import { manifest, videos } from './narration-release.js';");
+assert.ok(replacement.includes("import { manifest, videos } from './narration-release.js';"));
+fs.writeFileSync(filename,replacement);
+fs.writeFileSync(path.join(dir,'activation.json'),JSON.stringify({release:'junhao-v2-20260921',oldMediaCount:80,oldMediaUnchanged:true,clips:39,qualityPassed:true,taskDefinitionsChanged:false},null,2));
+console.log('Activated 39 clips; previous 80 media files preserved.');
diff --git a/tools/bridge-006-hose-publish.mjs b/tools/bridge-006-hose-publish.mjs
new file mode 100644
index 0000000..f4fa8f9
--- /dev/null
+++ b/tools/bridge-006-hose-publish.mjs
@@ -0,0 +1,38 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+import {login,call} from './role-permissions-live.mjs';
+import {scripts} from '../../unreal_tran_web/src/features/virtual-training-scripts/definition.js';
+const dir='reports/bridge-006-hose-connections-20260921';fs.mkdirSync(dir,{recursive:true});
+const signed=await login('root');
+const api=async(path,data,method)=>{const r=await call('tran/v1/'+path,signed.accessToken,data,method);assert.equal(r.status,200,path+': '+r.message);return r.data;};
+const backup=(name,value)=>{const file=dir+'/'+name+'.json';if(!fs.existsSync(file))fs.writeFileSync(file,JSON.stringify(value,null,2));};
+let task=await api('teaching/assignments/87'),project=await api('content/projects/'+task.contentProjectId);
+assert.equal(task.code,'TASK-VIRTUAL-006');assert.equal(task.definitionSnapshot.runtime.scriptVersion,'4');
+backup('before-task',task);backup('before-project',project);
+const previous=JSON.parse(fs.readFileSync(dir+'/before-task.json'));
+const expected=scripts.find(s=>s.code===task.code).definition.steps[1];
+if(JSON.stringify(task.definitionSnapshot.steps[1].action)!==JSON.stringify(expected.action)){
+ const runs=await api('teaching/runs?assignmentId=87&size=100');
+ assert.equal(runs.total,0,'Only migrate this unused task; do not interrupt active learners');
+ const content=structuredClone(project.currentVersion.content);
+ content.steps[1]={...content.steps[1],action:expected.action,targetName:expected.targetName,guidance:expected.guidance};
+ content.scenario.operableParts=[...new Set(content.steps.flatMap(step=>step.action.mechanism.steps.map(op=>op.targetId)))];
+ if(JSON.stringify(project.currentVersion.content.steps[1].action)!==JSON.stringify(expected.action)){
+ assert.equal(project.currentVersion.id,project.project.publishedVersionId,'Do not overwrite an unrelated unpublished draft');
+ project=await api('content/projects/'+project.project.id,{...project.project,content,assets:project.currentVersion.assets,dependencies:project.currentVersion.dependencies,version:project.project.version,changeSummary:'006软管连接修正:两车防尘盖与供回油软管四个端头分开操作,保留讲解、准备项与评分规则'},'PUT');
+ }
+ if(project.project.publishedVersionId!==project.currentVersion.id)project=await api('content/projects/'+project.project.id+'/publish',{version:project.project.version});
+ if(task.status==='PUBLISHED')task=await api('teaching/assignments/87/withdraw',{version:task.version,reason:'修正软管连接操作,保留原任务及旧内容版本'});
+ assert.ok(['DRAFT','WITHDRAWN'].includes(task.status));
+ task=await api('teaching/assignments/87',{...task,contentVersionId:project.project.publishedVersionId,version:task.version},'PUT');
+ task=await api('teaching/assignments/87/publish',{version:task.version});
+}
+assert.equal(task.status,'PUBLISHED');assert.deepEqual(task.definitionSnapshot.steps[1].action,expected.action);
+for(let i=0;i<7;i++){
+ if(i!==1)assert.deepEqual(task.definitionSnapshot.steps[i],previous.definitionSnapshot.steps[i]);
+ else for(const key of ['audio','assessment','stepCode','actionCode','instruction'])assert.deepEqual(task.definitionSnapshot.steps[i][key],previous.definitionSnapshot.steps[i][key]);
+}
+assert.deepEqual(task.members,previous.members);
+fs.writeFileSync(dir+'/after-task.json',JSON.stringify(task,null,2));
+fs.writeFileSync(dir+'/migration.json',JSON.stringify({pass:true,id:task.id,oldContentVersion:previous.contentVersionId,newContentVersion:task.contentVersionId,operations:6,runCount:task.runCount},null,2));
+console.log('006 published content version',task.contentVersionId);
diff --git a/tools/bridge-006-hose-report.mjs b/tools/bridge-006-hose-report.mjs
new file mode 100644
index 0000000..5f35f60
--- /dev/null
+++ b/tools/bridge-006-hose-report.mjs
@@ -0,0 +1,8 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+const dir='reports/bridge-006-hose-connections-20260921';
+const read=name=>JSON.parse(fs.readFileSync(`${dir}/${name}.json`,'utf8'));
+for(const name of ['migration','runtime','lan-runtime'])assert.equal(read(name).pass,true,name);
+const names=['打开架桥车接口防尘盖','打开保障车接口防尘盖','连接供油软管架桥车端','连接供油软管保障车端','连接回油软管架桥车端','连接回油软管保障车端'];
+fs.writeFileSync(`${dir}/index.html`,`006 双车软管连接修正006 · 连接两车液压软管
2026-09-21 · 内容版本 557 → 566 · 现有任务 87 · 管理员教员预览 · 不写学员成绩
本地打开任务局域网打开任务本地验证局域网验证内容版本更新记录
原因与修正
原实现把两个接口盖当作连接目标,点击盖子后直接显示供油或回油软管。现已拆分为两个开盖动作和四个独立接管动作,全部接头到位后才完成第 2 步。
按顶部提示点击高亮的部件播放动作,或按住接头拖动至行程末端再松开。点击标签只聚焦;短拖后松开会复原,不能计为完成。供油、回油以及两车端头都有独立名称。
接头沿接口方向插入,附近管体随动,最终位置严格恢复所提供模型的导出装配坐标。尚不包含快接锁套独立锁紧和工程级软管力学仿真。
验证包括真实鼠标拖动、四端分别连接、两盖打开后仍未完成、短拖取消、重复保存准备记录后状态保持、七步全部经过服务端预览校验。数字教员提示随当前小动作更新。
讲解、成绩规则、其他六步与成员保留;旧内容版本和备份保留。本次没有创建测试教学任务。
${names.map((name,i)=>`${i+1}. ${name}
动作完成后的画面;未完成全部六项时,页面提示下一项操作。
`).join('')}`);
+console.log(`${dir}/index.html`);
diff --git a/tools/bridge-006-six-steps-publish.mjs b/tools/bridge-006-six-steps-publish.mjs
new file mode 100644
index 0000000..78c7687
--- /dev/null
+++ b/tools/bridge-006-six-steps-publish.mjs
@@ -0,0 +1,47 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+import {login,call} from './role-permissions-live.mjs';
+import {scripts} from '../../unreal_tran_web/src/features/virtual-training-scripts/definition.js';
+const dir='reports/bridge-006-six-steps-20260921';fs.mkdirSync(dir,{recursive:true});
+const signed=await login('root');
+const api=async(path,data,method)=>{const r=await call('tran/v1/'+path,signed.accessToken,data,method);assert.equal(r.status,200,path+': '+r.message);return r.data;};
+const backup=(name,value)=>{const file=dir+'/'+name+'.json';if(!fs.existsSync(file))fs.writeFileSync(file,JSON.stringify(value,null,2));};
+let task=await api('teaching/assignments/87'),project=await api('content/projects/'+task.contentProjectId);
+assert.equal(task.code,'TASK-VIRTUAL-006');assert.ok(['4','5'].includes(task.definitionSnapshot.runtime.scriptVersion));
+backup('before-task',task);backup('before-project',project);
+for(const id of [86,88,89,116])backup('unchanged-'+id,await api('teaching/assignments/'+id));
+const previous=JSON.parse(fs.readFileSync(dir+'/before-task.json'));
+const script=scripts.find(s=>s.code===task.code);
+if(task.definitionSnapshot.runtime.scriptVersion!=='5'){
+ const runs=await api('teaching/runs?assignmentId=87&size=100');
+ assert.equal(runs.total,0,'Do not withdraw a task with existing learner runs');
+ if(project.currentVersion.content.runtime.scriptVersion!=='5'){
+ assert.equal(project.currentVersion.id,project.project.publishedVersionId,'Do not overwrite an unrelated unpublished draft');
+ const content=structuredClone(project.currentVersion.content);
+ assert.equal(content.steps.length,7);assert.equal(content.steps[6].action.targetId,'bridge-normal-control');
+ content.steps=content.steps.slice(0,6);
+ content.steps.forEach((step,index)=>{step.assessment.weight=script.definition.steps[index].assessment.weight;});
+ content.runtime.scriptVersion='5';
+ content.scenario.operableParts=[...new Set(content.steps.flatMap(step=>step.action.mechanism.steps.map(op=>op.targetId)))];
+ project=await api('content/projects/'+project.project.id,{...project.project,content,assets:project.currentVersion.assets,dependencies:project.currentVersion.dependencies,version:project.project.version,changeSummary:'006调整为六步:移除正常作业概括项及示意手柄,保留完成说明;评分权重合计100%,保留旧版本与讲解资源'},'PUT');
+ }
+ if(project.project.publishedVersionId!==project.currentVersion.id)project=await api('content/projects/'+project.project.id+'/publish',{version:project.project.version});
+ if(task.status==='PUBLISHED')task=await api('teaching/assignments/87/withdraw',{version:task.version,reason:'按确认后的训练范围移除第七步,更新六步内容版本'});
+ assert.ok(['DRAFT','WITHDRAWN'].includes(task.status));
+ task=await api('teaching/assignments/87',{...task,contentVersionId:project.project.publishedVersionId,version:task.version},'PUT');
+ task=await api('teaching/assignments/87/publish',{version:task.version});
+}
+assert.equal(task.status,'PUBLISHED');assert.equal(task.definitionSnapshot.runtime.scriptVersion,'5');assert.equal(task.definitionSnapshot.steps.length,6);
+for(let i=0;i<6;i++){
+ const before=structuredClone(previous.definitionSnapshot.steps[i]),after=structuredClone(task.definitionSnapshot.steps[i]);
+ delete before.assessment.weight;delete after.assessment.weight;assert.deepEqual(after,before,'Only scoring weights change for retained steps');
+}
+assert.equal(Math.round(task.definitionSnapshot.steps.reduce((sum,step)=>sum+step.assessment.weight,0)*100),10000);
+assert.deepEqual(task.members,previous.members);
+for(const id of [86,88,89,116]){
+ const before=JSON.parse(fs.readFileSync(dir+'/unchanged-'+id+'.json')),after=await api('teaching/assignments/'+id);
+ assert.deepEqual(after.definitionSnapshot,before.definitionSnapshot);assert.equal(after.contentVersionId,before.contentVersionId);
+}
+fs.writeFileSync(dir+'/after-task.json',JSON.stringify(task,null,2));
+fs.writeFileSync(dir+'/migration.json',JSON.stringify({pass:true,id:task.id,oldContentVersion:previous.contentVersionId,newContentVersion:task.contentVersionId,steps:6,scoreWeight:100,runCount:task.runCount,unchangedTasks:[86,88,89,116]},null,2));
+console.log('006 six-step content version',task.contentVersionId);
diff --git a/tools/bridge-006-six-steps-report.mjs b/tools/bridge-006-six-steps-report.mjs
new file mode 100644
index 0000000..4006cdf
--- /dev/null
+++ b/tools/bridge-006-six-steps-report.mjs
@@ -0,0 +1,7 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+const dir='reports/bridge-006-six-steps-20260921',read=name=>JSON.parse(fs.readFileSync(`${dir}/${name}.json`,'utf8'));
+for(const name of ['migration','runtime','lan/runtime'])assert.equal(read(name).pass,true,name);
+const current=read('after-task'),before=read('before-task');
+fs.writeFileSync(`${dir}/index.html`,`006 六步流程验收006:应急替代完成后结束训练
2026-09-21 · 管理员教员预览 · 本地 127.0.0.1:6180 与局域网 192.168.31.168:6180 · 请求经过 Gateway。
现有任务 87 从内容版本 ${before.contentVersionId} 更新为 ${current.contentVersionId},脚本 v5,操作步骤由 7 项减为 6 项。项目背景和两段讲解仍保留,目录共 9 项。
${current.definitionSnapshot.steps.map(s=>`- ${s.title}
`).join('')}
原第七步及正常作业示意手柄已移除;第六步完成后可直接点击“完成训练”。完成说明为“应急替代操作训练已完成,后续可按正常作业规程使用架桥车”。
保留六步的操作、准备项及讲解不变,评分权重合计 100%。旧发布版本和第七段音视频文件保留。005、007、008 及 005 编排验证任务没有修改。
验证:Java 17 Maven package(439 项测试通过);前端 19 项相关测试与生产构建通过;本地和局域网均以真实鼠标操作完成六步、15 个小动作,经过服务端预览校验并打开完成页。无新增测试任务或学员成绩。
打开本地 006 · 本地交互记录 · 局域网交互记录 · 版本更新记录
第六步即最后一步

完成说明
`);
+console.log(`${dir}/index.html`);
diff --git a/tools/bridge-controls-live.mjs b/tools/bridge-controls-live.mjs
index 8bb3701..df2decd 100644
--- a/tools/bridge-controls-live.mjs
+++ b/tools/bridge-controls-live.mjs
@@ -67,6 +67,8 @@ globalThis.__inspectionSnapshot=(options={})=>{
workflowCoverage:e.inspection.workflowTargets().filter(effectivelyVisible).map(o=>{const meshes=[];o.traverse(n=>{if(n.isMesh&&!n.userData.trainingPickProxy&&effectivelyVisible(n))meshes.push(n);});return {name:o.userData.partId,glowing:meshes.every(m=>e.inspection.outline.selectedObjects.includes(m)||e.inspection.workflowOutline.selectedObjects.includes(m))};}),
camera:e.camera.position.toArray(),target:e.controls.target.toArray(),outline:e.inspection.outline.selectedObjects.length,cutaway:e.inspection.cutaway?.size||0,materials,labels,
narration:e.steps.map(s=>({video:e.context.videoUrls?.includes(s.audio?.narrationUrl)===true,fallback:!!s.audio?.narrationFallbackUrl})),
+ teacherWarning:e.teacherWarning?.textContent,stepCount:e.steps.length,hasNormalControl:e.parts.has('bridge-normal-control'),
+ hoseConnections:['bridge-hose-line-a','bridge-hose-line-b','bridge-return-line-a','bridge-return-line-b'].map(id=>{const p=e.parts.get(id);return p?{id,position:p.position.toArray(),remaining:p.position.distanceTo(p.userData.home.position)}:null;}).filter(Boolean),
operationData:op,position:object?.position.toArray(),quaternion:(object?.userData.bridgeRotatingPart||object)?.quaternion.toArray()};
};`});
});
@@ -206,6 +208,14 @@ try {
assert.equal(start.exposure,state.exposure);assert.deepEqual(start.light,state.light);
for(let i=0;if.offset||f.scale));
if(draggable){
@@ -239,6 +249,21 @@ try {
}
await expect.poll(async()=>{const s=await snapshot();return !s.pending&&(s.complete||s.operation!==start.operation);},{timeout:20000}).toBe(true);
await page.waitForTimeout(850);const done=await snapshot();if(start.tip)assert.ok(done.tip[1]>start.tip[1]+0.0001,'completed rescue switch stays upwards');assert.equal(done.errors,0,'no false operation error');
+ if(process.env.CHECK_HOSE_CONNECTIONS==='1'&&start.step===1){
+ const connected=Math.max(0,start.operation-1);
+ assert.equal(done.hoseConnections.length,4);
+ done.hoseConnections.forEach((end,i)=>assert.ok(Math.abs(end.remaining-(iitem.video&&item.fallback));
+ await expect(page.locator('.training-step[data-step-index]')).toHaveCount(6);
+ await expect(page.locator('[data-action="next"]')).toHaveText(/完成训练/);
+ await page.locator('[data-action="next"]').click();
+ await expect(page.locator('[data-role="modal-content"]')).toContainText('应急替代操作训练已完成,后续可按正常作业规程使用架桥车。');
+ await page.screenshot({path:path.join(dir,'six-step-completion.png')});
+ checks.push({name:'006 completes after six steps with no synthetic normal-operation handle, six paired narrations and completion message',pass:true});
+ }
const after=await call('tran/v1/teaching/assignments/'+id,signed.accessToken);
assert.deepEqual(after.data.definitionSnapshot,assignment.data.definitionSnapshot);assert.equal(after.data.version,assignment.data.version);
}
diff --git a/tools/bridge-model-acceptance-report.mjs b/tools/bridge-model-acceptance-report.mjs
new file mode 100644
index 0000000..93a14ca
--- /dev/null
+++ b/tools/bridge-model-acceptance-report.mjs
@@ -0,0 +1,95 @@
+import fs from 'node:fs';
+import path from 'node:path';
+import crypto from 'node:crypto';
+const dir=path.resolve('reports/bridge-model-acceptance-20260921');
+const tasks=JSON.parse(fs.readFileSync(path.join(dir,'current-tasks.json'),'utf8'));
+const models=JSON.parse(fs.readFileSync(path.join(dir,'source-models.json'),'utf8'));
+const source=JSON.parse(fs.readFileSync(path.join(dir,'source.json'),'utf8'));
+const runtime=JSON.parse(fs.readFileSync(path.join(dir,'new-model-runtime.json'),'utf8'));
+const originalPath=path.join(dir,'original-005-runtime.json');
+const originalRuntime=fs.existsSync(originalPath)?JSON.parse(fs.readFileSync(originalPath,'utf8')):null;
+const data={
+ '005':[
+ [30,'简化实现','真实前泵可点选确认;故障由脚本预设,没有两个泵之间的诊断分支。'],
+ [31,'基本对应','真实取力器开关可旋转断开;模型命名及原稿均提示该开关实物准确性仍需确认。'],
+ [32,'基本对应','真实球阀手柄旋转;已验证交互,最终与管轴平行关系仍需实装确认。'],
+ [33,'基本对应','同一取力器开关反向旋转复位,接通动作可完成。'],
+ [34,'基本对应','真实盒盖与互救开关分两次操作;盒盖铰链、手柄固定端转轴已有。单泵驱动整车的结果动画未接入。'],
+ ],
+ '006':[
+ [39,'简化实现','发动机以颜色表示运行,取力器开关可断开;无发动机/液压动力联动。'],
+ [40,'简化实现','双车、接口盖和两条真实软管存在;移动盖子后显示预成形软管,没有快接插入与锁紧动作。'],
+ [41,'基本对应','使用保障车独立回油截止阀节点,可旋转打开;实装位置待专业确认。'],
+ [42,'基本对应','使用真实盒盖和互救开关;与005是否同一开关,原表列为待澄清项。'],
+ [43,'基本对应','两个独立滤油器出口球阀均绑定,必须分别完成操作。'],
+ [44,'简化实现','保障车GLB只有整车、玻璃、接口盖、回油阀四个网格;取力器开关是代码补充件,供油靠软管变色表示。'],
+ [45,'关键内容缺失','可移动示意手柄结束步骤,但没有“按正常步骤操作架桥车”的整机作业动作。不能据此验收正常作业已完成。'],
+ ],
+ '007':[
+ [47,'简化实现','停机着色及牛皮纸缩放已实现;未用裁剪工具沿真实结合面轮廓裁切。'],
+ [48,'待资料确认','绑定2_07球阀开关02和3-02球阀开关,能关闭;是否对应“1号球阀”须确认编号。'],
+ [49,'简化实现','进出油接头与两封口袋可独立操作;接头只有位移,缺大活动扳手旋松及包扎动作。'],
+ [50,'简化实现','两组源网格拆成四颗真实螺栓,逐颗旋转拆下;无开口扳手动作,旋转行程为示意。'],
+ [51,'基本对应','原位旧前泵可取下,安装位置保留。'],
+ [52,'简化实现','从初裁纸切换为精裁纸垫几何;没有实际轮廓裁切过程。'],
+ [53,'简化实现','纸垫可移动到取力器接口;贴合位置按偏移估算,尚缺结合面形状尺寸验收依据。'],
+ [54,'基本对应','新泵归位并安装四颗螺栓;新旧泵复用同一源几何。不能据此验收扭矩或装配尺寸。'],
+ [55,'简化实现','真实加油口盖随新泵移动,可打开;加油壶与油流是补充件,无油量计算及关盖动作。'],
+ [56,'简化实现','取袋和接头归位可完成;没有“拧紧”的接头旋转及扳手动作。'],
+ [57,'关键内容缺失','发动机变色、示意试验手柄可操作;没有整机试车工况、泄漏检查、压力响应与合格判据。'],
+ ],
+ '008':[
+ [59,'简化实现','补充布块移动和阀体变色;没有清洗剂、油污到洁净的材质变化及各管接头擦拭。'],
+ [60,'简化实现','真实管接头移开、封口袋就位;无19号开口扳手及旋松过程。'],
+ [61,'简化实现','四颗真实安装螺栓分别拆除并取阀;无8号内六角工具。'],
+ [62,'简化实现','两个真实油堵分别封堵;擦净结合面仅为示意阀座平面变色。'],
+ [64,'简化实现','同小腔,补充布块移动、阀体变色;缺去污材质和管接头清洗。'],
+ [65,'简化实现','真实大腔接头和封口袋可操作;无19号扳手和接头旋松。'],
+ [66,'简化实现','四颗真实安装螺栓与大腔阀体可拆除;无8号内六角工具。'],
+ [67,'简化实现','两个真实油堵可封堵;阀座接触面仍是代码补充平面。'],
+ [69,'简化实现','示意阀座变色及两个油堵移开;缺阀体、阀座双方的擦拭动作。'],
+ [70,'简化实现','小腔来源阀换装到大腔位置,按四螺栓安装面换算朝向;可安装四颗螺栓,缺内六角工具。'],
+ [71,'待资料确认','原表同时写连接拧紧与拆开包扎。当前执行取袋接管并要求记录依据,交教员核对;不能自动判为正确装配。'],
+ [72,'待资料确认','复用第10步同一组四颗螺栓再次旋转。若固定螺栓和阀体连接螺栓是两组,当前缺第二组。'],
+ [74,'简化实现','示意阀座变色及两个油堵移开;缺阀体和阀座双面擦拭。'],
+ [75,'简化实现','大腔来源阀换装到小腔位置并调整朝向;四颗真实螺栓可装,缺内六角工具。'],
+ [76,'待资料确认','与第11步相同的装/拆原文矛盾;保留人工依据与教员核对,不能当作已澄清。'],
+ [77,'待资料确认','复用第14步四颗螺栓。是否另有一组四颗阀体连接螺栓仍待确认。'],
+ ]};
+const taskIds={'005':116,'006':87,'007':88,'008':89};
+const rows=[];
+for(const [code,notes] of Object.entries(data)){
+ const task=tasks.find(t=>String(t.id)===String(taskIds[code]));
+ if(notes.length!==task.definitionSnapshot.steps.length)throw Error('Step coverage mismatch '+code);
+ for(const [i,[row,grade,note]]of notes.entries()){
+ const step=task.definitionSnapshot.steps[i],ops=step.action.mechanism.steps;
+ const matches=runtime.checks.filter(c=>c.name.startsWith(`task ${taskIds[code]} step ${i+1} operation `));
+ const sourceRow=source[0].rows.find(r=>r['B'+row]);
+ rows.push({code,number:i+1,title:step.title,grade,note,source:`1-动画!B${row}:D${row}`,original:sourceRow?.['C'+row],
+ operations:ops.map(o=>({targetId:o.targetId,kind:o.kind,effects:o.effects})),
+ expectedOperations:ops.length,verifiedOperations:matches.length,
+ runtimeComplete:matches.length===ops.length,screenshot:`task-${taskIds[code]}-step-${i+1}.png`});
+ }
+}
+const counts=Object.fromEntries(['基本对应','简化实现','待资料确认','关键内容缺失'].map(s=>[s,rows.filter(r=>r.grade===s).length]));
+const copiedModels=[];
+for(const task of tasks.filter(t=>t.id!=='86'))for(const o of task.definitionSnapshot.scenario.sceneResource.snapshot.objects){
+ const supplied=models.find(m=>m.name===o.sourceName);if(!supplied)continue;
+ const file=path.resolve('../unreal_tran_web/public'+o.resourceUrl);
+ const sha256=crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex');
+ if(sha256!==supplied.sha256)throw Error('Source model changed '+o.sourceName);
+ if(!copiedModels.some(m=>m.source===o.sourceName))copiedModels.push({source:o.sourceName,file:o.resourceUrl,sha256});
+}
+const report={date:'2026-09-21',counts,verifiedSteps:rows.filter(r=>r.runtimeComplete).length,totalSteps:39,
+ verifiedOperations:rows.reduce((n,r)=>n+r.verifiedOperations,0),original005RuntimePass:originalRuntime?.pass===true,
+ runtimePass:runtime.pass,copiedModels,rows,
+ limitation:'仅教员预览真实点击/拖拽、准备与服务端步骤校验;不写学员成绩,不等同实装质量、工具尺寸、扭矩、压力和安全流程验收。'};
+fs.writeFileSync(path.join(dir,'assessment.json'),JSON.stringify(report,null,2));
+const summary=`# 四套脚本新模型逐步验收(2026-09-21)\n\n对照原始工作簿,检查当前接口任务定义、GLB节点与运行时代码,并用真实浏览器逐项操作。工作簿内容与2026-09-17提取件一致,本次重新读取并记录SHA-256。\n\n## 结论\n\n- 新模型39步:${report.verifiedSteps}/39步完成全部配置操作;浏览器总结果:${runtime.pass?'通过':'存在失败,见JSON'}。\n- 内容匹配:${Object.entries(counts).map(([k,v])=>k+' '+v+'步').join(';')}。这些是内容判断,不能用交互通关替代。\n- 005正式任务86仍使用旧“步骤模型.glb”;新模型005在验证任务116。006~008正式任务87~89已使用0916新模型。本次没有擅自更换任务版本。\n- 006第7步的整机正常作业、007第11步的试车验证,目前只有示意手柄,不能按原要求完成。\n- 008第11/15步装拆方向、12/16步是否两组螺栓、007第2步球阀编号,仍需专业资料确认。\n- 所有新GLB均无内嵌动画;局部机构动画由运行代码实现。提供的“开口扳手.glb”未接入当前场景,工具操作并非模型里自动具备。\n\n## 每一步\n\n|流程|步|步骤|内容匹配|操作验证|缺口/边界|原表|\n|---|---:|---|---|---|---|---|\n`;
+const table=rows.map(r=>`|${r.code}|${r.number}|${r.title}|${r.grade}|${r.verifiedOperations}/${r.expectedOperations}|${r.note}|${r.source}|`).join('\n');
+const tail=`\n\n## 优先补齐\n\n1. 006最后一步、007试车:需明确整机作业内容及试车合格判据,再绑定真实机构联动,不能仅移动示意开关。\n2. 008两组螺栓及装拆矛盾、007球阀编号:请模型/业务人员确认后才能据此更改评分或动作。\n3. 接入已有开口扳手,补充内六角工具、接头旋紧动作;工具规格与接触点需要核验。\n4. 补齐纸垫真实结合面尺寸、清洗去污、加油口关闭;005补充独立后泵定位及单泵工作结果演示。\n5. 005从验证入口切换正式任务另走内容发布与模型换版,避免影响已有运行。\n\n## 讲解与背景范围\n\n背景和讲解页已存在,不能继续沿用旧报告“没有导入页面”的结论。但文字/背景图不等于液压原理图和动态供油回路;原表要求的液压原理图、三类环境素材及整机作业演示仍需单独验收。本次新数字人资源覆盖39个操作步骤。\n\n## 验证边界\n\n${report.limitation}\n\n新模型文件已逐项与用户提供原文件核对SHA-256。步骤截图、接口快照、原表提取、模型节点清单与实时操作结果都保存在本报告目录。\n`;
+fs.writeFileSync(path.join(dir,'验收报告.md'),summary+table+tail);
+const esc=s=>String(s??'').replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"');
+const cards=rows.map(r=>`${r.code} · 第${r.number}步${r.grade}${esc(r.title)}
${esc(r.note)}
${r.source} · 已验证 ${r.verifiedOperations}/${r.expectedOperations} 项交互查看原稿和动作目标
${esc(r.original)}
${esc(r.operations.map(o=>o.targetId+' · '+o.kind).join('\n'))}
`).join('');
+fs.writeFileSync(path.join(dir,'index.html'),`四套脚本新模型逐步验收005~008 · 新模型逐步验收
${report.verifiedSteps}/39 步完成配置操作;内容完整性另行判断${Object.entries(counts).map(([k,v])=>k+' '+v+'步').join(' · ')}
005 正式任务86仍是旧模型;新模型验证入口为116。006~008正式任务已用新模型。
主要缺口:006整机正常作业、007试车;008装拆方向与螺栓分组待确认。交互通关不等同于实装检修合格。
完整 Markdown 报告 ·
逐项证据 ${cards}`);
+console.log(JSON.stringify({verifiedSteps:report.verifiedSteps,counts,runtimePass:report.runtimePass,copiedModels:copiedModels.length}));
diff --git a/tools/bridge-narration-current-voice.py b/tools/bridge-narration-current-voice.py
new file mode 100644
index 0000000..8b3f4df
--- /dev/null
+++ b/tools/bridge-narration-current-voice.py
@@ -0,0 +1,197 @@
+"""Generate a resumable, versioned narration set; never replace old media.
+
+Run from ai_person_api with its configured Python environment. Reads the linked
+agent's actual default voice and validates the approved avatar bundle. Manifest
+activation is deliberately separate, after all 39 clips have been verified.
+"""
+from pathlib import Path
+import copy
+import hashlib
+import html
+import json
+import re
+import shutil
+import subprocess
+import sys
+import threading
+
+import httpx
+import numpy as np
+import soundfile as sf
+from sqlalchemy import select
+
+ROOT = Path(__file__).resolve().parents[3]
+WEB = ROOT / 'unreal_tran/unreal_tran_web'
+REPORT = ROOT / 'unreal_tran/ute2e/reports/bridge-narration-junhao-20260921'
+SOURCE = WEB / 'src/features/virtual-training-scripts'
+REVISION = 'junhao-v2-20260921'
+sys.path.insert(0, str(ROOT / 'ai_person/ai_person_api'))
+from app.config import get_settings
+from app.persistence.database import get_session_factory
+from app.persistence.agent_models import Agent, AgentAvatar, AgentVoice
+from app.persistence.asset_models import Avatar, CapabilityAsset
+from app.schemas.open_platform import GenerationCommand
+from app.services.moss_tts_service import MossTtsService
+from app.services.open_generation_worker import OpenGenerationWorker
+
+
+def digest(path):
+ return hashlib.sha256(path.read_bytes()).hexdigest()
+
+
+def write_json(path, value):
+ temporary = path.with_suffix(path.suffix + '.tmp')
+ temporary.write_text(json.dumps(value, ensure_ascii=False, indent=2) + '\n', 'utf-8')
+ temporary.replace(path)
+
+
+def manifest(name):
+ return json.loads((SOURCE / name).read_text('utf-8').split('export default', 1)[1].strip().rstrip(';'))
+
+
+def probe(settings, path):
+ return json.loads(subprocess.run([settings.ffprobe_binary, '-v', 'error', '-show_streams',
+ '-show_format', '-of', 'json', str(path)], capture_output=True, encoding='utf-8', check=True).stdout)
+
+
+def prepare_audio(settings, raw, audio):
+ samples, rate = sf.read(raw, always_2d=True)
+ result = subprocess.run([settings.ffmpeg_binary, '-hide_banner', '-i', str(raw), '-af',
+ 'silencedetect=noise=-48dB:d=0.65', '-f', 'null', '-'], capture_output=True, encoding='utf-8', check=True)
+ starts = [float(x) for x in re.findall(r'silence_start: ([0-9.]+)', result.stderr)]
+ ends = [float(x) for x in re.findall(r'silence_end: ([0-9.]+)', result.stderr)]
+ if len(starts) > len(ends): ends.append(len(samples) / rate)
+ pieces, cuts, last = [], [], 0
+ for start, end in zip(starts, ends):
+ a, b = round((start + .16) * rate), round((end - .16) * rate)
+ if b <= a: continue
+ pieces.append(samples[last:a]); last = b
+ cuts.append({'start': start, 'end': end, 'keptSeconds': .32})
+ pieces.append(samples[last:])
+ prepared = np.concatenate(pieces)
+ sf.write(audio, prepared, rate, subtype='PCM_16')
+ return {'duration': len(prepared) / rate, 'rawDuration': len(samples) / rate, 'pauseCuts': cuts}
+
+
+def main():
+ REPORT.mkdir(parents=True, exist_ok=True)
+ settings = get_settings().model_copy(update={'service_base_url': 'http://1.14.103.234:8123'})
+ with httpx.Client(trust_env=False, timeout=30) as client:
+ widget = client.get('http://127.0.0.1:6180/api/auth/v1/system-config/public').json()['data']['digitalHumanWidget']
+ with get_session_factory()() as db:
+ agent = db.scalar(select(Agent).where(Agent.slug == widget['agentSlug'], Agent.is_delete == 0))
+ ar = db.scalar(select(AgentAvatar).where(AgentAvatar.agent_id == agent.id).order_by(AgentAvatar.is_default.desc(), AgentAvatar.sort_order))
+ vr = db.scalar(select(AgentVoice).where(AgentVoice.agent_id == agent.id).order_by(AgentVoice.is_default.desc(), AgentVoice.sort_order))
+ avatar, voice = db.get(Avatar, ar.avatar_id), db.get(CapabilityAsset, vr.capability_id)
+ model = db.get(CapabilityAsset, voice.tts_model_id)
+ assert voice.asset_code == 'builtin-voice-moss-junhao', 'Default voice changed; review before generation'
+ assert model.status == 'ENABLED' and model.validation_status == 'AVAILABLE'
+ assert voice.status == 'ENABLED' and voice.validation_status == 'AVAILABLE'
+ avatar_id, voice_id = str(avatar.id), str(voice.id)
+ provider_avatar, speaker = avatar.provider_avatar_id, voice.speaker_code
+ profile = {'revision': REVISION, 'agent': agent.agent_name, 'agentSlug': agent.slug,
+ 'agentDataVersion': agent.data_version, 'avatarName': avatar.avatar_name,
+ 'providerAvatarId': provider_avatar, 'voice': voice.asset_name,
+ 'voiceCapabilityId': voice.asset_code, 'engine': 'MOSS-TTS-Nano',
+ 'speaker': speaker, 'speed': float(agent.voice_speed), 'materialVersion': 'v2',
+ 'width': 480, 'height': 640, 'fps': 25, 'lipAndPlaybackInput': 'same mono 16kHz PCM16 WAV',
+ 'pauseProcessing': 'silence below -48dB longer than 0.65s shortened to 0.32s'}
+ response = client.get(str(settings.service_base_url).rstrip('/') + f'/api/v1/avatars/{provider_avatar}/assets/manifest.json')
+ response.raise_for_status()
+ profile['avatarManifestSha256'] = hashlib.sha256(response.content).hexdigest()
+ expected = json.loads((ROOT / 'ai_person/ai_person_service/builtin_avatars/instructors-v2.json').read_text('utf-8'))['instructors'][0]
+ assert profile['avatarManifestSha256'] == expected['bundle_sha256']['manifest.json']
+ progress_path = REPORT / 'generation.json'
+ progress = json.loads(progress_path.read_text('utf-8')) if progress_path.exists() else {'profile': profile, 'clips': []}
+ assert progress['profile'] == profile, 'Configuration changed; use a new revision'
+ write_json(progress_path, progress)
+ old_audio, old_video = manifest('narration-manifest.js'), manifest('narration-video-manifest.js')
+ audio_manifest, video_manifest = copy.deepcopy(old_audio), copy.deepcopy(old_video)
+ audio_manifest['voice'], video_manifest['profile'] = profile, profile
+ renderer, engine = OpenGenerationWorker(None, settings, None, None), MossTtsService(settings)
+ done = {c['key']: c for c in progress['clips']}
+ try:
+ for pack in audio_manifest['scripts']:
+ videos = next(p for p in video_manifest['scripts'] if p['code'] == pack['code'])
+ for clip in pack['steps']:
+ key = f"{pack['code']}-step-{clip['number']:02}"
+ text = clip['text']
+ # Avoid repeating the step title as a second, almost identical sentence.
+ if key == 'TASK-VIRTUAL-005-step-01': text = '第一步,根据故障现象,确认是哪一个液压泵发生故障。'
+ if key == 'TASK-VIRTUAL-006-step-07': text = '第七步,按照正常操作步骤,操作架桥车。'
+ if key == 'TASK-VIRTUAL-007-step-05': text = '第五步,取下发生故障的前部液压泵。'
+ if key == 'TASK-VIRTUAL-008-step-08': text = '第八步,用两个油堵封住大腔的两个油口,并擦净阀座结合面。'
+ if key == 'TASK-VIRTUAL-008-step-09': text = '第九步,准备安装大腔平衡阀。擦净平衡阀及阀座结合面,然后取下两个油堵。'
+ assert not any(s in text for s in ['原稿', '未展开', '没有展开']), key
+ folder = WEB / 'public/legacy/virtual-training/narration-revisions' / REVISION
+ folder.mkdir(parents=True, exist_ok=True)
+ audio, video = folder / f'{key}.wav', folder / f'{key}.mp4'
+ raw, capture = REPORT / f'{key}-raw.wav', REPORT / f'{key}.webm'
+ if key in done:
+ row = done[key]
+ assert row['text'] == text and digest(audio) == row['audioSha256'] and digest(video) == row['videoSha256'], key
+ else:
+ print(f'{key}: synthesize', flush=True)
+ if not raw.exists():
+ generated = engine.synthesize(text, voice_code=speaker, speed=profile['speed'])
+ shutil.copyfile(engine.output_path(generated['id']), raw)
+ prepared = prepare_audio(settings, raw, audio)
+ print(f'{key}: render {prepared["duration"]:.2f}s', flush=True)
+ command = GenerationCommand(title=key, text=text, avatarId=avatar_id, voiceId=voice_id,
+ speed=profile['speed'], width=480, height=640, subtitles=False)
+ renderer.capture(command, provider_avatar, audio, None, capture, threading.Event())
+ subprocess.run([settings.ffmpeg_binary, '-v', 'error', '-y', '-i', str(capture), '-r', '25',
+ '-c:v', 'libx264', '-preset', 'veryfast', '-crf', '20', '-pix_fmt', 'yuv420p',
+ '-c:a', 'aac', '-b:a', '128k', '-movflags', '+faststart', str(video)], check=True)
+ info = probe(settings, video)
+ v = next(s for s in info['streams'] if s['codec_type'] == 'video')
+ a = next(s for s in info['streams'] if s['codec_type'] == 'audio')
+ assert (v['width'], v['height'], v['codec_name'], v['r_frame_rate']) == (480, 640, 'h264', '25/1')
+ assert a['codec_name'] == 'aac'
+ duration = float(info['format']['duration'])
+ assert abs(duration - prepared['duration']) < .7, (key, duration, prepared)
+ subprocess.run([settings.ffmpeg_binary, '-v', 'error', '-i', str(video), '-f', 'null', '-'], check=True)
+ row = {'key': key, 'code': pack['code'], 'number': clip['number'], 'title': clip['expectedTitle'],
+ 'text': text, **prepared, 'videoDuration': duration, 'audioSha256': digest(audio),
+ 'videoSha256': digest(video), 'audioUrl': '/' + audio.relative_to(WEB / 'public').as_posix(),
+ 'videoUrl': '/' + video.relative_to(WEB / 'public').as_posix()}
+ progress['clips'].append(row); write_json(progress_path, progress)
+ print(f'{key}: complete ({len(progress["clips"])}/39)', flush=True)
+ clip.update(text=text, url=row['audioUrl'], stepDuration=row['duration'], stepSha256=row['audioSha256'])
+ vc = next(c for c in videos['steps'] if c['stepCode'] == clip['stepCode'])
+ vc.update(text=text, url=row['videoUrl'], duration=row['videoDuration'], sha256=row['videoSha256'])
+ finally:
+ engine.close()
+ assert len(progress['clips']) == 39
+ progress['clips'].sort(key=lambda clip: clip['key'])
+ write_json(progress_path, progress)
+ # The two valve-review steps share one prompt; regenerate it in the same
+ # voice so video-to-audio fallback and safety playback do not change timbre.
+ safety_engine = MossTtsService(settings)
+ try:
+ for pack in audio_manifest['scripts']:
+ for clip in pack['steps']:
+ if not clip.get('safetyText'): continue
+ key = hashlib.sha256(clip['safetyText'].encode()).hexdigest()[:16]
+ raw = REPORT / f'safety-{key}-raw.wav'
+ wav = WEB / f'public/legacy/virtual-training/narration-revisions/{REVISION}/safety-{key}.wav'
+ if not raw.exists():
+ generated = safety_engine.synthesize(clip['safetyText'], voice_code=speaker, speed=profile['speed'])
+ shutil.copyfile(safety_engine.output_path(generated['id']), raw)
+ prepared = prepare_audio(settings, raw, wav)
+ clip.update(safetyUrl='/' + wav.relative_to(WEB / 'public').as_posix(),
+ safetyDuration=prepared['duration'], safetySha256=digest(wav))
+ finally:
+ safety_engine.close()
+ write_json(REPORT / 'audio-manifest.json', audio_manifest)
+ write_json(REPORT / 'video-manifest.json', video_manifest)
+ cards = []
+ for row in progress['clips']:
+ url = '../../../unreal_tran_web/public' + row['videoUrl']
+ wav = '../../../unreal_tran_web/public' + row['audioUrl']
+ cards.append(f'{html.escape(row["key"])} · {html.escape(row["title"])}
{html.escape(row["text"])}
试听音频 · {row["videoDuration"]:.2f} 秒
')
+ (REPORT / 'index.html').write_text('四套流程 · Junhao 新讲解005~008 · 教员1 v2 / MOSS · Junhao
39 段新讲解;保留旧版。长静音经过压缩,口型和播放使用同一份音频。技术检查通过不等同于人工发音与口型验收。
' + ''.join(cards) + '', 'utf-8')
+ print('ALL 39 COMPLETE; manifests ready for review and activation', flush=True)
+
+
+if __name__ == '__main__': main()
diff --git a/tools/bridge-narration-quality.py b/tools/bridge-narration-quality.py
new file mode 100644
index 0000000..7411594
--- /dev/null
+++ b/tools/bridge-narration-quality.py
@@ -0,0 +1,62 @@
+"""Check available clips against source audio and run an independent ASR screen.
+
+ASR similarity is a triage aid, not a pronunciation or visual lip-sync verdict.
+"""
+from pathlib import Path
+import difflib
+import json
+import re
+import subprocess
+import sys
+
+import numpy as np
+from scipy.signal import correlate, correlation_lags
+
+ROOT=Path(__file__).resolve().parents[3]
+sys.path.insert(0,str(ROOT/'ai_person/ai_person_api'))
+from app.config import get_settings
+from app.services.asr_service import AsrService
+
+REPORT=ROOT/'unreal_tran/ute2e/reports/bridge-narration-junhao-20260921'
+WEB=ROOT/'unreal_tran/unreal_tran_web/public'
+
+def pcm(settings,path):
+ return np.frombuffer(subprocess.run([settings.ffmpeg_binary,'-v','error','-i',str(path),
+ '-vn','-ac','1','-ar','16000','-f','f32le','pipe:1'],capture_output=True,check=True).stdout,dtype=np.float32)
+
+def normalize(text):
+ numbers=['零','一','二','三','四','五','六','七','八','九','十','十一','十二','十三','十四','十五','十六']
+ text=re.sub(r'\d+',lambda m:numbers[int(m[0])] if int(m[0]).9 and abs(len(a)-len(b))<16000*.7,
+ 'needsTranscriptReview':similarity<.85}
+ results=[r for r in results if r['key']!=clip['key']]+[row]
+ temp=target.with_suffix('.tmp');temp.write_text(json.dumps(results,ensure_ascii=False,indent=2),'utf-8');temp.replace(target)
+ print(clip['key'],row['technicalPass'],'ASR',row['asrSimilarity'],'lag',row['audioLagMs'],flush=True)
+
+if __name__=='__main__':main()
diff --git a/tools/bridge-narration-release-live.mjs b/tools/bridge-narration-release-live.mjs
new file mode 100644
index 0000000..48c6574
--- /dev/null
+++ b/tools/bridge-narration-release-live.mjs
@@ -0,0 +1,53 @@
+import {chromium,expect} from '@playwright/test';
+import assert from 'node:assert/strict';
+import fs from 'node:fs';
+import {login,call} from './role-permissions-live.mjs';
+import {manifest,videos,activeRelease} from '../../unreal_tran_web/src/features/virtual-training-scripts/narration-release.js';
+const dir='reports/bridge-narration-junhao-20260921';
+const origin=process.env.BASE_URL||'http://127.0.0.1:6180';
+const signed=await login('root'),results=[],errors=[];
+const browser=await chromium.launch({channel:'msedge',headless:true,args:['--enable-unsafe-swiftshader']});
+const page=await browser.newPage({viewport:{width:1440,height:900}});
+await page.addInitScript(token=>{
+ sessionStorage.setItem('unreal-tran:web:access-token:v1',token);
+ localStorage.setItem('unreal-tran:web:preferences:v1',JSON.stringify({themeMode:'military'}));
+ window.__prematureNarration=[];
+ document.addEventListener('playing',e=>{
+ if(e.target.matches?.('.training-server-video')&&document.querySelector('[data-role="loading"]:not(.is-hidden)'))window.__prematureNarration.push(e.target.currentSrc);
+ },true);
+},signed.accessToken);
+page.on('pageerror',e=>errors.push(e.message));
+try{
+ for(const [i,pack]of manifest.scripts.entries()){
+ const task=(await call('tran/v1/teaching/assignments/'+(86+i),signed.accessToken)).data;
+ const videoPack=videos.scripts.find(p=>p.code===pack.code);
+ await page.goto(`${origin}/teaching/virtual-training/preview/${task.id}`);
+ await expect(page.locator('[data-role="loading"]')).toHaveClass(/is-hidden/,{timeout:120000});
+ const skip=page.locator('.training-introduction [data-intro-command="skip"]');if(await skip.isVisible())await skip.click();
+ const launch=page.locator('[data-role="teacher-launch"]');if(await launch.isVisible())await launch.click();
+ const toggle=page.locator('[data-action="toggle-teacher-media"]');
+ await expect(toggle).toContainText('切换语音');
+ await page.locator('[data-action="teacher-speak"]').click();
+ const media=page.locator('.training-server-video');
+ await expect(media).toBeVisible();
+ await expect.poll(()=>media.evaluate(v=>v.currentTime),{timeout:20000}).toBeGreaterThan(.1);
+ const playback=await media.evaluate(v=>({src:new URL(v.currentSrc).pathname,width:v.videoWidth,height:v.videoHeight,error:v.error?.message}));
+ assert.equal(playback.src,videoPack.steps[0].url);assert.deepEqual([playback.width,playback.height],[480,640]);assert.equal(playback.error,undefined);
+ await page.screenshot({path:`${dir}/${pack.code}-new-video.png`});
+ await toggle.click();await expect(media).toBeHidden();
+ await expect.poll(()=>media.evaluate(v=>new URL(v.currentSrc||v.src,location.href).pathname)).toBe(pack.steps[0].url);
+ await expect.poll(()=>media.evaluate(v=>v.currentTime)).toBeGreaterThan(.1);
+ await toggle.click();await expect(media).toBeVisible();
+ await expect.poll(()=>media.evaluate(v=>v.currentTime)).toBeGreaterThan(.1);
+ await media.evaluate(v=>{v.src='data:video/mp4;base64,AA==';v.load();});
+ await expect(media).toBeHidden();
+ await expect.poll(()=>media.evaluate(v=>new URL(v.currentSrc||v.src,location.href).pathname)).toBe(pack.steps[0].url);
+ await expect.poll(()=>media.evaluate(v=>v.currentTime)).toBeGreaterThan(.1);
+ assert.deepEqual(await page.evaluate(()=>window.__prematureNarration),[]);
+ results.push({code:pack.code,activeRelease,defaultVideo:true,newVideo:playback.src,newAudioFallback:pack.steps[0].url,failedVideoFallback:true,noPlaybackDuringLoading:true});
+ console.log('PASS',pack.code);
+ }
+ assert.deepEqual(errors,[]);
+ fs.writeFileSync(`${dir}/${origin.includes('127.0.0.1')?'playback':'lan-playback'}.json`,JSON.stringify({origin,pass:true,results,errors},null,2));
+}catch(e){await page.screenshot({path:`${dir}/playback-failure.png`}).catch(()=>{});fs.writeFileSync(`${dir}/playback-failure.json`,JSON.stringify({error:e.message,results,errors},null,2));throw e;}
+finally{await browser.close();}
diff --git a/tools/finish-bridge-narration-report.mjs b/tools/finish-bridge-narration-report.mjs
new file mode 100644
index 0000000..b641345
--- /dev/null
+++ b/tools/finish-bridge-narration-report.mjs
@@ -0,0 +1,46 @@
+import fs from 'node:fs';
+import path from 'node:path';
+import {manifest,videos,selectNarrationRelease} from '../../unreal_tran_web/src/features/virtual-training-scripts/narration-release.js';
+const dir=path.resolve('reports/bridge-narration-junhao-20260921');
+const progress=JSON.parse(fs.readFileSync(path.join(dir,'generation.json'),'utf8'));
+const quality=JSON.parse(fs.readFileSync(path.join(dir,'quality.json'),'utf8'));
+const old=selectNarrationRelease('previous');
+const esc=s=>String(s??'').replaceAll('&','&').replaceAll('<','<').replaceAll('>','>').replaceAll('"','"');
+const link=url=>'../../../unreal_tran_web/public'+url;
+const cards=manifest.scripts.flatMap(p=>p.steps.map(c=>{
+ const v=videos.scripts.find(s=>s.id===p.id).steps.find(s=>s.stepCode===c.stepCode);
+ const before=old.videos.scripts.find(s=>s.id===p.id).steps.find(s=>s.stepCode===c.stepCode);
+ const q=quality.find(s=>s.key===`${p.code}-step-${String(c.number).padStart(2,'0')}`);
+ return `${p.code} · 第${c.number}步
${esc(c.expectedTitle)}
${esc(c.text)}
Junhao 语音 · 旧版视频对比 · ${v.duration.toFixed(2)}秒
查看机器转写辅助记录
${esc(q.asrText)}
专业词语可能识别错误;此记录不能代替试听或口型验收。音轨比对偏移 ${q.audioLagMs}ms。 `;
+})).join('');
+const duration=progress.clips.reduce((n,c)=>n+c.videoDuration,0);
+fs.writeFileSync(path.join(dir,'index.html'),`005~008 · Junhao 新讲解005~008 · 新版步骤讲解
教员1 v2 · MOSS · Junhao · 1.0倍速 · 3:439段视频,共${duration.toFixed(2)}秒。对应39份新语音,复核提示音同样使用Junhao。旧版80个媒体文件全部保留。
本地任务已切换新版静态引用。音轨、编码和时长检查通过;发音、自然度和视觉口型仍需人工试听确认。
文件位置与回退方法 · 四套模型逐步验收
${cards}`);
+const notes=`# Junhao 讲解资源交付(2026-09-21)
+
+- 默认配置来源:数字车间所绑定的“${progress.profile.agent}”,配置版本${progress.profile.agentDataVersion};默认音色MOSS · Junhao,语速1.0,教员1 v2。
+- 39段操作步骤视频(480×640、25fps、H.264/AAC),39份配套WAV;两个平衡阀复核步骤共享1份Junhao提示音。
+- 当前静态目录:\`unreal_tran_web/public/legacy/virtual-training/narration-revisions/junhao-v2-20260921/\`。
+- 文件以任务号和步骤命名,例如\`TASK-VIRTUAL-005-step-01.mp4\`和同名WAV。
+- 新版引用:\`src/features/virtual-training-scripts/narration-release.js\`。新的两个清单文件记录准确标题、说明、讲解词、时长、SHA-256。
+- 原清单和80个旧媒体文件保持原字节;\`previous-media.json\`记录旧文件摘要。4段初版重做前的音视频也保留在本报告目录。
+
+## 回退
+
+在前端环境配置中设置\`VITE_BRIDGE_NARRATION_RELEASE=previous\`,开发环境重启Vite;部署环境重新构建前端。切回新版设为\`junhao-v2-20260921\`。两代音视频都在项目中,无需重新生成或改数据库。
+
+## 实施范围
+
+只切换005~008四个静态脚本的操作步骤讲解。背景/讲解导入页与普通训练编排任务不改,005独立新模型编排验证入口116保留原资产。任务模型、步骤、评分和成绩记录不改。没有发布测试环境,也没有提交或推送Git。
+
+## 验证
+
+- 39段全部通过解码、分辨率、帧率、音轨、时长及源音频比对;音轨偏移${Math.min(...quality.map(q=>q.audioLagMs))}~${Math.max(...quality.map(q=>q.audioLagMs))}ms,不是视觉口型误差测量。
+- CPU ASR辅助转写记录见\`quality.json\`。专业名词/序号会误识别,${quality.filter(q=>q.needsTranscriptReview).length}段标为人工复核;不能把机器转写相似度当作最终发音评分。
+- 四任务本地浏览器播放/切换语音/视频错误回退/加载门控见\`playback.json\`;局域网结果见\`lan-playback.json\`。
+- 19项模型与讲解合同测试、正式路由检查、生产构建通过。
+- 模型验收见相邻报告,39步95项配置动作通过;原正式005另验证5步6项通过。内容上仍有23步简化、5步待确认和2步关键内容缺失。
+
+技术检查不代替自然度与视觉口型的人工验收,请使用本目录index.html逐段试听对比。
+`;
+fs.writeFileSync(path.join(dir,'交付说明.md'),notes);
+console.log('Review page and rollback documentation ready.');