Help with ACME thread - Page 2

1. Diamond
Join Date
Sep 2010
Location
Victoria Australia
Posts
4,212
Post Thanks / Like
Likes (Given)
0
1801
Originally Posted by olympictool1
Somethings just not quite right. We fixed the code for a double start and put in a new insert so we can control the PD (with out cutting the major at the same time) and it seems like it really wants to go, except its like its only catching one start. Every time we screw on the cap its crooked. Any insight? (PICTURE BELOW)

this is a 2 1/8 - 8 ACME
i am using the thread data as follows from a calculator (Original part falls right in the middle of all of these specs)
MAJOR 2.125 - 2.1188
MINOR 1.9800 - 1.9510
P.D. 2.0508 - 2.0315

Here is the code maybe someone sees what I am doing wrong:
N12
(ACME 2 1/8 -8)
G28V0
M69
G99G18M46
G50S3000
G55
G0T1252
M611
G97S500M203
G0G99G55X2.4Y0.
Z-.125
M8
G92X2.120Z.8F.125
Hello olympictool1,
Your Lead is wrong. The Feed Rate should be F0.25. The Lead of the Multi-start Thread is calculated as follows:

L=P x NS
Where:
L = the Lead (axial movement of the Thread in one rotation)
P = Pitch (distance from a point on one Thread Form to the corresponding same point on the next Thread Form)
NS = Number of Starts

Therefore:
L = 0.125 x 2
L = 0.25

Accordingly, your G92 Block should be as follows:

G92X2.120Z.8F0.25

Also, when cutting a Multi-start Thread, you shift the Z Start Point by the Pitch of the Thread:

P = L / NS
Where
L = the Lead (axial movement of the Thread in one rotation)
P = Pitch (distance from a point on one Thread Form to the corresponding same point on the next Thread Form)
NS = Number of Starts

Therefore:
P = 0.25 / 2
P = 0.125

You also end the Thread at the same End Point in Z; that does not vary. The result is that the End of the Thread will be indexed 180deg (for a 2 Start Thread).

If you look carefully at the Thread you've cut with the program listed in your last Post, you will find that you have cut a Single Start Thread, the same as in your first attempt. If you move the Z Start by a value equal to the Lead of the Thread, you cut a 0.125 Lead with F0.125 and by changing the Z Start by 0.125 for your second G92 Cycle, you simply cut the same Thread Groove, but starting form a different Z location.

With a G92 Cycle, you're able to index the second start by using a "Q" address in the Thread Cycle Start up Block and Start the Thread from the same Z Start Location. This also apples to G32 (G33 depending on parameter setting) and to the FS15 Format, Single Line G76 Cycle. If the Q address is omitted, Zero Thread Index assumed. The second Start is indexed 180degs by specifying the Index Angle with "Q". Obviously, the index angle is calculated as follows:

Q = 360 / NS
Where:
Q = Index Angle
NS = Number of Thread Starts

With a 3 Start Thread for example:
1. the first Start would be as Zero Index Angle, Q can be specified as Zero, or simply omitted
2. the Second Start Indexed by 120degs
and
3. the Third Start Indexed by 240degs

Regards,

Bill
Last edited by angelw; 06-18-2020 at 04:12 AM.

2. Titanium
Join Date
Sep 2005
Location
Oakland, CA
Posts
3,128
Post Thanks / Like
Likes (Given)
675
1029
I doubt that's a true ACME thread and more likely a bottle thread. They are not the same. try this and see if your sample matches up.

cap guide for fitting closures on bottles

3. Diamond
Join Date
Sep 2010
Location
Victoria Australia
Posts
4,212
Post Thanks / Like
Likes (Given)
0
1801
Originally Posted by Dan from Oakland
I doubt that's a true ACME thread and more likely a bottle thread. They are not the same. try this and see if your sample matches up.

cap guide for fitting closures on bottles
Hello Dan,
That may be, but his example code shows that he is still cutting a Single Start Thread and with the wrong Lead. Accordingly, the cap won't assemble irrespective of what Thread Form Insert he may be using.

Regards,

Bill

4. Aluminum
Join Date
Mar 2011
Location
NJ
Posts
95
Post Thanks / Like
Likes (Given)
3
7
Originally Posted by angelw
Hello Dan,
That may be, but his example code shows that he is still cutting a Single Start Thread and with the wrong Lead. Accordingly, the cap won't assemble irrespective of what Thread Form Insert he may be using.

Regards,

Bill
Bill thank you so much, i knew there was something i was misunderstanding now its all coming together. going to give it a shot now.

Dan thank you for the idea but i do not believe the specs fall into any of those but well see what happens after i actually cut it right.

5. Aluminum
Join Date
Mar 2011
Location
NJ
Posts
95
Post Thanks / Like
Likes (Given)
3
7
Originally Posted by olympictool1
Bill thank you so much, i knew there was something i was misunderstanding now its all coming together. going to give it a shot now.

Dan thank you for the idea but i do not believe the specs fall into any of those but well see what happens after i actually cut it right.
Hey it works!!! Thank you all again for the ideas and the help, and special thanks to you Bill for explaining. I appreciate the patience and the help, it just didn't make sense the first time.

6. Diamond
Join Date
Sep 2010
Location
Victoria Australia
Posts
4,212
Post Thanks / Like
Likes (Given)
0
1801
Originally Posted by olympictool1
Hey it works!!! Thank you all again for the ideas and the help, and special thanks to you Bill for explaining. I appreciate the patience and the help, it just didn't make sense the first time.

Hello olympictool1,

Some time ago I Posted on this Forum a Custom Macro Threading Cycle that could replace the standard G76 Cycle. It had all the attributes of the Standard Cycle, but with the addition of being able to take successive cuts on each of any number of Thread Starts until finished. I labeled this cycle G176 and registered 176 to create a Custom G Code.

In the event that your machine doesn't have the User Macro facility, another way to cut each Thread Lead one Thread pass at a time is by using a Subprogram repeated a number of times, shown in the following example. The only down point of this strategy is that each successive DOC will be the same and not variable as with a G76 Thread Cycle. In your program example, you've used a constant DOC of 0.0025" (0.005 Diameter Value), so the Subprogram method would work for you. A DOC 0.0025" is way too small. As well as taking a lot of unnecessary Threading passes, a total count of 64 in your example, the Threading Insert would suffer if cutting Steel. However, I've used your DOC in the following example to show how this method can cut down on code substantially:

G97 S500 M203
G0 G99 G55 X2.4 Y0.
Z-0.125
M8
M98 P321000 (Call Subprogram O1000 - Repeat 32 Times)

The Thread Height of your Thread (according to the numbers used in your program) is 0.160". Accordingly,:
1. you need to start the Threading Cycle at an X Coordinate at least greater than the Major Diameter of the Thread by 0.160" (Diameter Value). It doesn't matter how much larger the Start Position is, just so long as its greater than the Thread Height

2. In your example code, you start at X2.4", 0.275" in diameter greater than the Major Diameter and greater than the Thread Height; that will be fine.

3. From that point, if you were to move Incrementally -0.280 in X, you will take a 0.005" (0.0025 Radially) DOC on the Workpiece. This Incremental move can be achieved by using the "U" address instead of the Absolute "X" address.

4. You will see in the following example Subprogram, that at the end of the First Pass from the starting Z position of Z-0.125 the Tool is withdrawn Incrementally by +0.280, placing it back at the Absolute X coordinate of X2.40.

5. The Tool is then moved to the new Z Start position of Z-0.25", a shift of 0.125", half the Lead of the Thread and in position to take a cut on the Second Start of the Thread.

6. The part of the Subprogram that cuts the Second Thread Start repeats the process of moving the Tool Incrementally -0.280" and completes a Thread Pass to the same End Point of Z0.8"

7. The next move is what makes it all work. At the end of the Thread Pass on the Second Start, the Tool is only withdrawn by +0.275" and would place the Tool at the Absolute X coordinate of X2.395 (0.005" less that the original X2.4).

8. At this new X Start position, the Tool is moved back to the Z Start position for the First Start of the Thread and the Subprogram repeated.

9. Each time the Thread Pass for the Second Thread Start is executed in the Subprogram, the X Start of the Next pass on the First and Second Start of the Thread is reduced by the DOC being used; in this case, 0.005" (in terms of diameter).

19. The number of repeats of the Subprogram is determined by dividing the Thread Height by the proposed DOC. If this calculation doesn't result in an Integer, divide the Thread Height by the closest Integer to the result; the result of this calculation will be the DOC you must use. Following is an example of the Subprogram.

%
O1000
G00 Z-0.125 (Z Start Position for 1st Start)
G00 U-0.280
G32 Z0.8 F0.25
G00 U0.280
G00 Z-0.250 (Z Start Position for 2nd Start)
G00 U-0.280
G32 Z0.8 F0.25
G00 U0.275 (X Start Position reduced by 0.005" here)
G00 Z-0.125 (Z Start Position for 1st Start)
M99
%

Regards,

Bill
Last edited by angelw; 06-19-2020 at 05:03 PM.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•