Path Vcarve

Description
The Path Vcarve tool is primarily for center-line engraving a  Draft ShapeString onto a part. However, it may be useful for other kinds of 2D.

Unlike engraving which follows the lines in the shapestring, V-carving uses a V-shaped cutter and attempts to clear the area by moving the cutter down the center of the region and varying the depth of cut. Since a v-cutter radius varies with the depth, the width of cut varies as well. The result is a more natural looking cut, particularly for serif fonts.

The V-carve algorithm calculates a path down the center-line of a region using a voronoi diagram. This center-line is the path the tool will follow in the XY plane. It next calculates a 'maximum inscribed circle' along the path. This is the largest circle that can be drawn at that point and remain entirely inside the clearing area. Using the circle radius and the tip angle of the cutter, the depth of cut is calculated.

Prepare the shapes to engrave

 * are usable out of the box
 * SVG files require some massaging, both in the editor and in the Workbench_Draft.svg Draft Workbench:
 * In the editor (e.g. inkscape): make sure the file only contains paths and that the paths are ungrouped; make sure there are no self-intersecting paths, (in inkscape) use Path → Simplify and union to join paths that overlap.
 * Switch to the Workbench_Draft.svg Draft Workbench in workbench dropdown list
 * Import the SVG using
 * The result should look similar to this:
 * Svgimport.png
 * Paths with holes (letters, the vine in the image above) are imported as 2 separate paths (named along the lines of "Path905" and "Path905001" in the tree), one of them is the hole and the other one is the outline; we'll deal with this in the next step
 * Paths with holes (letters, the vine in the image above) are imported as 2 separate paths (named along the lines of "Path905" and "Path905001" in the tree), one of them is the hole and the other one is the outline; we'll deal with this in the next step


 * In order to get the 2D faces, Path Vcarve needs:
 * For paths without holes:
 * Select the path
 * Choose
 * Followed by
 * For paths with holes:
 * Select the outer path, then the inner path
 * Choose twice
 * Some paths will behave differently, so you may need to play with and  until you get something named "Face "
 * The end result should look like this:
 * Svgfaces.png

Create the Vcarve operation

 * Switch to the in the workbench dropdown menu
 * Add a job, use the objects named (or the ShapeString) as a base, add a v-bit tool controller, set feeds, speeds, etc.
 * The operation only supports one object (either a single Face object, or a ShapeString) so for each object:
 * Select from the top menu. This opens the configuration panel.
 * Open the tab and add all faces of the ShapeString, or the face of a single Face object obtained above
 * Press and inspect the generated path; if necessary, adjust operation parameters (Threshold can be set higher in most situations)
 * Press to finish

Options
Empty

View
Empty

Scripting
FreeCAD Scripting Basics.

Example: