CNC Dogbone Generator

Generator

How to Add Dogbones in LightBurn

LightBurn reads SVG well, but it will scale a file as if user units were 1/96 inch whenever the document carries no physical size. That single behaviour is behind almost every "my pocket came out 3.78× wrong" report.

This generator writes width and height in millimetres alongside a matching viewBox, so a 100 mm pocket opens as 100 mm. If your file lands at the wrong scale, you imported a different SVG — one that had only a viewBox.

Why SVG scale goes wrong

An SVG viewBox defines a coordinate space with no physical meaning. Width and height attributes give that space a real-world size. With both present, 1 user unit maps to a known number of millimetres. With only a viewBox, importers fall back to the CSS default of 96 units per inch, which is 0.2646 mm per unit.

That fallback is where 3.7795 comes from: a 100 mm shape exported without a physical width will arrive as 26.46 mm, and a shape drawn in pixels will arrive 3.78× too large if something else assumes millimetres.

The exporter here always emits width="…mm", height="…mm", and viewBox="0 0 w h" with w and h in millimetres, so the ratio is exactly 1 and there is nothing for an importer to guess.

Importing step by step

Download the SVG from the generator. In LightBurn choose File → Import and pick the file. Confirm that the job units in Edit → Settings are millimetres before you judge the size on screen.

The contour arrives as a single closed path on the cut layer. Select it and check the width and height readout at the top of the window against the output size the generator showed you. Those two numbers should agree to within a rounding digit.

Assign your pocket or inside-line operation exactly as you would for any other closed shape, and set the tool diameter to the same bit you typed into the generator.

Cut it as geometry, not as a toolpath

The downloaded file is the finished pocket outline. LightBurn still computes cutter compensation from the tool diameter you set, and that is correct and expected.

What breaks the fit is applying your own offset on top. If you offset the imported contour outward by the bit radius and then let LightBurn compensate as well, the pocket grows by a full diameter and the joint rattles.

Equally, a plain line operation with no compensation at all will undersize the pocket by one radius and the tenon will not enter. Pick a real inside or pocket operation.

Keep the arcs as arcs

The reliefs are emitted as SVG A commands — true circular arcs of radius R. LightBurn offsets circular arcs cleanly.

If you route the file through Inkscape and run Path → Object to Path, those arcs become cubic Bézier approximations, and every downstream offset inherits the approximation error. There is no reason to do it, so do not.

T-bones look like a slot poking out of one wall in preview, but they are still part of the same closed path. Cut them as one operation; splitting the T stem into a second pass leaves a witness line in the corner.

Troubleshooting

Shape is 3.78× too small: the file lost its millimetre width somewhere, or LightBurn is on an old build that ignores it. Import the DXF instead and pick millimetres.

Shape is mirrored: something applied a second Y flip. SVG's Y axis points down and the exporter accounts for that once. Re-download rather than flipping it back by hand, because a mirrored T-bone faces the wrong wall.

Corners look rounded instead of relieved: you are looking at the toolpath preview with compensation applied, not the geometry. Toggle the path preview off and inspect the imported shape itself.

Always dry-run above the stock. A 1/4″ bit driving a file meant for 3 mm is the usual way people mill a postage stamp or a table-sized hole.

Open the generator

Related guides