1.1.0
This release includes some enhancements and bugfixes related to user feedback, as well as a major overhaul of arc error detection. Please leave any feedback for this release here.
Some of the enhancements were geared towards increasing performance, but some of the bug fixes and other enhancement reduced performance. I think it is a wash.
@fieldOfView was kind enough to supply a build for MacOS, which has been attached. Thanks!
Enhancements
- If ArcWelder fails to find an arc in the usual way, using the first, middle, and final points, it will perform a deep search of all possible points for an arc. If more than one arc is detected, it will use the one with the least average deviation. This increases compression by a few percent, but does slow down the algorithm somewhat. Solves #29
- Advanced arc error detection has been added, which will prevent errant arcs no matter what the path_tolerance_percent is set at (I used 10,000% to test extreme cases). I've not found a situation yet where this new algorithm fails. This should prevent a lot of edge cases from causing problems. Please note that these situations were very rare, but serious.
- The windows binaries are now statically linked, which should allow ArcWelder to run without the c++ runtime libraries. The exe is a bit bigger, but I think this is a great tradeoff for not needing an installer.
- I've added a binary for the Raspberry Pi.
- A modified version of the fpconv algorithm has been implement to enhance the speed of generating floating point strings. Solves #24
- The precision of XYZIJ and E parameters can now be specifically defined in both the console version and the libraries. Solved #22.
- POW and the Modulus operator have been removed to increase performance where possible. Solves #25
- Tolerance values are now pre-calculated, further increasing performance. Solves #26
- All relevant settings are now added to the ArcWelder comment at the top of the file. This should help simplify debugging of future issues.
Bugfixes
- It was possible (though very rare) in previous versions of ArcWelderConsole and the related libraries to produce an arc with I and J values below the current precision of the gcode output. This caused errors and disconnects in some firmware. This problem is now detected an prevented. Solves #23
- The default value for mm-per-arc-segment was incorrect. This has been corrected.