Hello Guest it is September 17, 2021, 03:15:29 AM

Author Topic: worm gear cad design  (Read 18322 times)

0 Members and 1 Guest are viewing this topic.

Re: worm gear cad design
« Reply #10 on: December 22, 2013, 01:34:45 PM »
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.


Re: worm gear cad design
« Reply #11 on: December 22, 2013, 04:57:10 PM »
hi man thankx alot for your reply ;)
someone on cnc zone sent me a short G code example of what i want to do i never did g codes before this is my first time using G code on mach 3 so im still trying to wrap my head around it ;D here is a sample would you approve it
g21 g90
 m6 t1
h1 ( tool offset if your using it )
g1 z 50. f# ( move to above the part )
 g1 x0.0 y0.0 a0.0 f# ( note if a is moving father then x,y distance feed in deg/ min. )
 g1 z36. f# (depth of cut )
 g1 x-270 A3600 f500 ( this cut will make ten rev to - 270 @ 500 deg/min)
g0 z 75
g0 x0.0 a 0.0 ( back to start )

{end copy}
 g1 z 50. f# ( move to above the part )
 g1 x0.0 y0.0 a0.0 f# ( note if a is moving father then x,y distance feed in deg/ min. )
 g1 z35. f# (depth of cut ) {change this Z for cut depth}
 g1 x-270 A3600 f500 ( this cut will make ten rev to - 270 @ 500 deg/min)
g0 z 75
g0 x0.0 a 0.0 ( back to start )

{end pasted}
m5 ( spindel off )

thankx alot
Re: worm gear cad design
« Reply #12 on: December 22, 2013, 06:49:16 PM »
This works on my mill. Just had to try it!

(** Variable pitch Screw Cutting **)
(Screw #4)
(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

G0 Z.1 M9

G01 X#10 A#11 F200

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.


Re: worm gear cad design
« Reply #13 on: December 23, 2013, 12:00:34 AM »
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;

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.


Re: worm gear cad design
« Reply #14 on: December 23, 2013, 01:20:33 AM »
Hi there
Thank you so much for all your replies sorry went to sleep I think because of the time difference.
please im so sorry im very new to this I have no experience in this please bare with me,never did g codes before so really don't understand your method:-(
let me try and explain exactly what I need to do an please help.and does this mean that the g code programme I sent you is not correct ? and sorry im only used to mm measure
I would like to make a worm 2 float or 2 thread the lenghth would be 150mm
depth 6mm
the pitch 27mm
tool diameter 10mm ball end mill
so sorry man and thank you for your help
Re: worm gear cad design
« Reply #15 on: December 23, 2013, 12:39:56 PM »
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.

Re: worm gear cad design
« Reply #16 on: December 23, 2013, 03:16:59 PM »
hi there thank you man you way too professional for me its great yes i see what you mean well sort off but i would like to make a double thread not variable sorry man im also not familiar with many of these phrase and codes but thank you so much for your great detailed explanations.
if i had to put in the g codes i posted to you will i achieve my result of the pictures i posted or can you please show me a small example of the details i sent you man this really tough for me im
 jusT at the start everything is so new
thank you very much
Kind regards Khaled
Re: worm gear cad design
« Reply #17 on: December 23, 2013, 05:54:10 PM »

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*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.


Re: worm gear cad design
« Reply #18 on: December 24, 2013, 01:22:32 PM »
 :)Hi there man thankx a million for your support and the programme with explanations , i understand alot more now youve really helped me i will try it out soon and post to you my results.
one more query before i do is there any specific settings on Mach3 that i need to set ex: the degrees/min or anything for the 4th axis? or anything else on mach3 settings
Thank you again.
Re: worm gear cad design
« Reply #19 on: December 24, 2013, 03:26:47 PM »

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.