Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Rough motion in corners using G2/G3

    Scheduled Pinned Locked Moved
    CNC
    3
    6
    405
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 3DPMicroundefined
      3DPMicro
      last edited by 3DPMicro

      A quote from a previous post I made regarding my micro mill
      "I was able to get the motors to run over 1200 RPM (1200 mm/m travel speed) but while using my test program they stuttered when interpolating corners below a certain radius (G2/G3) with 16x ms, interpolated. Still almost silent and smooth at 8x Ms. I went all over the place with Accel, and jerk with no apparent effect on the stuttering until down, around 600 mm/m."
      Via a search here several days ago I found a couple more things to try, changing a setting or code, but now I can't find it again.
      Any suggestions?
      Doesn't appear I'm maxing out the processor since I went from 3200 steps/mm to 1600 with no change.
      FYI. My test program is a series of rounded corner rectangles of various size and radii with some full arcs thrown in. Using latest released FW.
      Original post here https://forum.duet3d.com/topic/11581/duet-controlled-micro-mill/6

      Duet controlled Jet Lathe, scratch built micro mill and 3d printer. 1992 Haas VF2 VMC retrofit

      1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators
        last edited by dc42

        Stuttering during curves can be caused by two things:

        1. Running GCode that chops up curves into tiny segments, so that the rate at which GCodes need to be processed is very high. Not applicable to G2/G3 moves.

        2. XY jerk set too low for speed to be maintained at the segment boundaries. This is the usual cause.

        The algorithm used by RRF to determine the segment length for G2/G3 moves is:

        	// Compute how many segments to use
        	// For the arc to deviate up to MaxArcDeviation from the ideal, the segment length should be sqrt(8 * arcRadius * MaxArcDeviation + fsquare(MaxArcDeviation))
        	// We leave out the square term because it is very small
        	// In CNC applications even very small deviations can be visible, so we use a smaller segment length at low speeds
        	const float arcSegmentLength = constrain<float>
        									(	min<float>(sqrt(8 * arcRadius * MaxArcDeviation), moveBuffer.feedRate * (1.0/MinArcSegmentsPerSec)),
        										MinArcSegmentLength,
        										MaxArcSegmentLength
        									);
        

        I didn't have a micro mill in mind when I wrote that, so it may not be appropriate for your mill. MinArcSegmentLength is set to 0.1, MaxArcSegmentLength is set to 2.0, and MinArcSegmentsPerSec is set to 50. Perhaps your mill needs segments shorter than 0.1mm? I guess I could reduce it on machines with high XY steps/mm.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        Phaedruxundefined 1 Reply Last reply Reply Quote 0
        • 3DPMicroundefined
          3DPMicro
          last edited by

          David,
          This is the code my PP generates for the motion test so no arc chopping. At slower speeds it is smooth. I have changed the Jerk from low to very high with no effect

          0_1566383058853_c620d963-3842-4d66-a1a9-9ae9d67d750f-image.png
          T0 ; set tool.032 .813 BEM
          G21 ; set units to millimeters
          G90 ; use absolute coordinates
          G0 Z3
          G0 Z1.
          G0 X37.471 Y18.926
          G1 Z0. F800.
          G1 X38.721F800
          G1 X39.971
          G1 X41.221
          G2 X42.971 Y17.176 I0. J-1.75
          G2 X41.221 Y15.426 I-1.75 J0.
          G1 X34.971
          G2 X33.221 Y17.176 I0. J1.75
          G2 X34.971 Y18.926 I1.75 J0.
          G1 X36.221
          G1 X36.659 Y18.381
          G2 X39.971 Y17.176 I1.437 J-1.205
          G2 X36.25 Y16.844 I-1.875 J0.
          G3 X33.846 Y18.301 I-1.845 J-0.333
          G1 Y16.051
          G1 X42.346
          G1 Y18.301
          G1 X33.724 Y18.551
          G3 X33.596 Y18.426 I-0.003 J-0.125
          G1 Y15.926
          G3 X33.721 Y15.801 I0.125 J0.
          G1 X42.471
          G3 X42.596 Y15.926 I0. J0.125
          G1 Y18.426
          G3 X42.474 Y18.551 I-0.125 J0.
          G1 X33.731 Y18.801
          G3 X33.346 Y18.426 I-0.01 J-0.375
          G1 Y15.926
          G3 X33.721 Y15.551 I0.375 J0.
          G1 X42.471
          G3 X42.846 Y15.926 I0. J0.375
          G1 Y18.426
          G3 X42.481 Y18.801 I-0.375 J0.
          G1 X33.738 Y19.051
          G3 X33.096 Y18.426 I-0.017 J-0.625
          G1 Y15.926
          G3 X33.721 Y15.301 I0.625 J0.
          G1 X42.471
          G3 X43.096 Y15.926 I0. J0.625
          G1 Y18.426
          G3 X42.471 Y19.051 I-0.625 J0.
          G1 X34.346
          G1 X36. Y30.
          G1 X46.
          G1 X56.
          G1 X66.
          G2 X80. Y16. I0. J-14.
          G2 X66. Y2. I-14. J0.
          G1 X16.
          G2 X2. Y16. I0. J14.
          G2 X16. Y30. I14. J0.
          G1 X26.
          G1 X29.509 Y25.642
          G2 X56. Y16. I11.491 J-9.642
          G2 X26.237 Y13.342 I-15. J0.
          G3 X7. Y25. I-14.762 J-2.659
          G1 Y7.
          G1 X75.
          G1 Y25.
          G1 X6.029 Y27.
          G3 X5. Y26. I-0.029 J-1.
          G1 Y6.
          G3 X6. Y5. I1. J0.
          G1 X76.
          G3 X77. Y6. I0. J1.
          G1 Y26.
          G3 X76.029 Y27. I-1. J0.
          G1 X6.086 Y28.999
          G3 X3. Y26. I-0.086 J-2.999
          G1 Y6.
          G3 X6. Y3. I3. J0.
          G1 X76.
          G3 X79. Y6. I0. J3.
          G1 Y26.
          G3 X76.086 Y28.999 I-3. J0.
          G1 X6.143 Y30.998
          G3 X1. Y26. I-0.143 J-4.998
          G1 Y6.
          G3 X6. Y1. I5. J0.
          G1 X76.
          G3 X81. Y6. I0. J5.
          G1 Y26.
          G3 X76. Y31. I-5. J0.
          G1 X11.
          G0 Z1.

          Duet controlled Jet Lathe, scratch built micro mill and 3d printer. 1992 Haas VF2 VMC retrofit

          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator @dc42
            last edited by

            @dc42 said in Rough motion in corners using G2/G3:

            machines with high XY steps/mm.

            What do you consider high X/Y steps/mm? 200?

            Z-Bot CoreXY Build | Thingiverse Profile

            dc42undefined 1 Reply Last reply Reply Quote 0
            • dc42undefined
              dc42 administrators @Phaedrux
              last edited by

              @phaedrux said in Rough motion in corners using G2/G3:

              @dc42 said in Rough motion in corners using G2/G3:

              machines with high XY steps/mm.

              What do you consider high X/Y steps/mm? 200?

              200 steps/mm (at x16 microstepping) is standard for printers using 0.9deg motors and 16-tooth pulleys, like my delta. I would consider 400 steps/mm or higher @ x16 microstepping high.

              Duet WiFi hardware designer and firmware engineer
              Please do not ask me for Duet support via PM or email, use the forum
              http://www.escher3d.com, https://miscsolutions.wordpress.com

              1 Reply Last reply Reply Quote 0
              • 3DPMicroundefined
                3DPMicro
                last edited by

                Unfortunately I will be down for several days while I move in to a new house (with a big shop😀 ) but will next try reducing the MS to 1/4 or even whole steps and see the effect. I am running very high steps/mm but very slow speeds. Originally 3200 steps/mm and 600 mm/m (with 1 mm lead ball screws). Currently at 1600 steps/mm. The low lead ball screws where more a function of availability. 2 mm lead would have been the first choice considering I was after a full step resolution of .015 mm

                Duet controlled Jet Lathe, scratch built micro mill and 3d printer. 1992 Haas VF2 VMC retrofit

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Unless otherwise noted, all forum content is licensed under CC-BY-SA