From ShapeOko
Jump to: navigation, search


A straight-forward program which allows one to enter a line of text, or import a .dxf, or an image file and convert it to G-Code emulating engraving techniques. Based on engrave-11, it has expanded its featureset considerably. The author announces new versions and provides support on the CNCzone Forum.


It is available from the author's site: F-Engrave

Installation and configuration

Written in Python, it can be installed (w/ limited features) on any system running Python. There is a Windows binary which has especial support for TrueType fonts.

F-Engrave Configuration File

If you have some default options that you want to have as the initial settings every time you open F-Engrave you can do the following:

  1. Open F-Engrave
  2. Change the settings to the settings you want to be the defaults
  3. Select [File - Save G-Code File]
  4. Save the file to config.ngc in you home directory (the default save location)

Every time you open up F-Engrave it will load the settings from that file. For Unix people, the (hidden) file location ~/.fengraverc also works.

This process will not change the default save location for .ngc files

Mac OS X

http://www.motions-media.de/download/f-engrave-fuer-mac-v1-62/ --- bundled macOS app with all needed files in it using Playtypus. Includes current f-engrave-162.py1 python script and all compiled binaries (potrace & ttf2cxf_stream).



unzip and execute ./run-f-engrave.sh in Terminal inside the folder the archive is extracted to.


  1. Launch Terminal.app (or some other CLI)
  2. Make a directory to hold the final F-Engrave files: mkdir ~/Applications/f-engrave
  3. Make a temporary directory to work in if you don't already have one: mkdir ~/tmp
  4. Change to the temporary directory: cd ~/tmp
  5. Download the F-Engrave source from http://www.scorchworks.com/Fengrave/fengrave.html#download
  6. Extract it to a temporary directory using unzip: unzip ~/Downloads/F-Engrave-1.52_src.zip
  7. Change to the extracted directory: cd F-Engrave-1.5.2_src
  8. Copy the F-Engrae Pythonfile to the final application directory:cp f-engrave-152.py ~/Applications/f-engrave`
  9. Change to the included tt2cxf source directory: cd TTF2CXF_STREAM
  10. Use a plain text editor such as TextEdit.app and edit the Makefile in this directory to point to the proper freetype headers. Change the line g++ -o ttf2cxf_stream ttf2cxf_stream.cpp -lm -I/usr/include/freetype2 –lfreetype to g++ -o ttf2cxf_stream ttf2cxf_stream.cpp -lm -L/usr/X11/lib -I/usr/X11/include/freetype2 -lfreetype. You can also use vi in the Terminal if you're comfortable with it: vi Makefile
  11. Run make to compile: make
  12. Copy the new binary to the final application directory: cp ttf2cxf_stream ~/Applications/f-engrave
  13. Change back to the temporary directory: cd ~/tmp
  14. Download the potrace binaries for OSX from http://potrace.sourceforge.net/#downloading
  15. Extract it to a temporary directory using tar: tar –xzf ~/Downloads/potrace-1.13.mac-x86_64.tar.gz
  16. Copy the extracted binary to the final application directory: cp potrace-1.13.mac-x86_64/potrace ~/Applications/f-engrave
  17. Change to your final application directory: cd ~/Applications/f-engrave
  18. Update your PATH environment variable to include this directory so F-Engrave can find potrace and tt2cxf. You’ll need to do this every time you launch the Terminal or add the line to your ~/.bashrc: export PATH=$PATH:~/Applications/f-engrave
  19. Run F-Engrave using Python: python ./f-engrave-152.py


Alternately, to package as a stand-alone app: https://www.metachris.com/2015/11/create-standalone-mac-os-x-applications-with-python-and-py2app/

Using F-Engrave with GRBL

F-Engrave defines variables for the feed rate and engraving cut depth that are not compatible with GBRL and uses incremental distance mode for arcs.[1] To generate g-code compatible with GRBL:

  • Select the “Disable Variables” check box in the F-Engrave Settings window
  • un-select the “Enable Arc Fitting” check box in the F-Engrave Settings window
  • Use F-Engrave version 1.34 or higher. 1.49 adds a new option to not emit comments which will help to make files fit w/in Grbl's line limit.[2]
  • Select “Suppress Comments” in the F-Engrave “General Settings” Window

See above for how to add these changes to the configuration file and make them persistent.


Note especially the Sub-Step Length setting:

"The v-carving algorithm steps along the font or DXF outline and performs tool location and depth calculations at a fixed interval. The fixed interval is the "Sub-Step Length" a large substep length will increase the speed of the v-carve calculation but could result in a more faceted looking v-carve. Reducing the "Sub-Step Length" too much can cause excessive calculation time and reduced CNC machine performance (due to excessive short G1 commands). If in doubt start with a larger step size and reduce the value until the results seem reasonable."[3]

Also, F-engrave gained an option for multiple passes when V-carving which should be enabled for larger projects or harder materials or less-rigid machines.[4] checkbox enable multi pass[5]




Prior to v1.45, F-Engrave would make all cuts to full depth, which could overwhelm a machine's ability to cut.[7]

Releases since add multi-pass cutting.[8] Bold text