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 a G0 Zx (where x is the zClamp value) if one is needed before the M2 or M30
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 and M60, 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?
Wait, you evaluate the gcode and optimize the ātravelā/cut code?!
I need to test this with my CamBam code because most times i have the impression that CamBam never met a traveling salesman Optimized āroutesā would be extremely important especially with the maslow.
GCodeClean works as a line-by-line optimiser, technically it is a streaming processor. I did it that way so that it would keep its memory consumption to a minimum. So that means that Iāve been able to do optimisation of the cutting paths (to a tolerance), but optimising the travel isnāt possible that way, because obviously youāre shuffling entire sections of the GCode around.
So thatās where my thoughts of having functionality to split the GCode into multiple discrete files, would then facilitate being able to recombine them in a different order.
[quote=āmd8n, post:5, topic:17995, full:trueā]
GCodeClean works as a line-by-line optimiser, technically it is a streaming processor. I did it that way so that it would keep its memory consumption to a minimum. So that means that Iāve been able to do optimisation of the cutting paths (to a tolerance), but optimising the travel isnāt possible that way, because obviously youāre shuffling entire sections of the GCode around.[/quote]
Yes, thats why had been asking. Doing a full āpost traveling salesmanā on gcode should be worth a masters degree
Using carbide create, it always generates a tool change in the beginning and after cleaning it is removed, also seems like other tool changes were removed. Used minimise soft and zClamp