Files
Web_FreeCAD_Bitbybit/config/freecad-cam-path-oracle.json

2850 lines
82 KiB
JSON

{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"generatedBy": "./npmw run probe:freecad-cam-path",
"checkedBy": "./npmw run check:freecad-cam-path",
"runtime": {
"guiUp": true,
"pathModule": ".cache/freecad/install-desktop/Mod/CAM/Path/__init__.py"
},
"profileAlgorithm": {
"commandCount": 32,
"commandSha256": "5fcc36e3fc3c022599096f4110c890401f285b5878030de7c481786470a7a455",
"commands": [
{
"gcode": "(OracleProfile)",
"name": "(OracleProfile)",
"parameters": {}
},
{
"gcode": "(Compensated Tool Path. Diameter: 5.0)",
"name": "(Compensated Tool Path. Diameter: 5.0)",
"parameters": {}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X16.47 Y16.47",
"name": "G0",
"parameters": {
"X": 16.47,
"Y": 16.47
}
},
{
"gcode": "G0 Z14.00",
"name": "G0",
"parameters": {
"Z": 14
}
},
{
"gcode": "G1 X16.47 Y16.47 Z10.00",
"name": "G1",
"parameters": {
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
{
"gcode": "G3 I-2.48 J-2.48 K0.00 X13.93 Y17.50 Z10.00",
"name": "G3",
"parameters": {
"I": -2.48,
"J": -2.48,
"K": 0,
"X": 13.93,
"Y": 17.5,
"Z": 10
}
},
{
"gcode": "G1 X-13.93 Y17.50 Z10.00",
"name": "G1",
"parameters": {
"X": -13.93,
"Y": 17.5,
"Z": 10
}
},
{
"gcode": "G3 I-0.06 J-3.51 K0.00 X-17.50 Y13.93 Z10.00",
"name": "G3",
"parameters": {
"I": -0.06,
"J": -3.51,
"K": 0,
"X": -17.5,
"Y": 13.93,
"Z": 10
}
},
{
"gcode": "G1 X-17.50 Y-13.93 Z10.00",
"name": "G1",
"parameters": {
"X": -17.5,
"Y": -13.93,
"Z": 10
}
},
{
"gcode": "G3 I3.51 J-0.06 K0.00 X-13.93 Y-17.50 Z10.00",
"name": "G3",
"parameters": {
"I": 3.51,
"J": -0.06,
"K": 0,
"X": -13.93,
"Y": -17.5,
"Z": 10
}
},
{
"gcode": "G1 X13.93 Y-17.50 Z10.00",
"name": "G1",
"parameters": {
"X": 13.93,
"Y": -17.5,
"Z": 10
}
},
{
"gcode": "G3 I0.06 J3.51 K0.00 X17.50 Y-13.93 Z10.00",
"name": "G3",
"parameters": {
"I": 0.06,
"J": 3.51,
"K": 0,
"X": 17.5,
"Y": -13.93,
"Z": 10
}
},
{
"gcode": "G1 X17.50 Y13.93 Z10.00",
"name": "G1",
"parameters": {
"X": 17.5,
"Y": 13.93,
"Z": 10
}
},
{
"gcode": "G3 I-3.51 J0.06 K0.00 X16.47 Y16.47 Z10.00",
"name": "G3",
"parameters": {
"I": -3.51,
"J": 0.06,
"K": 0,
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X16.47 Y16.47",
"name": "G0",
"parameters": {
"X": 16.47,
"Y": 16.47
}
},
{
"gcode": "G0 X23.54 Y23.54",
"name": "G0",
"parameters": {
"X": 23.54,
"Y": 23.54
}
},
{
"gcode": "G0 X23.54 Y23.54 Z14.00",
"name": "G0",
"parameters": {
"X": 23.54,
"Y": 23.54,
"Z": 14
}
},
{
"gcode": "G1 X23.54 Y23.54 Z10.00",
"name": "G1",
"parameters": {
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
{
"gcode": "G2 I-9.55 J-9.55 K0.00 X27.50 Y14.00 Z10.00",
"name": "G2",
"parameters": {
"I": -9.55,
"J": -9.55,
"K": 0,
"X": 27.5,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G1 X27.50 Y-14.00 Z10.00",
"name": "G1",
"parameters": {
"X": 27.5,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G2 I-13.50 J0.00 K0.00 X14.00 Y-27.50 Z10.00",
"name": "G2",
"parameters": {
"I": -13.5,
"J": 0,
"K": 0,
"X": 14,
"Y": -27.5,
"Z": 10
}
},
{
"gcode": "G1 X-14.00 Y-27.50 Z10.00",
"name": "G1",
"parameters": {
"X": -14,
"Y": -27.5,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J13.50 K0.00 X-27.50 Y-14.00 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": 13.5,
"K": 0,
"X": -27.5,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G1 X-27.50 Y14.00 Z10.00",
"name": "G1",
"parameters": {
"X": -27.5,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G2 I13.50 J0.00 K0.00 X-14.00 Y27.50 Z10.00",
"name": "G2",
"parameters": {
"I": 13.5,
"J": 0,
"K": 0,
"X": -14,
"Y": 27.5,
"Z": 10
}
},
{
"gcode": "G1 X14.00 Y27.50 Z10.00",
"name": "G1",
"parameters": {
"X": 14,
"Y": 27.5,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J-13.50 K0.00 X23.54 Y23.54 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -13.5,
"K": 0,
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
}
],
"cuttingCommandCount": 20,
"firstCuttingCommand": {
"gcode": "G1 X16.47 Y16.47 Z10.00",
"name": "G1",
"parameters": {
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
"fixture": "Mod/CAM/CAMTests/test_profile.fcstd",
"fixtureSha256": "8691fdf4dd355ec117b415f06e7151ee6e55800ef92e6c08fb6d7e73d3331d1a",
"jobTypeId": "Path::FeaturePython",
"lastCuttingCommand": {
"gcode": "G2 I0.00 J-13.50 K0.00 X23.54 Y23.54 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -13.5,
"K": 0,
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
"modelTypeId": "PartDesign::Body",
"normalizationToleranceMm": 0.01,
"operationTypeId": "Path::FeaturePython",
"pathLength": 396.99,
"pathPropertyType": "Path::PropertyPath",
"variants": [
{
"commandCount": 32,
"commandSha256": "5fcc36e3fc3c022599096f4110c890401f285b5878030de7c481786470a7a455",
"commands": [
{
"gcode": "(OracleProfile)",
"name": "(OracleProfile)",
"parameters": {}
},
{
"gcode": "(Compensated Tool Path. Diameter: 5.0)",
"name": "(Compensated Tool Path. Diameter: 5.0)",
"parameters": {}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X16.47 Y16.47",
"name": "G0",
"parameters": {
"X": 16.47,
"Y": 16.47
}
},
{
"gcode": "G0 Z14.00",
"name": "G0",
"parameters": {
"Z": 14
}
},
{
"gcode": "G1 X16.47 Y16.47 Z10.00",
"name": "G1",
"parameters": {
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
{
"gcode": "G3 I-2.48 J-2.48 K0.00 X13.93 Y17.50 Z10.00",
"name": "G3",
"parameters": {
"I": -2.48,
"J": -2.48,
"K": 0,
"X": 13.93,
"Y": 17.5,
"Z": 10
}
},
{
"gcode": "G1 X-13.93 Y17.50 Z10.00",
"name": "G1",
"parameters": {
"X": -13.93,
"Y": 17.5,
"Z": 10
}
},
{
"gcode": "G3 I-0.06 J-3.51 K0.00 X-17.50 Y13.93 Z10.00",
"name": "G3",
"parameters": {
"I": -0.06,
"J": -3.51,
"K": 0,
"X": -17.5,
"Y": 13.93,
"Z": 10
}
},
{
"gcode": "G1 X-17.50 Y-13.93 Z10.00",
"name": "G1",
"parameters": {
"X": -17.5,
"Y": -13.93,
"Z": 10
}
},
{
"gcode": "G3 I3.51 J-0.06 K0.00 X-13.93 Y-17.50 Z10.00",
"name": "G3",
"parameters": {
"I": 3.51,
"J": -0.06,
"K": 0,
"X": -13.93,
"Y": -17.5,
"Z": 10
}
},
{
"gcode": "G1 X13.93 Y-17.50 Z10.00",
"name": "G1",
"parameters": {
"X": 13.93,
"Y": -17.5,
"Z": 10
}
},
{
"gcode": "G3 I0.06 J3.51 K0.00 X17.50 Y-13.93 Z10.00",
"name": "G3",
"parameters": {
"I": 0.06,
"J": 3.51,
"K": 0,
"X": 17.5,
"Y": -13.93,
"Z": 10
}
},
{
"gcode": "G1 X17.50 Y13.93 Z10.00",
"name": "G1",
"parameters": {
"X": 17.5,
"Y": 13.93,
"Z": 10
}
},
{
"gcode": "G3 I-3.51 J0.06 K0.00 X16.47 Y16.47 Z10.00",
"name": "G3",
"parameters": {
"I": -3.51,
"J": 0.06,
"K": 0,
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X16.47 Y16.47",
"name": "G0",
"parameters": {
"X": 16.47,
"Y": 16.47
}
},
{
"gcode": "G0 X23.54 Y23.54",
"name": "G0",
"parameters": {
"X": 23.54,
"Y": 23.54
}
},
{
"gcode": "G0 X23.54 Y23.54 Z14.00",
"name": "G0",
"parameters": {
"X": 23.54,
"Y": 23.54,
"Z": 14
}
},
{
"gcode": "G1 X23.54 Y23.54 Z10.00",
"name": "G1",
"parameters": {
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
{
"gcode": "G2 I-9.55 J-9.55 K0.00 X27.50 Y14.00 Z10.00",
"name": "G2",
"parameters": {
"I": -9.55,
"J": -9.55,
"K": 0,
"X": 27.5,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G1 X27.50 Y-14.00 Z10.00",
"name": "G1",
"parameters": {
"X": 27.5,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G2 I-13.50 J0.00 K0.00 X14.00 Y-27.50 Z10.00",
"name": "G2",
"parameters": {
"I": -13.5,
"J": 0,
"K": 0,
"X": 14,
"Y": -27.5,
"Z": 10
}
},
{
"gcode": "G1 X-14.00 Y-27.50 Z10.00",
"name": "G1",
"parameters": {
"X": -14,
"Y": -27.5,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J13.50 K0.00 X-27.50 Y-14.00 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": 13.5,
"K": 0,
"X": -27.5,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G1 X-27.50 Y14.00 Z10.00",
"name": "G1",
"parameters": {
"X": -27.5,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G2 I13.50 J0.00 K0.00 X-14.00 Y27.50 Z10.00",
"name": "G2",
"parameters": {
"I": 13.5,
"J": 0,
"K": 0,
"X": -14,
"Y": 27.5,
"Z": 10
}
},
{
"gcode": "G1 X14.00 Y27.50 Z10.00",
"name": "G1",
"parameters": {
"X": 14,
"Y": 27.5,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J-13.50 K0.00 X23.54 Y23.54 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -13.5,
"K": 0,
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
}
],
"cuttingCommandCount": 20,
"direction": "CW",
"firstCuttingCommand": {
"gcode": "G1 X16.47 Y16.47 Z10.00",
"name": "G1",
"parameters": {
"X": 16.47,
"Y": 16.47,
"Z": 10
}
},
"id": "outside-cw-tool-comp",
"lastCuttingCommand": {
"gcode": "G2 I0.00 J-13.50 K0.00 X23.54 Y23.54 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -13.5,
"K": 0,
"X": 23.54,
"Y": 23.54,
"Z": 10
}
},
"pathLength": 396.99,
"useComp": true
},
{
"commandCount": 32,
"commandSha256": "c4c8bc58c4b21bc7be8796ff5d074fbe02656e31a26cc91ee65a67537a7d240a",
"commands": [
{
"gcode": "(OracleProfileNoComp)",
"name": "(OracleProfileNoComp)",
"parameters": {}
},
{
"gcode": "(Uncompensated Tool Path)",
"name": "(Uncompensated Tool Path)",
"parameters": {}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X18.24 Y18.24",
"name": "G0",
"parameters": {
"X": 18.24,
"Y": 18.24
}
},
{
"gcode": "G0 Z14.00",
"name": "G0",
"parameters": {
"Z": 14
}
},
{
"gcode": "G1 X18.24 Y18.24 Z10.00",
"name": "G1",
"parameters": {
"X": 18.24,
"Y": 18.24,
"Z": 10
}
},
{
"gcode": "G3 I-4.24 J-4.24 K0.00 X14.00 Y20.00 Z10.00",
"name": "G3",
"parameters": {
"I": -4.24,
"J": -4.24,
"K": 0,
"X": 14,
"Y": 20,
"Z": 10
}
},
{
"gcode": "G1 X-14.00 Y20.00 Z10.00",
"name": "G1",
"parameters": {
"X": -14,
"Y": 20,
"Z": 10
}
},
{
"gcode": "G3 I0.00 J-6.00 K0.00 X-20.00 Y14.00 Z10.00",
"name": "G3",
"parameters": {
"I": 0,
"J": -6,
"K": 0,
"X": -20,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G1 X-20.00 Y-14.00 Z10.00",
"name": "G1",
"parameters": {
"X": -20,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G3 I6.00 J0.00 K0.00 X-14.00 Y-20.00 Z10.00",
"name": "G3",
"parameters": {
"I": 6,
"J": 0,
"K": 0,
"X": -14,
"Y": -20,
"Z": 10
}
},
{
"gcode": "G1 X14.00 Y-20.00 Z10.00",
"name": "G1",
"parameters": {
"X": 14,
"Y": -20,
"Z": 10
}
},
{
"gcode": "G3 I0.00 J6.00 K0.00 X20.00 Y-14.00 Z10.00",
"name": "G3",
"parameters": {
"I": 0,
"J": 6,
"K": 0,
"X": 20,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G1 X20.00 Y14.00 Z10.00",
"name": "G1",
"parameters": {
"X": 20,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G3 I-6.00 J0.00 K0.00 X18.24 Y18.24 Z10.00",
"name": "G3",
"parameters": {
"I": -6,
"J": 0,
"K": 0,
"X": 18.24,
"Y": 18.24,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
},
{
"gcode": "G0 X18.24 Y18.24",
"name": "G0",
"parameters": {
"X": 18.24,
"Y": 18.24
}
},
{
"gcode": "G0 X21.78 Y21.78",
"name": "G0",
"parameters": {
"X": 21.78,
"Y": 21.78
}
},
{
"gcode": "G0 X21.78 Y21.78 Z14.00",
"name": "G0",
"parameters": {
"X": 21.78,
"Y": 21.78,
"Z": 14
}
},
{
"gcode": "G1 X21.78 Y21.78 Z10.00",
"name": "G1",
"parameters": {
"X": 21.78,
"Y": 21.78,
"Z": 10
}
},
{
"gcode": "G2 I-7.78 J-7.78 K0.00 X25.00 Y14.00 Z10.00",
"name": "G2",
"parameters": {
"I": -7.78,
"J": -7.78,
"K": 0,
"X": 25,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G1 X25.00 Y-14.00 Z10.00",
"name": "G1",
"parameters": {
"X": 25,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G2 I-11.00 J0.00 K0.00 X14.00 Y-25.00 Z10.00",
"name": "G2",
"parameters": {
"I": -11,
"J": 0,
"K": 0,
"X": 14,
"Y": -25,
"Z": 10
}
},
{
"gcode": "G1 X-14.00 Y-25.00 Z10.00",
"name": "G1",
"parameters": {
"X": -14,
"Y": -25,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J11.00 K0.00 X-25.00 Y-14.00 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": 11,
"K": 0,
"X": -25,
"Y": -14,
"Z": 10
}
},
{
"gcode": "G1 X-25.00 Y14.00 Z10.00",
"name": "G1",
"parameters": {
"X": -25,
"Y": 14,
"Z": 10
}
},
{
"gcode": "G2 I11.00 J0.00 K0.00 X-14.00 Y25.00 Z10.00",
"name": "G2",
"parameters": {
"I": 11,
"J": 0,
"K": 0,
"X": -14,
"Y": 25,
"Z": 10
}
},
{
"gcode": "G1 X14.00 Y25.00 Z10.00",
"name": "G1",
"parameters": {
"X": 14,
"Y": 25,
"Z": 10
}
},
{
"gcode": "G2 I0.00 J-11.00 K0.00 X21.78 Y21.78 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -11,
"K": 0,
"X": 21.78,
"Y": 21.78,
"Z": 10
}
},
{
"gcode": "G0 F0.00 Z16.00",
"name": "G0",
"parameters": {
"F": 0,
"Z": 16
}
},
{
"gcode": "G0 Z16.00",
"name": "G0",
"parameters": {
"Z": 16
}
}
],
"cuttingCommandCount": 20,
"direction": "CW",
"firstCuttingCommand": {
"gcode": "G1 X18.24 Y18.24 Z10.00",
"name": "G1",
"parameters": {
"X": 18.24,
"Y": 18.24,
"Z": 10
}
},
"id": "outside-cw-no-comp",
"lastCuttingCommand": {
"gcode": "G2 I0.00 J-11.00 K0.00 X21.78 Y21.78 Z10.00",
"name": "G2",
"parameters": {
"I": 0,
"J": -11,
"K": 0,
"X": 21.78,
"Y": 21.78,
"Z": 10
}
},
"pathLength": 394.13,
"useComp": false
}
]
},
"helixAlgorithm": {
"baseSubElementCount": 9,
"fixture": "Mod/CAM/CAMTests/test_holes00.fcstd",
"fixtureSha256": "781032119db8d718e0a9e2cbf90691e1e496f8f1d292abf40cee25fa6ed9b7bb",
"jobTypeId": "Path::FeaturePython",
"modelTypeId": "PartDesign::Body",
"normalizationToleranceMm": 0.01,
"operationTypeId": "Path::FeaturePython",
"pathPropertyType": "Path::PropertyPath",
"scenarioCount": 4,
"scenarios": [
{
"arcCommandCount": 1260,
"arcNames": [
"G2"
],
"commandCount": 1471,
"commandHistogram": {
"(OracleHelix)": 1,
"(helix cut operation)": 1,
"G0": 164,
"G1": 45,
"G2": 1260
},
"commandSha256": "6499583c26dbf01694abc0a98fdbeb9d240cce0f73d32634284ddfa132030e0b",
"cutMode": "Conventional",
"direction": "CW",
"expectedArc": "G2",
"expectedDirection": "CW",
"firstArcCommand": {
"gcode": "G2 F0.00 I-0.05 J0.00 X9.95 Y0.00 Z0.58",
"name": "G2",
"parameters": {
"F": 0,
"I": -0.05,
"J": 0,
"X": 9.95,
"Y": 0,
"Z": 0.58
}
},
"id": "inside-conventional",
"lastArcCommand": {
"gcode": "G2 F0.00 I4.05 J0.00 X94.05 Y0.00 Z-10.00",
"name": "G2",
"parameters": {
"F": 0,
"I": 4.05,
"J": 0,
"X": 94.05,
"Y": 0,
"Z": -10
}
},
"pathLength": 1381.87,
"startSide": "Inside"
},
{
"arcCommandCount": 1260,
"arcNames": [
"G2"
],
"commandCount": 1427,
"commandHistogram": {
"(OracleHelix)": 1,
"(helix cut operation)": 1,
"G0": 120,
"G1": 45,
"G2": 1260
},
"commandSha256": "37ee85fe360bfa82235f1b7aefce31cb7150900bb8d6f08751741fce6df18626",
"cutMode": "Climb",
"direction": "CW",
"expectedArc": "G2",
"expectedDirection": "CW",
"firstArcCommand": {
"gcode": "G2 F0.00 I-0.05 J0.00 X9.95 Y0.00 Z0.58",
"name": "G2",
"parameters": {
"F": 0,
"I": -0.05,
"J": 0,
"X": 9.95,
"Y": 0,
"Z": 0.58
}
},
"id": "outside-climb",
"lastArcCommand": {
"gcode": "G2 F0.00 I0.45 J0.00 X90.45 Y0.00 Z-10.00",
"name": "G2",
"parameters": {
"F": 0,
"I": 0.45,
"J": 0,
"X": 90.45,
"Y": 0,
"Z": -10
}
},
"pathLength": 1269.92,
"startSide": "Outside"
},
{
"arcCommandCount": 1260,
"arcNames": [
"G3"
],
"commandCount": 1471,
"commandHistogram": {
"(OracleHelix)": 1,
"(helix cut operation)": 1,
"G0": 164,
"G1": 45,
"G3": 1260
},
"commandSha256": "f2fd26ca11be5efb037f809fb65949d24956f6ce330f87d152d2674770a27bd8",
"cutMode": "Climb",
"direction": "CCW",
"expectedArc": "G3",
"expectedDirection": "CCW",
"firstArcCommand": {
"gcode": "G3 F0.00 I-0.05 J0.00 X9.95 Y0.00 Z0.58",
"name": "G3",
"parameters": {
"F": 0,
"I": -0.05,
"J": 0,
"X": 9.95,
"Y": 0,
"Z": 0.58
}
},
"id": "inside-climb",
"lastArcCommand": {
"gcode": "G3 F0.00 I4.05 J0.00 X94.05 Y0.00 Z-10.00",
"name": "G3",
"parameters": {
"F": 0,
"I": 4.05,
"J": 0,
"X": 94.05,
"Y": 0,
"Z": -10
}
},
"pathLength": 1381.87,
"startSide": "Inside"
},
{
"arcCommandCount": 1260,
"arcNames": [
"G3"
],
"commandCount": 1427,
"commandHistogram": {
"(OracleHelix)": 1,
"(helix cut operation)": 1,
"G0": 120,
"G1": 45,
"G3": 1260
},
"commandSha256": "0220f90245a74a50c1a54cb501439d14e7370d9d9d34fcc89dccdaff345688b7",
"cutMode": "Conventional",
"direction": "CCW",
"expectedArc": "G3",
"expectedDirection": "CCW",
"firstArcCommand": {
"gcode": "G3 F0.00 I-0.05 J0.00 X9.95 Y0.00 Z0.58",
"name": "G3",
"parameters": {
"F": 0,
"I": -0.05,
"J": 0,
"X": 9.95,
"Y": 0,
"Z": 0.58
}
},
"id": "outside-conventional",
"lastArcCommand": {
"gcode": "G3 F0.00 I0.45 J0.00 X90.45 Y0.00 Z-10.00",
"name": "G3",
"parameters": {
"F": 0,
"I": 0.45,
"J": 0,
"X": 90.45,
"Y": 0,
"Z": -10
}
},
"pathLength": 1269.92,
"startSide": "Outside"
}
],
"toolDiameterMm": 0.9
},
"qtDynamicOracle": {
"activeWorkbench": "CAMWorkbench",
"camCommandCount": 56,
"camCommands": [
"CAM_Adaptive",
"CAM_Area",
"CAM_Area_Workplane",
"CAM_Array",
"CAM_Comment",
"CAM_Compound",
"CAM_Custom",
"CAM_Deburr",
"CAM_DressupArray",
"CAM_DressupAxisMap",
"CAM_DressupDogbone",
"CAM_DressupDragKnife",
"CAM_DressupLeadInOut",
"CAM_DressupPathBoundary",
"CAM_DressupRampEntry",
"CAM_DressupTag",
"CAM_DressupTools",
"CAM_DressupZCorrect",
"CAM_Drilling",
"CAM_Engrave",
"CAM_EngraveTools",
"CAM_ExportTemplate",
"CAM_Fixture",
"CAM_Helix",
"CAM_Inspect",
"CAM_Job",
"CAM_MillFace",
"CAM_OpActiveToggle",
"CAM_OperationCopy",
"CAM_PathShapeTC",
"CAM_Pocket3D",
"CAM_Pocket_Shape",
"CAM_Post",
"CAM_Probe",
"CAM_Profile",
"CAM_PropertyBag",
"CAM_Sanity",
"CAM_SelectLoop",
"CAM_SetStartPoint",
"CAM_Shape",
"CAM_SimTools",
"CAM_SimpleCopy",
"CAM_Simulator",
"CAM_SimulatorGL",
"CAM_Slot",
"CAM_Stop",
"CAM_Tapping",
"CAM_ThreadMilling",
"CAM_ToolBitCreate",
"CAM_ToolBitDock",
"CAM_ToolBitLibraryOpen",
"CAM_ToolBitLoad",
"CAM_ToolBitSave",
"CAM_ToolBitSaveAs",
"CAM_ToolController",
"CAM_Vcarve"
],
"guiUp": true,
"menuCount": 1,
"menus": [
{
"commands": [
"CAM_Adaptive",
"CAM_Array",
"CAM_Comment",
"CAM_Custom",
"CAM_Deburr",
"CAM_DressupArray",
"CAM_DressupAxisMap",
"CAM_DressupDogbone",
"CAM_DressupDragKnife",
"CAM_DressupLeadInOut",
"CAM_DressupPathBoundary",
"CAM_DressupRampEntry",
"CAM_DressupTag",
"CAM_DressupZCorrect",
"CAM_Drilling",
"CAM_Engrave",
"CAM_ExportTemplate",
"CAM_Helix",
"CAM_Inspect",
"CAM_Job",
"CAM_MillFace",
"CAM_OpActiveToggle",
"CAM_OperationCopy",
"CAM_Pocket3D",
"CAM_Pocket_Shape",
"CAM_Post",
"CAM_Probe",
"CAM_Profile",
"CAM_PropertyBag",
"CAM_Sanity",
"CAM_SelectLoop",
"CAM_SimpleCopy",
"CAM_Simulator",
"CAM_SimulatorGL",
"CAM_Slot",
"CAM_Stop",
"CAM_ToolBitDock",
"CAM_ToolBitLibraryOpen",
"CAM_Vcarve"
],
"title": "CAM"
}
],
"qtVersion": "6.8.2",
"registeredCommandCount": 513,
"requiredCommands": [
{
"emptyDocument": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Job",
"registered": true,
"shortcut": "P, J",
"text": "New Job",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>New Job</b> (P, J)</p><p style='white-space:pre; margin:0;'>Creates a CAM job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Job</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Job",
"registered": true,
"shortcut": "P, J",
"text": "New Job",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>New Job</b> (P, J)</p><p style='white-space:pre; margin:0;'>Creates a CAM job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Job</i></p>",
"visible": true
},
"id": "CAM_Job",
"selectedJob": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Job",
"registered": true,
"shortcut": "P, J",
"text": "New Job",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>New Job</b> (P, J)</p><p style='white-space:pre; margin:0;'>Creates a CAM job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Job</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Job",
"registered": true,
"shortcut": "P, J",
"text": "New Job",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>New Job</b> (P, J)</p><p style='white-space:pre; margin:0;'>Creates a CAM job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Job</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Job",
"registered": true,
"shortcut": "P, J",
"text": "New Job",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>New Job</b> (P, J)</p><p style='white-space:pre; margin:0;'>Creates a CAM job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Job</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Profile",
"registered": true,
"shortcut": "",
"text": "Profile",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Profile</b></p><p style='white-space:pre; margin:0;'>Profile entire model, selected face(s) or selected edge(s)</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Profile</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Profile",
"registered": true,
"shortcut": "",
"text": "Profile",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Profile</b></p><p style='white-space:pre; margin:0;'>Profile entire model, selected face(s) or selected edge(s)</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Profile</i></p>",
"visible": true
},
"id": "CAM_Profile",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Profile",
"registered": true,
"shortcut": "",
"text": "Profile",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Profile</b></p><p style='white-space:pre; margin:0;'>Profile entire model, selected face(s) or selected edge(s)</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Profile</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Profile",
"registered": true,
"shortcut": "",
"text": "Profile",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Profile</b></p><p style='white-space:pre; margin:0;'>Profile entire model, selected face(s) or selected edge(s)</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Profile</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Profile",
"registered": true,
"shortcut": "",
"text": "Profile",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Profile</b></p><p style='white-space:pre; margin:0;'>Profile entire model, selected face(s) or selected edge(s)</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Profile</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket_Shape",
"registered": true,
"shortcut": "",
"text": "Pocket Shape",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Pocket Shape</b></p><p style='white-space:pre; margin:0;'>Creates a pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket_Shape</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket_Shape",
"registered": true,
"shortcut": "",
"text": "Pocket Shape",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Pocket Shape</b></p><p style='white-space:pre; margin:0;'>Creates a pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket_Shape</i></p>",
"visible": true
},
"id": "CAM_Pocket_Shape",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket_Shape",
"registered": true,
"shortcut": "",
"text": "Pocket Shape",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Pocket Shape</b></p><p style='white-space:pre; margin:0;'>Creates a pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket_Shape</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket_Shape",
"registered": true,
"shortcut": "",
"text": "Pocket Shape",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Pocket Shape</b></p><p style='white-space:pre; margin:0;'>Creates a pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket_Shape</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket_Shape",
"registered": true,
"shortcut": "",
"text": "Pocket Shape",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Pocket Shape</b></p><p style='white-space:pre; margin:0;'>Creates a pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket_Shape</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Drilling",
"registered": true,
"shortcut": "",
"text": "Drilling",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Drilling</b></p><p style='white-space:pre; margin:0;'>Creates a Drilling toolpath from the features of a base</p>object<p style='white-space:pre; margin-top:0.5em;'><i>CAM_Drilling</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Drilling",
"registered": true,
"shortcut": "",
"text": "Drilling",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Drilling</b></p><p style='white-space:pre; margin:0;'>Creates a Drilling toolpath from the features of a base</p>object<p style='white-space:pre; margin-top:0.5em;'><i>CAM_Drilling</i></p>",
"visible": true
},
"id": "CAM_Drilling",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Drilling",
"registered": true,
"shortcut": "",
"text": "Drilling",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Drilling</b></p><p style='white-space:pre; margin:0;'>Creates a Drilling toolpath from the features of a base</p>object<p style='white-space:pre; margin-top:0.5em;'><i>CAM_Drilling</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Drilling",
"registered": true,
"shortcut": "",
"text": "Drilling",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Drilling</b></p><p style='white-space:pre; margin:0;'>Creates a Drilling toolpath from the features of a base</p>object<p style='white-space:pre; margin-top:0.5em;'><i>CAM_Drilling</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Drilling",
"registered": true,
"shortcut": "",
"text": "Drilling",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Drilling</b></p><p style='white-space:pre; margin:0;'>Creates a Drilling toolpath from the features of a base</p>object<p style='white-space:pre; margin-top:0.5em;'><i>CAM_Drilling</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Adaptive",
"registered": true,
"shortcut": "",
"text": "Adaptive",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Adaptive</b></p><p style='white-space:pre; margin:0;'>Adaptive clearing and profiling</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Adaptive</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Adaptive",
"registered": true,
"shortcut": "",
"text": "Adaptive",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Adaptive</b></p><p style='white-space:pre; margin:0;'>Adaptive clearing and profiling</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Adaptive</i></p>",
"visible": true
},
"id": "CAM_Adaptive",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Adaptive",
"registered": true,
"shortcut": "",
"text": "Adaptive",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Adaptive</b></p><p style='white-space:pre; margin:0;'>Adaptive clearing and profiling</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Adaptive</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Adaptive",
"registered": true,
"shortcut": "",
"text": "Adaptive",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Adaptive</b></p><p style='white-space:pre; margin:0;'>Adaptive clearing and profiling</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Adaptive</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Adaptive",
"registered": true,
"shortcut": "",
"text": "Adaptive",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Adaptive</b></p><p style='white-space:pre; margin:0;'>Adaptive clearing and profiling</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Adaptive</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket3D",
"registered": true,
"shortcut": "",
"text": "3D Pocket",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>3D Pocket</b></p><p style='white-space:pre; margin:0;'>Creates a 3D Pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket3D</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket3D",
"registered": true,
"shortcut": "",
"text": "3D Pocket",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>3D Pocket</b></p><p style='white-space:pre; margin:0;'>Creates a 3D Pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket3D</i></p>",
"visible": true
},
"id": "CAM_Pocket3D",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket3D",
"registered": true,
"shortcut": "",
"text": "3D Pocket",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>3D Pocket</b></p><p style='white-space:pre; margin:0;'>Creates a 3D Pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket3D</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket3D",
"registered": true,
"shortcut": "",
"text": "3D Pocket",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>3D Pocket</b></p><p style='white-space:pre; margin:0;'>Creates a 3D Pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket3D</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Pocket3D",
"registered": true,
"shortcut": "",
"text": "3D Pocket",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>3D Pocket</b></p><p style='white-space:pre; margin:0;'>Creates a 3D Pocket toolpath from a face or faces</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Pocket3D</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Post",
"registered": true,
"shortcut": "P, P",
"text": "Post Process",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Post Process</b> (P, P)</p><p style='white-space:pre; margin:0;'>Post Processes the selected job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Post</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Post",
"registered": true,
"shortcut": "P, P",
"text": "Post Process",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Post Process</b> (P, P)</p><p style='white-space:pre; margin:0;'>Post Processes the selected job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Post</i></p>",
"visible": true
},
"id": "CAM_Post",
"selectedJob": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Post",
"registered": true,
"shortcut": "P, P",
"text": "Post Process",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Post Process</b> (P, P)</p><p style='white-space:pre; margin:0;'>Post Processes the selected job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Post</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Post",
"registered": true,
"shortcut": "P, P",
"text": "Post Process",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Post Process</b> (P, P)</p><p style='white-space:pre; margin:0;'>Post Processes the selected job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Post</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Post",
"registered": true,
"shortcut": "P, P",
"text": "Post Process",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Post Process</b> (P, P)</p><p style='white-space:pre; margin:0;'>Post Processes the selected job</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Post</i></p>",
"visible": true
},
"selectionChangesEnabledState": true
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Simulator",
"registered": true,
"shortcut": "P, M",
"text": "Legacy CAM Simulator",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Legacy CAM Simulator</b> (P, M)</p><p style='white-space:pre; margin:0;'>Simulates G-code on stock</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Simulator</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Simulator",
"registered": true,
"shortcut": "P, M",
"text": "Legacy CAM Simulator",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Legacy CAM Simulator</b> (P, M)</p><p style='white-space:pre; margin:0;'>Simulates G-code on stock</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Simulator</i></p>",
"visible": true
},
"id": "CAM_Simulator",
"selectedJob": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Simulator",
"registered": true,
"shortcut": "P, M",
"text": "Legacy CAM Simulator",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Legacy CAM Simulator</b> (P, M)</p><p style='white-space:pre; margin:0;'>Simulates G-code on stock</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Simulator</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Simulator",
"registered": true,
"shortcut": "P, M",
"text": "Legacy CAM Simulator",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Legacy CAM Simulator</b> (P, M)</p><p style='white-space:pre; margin:0;'>Simulates G-code on stock</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Simulator</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Simulator",
"registered": true,
"shortcut": "P, M",
"text": "Legacy CAM Simulator",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Legacy CAM Simulator</b> (P, M)</p><p style='white-space:pre; margin:0;'>Simulates G-code on stock</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Simulator</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Sanity",
"registered": true,
"shortcut": "P, S",
"text": "Sanity Check",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Sanity Check</b> (P, S)</p><p style='white-space:pre; margin:0;'>Checks the CAM job for common errors</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Sanity</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Sanity",
"registered": true,
"shortcut": "P, S",
"text": "Sanity Check",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Sanity Check</b> (P, S)</p><p style='white-space:pre; margin:0;'>Checks the CAM job for common errors</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Sanity</i></p>",
"visible": true
},
"id": "CAM_Sanity",
"selectedJob": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_Sanity",
"registered": true,
"shortcut": "P, S",
"text": "Sanity Check",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Sanity Check</b> (P, S)</p><p style='white-space:pre; margin:0;'>Checks the CAM job for common errors</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Sanity</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Sanity",
"registered": true,
"shortcut": "P, S",
"text": "Sanity Check",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Sanity Check</b> (P, S)</p><p style='white-space:pre; margin:0;'>Checks the CAM job for common errors</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Sanity</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": false,
"iconPresent": true,
"objectName": "CAM_Sanity",
"registered": true,
"shortcut": "P, S",
"text": "Sanity Check",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Sanity Check</b> (P, S)</p><p style='white-space:pre; margin:0;'>Checks the CAM job for common errors</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_Sanity</i></p>",
"visible": true
},
"selectionChangesEnabledState": true
},
{
"emptyDocument": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_ToolBitDock",
"registered": true,
"shortcut": "P, T",
"text": "Add toolbit…",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Add toolbit…</b> (P, T)</p><p style='white-space:pre; margin:0;'>Opens the toolbit selection dialog</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_ToolBitDock</i></p>",
"visible": true
},
"emptySelection": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_ToolBitDock",
"registered": true,
"shortcut": "P, T",
"text": "Add toolbit…",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Add toolbit…</b> (P, T)</p><p style='white-space:pre; margin:0;'>Opens the toolbit selection dialog</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_ToolBitDock</i></p>",
"visible": true
},
"id": "CAM_ToolBitDock",
"selectedJob": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_ToolBitDock",
"registered": true,
"shortcut": "P, T",
"text": "Add toolbit…",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Add toolbit…</b> (P, T)</p><p style='white-space:pre; margin:0;'>Opens the toolbit selection dialog</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_ToolBitDock</i></p>",
"visible": true
},
"selectedModel": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_ToolBitDock",
"registered": true,
"shortcut": "P, T",
"text": "Add toolbit…",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Add toolbit…</b> (P, T)</p><p style='white-space:pre; margin:0;'>Opens the toolbit selection dialog</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_ToolBitDock</i></p>",
"visible": true
},
"selectedOperation": {
"actionCount": 1,
"enabled": true,
"iconPresent": true,
"objectName": "CAM_ToolBitDock",
"registered": true,
"shortcut": "P, T",
"text": "Add toolbit…",
"toolTip": "<p style='white-space:pre; margin-bottom:0.5em;'><b>Add toolbit…</b> (P, T)</p><p style='white-space:pre; margin:0;'>Opens the toolbit selection dialog</p><p style='white-space:pre; margin-top:0.5em;'><i>CAM_ToolBitDock</i></p>",
"visible": true
},
"selectionChangesEnabledState": false
}
],
"taskLifecycleVerified": true,
"taskLifecycles": [
{
"action": "cancel",
"active": {
"activeDialog": true,
"buttonBoxCount": 1,
"buttonTexts": [
{
"default": true,
"enabled": true,
"role": "ButtonRole.AcceptRole",
"text": "OK"
},
{
"default": false,
"enabled": true,
"role": "ButtonRole.RejectRole",
"text": "Cancel"
}
],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox",
"QLineEdit"
],
"fieldCount": 14,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "OracleJob",
"phase": "active"
},
"before": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "before"
},
"buttonClicked": true,
"closed": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "closed"
},
"dialogClosed": true,
"dialogOpened": true,
"objectName": "OracleJob",
"setEditAccepted": true
},
{
"action": "accept",
"active": {
"activeDialog": true,
"buttonBoxCount": 1,
"buttonTexts": [
{
"default": true,
"enabled": true,
"role": "ButtonRole.AcceptRole",
"text": "OK"
},
{
"default": false,
"enabled": true,
"role": "ButtonRole.RejectRole",
"text": "Cancel"
}
],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox",
"QLineEdit"
],
"fieldCount": 14,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "OracleProfile",
"phase": "active"
},
"before": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "before"
},
"buttonClicked": true,
"closed": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "closed"
},
"dialogClosed": true,
"dialogOpened": true,
"objectName": "OracleProfile",
"setEditAccepted": true
},
{
"action": "cancel",
"active": {
"activeDialog": true,
"buttonBoxCount": 1,
"buttonTexts": [
{
"default": true,
"enabled": true,
"role": "ButtonRole.AcceptRole",
"text": "OK"
},
{
"default": false,
"enabled": true,
"role": "ButtonRole.RejectRole",
"text": "Cancel"
}
],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox",
"QLineEdit"
],
"fieldCount": 14,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "OracleProfile",
"phase": "active"
},
"before": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "before"
},
"buttonClicked": true,
"closed": {
"activeDialog": false,
"buttonBoxCount": 0,
"buttonTexts": [],
"fieldClasses": [
"Gui::WorkbenchComboBox",
"QComboBox"
],
"fieldCount": 4,
"focus": {
"className": "Gui::View3DInventorViewer",
"objectName": ""
},
"inEdit": "",
"phase": "closed"
},
"dialogClosed": true,
"dialogOpened": true,
"objectName": "OracleProfile",
"setEditAccepted": true
}
],
"toolbarCount": 4,
"toolbars": [
{
"commands": [
"CAM_Profile",
"CAM_Pocket_Shape",
"CAM_MillFace",
"CAM_Helix",
"CAM_Adaptive",
"CAM_Slot",
"CAM_Drilling",
"CAM_EngraveTools",
"CAM_Pocket3D"
],
"objectName": "New Operations",
"title": "New Operations",
"visible": true
},
{
"commands": [
"CAM_OperationCopy",
"CAM_Array",
"CAM_SimpleCopy",
"CAM_DressupTools"
],
"objectName": "Path Modification",
"title": "Path Modification",
"visible": true
},
{
"commands": [
"CAM_Job",
"CAM_Post",
"CAM_Sanity"
],
"objectName": "Project Setup",
"title": "Project Setup",
"visible": true
},
{
"commands": [
"CAM_SimTools",
"CAM_Inspect",
"CAM_SelectLoop",
"CAM_OpActiveToggle",
"CAM_ToolBitDock"
],
"objectName": "Tool Commands",
"title": "Tool Commands",
"visible": true
}
],
"workbench": "CAMWorkbench"
},
"fcstdRoundTrip": {
"mutated": {
"path": ".cache/freecad/cam-path-oracle/native-path-mutated.FCStd",
"semanticSha256": "a1c96ef56e389231a5df8ee9c9eeabf50cd672f054b815da556cf6c08e80839c"
},
"mutatedReopened": [
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 6,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
},
{
"gcode": "M5",
"name": "M5",
"parameters": {}
}
],
"label": "Native Path Mutated",
"length": 55.734951427,
"name": "NativePath",
"oracleTag": "native-v2",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::Feature"
},
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 6,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
},
{
"gcode": "M2",
"name": "M2",
"parameters": {}
}
],
"label": "Python Path Mutated",
"length": 55.734951427,
"name": "PythonPath",
"oracleTag": "python-v2",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::FeaturePython"
}
],
"source": {
"path": ".cache/freecad/cam-path-oracle/native-path-source.FCStd",
"semanticSha256": "15b474368316253a6cec05792c5af19b9bba398389b5c651db4076bbccf8dd57"
},
"sourceBeforeClose": [
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Native Path Original",
"length": 55.734951427,
"name": "NativePath",
"oracleTag": "native-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::Feature"
},
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Python Path Original",
"length": 55.734951427,
"name": "PythonPath",
"oracleTag": "python-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::FeaturePython"
}
],
"sourceReopened": [
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Native Path Original",
"length": 55.734951427,
"name": "NativePath",
"oracleTag": "native-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::Feature"
},
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Python Path Original",
"length": 55.734951427,
"name": "PythonPath",
"oracleTag": "python-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::FeaturePython"
}
],
"webInspection": {
"objectTypes": [
"Path::Feature",
"Path::FeaturePython"
],
"pathPropertyTypes": [
"Path::PropertyPath",
"Path::PropertyPath"
],
"compatibility": {
"level": "blocked",
"readOnly": true,
"codeExecutionBlocked": true,
"recognizedObjects": 1,
"proxyObjects": 0,
"blockedObjects": 1,
"unknownTypeIds": [],
"warnings": [
"1 Python-backed object(s) require a non-executing proxy."
]
},
"proxyReadOnly": true
},
"webTransparentPreservation": {
"archive": {
"path": ".cache/freecad/cam-path-oracle/web-preserved.FCStd",
"semanticSha256": "15b474368316253a6cec05792c5af19b9bba398389b5c651db4076bbccf8dd57"
},
"byteExact": true,
"nativeReopenVerified": true,
"objects": [
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Native Path Original",
"length": 55.734951427,
"name": "NativePath",
"oracleTag": "native-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::Feature"
},
{
"boundingBox": {
"max": [
20,
20,
5
],
"min": [
0,
0,
0
]
},
"commandCount": 5,
"commands": [
{
"gcode": "G0 X0.000000000 Y0.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 0,
"Y": 0,
"Z": 5
}
},
{
"gcode": "G1 F120.000000000 X0.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 120,
"X": 0,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G1 F300.000000000 X20.000000000 Y0.000000000 Z0.000000000",
"name": "G1",
"parameters": {
"F": 300,
"X": 20,
"Y": 0,
"Z": 0
}
},
{
"gcode": "G2 F300.000000000 I0.000000000 J10.000000000 X20.000000000 Y20.000000000",
"name": "G2",
"parameters": {
"F": 300,
"I": 0,
"J": 10,
"X": 20,
"Y": 20
}
},
{
"gcode": "G0 X20.000000000 Y20.000000000 Z5.000000000",
"name": "G0",
"parameters": {
"X": 20,
"Y": 20,
"Z": 5
}
}
],
"label": "Python Path Original",
"length": 55.734951427,
"name": "PythonPath",
"oracleTag": "python-v1",
"pathPropertyType": "Path::PropertyPath",
"typeId": "Path::FeaturePython"
}
]
},
"webEditablePathProperty": {
"objectName": "NativePath",
"resourcePath": "NativePath.nc",
"sourceCommandCount": 5,
"editedCommandCount": 6,
"lastCommand": {
"name": "M3",
"parameters": {
"S": 12000
}
},
"nativeReopenVerified": true,
"featurePythonExecutionBlocked": true
},
"webEditableFeaturePythonPathProperty": {
"objectName": "PythonPath",
"resourcePath": "PythonPath.nc",
"sourceCommandCount": 5,
"editedCommandCount": 6,
"lastCommand": {
"name": "M2",
"parameters": {}
},
"nativeReopenVerified": true,
"scriptExecution": "blocked",
"optInRequired": true
}
},
"claims": {
"nativeProfilePathAlgorithm": "verified",
"nativeHelixPathAlgorithm": "verified-four-direction-cases",
"qtCamWorkbenchDynamicOracle": "verified",
"nativePathFeatureFcstdSaveOpenMutateSaveOpen": "verified",
"nativeWebNativePathFcstdTransparentRoundTrip": "verified",
"webEditablePathPropertyCodec": "verified-native-path-feature",
"webEditableFeaturePythonPathResourceCodec": "verified-safe-resource-only-opt-in"
},
"boundary": {
"exactEvidence": "FreeCAD 1.1.1 executes compensated/uncompensated Profile and four Helix direction cases, exposes live Qt CAM actions, and reopens both Path object types after native and byte-transparent Web round-trips.",
"remainingGap": "FeaturePython Path::PropertyPath resource editing is now an explicit safe opt-in that never executes Python; FeaturePython operation metadata, recompute behavior and algorithms beyond the locked Profile/Helix scenarios remain unclaimed.",
"exactParityClaim": false
},
"status": "verified-with-native-path-editable-subset"
}