This project contains several Cura slicer utilities that enhance the experience for Flashforge Finder users.
Version 1.0.0 available, and version 1.0.1 still under review!
Download from the .curapackages from Releases page and drop them into Cura. After you restart Cura, plugins will be installed and you can save .GX files already.
In order to add Flashforge Finder, you need to use the Extensions -> Flashforge Finder -> Install files menu entry. After that step, you can see FlashForge Finder in the Add Printer dialog.
You can checkout the repository and use the GNU Make tool to build the .curapackage files yourself:
git clone https://github.com/ronoaldo/FlashforgeFinderIntegration
cd FlashforgeFinderIntegration
make
After that, there will be two .curapackage files in the build directory. Follow the same steps as the "Binary Releases" section to use them.
Optionally, you can just copy the two folders under plugins/ directory in your Cura configuration plugins direcotry. Go to "Help -> Show configuration directories" menu in order to achieve that.
GX files are normal g-code but with an extra binary header used by FlashForge Finder and similar printers.
The header contains a few data used by the printer firmware, such as a thumbnail of the objet to print, print time, temperature and other information.
This work is based on the ChituCodeWriter from https://github.com/Spanni26/ChituCodeWriter and the detailed reverse-engineering description of the binary header from this issue on Github.
Github user https://github.com/cme-linux made a great work reverse engineering the binary header fields and shared this as a feature request for Slic3r.
To extract .BMP from .GX in Linux:
dd if=”file.gx” of=”file.bmp” skip=58 count=14454 iflag=skip_bytes,count_bytes
To extract G-Code from .GX in Linux:
dd if=”file.gx” of=”file.gcode” skip=14512 iflag=skip_bytes
Byte offsets in the .GX file, as stated in this feature request, are 0-based. All numbers are little-endian binary (2 or 4 bytes) unless specified to be ASCII plaintext.
Offsets through 0x1B seem to contain constant data:
Offsets 0x1C through 0x39 seem to contain the following variables. The first three are 4 bytes; the other ones are 2 bytes.
FlashForge software/firmware uses that data these ways:
After the header is the bitmap. This starts at offset 0x3A (decimal 58), ends @ offset 0x38AF. The next offset, 0x38B0 (decimal 14512), is the start of the G-code. The length of the bitmap is 0x3876 (decimal 14454) bytes.
The picture is in the ordinary .BMP format, uncompressed, 80 x 60 pixels (0x50 by 0x3C). Some of the following parameters would be taken care of automatically by a .BMP library, but I'll list these parameters anyway. The pixels start at byte offset 0x36 into the .BMP section of the .GX file. There are 256 shades of gray, written as 24-bit color, 3 bytes per pixel, all 3 bytes having the same value.
The .BMP pixels-per-meter values are set to 0x1274 which is 120 dpi. BMP files contain the pixel rows in bottom-to-top order.
The background is black and the 3D model is shown in an angled perspective view (lines parallel to the coordinate axes converge slightly into the distance).