Category Archives: F-Engrave

Prism Shaped Name Plate for Kaitlyn

I made a three sided nameplate for my goddaughter Kaitlyn’s 1st birthday.  The main body is basswood and “Kaitlyn” is inlayed on each side of the equilateral triangle.  The inlays were done using the v-carve inlay technique.  Each side has a different font and inlay wood type (walnut, wenge and padauk).  I used F-Engrave to generate the g-code for the inlays.  Below are some pictures of the final product and below I have a few in process pictures.





Here are a few in process pictures:

Pre inlay, the name has just been v-carved into the basswood


Here is one side ready for gluing the wenge inlay wood into the basswood.  I started with a rectangular piece of basswood and when I cut it into the triangular shape I saved the cutoff parts to make a fixture for holding the part while v-carving on each flat side.  I made the fixture by gluing the cutoff parts to a piece of scrap.  You can see the edge of the fixture under the basswood in the picture below.


Here is the part with all of the inlay parts glued into the basswood.  The last step in the inlay process is removing the excess material from the inlay wood.


Finally a few close-ups for fun so you can see some of the detail.


Everything went pretty smoothly except for the padauk side.  Red dust from the padauk spread all over the surface of the basswood while I was sanding the inlayed wood down.  I managed to remove most of the dust and finished by scraping the surface instead of sanding.  If I do a padauk inlay again I might try sealing the surface of the base material to minimize the amount of dust that can get trapped in the base material.

V-Carve Inlays and More with F-engrave 1.50

F-Engrave 1.50 has been released and is now available on the F-Engrave page. Here are a few of the highlights from this release:

  •  Modified helper program (ttf2cxf_stream) and F-Engrave interaction with it to better control the line segment approximation of arcs.
  • Added straight cutter support (cutter will follow design inside or outside of lines)
  • Added option to create prismatic cuts (inverse of v-carve).  This option opens the possibility of making v-carve inlays.
  • Added option for radius format g-code arcs when arc fitting.  This will help compatibility with g-code interpreters that are missing support for center format arcs.  (I think GRBL will accept the radius format arcs)

One of the most exciting new things you can do with F-Engrave now is v-carve inlays.  Below is a video I put together showing the process of making an inlay with F-Engrave.

Here is an example of an inlay that i made during testing of the new features.  The eagle is a slightly modified version of an eagle I found on WikiMedia.

eagle_inlay (Custom)

Here are the parts before gluing them together to form the inlay.

KIMG0034 (Custom) KIMG0033 (Custom)

A Much Faster F-Engrave (V1.40)


The latest version of F-Engrave includes major improvements to the v-carve calculation speed.  The first is based on input from geo01005.  He shared his work on his BLOG and in this YouTube Video.  The added code that breaks up the design area into a grid and stores the grid locations that are within the tool diameter.  The v-carve algorithm uses this data to skip over line segments that are farther than the max tool diameter from the current line segment.  F-Engrave had previously skipped some segments but geo01005’s implementation was significantly (2 to 3 times) faster.

In addition to the code changes geo01005 also showed that using Psyco with F-Engrave was of great benefit.  Psyco is no longer supported and is not compatible with the latest (or most commonly used) Python distributions.  However, the speed improvements were significant enough (3 to 4 times faster) to convince me to downgrade to Python 2.5 for the windows executable distribution.  I am sticking with Psyco rather than another JIT compiler (pypy, Jython, IronPython, etc.) because Psyco is easy to implement and compatible with Py2exe.  I use Py2exe to generate the windows executable files.

The final speed improvement, which is turning off plotting, has been available for some time in F-Engrave.  I have not pushed the use of this feature because the savings has only been a small percentage of the total v-carve time (depending on the design).   With the other improvements included in V1.40 plotting has become a significant player in the total calculation time.   Now turning off plotting can make the v-carve calculation 2 to 3 times faster (or significantly more depending on the design).  I have added a check button to the calculation window so the plotting can be turned on/off, on the fly, during the v-carve calculation.

So if you are paying close attention you can see that all of these increases in speed build on each other (multiply not add) and result in a v-carve calculation 12 to 36 times faster than in the previous versions of F-Engrave.

I have also been digging into the code and fixing various minor bugs and adding some features to make aligning multiple v-carve files easier.  Here are the highlights of the other changes:

  • Changed Default Origin behavior (for DXF/Image files) to be the origin of the DXF file or lower left corner of the input image. (“Bot-Left” still provides the same functionality of the old “Default” setting)
  • Added automatic scaling of all linear dimensions values when changing between units (in/mm)
  • Fixed bug in clean up function in the v-carve menu. (the bug resulted in excessive Z motions in some cases)
  • Fixed bug resulting in the last step of v-carving for any given loop to be skipped/incorrect.

Using F-Engrave with GRBL (ShapeOko)


I have had some feedback from ShapeOko users indicating that there are some issues using the default F-Engrave output with GRBL.  I thought I would take some time and describe the problems that people are having and discuss the F-Engrave settings needed to produce g-code that GRBL can run.

First, F-Engrave defines variables for the feed rate and engraving cut depth that are not compatible with GBRL.  This problem can be solved by checking the “Disable Variables” check box in the F-Engrave Settings window.  This will prevent F-Engrave from writing the incompatible variables to the g-code output file.

Second, F-Engrave uses incremental distance mode for arcs.   In order to ensure that g-code interpreters read the data correctly the code G91.1 is set in the g-code output (setting the arc distance mode to Incremental).  Unfortunately GRBL does not support reading the G91.1 code. To eliminate the incompatible G91.1 code from the F-Engrave output F-Engrave users need to un-check the “Enable Arc Fitting” option in the F-Engrave Settings window.  (Alternatively the G91.1 code can be manually removed from the g-code file.)

Update: Apparently GRBL misreading the G91.1 code also results in the next g-code line, which set the units (in or mm), being skipped/misread.  I also see there is some discussion about fixing the G91.1 g-code problem on the ShapeOko forum.

I recently updated F-Engrave to suppress writing the G91.1 code when arc fitting is disabled so be sure to use F-Engrave version 1.34 or higher to make sure the G91.1 is not written by F-Engrave.

If you get this error:

“Error while starting file stream: Command #3 too long: (55 > 50) ‘(Settings used in f-engrave when this file was created)’ ”

GRBL Error

This error is generated because the length of some of the lines in the comments section of the g-code file are too long for GRBL.  The comments can be suppressed in the F-Engrave “General Settings”.  The F-Engrave comments allow users to recover the settings that were used to generate any given g-code output.  Suppressing the comments disables this feature of F-Engrave.  Disabling the comments is a new feature in F-Engrave version 1.49.

In summary, to generate g-code compatible with GRBL:

  • Use F-Engrave version 1.49 or higher
  • Select the “Disable Variables” check box in the F-Engrave “General Settings” window
  • Un-select the “Enable Arc Fitting” check box in the F-Engrave “General Settings” window
  • Select “Suppress Comments” in the F-Engrave “General Settings” Window

These settings (and all of the other settings) can be saved and loaded every time F-Engrave starts up.  Use the “Configuration File – Save” button in the F-Engrave “General Settings” window to save these and all other settings from session to session.

F-Engrave V1.32


F-Engrave Version 1.32 is now available on the F-Engrave Web Page.  This release includes a few minor items that I have had backlogged for a while.  The items are listed below.

– Added limit to the length of the engraved text included in g-code file comment (to prevent error with long engraved text)

– Changed number of decimal places output when in mm mode to 3 (still 4 places for inches)

– Changed g-code format for G2/G3 arcs to center format arcs (generally preferred format)

-Hard coded G90 and G91.1 into g-code output to make sure the output will be interpreted correctly by g-code interpreters.

F-Engrave Command Line Options


Version 1.21 of F-Engrave is now available.  More command line options have been added.

A new batch mode (-b,–batch) that skips the GUI.  Engraving text input on the command line (-t, –text “text”).  Pipe characters “|” are mapped to carriage returns in the text input box.  The -f option can now be used to specify the font directory, font file or image file (BMP, DXF, etc).

This is a dump of the command line options in V1.21:
Usage: python [-g file | -f fontdir | -d directory | -t text | -b ]
-g : f-engrave gcode output file to read (also –gcode_file)
-f : path to font file/directory or image file (also –fontdir)
-d : default directory (also –defdir)
-t : engrave text (also –text)
-b : batch mode (also –batch)
-h : print this help (also –help)



F-Engrave 1.20 With Extended Character Support

Extended Characters

F-Engrave 1.20 with extended character support is now available for download.  To enable extended characters in F-Engrave there is a new setting in “General Settings” named “Extended Characters”.  Of course you will also need a font with the extended characters you want to use.  If you are not using the extended characters it is best to leave extended characters turned off.  Loading all of the characters slows F-Engrave down.

Linux users will need to compile a new ttf2cxf_stream executable to use the extended characters.  The source code for ttf2cxf_stream is available in the source zip file (  A new windows executable is included in the windows download.