- LinuxCNC
- General LinuxCNC Questions
- Orienting a rotary axis to be perpendicular to direction of travel. Possible?
Orienting a rotary axis to be perpendicular to direction of travel. Possible?
- deerefanatic
- Offline
- Junior Member
Less
More
- Posts: 22
- Thank you received: 1
21 Jul 2022 23:20 #247995
by deerefanatic
Orienting a rotary axis to be perpendicular to direction of travel. Possible? was created by deerefanatic
So this is a bit of a off the wall question... I'm working with a friend that is wanting to make a CNC spray painter for painting the numbers on the highschool football field.. He has the placement situation figured out, and is planning on using an X/Y frame from an old CNC router to move the paint head. The paint will be supplied by a Wagner Airless sprayer, with paint flow controlled by a solenoid valve. All this is really pretty simple until we hit the gotcha moment....
The spray tip is a fan shaped pattern. If you control with simple X/Y moves, you'll have the same effect as writing with a calligraphy pen, super weird looking letters. For it to work correctly, the fan shaped output of the nozzle must always be at a 90 degree angle to the direction of travel. Not so hard really, we can use a live swivel coupling to allow the nozzle to rotate and a stepper to control it as a C axis in LinuxCNC. It would be easy to incorporate this into the G code for straight line (G1) moves. The problem comes in when we try to do arcs, like for a number 2, 3, 5, 6, 8, 9, or 0... The direction of travel is not in a particular direction, but rather an arc.... I have no doubt LinuxCNC can handle the coordinated movement of the various axis's. The issue is, how to get the input into it to knno what moves to do? Is there anyway in HAL or otherwise to have a control that keeps a rotary axis at a fixed angle to the current direction of movement? Or will I need to CAM this out using tiny G1 moves with slight corrections in the C axis for each move?
Next question, for turning the paint on an off, on a machine with good latency figures running a MESA interface, say I turn the paint on using a M8 before the move and off using an M9 after the move, how much of a delay do you think I'd see? (Electronic delay, not the delay in the solenoid valve) I know my old Haas VMC has a decent delay between lines when processing things like coolant on/off, spindle on/off, etc.
The spray tip is a fan shaped pattern. If you control with simple X/Y moves, you'll have the same effect as writing with a calligraphy pen, super weird looking letters. For it to work correctly, the fan shaped output of the nozzle must always be at a 90 degree angle to the direction of travel. Not so hard really, we can use a live swivel coupling to allow the nozzle to rotate and a stepper to control it as a C axis in LinuxCNC. It would be easy to incorporate this into the G code for straight line (G1) moves. The problem comes in when we try to do arcs, like for a number 2, 3, 5, 6, 8, 9, or 0... The direction of travel is not in a particular direction, but rather an arc.... I have no doubt LinuxCNC can handle the coordinated movement of the various axis's. The issue is, how to get the input into it to knno what moves to do? Is there anyway in HAL or otherwise to have a control that keeps a rotary axis at a fixed angle to the current direction of movement? Or will I need to CAM this out using tiny G1 moves with slight corrections in the C axis for each move?
Next question, for turning the paint on an off, on a machine with good latency figures running a MESA interface, say I turn the paint on using a M8 before the move and off using an M9 after the move, how much of a delay do you think I'd see? (Electronic delay, not the delay in the solenoid valve) I know my old Haas VMC has a decent delay between lines when processing things like coolant on/off, spindle on/off, etc.
Please Log in or Create an account to join the conversation.
- troy
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 4
22 Jul 2022 01:44 #247998
by troy
Replied by troy on topic Orienting a rotary axis to be perpendicular to direction of travel. Possible?
siemens 840Dsl has a function called "Tangential control". But I'm afraid linuxcnc doesn't have this similar function
My suggestion is: post process the G code that controls the movement of the paint, discrete the non-linear movement into micro segments, and specify the corresponding rotation axis angle according to the tangential direction of the micro segments. This should be a faster and more convenient implementation method.
My suggestion is: post process the G code that controls the movement of the paint, discrete the non-linear movement into micro segments, and specify the corresponding rotation axis angle according to the tangential direction of the micro segments. This should be a faster and more convenient implementation method.
Attachments:
Please Log in or Create an account to join the conversation.
- troy
- Offline
- Junior Member
Less
More
- Posts: 20
- Thank you received: 4
22 Jul 2022 01:51 #247999
by troy
Replied by troy on topic Orienting a rotary axis to be perpendicular to direction of travel. Possible?
And the delay should be very small,30-50ms perhaps. Industrial machine tools like Haas usually use PLC to control the cutting fluid switch, so the delay is longer.
Please Log in or Create an account to join the conversation.
- spumco
- Offline
- Platinum Member
Less
More
- Posts: 1831
- Thank you received: 741
22 Jul 2022 02:26 #248000
by spumco
Replied by spumco on topic Orienting a rotary axis to be perpendicular to direction of travel. Possible?
Option 1 - Tangential orientation can be handled in a post processor. Here's an example on github for a Fusion 360 tangential knife.
github.com/jejmule/PostProcessor
Option 2 - External offsets. I can't give you a cut-paste recipe, but there are some clever folks here who have done some remarkable things with external offsets. Like lathe cam turning.
linuxcnc.org/docs/master/html/motion/external-offsets.html
External-offset-per-angle could approximate a continuous C-axis tracking. Probably good enough for spray-painting grass:
linuxcnc.org/docs/devel/html/man/man9/eoffset_per_angle.9.html
Option 3 - get or make a different tip. i.e. circular pattern. Either spray pattern (fan or circular) will have lighter regions at the edges so some experimentation with pass overlap would be in order.
Assuming you're using a power painter with built-in cup to get around the paint supply tube twisting up... Have a rotary union for the electrical or do you plan to unwind the cord after a few turns?
Or something else clever up your sleeve?
You've sparked my curiosity, 'cause I'm now imagining a robotic gantry with a 10-gallon reservoir that can crawl across a field...or a street, or a gymnasium floor, or a warehouse floor...
Or any other expensive place that spends lots of money on large-format sign painters...
Option 2 - External offsets. I can't give you a cut-paste recipe, but there are some clever folks here who have done some remarkable things with external offsets. Like lathe cam turning.
linuxcnc.org/docs/master/html/motion/external-offsets.html
External-offset-per-angle could approximate a continuous C-axis tracking. Probably good enough for spray-painting grass:
linuxcnc.org/docs/devel/html/man/man9/eoffset_per_angle.9.html
Option 3 - get or make a different tip. i.e. circular pattern. Either spray pattern (fan or circular) will have lighter regions at the edges so some experimentation with pass overlap would be in order.
Assuming you're using a power painter with built-in cup to get around the paint supply tube twisting up... Have a rotary union for the electrical or do you plan to unwind the cord after a few turns?
Or something else clever up your sleeve?
You've sparked my curiosity, 'cause I'm now imagining a robotic gantry with a 10-gallon reservoir that can crawl across a field...or a street, or a gymnasium floor, or a warehouse floor...
Or any other expensive place that spends lots of money on large-format sign painters...
Please Log in or Create an account to join the conversation.
- Bari
- Offline
- Platinum Member
Less
More
- Posts: 646
- Thank you received: 235
22 Jul 2022 08:47 - 22 Jul 2022 08:50 #248015
by Bari
Replied by Bari on topic Orienting a rotary axis to be perpendicular to direction of travel. Possible?
You can use M62 and M63 for ON or OFF digital output synchronized with motion.
linuxcnc.org/docs/html/gcode/m-code.html#mcode:m62-m65
linuxcnc.org/docs/html/gcode/m-code.html#mcode:m62-m65
Last edit: 22 Jul 2022 08:50 by Bari. Reason: fixed typos for M codes
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
Less
More
- Posts: 23170
- Thank you received: 4860
24 Jul 2022 22:54 #248197
by andypugh
Replied by andypugh on topic Orienting a rotary axis to be perpendicular to direction of travel. Possible?
A number of CAM packages (SheetCAM for example) offer a tangential knife mode.
I wrote a kinemetics module many years ago that outputs the current heading, but it didn't really work as well as I had hoped (it was really meant for kerf compensation). Its limitations might be less critical here.
I keep suggesting a filter file as the solution to this. But I don't know if anyone has written one. I don't even know if I have written one. I think I have, and lost it....
The G93 filter here is very close to what would be needed, though It just needs a different bit of maths to work out the direction of travel.
www.forum.linuxcnc.org/38-general-linuxc...r-me?start=10#120524
[Feature Creep]
If you built a Spider Cam system you could paint _all_ the lines. And custom graphics.
I wrote a kinemetics module many years ago that outputs the current heading, but it didn't really work as well as I had hoped (it was really meant for kerf compensation). Its limitations might be less critical here.
I keep suggesting a filter file as the solution to this. But I don't know if anyone has written one. I don't even know if I have written one. I think I have, and lost it....
The G93 filter here is very close to what would be needed, though It just needs a different bit of maths to work out the direction of travel.
www.forum.linuxcnc.org/38-general-linuxc...r-me?start=10#120524
[Feature Creep]
If you built a Spider Cam system you could paint _all_ the lines. And custom graphics.
Please Log in or Create an account to join the conversation.
- LinuxCNC
- General LinuxCNC Questions
- Orienting a rotary axis to be perpendicular to direction of travel. Possible?
Time to create page: 0.072 seconds