## Question about coordinated motion FeedRate

Moderators: TomKerekes, dynomotion

k1is2nd
Posts: 2
Joined: Wed Oct 10, 2018 3:38 pm

### Question about coordinated motion FeedRate

Question about coordinated motion FeedRate

Rough machine description

Goal: machine a surface into a blank

Constant speed cutting tool. Tool speed not a part of coordinated motion.

X axis moves cutting tool in X direction. The X axis carries the tool past the center of the blank.
a axis is a rotary axis mounted on X axis and rotates the tool in X-Z plane to stay roughly perpendicular to machined surface.

b axis is a rotary axis with a chuck holding the blank to be machined. b axis is mounted on the Z axis.
Z axis moves rotary axis (b) in Z direction

Tool path is overlapping cycles of motion from the center of the blank to the edge of blank and back to the center while the

blank rotates.

Currently I'm using KMOTION.NET buffered StraightFeed coordinated motion successfully for this:
StraightFeed(FeedRate,b,X,a,Z,b2,a2,0,0)
[a2 and b2 are additional axes identical in function to a and b used to machine another blank at the same time]

I've been supplying a FeedRate assuming it would produce somthing approximating a constant tool path velocity. However, I've

been wondering how FeedRate is really applied by the KFLOP. I'm guessing that something like the sum of the absolute values of

the motion of every axis is considered in developing axis velocity from the FeedRate. How right (or wrong) am I?

And a secondary question: can StraightFeed, or some other function, produce motion assuming a constant time between between

points? It could be done by supplying different FeedRates for each StraightFeed call I suppose.

TomKerekes
Posts: 1598
Joined: Mon Dec 04, 2017 1:49 am

### Re: Question about coordinated motion FeedRate

Hi k1is2nd,

A diagram of video would have been helpful. I'm envisioning a hemispherical "blank"?

I assume you are not using kinematics and all axes are defined as linear distance and not angular?

If so, all axes are treated as being orthogonal. So the "length" of a segment is considered to be:
L = sqrt (X^2 + Y^2 + Z^2 + A^2 + B^2)

(see file TrajectortPlanner.cpp function FeedRateDistance.

The time for the segment will then be:
t = L / feedrate

You should be able to specify different feed rates for each motion segment.

If you specify the A and/or B axes as pure rotary they will be excluded whenever X or Y or Z is being moved.

If you added the kinematics then I think it might work for you to specify the true feedrate along the XZ motion.
Regards,

Tom Kerekes
Dynomotion, Inc.