How is feedrate calculated when multiple axes are involved?
 
Notifications
Clear all

How is feedrate calculated when multiple axes are involved?  

  RSS
barak.o
(@barak-o)
Eminent Member
How is feedrate calculated when multiple axes are involved?

Note: this question is around "how stuff works" in the software (or printer firmware).

I understand that if I send these commands:

G91 ; Relative positions
G1 F600 ; Set speed to 600mm/min or 10mm/sec
G1 X40

Then my print head will travel 40 mm on the X axis, and it will take 4 seconds (let's ignore acceleration, I'm sure it complicates things even more).

What if (for some bizarre reason) I want to travel 30mm on the Y axis during those 4 seconds? Do I need to calculate the total distance passed (50 mm) and up the speed? (In this case to 12.5mm/sec).

And if while doing that I want to extrude 2mm of filament, do I need to take into account the extruder distance and calculate a 3D distance? (the new distance is 50.0399 mm)

Thanks,
Barak

Posted : 09/02/2021 4:07 pm
bobstro
(@bobstro)
Illustrious Member
RE: How is feedrate calculated when multiple axes are involved?
Posted by: @barak-o

[...] I understand that if I send these commands:

G91 ; Relative positions
G1 F600 ; Set speed to 600mm/min or 10mm/sec
G1 X40

Then my print head will travel 40 mm on the X axis, and it will take 4 seconds (let's ignore acceleration, I'm sure it complicates things even more).

Specifically, it will move the X position 40mm from the current position (relative position). If using absolute positioning, it would move X to position 40.

What if (for some bizarre reason) I want to travel 30mm on the Y axis during those 4 seconds? Do I need to calculate the total distance passed (50 mm) and up the speed? (In this case to 12.5mm/sec).

You can specify X, Y, & Z distances independently. They will occur concurrently. As one axis move completes, the others continue.

And if while doing that I want to extrude 2mm of filament, do I need to take into account the extruder distance and calculate a 3D distance? (the new distance is 50.0399 mm)

Now you're into the tricky slicer stuff. The slicer would identify the appropriate amount of filament to extrude based on your other slicer settings. The E parameter specifies how much filament to extrude, but something has to determine how much. Other things like acceleration, jerk, coasting, retractions, etc. are usually all done by the slicer.

 

My notes and disclaimers on 3D printing

and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan

Posted : 09/02/2021 7:26 pm
barak.o
(@barak-o)
Eminent Member
Topic starter answered:
RE: How is feedrate calculated when multiple axes are involved?

Thanks for the information, but I'm not sure it makes sense.

If I want to be able to move diagonally, I need to move a different distance in X and Y over the same time. For this, I either need to specify speed (feedrate) per axis, or the feed rate needs to take into account all participating axes. E.g. if I want to move 40mm on the X axis and 30mm on the Y axis, and want this to take 10 seconds, what G-code command(s) should I send?

What I definitely not want is the same travel speed in both X and Y, as this means the head will travel at 45deg for the first part and then continue the last 10mm only on the X axis - I want a straight line.

Thanks.

Posted : 10/02/2021 5:54 pm
barak.o
(@barak-o)
Eminent Member
Topic starter answered:
RE: How is feedrate calculated when multiple axes are involved?

FTR, it seems that moving diagonally, I need to increase the speed to complete the move at the same time.

This is usually not needed, as you don't care how much time the move takes, just that the rate is consistent. For me, I wanted to have constant time (I hacked my 3D printer into some kind of motorized dolly), where this is important.

Posted : 13/05/2021 3:28 pm
You liked
Share: