Controling cylindrical grinder.
27 Mar 2020 16:10 #161715
by zoni
Controling cylindrical grinder. was created by zoni
Hi i want to install linuxcnc on a cylindrical grinder i want to know is it possible that one axis oscillate independently with its own feed rateand rest of the program goes on like if g200 is for oscillating the
n20 g200 p50 q150 h300 (where p and q are the points between which it oscillates and h is feed rate of oscillating axis)
.....
rest of the program
and when we want to stop oscillation
g201
is some thing like this possible
n20 g200 p50 q150 h300 (where p and q are the points between which it oscillates and h is feed rate of oscillating axis)
.....
rest of the program
and when we want to stop oscillation
g201
is some thing like this possible
Please Log in or Create an account to join the conversation.
28 Mar 2020 07:40 #161785
by bbsr_5a
Replied by bbsr_5a on topic Controling cylindrical grinder.
if you can modifi your postprocessor to output not particular the G-code numbers you present you are on
as you can remap some Gcode and ofcause use Mcodes that is the easy way to adchive your oszilation
you also can use 9 Axis syncronised movement so your oszilating axis woudt be rather UVW as parallel to the main
so in genral there is a way to do it
and ofcause help is around here
as you can remap some Gcode and ofcause use Mcodes that is the easy way to adchive your oszilation
you also can use 9 Axis syncronised movement so your oszilating axis woudt be rather UVW as parallel to the main
so in genral there is a way to do it
and ofcause help is around here
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
28 Mar 2020 22:08 #161847
by andypugh
Replied by andypugh on topic Controling cylindrical grinder.
One way to do this would be to use siggen
linuxcnc.org/docs/2.7/html/man/man9/siggen.9.html
To send a triangle wave to the wheel axis.
Probably with the amplitude and offset hooked up to GUI controls.
Though it might be better to do it with a G-code loop, so that the wheel moves are programmed motion.
This is very much like lathe roughing, so you might be able to use G71.
linuxcnc.org/docs/devel/html/gcode/g-code.html#gcode:g71-g72
There are docs for a different version of the cycle here (This uses a different letter convention, so is not directly applicable, but the pictures might make it clearer what is going on)
github.com/LinuxCNC/linuxcnc/blob/andypu...ughing-cycle-turning
linuxcnc.org/docs/2.7/html/man/man9/siggen.9.html
To send a triangle wave to the wheel axis.
Probably with the amplitude and offset hooked up to GUI controls.
Though it might be better to do it with a G-code loop, so that the wheel moves are programmed motion.
This is very much like lathe roughing, so you might be able to use G71.
linuxcnc.org/docs/devel/html/gcode/g-code.html#gcode:g71-g72
There are docs for a different version of the cycle here (This uses a different letter convention, so is not directly applicable, but the pictures might make it clearer what is going on)
github.com/LinuxCNC/linuxcnc/blob/andypu...ughing-cycle-turning
Please Log in or Create an account to join the conversation.
29 Mar 2020 05:26 #161912
by zoni
Replied by zoni on topic Controling cylindrical grinder.
hi if i use mcodes then can i define the area of oscilation ie between 50 and 150?
on the other hand if we use uvw do they work indipendent of xyz and and help how to implement them
on the other hand if we use uvw do they work indipendent of xyz and and help how to implement them
Please Log in or Create an account to join the conversation.
29 Mar 2020 12:32 #161961
by andypugh
If you need a continuous oscillation indpependent of coordinated axis motion then it has to be derived from some other source (but there are many ways to achieve this)
But you can use G-code subroutines that automatically calculate a set of wheelhead moves and infeed passes between two X axis limits and the required dimension.
Here is an example that I use for external turning on a lathe, it's almost exactly what you would need, and it can be called simply as a routine with a number of parameters.
On my machine it is called from a GUI but can be also called from MDI as O<turning>CALL [final-dia] [sfm] [increment] [feed] [end-z] [run-out-rad] [taper-angle] [tool-no]
Replied by andypugh on topic Controling cylindrical grinder.
Yes. Or you could set up a system to oscillate between X and U.hi if i use mcodes then can i define the area of oscilation ie between 50 and 150?
Not entirely. This is where it gets a bit complicated, but all moves in XYZABCUVW are coordinated, so every program block is run one at a time, then the next move starts at the end of the previous move. So you can't set the wheel head moving in one G-code line and then start another move while that one is ongoing.on the other hand if we use uvw do they work indipendent of xyz and and help how to implement them
If you need a continuous oscillation indpependent of coordinated axis motion then it has to be derived from some other source (but there are many ways to achieve this)
But you can use G-code subroutines that automatically calculate a set of wheelhead moves and infeed passes between two X axis limits and the required dimension.
Here is an example that I use for external turning on a lathe, it's almost exactly what you would need, and it can be called simply as a routine with a number of parameters.
On my machine it is called from a GUI but can be also called from MDI as O<turning>CALL [final-dia] [sfm] [increment] [feed] [end-z] [run-out-rad] [taper-angle] [tool-no]
;Turning
O<turning> sub
G8 ; Radius mode (easier maths)
G18 ; XZ Plane
G21 ; Metric Units
G90 ; Absolute Distance
G91.1 ; but not for arcs
M6 T#8 G43
#1 = [#1 / 2] ; because of radius mode
#14 = [#<_x>] (starting X)
#13 = #<_z> (starting Z)
#20 = [#6 * SIN[#7]]
#21 = [#6 * COS[#7]]
#22 = [#6 / COS[#7]]
#23 = [#5 + #6 - #20]
#24 = [[#13 - #23] * TAN[#7]]
G96 D1500 S#2 ; Constant Surface Speed Mode
m3 ;Start Spindle
g95 F#4 ; Feed-Per-Rev Mode
g4p1 ; Wait to reach speed
/ (debug, Turning finish rad #1 start rad #14 start length #13 finish length #5)
/ m1
O100 WHILE [#14 GT [#1 + #3 / 2]]
g0 X #14
#14=[#14-#3 / 2]
G1 X #14
G1 Z #23 X[#14 + #24]
O101 IF [#6 GT 0]
G2 Z#5 X[#14 + #24 + #21] I#21 K#20
G1 X[#14 + #24 + #21 + #3/2]
O101 ELSE
G1 X[#14 + #24 + [#3 * .6]]
O101 ENDIF
O104 IF [#7 LT 0]
G0 X#14
O104 ENDIF
G0 Z[#13]
O100 ENDWHILE
G0 x#1
G1 Z #23 X[#1 + #24]
O102 IF [#6 GT 0]
G2 Z#5 X[#1 + #24 + #21] I#21 K#20
G1 X[#1 + #24 + #21 + #3]
O102 ELSE
G1 X[#1 + #24 + #3]
O102 ENDIF
O106 IF [#7 LT 0]
G0 X#14
O106 ENDIF
G0 Z #13
G0 X #1 ; For touch-off
M5
G7
O<turning> endsub
M2
Please Log in or Create an account to join the conversation.
02 Oct 2020 19:45 #184610
by M1g13
Replied by M1g13 on topic Controling cylindrical grinder.
If you need a continuous oscillation indpependent of coordinated axis motion then it has to be derived from some other source (but there are many ways to achieve this)
Tell me what methods exist? This problem is also of interest.
Please Log in or Create an account to join the conversation.
02 Oct 2020 20:25 #184617
by andypugh
This is one way , using external offsets and a HAL component that takes spindle position as an input.
Replied by andypugh on topic Controling cylindrical grinder.
Tell me what methods exist? This problem is also of interest.
This is one way , using external offsets and a HAL component that takes spindle position as an input.
Please Log in or Create an account to join the conversation.
Time to create page: 0.096 seconds