171

**PoKeys / Re: Pokeys - Eagle Cad**

« **on:**December 25, 2013, 11:11:26 PM »

Polabs website; read up on the CNCAddon board.

John

John

Hello Guest it is September 23, 2023, 09:09:45 PM

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

171

Polabs website; read up on the CNCAddon board.

John

John

172

Khaled:

If the rotary table ratio is 40:1, that means 40 turns of the input shaft of rotary table = 1 rotary table revolution, or 360 degrees.

1 turn of the rotary table equals 360 degrees / 40 = 9 degrees per 1 input shaft rotation.

This seems like a very large movement for a rotary table. Most rotary tables over 150mm diameter (about 6 inch) are 90:1 ratio, and rotary tables in the 100mm diameter (4 inch table diameter) are usually 72:1.

Please recheck if the table ratio is 40:1

Such a ratio is a very poor use for a CNC machine.

If that is true, then the timing belt reduction of 2:1 = 400 motor steps for 1 Table input shaft rotation.

The equation to calculate STEPS PER is:

Motor steps per revolution (200) * ratio of timing belt drive (2) * ratio of Rotary table (40) = Total number pulses to go 360 degrees = 16000

Divide this number (16000) by 360 degrees = STEPS PER 1 degree = 44.44444

You cannot have a fractional STEPS PER except if it is an even fraction equal to micro-steps, like 1/2, 1/4, 1/8 micro-steps, then a fraction like .5, .25, .125 will equate to a whole number when factored with the multiplier of 2,4,8 in the final calculation.

If the larger pulley is a multiple of 9, then the STEPS PER will be a whole number for your 40:1 table ratio.

20:45 = 50 STEPS PER

20:54 = 60

20:63 = 70

20:72 = 80

400 motor steps / 9 degrees per table shaft rotation = 44.44444 steps for 1 degree table rotation.

The STEPS PER must be a whole number, and not some fraction unless it was 44.5 or 44.25, and in that case micro-stepping of 1/2 or 1/4 would work. These two examples would work because if micro-stepping 1/2, and using 44.5, the STEPS PER = 89, and micro-stepping 1/4, STEPS PER = 177.

If you use a 20 tooth pulley on the motor, the other pulley must be a factor of 9; 45, 54, 63 etc. to get a whole number for STEPS PER.

John

If the rotary table ratio is 40:1, that means 40 turns of the input shaft of rotary table = 1 rotary table revolution, or 360 degrees.

1 turn of the rotary table equals 360 degrees / 40 = 9 degrees per 1 input shaft rotation.

This seems like a very large movement for a rotary table. Most rotary tables over 150mm diameter (about 6 inch) are 90:1 ratio, and rotary tables in the 100mm diameter (4 inch table diameter) are usually 72:1.

Please recheck if the table ratio is 40:1

Such a ratio is a very poor use for a CNC machine.

If that is true, then the timing belt reduction of 2:1 = 400 motor steps for 1 Table input shaft rotation.

The equation to calculate STEPS PER is:

Motor steps per revolution (200) * ratio of timing belt drive (2) * ratio of Rotary table (40) = Total number pulses to go 360 degrees = 16000

Divide this number (16000) by 360 degrees = STEPS PER 1 degree = 44.44444

You cannot have a fractional STEPS PER except if it is an even fraction equal to micro-steps, like 1/2, 1/4, 1/8 micro-steps, then a fraction like .5, .25, .125 will equate to a whole number when factored with the multiplier of 2,4,8 in the final calculation.

If the larger pulley is a multiple of 9, then the STEPS PER will be a whole number for your 40:1 table ratio.

20:45 = 50 STEPS PER

20:54 = 60

20:63 = 70

20:72 = 80

400 motor steps / 9 degrees per table shaft rotation = 44.44444 steps for 1 degree table rotation.

The STEPS PER must be a whole number, and not some fraction unless it was 44.5 or 44.25, and in that case micro-stepping of 1/2 or 1/4 would work. These two examples would work because if micro-stepping 1/2, and using 44.5, the STEPS PER = 89, and micro-stepping 1/4, STEPS PER = 177.

If you use a 20 tooth pulley on the motor, the other pulley must be a factor of 9; 45, 54, 63 etc. to get a whole number for STEPS PER.

John

173

Khaled:

What is the rotary table gear ratio ratio?

What are the steps per revolution of the motor driving rotary table?

John

What is the rotary table gear ratio ratio?

What are the steps per revolution of the motor driving rotary table?

John

174

khaled:

I rewrote this on my machine, and it loads with NO fault.

The post I sent for you to try, would not load on my machine either. Do not know why?

However, this loaded fine:

(27 Pitch 2-Start Thread)

G0 G21 G49 G40.1 G17 G80 G50 G90 G98

G0 Z20.0

G0 X0.0 Y0.0 A0.0

M03 S1000

G1 Z-1.0 F10 M7

G1 X162.0 A2160.0 F500

G0 Z20.0

G0 X0.0 A0.0 M9

M30

If this gives trouble, retype the program on your computer by hand. If you copy/pasted the first

program, perhaps there were some Windows/Word letters that cannot be seen. I am using a brand new

computer with Win7, and there are some bugs to work out maybe. I specifically made sure this was saved

in plain text format. That is the only thing I can think of.

John

I rewrote this on my machine, and it loads with NO fault.

The post I sent for you to try, would not load on my machine either. Do not know why?

However, this loaded fine:

(27 Pitch 2-Start Thread)

G0 G21 G49 G40.1 G17 G80 G50 G90 G98

G0 Z20.0

G0 X0.0 Y0.0 A0.0

M03 S1000

G1 Z-1.0 F10 M7

G1 X162.0 A2160.0 F500

G0 Z20.0

G0 X0.0 A0.0 M9

M30

If this gives trouble, retype the program on your computer by hand. If you copy/pasted the first

program, perhaps there were some Windows/Word letters that cannot be seen. I am using a brand new

computer with Win7, and there are some bugs to work out maybe. I specifically made sure this was saved

in plain text format. That is the only thing I can think of.

John

175

khaled:

You do not set "Degrees per minute". The feedrate in Mach3 is "units per minute", and a UNIT is the system in use; INCH (G20) or METRIC(G21).

Since your system is metric, you just use a number after the "F" G-code, and Mach3 will drive the X axis and the A rotary axis correctly.

Mach3 uses the radius setting entered in "Settings", and the "Steps Per" in the Motor Configuration to co-ordinate the X and A axis.

When the X axis and A axis move together, as in the program line with X and A on the same line of code, they are moving in a VECTOR; meaning

a combined motion with both axis in SYNC. The two axis begin moving together, and arrive at their respective end points together, even though

the two axis motors are running at different speeds.

Settings page:

Insert the part RADIUS in the box upper right - A radius.

The "Axis Inhibits" box needs to check the X,Y,Z,and A box.

Config/General Config:

Upper left, check "A axis is angular

Config/Motor Tuning:

A axis, "Steps Per", set the number of steps for the rotary axis to move 1 DEGREE.

The "VELOCITY" and "ACCELERATION" settings will be much higher than the settings are for the X,Y,and Z.

Tune the rotary table to achieve best speed and smoothness.

Check the Steps per setting when you are finished, by doing an MDI, G01 A360 F200, and see that the rotary table

stops at the exact point that it started at A0.00

Take time to get best result for motor speed.

Re-start Mach3 to enable these settings.

One additional point:

Because a ball mill is a poor metal removing tool for roughing, you should use a 6mm cutter, and an 8mm cutter set to the appropriate depths to remove the bulk of material in the thread groove before using the ball mill. Any CAD program can show how deep each cutter can go without cutting into the 10mm diameter curve outline shape.

John

You do not set "Degrees per minute". The feedrate in Mach3 is "units per minute", and a UNIT is the system in use; INCH (G20) or METRIC(G21).

Since your system is metric, you just use a number after the "F" G-code, and Mach3 will drive the X axis and the A rotary axis correctly.

Mach3 uses the radius setting entered in "Settings", and the "Steps Per" in the Motor Configuration to co-ordinate the X and A axis.

When the X axis and A axis move together, as in the program line with X and A on the same line of code, they are moving in a VECTOR; meaning

a combined motion with both axis in SYNC. The two axis begin moving together, and arrive at their respective end points together, even though

the two axis motors are running at different speeds.

Settings page:

Insert the part RADIUS in the box upper right - A radius.

The "Axis Inhibits" box needs to check the X,Y,Z,and A box.

Config/General Config:

Upper left, check "A axis is angular

Config/Motor Tuning:

A axis, "Steps Per", set the number of steps for the rotary axis to move 1 DEGREE.

The "VELOCITY" and "ACCELERATION" settings will be much higher than the settings are for the X,Y,and Z.

Tune the rotary table to achieve best speed and smoothness.

Check the Steps per setting when you are finished, by doing an MDI, G01 A360 F200, and see that the rotary table

stops at the exact point that it started at A0.00

Take time to get best result for motor speed.

Re-start Mach3 to enable these settings.

One additional point:

Because a ball mill is a poor metal removing tool for roughing, you should use a 6mm cutter, and an 8mm cutter set to the appropriate depths to remove the bulk of material in the thread groove before using the ball mill. Any CAD program can show how deep each cutter can go without cutting into the 10mm diameter curve outline shape.

John

176

khaled:

You want to make a 2-start thread with 27mm pitch and the length of the part is 150mm.

27mm does not divide into 150mm evenly. 150mm / 27 = 5.5555, so we make the distance machine travel an even multiple of 27mm.

6*27mm=162mm

6*360 degrees = 2160 degrees

Rotary axis turn 6 revolutions - X axis travels 162mm. This will produce a 27mm pitch using whole numbers.

Set your X0.00 5mm before the end of the 150mm length material. There must be clearance for the cutter. You can cut off the small diameter end stub in a lathe after the threads are cut.

A 10mm ball mill cannot cut full depth in 1 pass. You must make many small passes. The Z depth number must be input manually before each cutting pass. Run program as many times as it takes to achieve full depth. Try 1 or 2 mm depth as a start.

This will allow the cutter to go to cutting depth and not break the tool. The bottom of a ball mill has no ability to cut in a straight down motion.

The cutting action will start before the part begin end, and finish travel past the end of part.

Touch-off surface of the part with 10mm Ball mill. This is your Z0.00

Sample program:

Step 1:

G0 G21 G49 G40.1 G17 G80 G50 G90 G98

G0 Z20.0 X0.0 Y0.0 A0.0 (move to start position, 20mm above part)

M3 (start spindle)

G1 Z-1 F# M7 (feed down to Z depth and turn on coolant)

G1 X162 A2160 F500 (27mm pitch thread, 6 revolutions of A axis)

G0 Z20 (tool clear of part)

G0 X0.0 A0.0 M9 (return to start position, turn off coolant)

M30 (end program)

Step 2:

Do not remove part from rotary axis, or change any X0.00 or Z0.00 positions.

After finish Z depth is reached, do:

MDI: G1 A180 F200

This will rotate the A axis 180 degrees from original A0.00

Re-set A axis to A0.00, now 180 degrees out of phase from first thread.

Repeat program until full Z depth.

You now have a 2-start, 27mm pitch thread part, with a 10mm ball form thread.

John

You want to make a 2-start thread with 27mm pitch and the length of the part is 150mm.

27mm does not divide into 150mm evenly. 150mm / 27 = 5.5555, so we make the distance machine travel an even multiple of 27mm.

6*27mm=162mm

6*360 degrees = 2160 degrees

Rotary axis turn 6 revolutions - X axis travels 162mm. This will produce a 27mm pitch using whole numbers.

Set your X0.00 5mm before the end of the 150mm length material. There must be clearance for the cutter. You can cut off the small diameter end stub in a lathe after the threads are cut.

A 10mm ball mill cannot cut full depth in 1 pass. You must make many small passes. The Z depth number must be input manually before each cutting pass. Run program as many times as it takes to achieve full depth. Try 1 or 2 mm depth as a start.

This will allow the cutter to go to cutting depth and not break the tool. The bottom of a ball mill has no ability to cut in a straight down motion.

The cutting action will start before the part begin end, and finish travel past the end of part.

Touch-off surface of the part with 10mm Ball mill. This is your Z0.00

Sample program:

Step 1:

G0 G21 G49 G40.1 G17 G80 G50 G90 G98

G0 Z20.0 X0.0 Y0.0 A0.0 (move to start position, 20mm above part)

M3 (start spindle)

G1 Z-1 F# M7 (feed down to Z depth and turn on coolant)

G1 X162 A2160 F500 (27mm pitch thread, 6 revolutions of A axis)

G0 Z20 (tool clear of part)

G0 X0.0 A0.0 M9 (return to start position, turn off coolant)

M30 (end program)

Step 2:

Do not remove part from rotary axis, or change any X0.00 or Z0.00 positions.

After finish Z depth is reached, do:

MDI: G1 A180 F200

This will rotate the A axis 180 degrees from original A0.00

Re-set A axis to A0.00, now 180 degrees out of phase from first thread.

Repeat program until full Z depth.

You now have a 2-start, 27mm pitch thread part, with a 10mm ball form thread.

John

177

The original post was for a Variable Pitch thread, starting with a 1/4" pitch (6.34mm) increasing uniformly as the shaft rotated to 3/4" pitch (19.04mm) at 24" (609mm) from the starting point.

My example is how to drive a rotary axis (A) in sync wih the linear (X axis) to produce such a thread. Such a thread is definitely unusual, which actually could be described as a Linear Cam, and not really a machine Thread.

The use of G90 and G91 make this possible in a continuous manner. The G90 code means all dimensions are Absolute, i.e., if the mill is at X0, Y0, Z0, A0 and the first line of code in a routine is G90, followed by G01 X5 F20, the mill table will move from X0.00 to X5.000 Y0.0 Z0.0 A0.0.

If this code is in a routine, and is repeated, such as the loop in my example, the machine will NOT move again, because it is already at X5.000.

The G91 code means all dimensions are treated as an INCREMENTAL move, and every time a loop is read, such as the example, each time a value for X5 is read, it will move again that distance. If the loop containing X5 is read (4)times, the machine table will be at X20.000.

The difference in millimeters to inches is by a factor of 25.4. To change from an inch dimension, divide the INCH dimension by .0394, which is the Inch Decimal equivalent of 1mm. One inch divided by .0394 = 25.4

The .0394 value is rounded to 4 places for simplicity; 1 divided by 25.4 actually = .039370079

I suggest your question about a metric dimensioned screw be a new topic.

If you want to cut a thead using a rotary axis as my example shows, you do not use an increment factor in the loop.

John

My example is how to drive a rotary axis (A) in sync wih the linear (X axis) to produce such a thread. Such a thread is definitely unusual, which actually could be described as a Linear Cam, and not really a machine Thread.

The use of G90 and G91 make this possible in a continuous manner. The G90 code means all dimensions are Absolute, i.e., if the mill is at X0, Y0, Z0, A0 and the first line of code in a routine is G90, followed by G01 X5 F20, the mill table will move from X0.00 to X5.000 Y0.0 Z0.0 A0.0.

If this code is in a routine, and is repeated, such as the loop in my example, the machine will NOT move again, because it is already at X5.000.

The G91 code means all dimensions are treated as an INCREMENTAL move, and every time a loop is read, such as the example, each time a value for X5 is read, it will move again that distance. If the loop containing X5 is read (4)times, the machine table will be at X20.000.

The difference in millimeters to inches is by a factor of 25.4. To change from an inch dimension, divide the INCH dimension by .0394, which is the Inch Decimal equivalent of 1mm. One inch divided by .0394 = 25.4

The .0394 value is rounded to 4 places for simplicity; 1 divided by 25.4 actually = .039370079

I suggest your question about a metric dimensioned screw be a new topic.

If you want to cut a thead using a rotary axis as my example shows, you do not use an increment factor in the loop.

John

178

In the previous, I mis-labeled #10 as the increment value when it is the starting X value for the beginning of the loop. The increment value is the .1 value in the last line of the o1000 routine; #10=[#10+.1]

In the case of cutting the 24" leadscrew, the (Set Parameters) line would read:

#10 = [.25]

#11= [360]

and the line in the loop that does the actual increment would be;

#10=[#10+.01046]

The X axis increases in a continuous progression as the A axis rotates.

and, the M98 line would read;

M98 P1000 L48

The first demo makes it easy to stop motion at 10 degree intervals to check how the X value is increasing. Also, if using a tiny step as the actual run would be, it would be difficult to see the actual increase just looking at the DRO; thus the larger values to test.

John

In the case of cutting the 24" leadscrew, the (Set Parameters) line would read:

#10 = [.25]

#11= [360]

and the line in the loop that does the actual increment would be;

#10=[#10+.01046]

The X axis increases in a continuous progression as the A axis rotates.

and, the M98 line would read;

M98 P1000 L48

The first demo makes it easy to stop motion at 10 degree intervals to check how the X value is increasing. Also, if using a tiny step as the actual run would be, it would be difficult to see the actual increase just looking at the DRO; thus the larger values to test.

John

179

This works on my mill. Just had to try it!

(** Variable pitch Screw Cutting **)

(Screw #4)

(12-22-2013)

(Cuts an increasing screw pitch)

(X change =.1 per 10 degree rotation Axis)

G0 G20 G49 G40.1 G17 G80 G50 G90 G98

G00 X0.0 Y0.0 A0.0 Z.1

M6 T2

M03 S1800

G00 G43 H2 Z1.0

(set Parameters)

#10=[.1] (increment value of X axis feed)

#11=[10] (increment value of A axis feed)

G0 X0.0 Y0,0 A0.0 Z.1

G1 Z-.1 F10

M98 P1000 L9

G90

G0 Z.1 M9

M30

O1000

G91

G01 X#10 A#11 F200

#10=[#10+.1]

M99

%

Just change the values for #10 and #11 to make the screw pitch you want. Running this program, I did a feedhold every 10 degrees to see the increasing X distance. This only turns for 90 degrees, but the motion is smooth.

John

(** Variable pitch Screw Cutting **)

(Screw #4)

(12-22-2013)

(Cuts an increasing screw pitch)

(X change =.1 per 10 degree rotation Axis)

G0 G20 G49 G40.1 G17 G80 G50 G90 G98

G00 X0.0 Y0.0 A0.0 Z.1

M6 T2

M03 S1800

G00 G43 H2 Z1.0

(set Parameters)

#10=[.1] (increment value of X axis feed)

#11=[10] (increment value of A axis feed)

G0 X0.0 Y0,0 A0.0 Z.1

G1 Z-.1 F10

M98 P1000 L9

G90

G0 Z.1 M9

M30

O1000

G91

G01 X#10 A#11 F200

#10=[#10+.1]

M99

%

Just change the values for #10 and #11 to make the screw pitch you want. Running this program, I did a feedhold every 10 degrees to see the increasing X distance. This only turns for 90 degrees, but the motion is smooth.

John

180

Here is a method that should make a variable screw without CAD. Per your description of beginning with a 1/4" pitch, and finishing up with a 3/4" pitch in 24", the following should work.

Since the screw will be 24" long, the average pitch length is .5" , and the approximate number of A revolutions will be 48

If you wrote a line of code, G1 A360 X.25, the mill setup will cut a single thread of .25" pitch. We want to repeat this action 48 times, and increase the X value a given amount for each revolution.

If you divide the average pitch length (.5), by 48, the incremental change =.010416" per single revolution of the A axis.

Now you can write a simple program that increments the X value .010416 inch for each 360 degrees of A axis revolution. You should be able to increment the A by 360 each iteration of the loop, as the change per revolution in X is pretty small.There are examples of incrementing values using G90 and G91 in the forum.

The loop repeat will be 48.

You should be able to write the code with varibles for X, A, and Z so you can make multiple passes.

John

Since the screw will be 24" long, the average pitch length is .5" , and the approximate number of A revolutions will be 48

If you wrote a line of code, G1 A360 X.25, the mill setup will cut a single thread of .25" pitch. We want to repeat this action 48 times, and increase the X value a given amount for each revolution.

If you divide the average pitch length (.5), by 48, the incremental change =.010416" per single revolution of the A axis.

Now you can write a simple program that increments the X value .010416 inch for each 360 degrees of A axis revolution. You should be able to increment the A by 360 each iteration of the loop, as the change per revolution in X is pretty small.There are examples of incrementing values using G90 and G91 in the forum.

The loop repeat will be 48.

You should be able to write the code with varibles for X, A, and Z so you can make multiple passes.

John