ArcWelderPlugin Versions Save

A plugin for OctoPrint used to convert G0/G1 commands to G2/G3 commands. Reduce the size of your gcode files, and reduce number of gcodes per second sent to your printer.

1.1.0rc4

2 years ago

At long last a new RC of ArcWelder is available! I've worked out a bunch of difficult enhancements, and just need some feedback before I push to live. I'm absolutely committed to getting the final release of 1.1.0 out before the new year.

Please post any feedback in the discussion for this release.

Enhancements

  • Add extrusion rate variance to support Cura's Arachne engine (variable line width). As an added bonus, this should increase quality if ANY slicer misbehaves by dramatically varying the extrusion rate between moves.
  • Add support for travel move conversion. Now extrusion isn't required for conversion, which should make everyone who is using a pen plotter happy.
  • Add workaround for firmware that does not support long gcode commands. You can now limit the maximum gcode command length.
  • Reduce the max radius to reduce the impact of gcodes that are too long for the current firmware implementation. It now stands at 9999mm.
  • Enhance arc generation to convert more G1/G2 commands to arcs when transitioning from retraction/deretraction/travel. Previously the initial point would not be encoded when switching between extrusion/retraction/travel.
  • Enhance segment/travel statistics rendering for python code to include unicode box drawing characters, and add separate statistics for travel move encoding.
  • Add a 'Cancel All' button to cancel all pending jobs.
  • General enhancements to the tab and settings.

Bug Fixes

  • Settings in the 'Current Run Configuration' are now only updated after saving settings changes.

Photos of the New Interface

image

image

image

image

image

1.1.0rc2

3 years ago

This version fixes a few issues found in 1.1.0rc1, and includes support for UltiGCode. I want to REALLY encourage anyone reading this to take a few minutes to provide feedback here. I am especially interested in knowing who has installed this successfully, and if you have successfully printed a welded file. I also want to hear about the good, the bad, and the ugly. I really need some feedback so I know when this is stable enough to push to master. It's getting REALLY close now. Were it not for a substantial bugfix in the core ArcWelderLib, I would have already done this.

Enancements

  • Support for UltiGCode. Basically, if the first line of the GCode file is ;FLAVOR:UltiGCode, then that line is preserved, and the Arc Welder header will go under it. Solves this issue in the ArcWelderLib repo.
  • The display name of your welded file is now preserved, even if it is encoded due to OS incompatibility with some characters. This was added as an enhancement while solving #138.

Bug Fixes

  • Fix for #138, where files with encoded characters that are manually processed were not being decoded, resulting in a 'File Not Found' error.
  • Added a very important fix from an issue in the ArcWelderLib repository, where empty lines between GCodes that were converted to arcs could cause some out-of-order GCodes. For most people, this wasn't an issue, but some post-processors or manual edits could have caused print failures if newlines were inserted in GCodes that are turned into arcs. This was REALLY difficult to debug, so I'm keen to push this fix out there.

1.1.0rc1

3 years ago

This release contains all of the enhancements from the last devel rc, plus some extras from the latest ArcWelderLib release. There have also been some enhancements to the plugin itself.

Please leave any feedback regarding this version here, and thanks in advance for reporting success, failure, features you love, things you hate, or anything you think is missing!

Enhancements

  • Several error popups that can happen during a restart of OctoPrint have been removed. Solves #128.
  • Prevent re-processing of previously welded files, as long as they contain the headers added by ArcWelder. Solves #57.
  • Add advanced arc error detection (#114), which prevents incorrect arcs from being generated in edge cases. These errant arcs were extremely rare, and tended to occur only with some slicers that produced unusual GCode. The algorithm prevents bad arcs from being generated even when the path tolerance percent is extremely high (I used 10,000% to test extreme cases).
  • 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.
  • A modified version of the fpconv algorithm has been implement to enhance the speed of generating floating point strings.
  • The precision of XYZIJ and E parameters can now be specifically defined.
  • Pow and the Modulus operator have been removed to increase performance where possible.
  • Tolerance values are now pre-calculated, further increasing performance.
  • All relevant settings are now added to the ArcWelder comment at the top of the file. This should help simplify debugging of future issues.

Bug Fixes

  • Statistics were sometimes getting erased due to a race condition.
  • Missing I and J parameters, or values of 0 for both were possible due to rounding, which caused some firmware to ignore the move entirely. This now causes the arc to abort, so this is no longer an issue.

1.0.1rc1.dev2

3 years ago

This release comes with some major changes to the user interface, file queuing, processing speed, compression, and reliability of arcs generated. Thank you to everyone who helped me test the previous versions, the devel code, and who offered suggestions for improvement! I believe the result is a much better product overall.

Enhancements

  • Firmware Checker - This can warn you of potential firmware issues before starting a print. It will show you if arc support is enabled, disabled, or if Arc Welder just can't tell. It will also alert you to warnings or oddities about specific versions of the firmware and will make recommendations regarding how to resolve the issue. Note that not all firmware types have been mapped, but the checker updates its definitions automatically from a separate repository. The repository supports adding new definitions on the fly in most cases, without updating ArcWelder itself. If you don't like the checker, you can even disable it!
  • Firmware Compensation - Are you running an older firmware version and having problems printing small corners that are turning out flat? Arc Welder now has firmware compensation to deal with this, allowing you to produce small curves at the cost of a little compression. When using firmware compensation, new statistics will show you how many arcs were aborted and how that affected the final compression.
  • Vase Mode Support - This experimental feature allows you to use ArcWelder with vase mode prints. My testing shows a dramatic compression rate for the average vase.
  • *Improved UI - Fewer popups, more info, including the ability to show or hide the many of the panels. Processing progress now displays on the Arc Welder tab instead of an annoying popup. You can cancel processing or queued items. More file statistics are displayed, and the formatting has improved. Added Arc Welding info to the file manager details.
  • More Configurable - Several settings have been added to allow you to fine tune Arc Welder to meet your needs. Control the output GCode precision or allow it to manually scale to match your source GCode. Control the maximum allowed path length deviation. Turn optional popups on and off, and more.
  • More Compression - Every last drop of compression has been squeezed out in this version, resulting in more arcs generated. If Arc Welder fails to find an arc with the standard detection algorithm, it will dig deeper to analyze the GCode, allowing the new version to generate arcs in situations where the old version failed. Despite this, the new version is faster than the old version due to several other speed enhancements.
  • Add Advanced Arc Error Detection - Some GCode does crazy things that baffled previous versions of Arc Welder. Several settings were used as safeguards against this, like the path tolerance percent. Now, these bad arcs are detected and aborted before they can cause problems. Arc welder now ensures that the rotational direction of each arc is consistent across all segments and that the start and end points of each arc are never crossed by the segments it was composed of. Thanks to other performance enhancements, the final algorithm is actually a bit faster than the previous version.

Bug Fixes

  • Fix Unicode Issues - Unicode file names and GCode comments caused problems in previous versions depending on the python version. This has been corrected. Also, Unicode output within the GCode file was sometimes off, especially in comments. This has also been fixed.
  • Software Update Issues - Due to a botched implementation of the new per-plugin release channel selection in OctoPrint 1.5+, automatic updates for ArcWelder were broken for that version of OctoPrint. This has been resolved.
  • Firmware Checksum Issues - The output GCode precision has been limited to prevent checksum errors caused by overrunning the max GCode buffer length.
  • Move Exceeded Maximum Extrusion - This was solved by the advanced arc error detection algorithm. It was a rare issue, but it needed to be dealt with in order for ArcWelder to be complete.

1.0.1.rc1.dev1

3 years ago

I got some great feedback and ideas from the initial release. Thanks everyone! Please leave feedback here, and as usual feel free to tell me what you love, hate, or would like to see. Thanks!

New Features

  • Print After Processing - This allows either automatic or manually processed files to be printed after processing is completed. This should help people wanting to start prints directly from their slicer. Currently there is no option to enable this only for remote upload, because I've not found any way to detect that. Solves issues #43, #39 and #36.
  • Select After Processing - Allows Arc Welder to select the most recently completed file if possible. This solves #49, as reported in the feedback thread for 1.0.0.
  • Disable Arc Welder Button While Printing - Prevents manual processing from the file manager while a print is running. Solves #50.
  • Current Run Configuration is Now Collapsible - Lets you show and hide the current settings within the Arc Welder tab. Your selection is stored within the browser so your setting is remembered. Solves #54.

Enhancements

  • Prevent Adding Files Twice - Arc Welder will now reject any files that are either currently processing, or are queued for processing. Solves #51.
  • Cancel and Re-Queue If Printing Starts - If you start a print while a file is processing, Arc Welder will cancel processing (after a few seconds), and will re-queue the file so that it starts after printing is complete. Solves #53 and #46.
  • Safety Features Added to Print After Processing - If you are using the new Print After Processing option, Arc Welder will ignore this option if a print is started after processing begins. This includes prints started by Arc Welder. This keeps Arc Welder from starting a print immediately after another finishes.
  • Prevent Automatic Processing When Files Are Moved - In the last version of Arc Welder moving a file triggered automatic processing. Since OctoPrint has no FileMoved event, this was a bit sketchy to implement. I think it should work in almost every case, but I'm planning to request a FileMoved event that happens before FileRemoved and FileAdded. Solves #45.

Known Issues (all old)

  • There are problems compiling for some flavors of Linux and Max OS.
  • It is possible for a race condition to prevent proper thumbnail extraction, but this should only be possible for the smallest GCode files.

1.0.0

3 years ago

This is the first stable release of Arc Welder. This release contains only minor changes from 0.1.0rc1.dev5, mostly involving changes to the documentation and some compatibility enhancements for the c++ library.

Please report any general feedback here. If you think you have found a bug, you can report it in the feedback issue. If you are certain you found a bug, feel free to create a new issue.

0.1.0rc1.dev5

3 years ago

New Features

  • Add enhanced statistics to the Octoprint file metadata, including a visualization of the data in the Arc Welder tab. The statistics will display after a file is finished processing, after a processed file is selected, or when a user clicks on the icon in the file manager.
  • Add support for the Cura Thumbnails plugin by jneilliii.
  • Add support for the PrusaSlicer Thumbnails plugin by jneilliii.

Enhancements

  • Increased compiler compatibility for the PyArcWelder python extension.
  • Improve case preservation for GCodes not altered by Arc Welder. Should solve #32, #27, #22

Bug Fixes

  • Fix X/Y offset issue that was causing incorrect G2/G3 coordinates when G92 is used to offset the x or y axis. Solves part of #35 (the second issue)

Known Issues

  • There are problems compiling for some flavors of Linux and Max OS.
  • It is possible for a race condition to prevent proper thumbnail extraction, but this should only be possible for the smallest gcode files.

0.1.0rc1.dev4

3 years ago

Please report any and all comments and issues with this release here. All constructive feedback is welcome, and just dropping in to say it worked/didn't work is great too!

New Features

  • Integrated help is now available for all of the settings. I will add more help as necessary. Please report any grammatical mistakes, inaccuracies, clarity problems, or any other issues involving the help files.
  • Added Maximum Radius setting to ensure that arcs of unusual size (aouses) are not created. There is an already a new internal constant to detect near collinearity (essentially straight lines), which can cause issues properly calculating the direction of the arc rotation and the arc length, and it SHOULD do the job without the need for this setting, but I had no rigorous way to calculate my constant value, so this was added as a fallback.

Enhancements

  • A new more accurate (though a bit slower) method of generating arcs was devised based on polar coordinates. I was able to eliminate some sanity checks and still get accurate arcs for all of my test files. I believe this method is more robust, though it needs a bit more optimization.
  • Fixed some issues where c++ math library calls were being overridden differently by different compilers. All math now uses the std namespace, and includes cmath instead of math.h.
  • Added some additional logging to the arc generation library.

Known Issues

  • A possible crashing issue (#15) was reported by one user, but I've not been able to replicate it.

This is not an issue with the plugin, but some printers/firmwares have trouble printing with G2/G3. I am not able to fix these via modifications to the plugin, unfortunately, but keep an eye on the issues for updates. I've been actively working on getting fixes for these problems, though there is currently no silver bullet.

0.1.0rc1.dev3

4 years ago

This version has a couple of bugfixes and enhancements, but nothing too major. The biggest change is a fix to the software update process. I've been having some trouble with the version number compare, but I believe it was due to me not including the master branch in the rc/devel and rc/maintenance channels. I had implemented a more sophisticated version check, but it wasn't working 100% for various technical reasons, so it was removed. You will likely have to manually update to this version unfortunately, due to the issues with the software update check.

Enahncements

  • Arc welder settings information was added to the output gcode file.
  • Dealt with some c++ math library ambiguities for some compilers. Hopefully this increases the range of OSs that can successfully compile the plugin extension.

Bug Fixes

  • Software update issues - version number detected properly, but no update method exists.

0.1.0rc1.dev2

4 years ago

This version has several bug fixes and improvements, and is getting close to a release candidate. I'm still working on resolving some of the firmware issues people have been experiencing. See the latest readme.md for more info.

Enhancements

  • Faster conversion - Times have been reduced up to 30%. This was accomplished by removing the extrusion adjustments, which had an incredibly small impact. Since most firmware doesn't correct for this when interpolating segments anyway, it was actually reducing the extrusion accuracy by a very small amount.
  • Manual conversion buttons added to the file manager allow you to convert existing files. The buttons are disabled for files that have already been converted and while printing. Solves #8.
  • Choose between automatic conversion, manual conversion, or both in the settings.
  • Compression statistics show up on the progress bar and in the complete toast. Solves #7.
  • Added a new post-fix option for new files.
  • Added full logging capabilities per module.
  • Options for turning off the notifications.
  • Moved pre-processing to a background thread to prevent locking.
  • The processing thread uses queues, allowing Arc Welder to convert many files in a row.
  • Pre-processing is triggered now by the file added event, preventing conflicts with the analyzer.
  • Files to process are now copied before conversion, removing issues caused by deleting a file that is currently processing.
  • Absolute extrusion should now work in all cases.
  • Added Cancel and Cancel All buttons to the progress dialog. Solves #12
  • Added file name to complete toast. Solves #13.

Bug Fixes

  • Resolved a big causing some very small arcs to use the wrong command (G2 vs G3) in rare situations, causing the endstops to be hit.
  • Some absolute extrusion issues now work as expected.
  • Removed HTML from desktop notifications. Solves #3.