{
  "checkedAt": "2026-10-26",
  "editor": "v0.23.0",
  "commit": "7770f8982de8bf00cabfe421b7f563b34c7af90f",
  "nativeFormat": 37,
  "os": "darwin x64",
  "browser": "155.0.8059.85",
  "backend": "WebGL2 / SwiftShader",
  "construction": "Empty design, editor control API; dimension edit uses real UI events",
  "checks": [
    "Block created from empty XY sketch, origin-constrained rectangle, two driving dimensions, one extrusion; one solid 12000 mm3",
    "Actual sketch dimension double-click, select-all, 50 mm entry, Enter and Finish Sketch rebuild to 15000 mm3",
    "Undo/redo restore 12000 / 15000 mm3",
    "Downloaded native block reopens in a new design with geometry and feature history",
    "Four fully constrained \u00d86 circles at (10,10), (50,10), (10,30), (50,30); 5 mm extrusion; four cylindrical through-holes; native round trip",
    "STL fine-quality export written by the actual editor and downloaded through the browser"
  ],
  "files": [
    {
      "path": "/blog/parametric-cad-online/block-40mm.solidcraft",
      "sha256": "41c8d0ec0f0e692edfa05d7df7074d6568caa152ad4523bc0d540fa10c182263"
    },
    {
      "path": "/blog/parametric-cad-online/block-50mm.solidcraft",
      "sha256": "57b5618605fff0503be002f30f49a15693d03ac104b6377a8795554d300612c2"
    },
    {
      "path": "/blog/online-cad-for-3d-printing/mounting-plate.solidcraft",
      "sha256": "fc2101ffdbc8c715b8e9445676f1dfe532cdecfd328289c1b4cf56da9d555e09"
    },
    {
      "path": "/blog/online-cad-for-3d-printing/mounting-plate.stl",
      "bytes": 329484,
      "sha256": "b10d33d97f2c9a1fa702df31a39441f4fa740855681f9bcbfeba36aa0b731507"
    }
  ],
  "states": {
    "blockSketch": {
      "active_sketch": 1,
      "bodies": [],
      "dirty": true,
      "hidden_origin": [],
      "marker": 1,
      "metadata": {},
      "name": "Parametric block",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "40 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 40
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": null,
      "redo": 0,
      "revision": 6,
      "selection": [],
      "sketches": [
        {
          "curves": 4,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 1,
          "status": "solved",
          "visible": true
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 0.9,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        }
      ],
      "undo": 4,
      "units": "mm"
    },
    "original": {
      "active_sketch": null,
      "bodies": [
        {
          "area_mm2": 3800,
          "bbox": {
            "max": [
              40,
              30,
              10
            ],
            "min": [
              0,
              0,
              0
            ]
          },
          "center_of_mass": [
            20,
            15,
            5
          ],
          "closed": true,
          "edges": 12,
          "face_types": {
            "plane": 6
          },
          "faces": 6,
          "kernel": {
            "edges": 12,
            "faces": 6,
            "shells": 1,
            "vertices": 8
          },
          "name": "Body1",
          "vertices": 8,
          "visible": true,
          "volume_mm3": 12000
        }
      ],
      "dirty": true,
      "hidden_origin": [],
      "marker": 2,
      "metadata": {},
      "name": "Parametric block",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "40 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 40
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": null,
      "redo": 0,
      "revision": 8,
      "selection": [],
      "sketches": [
        {
          "curves": 4,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 1,
          "status": "solved",
          "visible": false
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 0.9,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        },
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 2,
          "ms": 350.9,
          "name": "Extrude1",
          "rolled_back": false,
          "suppressed": false,
          "type": "ExtrudeFeature",
          "warning": null
        }
      ],
      "undo": 5,
      "units": "mm"
    },
    "edited": {
      "active_sketch": null,
      "bodies": [
        {
          "area_mm2": 4600,
          "bbox": {
            "max": [
              50,
              30,
              10
            ],
            "min": [
              0,
              0,
              0
            ]
          },
          "center_of_mass": [
            25,
            15,
            5
          ],
          "closed": true,
          "edges": 12,
          "face_types": {
            "plane": 6
          },
          "faces": 6,
          "kernel": {
            "edges": 12,
            "faces": 6,
            "shells": 1,
            "vertices": 8
          },
          "name": "Body1",
          "vertices": 8,
          "visible": true,
          "volume_mm3": 15000
        }
      ],
      "dirty": true,
      "hidden_origin": [],
      "marker": 2,
      "metadata": {},
      "name": "Parametric block",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": "/downloads/solidcraft-design.solidcraft",
      "redo": 0,
      "revision": 16,
      "selection": [],
      "sketches": [
        {
          "curves": 4,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 1,
          "status": "solved",
          "visible": false
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 10.200000000000001,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        },
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 2,
          "ms": 29.3,
          "name": "Extrude1",
          "rolled_back": false,
          "suppressed": false,
          "type": "ExtrudeFeature",
          "warning": null
        }
      ],
      "undo": 8,
      "units": "mm"
    },
    "reopened": {
      "active_sketch": null,
      "bodies": [
        {
          "area_mm2": 4600,
          "bbox": {
            "max": [
              50,
              30,
              10
            ],
            "min": [
              0,
              0,
              0
            ]
          },
          "center_of_mass": [
            25,
            15,
            5
          ],
          "closed": true,
          "edges": 12,
          "face_types": {
            "plane": 6
          },
          "faces": 6,
          "kernel": {
            "edges": 12,
            "faces": 6,
            "shells": 1,
            "vertices": 8
          },
          "name": "Body1",
          "vertices": 8,
          "visible": true,
          "volume_mm3": 15000
        }
      ],
      "dirty": false,
      "hidden_origin": [],
      "marker": 2,
      "metadata": {},
      "name": "Parametric block",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": "/upload/blog-example.solidcraft",
      "redo": 0,
      "revision": 2,
      "selection": [],
      "sketches": [
        {
          "curves": 4,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 1,
          "status": "solved",
          "visible": false
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 0.7,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        },
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 2,
          "ms": 29.3,
          "name": "Extrude1",
          "rolled_back": false,
          "suppressed": false,
          "type": "ExtrudeFeature",
          "warning": null
        }
      ],
      "undo": 0,
      "units": "mm"
    },
    "plateSketch": {
      "active_sketch": 1,
      "bodies": [],
      "dirty": true,
      "hidden_origin": [],
      "marker": 1,
      "metadata": {},
      "name": "Mounting plate",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "60 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 60
        },
        {
          "comment": "",
          "error": null,
          "expression": "40 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 40
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d3",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d4",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d5",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d6",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d7",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d8",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d9",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d10",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d11",
          "unit": "mm",
          "value": 30
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d12",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d13",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d14",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": null,
      "redo": 0,
      "revision": 22,
      "selection": [],
      "sketches": [
        {
          "curves": 8,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 5,
          "status": "solved",
          "visible": true
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 0.7,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        }
      ],
      "undo": 20,
      "units": "mm"
    },
    "plate": {
      "active_sketch": null,
      "bodies": [
        {
          "area_mm2": 5950.818363573075,
          "bbox": {
            "max": [
              60,
              40,
              5.000000000000003
            ],
            "min": [
              0,
              0,
              0
            ]
          },
          "center_of_mass": [
            30,
            20,
            2.5
          ],
          "closed": true,
          "edges": 20,
          "face_types": {
            "cylinder": 4,
            "plane": 6
          },
          "faces": 10,
          "kernel": {
            "edges": 36,
            "faces": 14,
            "shells": 1,
            "vertices": 24
          },
          "name": "Body1",
          "vertices": 16,
          "visible": true,
          "volume_mm3": 11434.607251775373
        }
      ],
      "dirty": true,
      "hidden_origin": [],
      "marker": 2,
      "metadata": {},
      "name": "Mounting plate",
      "params": [
        {
          "comment": "",
          "error": null,
          "expression": "60 mm",
          "model": true,
          "name": "d1",
          "unit": "mm",
          "value": 60
        },
        {
          "comment": "",
          "error": null,
          "expression": "40 mm",
          "model": true,
          "name": "d2",
          "unit": "mm",
          "value": 40
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d3",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d4",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d5",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d6",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d7",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d8",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d9",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "10 mm",
          "model": true,
          "name": "d10",
          "unit": "mm",
          "value": 10
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d11",
          "unit": "mm",
          "value": 30
        },
        {
          "comment": "",
          "error": null,
          "expression": "6 mm",
          "model": true,
          "name": "d12",
          "unit": "mm",
          "value": 6
        },
        {
          "comment": "",
          "error": null,
          "expression": "50 mm",
          "model": true,
          "name": "d13",
          "unit": "mm",
          "value": 50
        },
        {
          "comment": "",
          "error": null,
          "expression": "30 mm",
          "model": true,
          "name": "d14",
          "unit": "mm",
          "value": 30
        }
      ],
      "path": null,
      "redo": 0,
      "revision": 24,
      "selection": [],
      "sketches": [
        {
          "curves": 8,
          "dof": 0,
          "id": 1,
          "name": "Sketch1",
          "profiles": 5,
          "status": "solved",
          "visible": false
        }
      ],
      "timeline": [
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 1,
          "ms": 0.7,
          "name": "Sketch1",
          "rolled_back": false,
          "suppressed": false,
          "type": "Sketch",
          "warning": null
        },
        {
          "boolean_diagnostics": {
            "events": [],
            "truncated": false
          },
          "error": null,
          "id": 2,
          "ms": 102.1,
          "name": "Extrude1",
          "rolled_back": false,
          "suppressed": false,
          "type": "ExtrudeFeature",
          "warning": null
        }
      ],
      "undo": 21,
      "units": "mm"
    }
  },
  "dimensionDialog": {
    "dialog": null,
    "dimension_editing": true,
    "dimension_selected": [
      "k6"
    ],
    "dimensions": [
      {
        "id": "k6",
        "x": 720,
        "y": 711.8695068359375
      },
      {
        "id": "k7",
        "x": 1041.826171875,
        "y": 465
      }
    ],
    "hover": null,
    "selection": [
      {
        "id": "k6",
        "type": "sketch_constraint"
      }
    ]
  },
  "exportDialog": {
    "dialog": [
      {
        "items": [],
        "label": "Bodies"
      }
    ],
    "dimension_editing": false,
    "dimension_selected": [],
    "dimensions": [],
    "hover": null,
    "selection": []
  }
}
