Skip to content
Sign in

Documentation

Build your first useful model

From an empty editor to a printable, parametric part in five minutes.

Go to New design. The code is on one side, the viewer and the parameters on the other. The editor starts with a box with a hole; you will replace it.

PPSCAD
// A mounting plate
param width: float = 40 [20:100] "Width (mm)"
param depth: float = 30 [15:80] "Depth (mm)"
param thickness: float = 3 [1.5:8:0.5] "Thickness (mm)"
param corner_r: float = 3 [0:10] "Corner radius (mm)"

// A rounded rectangle: the hull of four corner cylinders
hull {
  translate(corner_r, corner_r, 0) cylinder(h: thickness, r: corner_r)
  translate(width - corner_r, corner_r, 0) cylinder(h: thickness, r: corner_r)
  translate(corner_r, depth - corner_r, 0) cylinder(h: thickness, r: corner_r)
  translate(width - corner_r, depth - corner_r, 0) cylinder(h: thickness, r: corner_r)
}

The code runs by itself after a pause in typing. A rounded plate appears in the viewer, and the four param lines have become sliders. Move one.

PPSCAD
param hole_r: float = 2 [1:5:0.5] "Hole radius (mm)"
param hole_inset: float = 5 [3:15] "Hole inset (mm)"

difference {
  // The plate from above, now the first child of the difference
  hull {
    translate(corner_r, corner_r, 0) cylinder(h: thickness, r: corner_r)
    translate(width - corner_r, corner_r, 0) cylinder(h: thickness, r: corner_r)
    translate(corner_r, depth - corner_r, 0) cylinder(h: thickness, r: corner_r)
    translate(width - corner_r, depth - corner_r, 0) cylinder(h: thickness, r: corner_r)
  }

  // Four mounting holes, a little longer than the plate so they cut through
  for (x in [hole_inset, width - hole_inset]) {
    for (y in [hole_inset, depth - hole_inset]) {
      translate(x, y, -0.5)
        cylinder(h: thickness + 1, r: hole_r)
    }
  }
}

A difference keeps its first child and takes every later child away from it. The holes start half a millimetre under the plate and run a millimetre longer than it is thick, so the cut goes clean through; a cut that ends exactly on a face leaves a skin. Move the inset slider to bring the holes toward the edges.

Press Download STL under the editor and open the file in your slicer. Every dimension is in millimetres, which is what a slicer expects; nothing needs converting.

Sign in and save the design to get a short address. Anyone with the link opens the model, moves the sliders and downloads an STL of their own, with no account needed. Until you save, the draft stays in this browser.