I was blown away with some laser cut art work I saw the other day and had to try it myself. I don’t have a laser cutter but I can mock up the designs in 3D.
The simplest work was expanding and contracting circles arranged radially with lines around the edge. The trickiest part where some curved points in the outer group of circles.
OpenSCAD was use to do the modelling. Less well known than its 3D abilities, OpenSCAD has 2D shapes, 2D binary operations, and once the model is compiled can export to dfx, or svg files.
The circles and lines are the normal scad primitives, but the pointy curves are polygons generated from Bezier curves.
public static Vector2 CalculateBezierPoint(double t, Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3)
double u = 1 - t;
double tt = t * t;
double uu = u * u;
double uuu = uu * u;
double ttt = tt * t;
Vector2 p = uuu * p0; //first term
p += 3 * uu * t * p1; //second term
p += 3 * u * tt * p2; //third term
p += ttt * p3; //fourth term
Function to generate the Bezier values
Copy of design remade in OpenSCAD
The original can be viewed here
Layers to cut
Files available here