Compare commits
38 Commits
07d53a705c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| db29ae625f | |||
| af65b69b2c | |||
| 469881794c | |||
| ae525d6b93 | |||
| 23d07e72d1 | |||
| b15af28034 | |||
| d4d0088daf | |||
| 3cb5950d1f | |||
| 8443930edb | |||
| 1eb9840941 | |||
| 0de96bbc72 | |||
| 86cfa2b7f0 | |||
| 338500dfc2 | |||
| 8f1a22485d | |||
| a7233bc8e4 | |||
| a2c6dd1c01 | |||
| d8488641ca | |||
| 989866b3ab | |||
| 91ebd56d6d | |||
| a472911ad1 | |||
| 63f726dc32 | |||
| 70229a8d1f | |||
| 2fd0a3d90b | |||
| c2892bfe36 | |||
| 320a69a916 | |||
| 72b38b7d43 | |||
| 53285d04af | |||
| 8cafbb326b | |||
| 6d04425121 | |||
| 1076bfa5e0 | |||
| 8aab531b02 | |||
| 1c1e5f9672 | |||
| 4a568f1f4c | |||
| 6a69511276 | |||
| e4600b34e3 | |||
| 9232f29027 | |||
| d7c8b514fc | |||
| 021e688b6e |
21
README.md
@@ -1,5 +1,26 @@
|
|||||||
# LinuxCNC Web/WASM
|
# LinuxCNC Web/WASM
|
||||||
|
|
||||||
|
五轴 GLB / URDF 机床导入(AC / BC、底座双分支)的工作入口:
|
||||||
|
[`子项目文档、任务矩阵与模型交付`](docs/glb-machine/README.md)。
|
||||||
|
|
||||||
|
机床预览区的部件级三维机床管理器(GLB 部件、层级、原点、姿态、RTCP 标定和物理零点)入口:
|
||||||
|
[`三维机床管理器文档、任务矩阵与验收证据`](docs/glb-machine-manager/README.md)。
|
||||||
|
线上站点 `https://49.232.250.35:58010/` 的操作说明、案例支持状态与发布功能巡检结论见
|
||||||
|
[`LinuxCNC Web/WASM 使用说明书`](docs/user-manual/LinuxCNC-Web-使用说明书.html)。
|
||||||
|
详细功能规格见 [`三维机床管理详细功能文档`](docs/glb-machine-manager/00-三维机床管理详细功能文档.md)。
|
||||||
|
可离线阅读的图文版见 [`三维机床管理详细功能文档(HTML)`](docs/glb-machine-manager/00-三维机床管理详细功能文档.html)。
|
||||||
|
退出重启接续见 [`三维机床管理 HTML 文档接续入口`](nextTask-glb-machine-manager-doc.md)。
|
||||||
|
|
||||||
|
当前配置驱动改造的重启接续入口:[`nextTask-hardcoding.md`](nextTask-hardcoding.md)。
|
||||||
|
|
||||||
|
五轴机床 INI 参数化设计(XYZAC / XYZBC)的当前工作入口:
|
||||||
|
[`项目文档、任务矩阵与验收证据`](docs/trt-parametric/README.md)。本专项按该索引接续。
|
||||||
|
|
||||||
|
LinuxCNC 五轴/多自由度机床结构案例、运动学源码、示例 G 代码和 Web/WASM 适配状态:
|
||||||
|
[`LinuxCNC 五轴机床案例目录`](docs/linuxcnc-five-axis-case-catalog.md)。界面使用同一份
|
||||||
|
[`five-axis-machine-catalog.json`](web/workspace/five-axis-machine-catalog.json);本地案例路径可用
|
||||||
|
`node scripts/validate_five_axis_catalog.mjs` 复核。
|
||||||
|
|
||||||
本仓库的目标是将 LinuxCNC `2.10.0~pre0` 的仿真行为移植到浏览器。当前已完成 posemath/TP、rs274ngc interpreter 和 fixed-tick motion queue 核心切片;这仍不是 LinuxCNC 全功能完成声明。
|
本仓库的目标是将 LinuxCNC `2.10.0~pre0` 的仿真行为移植到浏览器。当前已完成 posemath/TP、rs274ngc interpreter 和 fixed-tick motion queue 核心切片;这仍不是 LinuxCNC 全功能完成声明。
|
||||||
|
|
||||||
完整仿真功能范围、任务分解和 M0-M8 里程碑见 [`完整仿真移植实施计划`](docs/linuxcnc-web-wasm-complete-simulation-plan.md);技术实施接续入口为 [`nextTask1.md`](nextTask1.md)。
|
完整仿真功能范围、任务分解和 M0-M8 里程碑见 [`完整仿真移植实施计划`](docs/linuxcnc-web-wasm-complete-simulation-plan.md);技术实施接续入口为 [`nextTask1.md`](nextTask1.md)。
|
||||||
|
|||||||
18
coverage/configuration/browser.report.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"report_id": "configurable-ui-browser-v1",
|
||||||
|
"status": "verified",
|
||||||
|
"default_machine": "xyzbc-trt",
|
||||||
|
"entrypoint": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/configured-machine.ini",
|
||||||
|
"program": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/configured-preview.ngc",
|
||||||
|
"increments": [
|
||||||
|
"0.25",
|
||||||
|
"2.5"
|
||||||
|
],
|
||||||
|
"feed_max": 1.3,
|
||||||
|
"colors": {
|
||||||
|
"purple": 143449,
|
||||||
|
"green": 85
|
||||||
|
},
|
||||||
|
"configured_icons": 24,
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
BIN
coverage/configuration/configured-ui.png
Normal file
|
After Width: | Height: | Size: 240 KiB |
76
coverage/configuration/input-audit.report.json
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"report_id": "configuration-input-audit-v1",
|
||||||
|
"status": "verified",
|
||||||
|
"scope": "configurable inputs; not a zero-literals claim",
|
||||||
|
"checks": {
|
||||||
|
"machine_catalog_parses": true,
|
||||||
|
"resource_catalog_parses": true,
|
||||||
|
"settings_parse": true,
|
||||||
|
"worker_reparses_ini": true,
|
||||||
|
"axis_limits_from_ini": true,
|
||||||
|
"joint_limits_from_ini": true,
|
||||||
|
"no_kinematics_example_limits": true,
|
||||||
|
"no_loader_fixed_timing": true,
|
||||||
|
"no_loader_axis3_override": true,
|
||||||
|
"native_axis_dynamics_input": true,
|
||||||
|
"no_native_xyzac_speed_override": true,
|
||||||
|
"native_acceleration_upper_bound": true,
|
||||||
|
"model_uses_visual_configuration": true,
|
||||||
|
"machine_path_color_configured": true
|
||||||
|
},
|
||||||
|
"sources": [
|
||||||
|
{
|
||||||
|
"path": "web/workspace/machine-catalog.json",
|
||||||
|
"sha256": "b71a4cf6f5517710c8cc7ed496b3d5d8d7850c07ab4dc5096548407f93dd9130"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/workspace/simulation-resources.json",
|
||||||
|
"sha256": "872a0e52dc4f8725d623ad47f3cbb446b6cb257793ce78ca1f8f0bcf1ee0966b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/workspace/web-settings.json",
|
||||||
|
"sha256": "c9f7da5ef8ec0d17ee2e9e9f55e71acc051eb4afe75b85a961a18599f28c8a82"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/workspace/trt-configuration.mjs",
|
||||||
|
"sha256": "5ede37c1066545da1825b98ccedd82c22dad7f8f311c8ea0112595a916e6b432"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/worker/sim-session.mjs",
|
||||||
|
"sha256": "07c40bb0e8603291cdea245be03c8afc7d9b6582452433ed4f5eac413add988f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/worker/wasm-linuxcnc-tp.mjs",
|
||||||
|
"sha256": "50616c4d75e3693f06e0095c9df76671f7af9d417e351a68796bdba92dcbe5f7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "wasm-core/src/sim_linuxcnc_tp.c",
|
||||||
|
"sha256": "2db45da43cd7951a172d118c3dd346a2d5182eae29f0bbe2abd9b9d5a645da26"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/worker/wasm-xyzac-kinematics.mjs",
|
||||||
|
"sha256": "7453c58a220b31a1c74ff2e2f9f3d6b7d16cc84973b9ea5be17d06fa179af37f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/workspace/sim-case-loader.mjs",
|
||||||
|
"sha256": "d6399f2fcb053fc625933d72118b82e7f6eff73df7dc02a606fe45f238b06207"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/react/src/xyzac-machine-model.ts",
|
||||||
|
"sha256": "1d22af1384e4e26adad8bed122fabd17ecfb046d0320c920ca1c7a385c40f5b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "web/react/src/XyzacMachineView.tsx",
|
||||||
|
"sha256": "d0f42c020a8da8708323fc778d206460fa1ea02d114d5df2a3c2eaf85f138f3a"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wasm_sha256": "213b55e64b45c14df5c40e59827fa8bb4903135cd788664bb08263f08a49738f",
|
||||||
|
"retained": [
|
||||||
|
"mathematical constants and tolerances",
|
||||||
|
"ABI layouts, enums, and capacities",
|
||||||
|
"source model mesh topology",
|
||||||
|
"CSS/icon assets",
|
||||||
|
"test fixtures and historical evidence",
|
||||||
|
"upstream LinuxCNC and dependency locks"
|
||||||
|
]
|
||||||
|
}
|
||||||
1679
coverage/configuration/parametric-regression.report.json
Normal file
657
coverage/configuration/rtcp-jog-browser.report.json
Normal file
@@ -0,0 +1,657 @@
|
|||||||
|
{
|
||||||
|
"report_id": "trt-rtcp-jog-browser-v1",
|
||||||
|
"status": "verified",
|
||||||
|
"machines": [
|
||||||
|
{
|
||||||
|
"coordinates": "XYZAC",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"axis": "a",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
5.066649999999981,
|
||||||
|
4.066650000000003,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 64,
|
||||||
|
"rendered_tick": 64,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
5.066649999999981,
|
||||||
|
4.841821345591999,
|
||||||
|
-1.1400746004481288,
|
||||||
|
4.199999999999992,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 88,
|
||||||
|
"rendered_tick": 88,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 1.3877787807814457e-17
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
5.066649999999981,
|
||||||
|
5.19921919111046,
|
||||||
|
-1.6107075438884007,
|
||||||
|
6.000000000000007,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 99,
|
||||||
|
"rendered_tick": 99,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.2247786310271853e-16
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "c",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
5.066649999999981,
|
||||||
|
5.19921919111046,
|
||||||
|
-1.6107075438884007,
|
||||||
|
6.000000000000007,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 99,
|
||||||
|
"rendered_tick": 99,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
4.266433017896709,
|
||||||
|
6.027611642587745,
|
||||||
|
-1.5236399887760221,
|
||||||
|
6.000000000000007,
|
||||||
|
10.199999999999976
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 143,
|
||||||
|
"rendered_tick": 136,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.2473876566261383e-16
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
4.110427463793882,
|
||||||
|
6.158484995689042,
|
||||||
|
-1.5098846450816552,
|
||||||
|
6.000000000000007,
|
||||||
|
11.999999999999938
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 154,
|
||||||
|
"rendered_tick": 154,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 6.938893903907228e-18
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "a",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
4.110427463793882,
|
||||||
|
6.158484995689042,
|
||||||
|
-1.5098846450816552,
|
||||||
|
6.000000000000007,
|
||||||
|
11.999999999999938
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 154,
|
||||||
|
"rendered_tick": 154,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
4.110427463793882,
|
||||||
|
9.152485181578204,
|
||||||
|
-4.3665028598393185,
|
||||||
|
19.19999999999992,
|
||||||
|
11.999999999999938
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 208,
|
||||||
|
"rendered_tick": 202,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 1.3877787807814457e-17
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
4.110427463793882,
|
||||||
|
9.532273556710663,
|
||||||
|
-4.645534652791378,
|
||||||
|
20.69999999999989,
|
||||||
|
11.999999999999938
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 218,
|
||||||
|
"rendered_tick": 218,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 4.445768331151997e-16
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "c",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
4.110427463793882,
|
||||||
|
9.532273556710663,
|
||||||
|
-4.645534652791378,
|
||||||
|
20.69999999999989,
|
||||||
|
11.999999999999938
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 218,
|
||||||
|
"rendered_tick": 218,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
3.8414816180013283,
|
||||||
|
9.727059259543312,
|
||||||
|
-4.571931269146798,
|
||||||
|
20.69999999999989,
|
||||||
|
14.999999999999936
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 238,
|
||||||
|
"rendered_tick": 238,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 1.3877787807814457e-17
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
3.6750116751266004,
|
||||||
|
9.837515099025248,
|
||||||
|
-4.53019348546481,
|
||||||
|
20.69999999999989,
|
||||||
|
16.799999999999933
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": 0,
|
||||||
|
"y_offset": 20,
|
||||||
|
"z_offset": 10,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 249,
|
||||||
|
"rendered_tick": 249,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 4.443601777255714e-16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"coordinates": "XYZBC",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"axis": "b",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
5.0666499999999814,
|
||||||
|
3.666650000000003,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 311,
|
||||||
|
"rendered_tick": 311,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.5,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
6.166264319539167,
|
||||||
|
3.666650000000003,
|
||||||
|
-2.0129466859294602,
|
||||||
|
4.499999999999995,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 336,
|
||||||
|
"rendered_tick": 330,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4879917702595602,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.7755575615628914e-17
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
6.56128605042624,
|
||||||
|
3.666650000000003,
|
||||||
|
-2.8412572372826563,
|
||||||
|
6.30000000000001,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 347,
|
||||||
|
"rendered_tick": 347,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4715874276271734,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 5.551115123125783e-17
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "c",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
6.56128605042624,
|
||||||
|
3.666650000000003,
|
||||||
|
-2.8412572372826563,
|
||||||
|
6.30000000000001,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 347,
|
||||||
|
"rendered_tick": 347,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4715874276271734,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
6.259816863284065,
|
||||||
|
4.05287171910206,
|
||||||
|
-2.807974729167359,
|
||||||
|
6.30000000000001,
|
||||||
|
4.499999999999995
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 372,
|
||||||
|
"rendered_tick": 372,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4719202527083264,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 6.938893903907228e-18
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
6.130945648374414,
|
||||||
|
4.200492284609181,
|
||||||
|
-2.793747214585462,
|
||||||
|
6.30000000000001,
|
||||||
|
6.30000000000001
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 383,
|
||||||
|
"rendered_tick": 383,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4720625278541453,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.2887833992611187e-16
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "b",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
6.130945648374414,
|
||||||
|
4.200492284609181,
|
||||||
|
-2.793747214585462,
|
||||||
|
6.30000000000001,
|
||||||
|
6.30000000000001
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 383,
|
||||||
|
"rendered_tick": 383,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4720625278541453,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
7.840448318636497,
|
||||||
|
4.200492284609181,
|
||||||
|
-7.46817651846061,
|
||||||
|
16.199999999999992,
|
||||||
|
6.30000000000001
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 426,
|
||||||
|
"rendered_tick": 420,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4340259659607903,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 0
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
8.063291030797899,
|
||||||
|
4.200492284609181,
|
||||||
|
-8.346382633448467,
|
||||||
|
17.999999999999954,
|
||||||
|
6.30000000000001
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 437,
|
||||||
|
"rendered_tick": 437,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4165361736655155,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.2887833992611187e-16
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"axis": "c",
|
||||||
|
"before": {
|
||||||
|
"joints": [
|
||||||
|
8.063291030797899,
|
||||||
|
4.200492284609181,
|
||||||
|
-8.346382633448467,
|
||||||
|
17.999999999999954,
|
||||||
|
6.30000000000001
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 437,
|
||||||
|
"rendered_tick": 437,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.4165361736655155,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"moving": {
|
||||||
|
"joints": [
|
||||||
|
7.5982993210492396,
|
||||||
|
4.6836006491845,
|
||||||
|
-8.195297668366113,
|
||||||
|
17.999999999999954,
|
||||||
|
12.60000000000002
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 468,
|
||||||
|
"rendered_tick": 461,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.41752527642095,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 2.2247786310271853e-16
|
||||||
|
},
|
||||||
|
"stopped": {
|
||||||
|
"joints": [
|
||||||
|
7.456439115506413,
|
||||||
|
4.811480064556107,
|
||||||
|
-8.1492044934736,
|
||||||
|
17.999999999999954,
|
||||||
|
14.40000000000003
|
||||||
|
],
|
||||||
|
"offsets": {
|
||||||
|
"x_rot_point": 0,
|
||||||
|
"y_rot_point": 0,
|
||||||
|
"z_rot_point": 0,
|
||||||
|
"x_offset": -20,
|
||||||
|
"y_offset": 0,
|
||||||
|
"z_offset": -15,
|
||||||
|
"tool_offset": 0
|
||||||
|
},
|
||||||
|
"tick": 479,
|
||||||
|
"rendered_tick": 474,
|
||||||
|
"tool_tip": [
|
||||||
|
0,
|
||||||
|
1.418507955065264,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tcp_error": 1.5515838457795457e-17
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
3589
coverage/configuration/rtcp-jog-regression.report.json
Normal file
BIN
coverage/configuration/rtcp-jog-xyzac.png
Normal file
|
After Width: | Height: | Size: 314 KiB |
BIN
coverage/configuration/rtcp-jog-xyzbc.png
Normal file
|
After Width: | Height: | Size: 308 KiB |
129
coverage/configuration/subpath.report.json
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
{
|
||||||
|
"report_id": "subpath-deployment-v1",
|
||||||
|
"status": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzac.ngc",
|
||||||
|
"url": "http://127.0.0.1:5175/dist/",
|
||||||
|
"machine": "xyzac-trt",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/axis-24x24.png",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_estop.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_power.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_open.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_verify.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_reload.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_run.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_step.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_pause.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_stop.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_blockdelete.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_optpause.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_zoomin.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_zoomout.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_z.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_z2.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_x.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_y.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_y2.png",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_p.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_rotate.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_clear.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/spindle_ccw.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/spindle_cw.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_zoomin.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_zoomout.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_axis_z.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_verify.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_reload.gif",
|
||||||
|
"loaded": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "http://127.0.0.1:5175/dist/linuxcnc/share/axis/images/tool_open.gif",
|
||||||
|
"loaded": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
1781
coverage/configuration/trt-runtime.report.json
Normal file
21
coverage/glb-machine-manager/browser-production.report.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"schema": "machine-manager-browser.v1",
|
||||||
|
"report_id": "GLB-MGR-E02",
|
||||||
|
"mode": "production-preview",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"eight GLB parts rendered with studio PMREM lighting",
|
||||||
|
"eight-part roots have unique single DOFs; fixed base cannot move; numeric input drives only bound X",
|
||||||
|
"validated assembly exports a self-contained managed GLB",
|
||||||
|
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
|
||||||
|
"same component assembly switches to BC hierarchy and applies BC geometry",
|
||||||
|
"BC five-axis program drives managed model from authoritative WASM joints",
|
||||||
|
"production bundle exercised through AC/BC UI apply and WASM program motion"
|
||||||
|
],
|
||||||
|
"browser_errors": [],
|
||||||
|
"final": {
|
||||||
|
"program": "running",
|
||||||
|
"machine": "ON",
|
||||||
|
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
coverage/glb-machine-manager/browser.report.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"schema": "machine-manager-browser.v1",
|
||||||
|
"report_id": "GLB-MGR-E01",
|
||||||
|
"mode": "development-source",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"eight GLB parts rendered with studio PMREM lighting",
|
||||||
|
"eight-part roots have unique single DOFs; fixed base cannot move; numeric input drives only bound X",
|
||||||
|
"validated assembly exports a self-contained managed GLB",
|
||||||
|
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
|
||||||
|
"same component assembly switches to BC hierarchy and applies BC geometry",
|
||||||
|
"BC five-axis program drives managed model from authoritative WASM joints",
|
||||||
|
"AC/BC WASM joint projection subtracts physical zero, preserves userData and rejects invalid hierarchy"
|
||||||
|
],
|
||||||
|
"browser_errors": [],
|
||||||
|
"final": {
|
||||||
|
"program": "aborted",
|
||||||
|
"machine": "ON",
|
||||||
|
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc"
|
||||||
|
}
|
||||||
|
}
|
||||||
15
coverage/glb-machine-manager/document/browser.report.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E17",
|
||||||
|
"status": "verified",
|
||||||
|
"url": "http://127.0.0.1:5180/",
|
||||||
|
"checks": [
|
||||||
|
"named GLB downloads and atomic browser-library copy with time/size/checksum; editor display changes mark document dirty",
|
||||||
|
"reload and local-library open restore eight source files, exact edited hierarchy, axis/sign, visibility, origins and calibration; second save has identical metadata",
|
||||||
|
"explicit open-file entry restores document; library redownload is byte identical; delete affects only chosen saved copy",
|
||||||
|
"inconsistent editor metadata is rejected atomically without replacing the current draft",
|
||||||
|
"saved GLB loads through control-panel importer and can be sent back into editor with eight original parts",
|
||||||
|
"legacy GLB remains editable via single-assembly fallback",
|
||||||
|
"local storage failure does not prevent GLB download and is visibly reported"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
15
coverage/glb-machine-manager/document/cloud.report.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E17",
|
||||||
|
"status": "verified",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"checks": [
|
||||||
|
"named GLB downloads and atomic browser-library copy with time/size/checksum; editor display changes mark document dirty",
|
||||||
|
"reload and local-library open restore eight source files, exact edited hierarchy, axis/sign, visibility, origins and calibration; second save has identical metadata",
|
||||||
|
"explicit open-file entry restores document; library redownload is byte identical; delete affects only chosen saved copy",
|
||||||
|
"inconsistent editor metadata is rejected atomically without replacing the current draft",
|
||||||
|
"saved GLB loads through control-panel importer and can be sent back into editor with eight original parts",
|
||||||
|
"legacy GLB remains editable via single-assembly fallback",
|
||||||
|
"local storage failure does not prevent GLB download and is visibly reported"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"schema":"axis-control-inventory.v1","status":"verified","documented_controls":146,"duplicate_command_entries_removed":["machine_menu","view_menu","program_pane_load","tool_probe_commands"],"contract":"linuxcnc-axis-web-control-panel-source-logic.md"}
|
||||||
20
coverage/glb-machine-manager/document/deployment.report.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E17-CLOUD",
|
||||||
|
"status": "verified",
|
||||||
|
"checked_at": "2026-09-21T13:19:10.126525+00:00",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"source_commit": "8443930edbb91f80234bb6de053b7a3cc76245ae",
|
||||||
|
"release": "/var/www/linuxcnc-wasm-58015/releases/20260921-linuxcnc-wasm-8443930",
|
||||||
|
"bundle": "assets/index-EHYipPfn.js",
|
||||||
|
"archive_sha256": "961e37e9b164ffc01831a5cba583d26767238ffe1da0edb95c00f8936bc0eadc",
|
||||||
|
"checks": [
|
||||||
|
"named GLB downloads and atomic browser-library copy with time/size/checksum; editor display changes mark document dirty",
|
||||||
|
"reload and local-library open restore eight source files, exact edited hierarchy, axis/sign, visibility, origins and calibration; second save has identical metadata",
|
||||||
|
"explicit open-file entry restores document; library redownload is byte identical; delete affects only chosen saved copy",
|
||||||
|
"inconsistent editor metadata is rejected atomically without replacing the current draft",
|
||||||
|
"saved GLB loads through control-panel importer and can be sent back into editor with eight original parts",
|
||||||
|
"legacy GLB remains editable via single-assembly fallback",
|
||||||
|
"local storage failure does not prevent GLB download and is visibly reported"
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"schema": "machine-manager-browser.v1",
|
||||||
|
"report_id": "GLB-MGR-E02",
|
||||||
|
"mode": "production-preview",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"eight GLB parts rendered with studio PMREM lighting",
|
||||||
|
"eight-part roots have unique single DOFs; fixed base cannot move; numeric input drives only bound X",
|
||||||
|
"validated assembly exports a self-contained managed GLB",
|
||||||
|
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
|
||||||
|
"same component assembly switches to BC hierarchy and applies BC geometry",
|
||||||
|
"BC five-axis program drives managed model from authoritative WASM joints",
|
||||||
|
"production bundle exercised through AC/BC UI apply and WASM program motion"
|
||||||
|
],
|
||||||
|
"browser_errors": [],
|
||||||
|
"final": {
|
||||||
|
"program": "running",
|
||||||
|
"machine": "ON",
|
||||||
|
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/document/files-and-recovery.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
@@ -0,0 +1 @@
|
|||||||
|
{"report_id":"GLB-MGR-E14-HISTORY","status":"verified","checks":["undo/redo","duplicate edits ignored","new edit discards redo","30-entry bound","clear preserves draft","machine type change preserves general axes and clears incompatible tilt","undo restores type and bindings"]}
|
||||||
1958
coverage/glb-machine-manager/document/mill700/browser.report.json
Normal file
BIN
coverage/glb-machine-manager/document/mill700/xyzac-live.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
4108
coverage/glb-machine-manager/document/mill700/xyzac.json
Normal file
BIN
coverage/glb-machine-manager/document/mill700/xyzbc-live.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
4108
coverage/glb-machine-manager/document/mill700/xyzbc.json
Normal file
BIN
coverage/glb-machine-manager/document/saved-eight-parts.glb
Normal file
14
coverage/glb-machine-manager/document/workbench.report.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E14",
|
||||||
|
"status": "verified",
|
||||||
|
"url": "http://127.0.0.1:5180/",
|
||||||
|
"checks": [
|
||||||
|
"search expands real nested nodes; axis overview locates selection; binding undo/redo",
|
||||||
|
"empty input preserves last pose; repeated selection/input does not concatenate; single-axis step and reset",
|
||||||
|
"TRT forbidden offset blocks export before build; calibration undo/redo",
|
||||||
|
"view presets and selected fitting; deletion undo restores model with all axis bindings",
|
||||||
|
"failed batch import leaves existing assembly intact",
|
||||||
|
"live mode locks edits; desktop, short viewport and narrow viewport keep footer visible without overflow"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
2816
coverage/glb-machine-manager/joint-dof/browser.report.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"schema":"axis-control-inventory.v1","status":"verified","documented_controls":115,"duplicate_command_entries_removed":["machine_menu","view_menu","program_pane_load","tool_probe_commands"],"contract":"linuxcnc-axis-web-control-panel-source-logic.md"}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E13-CLOUD",
|
||||||
|
"status": "verified",
|
||||||
|
"checked_at": "2026-09-21T03:32:29.065851+00:00",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"commit": "d8488641ca377fe9c930ea48d42249f90953529d",
|
||||||
|
"release": "/var/www/linuxcnc-wasm-58015/releases/20260921-linuxcnc-wasm-d848864",
|
||||||
|
"archive_sha256": "fcd454879625de8b6ecf83d8e064ca2df472a71ac591abee189b7e20e6ee506b",
|
||||||
|
"bundle": "assets/index-DZs5acdt.js",
|
||||||
|
"cloud_regression": {
|
||||||
|
"schema": "machine-manager-browser.v1",
|
||||||
|
"report_id": "GLB-MGR-E02",
|
||||||
|
"mode": "production-preview",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"eight GLB parts rendered with studio PMREM lighting",
|
||||||
|
"eight-part roots have unique single DOFs; fixed base cannot move; numeric input drives only bound X",
|
||||||
|
"validated assembly exports a self-contained managed GLB",
|
||||||
|
"validated hierarchy applied through LOAD_WORKSPACE with geometry and physical zero in userData",
|
||||||
|
"same component assembly switches to BC hierarchy and applies BC geometry",
|
||||||
|
"BC five-axis program drives managed model from authoritative WASM joints",
|
||||||
|
"production bundle exercised through AC/BC UI apply and WASM program motion"
|
||||||
|
],
|
||||||
|
"browser_errors": [],
|
||||||
|
"final": {
|
||||||
|
"program": "running",
|
||||||
|
"machine": "ON",
|
||||||
|
"path": "linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/demos/boat-xyzbc.ngc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mill700_full_validation": "coverage/glb-machine-manager/joint-dof/browser.report.json",
|
||||||
|
"mill700_full_validation_scope": "local production build, same deployed bundle; XYZAC and XYZBC with 8 moving ticks each"
|
||||||
|
}
|
||||||
1
coverage/glb-machine-manager/joint-dof/math.report.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"report_id":"GLB-MGR-E13-MATH","status":"verified","checks":["parent-frame motion with nonidentity zero orientation","unit/sign/physical-zero conversion","100 updates without drift","child inheritance","rotation about own origin","malformed JSON rejected","missing live axis rejected atomically"]}
|
||||||
BIN
coverage/glb-machine-manager/joint-dof/xyzac-live.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
4108
coverage/glb-machine-manager/joint-dof/xyzac.json
Normal file
BIN
coverage/glb-machine-manager/joint-dof/xyzbc-live.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
4108
coverage/glb-machine-manager/joint-dof/xyzbc.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E15",
|
||||||
|
"url": "http://127.0.0.1:5180",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"dialog selects BC while controller stays AC; switching drops incompatible tilt only; undo/redo restores type and bindings; saved GLB contains BC metadata",
|
||||||
|
"controller workspace changes do not change draft type; reopening saved machine restores type, calibration and hierarchy in one undoable transaction",
|
||||||
|
"applying BC design from AC controller changes controller type without altering design draft",
|
||||||
|
"controller import accepts saved BC GLB from AC workspace and automatically switches to BC with physical zero"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
12
coverage/glb-machine-manager/machine-type/cloud.report.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E15",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"dialog selects BC while controller stays AC; switching drops incompatible tilt only; undo/redo restores type and bindings; saved GLB contains BC metadata",
|
||||||
|
"controller workspace changes do not change draft type; reopening saved machine restores type, calibration and hierarchy in one undoable transaction",
|
||||||
|
"applying BC design from AC controller changes controller type without altering design draft",
|
||||||
|
"controller import accepts saved BC GLB from AC workspace and automatically switches to BC with physical zero"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/machine-type/controller-import.png
Normal file
|
After Width: | Height: | Size: 181 KiB |
@@ -0,0 +1 @@
|
|||||||
|
{"schema":"axis-control-inventory.v1","status":"verified","documented_controls":134,"duplicate_command_entries_removed":["machine_menu","view_menu","program_pane_load","tool_probe_commands"],"contract":"linuxcnc-axis-web-control-panel-source-logic.md"}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E15-CLOUD",
|
||||||
|
"status": "verified",
|
||||||
|
"checked_at": "2026-09-21T09:49:43.644683+00:00",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"source_commit": "338500dfc298270fcb2adee18b36afd23e32c9e5",
|
||||||
|
"release": "/var/www/linuxcnc-wasm-58015/releases/20260921-linuxcnc-wasm-338500d",
|
||||||
|
"bundle": "assets/index-C8kh60HL.js",
|
||||||
|
"archive_sha256": "dcbcefdbf521359d4c35c09fd11c27aa110f05d7ce242d482fc5bc73b5c6250d",
|
||||||
|
"checks": [
|
||||||
|
"dialog selects BC while controller stays AC; switching drops incompatible tilt only; undo/redo restores type and bindings; saved GLB contains BC metadata",
|
||||||
|
"controller workspace changes do not change draft type; reopening saved machine restores type, calibration and hierarchy in one undoable transaction",
|
||||||
|
"applying BC design from AC controller changes controller type without altering design draft",
|
||||||
|
"controller import accepts saved BC GLB from AC workspace and automatically switches to BC with physical zero"
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/machine-type/dialog-type.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
coverage/glb-machine-manager/machine-type/failure.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
@@ -0,0 +1 @@
|
|||||||
|
{"report_id":"GLB-MGR-E14-HISTORY","status":"verified","checks":["undo/redo","duplicate edits ignored","new edit discards redo","30-entry bound","clear preserves draft","machine type change preserves general axes and clears incompatible tilt","undo restores type and bindings"]}
|
||||||
BIN
coverage/glb-machine-manager/machine-type/mill700/xyzac-live.png
Normal file
|
After Width: | Height: | Size: 147 KiB |
4108
coverage/glb-machine-manager/machine-type/mill700/xyzac.json
Normal file
BIN
coverage/glb-machine-manager/machine-type/mill700/xyzbc-live.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
4108
coverage/glb-machine-manager/machine-type/mill700/xyzbc.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# 可导入的 MILL700 验收模型
|
||||||
|
|
||||||
|
这两份 GLB 由三维机床管理器实际保存,均已通过控制面板“导入机床模型”、五轴程序与参数恢复验证。用于演示 AC/BC 文件识别和单自由度映射;由同一个 MILL700 几何资产生成,不代表两台实机的测量标定。
|
||||||
|
|
||||||
|
- `MILL700-xyzac.glb`:XYZAC,主轴 JT1/JT2/JT3 → XYZ,工作台 JT1/JT2 → A/C。
|
||||||
|
- `MILL700-xyzbc.glb`:XYZBC,主轴 JT1/JT2/JT3 → XYZ,工作台 JT1/JT2 → B/C。
|
||||||
|
- 两者测试配置:Z 反向;物理零点 X=5、Z=7 mm,倾转轴=12°、C=9°;C 原点/倾转偏置为 0。
|
||||||
|
- 使用时:控制面板关机且空闲 → 导入机床模型 → 导入 GLB → 选择文件;机型和关节参数从 GLB 自动读取。
|
||||||
|
- 编辑时:三维机床管理 → 导入 GLB 部件 → 单独选择文件,恢复完整设计文档;根据需要核对并修改轴绑定和标定,再保存机床模型 GLB。
|
||||||
BIN
coverage/glb-machine-manager/machine-type/test-xyzbc.glb
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E14",
|
||||||
|
"status": "verified",
|
||||||
|
"url": "http://127.0.0.1:5180/",
|
||||||
|
"checks": [
|
||||||
|
"search expands real nested nodes; axis overview locates selection; binding undo/redo",
|
||||||
|
"empty input preserves last pose; repeated selection/input does not concatenate; single-axis step and reset",
|
||||||
|
"TRT forbidden offset blocks export before build; calibration undo/redo",
|
||||||
|
"view presets and selected fitting; deletion undo restores model with all axis bindings",
|
||||||
|
"failed batch import leaves existing assembly intact",
|
||||||
|
"live mode locks edits; desktop, short viewport and narrow viewport keep footer visible without overflow"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/managed-bc-running.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
coverage/glb-machine-manager/manager-ac-config.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"status": "verified",
|
||||||
|
"baseline": false,
|
||||||
|
"checks": [
|
||||||
|
"manager export retains source PBR colors, roughness, metalness and normal maps",
|
||||||
|
"real m1 and saturated RGB / white / metal / dark material probes render without browser exceptions",
|
||||||
|
"control panel uses the same AgX neutral studio for imported GLBs"
|
||||||
|
],
|
||||||
|
"errors": [],
|
||||||
|
"manager": {
|
||||||
|
"lighting": "neutral-studio-pmrem",
|
||||||
|
"toneMapping": "AgX",
|
||||||
|
"exposure": "1",
|
||||||
|
"meshes": 41
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 57 KiB |
BIN
coverage/glb-machine-manager/material-rendering/after/m1.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"status": "verified",
|
||||||
|
"baseline": true,
|
||||||
|
"checks": [
|
||||||
|
"real m1 and saturated RGB / white / metal / dark material probes render without browser exceptions"
|
||||||
|
],
|
||||||
|
"errors": [],
|
||||||
|
"manager": {
|
||||||
|
"lighting": "studio-pmrem",
|
||||||
|
"exposure": "1.45",
|
||||||
|
"meshes": 41
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/material-rendering/before/m1.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 162 KiB |
626
coverage/glb-machine-manager/mill700/browser.report.json
Normal file
@@ -0,0 +1,626 @@
|
|||||||
|
{
|
||||||
|
"schema": "machine-manager-mill700-browser.v1",
|
||||||
|
"report_id": "GLB-MGR-E05",
|
||||||
|
"status": "verified",
|
||||||
|
"model": {
|
||||||
|
"path": "/home/mes006/linuxcncWebWASM/MILL700-U_1.glb",
|
||||||
|
"bytes": 9418852,
|
||||||
|
"sha256": "bf37130681cc6462412e52744519516e8ade2a3212dd69153c0b1b3e415bcf66"
|
||||||
|
},
|
||||||
|
"checks": [
|
||||||
|
"root and internal node transforms update their local position and posture relative to their parent",
|
||||||
|
"MILL700 JT3 edits preserve parent and sibling transforms; child inherits movement and rotation around the joint origin; values survive reselection and dialog reopening",
|
||||||
|
"reparenting an edited node preserves world pose and subsequent inputs edit that node under its new parent",
|
||||||
|
"selected MILL700 joint displays its local XYZ coordinate system at local origin",
|
||||||
|
"existing 132-node, depth-6 hierarchy displayed as a draggable tree with node origins",
|
||||||
|
"each joint rotates about its own origin while children inherit parent motion",
|
||||||
|
"metallic MILL700 surfaces rendered with studio PMREM lighting; screenshot captured for visual review",
|
||||||
|
"imported model can be deleted and its tree is removed"
|
||||||
|
],
|
||||||
|
"nodeEditing": {
|
||||||
|
"before": {
|
||||||
|
"parent": {
|
||||||
|
"local": [
|
||||||
|
-0.003969311714172363,
|
||||||
|
-0.20427599549293518,
|
||||||
|
0.40563321113586426
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7138478483851618,
|
||||||
|
-0.515726496296395,
|
||||||
|
1.8940227031707764
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sibling": {
|
||||||
|
"local": [
|
||||||
|
0.0031614303588867188,
|
||||||
|
0.12106472253799438,
|
||||||
|
-0.2689887285232544
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7522836493599145,
|
||||||
|
-0.40088159702548765,
|
||||||
|
1.625033974647522
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"child": {
|
||||||
|
"local": [
|
||||||
|
0.0013986825942993164,
|
||||||
|
0.0009530782699584961,
|
||||||
|
-0.8500750064849854
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.4232056214947701,
|
||||||
|
-1.3709958977290349,
|
||||||
|
1.4128730297088623
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"selected": {
|
||||||
|
"local": [
|
||||||
|
-0.02080368995666504,
|
||||||
|
-0.9040489196777344,
|
||||||
|
0.3689253330230713
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.4241939812409632,
|
||||||
|
-1.3723698759677156,
|
||||||
|
2.2629480361938477
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"translated": {
|
||||||
|
"parent": {
|
||||||
|
"local": [
|
||||||
|
-0.003969311714172363,
|
||||||
|
-0.20427599549293518,
|
||||||
|
0.40563321113586426
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7138478483851618,
|
||||||
|
-0.515726496296395,
|
||||||
|
1.8940227031707764
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sibling": {
|
||||||
|
"local": [
|
||||||
|
0.0031614303588867188,
|
||||||
|
0.12106472253799438,
|
||||||
|
-0.2689887285232544
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7522836493599145,
|
||||||
|
-0.40088159702548765,
|
||||||
|
1.625033974647522
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"child": {
|
||||||
|
"local": [
|
||||||
|
0.0013986825942993164,
|
||||||
|
0.0009530782699584961,
|
||||||
|
-0.8500750064849854
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2908934330630653,
|
||||||
|
-1.3228381995092735,
|
||||||
|
1.3688730297088623
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"selected": {
|
||||||
|
"local": [
|
||||||
|
0.12,
|
||||||
|
-0.9040489196777344,
|
||||||
|
0.3249253330230713
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2918817928092583,
|
||||||
|
-1.3242121777479543,
|
||||||
|
2.2189480361938476
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rotated": {
|
||||||
|
"parent": {
|
||||||
|
"local": [
|
||||||
|
-0.003969311714172363,
|
||||||
|
-0.20427599549293518,
|
||||||
|
0.40563321113586426
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7138478483851618,
|
||||||
|
-0.515726496296395,
|
||||||
|
1.8940227031707764
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sibling": {
|
||||||
|
"local": [
|
||||||
|
0.0031614303588867188,
|
||||||
|
0.12106472253799438,
|
||||||
|
-0.2689887285232544
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7522836493599145,
|
||||||
|
-0.40088159702548765,
|
||||||
|
1.625033974647522
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"child": {
|
||||||
|
"local": [
|
||||||
|
0.0013986825942993164,
|
||||||
|
0.0009530782699584961,
|
||||||
|
-0.8500750064849854
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2915667029697908,
|
||||||
|
-1.3225492316931085,
|
||||||
|
1.3688730297088623
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.38268343236508984,
|
||||||
|
0.9238795325112867
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"selected": {
|
||||||
|
"local": [
|
||||||
|
0.12,
|
||||||
|
-0.9040489196777344,
|
||||||
|
0.3249253330230713
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.21643961393810288,
|
||||||
|
0.9762960071199334
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2918817928092583,
|
||||||
|
-1.3242121777479543,
|
||||||
|
2.2189480361938476
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.38268343236508984,
|
||||||
|
0.9238795325112867
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hierarchy": {
|
||||||
|
"root": "MILL700-U_1",
|
||||||
|
"nodes": 132,
|
||||||
|
"meshes": 126,
|
||||||
|
"maxDepth": 6,
|
||||||
|
"materials": 126,
|
||||||
|
"metallic": 110
|
||||||
|
},
|
||||||
|
"motion": {
|
||||||
|
"input": {
|
||||||
|
"x": 10,
|
||||||
|
"y": 20,
|
||||||
|
"z": 30,
|
||||||
|
"a": 15,
|
||||||
|
"c": 45
|
||||||
|
},
|
||||||
|
"baseline": {
|
||||||
|
"base": {
|
||||||
|
"local": [
|
||||||
|
0.1,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.984807753012208
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
0.1,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"x": {
|
||||||
|
"local": [
|
||||||
|
0.4726388454437256,
|
||||||
|
1.681300401687622,
|
||||||
|
-0.9978671073913574
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7799844207142423,
|
||||||
|
-0.3224122661666029,
|
||||||
|
1.488389492034912
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"local": [
|
||||||
|
-0.003969311714172363,
|
||||||
|
-0.20427599549293518,
|
||||||
|
0.40563321113586426
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7138478483851618,
|
||||||
|
-0.515726496296395,
|
||||||
|
1.8940227031707764
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"z": {
|
||||||
|
"local": [
|
||||||
|
0.12,
|
||||||
|
-0.9040489196777344,
|
||||||
|
0.3249253330230713
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.21643961393810288,
|
||||||
|
0.9762960071199334
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2918817928092583,
|
||||||
|
-1.3242121777479543,
|
||||||
|
2.2189480361938476
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.38268343236508984,
|
||||||
|
0.9238795325112867
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tilt": {
|
||||||
|
"local": [
|
||||||
|
0.49799561500549316,
|
||||||
|
1.1399997472763062,
|
||||||
|
-1.6030043363571167
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.571021124066044,
|
||||||
|
-0.8223959707837081,
|
||||||
|
0.8832522630691528
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"local": [
|
||||||
|
-0.00008916854858398438,
|
||||||
|
-0.6340826749801636,
|
||||||
|
-0.08644759654998779
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.3542358677161157,
|
||||||
|
-1.418269278870524,
|
||||||
|
0.796804666519165
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"driven": {
|
||||||
|
"base": {
|
||||||
|
"local": [
|
||||||
|
0.1,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.984807753012208
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
0.1,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"x": {
|
||||||
|
"local": [
|
||||||
|
0.4826388454437256,
|
||||||
|
1.681300401687622,
|
||||||
|
-0.9978671073913574
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7705874945063833,
|
||||||
|
-0.3189920647333462,
|
||||||
|
1.488389492034912
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"local": [
|
||||||
|
-0.003969311714172363,
|
||||||
|
-0.1842759954929352,
|
||||||
|
0.40563321113586426
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.7112913250438162,
|
||||||
|
-0.4935124424474202,
|
||||||
|
1.8940227031707764
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.17364817766693033,
|
||||||
|
0.9848077530122079
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"z": {
|
||||||
|
"local": [
|
||||||
|
0.12,
|
||||||
|
-0.9040489196777344,
|
||||||
|
0.3549253330230713
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.21643961393810288,
|
||||||
|
0.9762960071199334
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.2893252694679127,
|
||||||
|
-1.3019981238989793,
|
||||||
|
2.2489480361938474
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.38268343236508984,
|
||||||
|
0.9238795325112867
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tilt": {
|
||||||
|
"local": [
|
||||||
|
0.49799561500549316,
|
||||||
|
1.1399997472763062,
|
||||||
|
-1.6030043363571167
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0.13052619222005157,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.9914448613738104
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.571021124066044,
|
||||||
|
-0.8223959707837081,
|
||||||
|
0.8832522630691528
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0.12854320606946854,
|
||||||
|
0.022665635416815412,
|
||||||
|
0.1721625934348045,
|
||||||
|
0.9763825861650425
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"local": [
|
||||||
|
-0.00008916854858398438,
|
||||||
|
-0.6340826749801636,
|
||||||
|
-0.08644759654998779
|
||||||
|
],
|
||||||
|
"localQuaternion": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0.3826834323650898,
|
||||||
|
0.9238795325112867
|
||||||
|
],
|
||||||
|
"world": [
|
||||||
|
-1.369277957263005,
|
||||||
|
-1.3769414774990314,
|
||||||
|
0.6356376244864839
|
||||||
|
],
|
||||||
|
"worldQuaternion": [
|
||||||
|
0.12743220028900526,
|
||||||
|
-0.02825103865291858,
|
||||||
|
0.5327029357136194,
|
||||||
|
0.8361761150778141
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/mill700/failure.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
BIN
coverage/glb-machine-manager/mill700/mill700-studio-lighting.png
Normal file
|
After Width: | Height: | Size: 296 KiB |
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"same filenames retain unique selection; model selection clears search and highlights preview",
|
||||||
|
"viewport click picks correct import; orbit drag returning to start does not select",
|
||||||
|
"delete unselected/selected import by ID; undo restores and selects it; redo repairs selection",
|
||||||
|
"deleting parent import preserves separately imported child; undo restores parent link",
|
||||||
|
"last deletion clears preview; undo restores selection from empty state",
|
||||||
|
"real m1 deletion/undo preserves all five bindings; live follow locks deletion",
|
||||||
|
"selection and deletion reachable on short and narrow viewports"
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
BIN
coverage/glb-machine-manager/model-selection/desktop.png
Normal file
|
After Width: | Height: | Size: 202 KiB |
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"report_id": "GLB-MGR-E12-CLOUD",
|
||||||
|
"status": "verified",
|
||||||
|
"checked_at": "2026-09-21T01:39:10.681054+00:00",
|
||||||
|
"url": "https://49.232.250.35:58015/",
|
||||||
|
"source_commit": "91ebd56d6d34ca3f88a73541cfe64f7bef3d8483",
|
||||||
|
"release": "/var/www/linuxcnc-wasm-58015/releases/20260921-linuxcnc-wasm-91ebd56",
|
||||||
|
"archive_sha256": "a4ae18ee92a08af7b532052620d9d349539e4424c0ec2f12e65fa8eafacee1a7",
|
||||||
|
"bundle": "assets/index-CJLtuazD.js",
|
||||||
|
"command": "PLAYWRIGHT_MODULE=/home/mes006/.npm/_npx/e41f203b7505f1fb/node_modules/playwright/index.js MACHINE_MANAGER_URL=https://49.232.250.35:58015/ node scripts/test_machine_manager_mill700_browser.mjs",
|
||||||
|
"report": "coverage/glb-machine-manager/mill700/browser.report.json",
|
||||||
|
"report_sha256": "3555f9efe0cebba79a0bec8afbff8a4a44cc1278d0f36ff737fae9a74e18b9e1",
|
||||||
|
"checks": [
|
||||||
|
"root and internal node transforms update their local position and posture relative to their parent",
|
||||||
|
"MILL700 JT3 edits preserve parent and sibling transforms; child inherits movement and rotation around the joint origin; values survive reselection and dialog reopening",
|
||||||
|
"reparenting an edited node preserves world pose and subsequent inputs edit that node under its new parent",
|
||||||
|
"selected MILL700 joint displays its local XYZ coordinate system at local origin",
|
||||||
|
"existing 132-node, depth-6 hierarchy displayed as a draggable tree with node origins",
|
||||||
|
"each joint rotates about its own origin while children inherit parent motion",
|
||||||
|
"metallic MILL700 surfaces rendered with studio PMREM lighting; screenshot captured for visual review",
|
||||||
|
"imported model can be deleted and its tree is removed"
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 252 KiB |
@@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"schema": "physical-case-glb-browser.v1",
|
||||||
|
"status": "verified",
|
||||||
|
"cases": [
|
||||||
|
{
|
||||||
|
"id": "xyzac-trt",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "xyzbc-trt",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "xyzab-tdr",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bridge-mill-5axiskins",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "max5-maxkins",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hexapod-genhexkins",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "pentapod-pentakins",
|
||||||
|
"tree_nodes": 19,
|
||||||
|
"scene_objects": "22",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "puma-pumakins",
|
||||||
|
"tree_nodes": 19,
|
||||||
|
"scene_objects": "22",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "puma-genserkins",
|
||||||
|
"tree_nodes": 19,
|
||||||
|
"scene_objects": "22",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzab",
|
||||||
|
"tree_nodes": 21,
|
||||||
|
"scene_objects": "24",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzcw",
|
||||||
|
"tree_nodes": 22,
|
||||||
|
"scene_objects": "25",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzya",
|
||||||
|
"tree_nodes": 22,
|
||||||
|
"scene_objects": "25",
|
||||||
|
"rendered": "true"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "scorbot-kins",
|
||||||
|
"tree_nodes": 17,
|
||||||
|
"scene_objects": "20",
|
||||||
|
"rendered": "true"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 265 KiB |
BIN
coverage/glb-machine-manager/physical-cases/max5-maxkins.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
|
After Width: | Height: | Size: 262 KiB |
BIN
coverage/glb-machine-manager/physical-cases/puma-genserkins.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
coverage/glb-machine-manager/physical-cases/puma-pumakins.png
Normal file
|
After Width: | Height: | Size: 249 KiB |
BIN
coverage/glb-machine-manager/physical-cases/scorbot-kins.png
Normal file
|
After Width: | Height: | Size: 249 KiB |
BIN
coverage/glb-machine-manager/physical-cases/trivkins-xyzab.png
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
coverage/glb-machine-manager/physical-cases/trivkins-xyzcw.png
Normal file
|
After Width: | Height: | Size: 252 KiB |
BIN
coverage/glb-machine-manager/physical-cases/trivkins-xyzya.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
coverage/glb-machine-manager/physical-cases/xyzab-tdr.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
coverage/glb-machine-manager/physical-cases/xyzac-trt.png
Normal file
|
After Width: | Height: | Size: 250 KiB |
BIN
coverage/glb-machine-manager/physical-cases/xyzbc-trt.png
Normal file
|
After Width: | Height: | Size: 250 KiB |
|
After Width: | Height: | Size: 182 KiB |
266
coverage/glb-machine-manager/physical-drive/browser.report.json
Normal file
@@ -0,0 +1,266 @@
|
|||||||
|
{
|
||||||
|
"schema": "five-axis-live-models.v1",
|
||||||
|
"url": "http://127.0.0.1:5174/",
|
||||||
|
"cases": [
|
||||||
|
{
|
||||||
|
"id": "xyzac-trt",
|
||||||
|
"coordinates": "XYZAC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"C"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "xyzbc-trt",
|
||||||
|
"coordinates": "XYZBC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "xyzab-tdr",
|
||||||
|
"coordinates": "XYZAB",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"B"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bridge-mill-5axiskins",
|
||||||
|
"coordinates": "XYZBCWY",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C",
|
||||||
|
"W",
|
||||||
|
"Y#2"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C",
|
||||||
|
"W",
|
||||||
|
"Y#2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "max5-maxkins",
|
||||||
|
"coordinates": "XYZBC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C",
|
||||||
|
"J5"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"B",
|
||||||
|
"C",
|
||||||
|
"J5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hexapod-genhexkins",
|
||||||
|
"coordinates": "XYZABC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "pentapod-pentakins",
|
||||||
|
"coordinates": "XYZAB",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "puma-pumakins",
|
||||||
|
"coordinates": "XYZABC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "puma-genserkins",
|
||||||
|
"coordinates": "XYZABC",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4",
|
||||||
|
"J5"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzab",
|
||||||
|
"coordinates": "XYZAB",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"A",
|
||||||
|
"B"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzcw",
|
||||||
|
"coordinates": "XYZCW",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"C",
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"C",
|
||||||
|
"W"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "trivkins-xyzya",
|
||||||
|
"coordinates": "XYZYA",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"Y#2",
|
||||||
|
"A"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"X",
|
||||||
|
"Y",
|
||||||
|
"Z",
|
||||||
|
"Y#2",
|
||||||
|
"A"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "scorbot-kins",
|
||||||
|
"coordinates": "XYZAB",
|
||||||
|
"glbLoaded": true,
|
||||||
|
"slotKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4"
|
||||||
|
],
|
||||||
|
"expectedKeys": [
|
||||||
|
"J0",
|
||||||
|
"J1",
|
||||||
|
"J2",
|
||||||
|
"J3",
|
||||||
|
"J4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"browser_errors": []
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 184 KiB |
BIN
coverage/glb-machine-manager/physical-drive/max5-maxkins.png
Normal file
|
After Width: | Height: | Size: 170 KiB |
|
After Width: | Height: | Size: 179 KiB |
BIN
coverage/glb-machine-manager/physical-drive/puma-genserkins.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
coverage/glb-machine-manager/physical-drive/puma-pumakins.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
coverage/glb-machine-manager/physical-drive/scorbot-kins.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
coverage/glb-machine-manager/physical-drive/trivkins-xyzab.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
coverage/glb-machine-manager/physical-drive/trivkins-xyzcw.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
coverage/glb-machine-manager/physical-drive/trivkins-xyzya.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
coverage/glb-machine-manager/physical-drive/xyzab-tdr.png
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
coverage/glb-machine-manager/physical-drive/xyzac-trt.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
coverage/glb-machine-manager/physical-drive/xyzbc-trt.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"schema": "rtcp-program-library-browser.v1",
|
||||||
|
"status": "verified",
|
||||||
|
"checks": [
|
||||||
|
"AC machine defaults to 15 XYZAC/common programs",
|
||||||
|
"all-source scope retains 32 upstream programs plus 13 case-specific dry-run programs",
|
||||||
|
"support remap is source-readable and execution-disabled",
|
||||||
|
"mismatched XYZAB program is visible and execution-disabled",
|
||||||
|
"XYZAC switchkins test loaded through WASM with canonical source hash and preview",
|
||||||
|
"generated XYZAC native dry-run loaded and completed in the Web control panel",
|
||||||
|
"native Hexapod program switches to its generic WASM machine profile and loads"
|
||||||
|
],
|
||||||
|
"browser_errors": [],
|
||||||
|
"final": {
|
||||||
|
"coordinates": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini",
|
||||||
|
"program_path": "machine-cases/hexapod-genhexkins.ngc",
|
||||||
|
"program_status": "loaded",
|
||||||
|
"source_hash": "fnv1a64:33cc9e04e06ae391"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 180 KiB |