Skip to content

1.2.0

Latest
Compare
Choose a tag to compare
@FormerLurker FormerLurker released this 21 Nov 21:38
· 12 commits to master since this release

At long last a new version of ArcWelderLib, ArcWelder Console, ArcStraightener, and the associated libraries are available!

Please report any feedback in the discussion created for this release.

Enhancements

  • Add extrusion rate variance to support Cura's Arachne engine (variable line width).
  • Add support for travel move conversion.
  • Enhance inverse processor to support various firmware implementations and versions (Marlin 1/2, Prusa Firmware, Smoothieware, repetier).
  • Add workaround for firmware that does not support long gcode commands.
  • Reduce the max radius to reduce the impact of gcodes that are too long for the current firmware implementation.
  • Enhance arc generation to convert more G1/G2 commands to arcs when transitioning from retraction/deretraction/travel.
  • Make extrusion rate variance percentage (added to support cura Arachne) optional (0 = disabled).
  • Enhance segment/travel statistics rendering for python code to include unicode box drawing characters.

Arc Welder Console Argument Changes

New arguments are available for the console version of ArcWelder:

  • --allow-travel-arcs (-y) - This will allow ArcWelder to convert travel moves to G2/G3. Default: True
  • --extrusion-rate-variance-percent (-v) - This will cause ArcWelder to abort any current arcs if the extrusion rate changes more than the percent (where 0.05 = 5%) specified. This enhances quality and provides support for Cura's Arachne engine (variable line width). 0=disabled. Default: 0.05 (5%).
  • --max-gocde-length (-c) - Some firmware have issues with long gocde commands. This setting allows ArcWelder to terminate arc generation if the resulting gcode contains more characters than this setting. 0=no limit. Default = disabled.
  • --progress-type (-p) - Supports three options: NONE, SIMPLE, and FULL. NONE - Prevents all progress display text. SIMPLE - Gives just basic progress messages (percent complete), each on a single line. FULL - Shows detailed statistics, which are useful for any third-party app that wants to give a detailed status update. Default: SIMPLE

Arc Straightener (Inverse Processor) Argument Changes

This has been COMPLETELY overhauled. It's quite difficult to test these functions, so I'd appreciate any feedback you have.

  • --firmware-type (-f) - MARLIN_1|MARLIN_2|REPETIER|PRUSA|SMOOTHIEWARE> - Sets the firmware type to emulate when converting G2/G3 to G1/G2
  • --firmware-version (-v) - Sets the firmware version to use. The allowable values depend on the firmware type. LATEST_RELEASE will use the newest version available. Use the --help flag to see all available versions for each firmware type. Also note that the Prusa Firmware v3.11.0 does not yet exist. I added it in anticipation of new arc features from this pull request which has been added to the official milestones. Hopefully I won't have to remove that.
  • --print-firmware-defaults (-p) - Prints all default arc interpolation settings for the provided firmware-type and firmware-version. This is quite useful to see what options the firmware supports. Note that the defaults will be used unless they are overridden by other options, and you must provide a source/target to use this option until I manage to fix this limitation. Example: ArcStraightener "" "" -p:
Showing arguments and defaults for MARLIN_2 (LATEST_RELEASE)
Available argument for firmware: --mm-per-arc-segment, --arc-segments-per-r, --min-arc-segments, --arc-segments-per-sec, --n-arc-correction, --g90-g91-influences-extruder
Default Firmware Arguments:
        Firmware Type               : MARLIN_2
        Firmware Version            : 2.0.9.1 (LATEST_RELEASE)
        g90_g91_influences_extruder : True
        min_arc_segments            : 24
        n_arc_correction            : 25
        mm_per_arc_segment          : 1.00
        arc_segments_per_r          : 0.00
        arc_segments_per_sec        : 0.00
The following parameters do not apply to this firmware version: min_mm_per_arc_segment, mm_max_arc_error, min_circle_segments, min_arc_segment_mm, max_arc_segment_mm

Note - Not all of the following arguments are supported by all firmware implementations. Use the --print-firmware-defaults to see if the selected firmware supports these options.

  • --max-arc-segment-mm (-d) - Sets the maximum number of segments per millimeter.
  • --min-arc-segment-mm (-b) - The minimum mm per arc segment. Used to prevent unnecessarily small segments from being generated. A value less than or equal to 0 will disable this feature. Default Value: 0.
  • --min-circle-segments (-a) - The minimum number of segments within a circle of the same radius as the arc. Can be used to increase detail on small arcs. The smallest segment generated will be no larger than min_mm_per_arc_segment. A value less than or equal to 0 will disable this feature. Default Value: 0.
  • --arc-segments-per-second (-s) - The number of segments per second. This will produce a constant number of arcs, clamped between mm-per-arc-segment and min-mm-per-arc-segment. Can be used to prevent stuttering when printing very quickly. A value less than or equal to 0 will disable this feature. Default Value: 0.
  • --n-arc-correction (-c) - The number of segments that will be interpolated using a small angle approximation before true sin/cos corrections are applied. A value less than or equal to 1 will disable this feature. Default Value: 24.
  • --min-arc-segments (-r) - The minimum number of segments within a circle of the same radius as the arc. Can be used to increase detail on small arcs. The smallest segment generated will be no larger than min_mm_per_arc_segment. A value less than or equal to 0 will disable this feature. Default Value: 0.
  • --min-mm-per-arc-segment (-n) - The minimum mm per arc segment. Used to prevent unnecessarily small segments from being generated. A value less than or equal to 0 will disable this feature. Default Value: 0.
  • --mm-per-arc-segment (-m) - The default segment length. Note that this parameter has different effects on different firmware. Default Value: 1.00000.
  • --g90-influences-extruder (-g) - Sets the firmware's G90/G91 influences extruder axis behavior. By default this is determined by the firmware's behavior. Default Value: DEFAULT.

Important Notes about Binaries

The MacOs action is still not working. @fieldOfView was kind enough to compile ArcWelder AND ArcStraightener for the Mac (thanks!).

The Raspbian version does not output the correct version info or branch, but it does include the correct build date. This is because it is built remotely on a Raspberry Pi, which does not include git info. I'll work to remedy this.