{ "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": "

New Job (P, J)

Creates a CAM job

CAM_Job

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Job", "registered": true, "shortcut": "P, J", "text": "New Job", "toolTip": "

New Job (P, J)

Creates a CAM job

CAM_Job

", "visible": true }, "id": "CAM_Job", "selectedJob": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Job", "registered": true, "shortcut": "P, J", "text": "New Job", "toolTip": "

New Job (P, J)

Creates a CAM job

CAM_Job

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Job", "registered": true, "shortcut": "P, J", "text": "New Job", "toolTip": "

New Job (P, J)

Creates a CAM job

CAM_Job

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Job", "registered": true, "shortcut": "P, J", "text": "New Job", "toolTip": "

New Job (P, J)

Creates a CAM job

CAM_Job

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Profile", "registered": true, "shortcut": "", "text": "Profile", "toolTip": "

Profile

Profile entire model, selected face(s) or selected edge(s)

CAM_Profile

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Profile", "registered": true, "shortcut": "", "text": "Profile", "toolTip": "

Profile

Profile entire model, selected face(s) or selected edge(s)

CAM_Profile

", "visible": true }, "id": "CAM_Profile", "selectedJob": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Profile", "registered": true, "shortcut": "", "text": "Profile", "toolTip": "

Profile

Profile entire model, selected face(s) or selected edge(s)

CAM_Profile

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Profile", "registered": true, "shortcut": "", "text": "Profile", "toolTip": "

Profile

Profile entire model, selected face(s) or selected edge(s)

CAM_Profile

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Profile", "registered": true, "shortcut": "", "text": "Profile", "toolTip": "

Profile

Profile entire model, selected face(s) or selected edge(s)

CAM_Profile

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket_Shape", "registered": true, "shortcut": "", "text": "Pocket Shape", "toolTip": "

Pocket Shape

Creates a pocket toolpath from a face or faces

CAM_Pocket_Shape

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket_Shape", "registered": true, "shortcut": "", "text": "Pocket Shape", "toolTip": "

Pocket Shape

Creates a pocket toolpath from a face or faces

CAM_Pocket_Shape

", "visible": true }, "id": "CAM_Pocket_Shape", "selectedJob": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket_Shape", "registered": true, "shortcut": "", "text": "Pocket Shape", "toolTip": "

Pocket Shape

Creates a pocket toolpath from a face or faces

CAM_Pocket_Shape

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket_Shape", "registered": true, "shortcut": "", "text": "Pocket Shape", "toolTip": "

Pocket Shape

Creates a pocket toolpath from a face or faces

CAM_Pocket_Shape

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket_Shape", "registered": true, "shortcut": "", "text": "Pocket Shape", "toolTip": "

Pocket Shape

Creates a pocket toolpath from a face or faces

CAM_Pocket_Shape

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Drilling", "registered": true, "shortcut": "", "text": "Drilling", "toolTip": "

Drilling

Creates a Drilling toolpath from the features of a base

object

CAM_Drilling

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Drilling", "registered": true, "shortcut": "", "text": "Drilling", "toolTip": "

Drilling

Creates a Drilling toolpath from the features of a base

object

CAM_Drilling

", "visible": true }, "id": "CAM_Drilling", "selectedJob": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Drilling", "registered": true, "shortcut": "", "text": "Drilling", "toolTip": "

Drilling

Creates a Drilling toolpath from the features of a base

object

CAM_Drilling

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Drilling", "registered": true, "shortcut": "", "text": "Drilling", "toolTip": "

Drilling

Creates a Drilling toolpath from the features of a base

object

CAM_Drilling

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Drilling", "registered": true, "shortcut": "", "text": "Drilling", "toolTip": "

Drilling

Creates a Drilling toolpath from the features of a base

object

CAM_Drilling

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Adaptive", "registered": true, "shortcut": "", "text": "Adaptive", "toolTip": "

Adaptive

Adaptive clearing and profiling

CAM_Adaptive

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Adaptive", "registered": true, "shortcut": "", "text": "Adaptive", "toolTip": "

Adaptive

Adaptive clearing and profiling

CAM_Adaptive

", "visible": true }, "id": "CAM_Adaptive", "selectedJob": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Adaptive", "registered": true, "shortcut": "", "text": "Adaptive", "toolTip": "

Adaptive

Adaptive clearing and profiling

CAM_Adaptive

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Adaptive", "registered": true, "shortcut": "", "text": "Adaptive", "toolTip": "

Adaptive

Adaptive clearing and profiling

CAM_Adaptive

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Adaptive", "registered": true, "shortcut": "", "text": "Adaptive", "toolTip": "

Adaptive

Adaptive clearing and profiling

CAM_Adaptive

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket3D", "registered": true, "shortcut": "", "text": "3D Pocket", "toolTip": "

3D Pocket

Creates a 3D Pocket toolpath from a face or faces

CAM_Pocket3D

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket3D", "registered": true, "shortcut": "", "text": "3D Pocket", "toolTip": "

3D Pocket

Creates a 3D Pocket toolpath from a face or faces

CAM_Pocket3D

", "visible": true }, "id": "CAM_Pocket3D", "selectedJob": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket3D", "registered": true, "shortcut": "", "text": "3D Pocket", "toolTip": "

3D Pocket

Creates a 3D Pocket toolpath from a face or faces

CAM_Pocket3D

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket3D", "registered": true, "shortcut": "", "text": "3D Pocket", "toolTip": "

3D Pocket

Creates a 3D Pocket toolpath from a face or faces

CAM_Pocket3D

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Pocket3D", "registered": true, "shortcut": "", "text": "3D Pocket", "toolTip": "

3D Pocket

Creates a 3D Pocket toolpath from a face or faces

CAM_Pocket3D

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Post", "registered": true, "shortcut": "P, P", "text": "Post Process", "toolTip": "

Post Process (P, P)

Post Processes the selected job

CAM_Post

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Post", "registered": true, "shortcut": "P, P", "text": "Post Process", "toolTip": "

Post Process (P, P)

Post Processes the selected job

CAM_Post

", "visible": true }, "id": "CAM_Post", "selectedJob": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Post", "registered": true, "shortcut": "P, P", "text": "Post Process", "toolTip": "

Post Process (P, P)

Post Processes the selected job

CAM_Post

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Post", "registered": true, "shortcut": "P, P", "text": "Post Process", "toolTip": "

Post Process (P, P)

Post Processes the selected job

CAM_Post

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Post", "registered": true, "shortcut": "P, P", "text": "Post Process", "toolTip": "

Post Process (P, P)

Post Processes the selected job

CAM_Post

", "visible": true }, "selectionChangesEnabledState": true }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Simulator", "registered": true, "shortcut": "P, M", "text": "Legacy CAM Simulator", "toolTip": "

Legacy CAM Simulator (P, M)

Simulates G-code on stock

CAM_Simulator

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Simulator", "registered": true, "shortcut": "P, M", "text": "Legacy CAM Simulator", "toolTip": "

Legacy CAM Simulator (P, M)

Simulates G-code on stock

CAM_Simulator

", "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": "

Legacy CAM Simulator (P, M)

Simulates G-code on stock

CAM_Simulator

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Simulator", "registered": true, "shortcut": "P, M", "text": "Legacy CAM Simulator", "toolTip": "

Legacy CAM Simulator (P, M)

Simulates G-code on stock

CAM_Simulator

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Simulator", "registered": true, "shortcut": "P, M", "text": "Legacy CAM Simulator", "toolTip": "

Legacy CAM Simulator (P, M)

Simulates G-code on stock

CAM_Simulator

", "visible": true }, "selectionChangesEnabledState": false }, { "emptyDocument": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Sanity", "registered": true, "shortcut": "P, S", "text": "Sanity Check", "toolTip": "

Sanity Check (P, S)

Checks the CAM job for common errors

CAM_Sanity

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Sanity", "registered": true, "shortcut": "P, S", "text": "Sanity Check", "toolTip": "

Sanity Check (P, S)

Checks the CAM job for common errors

CAM_Sanity

", "visible": true }, "id": "CAM_Sanity", "selectedJob": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_Sanity", "registered": true, "shortcut": "P, S", "text": "Sanity Check", "toolTip": "

Sanity Check (P, S)

Checks the CAM job for common errors

CAM_Sanity

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Sanity", "registered": true, "shortcut": "P, S", "text": "Sanity Check", "toolTip": "

Sanity Check (P, S)

Checks the CAM job for common errors

CAM_Sanity

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": false, "iconPresent": true, "objectName": "CAM_Sanity", "registered": true, "shortcut": "P, S", "text": "Sanity Check", "toolTip": "

Sanity Check (P, S)

Checks the CAM job for common errors

CAM_Sanity

", "visible": true }, "selectionChangesEnabledState": true }, { "emptyDocument": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_ToolBitDock", "registered": true, "shortcut": "P, T", "text": "Add toolbit…", "toolTip": "

Add toolbit… (P, T)

Opens the toolbit selection dialog

CAM_ToolBitDock

", "visible": true }, "emptySelection": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_ToolBitDock", "registered": true, "shortcut": "P, T", "text": "Add toolbit…", "toolTip": "

Add toolbit… (P, T)

Opens the toolbit selection dialog

CAM_ToolBitDock

", "visible": true }, "id": "CAM_ToolBitDock", "selectedJob": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_ToolBitDock", "registered": true, "shortcut": "P, T", "text": "Add toolbit…", "toolTip": "

Add toolbit… (P, T)

Opens the toolbit selection dialog

CAM_ToolBitDock

", "visible": true }, "selectedModel": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_ToolBitDock", "registered": true, "shortcut": "P, T", "text": "Add toolbit…", "toolTip": "

Add toolbit… (P, T)

Opens the toolbit selection dialog

CAM_ToolBitDock

", "visible": true }, "selectedOperation": { "actionCount": 1, "enabled": true, "iconPresent": true, "objectName": "CAM_ToolBitDock", "registered": true, "shortcut": "P, T", "text": "Add toolbit…", "toolTip": "

Add toolbit… (P, T)

Opens the toolbit selection dialog

CAM_ToolBitDock

", "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" }