Controling cylindrical grinder.

More
27 Mar 2020 16:10 #161715 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

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

More
28 Mar 2020 07:40 #161785 by bbsr_5a
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
The following user(s) said Thank You: tommylight

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

More
28 Mar 2020 22:08 #161847 by andypugh
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

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

More
29 Mar 2020 05:26 #161912 by zoni
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

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

More
29 Mar 2020 12:32 #161961 by andypugh

zoni wrote: hi if i use mcodes then can i define the area of oscilation ie between 50 and 150?

Yes. Or you could set up a system to oscillate between X and U.

on the other hand if we use uvw do they work indipendent of xyz and and help how to implement them

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.

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.

More
02 Oct 2020 19:45 #184610 by M1g13

andypugh wrote:


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.

More
02 Oct 2020 20:25 #184617 by andypugh

M1g13 wrote: 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.102 seconds
Powered by Kunena Forum