
F-Engrave is a text to g-code program that is written in python and is based on the text engraving software (engrave-11) available in the LinuxCNCKnowledgeBase. The name F-Engrave is simply the predecessor programs name "engrave" with an "F" slapped on to indicate that the program can perform more formating functions like justification (left, right and center) and text on a circle. When I first released the program I had no idea I was going to add v-carving or DXF features so the name does not reflect any of those features. F-Engrave is a free open source program released under the GNU General Public License (GPL) Version 3. There is not much left of the original engrave-11 script but I needed a jumping off point. One of the things that remained intact for the most part is the CXF font reading. (although I tweaked it to accept a second variation of the CXF font format.)
- V-carve for outline fonts and images (images and fonts should be composed of closed section loops when v-carving)
- Imports for DXF files (not all formats)
- Imports PBM images (with potrace helper program)
- Uses TTF font files (with the help of ttf2cxf_stream, not all formats are supported)
- Capable of exporting Scalable Vector Graphics (SVG) file
- Opens previously saved G-Code file and retrieve the settings and text
- Supports multiple lines of text with justification (Left, Right and Centered)
- Mirroring text (vertical) and flipping text (horizontal)
- Create text that follows an arc
- Origin selection allows user to select the location of g-code zero position
- Display line thickness to be used during engraving allows visualization of end result
- Use inches or mm as export units
- Customizable G-Code preamble and postamble
- Usable as an LinuxCNC Axis filter program (open the f-engrave.py file from within LinuxCNC Axis File-Open-f-engrave.py. when you are finished with your text select File-Write To Axis and Exit, This option only existed when executed from within Axis)
Changes in Version 1.00
- Added support for DXF polyline entity "bulges" (CamBam uses polyline bulges in DXF exports)
- Modified code to be compatible with Python 3. (F-Engrave now works with Python 2.5 through 3.3)
- Removed stale references to the grid geometry manager
- Made minor user interface changes
Changes in Version 1.01
- Fixed bug importing text information from g-code file in Python 3
- Put additional restriction on arc fitting to prevent arcing straight lines
Changes in Version 1.02
- Added additional restriction on arc fitting to prevent huge erroneous circles
- Added key binding for CTRL-g to copy g-code to clipboard
Changes in Version 1.10
- Added Command line option to set the default directory
- Added setting option for disabling the use of variable in the g-code output
- Added option for b-carving (using a ball endmill in v-carve mode)
- Added the text to be engraved to the top of the ngc file
- Added max depth to the v-carve settings
- Eliminated failure to save g-code file when the image filename contains extended characters.
- Changed the default .ngc/.svg filename when saving. Now it always uses the base of the image file name.
- Changed the default behavior for v-carve step size. now the default in or mm value is always reset (0.010in or 0.25mm) when switching between unit types. This will ensure that metric users will start with a good default step size setting.
Changes in Version 1.11
- Fixed error when saving cleanup g-code.
- Removed Extra spaces from begining of g-code preamble and postamble
- Added arc fitting to the variables that are saved to and read from the g-code output file
Changes in Version 1.12
- Added logic to add newline to g-code preamble and g-code postamble whenever a pipe character "|" is input
Changes in Version 1.13
-Fixed bug preventing cleanup toolpaths when the "Cut Depth Limit" variable is used.
For the full history look at the F-Engrave Change Log
|
Source files (zip file) |
Windows Executable Files (zip file) |
Python File Only (.py - text file) (No True Type Font (TTF) support) |
|
|
F-Engrave-1.10_src.zip |
F-Engrave-1.10_win.zip |
f-engrave-110.py |
|
|
F-Engrave-1.13_src.zip |
F-Engrave-1.13_win.zip |
f-engrave-113.py |
Version 1.13 is 1.10 with code fixes for: Fixed: Error when saving cleanup g-code. Fixed: Removed Extra spaces from begining of g-code preamble and postamble Fixed: Added arc fitting to the variables that are saved to and read from the g-code output file Fixed: Added option to input carriage returns into g-code pre and postambles by inserting pipe characters "|" Fixed: Bug preventing cleanup toolpaths when the "Cut Depth Limit" variable is used. |
F-Engrave V-Carving Tutorial (PDF Version: F-engrave_tutorial.pdf) (BMP File Used in Tutorial: Polski_Crest.bmp)
F-Engrave V-Carve Algebra/Geometry Details
The videos embedded below contain a lot of the information regarding the F-Engrave input fields and the basic capabilities of F-Engrave.
Video Tutorial (in French) by EquinoxeFR
|
F-Engrave video manual addendum using the DXF import feature |
F-Engrave video manual addendum describing the v-carving feature |
|
V0.1 F-Engrave video manual |
Using F-Engrave to engrave text on hockey pucks |
F-Engrave can generate tool paths for v-carving. I posted algebra behind the geometric calculations here:Algebra/Geometry.

F-Engrave can also generate tool paths for b-carving. What is b-carving? B-carving is analogous to v-carving only the bit used in b-carving is a round nose (ball nose) cutter.



