Finally!!
The last two things holding me back from declaring GCodeClean has reached v1 Iāve tackled and resolved:
- Line to arc deduplication works for more then just two line segments - This has actually been working since 0.9.6 but I didnāt have a decent test for it - now I do.
- āPostambleā - ensuring that a GCode file finishes nicely with an
M2
,M30
or%
as required. Plus injecting aG0 Zx
(where x is the zClamp value) if one is needed before theM2
orM30
The pre-built binaries for Windows, Linux and Linux-ARM (Raspberry Pi) are now available.
So now what?
Getting this far has got me thinking about what to tackle next, perhaps coming up with a road map of housekeeping needs, possible new features, as well as asking for suggestions, and tackling some of the pain points.
Housekeeping
- File pre-scan - Thereās some key info in the file, such as what measurement units are in use, that are needed everywhere by GCodeClean, so doing a first pass through the file for all of these values would be very useful and help me simplify some of the code.
New Features
- Inject blank lines before significant actions - Such as tool changes, tool raises, the ātemporaryā tool stop commands
M0
,M1
andM60
, and maybe some other stuff. - File splitting - Split a file into discrete and complete GCode files for every āsignificant actionā.
- More support for other GCode syntaxes - GCodeClean simply ignores things it doesnāt understand just letting them go right through, but that does mean that they donāt get any attention to make sure theyāre at their best. Thereās lots of other flavours of GCode that could benefit from a little more love.
- Unit conversion - Change from inches to millimeters. And maybe the other way if you buy me
- Path optimisation - Yeah this one is a real biggy, and for practical purposes Iād want the āFile Splittingā done as a precursor for this work. In effect this is solving the Travelling Salesman problem which is one of the hardest problems in computer science, but there are ways to do a ānot so badā solution to this problem.
- Path inversion - swap the start and end of a cut
Suggestions
- What have you got?
Pain Points
- #1 is definitely the issue that lots of Windows (or Mac) based users have never used command line / terminal based software before. @Orob has conveniently bypassed this for me by adding a call to GCodeClean via WebControl. But maybe I should add my own UI?