Free Stub Acme Thread Note Calculator

Click here to download free Stub Acme/Acme Thread Calculator

This post is aimed at anyone that needs to calculate quickly the Major, Minor and Pitch diameters for a single start Stub Acme thread. As an engineer, this is the fastest way to generate note call-outs on drawings without any typos. The forumlas shown could also be used by anyone else that needs Stub Acme dimensions for something. In my previous post I showed you how to make a UDF in Creo 2/3 that automatically creates Stub Acme thread features in whichever model you place it. This example and others sometimes require calculating Stub Acme thread dims instead of simply looking them up. I have also included an extraordinarily useful Autohotkey script I made that you can simply enter the pin OD and the TPI to and you can then just click a button in order to copy the relevant note for the drawing (for the Engineers that like to give the machine shop as much info as possible). This works for external or pin threads and internal or box threads.

Here is a picture of the Mathcad sheet I made which has the comments saying where in the Machinery Handbook I got each equation. It shows the calculation for greater than 10 TPI. For 10 TPI or lower step 5 doesn’t include the .01 inch offset as per the Machinery Handbook. This assumes Stub Acme or Acme 2G Single Start threads but it could be easily modified to include others. Mathcad now has a free version so if you don’t want to install Authotkey you could simply type out these equations below just like it shows into a Mathcad sheet and it would calculate any size you wanted by simply changing the major_diameter_max and tpi values at the top. You can now download the Mathcad sheet here.

mathcad stub acme printout

Autohotkey script

stub acme note generator
Just copy all the following, save it as a new text file with .ahk extension and then double click it to run it. This works if you have Authotkey installed.

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force ;sets script to automatically override the replace instance dialog with yes
settimer, ontop,100

;set spacing and widths
text_width:=100
text_space:=80
input_width:=60
input_space:=70
button_width:=150
button_spacing:=160

Gui, stub_acme_note_generator:New
;set default values
nom_diameter:=”4.500″
TPI:=”8″

Gui, Add, Text, xm w250, Stub ACME
Gui, Add, Button, Default xm w%button_width% vsa_external gsa_get_ext_note, Copy External/Pin Note
Gui, Add, Button, Default xp+%button_spacing% w%button_width% vsa_internal gsa_get_int_note, Copy Internal/Box Note
Gui, Add, Text, xm w250 vsa_get_ext_note, % sa_get_ext_note(nom_diameter, TPI)
Gui, Add, Text, xp+%button_spacing% w250 vsa_get_int_note, % sa_get_int_note(nom_diameter, TPI)
Gui, Add, Text, xm
Gui, Add, Text, xm w250, ACME
Gui, Add, Button, Default xm w%button_width% va_external ga_get_ext_note, Copy External/Pin Note
Gui, Add, Button, Default xp+%button_spacing% w%button_width% va_internal ga_get_int_note, Copy Internal/Box Note
Gui, Add, Text, xm w250 va_get_ext_note, % a_get_ext_note(nom_diameter, TPI)
Gui, Add, Text, xp+%button_spacing% w250 va_get_int_note, % a_get_int_note(nom_diameter, TPI)
Gui, Add, Text, xm
Gui, Add, Text, xm w250 , Enter Nominal Diameter
Gui, Add, Edit, r1 w60 xp+150 vnom_diameter gnotes,%nom_diameter%
Gui, Add, Text, xm w250, Enter TPI (Threads per inch)
Gui, Add, Edit, r1 w60 xp+150 vTPI gnotes ,%TPI%

Gui, show, w330, Stub Acme Note Generator
return

;————————————————————————————————————–
stub_acme_note_generatorguiclose:
ExitApp
return

submit:
Gui, Submit,NoHide
Gui, show, , Stub Acme Note Generator
return

submit_and_close:
Gui, Submit,NoHide
Gui, Destroy
return

ontop:
Gui, unit_converter: +alwaysontop
return

notes:
Gui, Submit,NoHide
SetFormat, FloatFast, 0
GuiControlGet, TPI , , TPI
SetFormat, FloatFast, 0.3
GuiControlGet, nom_diameter , , nom_diameter

ext_note:=sa_get_ext_note(nom_diameter,TPI)
GuiControl, , sa_get_ext_note, % ext_note
GuiControl, , sa_get_int_note, % sa_get_int_note(nom_diameter, TPI)
GuiControl, , a_get_ext_note, % a_get_ext_note(nom_diameter, TPI)
GuiControl, , a_get_int_note, % a_get_int_note(nom_diameter, TPI)
return
;————————————————————————————————————–
sa_get_ext_note:
Gui, Submit,NoHide
SetFormat, FloatFast, 0
GuiControlGet, TPI , , TPI
SetFormat, FloatFast, 0.3
GuiControlGet, nom_diameter , , nom_diameter
ext_note:=sa_get_ext_note(nom_diameter,TPI)
clipboard:=ext_note
return

sa_get_int_note:
Gui, Submit,NoHide
SetFormat, FloatFast, 0
GuiControlGet, TPI , , TPI
SetFormat, FloatFast, 0.3
GuiControlGet, nom_diameter , , nom_diameter
int_note:=sa_get_int_note(nom_diameter,TPI)
clipboard:=int_note
return

sa_get_ext_note(nom_diameter, TPI){
SetFormat, FloatFast, 0.3
major_d_max:=nom_diameter
pitch:=1/TPI
major_d_min:=major_d_max-.05*pitch
basic_pitch_d:=major_d_max-.3*pitch
col3_table4:=.008*sqrt(major_d_max)
pitch_d_max:=basic_pitch_d-col3_table4
pdt:=.006*sqrt(major_d_max)+.03*sqrt(1/TPI)
pitch_d_min:=pitch_d_max-pdt
basic_minor_d:=major_d_max-.6*pitch
if TPI<=10 minor_d_offset:=.02 if TPI>10
minor_d_offset:=.01
minor_d_max:=basic_minor_d-minor_d_offset
minor_d_min:=minor_d_max-pdt
ext_note:=major_d_max “-” TPI ” STUB ACME-2G” “`n”
ext_note:=ext_note . “C/W 45° END CHAMS” “`n”
ext_note:=ext_note . “MAJORØ ” major_d_max “/” major_d_min “`n”
ext_note:=ext_note . “PITCHØ ” pitch_d_max “/” pitch_d_min “`n”
ext_note:=ext_note . “MINORØ ” minor_d_max “/” minor_d_min
return ext_note
}

sa_get_int_note(nom_diameter, TPI){
SetFormat, FloatFast, 0.3
pitch:=1/TPI
if TPI<=10 major_d_offset:=.02 if TPI>10
major_d_offset:=.01
major_d_min:=nom_diameter+major_d_offset
pdt:=.006*sqrt(nom_diameter)+.03*sqrt(1/TPI)
major_d_max:=major_d_min+pdt
pitch_d_min:=nom_diameter-.3*pitch
pitch_d_max:=pitch_d_min+pdt
minor_d_min:=nom_diameter-.6*pitch
minor_d_max:=minor_d_min+.05*pitch
int_note:=nom_diameter “-” TPI ” STUB ACME-2G” “`n”
int_note:=int_note . “C/W 45° END CHAMS” “`n”
int_note:=int_note . “MINORØ ” minor_d_min “/” minor_d_max “`n”
int_note:=int_note . “PITCHØ ” pitch_d_min “/” pitch_d_max “`n”
int_note:=int_note . “MAJORØ ” major_d_min “/” major_d_max
return int_note
}
;————————————————————————————————————–
;acme functions
a_get_ext_note:
Gui, Submit,NoHide
SetFormat, FloatFast, 0
GuiControlGet, TPI , , TPI
SetFormat, FloatFast, 0.3
GuiControlGet, nom_diameter , , nom_diameter
ext_note:=a_get_ext_note(nom_diameter,TPI)
clipboard:=ext_note
return

a_get_int_note:
Gui, Submit,NoHide
SetFormat, FloatFast, 0
GuiControlGet, TPI , , TPI
SetFormat, FloatFast, 0.3
GuiControlGet, nom_diameter , , nom_diameter
int_note:=a_get_int_note(nom_diameter,TPI)
clipboard:=int_note
return

a_get_ext_note(nom_diameter, TPI){
SetFormat, FloatFast, 0.3
major_d_max:=nom_diameter
pitch:=1/TPI
major_d_min:=major_d_max-.05*pitch
basic_pitch_d:=major_d_max-.5*pitch
col3_table4:=.008*sqrt(major_d_max)
pitch_d_max:=basic_pitch_d-col3_table4
pdt:=.006*sqrt(major_d_max)+.03*sqrt(1/TPI)
pitch_d_min:=pitch_d_max-pdt
basic_minor_d:=major_d_max-pitch
if TPI<=10 minor_d_offset:=.02 if TPI>10
minor_d_offset:=.01
minor_d_max:=basic_minor_d-minor_d_offset
minor_d_min:=minor_d_max-1.5*pdt
ext_note:=major_d_max “-” TPI ” ACME-2G” “`n”
ext_note:=ext_note . “C/W 45° END CHAMS” “`n”
ext_note:=ext_note . “MAJORØ ” major_d_max “/” major_d_min “`n”
ext_note:=ext_note . “PITCHØ ” pitch_d_max “/” pitch_d_min “`n”
ext_note:=ext_note . “MINORØ ” minor_d_max “/” minor_d_min
return ext_note
}

a_get_int_note(nom_diameter, TPI) {
SetFormat, FloatFast, 0.3
pitch:=1/TPI
if TPI<=10 major_d_offset:=.02 if TPI>10
major_d_offset:=.01
major_d_min:=nom_diameter+major_d_offset
pdt:=.006*sqrt(nom_diameter)+.03*sqrt(1/TPI)
major_d_max:=major_d_min+major_d_offset
pitch_d_min:=nom_diameter-.5*pitch
pitch_d_max:=pitch_d_min+pdt
minor_d_min:=nom_diameter-pitch
minor_d_max:=minor_d_min+.05*pitch
int_note:=nom_diameter “-” TPI ” ACME-2G” “`n”
int_note:=int_note . “C/W 45° END CHAMS” “`n”
int_note:=int_note . “MINORØ ” minor_d_min “/” minor_d_max “`n”
int_note:=int_note . “PITCHØ ” pitch_d_min “/” pitch_d_max “`n”
int_note:=int_note . “MAJORØ ” major_d_min “/” major_d_max
return int_note
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s