CNC Dogbone Generator

Generator

How to Add Dogbones in Inkscape

Inkscape's default document is 96 dpi, which means an SVG carrying only a viewBox is interpreted as CSS pixels. Files from this generator carry a millimetre width and height as well, so File → Open shows the correct physical size.

Inkscape is also the easiest place to draw a pocket outline in the first place, paste it into the generator, and drop the relieved version back into your drawing.

Opening the file at the right size

Use File → Open rather than pasting. Open reads the root width, height, and viewBox; pasting through the clipboard can drop them and leave you with a pixel-scaled shape.

Check File → Document Properties after opening: units should be mm and the page size should match the viewBox numbers. A 100 × 50 mm pocket with 1/4″ minimal dogbones opens as roughly 101.86 × 51.86 mm, because the bulge adds about 0.93 mm on each side.

If you must paste, paste the entire <svg> element rather than just the d attribute. The d attribute alone has no physical scale attached to it.

Sending your own shape to the generator

Draw the pocket in Inkscape, save as Plain SVG, then paste the file contents into the generator's Paste SVG box. The parser accepts a full <svg> element, a bare <path>, or a <polygon>.

Transforms are baked before anything else happens. A transform on the <path> and on every enclosing <g> is multiplied into a single matrix and applied to the vertices, so a rotate(90) on a group lands correctly.

Because shear and non-uniform scale genuinely change angles, corners are measured after the transform is applied, not before. A skew that turns a 90° corner into 103° will be skipped and flagged in the preview rather than silently relieved with the wrong geometry.

A bare path like M 0 0 H 1000 V 500 Z has no millimetres attached, so the tool asks for an actual width and keeps the download disabled until you supply one. That prompt is the safety net, not an obstacle.

Do not convert the arcs

The reliefs are SVG A commands. Inkscape is perfectly happy to keep them as arcs, and every CAM tool downstream prefers that.

Running Path → Object to Path turns them into cubic Bézier approximations. The shape looks identical on screen and offsets slightly wrong in CAM, which is the worst kind of error because nothing warns you.

The same applies to boolean operations. There is no need to union anything: the exported contour is already a single closed path.

What the parser will and will not accept

Only straight segments are supported: M, L, H, V, and Z, in absolute or relative form. A path containing C, S, Q, T, or A commands is rejected with a message rather than being flattened into line segments behind your back.

That is deliberate. Approximating a curve would silently change the shape you are about to cut, and the 85°–95° corner test would then be measuring a polyline that is not your drawing.

One closed subpath at a time. If your file has several shapes, select one and copy it out, or delete the rest before pasting. Inkscape's Edit → XML editor is the quickest way to grab a single path's d attribute along with the root width and viewBox.

Inkscape's own DXF export is not the shortcut

Inkscape can save as DXF R14, but its exporter is known for scale surprises and for turning arcs into polylines. If your CAM wants DXF, take the DXF button in this generator instead — it writes R12 with true ARC entities in millimetres.

The same applies in reverse: opening a DXF in Inkscape to "check" it introduces a second interpretation of units. Check the file in the CAM tool that will cut it.

Getting the file to a machine

Send the generator's SVG or DXF onwards, not a PNG or a PDF. Rasters have no millimetres a mill can act on, and PDF export can flatten arcs.

LightBurn opens the same SVG. If Inkscape reports 100 mm and LightBurn reports 26.5 mm, LightBurn ignored the millimetre width — update it or import the DXF instead.

If you edited the shape in Inkscape after adding reliefs, run it back through the generator rather than nudging the arcs by hand. The relief radius must stay exactly equal to the cutter radius.

Open the generator

Related guides