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 DXF files
- 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.30
- When importing DXF files F-Engrave no longer relies on the direction of the loop (clockwise/counterclockwise) to determines which side to cut. Now F-Engrave determines which loops are inside of other loops and flips the directions automatically.
- Added a new option for "V-Carve Loop Accuracy" in v-carve settings. This setting tells F-Engrave to ignore features smaller than the set value. This allows F-Engrave to ignore small DXF imperfections that resulted in bad tool paths.
Changes in Version 1.31
- Fixed bug that was preventing batch mode from working in version 1.30
Changes in Version 1.32
- 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.
Changes in Version 1.33
- Added option for scaling input image height as a percent of the input values (rather than inputing the height as a length unit).
- Fixed batch mode...again. (I should really check that it is working before each new release)
Changes in Version 1.34
- Eliminated G91.1 code when arc fitting is disabled. When arc fitting is disabled the code (G91.1) is not needed and it may cause problems for interpreters that do not support that code (i.e. GRBL / ShapeOko).
- GRBL / ShapeOko users should use the settings discussed here
Using F-Engrave with GRBL.
See the F-Engrave user manual for details on how to save these setting from F-Engrave session to session using a config.ngc file.
Changes in Version 1.35
- Fixed importing of ellipse features from DXF files. Ellipse end overlapped the beginning of the ellipse.
- Fixed saving long text to .ncg files. Long text was truncated when a .ngc file was opened.
Version 1.34 - Eliminated G91.1 code when arc fitting is disabled. When arc fitting is disabled the code (G91.1) is not needed and it may cause problems for interpreters that do not support that code (i.e. GRBL / ShapeOko).
Version 1.35/1.36 - Fixed importing of ellipse features from DXF files. Ellipse end overlapped the beginning of the ellipse. Also Fixed saving long text to .ncg files. Long text was truncated when a .ngc file was opened.
PyCAM (looks like PyCAM can do centering and multiple lines of text. Thumbs up!)
Another Approach to V-carving:
My method for determining the tool paths for v-carving are detailed in the link above. Another method involves calculating Voronoi diagrams or Voronoi nodes. Here are a couple of links to other peoples work.