New pin motion.base-feedrate in master branch

More
6 years 7 months ago #161376 by phillc54
As I said, I need to think a lot more about it. It works OK as is so there is no need to rush.

Please Log in to join the conversation.

More
6 years 7 months ago #161400 by fixer
Cmorley, thank you!
This is great addition, even for milling and turning. It should be possible to show real feed value on user interface now.
It does, however only work with G94. With G93 and G95 it reports 0.0.

rtapi_print( "SET_Fcode status: %f\n", emcmotCommand->fcode) executes only when G94 is called. Do you think you could fix for G95 to show correctly?

Please Log in to join the conversation.

More
6 years 7 months ago #161401 by cmorley
I'll look into it.
Thanks for testing

Chris

Please Log in to join the conversation.

More
6 years 7 months ago #161403 by fixer
Already found it, here in emccanon.cc:
Code:
void SET_FEED_RATE(double rate) { if(feed_mode) { START_SPEED_FEED_SYNCH(rate, 1); currentLinearFeedRate = rate; send_code_status_msg(rate); //G95 } else { /* convert from /min to /sec */ rate /= 60.0; /* convert to traj units (mm & deg) if needed */ double newLinearFeedRate = FROM_PROG_LEN(rate), newAngularFeedRate = FROM_PROG_ANG(rate); if(newLinearFeedRate != currentLinearFeedRate || newAngularFeedRate != currentAngularFeedRate) flush_segments(); currentLinearFeedRate = newLinearFeedRate; currentAngularFeedRate = newAngularFeedRate; send_code_status_msg(rate*60.0); //G94 } }

Please Log in to join the conversation.

More
6 years 7 months ago #161404 by cmorley
Thanks I'll fix that right away :)

Chris

Please Log in to join the conversation.

More
6 years 7 months ago #161405 by cmorley
I ended up with:
Code:
void SET_FEED_RATE(double rate) { // send a code status NML message with the F word setting send_code_status_msg(rate); if(canon.feed_mode) { START_SPEED_FEED_SYNCH(canon.spindle_num, rate, 1); canon.linearFeedRate = rate; } else { /* convert from /min to /sec */ rate /= 60.0; /* convert to traj units (mm & deg) if needed */ double newLinearFeedRate = FROM_PROG_LEN(rate), newAngularFeedRate = FROM_PROG_ANG(rate); if(newLinearFeedRate != canon.linearFeedRate || newAngularFeedRate != canon.angularFeedRate) flush_segments(); canon.linearFeedRate = newLinearFeedRate; canon.angularFeedRate = newAngularFeedRate; } }

Which seemed to work the same.
Pushed to the testing branch.

Thanks for the fast code review!

Chris

Please Log in to join the conversation.

More
6 years 7 months ago #161413 by fixer
Great, thank you! I applied changes to 2.7 and it also works there.

Please Log in to join the conversation.

More
6 years 7 months ago #161470 by fixer
Chris,

Could you add feed per revolution value to this pin when in spindle synchronized motion (G33, G76)?

Please Log in to join the conversation.

More
6 years 7 months ago #161543 by cmorley
Pushed an enhancement for this - please let me know if it's working for you

Chris

Please Log in to join the conversation.

More
6 years 7 months ago #161573 by fixer
Works for me, exactly what I had in mind!
Thank you!

Please Log in to join the conversation.

Time to create page: 0.785 seconds
Powered by Kunena Forum