Tangential Cutter

  • Hi Mr. 42,

    Back with more oddball questions. Still in pursuit of the perfect way of cutting thin cloth easily. I got the laser working well, but its messy and slow, so lets try the next plan. Long story short, I have spent some time reading on how to make a tangential cutter work with marlin (and generate the G-code from Inkscape with a plugin that handles the rotation). The rotation axis (typically A) is instead done on the E axis.

    Most of the info/tools came from here in case interested: https://www.v1engineering.com/forum/topic/tangential-cutter-in-development/

    Anyway, one of the things they worked out for me (using marlin on ramps as this project was a offshoot of MPCNC) is that it works better if E axis is set to work in degrees, and that by default the E axis discards anything after two decimal places. To get around this, they changed the E axis to work on degrees. Rather than rephrase a problem I barely follow myself, I'll paste their explanation below:

    • A small modification is required for best results with the standard MPCNC supplied Marlin firmware. In the first release, the code was outputting the turn command magnitude in radians. This works better with degrees, so the instructions now reflect that.

    • Marlin discards anything beyond 2 decimal places for E commands, which is why the change is needed. This means that with the magitudes associated with degrees, the firmware's over extrusion detection kicks in. Hence you will need to upload a new firmware to your Arduino, with the following two lines commented from configuration.h: #define PREVENT_LENGTHY_EXTRUDE and #define EXTRUDE_MAXLENGTH 200

    • The stepper motor attaches to the E0 controller on the RAMPS board. You may need an additional stepper driver if you don't have one.

    • The generated gcode will have the 4th axis turns expressed in positive or negative degrees. The E0 steps per mm value needs to be set so that a value of 360 in the gcode corresponds to one full turn. In my case this was 103.xx steps per mm.

    As always, I prefer to stick with duet for anything if possible. Are these changes possible with Duet (I am sure the extrusion length check is, but the degrees change?)

    In case helpful in thinking this through with me, I've pasted a small sample of the G code I'm able to generate so far below:

    G00 Z5.000000
    G00 X105.767460 Y251.732258 F1200.0
    (Subpath start)
    G00 Z5.000000 (Lift up)
    G00 E-135.151977 F4000 (Turn knife -135.151977455 degrees)
    G01 Z-1.000000 F900.0 (Penetrate back)
    G01 Z-1.000000 F900.0(Penetrate for line)
    G01 X51.885923 Y198.135809 Z-1.000000 F900.000000
    G00 Z5.000000 (Lift up)
    G00 E-82.874982 F4000 (Turn knife -82.8749821466 degrees)
    G01 Z-1.000000 F900.0 (Penetrate back)
    G03 X54.823674 Y183.197250 Z-1.000000 I108.269929 J13.533744 F900.000000 E-74.873891
    G03 X59.583286 Y171.480128 Z-1.000000 I50.222546 J13.575638 E-60.911147
    G03 X64.791257 Y165.388895 Z-1.000000 I17.652423 J9.820715 E-38.028332
    G03 X70.888788 Y163.978763 Z-1.000000 I4.560310 J5.830985 E11.985415
    G03 X76.586253 Y167.112943 Z-1.000000 I-2.331977 J10.984837 E45.645031
    G03 X88.662211 Y183.311259 Z-1.000000 I-54.259486 J53.051339 E60.945397
    G03 X105.116508 Y221.775229 Z-1.000000 I-178.064292 J98.924611 E72.733610
    G03 X107.905617 Y236.765165 Z-1.000000 I-62.156657 J19.319651 E86.185927
    G03 X107.823095 Y245.853182 Z-1.000000 I-59.994296 J3.999618 E94.854569
    G03 X105.767460 Y251.732258 Z-1.000000 I-12.461854 J-1.058404 E123.690074
    (Subpath end)
    G00 Z5.000000

    (End cutting path id: path115240 at depth: -1.0)

  • @clearlynotstef said in Tangential Cutter:

    but the degrees change?

    unless i'm reading that wrong you just change the steps/mm to make sure 360mm equals one full rotation. its a runtime config, no modification to firmware needed

    (all the paramters to the g-code moves are actually unit-less, controller doesn't care if it moves 1mm, 1inch, or 1 degree, it just need to know how many steps it needs to move 1 of whatever unit you want)

    So asuming 16 micro steps and 1.8 degree motor (360/1.8*16) M92 E3200 then you'll have to look into M208 or M564 to allow motion in the range you want.

  • This post is deleted!

  • administrators

    You shouldn't need to make any firmware changes. Set the M92 E parameter to be the number of microsteps per degree and it should just work. RRF does not truncate the number of decimal places.

  • Warning: OT!

    Mmmm, decimals.. https://xkcd.com/2170/

  • Great, I've got it working with marlin while I wait for another duet Wi-Fi to arrive from filastruder 🙂

    More questions! Originally my plan was to just visually align the blade and G92 E0 or manually align it before booting up, but now I'm thinking about possibly zeroing it with an endstop or probe 1) can we even use an endstop (or probe) on the E axis? It's not really a thing that would normally need doing, so that's the first question.

  • administrators

    Currently the only endstop available on extruders is motor stall detection. However, you can create a temporary additional axis that uses the extruder motor, then you can home that axis using an endstop switch.

Log in to reply