Automatic Creation of Toolpaths based on layernames - Instructions

Fable 5.2 is free-ish till the 16th, so I asked Claude to add an automatic toolpath feature to the CNC-Box, which means you can tell the generator which tools you want to use for the specific operations (outlines, pockets, engravings) matching your Estlcam toollist (important, you have to check this).

What happens next is basically magic, it generates all the toolpaths automatically. Even with overcut if you want to cut through your stock if you generated it. Really bonkers.

Since there is no documentation, Claude wrote a test file where it tested all names and combinations to figure out how it works. I then obviously asked it to write a general documentation on the feature.

This is 100% Claude figuring things out and writing instructions, but it’s information that wasn’t available before and is really helpful for automation.

Estlcam: creating objects automatically from layer names

A quick reference for DXF layer names that make Estlcam create toolpath objects with tool and depth by itself.

  • Feature: “Automatische Objekterzeugung über Layernamen” (automatic object creation from layer names), in Estlcam since version 12.152
  • Where: menu Automatic → Create objects automatically (German: Automatik → Objekte automatisch erzeugen)
  • Tested with: Estlcam CAM 13.017A (German UI) on 10 Nov 2026, using a test DXF with 23 layer variants
  • Official docs: practically none. The syntax is only given in Estlcam’s built-in help text. Everything here comes from my own test unless noted otherwise.

Syntax

Type;Tool;Depth;StartDepth
Field Meaning Required
Type kind of object, see table below yes
Tool number in the Estlcam tool list (column “Nr”), not the diameter no
Depth cutting depth in mm, with a decimal point no
StartDepth depth at which cutting starts no

Examples:

Part;1;10.3        outside contour, tool 1, 10.3 mm deep
Hole;1;10.3        inside contour, tool 1, 10.3 mm deep
Pocket;4;5         pocket, tool 4, 5 mm deep
Pocket;4;5;2       pocket, tool 4, from 2 mm down to 5 mm
Engraving;8;1      engraving on the line, tool 8, 1 mm deep
Drill;1;10         drill hole or circular pocket, tool 1, 10 mm deep
Pocket             pocket without parameters, set tool and depth in Estlcam

Type keywords

English German Result
Part Teil contour is cut on the outside
Hole Ausschnitt contour is cut on the inside
Pocket Tasche area is cleared
Engraving Gravur cutter runs on the line
Drill Bohrung circles are drilled or milled as circular pockets
Carve Carve V-carve
  • English and German keywords both work, at least in the German Estlcam.
  • Case does not matter (pocket;1;5 works).
  • The German word Loch is not recognised. The German keyword for Hole is Ausschnitt.
  • Layers whose first word is unknown are left alone, for example Labels, Border or Info.

Separators and spelling

Spelling Works
Pocket;1;5 yes
Pocket_1_5 yes, the underscore is a separator too
Pocket; 1; 5 yes, spaces are fine
Pocket;;5 yes, tool empty, depth set
Pocket;1;5.5 yes
Pocket;1;5,5 probably (same colour as 5.5), but not confirmed. Always use the point.
Pocket-1 creates a pocket without tool and depth

What happens when parameters are missing

  • No depth (Pocket, Part, Pocket-1): the object is created and shown in yellow. Enter the depth in Estlcam.
  • Tool number not in the list (e.g. Pocket;99;5): red error, in German “Werkzeug “99” ist nicht in der Werkzeugliste vorhanden!” (tool not in tool list).
  • Drill with a cutter smaller than the hole: blue message “Herstellung als Kreistasche” (made as circular pocket). This is only a note, the object is created.

Pitfalls

  1. Part does not detect inside contours. A hole on the same layer as the outline is also cut on the outside and ends up too big. Inside contours (windows, doors, holes, slots) belong on their own Hole layer.
  2. Drill layers may only contain circles. A rectangular contour there gives the error “Bohrung □-Infinitymm … zu groß” (drill hole too large).
  3. A red error can block the whole run. In the first test (a rectangle on a drill layer plus tool 99) not a single layer got an object. After removing both errors everything worked.
  4. Underscores in your own layer names are dangerous. Pocket_7_5mm was meant as “pocket, 7.5 mm”. Estlcam reads it as type Pocket, tool 7, depth 5mm. Layers the automation should ignore must not start with a type keyword. Safe names are Depth_7_5mm or Info_….
  5. Depth is per layer, not per object. Every combination of type, tool and depth needs its own layer.
  6. Semicolons in CAD programs: QCAD replaces the semicolon with an underscore when saving (according to the Woodworker forum). As the underscore is also a separator, this should still work. Only direct DXF export was tested here.

Cutting depth for through cuts

Cut parts and holes slightly deeper than the material thickness so they are separated cleanly:

depth = material thickness + allowance

Example: 10 mm plywood with 0.3 mm allowance gives Part;1;10.3 and Hole;1;10.3.

Pockets get exactly their target depth, without allowance.

Recommended layer layout

For a part made of 10 mm material with a window, a 5 mm pocket and an engraving:

Layer Content
Part;1;10.3 outside contours only
Hole;1;10.3 windows, doors, through holes and slots
Pocket;4;5 all pockets 5 mm deep
Engraving;8;1 engraving lines
Labels texts and notes, ignored
Border sheet outline, ignored

With several material thicknesses in one file, each thickness gets its own layers, for example Part;1;10.3 and Part;1;4.3.

Workflow in Estlcam

  1. Load the DXF.
  2. Check that all tool numbers used exist in the tool list.
  3. Automatic → Create objects automatically.
  4. Read the messages: blue is a note, red is an error that has to be fixed first.
  5. Yellow objects have no depth yet, enter it there.
  6. Check the preview, especially inside versus outside of the contours and the order.

Not tested

  • Whether the start depth is applied correctly. Pocket;1;5;2 (tested as Tasche;1;5;2) was created as a pocket, the value itself was not checked.
  • Whether the tool can be given by name instead of number.
  • Behaviour of the English Estlcam UI. All tests ran in the German UI, where the English keywords worked.
  • Further fields after the start depth.

Related feature: stamping via layer names

Since version 12.154 Estlcam can also insert whole assemblies automatically (“extended stamp function”). Saved stamp templates are matched via the layer name. This is a separate feature and was not tested here. It is explained in Christian Knüll’s video (in German).

Sources

Really useful to have the Type;Tool;Depth;StartDepth syntax written down, since Estlcam’s own help barely covers it. One thing worth adding to the notes: AutoCAD-style programs don’t allow semicolons in layer names, so this works neatly when the CNC-Box generator writes the DXF itself, but people drawing in other CAD tools may find the names get rejected or altered on export. Did your test show whether Estlcam accepts any other separator, or is the semicolon mandatory?

No idea, it seems to be mandatory, we had this discussion in the German woodworker forum, it’s linked in the post. :slight_smile:

@hentop10 the table in post 1 under “Separators and spelling” already lists Pocket_1_5 as working (“the underscore is a separator too”), so the underscore looks like the AutoCAD-safe spelling: Part_1_10.3 instead of Part;1;10.3. Worth one confirmation cut, but it was in the test set.

Two DXF-side notes, from maintaining the DXF import/export in my own free cut list tool (CutYield; bias disclosed):

  • The semicolon ban is an AutoCAD rule, not a DXF rule. AutoCAD refuses < > / \ " : ; ? * | , = and the backtick in layer and other symbol names. The DXF file itself just stores the name as text, which is why a generator that writes the file directly (the CNC-Box) can use semicolons and Estlcam reads them. AutoCAD-family programs reject or rewrite the name; many non-AutoCAD tools don’t care.
  • If you are stuck with a tool that rejects the character and the underscore ever fails you: export an ASCII (text) DXF and find-and-replace the exact layer name in a text editor. The name appears twice: in the LAYER table (after a 2 group code) and on every entity (after an 8 group code). Replace both, because importers differ in which one they trust, and a mismatch is the classic “my layer vanished” bug. Binary DXF can’t be edited this way.

i.e. Only use underscores to separate ‘Type’ _ ‘Tool’ _ ‘Depth’ _ ‘StartDepth’ when the layer name starts with Part, Hole, Pocket, Engraving, Drill or Carve.

…Since CNC Box isn’t going to mess it up, maybe underscores would be more appropriate.