268 lines
8.8 KiB
JSON
268 lines
8.8 KiB
JSON
{
|
||
"generatedAt": "2026-06-22T22:09:41.825Z",
|
||
"targetUrl": "http://127.0.0.1:45757/web-rtcp-5axis-sim-plan/app/index.html",
|
||
"caseName": "08-meter-scene-desktop-mobile",
|
||
"summary": "浏览器米尺度 Three.js 证据:desktop/mobile canvas 非空、路径 bounds 为米、预览稳定居中",
|
||
"status": "PASS",
|
||
"samples": [
|
||
{
|
||
"viewport": {
|
||
"name": "desktop",
|
||
"width": 1600,
|
||
"height": 1200,
|
||
"deviceScaleFactor": 1
|
||
},
|
||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/meter-scene-evidence/08-meter-scene-desktop.png",
|
||
"pixelStats": {
|
||
"width": 803,
|
||
"height": 874,
|
||
"averageLuminance": 65.18,
|
||
"nonBlackRatio": 0.8173
|
||
},
|
||
"dataset": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1498",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||
"threeTcpPose": "{\"x\":36.474,\"y\":-22.486,\"z\":-13.749,\"a\":-71.841,\"c\":-35.93}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "186",
|
||
"threeFeedPathPoints": "1436",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"status": "PASS",
|
||
"checks": [
|
||
{
|
||
"name": "canvas ready",
|
||
"pass": true,
|
||
"detail": "threeReady=true"
|
||
},
|
||
{
|
||
"name": "WebGL renderer",
|
||
"pass": true,
|
||
"detail": "renderer=webgl"
|
||
},
|
||
{
|
||
"name": "机床参考模型",
|
||
"pass": true,
|
||
"detail": "scope=machine-reference-and-toolpath, model=webgl-five-axis-reference"
|
||
},
|
||
{
|
||
"name": "TCP 球标记",
|
||
"pass": true,
|
||
"detail": "tcp=sphere, marker=true"
|
||
},
|
||
{
|
||
"name": "刀轴线",
|
||
"pass": true,
|
||
"detail": "toolAxisMarker=line"
|
||
},
|
||
{
|
||
"name": "场景对象数量",
|
||
"pass": true,
|
||
"detail": "sceneObjects=20"
|
||
},
|
||
{
|
||
"name": "无 G-code 语义生成",
|
||
"pass": true,
|
||
"detail": "semanticGuard=ok"
|
||
},
|
||
{
|
||
"name": "刀路预览点",
|
||
"pass": true,
|
||
"detail": "pathPoints=1498"
|
||
},
|
||
{
|
||
"name": "执行轨迹点",
|
||
"pass": true,
|
||
"detail": "executed=1"
|
||
},
|
||
{
|
||
"name": "scene units are meters",
|
||
"pass": true,
|
||
"detail": "sceneUnits=m"
|
||
},
|
||
{
|
||
"name": "linear scale visible",
|
||
"pass": true,
|
||
"detail": "scale=0.001"
|
||
},
|
||
{
|
||
"name": "path fit bounds",
|
||
"pass": true,
|
||
"detail": "fit=ok"
|
||
},
|
||
{
|
||
"name": "path bounds in meters",
|
||
"pass": true,
|
||
"detail": "bounds={\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}"
|
||
},
|
||
{
|
||
"name": "canvas nonblank",
|
||
"pass": true,
|
||
"detail": "nonBlack=0.8173"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"viewport": {
|
||
"name": "mobile",
|
||
"width": 390,
|
||
"height": 844,
|
||
"deviceScaleFactor": 2
|
||
},
|
||
"screenshotPath": "/home/meswork/cnc_wams/qa/web-rtcp-5axis-site-test/screenshots/meter-scene-evidence/08-meter-scene-mobile.png",
|
||
"pixelStats": {
|
||
"width": 1146,
|
||
"height": 1036,
|
||
"averageLuminance": 67.87,
|
||
"nonBlackRatio": 0.838
|
||
},
|
||
"dataset": {
|
||
"fiveAxisCanvas": "true",
|
||
"engine": "three.js r183",
|
||
"threeReady": "true",
|
||
"threeRevision": "183",
|
||
"threePathPoints": "1498",
|
||
"threeExecutedPathPoints": "1",
|
||
"threeSceneObjects": "20",
|
||
"threeToolhead": "{\"x\":0,\"y\":0,\"z\":0}",
|
||
"threeSceneUnits": "m",
|
||
"threeLinearUnits": "mm",
|
||
"threeLinearUnitScaleToMeters": "0.001",
|
||
"threeToolAxis": "{\"x\":0.558,\"y\":0.769,\"z\":0.312}",
|
||
"threeTcpPose": "{\"x\":36.474,\"y\":-22.486,\"z\":-13.749,\"a\":-71.841,\"c\":-35.93}",
|
||
"threeRtcpState": "on",
|
||
"threeSelectedView": "iso",
|
||
"threeFrameApi": "web-rtcp-5axis-motion-frame",
|
||
"threeRenderer": "webgl",
|
||
"threeSceneMode": "program-preview-and-tool-execution",
|
||
"threePreviewScope": "machine-reference-and-toolpath",
|
||
"threeMachineReferenceModel": "webgl-five-axis-reference",
|
||
"threeCameraControls": "orbit-pan-zoom",
|
||
"threeProgramPreviewSource": "linuxcnc-interpreter-wasm",
|
||
"threeToolExecutionMarker": "true",
|
||
"threeTcpMarker": "sphere",
|
||
"threeToolAxisMarker": "line",
|
||
"threeToolpathPreviewSource": "linuxcnc_interpreter_canonical_motion",
|
||
"threeToolExecutionTraceSource": "linuxcnc_tp_samples_or_task_motion_hal_feedback",
|
||
"threePathFitBounds": "ok",
|
||
"threePathBoundsMeters": "{\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}",
|
||
"threeCurrentSegmentHighlight": "ok",
|
||
"threeRapidFeedVisualDistinction": "ok",
|
||
"threeNoGcodeSemanticsGeneration": "ok",
|
||
"threeRapidPathPoints": "186",
|
||
"threeFeedPathPoints": "1436",
|
||
"threeArcPathPoints": "0",
|
||
"threeCurrentSegmentPoints": "1",
|
||
"threeCurrentSegmentType": "STRAIGHT_TRAVERSE"
|
||
},
|
||
"status": "PASS",
|
||
"checks": [
|
||
{
|
||
"name": "canvas ready",
|
||
"pass": true,
|
||
"detail": "threeReady=true"
|
||
},
|
||
{
|
||
"name": "WebGL renderer",
|
||
"pass": true,
|
||
"detail": "renderer=webgl"
|
||
},
|
||
{
|
||
"name": "机床参考模型",
|
||
"pass": true,
|
||
"detail": "scope=machine-reference-and-toolpath, model=webgl-five-axis-reference"
|
||
},
|
||
{
|
||
"name": "TCP 球标记",
|
||
"pass": true,
|
||
"detail": "tcp=sphere, marker=true"
|
||
},
|
||
{
|
||
"name": "刀轴线",
|
||
"pass": true,
|
||
"detail": "toolAxisMarker=line"
|
||
},
|
||
{
|
||
"name": "场景对象数量",
|
||
"pass": true,
|
||
"detail": "sceneObjects=20"
|
||
},
|
||
{
|
||
"name": "无 G-code 语义生成",
|
||
"pass": true,
|
||
"detail": "semanticGuard=ok"
|
||
},
|
||
{
|
||
"name": "刀路预览点",
|
||
"pass": true,
|
||
"detail": "pathPoints=1498"
|
||
},
|
||
{
|
||
"name": "执行轨迹点",
|
||
"pass": true,
|
||
"detail": "executed=1"
|
||
},
|
||
{
|
||
"name": "scene units are meters",
|
||
"pass": true,
|
||
"detail": "sceneUnits=m"
|
||
},
|
||
{
|
||
"name": "linear scale visible",
|
||
"pass": true,
|
||
"detail": "scale=0.001"
|
||
},
|
||
{
|
||
"name": "path fit bounds",
|
||
"pass": true,
|
||
"detail": "fit=ok"
|
||
},
|
||
{
|
||
"name": "path bounds in meters",
|
||
"pass": true,
|
||
"detail": "bounds={\"center\":{\"x\":-0.001,\"y\":0,\"z\":0.019},\"size\":{\"x\":0.088,\"y\":0.089,\"z\":0.043},\"maxSpan\":0.089211}"
|
||
},
|
||
{
|
||
"name": "canvas nonblank",
|
||
"pass": true,
|
||
"detail": "nonBlack=0.838"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"consoleErrors": [
|
||
"Failed to load resource: the server responded with a status of 404 (Not Found)",
|
||
"Failed to load resource: the server responded with a status of 404 (Not Found)"
|
||
]
|
||
}
|