Files
2026-07-03 08:49:13 -04:00

393 lines
9.6 KiB
JSON

{
"apiName": "web-rtcp-5axis-xyzbc-trt-full-gcode-process-frame-capture",
"status": "partial",
"capturedAt": "2026-07-03T09:17:13.048Z",
"projectRoot": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan",
"outputDir": "/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/screenshots/web-simulation-gcode-full-50ms-20260703T091708Z",
"url": "http://127.0.0.1:34309/web-rtcp-5axis-xyzbc-trt-sim-plan/app/index.html",
"sourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
"captureMethod": "Playwright drives the AXIS UI state one real programAxisPreviewPath sample at a time and screenshots after each 50ms sample.",
"samplePeriodMs": 50,
"expectedSampleCount": 1300,
"capturedFrameCount": 3,
"firstFrame": {
"index": 0,
"timeMs": 0,
"file": "frame-0000-t000000ms.png",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 16,
"statement": "g53 g0 x0y0 z#<zmax> b0 c0 ; quadrant I",
"operation": "rapid-machine-reset",
"gcodeStepIndex": 16,
"segmentIndex": 0,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 0,
"y": 0,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 0,
"y": 0,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"axisPose": {
"x": 0,
"y": 0,
"z": 10,
"a": 0,
"b": 0,
"c": 0
},
"toolAxisVector": {
"x": 0,
"y": 0,
"z": 1
},
"canvasDataset": {
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeToolGlyphAxis": "{\"x\":0,\"y\":0,\"z\":1}"
}
},
"lastFrame": {
"index": 2,
"timeMs": 100,
"file": "frame-0002-t000100ms.png",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 18,
"statement": "g0 x+20 y+20 z#<zmax>",
"operation": "rapid-to-quadrant-center",
"gcodeStepIndex": 18,
"segmentIndex": 1,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"axisPose": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10,
"a": 0,
"b": 0,
"c": 0
},
"toolAxisVector": {
"x": 0,
"y": 0,
"z": 1
},
"canvasDataset": {
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeToolGlyphAxis": "{\"x\":0,\"y\":0,\"z\":1}"
}
},
"gcodeExecutionProcess": {
"status": "ok",
"executionStepCount": 128,
"summary": {
"motionStepCount": 29,
"switchkinsStepCount": 21,
"parameterAssignmentStepCount": 41,
"workOffsetStepCount": 9,
"callStepCount": 5,
"noMotionStepCount": 99,
"finalJoint": {
"x": 0,
"y": 0,
"z": 10,
"b": 0,
"c": 0
},
"finalKinematics": "identity"
}
},
"lineExecutionTraceCount": 64,
"axisValuesByLineCount": 29,
"finalState": {
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
"selectedGcodeSourceRel": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
"source": "web-axis-source-execution-expanded-ngcgui-subroutines",
"semanticBoundary": "linuxcnc_xyzbc_switchkins_ngc_execution_expanded_by_source_subroutines",
"samplePeriodMs": 50,
"sampleCount": 1300,
"capturedSampleIndex": 2,
"runState": "stepping",
"programUiExecution": {
"apiName": "web-rtcp-5axis-ui-gcode-live-execution",
"status": "idle",
"source": "programAxisPreviewPath.samples",
"samplePeriodMs": 50,
"sampleIndex": 2,
"sampleCount": 1300,
"executedSampleCount": 3,
"timeMs": 100,
"activeProgram": "configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/xyzbc_switchkins.ngc",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 18,
"statement": "g0 x+20 y+20 z#<zmax>",
"operation": "rapid-to-quadrant-center",
"executionIndex": 4,
"gcodeStepIndex": 18,
"segmentIndex": 1,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"tool": {
"id": 2,
"pocket": 2,
"length": 10,
"diameter": 8
},
"machineState": {
"spindle": {
"speedRpm": 0,
"direction": "stopped",
"enabled": false
},
"feed": {
"programmedMmPerMin": 2100,
"actualMmPerMin": 2100,
"overridePercent": 100
},
"cutting": {
"active": false,
"cuttingSpeedMmPerMin": 0
},
"tool": {
"id": 2,
"pocket": 2,
"length": 10,
"diameter": 8
},
"toolChange": {
"activeTool": 2,
"activePocket": 2,
"changed": false,
"command": null
},
"coolant": {
"mist": false,
"flood": false
}
},
"semanticBoundary": "ui_updates_from_real_expanded_linuxcnc_gcode_sample_stream"
},
"gcodeExecutionProcess": {
"status": "ok",
"executionStepCount": 128,
"summary": {
"motionStepCount": 29,
"switchkinsStepCount": 21,
"parameterAssignmentStepCount": 41,
"workOffsetStepCount": 9,
"callStepCount": 5,
"noMotionStepCount": 99,
"finalJoint": {
"x": 0,
"y": 0,
"z": 10,
"b": 0,
"c": 0
},
"finalKinematics": "identity"
}
},
"lineExecutionTraceCount": 64,
"axisValuesByLineCount": 29,
"programExecutionSourceMode": "fixture-line-playback",
"taskHalRuntimeReadiness": {
"apiName": "web-rtcp-5axis-linuxcnc-task-hal-runtime-readiness",
"loaded": false,
"taskRuntimeReady": false,
"motionRuntimeReady": false,
"halRuntimeReady": false,
"nativeTaskReady": false,
"nativeHalSyncReady": false,
"error": "disabled for deterministic 50ms screenshot playback; task/HAL path is covered by browser smoke"
}
},
"frames": [
{
"index": 0,
"timeMs": 0,
"file": "frame-0000-t000000ms.png",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 16,
"statement": "g53 g0 x0y0 z#<zmax> b0 c0 ; quadrant I",
"operation": "rapid-machine-reset",
"gcodeStepIndex": 16,
"segmentIndex": 0,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 0,
"y": 0,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 0,
"y": 0,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"axisPose": {
"x": 0,
"y": 0,
"z": 10,
"a": 0,
"b": 0,
"c": 0
},
"toolAxisVector": {
"x": 0,
"y": 0,
"z": 1
},
"canvasDataset": {
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeToolGlyphAxis": "{\"x\":0,\"y\":0,\"z\":1}"
}
},
{
"index": 1,
"timeMs": 50,
"file": "frame-0001-t000050ms.png",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 18,
"statement": "g0 x+20 y+20 z#<zmax>",
"operation": "rapid-to-quadrant-center",
"gcodeStepIndex": 18,
"segmentIndex": 1,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 0,
"y": 0,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 0,
"y": 0,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"axisPose": {
"x": 0,
"y": 0,
"z": 10,
"a": 0,
"b": 0,
"c": 0
},
"toolAxisVector": {
"x": 0,
"y": 0,
"z": 1
},
"canvasDataset": {
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeToolGlyphAxis": "{\"x\":0,\"y\":0,\"z\":1}"
}
},
{
"index": 2,
"timeMs": 100,
"file": "frame-0002-t000100ms.png",
"sourceFile": "xyzbc_switchkins_sub.ngc",
"line": 18,
"statement": "g0 x+20 y+20 z#<zmax>",
"operation": "rapid-to-quadrant-center",
"gcodeStepIndex": 18,
"segmentIndex": 1,
"motionType": "rapid",
"activeKinematics": "identity",
"joint": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10,
"b": 0,
"c": 0
},
"tcp": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10
},
"toolAxis": {
"i": 0,
"j": 0,
"k": 1
},
"axisPose": {
"x": 1.1764705882352942,
"y": 1.1764705882352942,
"z": 10,
"a": 0,
"b": 0,
"c": 0
},
"toolAxisVector": {
"x": 0,
"y": 0,
"z": 1
},
"canvasDataset": {
"threeToolAxis": "{\"x\":0,\"y\":0,\"z\":1}",
"threeToolGlyphAxis": "{\"x\":0,\"y\":0,\"z\":1}"
}
}
],
"note": "executionStepCount is the expanded semantic G-code step count; capturedFrameCount is the 50ms visual frame count."
}