cnc shaper

I was thinking of using a AC servo motor the ram on the actual shaper not on the proof of concept model. The real machine would use a multi start high lead screw for the ram, just as the XM-1 ( the screw on the XM-1 was about 3" diameter from my modeling) Hear is my thinking on basic use of the machine, jog to the starting point (as you mentioned .75") set zero on the encoder/controller, jog to the stop point (the encoder has been counting the turns of the motor or screw all this time) set the stop point, control would remember this count value. Now the controller would oscillate between these two values, when the controller is reaching these values it would decelerate before changing directions. When at the zero/home count the controller would then output signal to the other axis motors, before starting the ram again. The M66 sound like it would work when the counter reaches zero count if I understand what you are saying?
 
You can set 0,0,0 anywhere you want. Normally done with a mouse click depending on the controller. Doesn't make a difference if you are using steppers or servos to power the machine. The controller keeps track of what is going on, you only need to tell it what to do, normally done with G code, unless you want to reinvent the wheel. :)

Here is an example of normal G code that would run a shaper and face off a part. This G code would run on pretty much any controller.

(simple facing operation, generated in CamBam)
(part is 2x4 inches, placed in the vise with the long axis aligned with the X axis)
(0.5'' clearance on both ends of the cut)
(assumes a 0.050 nose radius tool)
(cutting speed 5 IPM, F5.0 Line N35)
(assumes X is the ram axis, Y is the table (cross) axis, and Z is the tool up/dn axis)

N15 G17 (set X/Y cutting mode)
N25 G0 Z0.01 (move tool to 0.01 above part)
N30 G0 X-0.0004 Y2.025 (rapid X and Y to start position)
N35 G1 F5.0 Z-0.01 (lower Z for a 0.01 depth of cut)
N40 G1 X5.0 (cut at 5 IPM to 5 inches from start, most likely way too slow)
N45 G1 X5.0004 ( I have no idea why this line is here, a 0.0004 move?)
N50 G0 Z0.01 (raise Z 0.01 above work)
N55 G0 X-0.02 Y2.015 (rapid retract X to start position and and reposition the table for the next pass)
N60 G1 Z-0.01 (lower Z for the next pass)
N65 G1 X5.02 (make the next pass)
.
. (rinse/repeat until the face off operation is complete
.
.
.
.
N1105 G1 X0.0
N1110 G0 Z0.01
N1120 M30 (end of program)
 
Last edited:
wouldn't hydraulics be more ideal for driving the ram?

you could use a rack/pinion and encoder to get some positional feedback for cheap... checkout dcservo https://github.com/misan/dcservo runs arduino code and should be good enough for the ram. Another option is https://github.com/rene-dev/stmbl which is for ac servo.

A regular stepper or closed loop stepper would work for the other positions.
 
You can set 0,0,0 anywhere you want. Normally done with a mouse click depending on the controller. Doesn't make a difference if you are using steppers or servos to power the machine. The controller keeps track of what is going on, you only need to tell it what to do, normally done with G code, unless you want to reinvent the wheel. :)

Here is an example of normal G code that would run a shaper and face off a part. This G code would run on pretty much any controller.

(simple facing operation, generated in CamBam)
(part is 2x4 inches, placed in the vise with the long axis aligned with the X axis)
(0.5'' clearance on both ends of the cut)
(assumes a 0.050 nose radius tool)
(cutting speed 5 IPM, F5.0 Line N35)
(assumes X is the ram axis, Y is the table (cross) axis, and Z is the tool up/dn axis)

N15 G17 (set X/Y cutting mode)
N25 G0 Z0.01 (move tool to 0.01 above part)
N30 G0 X-0.0004 Y2.025 (rapid X and Y to start position)
N35 G1 F5.0 Z-0.01 (lower Z for a 0.01 depth of cut)
N40 G1 X5.0 (cut at 5 IPM to 5 inches from start, most likely way too slow)
N45 G1 X5.0004 ( I have no idea why this line is here, a 0.0004 move?)
N50 G0 Z0.01 (raise Z 0.01 above work)
N55 G0 X-0.02 Y2.015 (rapid retract X to start position and and reposition the table for the next pass)
N60 G1 Z-0.01 (lower Z for the next pass)
N65 G1 X5.02 (make the next pass)
.
. (rinse/repeat until the face off operation is complete
.
.
.
.
N1105 G1 X0.0
N1110 G0 Z0.01
N1120 M30 (end of program)


You can't use G1 with a shaper. You need to move the tool to the cut position, leave it while the ram makes it's cut. Then you need to rapid to the position where it will clear the cut on the backstroke. Then you need to rapid again to the cut position before the ram re-engages the work. So the G Code is just G0 moves alternating with M66's that tell you when to move. With a G1, the tool will drag on the return stroke, so there should be no movement except rapids at either end of the stroke.
 
wouldn't hydraulics be more ideal for driving the ram?

you could use a rack/pinion and encoder to get some positional feedback for cheap... checkout dcservo https://github.com/misan/dcservo runs arduino code and should be good enough for the ram. Another option is https://github.com/rene-dev/stmbl which is for ac servo.

A regular stepper or closed loop stepper would work for the other positions.

Historically shapers have been driven by Whitworth quick return mechanisms (the most common), hydraulics, screws and rack and pinions. Unless you are an expert in hydraulics, I would stick with the mechanical movements. On a CNC machine with electronic control of the ram position, the rack and pinion or screw would be best, as you can easily control the cut speed to be constant while it is cutting. The Whitworth mechanism is nice if you have a constant speed motor because it gives you a quick return, but the speed of cut varies throughout the cutting stroke. A ballscrew would be good, but you would need a fairly large one as the loads would be pretty high. Rack and pinion would require some gearing on the motor to get the speed in the right range. An acme lead screw would be very inefficient, but would work for a proof of concept if you wanted to whack something together for not much money to work out the electronics and g code you need.
 
You can't use G1 with a shaper. You need to move the tool to the cut position, leave it while the ram makes it's cut. Then you need to rapid to the position where it will clear the cut on the backstroke. Then you need to rapid again to the cut position before the ram re-engages the work.

That's exactly what the code snippet above does. A G1 move is just a controlled feed move of one or more axes.
 
That's exactly what the code snippet above does. A G1 move is just a controlled feed move of one or more axes.

I am familiar with G code. I just don't think that's the best way to run the machine.
 
very nice thought experiment.... ah, the possibilities! Anyone for a CNC horizontal mill?

Seroiusly, there is a gear cutter in Richmond, BC that uses shapers to rough out gear blanks prior to hobbing. They use intricate mechanical tables to roate the gear blanks during the stroke of the ram... Perhaps they are missing a trick!
 
very nice thought experiment.... ah, the possibilities! Anyone for a CNC horizontal mill?

Seroiusly, there is a gear cutter in Richmond, BC that uses shapers to rough out gear blanks prior to hobbing. They use intricate mechanical tables to roate the gear blanks during the stroke of the ram... Perhaps they are missing a trick!

a horizontal mill would be the same as a vertical mill, you just change the coordinate axis's. should be very easy.
 
On my Deckel CNC, it has both vertical and horizontal spindles, you just tell the control which one to use.
 
Back
Top