Want to add an "axis" that is driven "behind the scenes" -- any ideas?

More
17 Feb 2018 18:16 #106080 by GaryLa
I have a project where I must make a couple of hundred parts. During the run, coolant needs to be blasted in a certain way. When I made the original parts, I blasted the coolant manually. I have since built a 2-axis coolant holder.

I'm sure I could use LinuxCNC to control it -- but the question I have is -- based on your experience -- which technique would you use? This is sort of an "out-of-band" axis control. I have a few ideas:

1) just use another LinuxCNC PC and start the programs at the same time.
2) pretend the 2 axis are either A,B, or C and define them as linear - (possible?)
3) attempt to scale the 2-axis such that they move using the same pulses as the axis they are associated with.

Thanks in advance for any answers. We don't need to discuss what shouldn't be done... :)
I'd rather just pick the best path and proceed. THANKS!

Please Log in or Create an account to join the conversation.

More
17 Feb 2018 22:05 #106102 by rodw
I'm not sure about 2.7 as I've never used it, but I'm pretty sure master branch allows any axis to be linear or rotary.

If you can define your requirements as formulas that gives the shadow axes coordinates, this recent thread would almost fit the bill.
forum.linuxcnc.org/10-advanced-configura...-errors?limitstart=0
Instead of outputting a corrected Y value, you'd send position commands to your "shadow" axes. If you added a pin to enable or disable shadowing, you could manually jog the shadow axes into position before your run with shadowing disabled and enable shadowing before running your g code.

Depending on your machine design, you might need to add some extra code that disables shadowing if it hits a limit.
The following user(s) said Thank You: GaryLa

Please Log in or Create an account to join the conversation.

More
17 Feb 2018 22:22 - 17 Feb 2018 22:23 #106103 by Grotius
@GaraLa,

Scaling, I think this is smart to do when your coolant blast distance is far from your program
distance scale. I also think you can do it with your pc, even in older linux versions.
I think it depends on your written g-code.

For hard scaling you can also change your motor driver settings.
Last edit: 17 Feb 2018 22:23 by Grotius.
The following user(s) said Thank You: GaryLa

Please Log in or Create an account to join the conversation.

More
28 Feb 2018 17:17 #106724 by andypugh
One option is to drive a step-generator directly from a G-code analogue output.
The step-generators have their own accel and velocity limits, so you can just feed them a position and the motor will go there.

For servos you can use the same approach using PID with suitable limits and/or the limit3 function.
The following user(s) said Thank You: GaryLa

Please Log in or Create an account to join the conversation.

More
28 Feb 2018 19:13 #106742 by GaryLa
I ended up using my option 1 -- another PC running LinuxCNC.

The coolant blast requirements were getting trickier and I started adding nuances. Finally it just ended up being easier to write a G-code program that basically "plays along". I know it's a little goofy, but it works.

THANKS to all for your ideas. I appreciate it!!!

Please Log in or Create an account to join the conversation.

Time to create page: 0.062 seconds
Powered by Kunena Forum