F-Engrave is a text or image to g-code program (for both engraving and v-carving) 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, images and DXF files (DXF files and fonts should be composed of closed section loops when v-carving)
- V-Carve inlay support (see video below)
- B-Carving, v-carving with a ball nose bit instead of a v-bit (see image below)
- Straight bit pocketing (in the v-carve window) cut pockets using a straight bit.
- Imports DXF files
- Imports bitmap 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
- 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 post-amble
- 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.56
- Changed line/curve fitting to use Douglas-Peucker curve fitting routine originally from LinuxCNC image2gcode (This results in smaller output files.)
- Re-enabled the use of #2 variable when engraving with variable enabled (was broken in previous version)
- Fixed SVG export (was broken in previous version)
- A few other miscellaneous repairs/improvements.
Changes in Version 1.57
- Fixed feed rate. Changes in 1.56 resulted in feed rate not being written to g-code file.
Changes in Version 1.58
- Fixed some special cases which resulted in errors being thrown (v-carve single lines)
- Changed the default settings to be more compatible with incomplete g-code interpretors like GRBL
Changes in Version 1.59
-Fixed bug in arc fitting
- Rewrote Cleanup operation calculations (fixes a bug that resulted in some areas not being cleaned up
- Changed flip normals behavior, There are now two options: Flip Normals and Add Box (Flip Normals)
- Changed prismatic cut to allow the use of either of the two Flip normals options (one of the two Flip normals options must be selected for the inlay cuts to be performed properly
- Added DXF Export option (with and without auto closed loops)
Changes in Version 1.60
- Fixed divide by zero error that occurred sometimes in v-carve cleanup
Changes in Version 1.61
- Fixed a bug that prevented opening DXF files that contain no features with positive Y coordinates
Changes in Version 1.62
- Fixed a bug that resulted in bad cleanup tool paths in some situations
- Changed the executable build settings to get rid of the black window that showed up on Windows computers
Changes in Version 1.63
- Removed code that loaded PIL _imaging module. The module is not needed
- Changed "Open F-Engrave G-Code File" "Read Settings From File"
- Added "Save Setting to File" file option in File menu
- Fixed v-bit cleanup step over. Generated step was twice the input cleanup step.
- Updated icon.
- Added console version of application to windows distribution. For batch mode in Windows.
Changes in Version 1.64
- Fixed bug that created erroneous lines in some circumstances during v-carving.
- Mapped save function to Control-S for easier g-code saving
Changes in Version 1.65
- Fixed bug in sort_for_v_carve that resulted in an error for certain designs.
For the full history look at the F-Engrave Change Log
Windows Executable Files
Python File Only (.py - text file)
(No True Type Font (TTF) support)
For Mac please see: Packaging of F-Engrave as an OSX Application
F-Engrave V-Carving Tutorial (BMP File Used in Tutorial: Polski_Crest.bmp)
F-Engrave Reference Manual
(Also available in French thanks to Dirty Marmotte: French Manual)
F-Engrave V-Carve Algebra/Geometry Details
The video embedded below shows the process to make a v-carve inlay using a bitmap file with F-Engrave.
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.