F-Engrave Change Log

Version 0.1 (Initial Code)

- Writes g-code file based on plain text input (fonts are based on CXF font files)
- Supports multiple lines of text
- Justify multiple lines text (Left, Right and Centered)
- Mirroring text (vertical) and flipping text (horizontal), useful when creating molds for parts
- Create text that follows a circle of input radius (top or bottom of circle and inside or outside of circle are supported)
- Origin selection allows user to select the location of global origin, many options are available (top, bottom, centered left, right, etc) in an option menu
- Input and display of line thickness to be used during engraving allows visualization of end result
- Mouse selectable fonts in list box shows the content of the selected font folder containing CXF fonts to allow quick preview of available fonts
- Display all characters in the currently selected font file
- Open a previously exported G-Code file and retrieve the settings and text used to create the G-Code file
- Add bounding box (a circle is exported when using the text on a circle option)
- Use inches or mm as export units
- Customizable G-Code preamble and postamble
- Display size of output engraving in the message bar at the bottom of the main window
- Export Scalable Vector Graphics (SVG) file
- 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 0.2

- V-carve for outline fonts
- Pan and zoom in the display window (left and right mouse button)
- Fixed potential infinite loop
- Moved font file read out of calculation loop (increased speed)

Changes in Version 0.3

- Bug fix for flip normals and flip text
- Moved depth scalar calc out of for loop

Changes in Version 0.4

- Minor misc bug fixes
- Added importing for DXF files
- Added True Type support using the ttf2cxf_stream helper program
- Fixed line thickness display when zooming

Changes in Version 0.5

- Added support for more DXF entity types POLYLINE and LEADER (leaders won't have arrow heads)
- Added global accuracy setting
- Added straight line detection in v-carve output (reduces number of G1 commands and output file size)
- Improved V-carving algorithm (fixed problems with some special cases)
- Added better checking for extremely small features that should be ignored.
- Added "Flip box/circle normals" option to allow better control of the bounding box/circle in v-carving mode.

Changes in Version 0.6

- Added import Portable BitMap (PBM) images using potrace as a helper program
- Default directory for opening PBM and DXF files is now set to the current font directory
- Default directory for and saving is now set to the users home directory
- Helper programs should now be found if they are in the global search path or F-Engrave script folder (Previously the helper programs needed to be in f-engrave script folder)

Changes in Version 0.7

- Increased speed of v-carve calculation for large designs. Approximately up to 20 times faster now.
- Added window that displays status and contains a stop button for v-carve calculations
- Fixed display so that it no longer freezes during long calculations
- Fixed divide by zero error for certain fonts (Bug in Versions 0.5 and 0.6. Thanks to Vogavt for finding the bug)

Changes in Version 0.8

- Changed interface when working with image (DXF or PBM) files.
- Added post processing logic to reduce number and distance of rapid moves
- Fixed bug in DXF code that caused failure to import some DXF files.
- Changed settings dialogs to allow recalculation and v-carving from the dialog window to preview settings
- Added some logic for determining default .ngc names and directory when saving
- Removed option for steps around corner (Now internally calculated based on step length and bit geometry)

Changes in Version 0.90

- Added arc fitting to g-code output
- Fixed extended characters up to 255 (now uses numbers for the font index rather than the character)
- Added option for a second operation g-code output file to cleanup islands and adjacent areas of a v-carving
- Cleaned up some GUI bugs introduced in Version 0.8
- Remove flip border normals option
- Default to check "all" instead of current character "chr"
- Changed the percent complete calculation to use the % of the total segment length rather than the segment count

Changes in Version 0.91

- Fixed bug that caused Radius setting from text mode to affect image mode
- Fixed bug that caused some DXF files to fail erroneously

Changes in Version 0.92

- Fixed bug that caused some buttons on the v-carve setting to not show up.

Changes in Version 0.93

- Fixed bug that caused bad g-code in some cases.

Changes in Version 1.00

- Added support for DXF polyline entity "bulges" (CamBam uses polyline bulges in DXF exports)
- Modified code to be compatable with Python 3. (F-Engrave now works with Python 2.5 through 3.3)
- Removed stale references to grid 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 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.

Changes in Version 1.14

-Fixed bug preventing the use of the Cut Depth Limit when b-carving
- Updated website info in help menu

Changes in Version 1.20

- Added option (in General Settings) to enable extended (unicode) characters
For extended character to work you will need the new version of ttf2cxf_stream. The new ttf2cxf_stream is included in the windows download and the source is in the SRC zip file for Linux users.
- Made a small change to the v-carve algorithm to fix a special case.

Changes in Version 1.21

- Added more command line options. Including a batch mode without a GUI.

Changes in Version 1.22

- Fixed three bugs associated with importing dxf files
- Fixed bug associated with cleanup calculations
- Changed minimum allowable line spacing from one to zero

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.

Changes in Version 1.36

- Fixed saving problem created in v1.35.

Changes in Version 1.37

- Added logic to ignore very small line segments that caused problems v-carving some graphic input files.

Changes in Version 1.38

- Changed default origin to the DXF input file origin when height is set by percentage of DXF image size.

Changes in Version 1.39

- Fixed bug in v-carving routine resulting in failed v-carve calculation. (Bug introduced in Version 1.37)

Changes in Version 1.40

- Added code to increased v-carving speed (based on input from geo01005)
- Windows executable file now generated from Python 2.5 with Psyco support (significant speed increase)
- Changed Default Origin behavior(for DXF/Image files) to be the origin of the DXF file or lower left corner of the input image.
- 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.

Changes in Version 1.41

- Adjusted global Zero value (previous value resulted in bad tool paths resulting from rounding errors during v-carving for nearly parallel lines)
- Removed use of accuracy (Acc) in the v-carve circle calculation

Changes in Version 1.42

- Changed default setting in General Settings to disable variables. (This is intended to help new Shapoko users get past GRBL limitations.)

Changes in Version 1.43

- Fixed a bug that prevented clean up in some areas after the v-carve clean up calculation.

Changes in Version 1.44

- Fixed really bad bug in v-carve cleanup for bitmap images introduced in V1.43

Changes in Version 1.45

- Added multipass cutting for v-carving

Settings for multipass cutting are in the V-Carve Settings:
-Finish Pass Stock is the amount of material that will be removed on the last pass
-Max Depth per Pass is the maximum depth of material that can be removed in one cut.
- Removed "Inside Corner Angle" and "Outside Corner Angle" options from v-carve settings

Changes in Version 1.46

- Fixed bug that resulted in multipass cutting all of the time for v-carving

Changes in Version 1.47

- Added ability to read more types of DXF files (files using BLOCKS with the INSERT command)
- Fixed errors when running batch mode for v-carving.
- Added .tap to the drop down list of file extensions in the file save window

Changes in Version 1.48

- Fixed another bug in the multipass code resulting in multipass cutting when multipass cutting was disabled.

Changes in Version 1.49

- Added option to suppress option recovery comments in the g-code output
- Added button in "General Settings" to automatically save a configuration (config.ngc) file

Changes in Version 1.50

- Modified helper program (ttf2cxf_stream) and F-Engrave interaction with it to better control the line segment approximation of arcs.
- Added straight cutter support
- Added option to create prismatic cuts (inverse of v-carve). This option opens the possibility of making v-carve inlays.
- Fixed minor bug in the v-bit cleanup tool path generation
- Changed the behavior when using inverting normals for v-carving. Now a box is automatically generated to bound the cutting on the outside of the design/lettering. The size of the box is controlled by the Box/Circle Gap setting in the general settings.
- Removed v-carve accuracy setting
- Added option for radius format g-code arcs when arc fitting. This will help compatibility with g-code interpretors that are missing support for center format arcs.

Changes in Version 1.51

- Added Plunge feed rate setting (if set to zero the normal feed rate applies)
- Removed default coolant start/stop M codes for the header and footer
- Changed default footer to include a newline character between the M codes another Shapeoko/GRBL problem.
- Fixed some Python 3 incompatibilities with reading configuration files

Changes in Version 1.52

- Fixed potential divide by zero error in DXF reader
- Text mode now includes space for leading carriage returns (i.e. Carriage returns before text characters)

Changes in Version 1.53

- Changed space for leading carriage returns to only apply at 0,90,270 and 180 degree rotations.
- Added floating tool tips to the options on the main window (hover over the option labels to see the tool tip text)

Changes in Version 1.54

- Fixed bug that resulted in errors if the path to a file contained the text of an F-Engrave setting variable
- Reduced time to open existing g-code files by eliminating unnecessary recalculation calls.
- Added configuration variable to remember the last. Folder location used when a configuration file is saved.
- Added support for most jpg, gif, tif and png files (it is still best to use Bitmaps)
- After saving a new configuration file the settings menu will now pop back to the top (sometimes it would get buried under other windows)
- F-Engrave now searches current folder and home folder for image files when opening existing g-code files. previously the image file needed to be in the exact path location as when the file was saved

Changes in Version 1.55

- Fixed error in line/curve fitting that resulted in bad output with high Accuracy settings
- Fixed missing parentheses on file close commands
- Suppress comments in g-code should now suppress all full line g-code comments
- Fixed error that resulted in cutting outside the lines with large Accuracy settings



Scorch Works Home
Scorch Works Home