diff --git a/reports/bridge-entry-view-20260925-before/result.json b/reports/bridge-entry-view-20260925-before/result.json
new file mode 100644
index 0000000..da7a262
--- /dev/null
+++ b/reports/bridge-entry-view-20260925-before/result.json
@@ -0,0 +1,534 @@
+{
+ "pass": true,
+ "baseline": true,
+ "checks": [
+ {
+ "task": "86",
+ "view": "entry",
+ "snapshot": null,
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "210px",
+ "width": 210,
+ "title": ""
+ }
+ },
+ {
+ "task": "86",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 7.845729572806127,
+ 4.314302505404388,
+ 9.770153807645361
+ ],
+ "target": [
+ 2.220446049250313e-16,
+ 0.9835682527980127,
+ 0
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 526.099348545458,
+ "y": 269.81826219289417,
+ "w": 439.3860665242073,
+ "h": 255.54519097874947
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "86",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 7.845729572806127,
+ 4.314302505404388,
+ 9.770153807645361
+ ],
+ "target": [
+ 2.220446049250313e-16,
+ 0.9835682527980127,
+ 0
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 526.099348545458,
+ "y": 269.81826219289417,
+ "w": 439.3860665242072,
+ "h": 255.54519097874947
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "entry",
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "210px",
+ "width": 210,
+ "title": ""
+ }
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 11.200418933268718,
+ 6.633106461001029,
+ 11.970584313997993
+ ],
+ "target": [
+ 1.6883683848926894,
+ 1.0123493187788344,
+ -0.13566183848059055
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 542.2461617223871,
+ "y": 271.8017853857075,
+ "w": 309.155255300627,
+ "h": 197.3465556112713
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 11.200418933268718,
+ 6.633106461001029,
+ 11.970584313997993
+ ],
+ "target": [
+ 1.6883683848926894,
+ 1.0123493187788344,
+ -0.13566183848059077
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 542.2461617223871,
+ "y": 271.8017853857075,
+ "w": 309.1552553006269,
+ "h": 197.3465556112713
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "entry",
+ "snapshot": null,
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "210px",
+ "width": 210,
+ "title": ""
+ }
+ },
+ {
+ "task": "88",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 8.639348853171596,
+ 6.1825087786854676,
+ 11.000065353323455
+ ],
+ "target": [
+ -0.1101510832458732,
+ 1.0123497253478748,
+ -0.13566183848059052
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 592.6026123888879,
+ "y": 277.2687781279076,
+ "w": 336.6507106400966,
+ "h": 238.43354191317405
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 8.639348853171596,
+ 6.1825087786854676,
+ 11.000065353323455
+ ],
+ "target": [
+ -0.11015108324587322,
+ 1.0123497253478748,
+ -0.13566183848059052
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 592.6026123888879,
+ "y": 277.2687781279076,
+ "w": 336.6507106400966,
+ "h": 238.43354191317405
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "entry",
+ "snapshot": null,
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "210px",
+ "width": 210,
+ "title": ""
+ }
+ },
+ {
+ "task": "89",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 7.72499140270015,
+ 5.577117406210051,
+ 9.696145474145634
+ ],
+ "target": [
+ -5.7220459037665705e-8,
+ 1.0123497253478748,
+ -0.13566183848059055
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 554.8411253673859,
+ "y": 266.43276739954246,
+ "w": 384.8452167247707,
+ "h": 271.40429919559136
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": true,
+ "camera": [
+ 7.72499140270015,
+ 5.577117406210051,
+ 9.696145474145634
+ ],
+ "target": [
+ -5.7220459037665705e-8,
+ 1.0123497253478748,
+ -0.13566183848059055
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 554.8411253673859,
+ "y": 266.43276739954246,
+ "w": 384.8452167247707,
+ "h": 271.40429919559136
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-entry-view-20260925-before/task-86-entry.png b/reports/bridge-entry-view-20260925-before/task-86-entry.png
new file mode 100644
index 0000000..c04bfe5
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-86-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-86-overview.png b/reports/bridge-entry-view-20260925-before/task-86-overview.png
new file mode 100644
index 0000000..742d808
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-86-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-86-reset.png b/reports/bridge-entry-view-20260925-before/task-86-reset.png
new file mode 100644
index 0000000..1664935
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-86-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-87-entry.png b/reports/bridge-entry-view-20260925-before/task-87-entry.png
new file mode 100644
index 0000000..17124b5
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-87-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-87-overview.png b/reports/bridge-entry-view-20260925-before/task-87-overview.png
new file mode 100644
index 0000000..134f491
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-87-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-87-reset.png b/reports/bridge-entry-view-20260925-before/task-87-reset.png
new file mode 100644
index 0000000..2b6c426
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-87-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-88-entry.png b/reports/bridge-entry-view-20260925-before/task-88-entry.png
new file mode 100644
index 0000000..9880ce2
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-88-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-88-overview.png b/reports/bridge-entry-view-20260925-before/task-88-overview.png
new file mode 100644
index 0000000..1087f08
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-88-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-88-reset.png b/reports/bridge-entry-view-20260925-before/task-88-reset.png
new file mode 100644
index 0000000..38a33af
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-88-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-89-entry.png b/reports/bridge-entry-view-20260925-before/task-89-entry.png
new file mode 100644
index 0000000..f1d2f63
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-89-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-89-overview.png b/reports/bridge-entry-view-20260925-before/task-89-overview.png
new file mode 100644
index 0000000..3f3fcf1
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-89-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-before/task-89-reset.png b/reports/bridge-entry-view-20260925-before/task-89-reset.png
new file mode 100644
index 0000000..ff5a3a8
Binary files /dev/null and b/reports/bridge-entry-view-20260925-before/task-89-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-dual/result.json b/reports/bridge-entry-view-20260925-dual/result.json
new file mode 100644
index 0000000..aafe885
--- /dev/null
+++ b/reports/bridge-entry-view-20260925-dual/result.json
@@ -0,0 +1,218 @@
+{
+ "pass": true,
+ "baseline": false,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "87",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.803749420883266,
+ 3.4728273967383507,
+ 7.617689522964373
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 546.4861668312151,
+ "y": 177.6918377375884,
+ "w": 517.1888948177734,
+ "h": 357.91229816303127
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 300,
+ "title": "教员预览 · 重型支援桥液压泵应急替代 · 不计成绩"
+ }
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.803749420883266,
+ 3.4728273967383507,
+ 7.617689522964373
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 546.4861668312151,
+ "y": 177.6918377375884,
+ "w": 517.1888948177734,
+ "h": 357.91229816303127
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.803749420883266,
+ 3.4728273967383507,
+ 7.617689522964373
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109422
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 546.4861668312151,
+ "y": 177.6918377375884,
+ "w": 517.1888948177732,
+ "h": 357.91229816303115
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-entry-view-20260925-dual/task-87-entry.png b/reports/bridge-entry-view-20260925-dual/task-87-entry.png
new file mode 100644
index 0000000..355b130
Binary files /dev/null and b/reports/bridge-entry-view-20260925-dual/task-87-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-dual/task-87-overview.png b/reports/bridge-entry-view-20260925-dual/task-87-overview.png
new file mode 100644
index 0000000..7d87a40
Binary files /dev/null and b/reports/bridge-entry-view-20260925-dual/task-87-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-dual/task-87-reset.png b/reports/bridge-entry-view-20260925-dual/task-87-reset.png
new file mode 100644
index 0000000..f502f0d
Binary files /dev/null and b/reports/bridge-entry-view-20260925-dual/task-87-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/failure.png b/reports/bridge-entry-view-20260925-laptop/failure.png
new file mode 100644
index 0000000..b6c8dae
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/failure.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/result.json b/reports/bridge-entry-view-20260925-laptop/result.json
new file mode 100644
index 0000000..dc72981
--- /dev/null
+++ b/reports/bridge-entry-view-20260925-laptop/result.json
@@ -0,0 +1,758 @@
+{
+ "pass": true,
+ "baseline": false,
+ "baseUrl": "http://192.168.31.168:6180",
+ "viewport": {
+ "width": 1366,
+ "height": 768
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "86",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.151732912166647,
+ 2.4745681467051255,
+ 6.801708975818983
+ ],
+ "target": [
+ -0.7017933216511993,
+ 0.4141088964994353,
+ 0.75769517521563
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 391.0429481563079,
+ "y": 138.78349533091017,
+ "w": 517.7742676613609,
+ "h": 300.39465720995605
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 0,
+ "title": "教员预览 · 重型支援桥液压泵应急切换 · 不计成绩"
+ }
+ },
+ {
+ "task": "86",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.151732912166647,
+ 2.4745681467051255,
+ 6.801708975818983
+ ],
+ "target": [
+ -0.7017933216511993,
+ 0.4141088964994353,
+ 0.75769517521563
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 391.0429481563079,
+ "y": 138.78349533091017,
+ "w": 517.7742676613609,
+ "h": 300.39465720995605
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "86",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.151732912166647,
+ 2.4745681467051255,
+ 6.801708975818983
+ ],
+ "target": [
+ -0.7017933216511993,
+ 0.4141088964994353,
+ 0.75769517521563
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 391.04294815630783,
+ "y": 138.78349533091017,
+ "w": 517.774267661361,
+ "h": 300.39465720995605
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 8.26014937959496,
+ 4.475868717282853,
+ 9.614606996976296
+ ],
+ "target": [
+ 0.6090398724596016,
+ 0.019999997327493895,
+ -0.12316873937779449
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 442.3459670686922,
+ "y": 160.24321407779502,
+ "w": 301.21972404290193,
+ "h": 180.34139609208808
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 0,
+ "title": "教员预览 · 重型支援桥液压泵应急替代 · 不计成绩"
+ }
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 8.26014937959496,
+ 4.475868717282853,
+ 9.614606996976296
+ ],
+ "target": [
+ 0.6090398724596016,
+ 0.019999997327493895,
+ -0.12316873937779449
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 442.3459670686922,
+ "y": 160.24321407779502,
+ "w": 301.21972404290193,
+ "h": 180.34139609208808
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 8.26014937959496,
+ 4.475868717282853,
+ 9.614606996976296
+ ],
+ "target": [
+ 0.6090398724596016,
+ 0.019999997327493895,
+ -0.12316873937779449
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 442.3459670686922,
+ "y": 160.24321407779502,
+ "w": 301.21972404290193,
+ "h": 180.34139609208808
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311548,
+ 0.6899964229359313
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.2591030705271,
+ "w": 446.9686043500228,
+ "h": 316.0797808389903
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 0,
+ "title": "教员预览 · 重型支援桥前泵换件修复 · 不计成绩"
+ }
+ },
+ {
+ "task": "88",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311548,
+ 0.6899964229359313
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.2591030705271,
+ "w": 446.9686043500228,
+ "h": 316.0797808389903
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311548,
+ 0.6899964229359312
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.25910307052713,
+ "w": 446.9686043500228,
+ "h": 316.0797808389902
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311548,
+ 0.6899964229359313
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.2591030705271,
+ "w": 446.9686043500228,
+ "h": 316.0797808389903
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 0,
+ "title": "教员预览 · 重型支援桥平衡阀拆拼互换 · 不计成绩"
+ }
+ },
+ {
+ "task": "89",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311548,
+ 0.6899964229359313
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.2591030705271,
+ "w": 446.9686043500228,
+ "h": 316.0797808389903
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.1120876181399275,
+ 3.177108086744706,
+ 6.767077783611273
+ ],
+ "target": [
+ -0.6627620223906978,
+ 0.3556060264311549,
+ 0.6899964229359313
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 463,
+ "y": 188.5,
+ "w": 892,
+ "h": 532.5
+ },
+ "area": {
+ "x": 422,
+ "y": 103.09375,
+ "w": 454,
+ "h": 353.40625
+ },
+ "primary": {
+ "x": 431.1881674558356,
+ "y": 127.25910307052713,
+ "w": 446.9686043500228,
+ "h": 316.0797808389902
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-entry-view-20260925-laptop/task-86-entry.png b/reports/bridge-entry-view-20260925-laptop/task-86-entry.png
new file mode 100644
index 0000000..b6c8dae
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-86-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-86-overview.png b/reports/bridge-entry-view-20260925-laptop/task-86-overview.png
new file mode 100644
index 0000000..9861959
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-86-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-86-reset.png b/reports/bridge-entry-view-20260925-laptop/task-86-reset.png
new file mode 100644
index 0000000..24eb4b5
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-86-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-87-entry.png b/reports/bridge-entry-view-20260925-laptop/task-87-entry.png
new file mode 100644
index 0000000..a2fd003
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-87-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-87-overview.png b/reports/bridge-entry-view-20260925-laptop/task-87-overview.png
new file mode 100644
index 0000000..7bf823a
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-87-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-87-reset.png b/reports/bridge-entry-view-20260925-laptop/task-87-reset.png
new file mode 100644
index 0000000..c232e61
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-87-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-88-entry.png b/reports/bridge-entry-view-20260925-laptop/task-88-entry.png
new file mode 100644
index 0000000..2f6f72d
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-88-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-88-overview.png b/reports/bridge-entry-view-20260925-laptop/task-88-overview.png
new file mode 100644
index 0000000..95d81db
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-88-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-88-reset.png b/reports/bridge-entry-view-20260925-laptop/task-88-reset.png
new file mode 100644
index 0000000..9c0d849
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-88-reset.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-89-entry.png b/reports/bridge-entry-view-20260925-laptop/task-89-entry.png
new file mode 100644
index 0000000..179ce71
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-89-entry.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-89-overview.png b/reports/bridge-entry-view-20260925-laptop/task-89-overview.png
new file mode 100644
index 0000000..ae67b1b
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-89-overview.png differ
diff --git a/reports/bridge-entry-view-20260925-laptop/task-89-reset.png b/reports/bridge-entry-view-20260925-laptop/task-89-reset.png
new file mode 100644
index 0000000..c432cd9
Binary files /dev/null and b/reports/bridge-entry-view-20260925-laptop/task-89-reset.png differ
diff --git a/reports/bridge-entry-view-20260925/failure.png b/reports/bridge-entry-view-20260925/failure.png
new file mode 100644
index 0000000..623036a
Binary files /dev/null and b/reports/bridge-entry-view-20260925/failure.png differ
diff --git a/reports/bridge-entry-view-20260925/index.html b/reports/bridge-entry-view-20260925/index.html
new file mode 100644
index 0000000..0f1bba5
--- /dev/null
+++ b/reports/bridge-entry-view-20260925/index.html
@@ -0,0 +1,34 @@
+
+
+
+
+
005–008 播放方式与复位视角检查
+
+
+005–008 播放方式与复位视角检查
+2026-09-25 · 本地开发环境 · 正式教员预览入口
+
+
进入背景页、切换讲解页、进入操作步骤时默认不播放数字人视频。点击“播放讲解”后才开始;操作阶段可自行开启“自动语音”。
+
顶部教员预览标签最大宽度统一为 300px,超长显示省略号,悬停可看完整内容。窄屏沿用现有的标签隐藏布局。
+
005–008 按主车实际可见表面调整初始与复位视角,缩小多余留白。部件聚焦保持原来的行为;006 同时限制保障车不能超出画面边界,小屏优先保留双车全景。
+
浏览器检查覆盖:初始视频暂停且进度为 0、进入操作不自动播放、手动播放可用、下一页保持暂停、聚焦后复位比例一致、预览未完成任何操作步骤、无页面脚本异常。
+
桌面:1920 × 945,http://127.0.0.1:6180。笔记本:1366 × 768,http://192.168.31.168:6180。使用 root 教员预览;未提交成绩或修改已发布训练配置。
+
桌面检查结果 · 笔记本检查结果
+
结果:12 项单元与契约检查通过;四个脚本在桌面与笔记本共 8 组浏览器检查通过;pnpm build 通过。构建保留现有的大文件体积提示,没有构建错误。
+
验证命令与范围
+node --test scripts/training-overview.test.mjs scripts/introduction-narration.test.mjs scripts/training-scene-safety.test.mjs scripts/virtual-training-formal-route.contract.test.mjs
+pnpm build(包含 TypeScript 检查与 legacy 编辑器产物完整性检查)
+node tools/bridge-entry-view-live.mjs;笔记本通过 BASE_URL / WIDTH / HEIGHT / REPORT_SUFFIX 环境变量切换。
+浏览器显式允许自动播放,确保测试不会因为浏览器拦截而误判。观察脚本只读取相机与媒体状态,交互使用真实页面按钮。本次覆盖页面进入、媒体播放、部件聚焦与复位,未重新执行所有拆装操作。
+
+
+
+
+
+
diff --git a/reports/bridge-entry-view-20260925/result.json b/reports/bridge-entry-view-20260925/result.json
new file mode 100644
index 0000000..b715980
--- /dev/null
+++ b/reports/bridge-entry-view-20260925/result.json
@@ -0,0 +1,758 @@
+{
+ "pass": true,
+ "baseline": false,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "86",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 451.5121427038652,
+ "y": 181.08289453033925,
+ "w": 677.3971210537788,
+ "h": 388.6838152842082
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 300,
+ "title": "教员预览 · 重型支援桥液压泵应急切换 · 不计成绩"
+ }
+ },
+ {
+ "task": "86",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 451.5121427038652,
+ "y": 181.08289453033925,
+ "w": 677.3971210537788,
+ "h": 388.6838152842082
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "86",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 451.5121427038652,
+ "y": 181.08289453033925,
+ "w": 677.3971210537788,
+ "h": 388.6838152842081
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8371859555733263,
+ 1.9671365109410388,
+ 8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.710436233410935,
+ 2.9512571992809975,
+ 7.498927284363225
+ ],
+ "target": [
+ -0.5347172821647493,
+ 0.019999997327493683,
+ 0.8232773554487176
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 535.0327736263547,
+ "y": 157.15178063266154,
+ "w": 535.0625139390719,
+ "h": 341.27612626889953
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 300,
+ "title": "教员预览 · 重型支援桥液压泵应急替代 · 不计成绩"
+ }
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.710436233410935,
+ 2.9512571992809975,
+ 7.498927284363225
+ ],
+ "target": [
+ -0.5347172821647493,
+ 0.019999997327493683,
+ 0.8232773554487176
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 535.0327736263547,
+ "y": 157.15178063266154,
+ "w": 535.0625139390719,
+ "h": 341.27612626889953
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.710436233410935,
+ 2.9512571992809975,
+ 7.498927284363225
+ ],
+ "target": [
+ -0.5347172821647493,
+ 0.019999997327493683,
+ 0.8232773554487176
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 535.0327736263546,
+ "y": 157.15178063266154,
+ "w": 535.062513939072,
+ "h": 341.2761262688995
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "0916保障车.glb",
+ "size": [
+ 1.570159560354596,
+ 1.866612635663166,
+ 5.511719475162634
+ ]
+ },
+ {
+ "name": "双车连接油管.glb",
+ "size": [
+ 4.068633728027344,
+ 0.985340888500214,
+ 1.058640277981758
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767863,
+ "w": 585.0323456243613,
+ "h": 404.84522710991826
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 300,
+ "title": "教员预览 · 重型支援桥前泵换件修复 · 不计成绩"
+ }
+ },
+ {
+ "task": "88",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767863,
+ "w": 585.0323456243613,
+ "h": 404.84522710991826
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "88",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109422
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767869,
+ "w": 585.032345624361,
+ "h": 404.84522710991814
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "3封口袋.glb",
+ "size": [
+ 0.08018212955272758,
+ 0.08336285111041264,
+ 0.08369391474136734
+ ]
+ },
+ {
+ "name": "牛皮纸.glb",
+ "size": [
+ 0.254213809967041,
+ 0.2239204597473145,
+ 3.648127636091125e-8
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "entry",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767863,
+ "w": 585.0323456243613,
+ "h": 404.84522710991826
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ },
+ "media": {
+ "paused": true,
+ "time": 0
+ },
+ "badge": {
+ "max": "300px",
+ "width": 300,
+ "title": "教员预览 · 重型支援桥平衡阀拆拼互换 · 不计成绩"
+ }
+ },
+ {
+ "task": "89",
+ "view": "overview",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767863,
+ "w": 585.0323456243613,
+ "h": 404.84522710991826
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ },
+ {
+ "task": "89",
+ "view": "reset",
+ "snapshot": {
+ "step": 0,
+ "completed": [],
+ "autoVoice": false,
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087157,
+ 0.2634237970385467,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "viewport": {
+ "x": 487,
+ "y": 188.5,
+ "w": 1422,
+ "h": 709.5
+ },
+ "area": {
+ "x": 492,
+ "y": 104.4375,
+ "w": 594,
+ "h": 529.0625
+ },
+ "primary": {
+ "x": 503.7056101865825,
+ "y": 160.95072226767869,
+ "w": 585.032345624361,
+ "h": 404.84522710991814
+ },
+ "rootBounds": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "size": [
+ 1.8909461975097657,
+ 2.024699456040764,
+ 8.234097724812745
+ ]
+ },
+ {
+ "name": "4封口袋.glb",
+ "size": [
+ 0.29693386419402845,
+ 0.017112711789406765,
+ 1.6563524089616042
+ ]
+ }
+ ],
+ "pending": false
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-entry-view-20260925/task-86-entry.png b/reports/bridge-entry-view-20260925/task-86-entry.png
new file mode 100644
index 0000000..9e8a0b1
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-86-entry.png differ
diff --git a/reports/bridge-entry-view-20260925/task-86-overview.png b/reports/bridge-entry-view-20260925/task-86-overview.png
new file mode 100644
index 0000000..1fea2c2
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-86-overview.png differ
diff --git a/reports/bridge-entry-view-20260925/task-86-reset.png b/reports/bridge-entry-view-20260925/task-86-reset.png
new file mode 100644
index 0000000..eaaef18
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-86-reset.png differ
diff --git a/reports/bridge-entry-view-20260925/task-87-entry.png b/reports/bridge-entry-view-20260925/task-87-entry.png
new file mode 100644
index 0000000..f47f816
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-87-entry.png differ
diff --git a/reports/bridge-entry-view-20260925/task-87-overview.png b/reports/bridge-entry-view-20260925/task-87-overview.png
new file mode 100644
index 0000000..a74d71b
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-87-overview.png differ
diff --git a/reports/bridge-entry-view-20260925/task-87-reset.png b/reports/bridge-entry-view-20260925/task-87-reset.png
new file mode 100644
index 0000000..e1fc351
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-87-reset.png differ
diff --git a/reports/bridge-entry-view-20260925/task-88-entry.png b/reports/bridge-entry-view-20260925/task-88-entry.png
new file mode 100644
index 0000000..991ef77
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-88-entry.png differ
diff --git a/reports/bridge-entry-view-20260925/task-88-overview.png b/reports/bridge-entry-view-20260925/task-88-overview.png
new file mode 100644
index 0000000..1d08ebf
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-88-overview.png differ
diff --git a/reports/bridge-entry-view-20260925/task-88-reset.png b/reports/bridge-entry-view-20260925/task-88-reset.png
new file mode 100644
index 0000000..8c803d0
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-88-reset.png differ
diff --git a/reports/bridge-entry-view-20260925/task-89-entry.png b/reports/bridge-entry-view-20260925/task-89-entry.png
new file mode 100644
index 0000000..b488171
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-89-entry.png differ
diff --git a/reports/bridge-entry-view-20260925/task-89-overview.png b/reports/bridge-entry-view-20260925/task-89-overview.png
new file mode 100644
index 0000000..9705e21
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-89-overview.png differ
diff --git a/reports/bridge-entry-view-20260925/task-89-reset.png b/reports/bridge-entry-view-20260925/task-89-reset.png
new file mode 100644
index 0000000..76cfd26
Binary files /dev/null and b/reports/bridge-entry-view-20260925/task-89-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/result.json b/reports/bridge-introduction-3d-20260925-laptop-layout/result.json
new file mode 100644
index 0000000..9b7d516
--- /dev/null
+++ b/reports/bridge-introduction-3d-20260925-laptop-layout/result.json
@@ -0,0 +1,155 @@
+{
+ "pass": true,
+ "baseUrl": "http://192.168.31.168:6180",
+ "viewport": {
+ "width": 1366,
+ "height": 768
+ },
+ "accountRole": "root",
+ "checks": [
+ {
+ "task": "87",
+ "introductionPages": 3,
+ "rotationRadians": 0.05352226684165815,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.35560602643115474,
+ -0.23763174431422704
+ ],
+ "zoom": 1,
+ "angle": 0.008136724972797514,
+ "paused": false,
+ "previewCamera": [
+ 8.249730305020574,
+ 4.855464379015016,
+ 8.09621078225285
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.3556060264311547,
+ -0.23763174431422707
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 446.5035684451876,
+ "y": 176.7553984764075,
+ "w": 296.2983330309901,
+ "h": 170.96639994278723
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 649.6272788730728,
+ "y": 207.68352865882758,
+ "w": 230.3413377186249,
+ "h": 187.18249766132686
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.3556060264311548,
+ -0.23763174431422684
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 446.5035684451877,
+ "y": 176.75539847640752,
+ "w": 296.29833303099,
+ "h": 170.9663999427872
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 649.6272788730728,
+ "y": 207.68352865882764,
+ "w": 230.3413377186249,
+ "h": 187.1824976613268
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-background.png b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-background.png
new file mode 100644
index 0000000..2a2f923
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-fullscreen.png b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-fullscreen.png
new file mode 100644
index 0000000..38118d8
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-fullscreen.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-lecture.png b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-lecture.png
new file mode 100644
index 0000000..8c03e82
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-operation.png b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-operation.png
new file mode 100644
index 0000000..472b917
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-reset.png b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-reset.png
new file mode 100644
index 0000000..1e3be2c
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop-layout/task-87-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/result.json b/reports/bridge-introduction-3d-20260925-laptop/result.json
new file mode 100644
index 0000000..c8b72ae
--- /dev/null
+++ b/reports/bridge-introduction-3d-20260925-laptop/result.json
@@ -0,0 +1,542 @@
+{
+ "pass": true,
+ "baseUrl": "http://192.168.31.168:6180",
+ "viewport": {
+ "width": 1366,
+ "height": 768
+ },
+ "accountRole": "root",
+ "checks": [
+ {
+ "task": "86",
+ "introductionPages": 6,
+ "rotationRadians": 0.05293932687149204,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.139573632200384,
+ 2.4701517887342663,
+ 6.790164690632832
+ ],
+ "target": [
+ -0.703549625063884,
+ 0.41410889649943533,
+ 0.7591055400773312
+ ],
+ "zoom": 1,
+ "angle": 0.012220795422464306,
+ "paused": false,
+ "previewCamera": [
+ 5.635029975175856,
+ 3.343455438300739,
+ 6.860461441065012
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.139573632200384,
+ 2.4701517887342663,
+ 6.790164690632832
+ ],
+ "target": [
+ -0.703549625063884,
+ 0.4141088964994354,
+ 0.7591055400773312
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.0649607713952,
+ "y": 152.89985180346815,
+ "w": 435.3507896957395,
+ "h": 239.0714481816878
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.139573632200384,
+ 2.4701517887342663,
+ 6.790164690632832
+ ],
+ "target": [
+ -0.703549625063884,
+ 0.4141088964994354,
+ 0.7591055400773312
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.0649607713952,
+ "y": 152.8998518034682,
+ "w": 435.3507896957397,
+ "h": 239.07144818168774
+ }
+ ]
+ }
+ },
+ {
+ "task": "87",
+ "introductionPages": 3,
+ "rotationRadians": 0.05294281752999601,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.35560602643115474,
+ -0.23763174431422704
+ ],
+ "zoom": 1,
+ "angle": 0.008726646259971648,
+ "paused": false,
+ "previewCamera": [
+ 8.264087632286845,
+ 4.855464379015016,
+ 8.084746513318919
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.3556060264311547,
+ -0.23763174431422707
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 446.5035684451876,
+ "y": 176.7553984764075,
+ "w": 296.2983330309901,
+ "h": 170.96639994278723
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 649.6272788730728,
+ "y": 207.68352865882758,
+ "w": 230.3413377186249,
+ "h": 187.18249766132686
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 8.15480955512277,
+ 4.868351518765439,
+ 9.48212777763654
+ ],
+ "target": [
+ 0.5178556450185945,
+ 0.3556060264311548,
+ -0.23763174431422684
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 210.90625,
+ "w": 390,
+ "h": 248.59375
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 446.5035684451877,
+ "y": 176.75539847640752,
+ "w": 296.29833303099,
+ "h": 170.9663999427872
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 649.6272788730728,
+ "y": 207.68352865882764,
+ "w": 230.3413377186249,
+ "h": 187.1824976613268
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ },
+ {
+ "task": "88",
+ "introductionPages": 1,
+ "rotationRadians": 0.05235289624282193,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.1711175922722625,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.35560602643115474,
+ 0.6913984694970342
+ ],
+ "zoom": 1,
+ "angle": 0.022109830964264186,
+ "paused": false,
+ "previewCamera": [
+ 5.577376459985299,
+ 4.53102987134045,
+ 7.313123217161224
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.1711175922722625,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.35560602643115474,
+ 0.6913984694970342
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.2834542952193,
+ "y": 129.81067168020698,
+ "w": 435.05633414489654,
+ "h": 275.1639184936073
+ },
+ {
+ "name": "3封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ },
+ {
+ "name": "牛皮纸.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.171117592272262,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.3556060264311547,
+ 0.6913984694970343
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.2834542952194,
+ "y": 129.81067168020704,
+ "w": 435.05633414489654,
+ "h": 275.1639184936072
+ },
+ {
+ "name": "3封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ },
+ {
+ "name": "牛皮纸.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ },
+ {
+ "task": "89",
+ "introductionPages": 1,
+ "rotationRadians": 0.052942817529996064,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.1711175922722625,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.35560602643115474,
+ 0.6913984694970342
+ ],
+ "zoom": 1,
+ "angle": 0.025014058839582753,
+ "paused": false,
+ "previewCamera": [
+ 5.964277924544984,
+ 4.431413818972688,
+ 7.08493152531313
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.1711175922722625,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.35560602643115474,
+ 0.6913984694970342
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.2834542952193,
+ "y": 129.81067168020698,
+ "w": 435.05633414489654,
+ "h": 275.1639184936073
+ },
+ {
+ "name": "4封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.100165435367536,
+ 3.1711175922722625,
+ 6.7555772266932665
+ ],
+ "target": [
+ -0.6645464452866469,
+ 0.3556060264311549,
+ 0.6913984694970342
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": null,
+ "teacher": {
+ "x": 17,
+ "y": 223.5,
+ "w": 390,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 438.2834542952194,
+ "y": 129.81067168020704,
+ "w": 435.0563341448964,
+ "h": 275.1639184936073
+ },
+ {
+ "name": "4封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-86-background.png b/reports/bridge-introduction-3d-20260925-laptop/task-86-background.png
new file mode 100644
index 0000000..0ac96f6
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-86-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-86-lecture.png b/reports/bridge-introduction-3d-20260925-laptop/task-86-lecture.png
new file mode 100644
index 0000000..71cc23a
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-86-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-86-operation.png b/reports/bridge-introduction-3d-20260925-laptop/task-86-operation.png
new file mode 100644
index 0000000..062ba69
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-86-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-86-reset.png b/reports/bridge-introduction-3d-20260925-laptop/task-86-reset.png
new file mode 100644
index 0000000..3e318c3
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-86-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-87-background.png b/reports/bridge-introduction-3d-20260925-laptop/task-87-background.png
new file mode 100644
index 0000000..635fa58
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-87-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-87-lecture.png b/reports/bridge-introduction-3d-20260925-laptop/task-87-lecture.png
new file mode 100644
index 0000000..668027a
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-87-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-87-operation.png b/reports/bridge-introduction-3d-20260925-laptop/task-87-operation.png
new file mode 100644
index 0000000..dda4385
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-87-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-87-reset.png b/reports/bridge-introduction-3d-20260925-laptop/task-87-reset.png
new file mode 100644
index 0000000..3bfcf07
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-87-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-88-background.png b/reports/bridge-introduction-3d-20260925-laptop/task-88-background.png
new file mode 100644
index 0000000..adce3bb
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-88-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-88-operation.png b/reports/bridge-introduction-3d-20260925-laptop/task-88-operation.png
new file mode 100644
index 0000000..c3a5e06
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-88-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-88-reset.png b/reports/bridge-introduction-3d-20260925-laptop/task-88-reset.png
new file mode 100644
index 0000000..4f545d7
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-88-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-89-background.png b/reports/bridge-introduction-3d-20260925-laptop/task-89-background.png
new file mode 100644
index 0000000..cf49df9
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-89-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-89-operation.png b/reports/bridge-introduction-3d-20260925-laptop/task-89-operation.png
new file mode 100644
index 0000000..b82cb08
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-89-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-laptop/task-89-reset.png b/reports/bridge-introduction-3d-20260925-laptop/task-89-reset.png
new file mode 100644
index 0000000..e3fa8a9
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-laptop/task-89-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925-resize/result.json b/reports/bridge-introduction-3d-20260925-resize/result.json
new file mode 100644
index 0000000..89be94c
--- /dev/null
+++ b/reports/bridge-introduction-3d-20260925-resize/result.json
@@ -0,0 +1,170 @@
+{
+ "pass": true,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "checks": [
+ {
+ "task": "87",
+ "introductionPages": 3,
+ "rotationRadians": 0.05409473483631226,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163863,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938089
+ ],
+ "zoom": 1,
+ "angle": 0.00873362757697965,
+ "paused": false,
+ "previewCamera": [
+ 8.26414502140324,
+ 4.855464379015018,
+ 8.084700605937973
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938089
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 439.93688414755553,
+ "y": 110.00253923432476,
+ "w": 393.9176556502329,
+ "h": 269.9929595837525
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 789.8889160681427,
+ "y": 158.1657115825596,
+ "w": 298.6399069421399,
+ "h": 306.68924040160243
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938091
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 439.93688414755553,
+ "y": 110.00253923432476,
+ "w": 393.91765565023314,
+ "h": 269.9929595837525
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 789.8889160681427,
+ "y": 158.16571158255965,
+ "w": 298.6399069421399,
+ "h": 306.6892404016023
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-introduction-3d-20260925-resize/task-87-background.png b/reports/bridge-introduction-3d-20260925-resize/task-87-background.png
new file mode 100644
index 0000000..504f963
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-resize/task-87-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925-resize/task-87-fullscreen.png b/reports/bridge-introduction-3d-20260925-resize/task-87-fullscreen.png
new file mode 100644
index 0000000..ee959ef
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-resize/task-87-fullscreen.png differ
diff --git a/reports/bridge-introduction-3d-20260925-resize/task-87-lecture.png b/reports/bridge-introduction-3d-20260925-resize/task-87-lecture.png
new file mode 100644
index 0000000..6156780
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-resize/task-87-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925-resize/task-87-operation.png b/reports/bridge-introduction-3d-20260925-resize/task-87-operation.png
new file mode 100644
index 0000000..01fba6c
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-resize/task-87-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925-resize/task-87-reset.png b/reports/bridge-introduction-3d-20260925-resize/task-87-reset.png
new file mode 100644
index 0000000..a9caaef
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925-resize/task-87-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925/index.html b/reports/bridge-introduction-3d-20260925/index.html
new file mode 100644
index 0000000..eeb9694
--- /dev/null
+++ b/reports/bridge-introduction-3d-20260925/index.html
@@ -0,0 +1,36 @@
+
+
+
+背景与讲解实时 3D、双车取景检查
+
+
+背景与讲解实时 3D、双车取景检查
+2026-09-25 · 本地开发环境 · 正式教员预览入口
+
+006 默认取景向左调整,主车与支援车分别避让数字教员、右侧工具栏。复位时采用相同布局,窄屏根据剩余空间自动取景。
+005–008 共 11 个背景/讲解页的场景图片,已替换为实时 3D。预览从整车视角开始缓慢旋转,约 3 分钟一圈,可暂停和继续。原有视频类型讲解仍使用视频播放器。
+预览与操作共用已加载的模型、场地、HDR 和 WebGL 画布,使用独立预览相机。进入操作步骤时停止旋转;从部件聚焦返回背景页,再回到操作页,保持原来的操作相机、步骤与零件状态。数字人视频默认仍不自动播放。
+已通过:14 项单元与契约检查;四个脚本在 1920 × 945 桌面和 1366 × 768 笔记本下的浏览器检查;生产构建(含类型检查、legacy 模型编辑器产物校验)。
+桌面结果 · 笔记本结果 · 全屏与缩放结果 · 笔记本全屏与面板展开/收起
+环境、检查范围与命令
+桌面 http://127.0.0.1:6180;笔记本 http://192.168.31.168:6180;沿用 Vite 至 6100 Gateway 的 API 代理。使用 root 教员预览,没有提交成绩或修改场景/训练配置。
+node --test scripts/training-overview.test.mjs scripts/introduction-orbit.test.mjs scripts/introduction-narration.test.mjs scripts/training-introduction.test.mjs scripts/virtual-training-formal-route.contract.test.mjs
+node tools/bridge-introduction-3d-live.mjs;通过 WIDTH / HEIGHT / BASE_URL / REPORT_SUFFIX 切换窗口与地址,通过 CHECK_LAYOUT=1 补查全屏与窗口缩放。
+pnpm build 通过。现有的大文件体积提示不影响构建。
+浏览器检查覆盖真实旋转、暂停/继续、所有背景与讲解页、单画布复用、数字人手动播放、返回操作、聚焦视角保留、复位比例与双车遮挡。几何单元测试覆盖整圈旋转的取景范围。没有重新执行全部拆装流程。
+
+
+006:支援车避开面板
+
调整前
+
调整后
+
+
+
+
+
diff --git a/reports/bridge-introduction-3d-20260925/result.json b/reports/bridge-introduction-3d-20260925/result.json
new file mode 100644
index 0000000..f50cb5e
--- /dev/null
+++ b/reports/bridge-introduction-3d-20260925/result.json
@@ -0,0 +1,602 @@
+{
+ "pass": true,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "checks": [
+ {
+ "task": "86",
+ "introductionPages": 6,
+ "rotationRadians": 0.052939326871492054,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "angle": 0.021526890994098057,
+ "paused": false,
+ "previewCamera": [
+ 5.715236698580875,
+ 3.3470426528610395,
+ 6.811414632595393
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 288.5
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 288.5
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.2435228227729,
+ "y": 199.4067053152598,
+ "w": 568.695436361306,
+ "h": 309.70143621994237
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ],
+ "target": [
+ -0.6824137407897487,
+ 0.38295132538488913,
+ 0.7527546837674542
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 288.5
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.243522822773,
+ "y": 199.4067053152599,
+ "w": 568.6954363613058,
+ "h": 309.70143621994225
+ }
+ ]
+ }
+ },
+ {
+ "task": "87",
+ "introductionPages": 3,
+ "rotationRadians": 0.05352575750016207,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163863,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938089
+ ],
+ "zoom": 1,
+ "angle": 0.008136724972797577,
+ "paused": false,
+ "previewCamera": [
+ 8.249730305020574,
+ 4.85546437901502,
+ 8.09621078225285
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938089
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 439.93688414755553,
+ "y": 110.00253923432476,
+ "w": 393.9176556502329,
+ "h": 269.9929595837525
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 789.8889160681427,
+ "y": 158.1657115825596,
+ "w": 298.6399069421399,
+ "h": 306.68924040160243
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ],
+ "target": [
+ -1.0396165608364782,
+ 0.658673034537816,
+ 0.8453867350938091
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 439.93688414755553,
+ "y": 110.00253923432476,
+ "w": 393.91765565023314,
+ "h": 269.9929595837525
+ },
+ {
+ "name": "0916保障车.glb",
+ "x": 789.8889160681427,
+ "y": 158.16571158255965,
+ "w": 298.6399069421399,
+ "h": 306.6892404016023
+ },
+ {
+ "name": "双车连接油管.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ },
+ {
+ "task": "88",
+ "introductionPages": 1,
+ "rotationRadians": 0.05235638690132595,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "angle": 0.025600489468252843,
+ "paused": false,
+ "previewCamera": [
+ 5.603392161586465,
+ 4.531029871340452,
+ 7.291684674995296
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.50280294370754,
+ "y": 164.1069293881087,
+ "w": 568.3384381257642,
+ "h": 350.3052138413161
+ },
+ {
+ "name": "3封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ },
+ {
+ "name": "牛皮纸.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109422
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.5028029437077,
+ "y": 164.10692938810874,
+ "w": 568.3384381257641,
+ "h": 350.305213841316
+ },
+ {
+ "name": "3封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ },
+ {
+ "name": "牛皮纸.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ },
+ {
+ "task": "89",
+ "introductionPages": 1,
+ "rotationRadians": 0.05235987755982993,
+ "initial": {
+ "intro": true,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "angle": 0.028504717343571406,
+ "paused": false,
+ "previewCamera": [
+ 5.989496426019214,
+ 4.431413818972688,
+ 7.06402650521135
+ ],
+ "canvasInPreview": true,
+ "sameRenderer": true,
+ "controlsEnabled": false,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ }
+ },
+ "operation": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087158,
+ 0.2634237970385468,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.50280294370754,
+ "y": 164.1069293881087,
+ "w": 568.3384381257642,
+ "h": 350.3052138413161
+ },
+ {
+ "name": "4封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ },
+ "reset": {
+ "intro": false,
+ "step": 0,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ],
+ "target": [
+ -0.6275489786087156,
+ 0.2634237970385467,
+ 0.7051279236109421
+ ],
+ "zoom": 1,
+ "angle": 0,
+ "paused": false,
+ "canvasInPreview": false,
+ "sameRenderer": true,
+ "controlsEnabled": true,
+ "tween": false,
+ "tools": {
+ "x": 1101,
+ "y": 95,
+ "w": 310,
+ "h": 269
+ },
+ "teacher": {
+ "x": 17,
+ "y": 400.5,
+ "w": 460,
+ "h": 236
+ },
+ "objects": [
+ {
+ "name": "架桥车前泵互救操作整车模型",
+ "x": 511.5028029437077,
+ "y": 164.10692938810874,
+ "w": 568.3384381257641,
+ "h": 350.305213841316
+ },
+ {
+ "name": "4封口袋.glb",
+ "x": null,
+ "y": null,
+ "w": null,
+ "h": null
+ }
+ ]
+ }
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-introduction-3d-20260925/task-86-background.png b/reports/bridge-introduction-3d-20260925/task-86-background.png
new file mode 100644
index 0000000..f6f7e22
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-86-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-86-lecture.png b/reports/bridge-introduction-3d-20260925/task-86-lecture.png
new file mode 100644
index 0000000..8c153d4
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-86-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-86-operation.png b/reports/bridge-introduction-3d-20260925/task-86-operation.png
new file mode 100644
index 0000000..db55258
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-86-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-86-reset.png b/reports/bridge-introduction-3d-20260925/task-86-reset.png
new file mode 100644
index 0000000..40b79a7
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-86-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-87-background.png b/reports/bridge-introduction-3d-20260925/task-87-background.png
new file mode 100644
index 0000000..2fcb51e
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-87-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-87-lecture.png b/reports/bridge-introduction-3d-20260925/task-87-lecture.png
new file mode 100644
index 0000000..c09089a
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-87-lecture.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-87-operation.png b/reports/bridge-introduction-3d-20260925/task-87-operation.png
new file mode 100644
index 0000000..6d1e852
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-87-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-87-reset.png b/reports/bridge-introduction-3d-20260925/task-87-reset.png
new file mode 100644
index 0000000..26761d3
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-87-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-88-background.png b/reports/bridge-introduction-3d-20260925/task-88-background.png
new file mode 100644
index 0000000..07e797e
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-88-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-88-operation.png b/reports/bridge-introduction-3d-20260925/task-88-operation.png
new file mode 100644
index 0000000..0d58a0e
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-88-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-88-reset.png b/reports/bridge-introduction-3d-20260925/task-88-reset.png
new file mode 100644
index 0000000..e214e82
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-88-reset.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-89-background.png b/reports/bridge-introduction-3d-20260925/task-89-background.png
new file mode 100644
index 0000000..4459107
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-89-background.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-89-operation.png b/reports/bridge-introduction-3d-20260925/task-89-operation.png
new file mode 100644
index 0000000..24f0299
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-89-operation.png differ
diff --git a/reports/bridge-introduction-3d-20260925/task-89-reset.png b/reports/bridge-introduction-3d-20260925/task-89-reset.png
new file mode 100644
index 0000000..db5cf22
Binary files /dev/null and b/reports/bridge-introduction-3d-20260925/task-89-reset.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/index.html b/reports/bridge-label-placement-20260925-laptop/index.html
new file mode 100644
index 0000000..dd754ff
--- /dev/null
+++ b/reports/bridge-label-placement-20260925-laptop/index.html
@@ -0,0 +1 @@
+部件标签位置检查部件标签位置检查:通过
http://192.168.31.168:6180 · 1366 × 768 · 教员预览(root)· 未创建任务或提交训练成绩。
标签中心距部件投影不超过128像素,互不重叠;检查聚焦、隐藏其他、复位和移动视角。
检查数据任务 86 · overview

任务 86 · focus

任务 86 · hide-others

任务 86 · reset

任务 86 · moved

任务 87 · overview

任务 87 · focus

任务 87 · hide-others

任务 87 · reset

任务 87 · moved

任务 88 · overview

任务 88 · focus

任务 88 · hide-others

任务 88 · reset

任务 88 · moved

任务 89 · overview

任务 89 · focus

任务 89 · hide-others

任务 89 · reset

任务 89 · moved
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925-laptop/result.json b/reports/bridge-label-placement-20260925-laptop/result.json
new file mode 100644
index 0000000..2bcff28
--- /dev/null
+++ b/reports/bridge-label-placement-20260925-laptop/result.json
@@ -0,0 +1,5493 @@
+{
+ "pass": true,
+ "baseUrl": "http://192.168.31.168:6180",
+ "viewport": {
+ "width": 1366,
+ "height": 768
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "86",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 644.6030591999712,
+ "y": 395.50263538893756
+ },
+ "rect": {
+ "x": 588.59375,
+ "y": 422.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 644.6030591999712,
+ "y": 395.50263538893756
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 599.1652860595083,
+ "y": 412.7453410973793
+ },
+ "rect": {
+ "x": 543.15625,
+ "y": 355.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 602.7139248811662,
+ "y": 411.9561879862661
+ },
+ "rect": {
+ "x": 546.703125,
+ "y": 288.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 728.7253909608202,
+ "y": 368.0306551316826
+ },
+ "rect": {
+ "x": 672.71875,
+ "y": 311.015625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 666.0079937859988,
+ "y": 366.5529870930483
+ },
+ "rect": {
+ "x": 679.671875,
+ "y": 351.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 664.8976148728855,
+ "y": 366.2871900890735
+ },
+ "rect": {
+ "x": 728.890625,
+ "y": 393.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 663.8435015890482,
+ "y": 367.81448225685205
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 6.97143508410798,
+ 3.952669812547333,
+ 10.316633668480025
+ ]
+ },
+ {
+ "task": "86",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 1190.1216577407206,
+ "y": 412.4469684019246
+ },
+ "rect": {
+ "x": 704.84375,
+ "y": 314.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1190.1216577407206,
+ "y": 412.4469684019246
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.4999999999998,
+ "y": 376.39657598499093
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 319.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 660.8650505816904,
+ "y": 374.05024215999975
+ },
+ "rect": {
+ "x": 604.859375,
+ "y": 390.15625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2061.7312178381276,
+ "y": 355.95823100868466
+ },
+ "rect": {
+ "x": 758.765625,
+ "y": 292.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1459.0273619683815,
+ "y": 318.1892778962183
+ },
+ "rect": {
+ "x": 702.53125,
+ "y": 363.90625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1452.7650912916772,
+ "y": 316.8797208307233
+ },
+ "rect": {
+ "x": 762.078125,
+ "y": 382.359375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1440.3962258475772,
+ "y": 322.37475087549376
+ },
+ "rect": {
+ "x": 766.015625,
+ "y": 402.765625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 2.8723628675203736,
+ 1.3339831323857418,
+ 3.39429962233743
+ ]
+ },
+ {
+ "task": "86",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 1190.1216577407206,
+ "y": 412.4469684019246
+ },
+ "rect": {
+ "x": 704.84375,
+ "y": 314.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1190.1216577407206,
+ "y": 412.4469684019246
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.4999999999998,
+ "y": 376.39657598499093
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 319.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 660.8650505816904,
+ "y": 374.05024215999975
+ },
+ "rect": {
+ "x": 604.859375,
+ "y": 390.15625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2061.7312178381276,
+ "y": 355.95823100868466
+ },
+ "rect": {
+ "x": 758.765625,
+ "y": 292.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1459.0273619683815,
+ "y": 318.1892778962183
+ },
+ "rect": {
+ "x": 702.53125,
+ "y": 363.90625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1452.7650912916772,
+ "y": 316.8797208307233
+ },
+ "rect": {
+ "x": 762.078125,
+ "y": 382.359375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1440.3962258475772,
+ "y": 322.37475087549376
+ },
+ "rect": {
+ "x": 766.015625,
+ "y": 402.765625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 2.8723628675203736,
+ 1.3339831323857418,
+ 3.39429962233743
+ ]
+ },
+ {
+ "task": "86",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 644.6030591999712,
+ "y": 395.5026353889375
+ },
+ "rect": {
+ "x": 588.59375,
+ "y": 422.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 644.6030591999712,
+ "y": 395.5026353889375
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 599.1652860595084,
+ "y": 412.7453410973793
+ },
+ "rect": {
+ "x": 543.15625,
+ "y": 355.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 602.7139248811663,
+ "y": 411.9561879862661
+ },
+ "rect": {
+ "x": 546.703125,
+ "y": 288.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 728.7253909608202,
+ "y": 368.0306551316826
+ },
+ "rect": {
+ "x": 672.71875,
+ "y": 311.015625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 666.0079937859989,
+ "y": 366.5529870930483
+ },
+ "rect": {
+ "x": 679.671875,
+ "y": 351.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 664.8976148728855,
+ "y": 366.2871900890735
+ },
+ "rect": {
+ "x": 728.890625,
+ "y": 393.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 663.8435015890483,
+ "y": 367.814482256852
+ },
+ "rect": {
+ "x": 735.78125,
+ "y": 389.75,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 6.97143508410798,
+ 3.952669812547333,
+ 10.316633668480025
+ ]
+ },
+ {
+ "task": "86",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 705.393320170463,
+ "y": 407.6492822807898
+ },
+ "rect": {
+ "x": 718.65625,
+ "y": 392.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 705.393320170463,
+ "y": 407.6492822807898
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 670.2129816567074,
+ "y": 426.9415504427857
+ },
+ "rect": {
+ "x": 543.34375,
+ "y": 411.765625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 673.8638312345116,
+ "y": 426.1728203063997
+ },
+ "rect": {
+ "x": 617,
+ "y": 339,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 786.3224433126563,
+ "y": 379.5392594008579
+ },
+ "rect": {
+ "x": 729.625,
+ "y": 292.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 721.7469156809154,
+ "y": 377.69031388818615
+ },
+ "rect": {
+ "x": 595.0625,
+ "y": 290.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 720.5614327827889,
+ "y": 377.4095101780127
+ },
+ "rect": {
+ "x": 733.875,
+ "y": 434.265625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 719.7133165080735,
+ "y": 378.97796309902105
+ },
+ "rect": {
+ "x": 766.71875,
+ "y": 402.578125,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 6.074929724559471,
+ 4.166103810124812,
+ 10.963793048943325
+ ]
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 640.9122086720945,
+ "y": 389.3526798707742
+ },
+ "rect": {
+ "x": 576.90625,
+ "y": 416.34375,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 618.9561257126895,
+ "y": 401.6201825421951
+ },
+ "rect": {
+ "x": 562.953125,
+ "y": 314.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 660.2254818872161,
+ "y": 361.08501531622665
+ },
+ "rect": {
+ "x": 724.21875,
+ "y": 346.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 659.4690728624391,
+ "y": 362.33272496310553
+ },
+ "rect": {
+ "x": 723.46875,
+ "y": 305.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.9122086720945,
+ "y": 389.3526798707742
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 667.7853288001498,
+ "y": 356.50824847738016
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 767.1128318451135,
+ "y": 414.52309146469844
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 663.4913693517623,
+ "y": 355.79562951103713
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 761.3585990500081,
+ "y": 413.3523958187274
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 664.2689553077589,
+ "y": 355.50774744386507
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.1085361077832,
+ "y": 412.866517388127
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 775.9270468569453,
+ "y": 416.6414491583538
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 666.2135330479881,
+ "y": 357.7789171806743
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 664.3671376809976,
+ "y": 357.18668402162075
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 769.1005827296628,
+ "y": 407.8108375305832
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 706.3800295155045,
+ "y": 403.8053679711702
+ },
+ "rect": {
+ "x": 720.375,
+ "y": 430.796875,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 9.816043685724315,
+ 6.70288079141373,
+ 14.030331363510985
+ ]
+ },
+ {
+ "task": "87",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 1600.7168020022848,
+ "y": 462.0741706199279
+ },
+ "rect": {
+ "x": 708.34375,
+ "y": 302.5625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.4999999999998,
+ "y": 376.3965759849906
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 323.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2390.3131370845326,
+ "y": 249.80224386251493
+ },
+ "rect": {
+ "x": 754.203125,
+ "y": 307.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2363.085816331876,
+ "y": 261.85000676145785
+ },
+ "rect": {
+ "x": 767.359375,
+ "y": 297.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1600.7168020022848,
+ "y": 462.0741706199279
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2588.807972760742,
+ "y": 206.93723985314872
+ },
+ "rect": {
+ "x": 728.140625,
+ "y": 290.1875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -109882.67948774903,
+ "y": -43652.63527543263
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2506.5139145073467,
+ "y": 199.28522933061316
+ },
+ "rect": {
+ "x": 713.515625,
+ "y": 329.765625,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 46376.70150665045,
+ "y": 18190.72849907524
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2527.6402789897666,
+ "y": 199.7882774442091
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 47162.09375994836,
+ "y": 18194.21816574101
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -40738.63858068695,
+ "y": -16629.47316786275
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2559.2168574735215,
+ "y": 237.66247532058154
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2526.1393425704982,
+ "y": 230.21901342610425
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -53464.76616335251,
+ "y": -17001.617160120022
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3455.579771226812,
+ "y": 1287.788493119397
+ },
+ "rect": {
+ "x": 720.375,
+ "y": 430.796875,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383625,
+ 1.3898189780176322,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 1600.7168020022848,
+ "y": 462.0741706199279
+ },
+ "rect": {
+ "x": 708.34375,
+ "y": 302.5625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.4999999999998,
+ "y": 376.3965759849906
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 323.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2390.3131370845326,
+ "y": 249.80224386251493
+ },
+ "rect": {
+ "x": 754.203125,
+ "y": 307.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2363.085816331876,
+ "y": 261.85000676145785
+ },
+ "rect": {
+ "x": 767.359375,
+ "y": 297.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1600.7168020022848,
+ "y": 462.0741706199279
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2588.807972760742,
+ "y": 206.93723985314872
+ },
+ "rect": {
+ "x": 728.140625,
+ "y": 290.1875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -109882.67948774903,
+ "y": -43652.63527543263
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2506.5139145073467,
+ "y": 199.28522933061316
+ },
+ "rect": {
+ "x": 713.515625,
+ "y": 329.765625,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 46376.70150665045,
+ "y": 18190.72849907524
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2527.6402789897666,
+ "y": 199.7882774442091
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 47162.09375994836,
+ "y": 18194.21816574101
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -40738.63858068695,
+ "y": -16629.47316786275
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2559.2168574735215,
+ "y": 237.66247532058154
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2526.1393425704982,
+ "y": 230.21901342610425
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -53464.76616335251,
+ "y": -17001.617160120022
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3455.579771226812,
+ "y": 1287.788493119397
+ },
+ "rect": {
+ "x": 720.375,
+ "y": 430.796875,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383625,
+ 1.3898189780176322,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 640.9122086720945,
+ "y": 389.3526798707741
+ },
+ "rect": {
+ "x": 576.90625,
+ "y": 416.34375,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 618.9561257126896,
+ "y": 401.6201825421951
+ },
+ "rect": {
+ "x": 562.953125,
+ "y": 314.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 660.2254818872162,
+ "y": 361.0850153162266
+ },
+ "rect": {
+ "x": 724.21875,
+ "y": 346.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 659.4690728624391,
+ "y": 362.3327249631055
+ },
+ "rect": {
+ "x": 723.46875,
+ "y": 305.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.9122086720945,
+ "y": 389.3526798707741
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 667.7853288001498,
+ "y": 356.50824847738016
+ },
+ "rect": {
+ "x": 728.140625,
+ "y": 290.1875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 767.1128318451135,
+ "y": 414.5230914646984
+ },
+ "rect": {
+ "x": 716.1875,
+ "y": 427.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 663.4913693517623,
+ "y": 355.7956295110371
+ },
+ "rect": {
+ "x": 713.515625,
+ "y": 329.765625,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 761.3585990500081,
+ "y": 413.35239581872736
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 664.268955307759,
+ "y": 355.50774744386507
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.1085361077832,
+ "y": 412.866517388127
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 775.9270468569453,
+ "y": 416.6414491583538
+ },
+ "rect": {
+ "x": 738.546875,
+ "y": 296.453125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 666.2135330479881,
+ "y": 357.7789171806743
+ },
+ "rect": {
+ "x": 695.828125,
+ "y": 373.015625,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 664.3671376809975,
+ "y": 357.1866840216207
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 769.1005827296628,
+ "y": 407.81083753058317
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 706.3800295155046,
+ "y": 403.80536797117014
+ },
+ "rect": {
+ "x": 720.375,
+ "y": 430.796875,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 9.816043685724315,
+ 6.70288079141373,
+ 14.030331363510985
+ ]
+ },
+ {
+ "task": "87",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 700.977379006869,
+ "y": 401.3544446750021
+ },
+ "rect": {
+ "x": 636.1875,
+ "y": 428.1875,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 684.3571599557089,
+ "y": 414.6881190279016
+ },
+ "rect": {
+ "x": 627.5,
+ "y": 327.515625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 715.564893581757,
+ "y": 372.14251502629907
+ },
+ "rect": {
+ "x": 658.828125,
+ "y": 384.96875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 714.9480448978451,
+ "y": 373.41811055742215
+ },
+ "rect": {
+ "x": 770.765625,
+ "y": 314.78125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 700.977379006869,
+ "y": 401.3544446750021
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 722.742762618439,
+ "y": 367.48942427784505
+ },
+ "rect": {
+ "x": 728.140625,
+ "y": 290.1875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 831.8240835319878,
+ "y": 427.45320085428966
+ },
+ "rect": {
+ "x": 716.1875,
+ "y": 427.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 718.2352571878336,
+ "y": 366.7341361799707
+ },
+ "rect": {
+ "x": 713.515625,
+ "y": 329.765625,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 825.7558478680634,
+ "y": 426.219763546913
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 718.9308677812754,
+ "y": 366.42987442028067
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 826.3932120369116,
+ "y": 425.71139165914434
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 839.9536219367003,
+ "y": 429.4347516836707
+ },
+ "rect": {
+ "x": 738.546875,
+ "y": 296.453125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 720.9042319037103,
+ "y": 368.70679603270884
+ },
+ "rect": {
+ "x": 695.828125,
+ "y": 373.015625,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 718.9486320650484,
+ "y": 368.0927424679649
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 833.9260069491763,
+ "y": 420.76376000596446
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 764.7300716984633,
+ "y": 415.46442893268073
+ },
+ "rect": {
+ "x": 770.125,
+ "y": 398.734375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 8.524265754943116,
+ 6.995737608306021,
+ 14.909330501281936
+ ]
+ },
+ {
+ "task": "88",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 638.7899826448115,
+ "y": 405.2799264463719
+ },
+ "rect": {
+ "x": 574.78125,
+ "y": 427.25,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.7899826448115,
+ "y": 405.2799264463719
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 645.1229218055283,
+ "y": 399.6844489094492
+ },
+ "rect": {
+ "x": 518.171875,
+ "y": 384.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 715.753207155546,
+ "y": 412.7972996241978
+ },
+ "rect": {
+ "x": 729.75,
+ "y": 397.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.8047453049863,
+ "y": 401.20333387669683
+ },
+ "rect": {
+ "x": 587.796875,
+ "y": 314.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.8149148671741,
+ "y": 403.8395488265355
+ },
+ "rect": {
+ "x": 467.8125,
+ "y": 346.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.8076117330829,
+ "y": 400.30431345001796
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.8222820156153,
+ "y": 402.93276885647066
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 667.1011086503868,
+ "y": 365.03148969680154
+ },
+ "rect": {
+ "x": 731.09375,
+ "y": 350.03125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 629.3237016051137,
+ "y": 365.93312080423925
+ },
+ "rect": {
+ "x": 453.3125,
+ "y": 308.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 629.3790072087198,
+ "y": 365.91423973243997
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 646.1052370362291,
+ "y": 398.54830956423524
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 647.1981699842889,
+ "y": 398.90659169634847
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.7319175380007,
+ "y": 396.24373763540643
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 647.703973768825,
+ "y": 400.98520880179177
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 714.0255623833602,
+ "y": 412.79301660662674
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6846246707554,
+ "y": 391.8556565111872
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 660.6131007191364,
+ "y": 363.7642625210792
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 8.00099936990116,
+ 5.926042707244239,
+ 11.72027496155425
+ ]
+ },
+ {
+ "task": "88",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 607.9189631713717,
+ "y": 306.09511995587724
+ },
+ "rect": {
+ "x": 543.90625,
+ "y": 399.09375,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 607.9189631713717,
+ "y": 306.09511995587724
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.5000000000001,
+ "y": 376.39657598499076
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 297.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -29.439810580411905,
+ "y": 288.7938789662696
+ },
+ "rect": {
+ "x": 717.484375,
+ "y": 393.46875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 636.0636508534949,
+ "y": 357.0987986896946
+ },
+ "rect": {
+ "x": 511.421875,
+ "y": 342.09375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 636.232573669308,
+ "y": 375.50009333626724
+ },
+ "rect": {
+ "x": 700.21875,
+ "y": 360.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 665.0610213875584,
+ "y": 357.0987999852571
+ },
+ "rect": {
+ "x": 679.046875,
+ "y": 414.09375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 664.8906397509652,
+ "y": 375.5000950663704
+ },
+ "rect": {
+ "x": 728.890625,
+ "y": 318.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1062.5647745096774,
+ "y": 791.3253917500346
+ },
+ "rect": {
+ "x": 712.953125,
+ "y": 309.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1943.8114093160834,
+ "y": 984.5954435545151
+ },
+ "rect": {
+ "x": 470.890625,
+ "y": 212.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1942.9373782471334,
+ "y": 984.252611488883
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 650.662480112516,
+ "y": 378.11593107055813
+ },
+ "rect": {
+ "x": 667.25,
+ "y": 411,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 641.3816239687811,
+ "y": 380.550976915813
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 691.3829600091524,
+ "y": 356.7566378897047
+ },
+ "rect": {
+ "x": 485.109375,
+ "y": 244.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 610.3217983913762,
+ "y": 362.2088947431505
+ },
+ "rect": {
+ "x": 434.3125,
+ "y": 305.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -18.03320624675021,
+ "y": 271.79953697411935
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 716.7571557224045,
+ "y": 332.2485504795562
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 981.7910026397898,
+ "y": 558.3471560824672
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ -0.13192710688830708,
+ 1.9741556587866769,
+ -0.675676123113613
+ ]
+ },
+ {
+ "task": "88",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 607.9189631713717,
+ "y": 306.09511995587724
+ },
+ "rect": {
+ "x": 543.90625,
+ "y": 399.09375,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 607.9189631713717,
+ "y": 306.09511995587724
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.5000000000001,
+ "y": 376.39657598499076
+ },
+ "rect": {
+ "x": 594.5,
+ "y": 297.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -29.439810580411905,
+ "y": 288.7938789662696
+ },
+ "rect": {
+ "x": 717.484375,
+ "y": 393.46875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 636.0636508534949,
+ "y": 357.0987986896946
+ },
+ "rect": {
+ "x": 511.421875,
+ "y": 342.09375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 636.232573669308,
+ "y": 375.50009333626724
+ },
+ "rect": {
+ "x": 700.21875,
+ "y": 360.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 665.0610213875584,
+ "y": 357.0987999852571
+ },
+ "rect": {
+ "x": 679.046875,
+ "y": 414.09375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 664.8906397509652,
+ "y": 375.5000950663704
+ },
+ "rect": {
+ "x": 728.890625,
+ "y": 318.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1062.5647745096774,
+ "y": 791.3253917500346
+ },
+ "rect": {
+ "x": 712.953125,
+ "y": 309.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1943.8114093160834,
+ "y": 984.5954435545151
+ },
+ "rect": {
+ "x": 470.890625,
+ "y": 212.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1942.9373782471334,
+ "y": 984.252611488883
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 650.662480112516,
+ "y": 378.11593107055813
+ },
+ "rect": {
+ "x": 667.25,
+ "y": 411,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 641.3816239687811,
+ "y": 380.550976915813
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 691.3829600091524,
+ "y": 356.7566378897047
+ },
+ "rect": {
+ "x": 485.109375,
+ "y": 244.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 610.3217983913762,
+ "y": 362.2088947431505
+ },
+ "rect": {
+ "x": 434.3125,
+ "y": 305.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -18.03320624675021,
+ "y": 271.79953697411935
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 716.7571557224045,
+ "y": 332.2485504795562
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 981.7910026397898,
+ "y": 558.3471560824672
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ -0.13192710688830708,
+ 1.9741556587866769,
+ -0.675676123113613
+ ]
+ },
+ {
+ "task": "88",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 638.7899826448115,
+ "y": 405.2799264463719
+ },
+ "rect": {
+ "x": 574.78125,
+ "y": 427.25,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.7899826448115,
+ "y": 405.2799264463719
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 645.1229218055283,
+ "y": 399.68444890944915
+ },
+ "rect": {
+ "x": 518.171875,
+ "y": 384.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 715.753207155546,
+ "y": 412.79729962419776
+ },
+ "rect": {
+ "x": 729.75,
+ "y": 397.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.8047453049863,
+ "y": 401.20333387669683
+ },
+ "rect": {
+ "x": 587.796875,
+ "y": 314.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.8149148671743,
+ "y": 403.8395488265354
+ },
+ "rect": {
+ "x": 467.8125,
+ "y": 346.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.8076117330829,
+ "y": 400.30431345001796
+ },
+ "rect": {
+ "x": 458.0625,
+ "y": 432.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.8222820156154,
+ "y": 402.93276885647066
+ },
+ "rect": {
+ "x": 462.015625,
+ "y": 432.8125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 667.1011086503868,
+ "y": 365.0314896968015
+ },
+ "rect": {
+ "x": 731.09375,
+ "y": 350.03125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 629.3237016051138,
+ "y": 365.9331208042392
+ },
+ "rect": {
+ "x": 453.3125,
+ "y": 308.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 629.3790072087198,
+ "y": 365.9142397324399
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 646.1052370362291,
+ "y": 398.5483095642352
+ },
+ "rect": {
+ "x": 709.609375,
+ "y": 426.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 647.198169984289,
+ "y": 398.90659169634847
+ },
+ "rect": {
+ "x": 690.953125,
+ "y": 320.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.7319175380007,
+ "y": 396.24373763540643
+ },
+ "rect": {
+ "x": 485.109375,
+ "y": 244.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 647.703973768825,
+ "y": 400.9852088017917
+ },
+ "rect": {
+ "x": 414.75,
+ "y": 393.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 714.0255623833602,
+ "y": 412.7930166066267
+ },
+ "rect": {
+ "x": 746.390625,
+ "y": 336.03125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6846246707554,
+ "y": 391.85565651118714
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 660.6131007191365,
+ "y": 363.76426252107916
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 8.00099936990116,
+ 5.926042707244239,
+ 11.72027496155425
+ ]
+ },
+ {
+ "task": "88",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 700.2508612411232,
+ "y": 417.56057104394637
+ },
+ "rect": {
+ "x": 635.890625,
+ "y": 330.484375,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 700.2508612411232,
+ "y": 417.56057104394637
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 704.9674166427767,
+ "y": 411.6421200167042
+ },
+ "rect": {
+ "x": 648.609375,
+ "y": 426.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 781.3987434629654,
+ "y": 425.9140906499767
+ },
+ "rect": {
+ "x": 725.015625,
+ "y": 380.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 704.072094429885,
+ "y": 413.2454965067188
+ },
+ "rect": {
+ "x": 647.71875,
+ "y": 290.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 703.9907379306599,
+ "y": 415.86342341614375
+ },
+ "rect": {
+ "x": 527.640625,
+ "y": 400.78125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 700.8661465704382,
+ "y": 412.3047523996959
+ },
+ "rect": {
+ "x": 458.0625,
+ "y": 432.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 700.7899234534553,
+ "y": 414.9150461794162
+ },
+ "rect": {
+ "x": 462.015625,
+ "y": 432.8125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 721.8446353699463,
+ "y": 375.9699242101844
+ },
+ "rect": {
+ "x": 770.65625,
+ "y": 315.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 681.0828002096049,
+ "y": 376.2752296248364
+ },
+ "rect": {
+ "x": 504.78125,
+ "y": 361.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 681.14247670686,
+ "y": 376.25722191171184
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 705.8611034344449,
+ "y": 410.4882716119087
+ },
+ "rect": {
+ "x": 513.28125,
+ "y": 434.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 706.9914539273885,
+ "y": 410.8540302328214
+ },
+ "rect": {
+ "x": 690.953125,
+ "y": 320.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 700.4159077973754,
+ "y": 408.169337940516
+ },
+ "rect": {
+ "x": 485.109375,
+ "y": 244.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 708.0228464070648,
+ "y": 413.03766646778143
+ },
+ "rect": {
+ "x": 414.75,
+ "y": 393.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 779.9549633574848,
+ "y": 425.96652730783546
+ },
+ "rect": {
+ "x": 627.796875,
+ "y": 363.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 698.2894641686515,
+ "y": 403.7654415140501
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 716.378376621533,
+ "y": 374.90685517324664
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 6.9187559685577975,
+ 6.171396300975659,
+ 12.456694894091592
+ ]
+ },
+ {
+ "task": "89",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 642.8189370023163,
+ "y": 366.666527722089
+ },
+ "rect": {
+ "x": 584.8125,
+ "y": 379.671875,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 642.8189370023163,
+ "y": 366.666527722089
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 642.6931021301593,
+ "y": 368.05260606733856
+ },
+ "rect": {
+ "x": 565.6875,
+ "y": 425.046875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.6304644726474,
+ "y": 366.5570092344449
+ },
+ "rect": {
+ "x": 587.625,
+ "y": 309.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 642.7371854550294,
+ "y": 366.92554413402087
+ },
+ "rect": {
+ "x": 466.734375,
+ "y": 351.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.5562709141161,
+ "y": 366.6759763810965
+ },
+ "rect": {
+ "x": 707.546875,
+ "y": 351.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.4472658349755,
+ "y": 366.30803657583334
+ },
+ "rect": {
+ "x": 468.4375,
+ "y": 309.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.882387631276,
+ "y": 367.4733290632396
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.3151564873942,
+ "y": 363.52185683555706
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 641.3994869739605,
+ "y": 365.6273410857249
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.7192029116841,
+ "y": 365.83631749694166
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 639.0503112857625,
+ "y": 364.246450426524
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 697.2663432414959,
+ "y": 349.8011503587786
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 292.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.1804627419688,
+ "y": 351.09182110191955
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.0686915215941,
+ "y": 349.57006299354174
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 698.1526585481878,
+ "y": 349.820151861668
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 698.7413378836552,
+ "y": 349.3094637271485
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.6488360864807,
+ "y": 349.0647569322178
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 695.3449397127022,
+ "y": 351.24506635128057
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 693.0944159437796,
+ "y": 349.09127423939583
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 696.0003137502707,
+ "y": 348.3921382397449
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 695.2730962717185,
+ "y": 349.0184688847361
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 693.6831320407779,
+ "y": 347.6144069741894
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 8.00099936990116,
+ 5.926042707244239,
+ 11.72027496155425
+ ]
+ },
+ {
+ "task": "89",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 652.5584804612291,
+ "y": 357.20490442488443
+ },
+ "rect": {
+ "x": 594.546875,
+ "y": 414.203125,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 652.5584804612291,
+ "y": 357.20490442488443
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.5000000000011,
+ "y": 376.39657598499014
+ },
+ "rect": {
+ "x": 573.5,
+ "y": 296.875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 674.9126141579105,
+ "y": 359.70199811806407
+ },
+ "rect": {
+ "x": 699.40625,
+ "y": 344.6875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 640.5537510267602,
+ "y": 373.9472928447627
+ },
+ "rect": {
+ "x": 464.546875,
+ "y": 400.9375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 653.2661182023345,
+ "y": 387.71689274232335
+ },
+ "rect": {
+ "x": 717.265625,
+ "y": 414.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 687.8178336933967,
+ "y": 373.29243211990325
+ },
+ "rect": {
+ "x": 511.8125,
+ "y": 358.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 629.9620848711176,
+ "y": 320.09225468750884
+ },
+ "rect": {
+ "x": 478.140625,
+ "y": 240.625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 597.944103451193,
+ "y": 193.9603797787691
+ },
+ "rect": {
+ "x": 467.34375,
+ "y": 178.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 574.5802786780074,
+ "y": 383.79670335196056
+ },
+ "rect": {
+ "x": 448.578125,
+ "y": 296.78125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 564.3486797711024,
+ "y": 372.1708848689591
+ },
+ "rect": {
+ "x": 432.484375,
+ "y": 328.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 594.8124524192534,
+ "y": 238.9438160653731
+ },
+ "rect": {
+ "x": 459.421875,
+ "y": 223.9375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2491.9386128056135,
+ "y": -155.7408019435299
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 292.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2473.9649141945674,
+ "y": -131.19319197537348
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2490.9335817151236,
+ "y": -170.93115912689058
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2515.658664560976,
+ "y": -148.30851816590248
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2539.2594316876316,
+ "y": -162.16606578807165
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2514.0971057942775,
+ "y": -184.55646874882694
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2419.664241450587,
+ "y": -123.89744382684037
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2378.6420358315418,
+ "y": -156.2863010366514
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2471.2357629615512,
+ "y": -172.63220500024102
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2441.846066198072,
+ "y": -155.40004707118212
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2426.848723163082,
+ "y": -254.62406824963594
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 1.1355947792282919,
+ 3.5342737911906745,
+ 2.2495395624859036
+ ]
+ },
+ {
+ "task": "89",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 652.5584804612291,
+ "y": 357.20490442488443
+ },
+ "rect": {
+ "x": 594.546875,
+ "y": 414.203125,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 652.5584804612291,
+ "y": 357.20490442488443
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 650.5000000000011,
+ "y": 376.39657598499014
+ },
+ "rect": {
+ "x": 573.5,
+ "y": 296.875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 674.9126141579105,
+ "y": 359.70199811806407
+ },
+ "rect": {
+ "x": 699.40625,
+ "y": 344.6875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.5537510267602,
+ "y": 373.9472928447627
+ },
+ "rect": {
+ "x": 464.546875,
+ "y": 400.9375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 653.2661182023345,
+ "y": 387.71689274232335
+ },
+ "rect": {
+ "x": 717.265625,
+ "y": 414.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 687.8178336933967,
+ "y": 373.29243211990325
+ },
+ "rect": {
+ "x": 511.8125,
+ "y": 358.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 629.9620848711176,
+ "y": 320.09225468750884
+ },
+ "rect": {
+ "x": 478.140625,
+ "y": 240.625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 597.944103451193,
+ "y": 193.9603797787691
+ },
+ "rect": {
+ "x": 467.34375,
+ "y": 178.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 574.5802786780074,
+ "y": 383.79670335196056
+ },
+ "rect": {
+ "x": 448.578125,
+ "y": 296.78125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 564.3486797711024,
+ "y": 372.1708848689591
+ },
+ "rect": {
+ "x": 432.484375,
+ "y": 328.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 594.8124524192534,
+ "y": 238.9438160653731
+ },
+ "rect": {
+ "x": 459.421875,
+ "y": 223.9375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2491.9386128056135,
+ "y": -155.7408019435299
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 292.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2473.9649141945674,
+ "y": -131.19319197537348
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2490.9335817151236,
+ "y": -170.93115912689058
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2515.658664560976,
+ "y": -148.30851816590248
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2539.2594316876316,
+ "y": -162.16606578807165
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2514.0971057942775,
+ "y": -184.55646874882694
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2419.664241450587,
+ "y": -123.89744382684037
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2378.6420358315418,
+ "y": -156.2863010366514
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2471.2357629615512,
+ "y": -172.63220500024102
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2441.846066198072,
+ "y": -155.40004707118212
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2426.848723163082,
+ "y": -254.62406824963594
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 1.1355947792282919,
+ 3.5342737911906745,
+ 2.2495395624859036
+ ]
+ },
+ {
+ "task": "89",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 642.8189370023163,
+ "y": 366.666527722089
+ },
+ "rect": {
+ "x": 584.8125,
+ "y": 379.671875,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 642.8189370023163,
+ "y": 366.666527722089
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 642.6931021301593,
+ "y": 368.0526060673385
+ },
+ "rect": {
+ "x": 565.6875,
+ "y": 425.046875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.6304644726474,
+ "y": 366.5570092344448
+ },
+ "rect": {
+ "x": 587.625,
+ "y": 309.546875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 642.7371854550294,
+ "y": 366.92554413402087
+ },
+ "rect": {
+ "x": 466.734375,
+ "y": 351.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 643.5562709141161,
+ "y": 366.6759763810965
+ },
+ "rect": {
+ "x": 707.546875,
+ "y": 351.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.4472658349756,
+ "y": 366.3080365758333
+ },
+ "rect": {
+ "x": 468.4375,
+ "y": 309.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.8823876312761,
+ "y": 367.4733290632396
+ },
+ "rect": {
+ "x": 478.140625,
+ "y": 240.625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.3151564873942,
+ "y": 363.52185683555706
+ },
+ "rect": {
+ "x": 459.984375,
+ "y": 307.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 641.3994869739605,
+ "y": 365.6273410857249
+ },
+ "rect": {
+ "x": 458.59375,
+ "y": 407.140625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.7192029116841,
+ "y": 365.8363174969416
+ },
+ "rect": {
+ "x": 432.484375,
+ "y": 328.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 639.0503112857625,
+ "y": 364.24645042652395
+ },
+ "rect": {
+ "x": 459.421875,
+ "y": 223.9375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 697.2663432414959,
+ "y": 349.8011503587786
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 292.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.1804627419688,
+ "y": 351.0918211019195
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.0686915215941,
+ "y": 349.57006299354174
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 698.1526585481878,
+ "y": 349.82015186166797
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 698.7413378836552,
+ "y": 349.30946372714845
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 697.6488360864807,
+ "y": 349.0647569322178
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 695.3449397127022,
+ "y": 351.24506635128057
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 693.0944159437796,
+ "y": 349.0912742393958
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 696.0003137502707,
+ "y": 348.3921382397449
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 695.2730962717185,
+ "y": 349.0184688847361
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 693.6831320407779,
+ "y": 347.6144069741894
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 8.00099936990116,
+ 5.926042707244239,
+ 11.72027496155425
+ ]
+ },
+ {
+ "task": "89",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 703.517165243472,
+ "y": 378.7947853350028
+ },
+ "rect": {
+ "x": 644.71875,
+ "y": 391.6875,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 703.517165243472,
+ "y": 378.7947853350028
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 703.333537213104,
+ "y": 380.1693158916042
+ },
+ "rect": {
+ "x": 625.53125,
+ "y": 293,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 704.3093573857354,
+ "y": 378.68140340938635
+ },
+ "rect": {
+ "x": 767.515625,
+ "y": 363.515625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 703.51562902082,
+ "y": 379.06982976208224
+ },
+ "rect": {
+ "x": 526.71875,
+ "y": 363.90625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 704.4083541604241,
+ "y": 378.83497612918615
+ },
+ "rect": {
+ "x": 767.609375,
+ "y": 405.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 705.1994175742246,
+ "y": 378.4470687713868
+ },
+ "rect": {
+ "x": 643.78125,
+ "y": 434.359375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 701.3369056241845,
+ "y": 379.55289035075316
+ },
+ "rect": {
+ "x": 478.140625,
+ "y": 240.625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 698.6388902739678,
+ "y": 375.5752858191782
+ },
+ "rect": {
+ "x": 641.84375,
+ "y": 432.40625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 702.5075203230508,
+ "y": 377.8374828337138
+ },
+ "rect": {
+ "x": 458.59375,
+ "y": 407.140625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 701.7655868160991,
+ "y": 378.0341409224955
+ },
+ "rect": {
+ "x": 432.484375,
+ "y": 328.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 699.5338046810391,
+ "y": 376.3318013582255
+ },
+ "rect": {
+ "x": 522.734375,
+ "y": 403.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 753.3381576279029,
+ "y": 361.0049931958374
+ },
+ "rect": {
+ "x": 737.0625,
+ "y": 297.953125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 753.2187190610359,
+ "y": 362.288958621583
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 753.0709356191791,
+ "y": 360.76000482542315
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 754.2223385868394,
+ "y": 361.0235682296162
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 754.7527602039908,
+ "y": 360.501239481587
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 753.594006637809,
+ "y": 360.24329476283026
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 751.5396594012416,
+ "y": 362.4734671896097
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 749.5814524088543,
+ "y": 360.3780835893591
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 752.2880245552227,
+ "y": 359.63911985461806
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 751.632731807349,
+ "y": 360.27982195142397
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 749.5873379213976,
+ "y": 358.78475955633957
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 6.9250480292059855,
+ 6.169969838416412,
+ 12.452413418341953
+ ]
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925-laptop/task-86-focus.png b/reports/bridge-label-placement-20260925-laptop/task-86-focus.png
new file mode 100644
index 0000000..3e0e96b
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-86-focus.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-86-hide-others.png b/reports/bridge-label-placement-20260925-laptop/task-86-hide-others.png
new file mode 100644
index 0000000..065ca69
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-86-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-86-moved.png b/reports/bridge-label-placement-20260925-laptop/task-86-moved.png
new file mode 100644
index 0000000..075d251
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-86-moved.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-86-overview.png b/reports/bridge-label-placement-20260925-laptop/task-86-overview.png
new file mode 100644
index 0000000..b73b3f4
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-86-overview.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-86-reset.png b/reports/bridge-label-placement-20260925-laptop/task-86-reset.png
new file mode 100644
index 0000000..01dd80f
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-86-reset.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-87-focus.png b/reports/bridge-label-placement-20260925-laptop/task-87-focus.png
new file mode 100644
index 0000000..7f5ae8a
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-87-focus.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-87-hide-others.png b/reports/bridge-label-placement-20260925-laptop/task-87-hide-others.png
new file mode 100644
index 0000000..8df244f
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-87-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-87-moved.png b/reports/bridge-label-placement-20260925-laptop/task-87-moved.png
new file mode 100644
index 0000000..4b3b7fe
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-87-moved.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-87-overview.png b/reports/bridge-label-placement-20260925-laptop/task-87-overview.png
new file mode 100644
index 0000000..c140f69
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-87-overview.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-87-reset.png b/reports/bridge-label-placement-20260925-laptop/task-87-reset.png
new file mode 100644
index 0000000..6ee42f6
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-87-reset.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-88-focus.png b/reports/bridge-label-placement-20260925-laptop/task-88-focus.png
new file mode 100644
index 0000000..3ffe0b4
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-88-focus.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-88-hide-others.png b/reports/bridge-label-placement-20260925-laptop/task-88-hide-others.png
new file mode 100644
index 0000000..144b24c
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-88-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-88-moved.png b/reports/bridge-label-placement-20260925-laptop/task-88-moved.png
new file mode 100644
index 0000000..a8f9248
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-88-moved.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-88-overview.png b/reports/bridge-label-placement-20260925-laptop/task-88-overview.png
new file mode 100644
index 0000000..462c154
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-88-overview.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-88-reset.png b/reports/bridge-label-placement-20260925-laptop/task-88-reset.png
new file mode 100644
index 0000000..3cd54c3
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-88-reset.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-89-focus.png b/reports/bridge-label-placement-20260925-laptop/task-89-focus.png
new file mode 100644
index 0000000..dd439f3
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-89-focus.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-89-hide-others.png b/reports/bridge-label-placement-20260925-laptop/task-89-hide-others.png
new file mode 100644
index 0000000..410d704
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-89-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-89-moved.png b/reports/bridge-label-placement-20260925-laptop/task-89-moved.png
new file mode 100644
index 0000000..5bcc2dd
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-89-moved.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-89-overview.png b/reports/bridge-label-placement-20260925-laptop/task-89-overview.png
new file mode 100644
index 0000000..220c858
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-89-overview.png differ
diff --git a/reports/bridge-label-placement-20260925-laptop/task-89-reset.png b/reports/bridge-label-placement-20260925-laptop/task-89-reset.png
new file mode 100644
index 0000000..000d1e3
Binary files /dev/null and b/reports/bridge-label-placement-20260925-laptop/task-89-reset.png differ
diff --git a/reports/bridge-label-placement-20260925-stable/index.html b/reports/bridge-label-placement-20260925-stable/index.html
new file mode 100644
index 0000000..f2cf5ff
--- /dev/null
+++ b/reports/bridge-label-placement-20260925-stable/index.html
@@ -0,0 +1 @@
+部件标签位置检查部件标签位置检查:通过
http://127.0.0.1:6180 · 1920 × 945 · 教员预览(root)· 未创建任务或提交训练成绩。
标签中心距部件投影不超过128像素,互不重叠;检查聚焦、隐藏其他、复位和移动视角。
检查数据任务 87 · overview

任务 87 · focus

任务 87 · hide-others

任务 87 · reset

任务 87 · moved
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925-stable/result.json b/reports/bridge-label-placement-20260925-stable/result.json
new file mode 100644
index 0000000..63e2034
--- /dev/null
+++ b/reports/bridge-label-placement-20260925-stable/result.json
@@ -0,0 +1,1363 @@
+{
+ "pass": true,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "87",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 595.0169113857233,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 531.015625,
+ "y": 346.515625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 547.4055924807053,
+ "y": 322.4392765695298
+ },
+ "rect": {
+ "x": 491.390625,
+ "y": 279.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 632.4900450250362,
+ "y": 226.8836811810685
+ },
+ "rect": {
+ "x": 576.484375,
+ "y": 243.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 631.0451295899397,
+ "y": 229.51351578163494
+ },
+ "rect": {
+ "x": 575.03125,
+ "y": 172.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 595.0169113857233,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 647.9026986939409,
+ "y": 217.2947467519867
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.9566932597559,
+ "y": 351.67072723812805
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6884846594746,
+ "y": 215.81970352024092
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 877.3213321181075,
+ "y": 348.4913892534385
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.2195907817843,
+ "y": 215.22532927184895
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 878.6119160429071,
+ "y": 347.2039217800587
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 909.4849400235194,
+ "y": 355.55165496530736
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.3067690201934,
+ "y": 219.9603655378002
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.3346642777382,
+ "y": 218.7296692291072
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 897.0610314611231,
+ "y": 336.20112081541106
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 735.7572614539419,
+ "y": 319.6273443684691
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ]
+ },
+ {
+ "task": "87",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 1251.546875,
+ "y": 382.125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.999999999997,
+ "y": 369.7082086267604
+ },
+ "rect": {
+ "x": 734,
+ "y": 293.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5458.229263591109,
+ "y": 29.953502724469207
+ },
+ "rect": {
+ "x": 980.125,
+ "y": 209.375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5385.173500993679,
+ "y": 62.28736848198816
+ },
+ "rect": {
+ "x": 950.203125,
+ "y": 269.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5990.826345900855,
+ "y": -85.08787856433082
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -295790.2545594947,
+ "y": -117795.69870207725
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5770.01669527255,
+ "y": -105.62439501855947
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 123481.56235014512,
+ "y": 48179.93005583951
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5826.702502965317,
+ "y": -104.27431116390396
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 125588.90998541293,
+ "y": 48189.29564631933
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -110264.44820411433,
+ "y": -45270.7574944021
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5911.428100548145,
+ "y": -2.627288386274038
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5822.675222583378,
+ "y": -22.60410065308515
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -144410.92056214364,
+ "y": -46269.52000235024
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 8316.529829917139,
+ "y": 2815.707864189142
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383634,
+ 1.3898189780176327,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 1251.546875,
+ "y": 382.125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.999999999997,
+ "y": 369.7082086267604
+ },
+ "rect": {
+ "x": 734,
+ "y": 293.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5458.229263591109,
+ "y": 29.953502724469207
+ },
+ "rect": {
+ "x": 980.125,
+ "y": 209.375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5385.173500993679,
+ "y": 62.28736848198816
+ },
+ "rect": {
+ "x": 950.203125,
+ "y": 269.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5990.826345900855,
+ "y": -85.08787856433082
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -295790.2545594947,
+ "y": -117795.69870207725
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5770.01669527255,
+ "y": -105.62439501855947
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 123481.56235014512,
+ "y": 48179.93005583951
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5826.702502965317,
+ "y": -104.27431116390396
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 125588.90998541293,
+ "y": 48189.29564631933
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -110264.44820411433,
+ "y": -45270.7574944021
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5911.428100548145,
+ "y": -2.627288386274038
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5822.675222583378,
+ "y": -22.60410065308515
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -144410.92056214364,
+ "y": -46269.52000235024
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 8316.529829917139,
+ "y": 2815.707864189142
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383634,
+ 1.3898189780176327,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 595.0169113857235,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 531.015625,
+ "y": 346.515625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 547.4055924807054,
+ "y": 322.43927656952974
+ },
+ "rect": {
+ "x": 491.390625,
+ "y": 279.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 632.4900450250362,
+ "y": 226.8836811810685
+ },
+ "rect": {
+ "x": 576.484375,
+ "y": 243.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 631.0451295899397,
+ "y": 229.51351578163494
+ },
+ "rect": {
+ "x": 575.03125,
+ "y": 172.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 595.0169113857235,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 647.902698693941,
+ "y": 217.2947467519867
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.9566932597559,
+ "y": 351.67072723812805
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6884846594746,
+ "y": 215.81970352024092
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 877.3213321181075,
+ "y": 348.49138925343846
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.2195907817843,
+ "y": 215.22532927184895
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 878.6119160429071,
+ "y": 347.2039217800587
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 909.4849400235194,
+ "y": 355.55165496530736
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.3067690201934,
+ "y": 219.9603655378002
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.3346642777382,
+ "y": 218.72966922910723
+ },
+ "rect": {
+ "x": 723.515625,
+ "y": 188.828125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 897.0610314611231,
+ "y": 336.20112081541106
+ },
+ "rect": {
+ "x": 862,
+ "y": 255.140625,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 735.7572614539419,
+ "y": 319.62734436846904
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ]
+ },
+ {
+ "task": "87",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 658.5362787828268,
+ "y": 302.22048904032937
+ },
+ "rect": {
+ "x": 593.328125,
+ "y": 358.96875,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 620.8585853771588,
+ "y": 337.1195296568631
+ },
+ "rect": {
+ "x": 563.46875,
+ "y": 293.890625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 688.133049329866,
+ "y": 238.0044449991746
+ },
+ "rect": {
+ "x": 631.078125,
+ "y": 254.046875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 686.9096167801852,
+ "y": 240.67854498205162
+ },
+ "rect": {
+ "x": 629.859375,
+ "y": 183.46875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 658.5362787828268,
+ "y": 302.22048904032937
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 702.9427803836458,
+ "y": 228.295010965746
+ },
+ "rect": {
+ "x": 642.90625,
+ "y": 141.078125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 964.056718510338,
+ "y": 366.0805773551105
+ },
+ "rect": {
+ "x": 903.6875,
+ "y": 380.8125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 693.3935771106312,
+ "y": 226.75301706787351
+ },
+ "rect": {
+ "x": 616.359375,
+ "y": 103.546875,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 948.8125647040333,
+ "y": 362.77956658293544
+ },
+ "rect": {
+ "x": 871.46875,
+ "y": 305.5,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 694.796481427951,
+ "y": 226.13302051507577
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 949.88595957715,
+ "y": 361.4486918892263
+ },
+ "rect": {
+ "x": 872.546875,
+ "y": 418.171875,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 980.2631369980433,
+ "y": 369.6973256000748
+ },
+ "rect": {
+ "x": 919.921875,
+ "y": 246.421875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 698.9286541190289,
+ "y": 230.87704933431397
+ },
+ "rect": {
+ "x": 764.390625,
+ "y": 215.671875,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 694.7859994830742,
+ "y": 229.61226706803282
+ },
+ "rect": {
+ "x": 723.515625,
+ "y": 188.828125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 969.3835105461112,
+ "y": 350.65543036774886
+ },
+ "rect": {
+ "x": 862,
+ "y": 255.140625,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 796.3255626463751,
+ "y": 331.73247386030886
+ },
+ "rect": {
+ "x": 739.1875,
+ "y": 358.5,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.008680256369452,
+ 4.738505421190706,
+ 9.75160369286139
+ ]
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925-stable/task-87-focus.png b/reports/bridge-label-placement-20260925-stable/task-87-focus.png
new file mode 100644
index 0000000..c7d133a
Binary files /dev/null and b/reports/bridge-label-placement-20260925-stable/task-87-focus.png differ
diff --git a/reports/bridge-label-placement-20260925-stable/task-87-hide-others.png b/reports/bridge-label-placement-20260925-stable/task-87-hide-others.png
new file mode 100644
index 0000000..d5c3b63
Binary files /dev/null and b/reports/bridge-label-placement-20260925-stable/task-87-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925-stable/task-87-moved.png b/reports/bridge-label-placement-20260925-stable/task-87-moved.png
new file mode 100644
index 0000000..888a8e6
Binary files /dev/null and b/reports/bridge-label-placement-20260925-stable/task-87-moved.png differ
diff --git a/reports/bridge-label-placement-20260925-stable/task-87-overview.png b/reports/bridge-label-placement-20260925-stable/task-87-overview.png
new file mode 100644
index 0000000..5250ec8
Binary files /dev/null and b/reports/bridge-label-placement-20260925-stable/task-87-overview.png differ
diff --git a/reports/bridge-label-placement-20260925-stable/task-87-reset.png b/reports/bridge-label-placement-20260925-stable/task-87-reset.png
new file mode 100644
index 0000000..8f490ab
Binary files /dev/null and b/reports/bridge-label-placement-20260925-stable/task-87-reset.png differ
diff --git a/reports/bridge-label-placement-20260925/failure.png b/reports/bridge-label-placement-20260925/failure.png
new file mode 100644
index 0000000..99fc1de
Binary files /dev/null and b/reports/bridge-label-placement-20260925/failure.png differ
diff --git a/reports/bridge-label-placement-20260925/index.html b/reports/bridge-label-placement-20260925/index.html
new file mode 100644
index 0000000..05fadde
--- /dev/null
+++ b/reports/bridge-label-placement-20260925/index.html
@@ -0,0 +1 @@
+部件标签位置检查部件标签位置检查:通过
http://127.0.0.1:6180 · 1920 × 945 · 教员预览(root)· 未创建任务或提交训练成绩。
标签中心距部件投影不超过128像素,互不重叠;检查聚焦、隐藏其他、复位和移动视角。
检查数据任务 86 · overview

任务 86 · focus

任务 86 · hide-others

任务 86 · reset

任务 86 · moved

任务 87 · overview

任务 87 · focus

任务 87 · hide-others

任务 87 · reset

任务 87 · moved

任务 88 · overview

任务 88 · focus

任务 88 · hide-others

任务 88 · reset

任务 88 · moved

任务 89 · overview

任务 89 · focus

任务 89 · hide-others

任务 89 · reset

任务 89 · moved
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925/result.json b/reports/bridge-label-placement-20260925/result.json
new file mode 100644
index 0000000..016fdc9
--- /dev/null
+++ b/reports/bridge-label-placement-20260925/result.json
@@ -0,0 +1,5493 @@
+{
+ "pass": true,
+ "baseUrl": "http://127.0.0.1:6180",
+ "viewport": {
+ "width": 1920,
+ "height": 945
+ },
+ "accountRole": "root",
+ "serverMutations": [],
+ "checks": [
+ {
+ "task": "86",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 774.5876582429028,
+ "y": 375.04846819153977
+ },
+ "rect": {
+ "x": 718.578125,
+ "y": 396.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 774.5876582429028,
+ "y": 375.04846819153977
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 660.2861998123497,
+ "y": 411.26072971918205
+ },
+ "rect": {
+ "x": 604.28125,
+ "y": 360.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 668.8761415511328,
+ "y": 409.2953688205981
+ },
+ "rect": {
+ "x": 612.875,
+ "y": 436.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 953.7561975235438,
+ "y": 318.4135403414699
+ },
+ "rect": {
+ "x": 897.75,
+ "y": 261.40625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 820.1447649663149,
+ "y": 317.36043728391854
+ },
+ "rect": {
+ "x": 764.140625,
+ "y": 269.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 817.8142054351135,
+ "y": 316.8897887079125
+ },
+ "rect": {
+ "x": 761.8125,
+ "y": 334.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 815.6661509607335,
+ "y": 319.84735448892735
+ },
+ "rect": {
+ "x": 759.65625,
+ "y": 232.84375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ]
+ },
+ {
+ "task": "86",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 2237.9012488399107,
+ "y": 466.4604902488779
+ },
+ "rect": {
+ "x": 1099.796875,
+ "y": 416.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2237.9012488399107,
+ "y": 466.4604902488779
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 790,
+ "y": 369.70820862676135
+ },
+ "rect": {
+ "x": 734,
+ "y": 274.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 817.8112812305425,
+ "y": 363.4111023875403
+ },
+ "rect": {
+ "x": 761.796875,
+ "y": 389.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4576.585311020776,
+ "y": 314.8556431909224
+ },
+ "rect": {
+ "x": 897.75,
+ "y": 261.40625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2959.4232622474633,
+ "y": 213.49107700680014
+ },
+ "rect": {
+ "x": 933.171875,
+ "y": 106.625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2942.620471990054,
+ "y": 209.97647909242346
+ },
+ "rect": {
+ "x": 925.5,
+ "y": 205.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2909.432597733438,
+ "y": 224.7240770731847
+ },
+ "rect": {
+ "x": 849.328125,
+ "y": 164.5625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 2.8723628675203736,
+ 1.3339831323857418,
+ 3.3942996223374293
+ ]
+ },
+ {
+ "task": "86",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 2237.9012488399107,
+ "y": 466.4604902488779
+ },
+ "rect": {
+ "x": 1099.796875,
+ "y": 416.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2237.9012488399107,
+ "y": 466.4604902488779
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 790,
+ "y": 369.70820862676135
+ },
+ "rect": {
+ "x": 734,
+ "y": 274.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 817.8112812305425,
+ "y": 363.4111023875403
+ },
+ "rect": {
+ "x": 761.796875,
+ "y": 389.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4576.585311020776,
+ "y": 314.8556431909224
+ },
+ "rect": {
+ "x": 897.75,
+ "y": 261.40625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2959.4232622474633,
+ "y": 213.49107700680014
+ },
+ "rect": {
+ "x": 933.171875,
+ "y": 106.625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2942.620471990054,
+ "y": 209.97647909242346
+ },
+ "rect": {
+ "x": 925.5,
+ "y": 205.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 2909.432597733438,
+ "y": 224.7240770731847
+ },
+ "rect": {
+ "x": 849.328125,
+ "y": 164.5625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 2.8723628675203736,
+ 1.3339831323857418,
+ 3.3942996223374293
+ ]
+ },
+ {
+ "task": "86",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 774.5876582429028,
+ "y": 375.04846819153977
+ },
+ "rect": {
+ "x": 718.578125,
+ "y": 396.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 774.5876582429028,
+ "y": 375.04846819153977
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 660.2861998123497,
+ "y": 411.26072971918205
+ },
+ "rect": {
+ "x": 604.28125,
+ "y": 360.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 668.8761415511328,
+ "y": 409.2953688205981
+ },
+ "rect": {
+ "x": 612.875,
+ "y": 436.28125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 953.7561975235436,
+ "y": 318.4135403414699
+ },
+ "rect": {
+ "x": 897.75,
+ "y": 261.40625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 820.1447649663149,
+ "y": 317.36043728391854
+ },
+ "rect": {
+ "x": 764.140625,
+ "y": 269.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 817.8142054351135,
+ "y": 316.8897887079125
+ },
+ "rect": {
+ "x": 761.8125,
+ "y": 334.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 815.6661509607335,
+ "y": 319.8473544889274
+ },
+ "rect": {
+ "x": 759.65625,
+ "y": 232.84375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.2568983919053,
+ 2.47982911756675,
+ 6.903596207500909
+ ]
+ },
+ {
+ "task": "86",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "聚焦 · 液压泵",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 838.302349168577,
+ "y": 387.7824324765443
+ },
+ "rect": {
+ "x": 781,
+ "y": 409.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-hydraulic-pump",
+ "text": "液压泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 838.302349168577,
+ "y": 387.7824324765443
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-power-take-off",
+ "text": "取力器",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 743.8844194871355,
+ "y": 427.9685992570019
+ },
+ "rect": {
+ "x": 686.171875,
+ "y": 449.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 752.6970630788027,
+ "y": 426.0477473625366
+ },
+ "rect": {
+ "x": 694.984375,
+ "y": 368.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-ball-valve-switch",
+ "text": "球阀开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 1012.1385658636968,
+ "y": 330.08179114072027
+ },
+ "rect": {
+ "x": 954.9375,
+ "y": 272.84375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box",
+ "text": "辅助控制盒",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 875.5826580879213,
+ "y": 328.440207754279
+ },
+ "rect": {
+ "x": 818.453125,
+ "y": 280.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 873.1354090344429,
+ "y": 327.9462377089616
+ },
+ "rect": {
+ "x": 816,
+ "y": 345.421875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 871.3078373364245,
+ "y": 330.96785490682964
+ },
+ "rect": {
+ "x": 814.171875,
+ "y": 243.734375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.8287250229291505,
+ 2.5817657683892494,
+ 7.212681266777116
+ ]
+ },
+ {
+ "task": "87",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 595.0169113857233,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 531.015625,
+ "y": 346.515625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 547.4055924807053,
+ "y": 322.4392765695298
+ },
+ "rect": {
+ "x": 491.390625,
+ "y": 279.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 632.4900450250362,
+ "y": 226.8836811810685
+ },
+ "rect": {
+ "x": 576.484375,
+ "y": 243.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 631.0451295899397,
+ "y": 229.51351578163494
+ },
+ "rect": {
+ "x": 575.03125,
+ "y": 172.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 595.0169113857233,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 647.9026986939409,
+ "y": 217.2947467519867
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.9566932597559,
+ "y": 351.67072723812805
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6884846594746,
+ "y": 215.81970352024092
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 877.3213321181075,
+ "y": 348.4913892534385
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.2195907817843,
+ "y": 215.22532927184895
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 878.6119160429071,
+ "y": 347.2039217800587
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 909.4849400235194,
+ "y": 355.55165496530736
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.3067690201934,
+ "y": 219.9603655378002
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.3346642777382,
+ "y": 218.7296692291072
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 897.0610314611231,
+ "y": 336.20112081541106
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 735.7572614539419,
+ "y": 319.6273443684691
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ]
+ },
+ {
+ "task": "87",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 1169.203125,
+ "y": 371.53125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.999999999997,
+ "y": 369.7082086267604
+ },
+ "rect": {
+ "x": 734,
+ "y": 293.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5458.229263591109,
+ "y": 29.953502724469207
+ },
+ "rect": {
+ "x": 962.890625,
+ "y": 229.4375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5385.173500993679,
+ "y": 62.28736848198816
+ },
+ "rect": {
+ "x": 932.21875,
+ "y": 288.859375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5990.826345900855,
+ "y": -85.08787856433082
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -295790.2545594947,
+ "y": -117795.69870207725
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5770.01669527255,
+ "y": -105.62439501855947
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 123481.56235014512,
+ "y": 48179.93005583951
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5826.702502965317,
+ "y": -104.27431116390396
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 125588.90998541293,
+ "y": 48189.29564631933
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -110264.44820411433,
+ "y": -45270.7574944021
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5911.428100548145,
+ "y": -2.627288386274038
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5822.675222583378,
+ "y": -22.60410065308515
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -144410.92056214364,
+ "y": -46269.52000235024
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 8316.529829917139,
+ "y": 2815.707864189142
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383634,
+ 1.3898189780176327,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 1169.203125,
+ "y": 371.53125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.999999999997,
+ "y": 369.7082086267604
+ },
+ "rect": {
+ "x": 734,
+ "y": 293.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5458.229263591109,
+ "y": 29.953502724469207
+ },
+ "rect": {
+ "x": 962.890625,
+ "y": 229.4375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5385.173500993679,
+ "y": 62.28736848198816
+ },
+ "rect": {
+ "x": 932.21875,
+ "y": 288.859375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 3339.601326321919,
+ "y": 599.6503038182454
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5990.826345900855,
+ "y": -85.08787856433082
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -295790.2545594947,
+ "y": -117795.69870207725
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5770.01669527255,
+ "y": -105.62439501855947
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 123481.56235014512,
+ "y": 48179.93005583951
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5826.702502965317,
+ "y": -104.27431116390396
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 125588.90998541293,
+ "y": 48189.29564631933
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -110264.44820411433,
+ "y": -45270.7574944021
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5911.428100548145,
+ "y": -2.627288386274038
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5822.675222583378,
+ "y": -22.60410065308515
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -144410.92056214364,
+ "y": -46269.52000235024
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 8316.529829917139,
+ "y": 2815.707864189142
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.0083158564383634,
+ 1.3898189780176327,
+ 3.3301780128479006
+ ]
+ },
+ {
+ "task": "87",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 595.0169113857235,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 531.015625,
+ "y": 346.515625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 547.4055924807054,
+ "y": 322.43927656952974
+ },
+ "rect": {
+ "x": 491.390625,
+ "y": 279.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 632.4900450250362,
+ "y": 226.8836811810685
+ },
+ "rect": {
+ "x": 576.484375,
+ "y": 243.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 631.0451295899397,
+ "y": 229.51351578163494
+ },
+ "rect": {
+ "x": 575.03125,
+ "y": 172.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 595.0169113857235,
+ "y": 289.52556195068297
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 647.902698693941,
+ "y": 217.2947467519867
+ },
+ "rect": {
+ "x": 588.890625,
+ "y": 130.28125,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.9566932597559,
+ "y": 351.67072723812805
+ },
+ "rect": {
+ "x": 832.953125,
+ "y": 366.625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 638.6884846594746,
+ "y": 215.81970352024092
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 877.3213321181075,
+ "y": 348.49138925343846
+ },
+ "rect": {
+ "x": 801.3125,
+ "y": 291.484375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.2195907817843,
+ "y": 215.22532927184895
+ },
+ "rect": {
+ "x": 607.4375,
+ "y": 275.328125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 878.6119160429071,
+ "y": 347.2039217800587
+ },
+ "rect": {
+ "x": 802.609375,
+ "y": 404.203125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 909.4849400235194,
+ "y": 355.55165496530736
+ },
+ "rect": {
+ "x": 850.484375,
+ "y": 232.546875,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 644.3067690201934,
+ "y": 219.9603655378002
+ },
+ "rect": {
+ "x": 710.796875,
+ "y": 204.953125,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.3346642777382,
+ "y": 218.72966922910723
+ },
+ "rect": {
+ "x": 725.109375,
+ "y": 187.625,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 897.0610314611231,
+ "y": 336.20112081541106
+ },
+ "rect": {
+ "x": 867.375,
+ "y": 255.765625,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 735.7572614539419,
+ "y": 319.62734436846904
+ },
+ "rect": {
+ "x": 679.75,
+ "y": 346.625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.627354467761453,
+ 4.598246824163864,
+ 9.330622589672995
+ ]
+ },
+ {
+ "task": "87",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 658.5362787828268,
+ "y": 302.22048904032937
+ },
+ "rect": {
+ "x": 593.765625,
+ "y": 359.0625,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-pto-switch",
+ "text": "取力器开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 620.8585853771588,
+ "y": 337.1195296568631
+ },
+ "rect": {
+ "x": 563.96875,
+ "y": 293.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-aux-control-box-cover",
+ "text": "辅助控制盒盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 688.133049329866,
+ "y": 238.0044449991746
+ },
+ "rect": {
+ "x": 631.453125,
+ "y": 254.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "front-pump-rescue-switch",
+ "text": "互救开关",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 686.9096167801852,
+ "y": 240.67854498205162
+ },
+ "rect": {
+ "x": 630.234375,
+ "y": 183.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 658.5362787828268,
+ "y": 302.22048904032937
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-a",
+ "text": "架桥车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 702.9427803836458,
+ "y": 228.295010965746
+ },
+ "rect": {
+ "x": 643.265625,
+ "y": 141.15625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-b",
+ "text": "保障车快速接口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 964.056718510338,
+ "y": 366.0805773551105
+ },
+ "rect": {
+ "x": 904.171875,
+ "y": 380.90625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-a",
+ "text": "供油软管 · 架桥车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 693.3935771106312,
+ "y": 226.75301706787351
+ },
+ "rect": {
+ "x": 616.71875,
+ "y": 103.609375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-hose-line-b",
+ "text": "供油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 948.8125647040333,
+ "y": 362.77956658293544
+ },
+ "rect": {
+ "x": 871.9375,
+ "y": 305.59375,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-a",
+ "text": "回油软管 · 架桥车端接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 694.796481427951,
+ "y": 226.13302051507577
+ },
+ "rect": {
+ "x": 607.4375,
+ "y": 275.328125,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-line-b",
+ "text": "回油软管 · 保障车端接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 949.88595957715,
+ "y": 361.4486918892263
+ },
+ "rect": {
+ "x": 873.015625,
+ "y": 418.265625,
+ "w": 152,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-return-valve",
+ "text": "保障车回油截止阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 980.2631369980433,
+ "y": 369.6973256000748
+ },
+ "rect": {
+ "x": 920.40625,
+ "y": 246.515625,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-1",
+ "text": "滤油器出口球阀 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 698.9286541190289,
+ "y": 230.87704933431397
+ },
+ "rect": {
+ "x": 764.765625,
+ "y": 215.734375,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-filter-valve-2",
+ "text": "滤油器出口球阀 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 694.7859994830742,
+ "y": 229.61226706803282
+ },
+ "rect": {
+ "x": 725.109375,
+ "y": 187.625,
+ "w": 116.59375,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-support-pto",
+ "text": "保障车取力器开关(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 969.3835105461112,
+ "y": 350.65543036774886
+ },
+ "rect": {
+ "x": 867.375,
+ "y": 255.765625,
+ "w": 190,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-supply",
+ "text": "供油回路观察点",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 796.3255626463751,
+ "y": 331.73247386030886
+ },
+ "rect": {
+ "x": 739.59375,
+ "y": 358.578125,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 5.008680256369452,
+ 4.738505421190706,
+ 9.75160369286139
+ ]
+ },
+ {
+ "task": "88",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 756.8078606315892,
+ "y": 381.2274852415052
+ },
+ "rect": {
+ "x": 692.796875,
+ "y": 422.1875,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 756.8078606315892,
+ "y": 381.2274852415052
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 773.8619225124698,
+ "y": 368.29855862477785
+ },
+ "rect": {
+ "x": 717.859375,
+ "y": 316.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 969.9238952848533,
+ "y": 398.4330259343134
+ },
+ "rect": {
+ "x": 913.921875,
+ "y": 343.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 770.3524922214795,
+ "y": 371.7601696653171
+ },
+ "rect": {
+ "x": 714.34375,
+ "y": 464.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 770.4099718331349,
+ "y": 378.6167372284355
+ },
+ "rect": {
+ "x": 594.40625,
+ "y": 363.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 762.7474430563004,
+ "y": 369.6635048404548
+ },
+ "rect": {
+ "x": 706.734375,
+ "y": 246.65625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 762.8266402766166,
+ "y": 376.48061926405285
+ },
+ "rect": {
+ "x": 586.8125,
+ "y": 319.46875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 827.2644109356789,
+ "y": 291.1389424179544
+ },
+ "rect": {
+ "x": 840.875,
+ "y": 276.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 740.0400294011409,
+ "y": 299.0842082629612
+ },
+ "rect": {
+ "x": 684.03125,
+ "y": 176.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 740.1625375873911,
+ "y": 299.03314180979044
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 776.3917093432963,
+ "y": 365.4933123818993
+ },
+ "rect": {
+ "x": 840.390625,
+ "y": 392.484375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 779.1703662909639,
+ "y": 366.36702029373055
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.725662886039,
+ "y": 359.70060036154234
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 780.3619442405862,
+ "y": 371.14794997650944
+ },
+ "rect": {
+ "x": 792.90625,
+ "y": 356.140625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 965.9100951129012,
+ "y": 398.2402429347487
+ },
+ "rect": {
+ "x": 979.90625,
+ "y": 383.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 757.5543703304254,
+ "y": 348.6289530809074
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 812.1851382438589,
+ "y": 285.9580063144768
+ },
+ "rect": {
+ "x": 826.171875,
+ "y": 228.953125,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ]
+ },
+ {
+ "task": "88",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 675.7474760016162,
+ "y": 181.0326959302987
+ },
+ "rect": {
+ "x": 611.734375,
+ "y": 124.03125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 675.7474760016162,
+ "y": 181.0326959302987
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.9999999999999,
+ "y": 369.7082086267608
+ },
+ "rect": {
+ "x": 614,
+ "y": 354.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -1034.3999045501253,
+ "y": 134.59951092418123
+ },
+ "rect": {
+ "x": 1259.46875,
+ "y": 369.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 751.2646978525146,
+ "y": 317.9167062774452
+ },
+ "rect": {
+ "x": 695.25,
+ "y": 268.03125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 751.7179479259036,
+ "y": 367.30222256437617
+ },
+ "rect": {
+ "x": 695.703125,
+ "y": 394.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 829.0698200285362,
+ "y": 317.91670975448426
+ },
+ "rect": {
+ "x": 773.0625,
+ "y": 230.90625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 828.6126556785443,
+ "y": 367.3022272076386
+ },
+ "rect": {
+ "x": 842.609375,
+ "y": 352.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1895.6433578175047,
+ "y": 1483.2969089032533
+ },
+ "rect": {
+ "x": 893.234375,
+ "y": 102.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4260.18541199362,
+ "y": 2001.99635231138
+ },
+ "rect": {
+ "x": 588.203125,
+ "y": 121.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4257.840230590865,
+ "y": 2001.0762573459908
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 790.4359631501977,
+ "y": 374.32262517799626
+ },
+ "rect": {
+ "x": 734.421875,
+ "y": 431.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 765.5337691628798,
+ "y": 380.85781732398254
+ },
+ "rect": {
+ "x": 709.53125,
+ "y": 473.84375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 899.6962807263116,
+ "y": 316.99841285922633
+ },
+ "rect": {
+ "x": 929.40625,
+ "y": 301.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 682.1947118860452,
+ "y": 331.6312158661893
+ },
+ "rect": {
+ "x": 545.765625,
+ "y": 316.625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -1003.7939486496913,
+ "y": 88.98998347740857
+ },
+ "rect": {
+ "x": 1247.734375,
+ "y": 410.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 967.7797779961315,
+ "y": 251.2234457603296
+ },
+ "rect": {
+ "x": 896.765625,
+ "y": 164.21875,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1678.9129069798291,
+ "y": 858.0283789955414
+ },
+ "rect": {
+ "x": 807.890625,
+ "y": 151.59375,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ -0.13192710688830653,
+ 1.9741556587866769,
+ -0.675676123113613
+ ]
+ },
+ {
+ "task": "88",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 675.7474760016162,
+ "y": 181.0326959302987
+ },
+ "rect": {
+ "x": 611.734375,
+ "y": 124.03125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 675.7474760016162,
+ "y": 181.0326959302987
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.9999999999999,
+ "y": 369.7082086267608
+ },
+ "rect": {
+ "x": 614,
+ "y": 354.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -1034.3999045501253,
+ "y": 134.59951092418123
+ },
+ "rect": {
+ "x": 1259.46875,
+ "y": 369.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 751.2646978525146,
+ "y": 317.9167062774452
+ },
+ "rect": {
+ "x": 695.25,
+ "y": 268.03125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 751.7179479259036,
+ "y": 367.30222256437617
+ },
+ "rect": {
+ "x": 695.703125,
+ "y": 394.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 829.0698200285362,
+ "y": 317.91670975448426
+ },
+ "rect": {
+ "x": 773.0625,
+ "y": 230.90625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 828.6126556785443,
+ "y": 367.3022272076386
+ },
+ "rect": {
+ "x": 842.609375,
+ "y": 352.296875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1895.6433578175047,
+ "y": 1483.2969089032533
+ },
+ "rect": {
+ "x": 893.234375,
+ "y": 102.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4260.18541199362,
+ "y": 2001.99635231138
+ },
+ "rect": {
+ "x": 588.203125,
+ "y": 121.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 4257.840230590865,
+ "y": 2001.0762573459908
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 790.4359631501977,
+ "y": 374.32262517799626
+ },
+ "rect": {
+ "x": 734.421875,
+ "y": 431.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 765.5337691628798,
+ "y": 380.85781732398254
+ },
+ "rect": {
+ "x": 709.53125,
+ "y": 473.84375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 899.6962807263116,
+ "y": 316.99841285922633
+ },
+ "rect": {
+ "x": 929.40625,
+ "y": 301.984375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 682.1947118860452,
+ "y": 331.6312158661893
+ },
+ "rect": {
+ "x": 545.765625,
+ "y": 316.625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": -1003.7939486496913,
+ "y": 88.98998347740857
+ },
+ "rect": {
+ "x": 1247.734375,
+ "y": 410.796875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 967.7797779961315,
+ "y": 251.2234457603296
+ },
+ "rect": {
+ "x": 896.765625,
+ "y": 164.21875,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 1678.9129069798291,
+ "y": 858.0283789955414
+ },
+ "rect": {
+ "x": 807.890625,
+ "y": 151.59375,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ -0.13192710688830653,
+ 1.9741556587866769,
+ -0.675676123113613
+ ]
+ },
+ {
+ "task": "88",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 756.8078606315893,
+ "y": 381.2274852415052
+ },
+ "rect": {
+ "x": 692.796875,
+ "y": 422.1875,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 756.8078606315893,
+ "y": 381.2274852415052
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 773.8619225124698,
+ "y": 368.29855862477785
+ },
+ "rect": {
+ "x": 717.859375,
+ "y": 316.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 969.9238952848532,
+ "y": 398.4330259343134
+ },
+ "rect": {
+ "x": 913.921875,
+ "y": 343.5,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 770.3524922214795,
+ "y": 371.7601696653171
+ },
+ "rect": {
+ "x": 714.34375,
+ "y": 464.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 770.4099718331349,
+ "y": 378.6167372284355
+ },
+ "rect": {
+ "x": 594.40625,
+ "y": 363.609375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 762.7474430563005,
+ "y": 369.6635048404548
+ },
+ "rect": {
+ "x": 706.734375,
+ "y": 246.65625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 762.8266402766166,
+ "y": 376.48061926405285
+ },
+ "rect": {
+ "x": 586.8125,
+ "y": 319.46875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 827.264410935679,
+ "y": 291.1389424179544
+ },
+ "rect": {
+ "x": 840.875,
+ "y": 276.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 740.0400294011409,
+ "y": 299.0842082629612
+ },
+ "rect": {
+ "x": 684.03125,
+ "y": 176.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 740.1625375873911,
+ "y": 299.0331418097905
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 776.3917093432963,
+ "y": 365.4933123818993
+ },
+ "rect": {
+ "x": 840.390625,
+ "y": 392.484375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 779.1703662909639,
+ "y": 366.36702029373055
+ },
+ "rect": {
+ "x": 841.390625,
+ "y": 395.921875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.725662886039,
+ "y": 359.70060036154234
+ },
+ "rect": {
+ "x": 775.453125,
+ "y": 273.21875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 780.3619442405862,
+ "y": 371.14794997650944
+ },
+ "rect": {
+ "x": 792.90625,
+ "y": 356.140625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 965.9100951129012,
+ "y": 398.2402429347487
+ },
+ "rect": {
+ "x": 979.90625,
+ "y": 383.234375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 757.5543703304254,
+ "y": 348.6289530809074
+ },
+ "rect": {
+ "x": 751.4375,
+ "y": 333.578125,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 812.1851382438589,
+ "y": 285.9580063144768
+ },
+ "rect": {
+ "x": 826.171875,
+ "y": 228.953125,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ]
+ },
+ {
+ "task": "88",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-engine",
+ "text": "聚焦 · 架桥车发动机",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 823.830754718761,
+ "y": 394.62262421470183
+ },
+ "rect": {
+ "x": 759.4375,
+ "y": 435.953125,
+ "w": 128,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-engine",
+ "text": "架桥车发动机",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 823.830754718761,
+ "y": 394.62262421470183
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-old-pump",
+ "text": "旧前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 837.5067326388222,
+ "y": 381.01855659228397
+ },
+ "rect": {
+ "x": 781.125,
+ "y": 328.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-new-pump",
+ "text": "新前泵",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 1046.5450011176854,
+ "y": 413.74645539583287
+ },
+ "rect": {
+ "x": 990.09375,
+ "y": 439.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-1",
+ "text": "前泵安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 834.8647685527169,
+ "y": 384.65353869546146
+ },
+ "rect": {
+ "x": 778.484375,
+ "y": 477.578125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-2",
+ "text": "前泵安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 834.7335290782689,
+ "y": 391.4723890215122
+ },
+ "rect": {
+ "x": 658.359375,
+ "y": 376.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-3",
+ "text": "前泵安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 826.8299376836427,
+ "y": 382.4709780624545
+ },
+ "rect": {
+ "x": 890.453125,
+ "y": 367.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-pump-bolt-4",
+ "text": "前泵安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 826.7229183114355,
+ "y": 389.250875395237
+ },
+ "rect": {
+ "x": 650.34375,
+ "y": 332.171875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-tank-valve",
+ "text": "油箱一号球阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 881.2658906806944,
+ "y": 301.9316325247399
+ },
+ "rect": {
+ "x": 824.9375,
+ "y": 244.859375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-paper",
+ "text": "初裁牛皮纸",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.0211081088389,
+ "y": 308.87352526102086
+ },
+ "rect": {
+ "x": 662.734375,
+ "y": 293.8125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-gasket",
+ "text": "修裁后的牛皮纸垫",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 789.1506704038006,
+ "y": 308.8238686360559
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 118,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet",
+ "text": "前泵进油管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 839.8561245162444,
+ "y": 378.1772567664645
+ },
+ "rect": {
+ "x": 903.484375,
+ "y": 321.09375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet",
+ "text": "前泵出油管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 842.7108817184068,
+ "y": 379.066174010849
+ },
+ "rect": {
+ "x": 712.1875,
+ "y": 291.15625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-inlet-bag",
+ "text": "进油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 826.0441395718507,
+ "y": 372.35537760339673
+ },
+ "rect": {
+ "x": 775.453125,
+ "y": 273.21875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-outlet-bag",
+ "text": "出油管封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 844.9806921835528,
+ "y": 384.06259833299805
+ },
+ "rect": {
+ "x": 849.703125,
+ "y": 367.484375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-fill-cap",
+ "text": "新泵注油口盖",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 1043.2314257673336,
+ "y": 413.6936187373739
+ },
+ "rect": {
+ "x": 1056.78125,
+ "y": 398.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-oil-can",
+ "text": "液压油加注壶(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 820.7125083529312,
+ "y": 361.251685173011
+ },
+ "rect": {
+ "x": 751.4375,
+ "y": 333.578125,
+ "w": 142,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-test-control",
+ "text": "试验操作手柄(操作示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 868.0046525897856,
+ "y": 297.1140472802331
+ },
+ "rect": {
+ "x": 784.671875,
+ "y": 174.046875,
+ "w": 166,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.780050573974555,
+ 3.2365363848452247,
+ 7.195391061259029
+ ]
+ },
+ {
+ "task": "89",
+ "view": "overview",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 767.5152046347816,
+ "y": 281.1182818359314
+ },
+ "rect": {
+ "x": 709.5,
+ "y": 233.84375,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 767.5152046347816,
+ "y": 281.1182818359314
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 767.2109594216562,
+ "y": 284.861574191996
+ },
+ "rect": {
+ "x": 690.203125,
+ "y": 311.859375,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 769.6329978612674,
+ "y": 280.8804647328107
+ },
+ "rect": {
+ "x": 713.625,
+ "y": 193.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 767.2706394627982,
+ "y": 281.5976057648297
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 374.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 769.3768893411348,
+ "y": 280.7677168284264
+ },
+ "rect": {
+ "x": 713.375,
+ "y": 157.765625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 771.732865664312,
+ "y": 280.05352723052334
+ },
+ "rect": {
+ "x": 835.71875,
+ "y": 265.046875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.593053698376,
+ "y": 283.79993949904986
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 756.0158961913901,
+ "y": 273.89051174460974
+ },
+ "rect": {
+ "x": 580.015625,
+ "y": 258.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 763.6366827907711,
+ "y": 277.39375010998197
+ },
+ "rect": {
+ "x": 587.625,
+ "y": 220.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 761.8857230737466,
+ "y": 278.0948492036096
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 757.8301438307981,
+ "y": 275.3638959733211
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 901.2485131214314,
+ "y": 250.70403075510666
+ },
+ "rect": {
+ "x": 845.234375,
+ "y": 205.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 900.9870510679759,
+ "y": 253.92406427455458
+ },
+ "rect": {
+ "x": 914.984375,
+ "y": 310.921875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 900.6592476124569,
+ "y": 250.33265270855864
+ },
+ "rect": {
+ "x": 844.65625,
+ "y": 163.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 903.3943394677151,
+ "y": 250.75590873628988
+ },
+ "rect": {
+ "x": 967.390625,
+ "y": 235.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 904.7262737402997,
+ "y": 249.676188496117
+ },
+ "rect": {
+ "x": 848.71875,
+ "y": 126.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 901.9734302907266,
+ "y": 249.2641542676382
+ },
+ "rect": {
+ "x": 965.96875,
+ "y": 192.25,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 896.7764611500962,
+ "y": 253.8785479255972
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.7338234871861,
+ "y": 247.83823252196038
+ },
+ "rect": {
+ "x": 955.71875,
+ "y": 274.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 898.5129107813775,
+ "y": 246.6879779582802
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 896.8538749412656,
+ "y": 248.01337765890727
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 892.3148767034767,
+ "y": 245.86661846128274
+ },
+ "rect": {
+ "x": 716.3125,
+ "y": 272.859375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ]
+ },
+ {
+ "task": "89",
+ "view": "focus",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 795.5232705874024,
+ "y": 318.20147355137925
+ },
+ "rect": {
+ "x": 737.515625,
+ "y": 261.1875,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 795.5232705874024,
+ "y": 318.20147355137925
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.9999999999992,
+ "y": 369.70820862676
+ },
+ "rect": {
+ "x": 713,
+ "y": 426.703125,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 855.5034022812836,
+ "y": 324.9031901220384
+ },
+ "rect": {
+ "x": 904.390625,
+ "y": 309.890625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 763.312438255493,
+ "y": 363.13480633435466
+ },
+ "rect": {
+ "x": 603.078125,
+ "y": 348.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 797.4219889845889,
+ "y": 400.08974961777
+ },
+ "rect": {
+ "x": 637.109375,
+ "y": 385.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 890.1304103228355,
+ "y": 361.3772867894323
+ },
+ "rect": {
+ "x": 939.734375,
+ "y": 346.375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 734.8931069813236,
+ "y": 218.59829870641212
+ },
+ "rect": {
+ "x": 669.890625,
+ "y": 161.59375,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 648.9831465150645,
+ "y": -119.91526146675258
+ },
+ "rect": {
+ "x": 580.015625,
+ "y": 258.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 586.2938333981592,
+ "y": 389.5687194020142
+ },
+ "rect": {
+ "x": 530.28125,
+ "y": 441.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 558.8406268368035,
+ "y": 358.3672708589295
+ },
+ "rect": {
+ "x": 502.828125,
+ "y": 276.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.5803676883957,
+ "y": 0.8115823799642644
+ },
+ "rect": {
+ "x": 576.390625,
+ "y": 96.453125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5730.908558611546,
+ "y": -1058.4456060543475
+ },
+ "rect": {
+ "x": 845.234375,
+ "y": 205.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5682.681916311526,
+ "y": -992.564568052849
+ },
+ "rect": {
+ "x": 914.984375,
+ "y": 310.921875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5728.211880762969,
+ "y": -1099.2135871389228
+ },
+ "rect": {
+ "x": 844.65625,
+ "y": 163.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5794.5536923204645,
+ "y": -1038.4987936914754
+ },
+ "rect": {
+ "x": 967.390625,
+ "y": 235.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5857.878764074135,
+ "y": -1075.6897716599208
+ },
+ "rect": {
+ "x": 848.71875,
+ "y": 126.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5790.363751357189,
+ "y": -1135.7812832262161
+ },
+ "rect": {
+ "x": 965.96875,
+ "y": 192.25,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5536.983516792073,
+ "y": -972.9841909144479
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5426.913615234265,
+ "y": -1059.9096201286438
+ },
+ "rect": {
+ "x": 955.71875,
+ "y": 274.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5675.359116305497,
+ "y": -1103.7788653053046
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5596.501312812159,
+ "y": -1057.5310858740343
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5556.260763905062,
+ "y": -1323.8291702251815
+ },
+ "rect": {
+ "x": 716.3125,
+ "y": 272.859375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 1.1355947792282914,
+ 3.5342737911906745,
+ 2.2495395624859045
+ ]
+ },
+ {
+ "task": "89",
+ "view": "hide-others",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": false,
+ "active": true,
+ "anchor": {
+ "x": 795.5232705874024,
+ "y": 318.20147355137925
+ },
+ "rect": {
+ "x": 737.515625,
+ "y": 261.1875,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 795.5232705874024,
+ "y": 318.20147355137925
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 789.9999999999992,
+ "y": 369.70820862676
+ },
+ "rect": {
+ "x": 713,
+ "y": 312.703125,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 855.5034022812836,
+ "y": 324.9031901220384
+ },
+ "rect": {
+ "x": 904.390625,
+ "y": 309.890625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 763.312438255493,
+ "y": 363.13480633435466
+ },
+ "rect": {
+ "x": 603.078125,
+ "y": 348.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 797.4219889845889,
+ "y": 400.08974961777
+ },
+ "rect": {
+ "x": 637.109375,
+ "y": 385.078125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 890.1304103228355,
+ "y": 361.3772867894323
+ },
+ "rect": {
+ "x": 939.734375,
+ "y": 346.375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 734.8931069813236,
+ "y": 218.59829870641212
+ },
+ "rect": {
+ "x": 669.890625,
+ "y": 161.59375,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 648.9831465150645,
+ "y": -119.91526146675258
+ },
+ "rect": {
+ "x": 580.015625,
+ "y": 258.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 586.2938333981592,
+ "y": 389.5687194020142
+ },
+ "rect": {
+ "x": 530.28125,
+ "y": 441.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 558.8406268368035,
+ "y": 358.3672708589295
+ },
+ "rect": {
+ "x": 502.828125,
+ "y": 276.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 640.5803676883957,
+ "y": 0.8115823799642644
+ },
+ "rect": {
+ "x": 576.390625,
+ "y": 96.453125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5730.908558611546,
+ "y": -1058.4456060543475
+ },
+ "rect": {
+ "x": 845.234375,
+ "y": 205.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5682.681916311526,
+ "y": -992.564568052849
+ },
+ "rect": {
+ "x": 914.984375,
+ "y": 310.921875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5728.211880762969,
+ "y": -1099.2135871389228
+ },
+ "rect": {
+ "x": 844.65625,
+ "y": 163.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5794.5536923204645,
+ "y": -1038.4987936914754
+ },
+ "rect": {
+ "x": 967.390625,
+ "y": 235.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5857.878764074135,
+ "y": -1075.6897716599208
+ },
+ "rect": {
+ "x": 848.71875,
+ "y": 126.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5790.363751357189,
+ "y": -1135.7812832262161
+ },
+ "rect": {
+ "x": 965.96875,
+ "y": 192.25,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5536.983516792073,
+ "y": -972.9841909144479
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5426.913615234265,
+ "y": -1059.9096201286438
+ },
+ "rect": {
+ "x": 955.71875,
+ "y": 274.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5675.359116305497,
+ "y": -1103.7788653053046
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5596.501312812159,
+ "y": -1057.5310858740343
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 5556.260763905062,
+ "y": -1323.8291702251815
+ },
+ "rect": {
+ "x": 716.3125,
+ "y": 272.859375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 1.1355947792282914,
+ 3.5342737911906745,
+ 2.2495395624859045
+ ]
+ },
+ {
+ "task": "89",
+ "view": "reset",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 767.5152046347816,
+ "y": 281.11828183593144
+ },
+ "rect": {
+ "x": 709.5,
+ "y": 233.84375,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 767.5152046347816,
+ "y": 281.11828183593144
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 767.2109594216562,
+ "y": 284.86157419199606
+ },
+ "rect": {
+ "x": 690.203125,
+ "y": 311.859375,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 769.6329978612674,
+ "y": 280.88046473281076
+ },
+ "rect": {
+ "x": 713.625,
+ "y": 193.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 767.2706394627982,
+ "y": 281.5976057648297
+ },
+ "rect": {
+ "x": 711.265625,
+ "y": 374.59375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 769.3768893411348,
+ "y": 280.76771682842644
+ },
+ "rect": {
+ "x": 713.375,
+ "y": 157.765625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 771.732865664312,
+ "y": 280.0535272305234
+ },
+ "rect": {
+ "x": 835.71875,
+ "y": 265.046875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 762.593053698376,
+ "y": 283.79993949904986
+ },
+ "rect": {
+ "x": 696.265625,
+ "y": 387.890625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 756.0158961913901,
+ "y": 273.8905117446098
+ },
+ "rect": {
+ "x": 580.015625,
+ "y": 258.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 763.6366827907711,
+ "y": 277.39375010998197
+ },
+ "rect": {
+ "x": 587.625,
+ "y": 220.390625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 761.8857230737466,
+ "y": 278.0948492036096
+ },
+ "rect": {
+ "x": 502.828125,
+ "y": 276.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 757.8301438307981,
+ "y": 275.3638959733211
+ },
+ "rect": {
+ "x": 577.875,
+ "y": 238.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 901.2485131214314,
+ "y": 250.70403075510666
+ },
+ "rect": {
+ "x": 845.234375,
+ "y": 205.3125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 900.9870510679759,
+ "y": 253.92406427455458
+ },
+ "rect": {
+ "x": 914.984375,
+ "y": 310.921875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 900.6592476124569,
+ "y": 250.33265270855864
+ },
+ "rect": {
+ "x": 844.65625,
+ "y": 163.328125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 903.3943394677151,
+ "y": 250.75590873628994
+ },
+ "rect": {
+ "x": 967.390625,
+ "y": 235.75,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 904.7262737402997,
+ "y": 249.676188496117
+ },
+ "rect": {
+ "x": 848.71875,
+ "y": 126.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 901.9734302907266,
+ "y": 249.26415426763822
+ },
+ "rect": {
+ "x": 965.96875,
+ "y": 192.25,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 896.7764611500962,
+ "y": 253.8785479255972
+ },
+ "rect": {
+ "x": 876.25,
+ "y": 345.734375,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 891.7338234871861,
+ "y": 247.8382325219604
+ },
+ "rect": {
+ "x": 955.71875,
+ "y": 274.828125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 898.5129107813775,
+ "y": 246.6879779582802
+ },
+ "rect": {
+ "x": 981.765625,
+ "y": 150.359375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 896.8538749412656,
+ "y": 248.01337765890727
+ },
+ "rect": {
+ "x": 976.359375,
+ "y": 238.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 892.3148767034767,
+ "y": 245.86661846128274
+ },
+ "rect": {
+ "x": 716.3125,
+ "y": 272.859375,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 4.230899508763751,
+ 3.1343251759404582,
+ 6.8886078166304445
+ ]
+ },
+ {
+ "task": "89",
+ "view": "moved",
+ "labels": [
+ {
+ "id": "bridge-small-valve",
+ "text": "聚焦 · 小腔平衡阀",
+ "visible": true,
+ "active": true,
+ "anchor": {
+ "x": 833.6699916743023,
+ "y": 294.3399216681962
+ },
+ "rect": {
+ "x": 775.28125,
+ "y": 246.890625,
+ "w": 116,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-valve",
+ "text": "小腔平衡阀",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 833.6699916743023,
+ "y": 294.3399216681962
+ },
+ "rect": {
+ "x": 0,
+ "y": 0,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-seat",
+ "text": "小腔阀座结合面(示意)",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 833.2428657659931,
+ "y": 298.05865519236426
+ },
+ "rect": {
+ "x": 755.84375,
+ "y": 324.96875,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-1",
+ "text": "小腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 835.7466490254125,
+ "y": 294.0938831837857
+ },
+ "rect": {
+ "x": 779.359375,
+ "y": 207.015625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-2",
+ "text": "小腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 833.5963514267141,
+ "y": 294.8534065080406
+ },
+ "rect": {
+ "x": 777.203125,
+ "y": 387.765625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-3",
+ "text": "小腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 835.8598944792461,
+ "y": 294.05495405250815
+ },
+ "rect": {
+ "x": 779.46875,
+ "y": 170.96875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bolt-4",
+ "text": "小腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 838.0025068604783,
+ "y": 293.29812171747545
+ },
+ "rect": {
+ "x": 901.609375,
+ "y": 278.21875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-pipe",
+ "text": "小腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 828.2311664854047,
+ "y": 296.9183172518377
+ },
+ "rect": {
+ "x": 696.265625,
+ "y": 387.890625,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-bag",
+ "text": "小腔管口封口袋",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 821.3783619719684,
+ "y": 286.9537989196296
+ },
+ "rect": {
+ "x": 644.984375,
+ "y": 271.875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-1",
+ "text": "小腔油堵 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 830.6692394572896,
+ "y": 290.79082023812146
+ },
+ "rect": {
+ "x": 654.265625,
+ "y": 233.703125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-plug-2",
+ "text": "小腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 828.7855061022574,
+ "y": 291.4653833046599
+ },
+ "rect": {
+ "x": 502.828125,
+ "y": 276.734375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-small-cloth",
+ "text": "小腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 823.5294791588184,
+ "y": 288.4945096114142
+ },
+ "rect": {
+ "x": 577.875,
+ "y": 238.125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-valve",
+ "text": "大腔平衡阀",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 958.2241083274346,
+ "y": 262.0911250645882
+ },
+ "rect": {
+ "x": 901.890625,
+ "y": 216.5625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-seat",
+ "text": "大腔阀座结合面(示意)",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 957.9006018560651,
+ "y": 265.2987584391037
+ },
+ "rect": {
+ "x": 933.390625,
+ "y": 170.59375,
+ "w": 154,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-1",
+ "text": "大腔安装螺栓 1",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 957.506284284359,
+ "y": 261.6940534180558
+ },
+ "rect": {
+ "x": 901.171875,
+ "y": 174.625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-2",
+ "text": "大腔安装螺栓 2",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 960.3659867333382,
+ "y": 262.1422140137434
+ },
+ "rect": {
+ "x": 974.03125,
+ "y": 319.0625,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-3",
+ "text": "大腔安装螺栓 3",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 961.5902558231589,
+ "y": 261.0409759011279
+ },
+ "rect": {
+ "x": 905.25,
+ "y": 137.96875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bolt-4",
+ "text": "大腔安装螺栓 4",
+ "visible": true,
+ "active": false,
+ "anchor": {
+ "x": 958.7151961568117,
+ "y": 260.60451564284597
+ },
+ "rect": {
+ "x": 782.375,
+ "y": 287.53125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-pipe",
+ "text": "大腔控制油口管接头",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 953.9798131247724,
+ "y": 265.3111615103952
+ },
+ "rect": {
+ "x": 876.25,
+ "y": 345.734375,
+ "w": 130,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-bag",
+ "text": "大腔管口封口袋",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 949.4821811061908,
+ "y": 259.37977047426574
+ },
+ "rect": {
+ "x": 762.625,
+ "y": 284.203125,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-1",
+ "text": "大腔油堵 1",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 955.889131400069,
+ "y": 258.15514092418493
+ },
+ "rect": {
+ "x": 981.765625,
+ "y": 150.359375,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-plug-2",
+ "text": "大腔油堵 2",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 954.3641262113431,
+ "y": 259.5073278775327
+ },
+ "rect": {
+ "x": 976.359375,
+ "y": 238.671875,
+ "w": 112,
+ "h": 30
+ }
+ },
+ {
+ "id": "bridge-large-cloth",
+ "text": "大腔清洗擦拭布",
+ "visible": false,
+ "active": false,
+ "anchor": {
+ "x": 948.9811923252504,
+ "y": 257.1919004144232
+ },
+ "rect": {
+ "x": 722.3125,
+ "y": 274.0625,
+ "w": 112,
+ "h": 30
+ }
+ }
+ ],
+ "intro": false,
+ "pending": false,
+ "completed": [],
+ "camera": [
+ 3.780050573974555,
+ 3.236536384845225,
+ 7.195391061259029
+ ]
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-label-placement-20260925/task-86-focus.png b/reports/bridge-label-placement-20260925/task-86-focus.png
new file mode 100644
index 0000000..93810cd
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-86-focus.png differ
diff --git a/reports/bridge-label-placement-20260925/task-86-hide-others.png b/reports/bridge-label-placement-20260925/task-86-hide-others.png
new file mode 100644
index 0000000..47a7e7a
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-86-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925/task-86-moved.png b/reports/bridge-label-placement-20260925/task-86-moved.png
new file mode 100644
index 0000000..eb11722
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-86-moved.png differ
diff --git a/reports/bridge-label-placement-20260925/task-86-overview.png b/reports/bridge-label-placement-20260925/task-86-overview.png
new file mode 100644
index 0000000..47ecf45
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-86-overview.png differ
diff --git a/reports/bridge-label-placement-20260925/task-86-reset.png b/reports/bridge-label-placement-20260925/task-86-reset.png
new file mode 100644
index 0000000..3340989
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-86-reset.png differ
diff --git a/reports/bridge-label-placement-20260925/task-87-focus.png b/reports/bridge-label-placement-20260925/task-87-focus.png
new file mode 100644
index 0000000..36caece
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-87-focus.png differ
diff --git a/reports/bridge-label-placement-20260925/task-87-hide-others.png b/reports/bridge-label-placement-20260925/task-87-hide-others.png
new file mode 100644
index 0000000..53a708e
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-87-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925/task-87-moved.png b/reports/bridge-label-placement-20260925/task-87-moved.png
new file mode 100644
index 0000000..12e2884
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-87-moved.png differ
diff --git a/reports/bridge-label-placement-20260925/task-87-overview.png b/reports/bridge-label-placement-20260925/task-87-overview.png
new file mode 100644
index 0000000..8c881b4
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-87-overview.png differ
diff --git a/reports/bridge-label-placement-20260925/task-87-reset.png b/reports/bridge-label-placement-20260925/task-87-reset.png
new file mode 100644
index 0000000..8e0159c
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-87-reset.png differ
diff --git a/reports/bridge-label-placement-20260925/task-88-focus.png b/reports/bridge-label-placement-20260925/task-88-focus.png
new file mode 100644
index 0000000..5f83443
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-88-focus.png differ
diff --git a/reports/bridge-label-placement-20260925/task-88-hide-others.png b/reports/bridge-label-placement-20260925/task-88-hide-others.png
new file mode 100644
index 0000000..716ace5
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-88-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925/task-88-moved.png b/reports/bridge-label-placement-20260925/task-88-moved.png
new file mode 100644
index 0000000..737caa0
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-88-moved.png differ
diff --git a/reports/bridge-label-placement-20260925/task-88-overview.png b/reports/bridge-label-placement-20260925/task-88-overview.png
new file mode 100644
index 0000000..279ae48
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-88-overview.png differ
diff --git a/reports/bridge-label-placement-20260925/task-88-reset.png b/reports/bridge-label-placement-20260925/task-88-reset.png
new file mode 100644
index 0000000..8e74b52
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-88-reset.png differ
diff --git a/reports/bridge-label-placement-20260925/task-89-focus.png b/reports/bridge-label-placement-20260925/task-89-focus.png
new file mode 100644
index 0000000..b592e05
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-89-focus.png differ
diff --git a/reports/bridge-label-placement-20260925/task-89-hide-others.png b/reports/bridge-label-placement-20260925/task-89-hide-others.png
new file mode 100644
index 0000000..a96c912
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-89-hide-others.png differ
diff --git a/reports/bridge-label-placement-20260925/task-89-moved.png b/reports/bridge-label-placement-20260925/task-89-moved.png
new file mode 100644
index 0000000..25a79b5
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-89-moved.png differ
diff --git a/reports/bridge-label-placement-20260925/task-89-overview.png b/reports/bridge-label-placement-20260925/task-89-overview.png
new file mode 100644
index 0000000..3dc7e94
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-89-overview.png differ
diff --git a/reports/bridge-label-placement-20260925/task-89-reset.png b/reports/bridge-label-placement-20260925/task-89-reset.png
new file mode 100644
index 0000000..6c0c3cb
Binary files /dev/null and b/reports/bridge-label-placement-20260925/task-89-reset.png differ
diff --git a/reports/bridge-teacher-bubble-20260925/dark-1920.png b/reports/bridge-teacher-bubble-20260925/dark-1920.png
new file mode 100644
index 0000000..3516794
Binary files /dev/null and b/reports/bridge-teacher-bubble-20260925/dark-1920.png differ
diff --git a/reports/bridge-teacher-bubble-20260925/light-1366.png b/reports/bridge-teacher-bubble-20260925/light-1366.png
new file mode 100644
index 0000000..84250c1
Binary files /dev/null and b/reports/bridge-teacher-bubble-20260925/light-1366.png differ
diff --git a/reports/bridge-teacher-bubble-20260925/light-1920.png b/reports/bridge-teacher-bubble-20260925/light-1920.png
new file mode 100644
index 0000000..d2aaf04
Binary files /dev/null and b/reports/bridge-teacher-bubble-20260925/light-1920.png differ
diff --git a/reports/bridge-teacher-bubble-20260925/result.json b/reports/bridge-teacher-bubble-20260925/result.json
new file mode 100644
index 0000000..9232d32
--- /dev/null
+++ b/reports/bridge-teacher-bubble-20260925/result.json
@@ -0,0 +1,36 @@
+{
+ "pass": true,
+ "results": [
+ {
+ "theme": "light",
+ "baseUrl": "http://127.0.0.1:6180",
+ "width": 1920,
+ "height": 945,
+ "background": "rgb(255, 255, 255)",
+ "pointer": "rgb(255, 255, 255)",
+ "title": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。"
+ },
+ {
+ "theme": "dark",
+ "baseUrl": "http://127.0.0.1:6180",
+ "width": 1920,
+ "height": 945,
+ "background": "rgb(14, 36, 32)",
+ "pointer": "rgb(14, 36, 32)",
+ "title": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。"
+ },
+ {
+ "theme": "light",
+ "baseUrl": "http://192.168.31.168:6180",
+ "width": 1366,
+ "height": 768,
+ "background": "rgb(255, 255, 255)",
+ "pointer": "rgb(255, 255, 255)",
+ "title": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。",
+ "text": "第1步,停机并初裁牛皮纸。架桥车熄火;按液压泵与取力器结合面形状初步裁剪牛皮纸。"
+ }
+ ],
+ "errors": []
+}
\ No newline at end of file
diff --git a/reports/bridge-workspace-20260925/README.md b/reports/bridge-workspace-20260925/README.md
new file mode 100644
index 0000000..b6d58ae
--- /dev/null
+++ b/reports/bridge-workspace-20260925/README.md
@@ -0,0 +1,29 @@
+# 005~008 虚拟仿真界面验收
+
+对应前端提交:`ca27634`(unreal_tran_web)。
+
+环境:Windows、本地 Gateway 6100、Vite 6180;使用 root 教员预览,未创建学员任务或提交训练成绩。
+
+## 最终结果
+
+- [背景与讲解实时 3D](../bridge-introduction-3d-20260925/index.html):四个脚本共 11 页,慢速旋转、暂停/恢复、手动播放数字人、进入操作后还原视角。
+- [小屏 3D 检查](../bridge-introduction-3d-20260925-laptop/result.json):局域网 1366×768。
+- [全屏与缩放](../bridge-introduction-3d-20260925-resize/result.json)、[小屏面板开关](../bridge-introduction-3d-20260925-laptop-layout/result.json)。
+- [部件标签桌面检查](../bridge-label-placement-20260925/index.html):四脚本、20 个场景状态,包含标签、聚焦、隐藏其他、复位和移动视角。
+- [部件标签小屏检查](../bridge-label-placement-20260925-laptop/index.html):四脚本、20 个场景状态。
+- [标签稳定性检查](../bridge-label-placement-20260925-stable/index.html):006 静止视角不闪烁、不反复换位。
+- [数字教员气泡与完整讲解 title](../bridge-teacher-bubble-20260925/result.json):明暗主题、桌面与小屏。
+
+以上结果均通过。各目录中的 `result.json` 为最终检查结果。
+
+## 前序对照
+
+[进入页面与复位视角](../bridge-entry-view-20260925/index.html) 和 `bridge-entry-view-20260925-before` 为本轮改动前后对照;`-dual` 为双车视角调整过程记录,最新双车效果见 3D 和标签检查。
+
+部分目录保留了调试期间的 `failure.png`,供追溯已修复问题,不代表最终检查失败。
+
+## 提交前验证
+
+同步远端作业指导书提交后,`pnpm build`(含类型检查与模型编辑器产物校验)通过;讲解、相机、标签、正式训练路由及作业指导书流程回归共 19 项通过。构建有已有的包体积提示,不影响构建成功。
+
+本轮验收工具:`tools/bridge-entry-view-live.mjs`、`tools/bridge-introduction-3d-live.mjs`、`tools/bridge-label-placement-live.mjs`。截图和报告中不含登录令牌或密码。
diff --git a/tools/bridge-entry-view-live.mjs b/tools/bridge-entry-view-live.mjs
new file mode 100644
index 0000000..da774db
--- /dev/null
+++ b/tools/bridge-entry-view-live.mjs
@@ -0,0 +1,45 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+import {chromium,expect} from '@playwright/test';
+import {login} from './role-permissions-live.mjs';
+const baseline=process.env.BASELINE==='1',dir='reports/bridge-entry-view-20260925'+(baseline?'-before':'')+(process.env.REPORT_SUFFIX||'');fs.mkdirSync(dir,{recursive:true});
+const viewport={width:Number(process.env.WIDTH||1920),height:Number(process.env.HEIGHT||945)},baseUrl=process.env.BASE_URL||'http://127.0.0.1:6180';
+const session=await login('root'),checks=[],errors=[];
+const browser=await chromium.launch({channel:'msedge',headless:true,args:['--enable-unsafe-swiftshader','--autoplay-policy=no-user-gesture-required']});
+const page=await browser.newPage({viewport});
+await page.addInitScript(s=>{sessionStorage.setItem('unreal-tran:web:access-token:v1',s.accessToken);sessionStorage.setItem('unreal-tran:web:refresh-token:v1',s.refreshToken);localStorage.setItem('unreal-tran:web:preferences:v1',JSON.stringify({themeMode:'light'}));globalThis.__mediaPlays=[];document.addEventListener('play',ev=>globalThis.__mediaPlays.push({src:ev.target.currentSrc,className:ev.target.className}),true);},session);
+await page.route(/\/src\/features\/virtual-training-legacy\/upstream\/views\/training\.js(?:\?|$)/,async route=>{const response=await route.fetch();await route.fulfill({response,body:await response.text()+`
+globalThis.__entryView=()=>{const e=activeTraining;if(!e?.sceneReady)return null;const r=e.canvas.getBoundingClientRect(),primary=e.viewerPrimaryObject,meshes=[];
+ primary?.traverse(m=>{if(!m.isMesh||m.userData.trainingPickProxy)return;for(let p=m;p;p=p.parent)if(!p.visible)return;const box=m.geometry.boundingBox||(m.geometry.computeBoundingBox(),m.geometry.boundingBox);if(!box)return;for(const x of [box.min.x,box.max.x])for(const y of [box.min.y,box.max.y])for(const z of [box.min.z,box.max.z]){const v=new THREE.Vector3(x,y,z).applyMatrix4(m.matrixWorld).project(e.camera);meshes.push({x:(v.x+1)*r.width/2,y:(1-v.y)*r.height/2});}});
+ const left=Math.min(...meshes.map(p=>p.x)),top=Math.min(...meshes.map(p=>p.y)),right=Math.max(...meshes.map(p=>p.x)),bottom=Math.max(...meshes.map(p=>p.y));
+ return {step:e.session.stepIndex,completed:[...e.session.completed],autoVoice:e.teacherVoiceEnabled,camera:e.camera.position.toArray(),target:e.controls.target.toArray(),zoom:e.camera.zoom,viewport:{x:r.x,y:r.y,w:r.width,h:r.height},area:e.inspection.clearArea(),primary:{x:left,y:top,w:right-left,h:bottom-top},rootBounds:(e.viewerEquipmentRoots||[]).map(o=>({name:o.name,size:new THREE.Box3().setFromObject(o).getSize(new THREE.Vector3()).toArray()})),pending:!!e.viewerCameraTween};};`});});
+page.on('pageerror',error=>errors.push(error.message));
+const snap=()=>page.evaluate(()=>globalThis.__entryView?.());
+const settled=async()=>{await page.waitForTimeout(750);await expect.poll(async()=>(await snap())?.pending,{timeout:15000}).toBe(false);};
+try{
+ for(const id of (process.env.TASK_IDS||'86,87,88,89').split(',')){
+ await page.goto(baseUrl+'/teaching/virtual-training/preview/'+id);
+ await expect.poll(async()=>Boolean(await snap()),{timeout:120000}).toBe(true);await page.waitForTimeout(1600);
+ const overlay=page.locator('.training-introduction'),media=overlay.locator('video');
+ const initial={task:id,view:'entry',snapshot:await snap(),media:await media.evaluate(v=>({paused:v.paused,time:v.currentTime})),badge:await page.locator('.training-preview-badge').evaluate(el=>({max:getComputedStyle(el).maxWidth,width:el.getBoundingClientRect().width,title:el.title}))};
+ checks.push(initial);await page.screenshot({path:`${dir}/task-${id}-entry.png`});
+ if(!baseline){assert.equal(initial.media.paused,true);assert.equal(initial.media.time,0);assert.equal(initial.snapshot.autoVoice,false);assert.equal(initial.badge.max,'300px');assert.ok(initial.badge.width<=300);assert.deepEqual(await page.evaluate(()=>globalThis.__mediaPlays),[]);}
+ await overlay.locator('[data-intro-command="skip"]').click();await settled();await page.waitForTimeout(900);
+ if(!baseline)assert.equal(await page.locator('.training-server-video').evaluate(v=>v.paused),true,'entering operation remains silent');
+ checks.push({task:id,view:'overview',snapshot:await snap()});await page.screenshot({path:`${dir}/task-${id}-overview.png`});
+ await page.locator('[data-role="part-label"]').click();await settled();
+ await page.locator('[data-action="reset-view"]').click();await settled();
+ checks.push({task:id,view:'reset',snapshot:await snap()});await page.screenshot({path:`${dir}/task-${id}-reset.png`});
+ if(!baseline){
+ const current=await snap(),initialView=checks.find(c=>c.task===id&&c.view==='overview').snapshot;
+ assert.ok(Math.abs(current.primary.w-initialView.primary.w)<2,'reset and overview scale match');assert.deepEqual(current.completed,[]);
+ await page.locator('[data-action="teacher-speak"]').click();await expect.poll(()=>page.locator('.training-server-video').evaluate(v=>v.currentTime),{timeout:30000}).toBeGreaterThan(.1);
+ await page.locator('[data-intro-page="0"]').click();await page.waitForTimeout(700);assert.equal(await media.evaluate(v=>v.paused&&v.currentTime===0),true);
+ await overlay.locator('[data-intro-media="toggle"]').click();await expect.poll(()=>media.evaluate(v=>v.currentTime),{timeout:30000}).toBeGreaterThan(.1);
+ await overlay.locator('[data-intro-command="next"]').click();await page.waitForTimeout(700);
+ assert.equal(await page.locator('video').evaluateAll(videos=>videos.every(v=>v.paused)),true,'next page never auto starts');
+ }
+ console.log('PASS entry view',id);
+ }
+ assert.deepEqual(errors,[]);fs.writeFileSync(dir+'/result.json',JSON.stringify({pass:true,baseline,baseUrl,viewport,accountRole:'root',serverMutations:[],checks,errors},null,2));
+}catch(error){await page.screenshot({path:dir+'/failure.png'}).catch(()=>{});fs.writeFileSync(dir+'/result.json',JSON.stringify({pass:false,error:error.stack,checks,errors,snapshot:await snap().catch(()=>null)},null,2));throw error;}finally{await browser.close();}
diff --git a/tools/bridge-introduction-3d-live.mjs b/tools/bridge-introduction-3d-live.mjs
new file mode 100644
index 0000000..97c35a1
--- /dev/null
+++ b/tools/bridge-introduction-3d-live.mjs
@@ -0,0 +1,87 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+import { chromium, expect } from '@playwright/test';
+import { login } from './role-permissions-live.mjs';
+
+const baseUrl=process.env.BASE_URL||'http://127.0.0.1:6180',viewport={width:Number(process.env.WIDTH||1920),height:Number(process.env.HEIGHT||945)};
+const dir='reports/bridge-introduction-3d-20260925'+(process.env.REPORT_SUFFIX||'');fs.mkdirSync(dir,{recursive:true});
+const session=await login('root'),checks=[],errors=[];
+const browser=await chromium.launch({channel:'msedge',headless:true,args:['--enable-unsafe-swiftshader','--autoplay-policy=no-user-gesture-required']});
+const page=await browser.newPage({viewport});
+await page.addInitScript(s=>{
+ sessionStorage.setItem('unreal-tran:web:access-token:v1',s.accessToken);sessionStorage.setItem('unreal-tran:web:refresh-token:v1',s.refreshToken);
+ localStorage.setItem('unreal-tran:web:preferences:v1',JSON.stringify({themeMode:'light'}));
+},session);
+await page.route(/\/src\/features\/virtual-training-legacy\/upstream\/views\/training\.js(?:\?|$)/,async route=>{
+ const response=await route.fetch();await route.fulfill({response,body:await response.text()+`
+ globalThis.__introSceneState=(withBounds=false)=>{
+ const e=activeTraining;if(!e?.sceneReady)return null;
+ const p=e.introductionScene,v=e.viewport.getBoundingClientRect();
+ const rect=selector=>{const node=e.viewport.querySelector(selector);if(!node?.getClientRects().length||getComputedStyle(node).visibility==='hidden')return null;const r=node.getBoundingClientRect();return{x:r.x-v.x,y:r.y-v.y,w:r.width,h:r.height};};
+ const objects=withBounds?(e.viewerEquipmentRoots||[]).map(root=>{
+ let x=Infinity,y=Infinity,right=-Infinity,bottom=-Infinity;const point=new THREE.Vector3();root.updateWorldMatrix(true,true);
+ root.traverse(m=>{if(!m.isMesh||m.userData.trainingPickProxy)return;for(let n=m;n;n=n.parent)if(!n.visible)return;
+ const position=m.geometry.attributes.position;for(let i=0;ierrors.push(error.message));
+const snapshot=(bounds=false)=>page.evaluate(b=>globalThis.__introSceneState?.(b),bounds);
+const settled=async()=>{await page.waitForTimeout(800);await expect.poll(async()=>(await snapshot())?.tween,{timeout:20000}).toBe(false);};
+const overlap=(a,b)=>b&&a.xb.x&&a.yb.y;
+try {
+ for(const id of (process.env.TASK_IDS||'86,87,88,89').split(',')){
+ await page.goto(baseUrl+'/teaching/virtual-training/preview/'+id);
+ await expect.poll(async()=>!!(await snapshot())?.previewCamera,{timeout:120000}).toBe(true);
+ const overlay=page.locator('.training-introduction'),canvas=page.locator('.training-canvas');
+ await expect(canvas).toBeVisible();assert.equal(await canvas.count(),1);assert.equal(await page.locator('.introduction-background').count(),0);
+ const initial=await snapshot();assert.equal(initial.sameRenderer,true);assert.equal(initial.controlsEnabled,false);
+ await page.waitForTimeout(1500);const rotated=await snapshot();assert.ok(rotated.angle-initial.angle>.015&&rotated.angle-initial.angle<.2);
+ assert.deepEqual(rotated.camera,initial.camera);assert.deepEqual(rotated.completed,[]);
+ assert.equal(await overlay.locator('video').evaluate(v=>v.paused&&v.currentTime===0),true);
+ await overlay.locator('[data-intro-scene-rotation]').click();const paused=await snapshot();await page.waitForTimeout(500);
+ assert.equal((await snapshot()).angle,paused.angle);await page.screenshot({path:`${dir}/task-${id}-background.png`});
+ await overlay.locator('[data-intro-scene-rotation]').click();
+ if(process.env.CHECK_LAYOUT==='1'){
+ await page.locator('[data-viewer-action="fullscreen"]').click();await page.waitForTimeout(700);
+ await expect(overlay.locator('canvas')).toBeVisible();await page.screenshot({path:`${dir}/task-${id}-fullscreen.png`});
+ await page.locator('[data-viewer-action="fullscreen"]').click();await page.waitForTimeout(700);
+ await page.setViewportSize({width:1366,height:768});await page.waitForTimeout(700);await expect(overlay.locator('canvas')).toBeVisible();
+ await page.setViewportSize(viewport);await page.waitForTimeout(700);
+ }
+ const count=await page.locator('[data-intro-page]').count();
+ for(let i=1;istart.angle);
+ assert.equal(await overlay.locator('video').evaluate(v=>v.paused),true);
+ }
+ if(count>1)await page.screenshot({path:`${dir}/task-${id}-lecture.png`});
+ await overlay.locator('[data-intro-media="toggle"]').click();await expect.poll(()=>overlay.locator('video').evaluate(v=>v.currentTime),{timeout:30000}).toBeGreaterThan(.1);
+ await overlay.locator('[data-intro-command="skip"]').click();await settled();
+ const operation=await snapshot(true);assert.equal(operation.canvasInPreview,false);assert.equal(operation.controlsEnabled,true);assert.deepEqual(operation.completed,[]);
+ assert.equal(await page.locator('.training-server-video').evaluate(v=>v.paused),true);
+ if(id==='87')for(const object of operation.objects.slice(0,2)){assert.equal(!!overlap(object,operation.tools),false,'vehicle avoids the tools panel');assert.equal(!!overlap(object,operation.teacher),false,'vehicle avoids the teacher');}
+ await page.screenshot({path:`${dir}/task-${id}-operation.png`});
+ if(id==='87'&&process.env.CHECK_LAYOUT==='1')for(let toggle=0;toggle<2;toggle++){
+ await page.locator('[data-viewer-action="tools"]').click();await settled();const layout=await snapshot(true);
+ for(const object of layout.objects.slice(0,2)){assert.equal(!!overlap(object,layout.tools),false,'panel toggle keeps both vehicles clear');assert.equal(!!overlap(object,layout.teacher),false);}
+ }
+ await page.locator('[data-role="part-label"]').click();await settled();const focused=await snapshot();
+ await page.locator('[data-intro-page="0"]').click();await expect(overlay.locator('canvas')).toBeVisible();await page.waitForTimeout(500);
+ assert.deepEqual((await snapshot()).camera,focused.camera,'preview rotation cannot move the operation camera');
+ await overlay.locator('[data-intro-command="skip"]').click();await settled();
+ assert.deepEqual((await snapshot()).camera,focused.camera,'return restores focused operation camera');
+ await page.locator('[data-action="reset-view"]').click();await settled();const reset=await snapshot(true);
+ assert.ok(Math.abs(reset.objects[0].w-operation.objects[0].w)<2,'reset returns to the same overview');
+ await page.screenshot({path:`${dir}/task-${id}-reset.png`});
+ checks.push({task:id,introductionPages:count,rotationRadians:rotated.angle-initial.angle,initial,operation,reset});console.log('PASS 3D introduction',id,count,'pages');
+ }
+ assert.deepEqual(errors,[]);fs.writeFileSync(dir+'/result.json',JSON.stringify({pass:true,baseUrl,viewport,accountRole:'root',checks,errors},null,2));
+}catch(error){await page.screenshot({path:dir+'/failure.png'}).catch(()=>{});fs.writeFileSync(dir+'/result.json',JSON.stringify({pass:false,error:error.stack,snapshot:await snapshot(true).catch(()=>null),checks,errors},null,2));throw error;}finally{await browser.close();}
diff --git a/tools/bridge-label-placement-live.mjs b/tools/bridge-label-placement-live.mjs
new file mode 100644
index 0000000..6e33f83
--- /dev/null
+++ b/tools/bridge-label-placement-live.mjs
@@ -0,0 +1,96 @@
+import fs from 'node:fs';
+import assert from 'node:assert/strict';
+import { chromium, expect } from '@playwright/test';
+import { login } from './role-permissions-live.mjs';
+
+const baseUrl = process.env.BASE_URL || 'http://127.0.0.1:6180';
+const viewport = { width: Number(process.env.WIDTH || 1920), height: Number(process.env.HEIGHT || 945) };
+const dir = 'reports/bridge-label-placement-20260925' + (process.env.REPORT_SUFFIX || '');
+fs.mkdirSync(dir, { recursive: true });
+const session = await login('root'), checks = [], errors = [];
+const browser = await chromium.launch({ channel: 'msedge', headless: true, args: ['--enable-unsafe-swiftshader'] });
+const page = await browser.newPage({ viewport });
+await page.addInitScript(session => {
+ sessionStorage.setItem('unreal-tran:web:access-token:v1', session.accessToken);
+ sessionStorage.setItem('unreal-tran:web:refresh-token:v1', session.refreshToken);
+ localStorage.setItem('unreal-tran:web:preferences:v1', JSON.stringify({ themeMode: 'light' }));
+}, session);
+// Read-only observation of the actual loaded geometry and DOM; never changes training state.
+await page.route(/\/src\/features\/virtual-training-legacy\/upstream\/views\/training\.js(?:\?|$)/, async route => {
+ const response = await route.fetch();
+ await route.fulfill({ response, body: await response.text() + `
+globalThis.__labelPlacement = () => {
+ const e=activeTraining;if(!e?.sceneReady)return null;
+ const canvas=e.canvas.getBoundingClientRect(),active=e.getActiveTargetId();
+ const nodes=[{node:e.partLabel,id:active},...[...e.partLabelLayer.querySelectorAll('[data-label-target]')].map(node=>({node,id:node.dataset.labelTarget}))];
+ const labels=nodes.map(({node,id})=>{
+ const o=e.parts.get(id),box=new THREE.Box3();if(!o)return null;o.updateWorldMatrix(true,true);
+ o.traverse(m=>{if(!m.isMesh||m.userData.trainingPickProxy)return;m.geometry.computeBoundingBox();box.union(m.geometry.boundingBox.clone().applyMatrix4(m.matrixWorld));});
+ const p=e.worldToScreen(box.getCenter(new THREE.Vector3())),r=node.getBoundingClientRect();
+ return{id,text:node.textContent,visible:node.classList.contains('is-visible'),active:node===e.partLabel,anchor:{x:p.localX,y:p.localY},rect:{x:r.x-canvas.x,y:r.y-canvas.y,w:r.width,h:r.height}};
+ }).filter(Boolean);
+ return {labels,intro:e.introductionActive,pending:!!e.viewerCameraTween,completed:[...e.session.completed],camera:e.camera.position.toArray()};
+};` });
+});
+page.on('pageerror', error => errors.push(error.message));
+const snap = () => page.evaluate(() => globalThis.__labelPlacement?.());
+const settled = async () => {
+ await expect.poll(async () => (await snap())?.pending, { timeout: 20000 }).toBe(false);
+ await page.waitForTimeout(400);
+};
+const overlap = (a, b) => a.x < b.x + b.w - 1 && a.x + a.w > b.x + 1 && a.y < b.y + b.h - 1 && a.y + a.h > b.y + 1;
+const check = async (id, view) => {
+ await settled();
+ const state = await snap(), visible = state.labels.filter(l => l.visible);
+ assert.ok(visible.length > 0, `${id}/${view}: labels are visible`);
+ for (const [i, label] of visible.entries()) {
+ const distance = Math.hypot(label.rect.x + label.rect.w / 2 - label.anchor.x, label.rect.y + label.rect.h / 2 - label.anchor.y);
+ assert.ok(distance <= 130, `${id}/${view}/${label.id}: label moved ${distance.toFixed(1)}px from its part`);
+ assert.ok(visible.slice(i + 1).every(other => !overlap(label.rect, other.rect)), `${id}/${view}: labels overlap`);
+ }
+ assert.deepEqual(state.completed, [], 'focusing and viewer tools cannot complete steps');
+ if (view === 'overview') {
+ await page.waitForTimeout(400);
+ const stable = (await snap()).labels.filter(l => l.visible);
+ assert.deepEqual(stable.map(l => l.id), visible.map(l => l.id), 'stationary labels cannot flicker between layouts');
+ stable.forEach((label, i) => {
+ assert.ok(Math.abs(label.rect.x - visible[i].rect.x) < 1 && Math.abs(label.rect.y - visible[i].rect.y) < 1,
+ 'hidden label measurement cannot shift neighbouring labels');
+ });
+ }
+ await page.screenshot({ path: `${dir}/task-${id}-${view}.png` });
+ checks.push({ task: id, view, ...state });
+};
+try {
+ for (const id of (process.env.TASK_IDS || '86,87,88,89').split(',')) {
+ await page.goto(`${baseUrl}/teaching/virtual-training/preview/${id}`);
+ await expect.poll(async () => Boolean(await snap()), { timeout: 120000 }).toBe(true);
+ await page.locator('[data-intro-command="skip"]').click();
+ if (!await page.locator('[data-action="toggle-part-labels"]').isVisible()) await page.locator('[data-viewer-action="tools"]').click();
+ await page.locator('[data-action="toggle-part-labels"]').click();
+ await check(id, 'overview');
+ const candidate = (await snap()).labels.find(l => l.visible && !l.active);
+ if (candidate) await page.locator(`[data-label-target="${candidate.id}"]`).click();
+ else await page.locator('[data-role="part-label"]').click();
+ await check(id, 'focus');
+ await page.locator('[data-action="toggle-hide-others"]').click();
+ await check(id, 'hide-others');
+ await page.locator('[data-action="toggle-hide-others"]').click();
+ await page.locator('[data-action="reset-view"]').click();
+ await check(id, 'reset');
+ const canvas = await page.locator('.training-canvas').boundingBox();
+ await page.mouse.move(canvas.x + canvas.width * .65, canvas.y + canvas.height * .48);
+ await page.mouse.down({ button: 'right' });
+ await page.mouse.move(canvas.x + canvas.width * .65 + 60, canvas.y + canvas.height * .48 + 12, { steps: 12 });
+ await page.mouse.up({ button: 'right' });
+ await check(id, 'moved');
+ console.log('PASS labels', id);
+ }
+ assert.deepEqual(errors, []);
+ fs.writeFileSync(dir + '/result.json', JSON.stringify({ pass: true, baseUrl, viewport, accountRole: 'root', serverMutations: [], checks, errors }, null, 2));
+ fs.writeFileSync(dir + '/index.html', `部件标签位置检查部件标签位置检查:通过
${baseUrl} · ${viewport.width} × ${viewport.height} · 教员预览(root)· 未创建任务或提交训练成绩。
标签中心距部件投影不超过128像素,互不重叠;检查聚焦、隐藏其他、复位和移动视角。
检查数据${checks.map(c => `任务 ${c.task} · ${c.view}
`).join('')}`);
+} catch (error) {
+ await page.screenshot({ path: dir + '/failure.png' }).catch(() => {});
+ fs.writeFileSync(dir + '/result.json', JSON.stringify({ pass: false, error: error.stack, checks, errors, state: await snap().catch(() => null) }, null, 2));
+ throw error;
+} finally { await browser.close(); }