AutolevellerAE (Advanced Edition) – This is the main and most active project to date. The code is quite different to the original Autoleveller whilst achieving the same goal. Essentially there are 3 main functions to this.
- Add a probing/Mesh routine to the start of a GCode file and record the results of each probe
- Segment lines in the GCode job so that levelling can be performed at regular intervals
- Level each segment using bi-linear interpolation using the recorded probe results from step 1
This allows the Z depth to adjust itself during the etching process, leading to a more consistent and accurate result.
You can download this open-source project and make the changes that you need. The javadoc’d methods and classes are designed to make the code as explanatory as possible but feel free to ask me anything about the code.
AutoLeveller project – The source code for the AutoLeveller project is written in Java and is fully open-source. Please feel free to download the source code and modify as you wish from its Bitbucket repository. AutoLeveller first probes the surface in a rectangular grid array and each time it touches the surface, the current Z value is recorded. Now for any x y coordinate in the GCode file there are 4 known Z values around it. With those known values we use a bilinear interpolation technique to get the most appropriate Z value for that x y point. For longer segments in the given GCode, they need to be, and are first broken down into smaller segments to allow the height to be adjusted more often, thus improving accuracy.
GCode Object Model (GOM) – The source code for the GOM project is written in Java and is fully open-source. Please feel free to download the source code and modify as you wish from its Bitbucket repository. GOM is designed as a generic parser for GCode which will transform a GCode text script into a set of objects which includes more useful information on Words etc. and can be more easily manipulated by the application which uses GOM. GOM is a separate library, not an application itself, so can be be used as a foundation for many CNC type projects, both mine and others. Although written in Java, GOM is designed to be quick and could be rewritten as a low level C library for example.
GOM Viewer – The source code for the GOM Viewer project is written in Java and is fully open-source. Please feel free to download the source code and modify as you wish from its Bitbucket repository. The GOM Viewer is a simple application designed to visually show the workings of GOM. The intention here is to show the powerful features of GOM and can be used as a diagnostic tool where dealing with applications which make use of the GOM library.