Sign in with STEVE

steve/inch-specialty-nut

Inch lock, flange and acorn nuts: nylon-insert and all-metal (ASME B18.16.6), hex flange (ASME B18.2.2), acorn (SAE J483).

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 88 lines · Python · STEVE runtime · checked
Download
1"""Inch specialty nuts, Unified threads: nylon-insert and all-metal prevailing-torque lock nuts (ASME B18.16.6),
2hex flange nuts (ASME B18.2.2 Table 12) and low-crown acorn nuts (SAE J483).
3
4Envelope models for assemblies, axis along +Z, sitting on the XY plane, centred on the origin; the thread is not
5modelled (a bore at the ASME B1.1 basic major diameter D) and corner chamfers are not modelled:
6- nylon, all-metal: a hex prism, width across flats F (max), height H (max, overall; the nylon collar and the
7 all-metal nut's locking crimp are within it and not modelled separately);
8- flange: a flange disc dc (max) x c (min, the flange's edge thickness) under a hex prism F (max) up to the overall
9 thickness m (max); the flange's taper from its edge up to the hex is not modelled; bore through;
10- acorn: a hex prism F (max) x Q (hex height), then the crown: a body of diameter A to the overall height H, its top
11 rounded with the body radius S (the nose radius R is not modelled); a blind bore of depth T (max drill depth).
12The model is in millimetres (1 in = 25.4 mm); the tables are in inches as in the sources.
13"""
14import math
15
16from steve import Model
17
18size = "1/4-20" # Thread (Unified, ASME B1.1)
19style = "nylon" # Nut style
20material = "steel" # Material
21
22THREADS = {
23 "#2-56": "#2", "#4-40": "#4", "#6-32": "#6", "#8-32": "#8", "#10-24": "#10", "#10-32": "#10",
24 "1/4-20": "1/4", "1/4-28": "1/4", "5/16-18": "5/16", "5/16-24": "5/16", "3/8-16": "3/8", "3/8-24": "3/8",
25 "1/2-13": "1/2", "1/2-20": "1/2",
26}
27# Inches. ASME B1.1 basic major diameter D.
28DIAMETERS = {"#2": 0.086, "#4": 0.112, "#6": 0.138, "#8": 0.164, "#10": 0.19, "1/4": 0.25, "5/16": 0.3125,
29 "3/8": 0.375, "1/2": 0.5}
30# ASME B18.16.6-2017 nylon-insert lock nuts, standard height: style NM (#2-#10) and NE (1/4-1/2): (s max, h max)
31NYLON = {"#2": (0.251, 0.153), "#4": (0.251, 0.153), "#6": (0.313, 0.188), "#8": (0.345, 0.239),
32 "#10": (0.376, 0.249), "1/4": (0.439, 0.328), "5/16": (0.502, 0.359), "3/8": (0.564, 0.468),
33 "1/2": (0.752, 0.609)}
34# ASME B18.16.6-2017 prevailing-torque all-metal hex nuts: (s max, h max)
35ALL_METAL = {"#4": (0.251, 0.163), "#6": (0.313, 0.171), "#8": (0.345, 0.191), "#10": (0.376, 0.241),
36 "1/4": (0.4385, 0.288), "5/16": (0.502, 0.336), "3/8": (0.5645, 0.415), "1/2": (0.752, 0.573)}
37# ASME B18.2.2-2015 Table 12 hex flange nuts: (s max, dc max, m max, c min)
38FLANGE = {"#6": (0.312, 0.422, 0.171, 0.02), "#8": (0.344, 0.469, 0.203, 0.02), "#10": (0.375, 0.5, 0.219, 0.03),
39 "1/4": (0.438, 0.594, 0.236, 0.04), "5/16": (0.5, 0.68, 0.283, 0.04), "3/8": (0.562, 0.75, 0.347, 0.04),
40 "1/2": (0.75, 1.031, 0.458, 0.05)}
41# SAE J483 low-crown acorn nuts: (F max, Q hex height, A body diameter, H overall height, S body radius, T max drill
42# depth)
43ACORN = {"#6": (0.3125, 0.16, 0.30, 0.34, 0.17, 0.25), "#8": (0.3125, 0.16, 0.30, 0.34, 0.17, 0.25),
44 "#10": (0.375, 0.19, 0.36, 0.41, 0.22, 0.28), "1/4": (0.4375, 0.22, 0.41, 0.47, 0.25, 0.34),
45 "5/16": (0.5, 0.25, 0.47, 0.53, 0.28, 0.41), "3/8": (0.5625, 0.28, 0.53, 0.62, 0.33, 0.45),
46 "1/2": (0.75, 0.38, 0.72, 0.81, 0.42, 0.59)}
47MATERIALS = {
48 "steel": ("steel-generic", "#b8bcc2"), # carbon steel, zinc plated
49 "stainless-18-8": ("stainless-304", "#c9ccd0"),
50}
51INCH = 25.4
52
53nominal = THREADS[size]
54d = DIAMETERS[nominal] * INCH
55material_id, colour = MATERIALS[material]
56tables = {"nylon": NYLON, "all-metal": ALL_METAL, "flange": FLANGE, "acorn": ACORN}
57if nominal not in tables[style]:
58 raise ValueError(f"No {style} nut for {nominal} in the sourced table.")
59row = [v * INCH for v in tables[style][nominal]]
60
61model = Model()
62if style in ("nylon", "all-metal"):
63 F, H = row
64 with model.sketch("nut_sketch", on="XY", name="Nut") as sk:
65 sk.polygon("hex", (0, 0), F / 2, 6, inscribed=False)
66 sk.circle("bore", (0, 0), d / 2)
67 model.extrude("nut", "nut_sketch", distance=H, name="Nut")
68elif style == "flange":
69 F, dc, m, c = row
70 model.cylinder("flange", dc / 2, c, name="Flange")
71 model.plane("hex_plane", on="XY", offset=c, name="Flange top")
72 with model.sketch("hex_sketch", on="hex_plane", name="Hex") as sk:
73 sk.polygon("hex", (0, 0), F / 2, 6, inscribed=False)
74 model.extrude("hex", "hex_sketch", distance=m - c, op="join", name="Hex")
75 model.cylinder("bore", d / 2, m, op="cut", name="Bore")
76else:
77 F, Q, A, H, S, T = row
78 with model.sketch("hex_sketch", on="XY", name="Hex") as sk:
79 sk.polygon("hex", (0, 0), F / 2, 6, inscribed=False)
80 model.extrude("hex", "hex_sketch", distance=Q, name="Hex")
81 model.cylinder("crown", A / 2, H - Q, at=(0, 0, Q), op="new", name="Crown")
82 model.sphere("dome", S, at=(0, 0, H - S), op="new", name="Dome")
83 model.combine("crown_shape", "crown", ["dome"], op="intersect", name="Crown shape")
84 model.combine("nut", "hex", ["crown"], op="join", name="Nut")
85 model.cylinder("bore", d / 2, T, op="cut", name="Bore")
86model.material(material_id, color=colour)
87result = model.result()
88

Specialty nuts for Unified inch threads #2-56 to 1/2-20: nylon-insert lock nuts (ASME B18.16.6 styles NM and NE, standard height), prevailing-torque all-metal hex lock nuts (ASME B18.16.6), hex flange nuts (ASME B18.2.2 Table 12) and low-crown acorn (cap) nuts (SAE J483). Envelope geometry for assemblies at the tables' maximum sizes; the thread is a plain bore at the ASME B1.1 basic major diameter. It sits on the XY plane, centred on the origin, axis along +Z (the model is in millimetres). Dimensions: see the README.

Inch specialty nuts (ASME B18.16.6 / B18.2.2 / SAE J483)

Nylon-insert and all-metal lock nuts, hex flange nuts and acorn (cap) nuts for Unified inch threads #2-56 to 1/2-20. Presets cover the catalogue's inch nylon-insert, all-metal, flange and acorn nuts.

Geometry

Envelope for assemblies at the tables' maximum sizes. Axis along +Z, sitting on the XY plane, centred on the origin; a hexagon's corners point along X. The thread is a plain bore at the ASME B1.1 basic major diameter D (not modelled); corner chamfers are not modelled. The model is in millimetres (1 in = 25.4 mm).

  • nylon, all-metal: a hex prism, width across flats s (max), overall height h (max). The nylon insert's collar and the all-metal nut's locking deformation lie within that envelope and are not modelled.
  • flange: a flange disc dc (max) × c (min, the flange's edge thickness) under a hex prism s (max) up to the overall thickness m (max). The flange's taper from its edge up to the hex is not modelled.
  • acorn: a hex prism F (max) × Q (hex height); above it the crown, a body of diameter A up to the overall height H whose top is rounded with the body radius S (a sphere of radius S whose top is at H; the nose radius R is not modelled); a blind bore T (max drill depth) deep.

Parameters

Parameter Meaning
size Thread, #2-56 to 1/2-20 (UNC and UNF)
style nylon (#2 and up), all-metal (#4 and up), flange (#6 and up), acorn (#6 and up)
material steel (zinc plated), stainless-18-8 (304)

Sources

Values in inches, as printed. Copies consulted: globalfastener.com's reproductions of the ASME tables (dimension facts), cross-checked as noted.

  • Nylon-insert lock nuts: ASME B18.16.6-2017, style NM (machine-screw sizes, standard height; https://www.globalfastener.com/standards/detail_4855.html) and style NE (standard height; https://www.globalfastener.com/standards/detail_4859.html). Cross-checks: Conquest Fasteners "NE Nylon Insert Locknuts" specification p. 1 (https://www.fastenersplus.com/cdn/shop/files/CQ-NE-Locknuts-Spec.pdf) agrees on NE h and m; Albany County Fasteners "US Nylon Inserted Hex Lock Nut Size Chart" (2023) agrees on NM s max and h max. Disagreement (not used by the model): NE s min 5/16 .489, 3/8 .551, 1/2 .736 on the NE page against .492, .553, .741 in Conquest's sheet.
  • All-metal lock nuts: ASME B18.16.6-2017, "Prevailing Torque All-Metal Type Hex Nuts" (https://www.globalfastener.com/standards/detail_4852.html).
  • Hex flange nuts: ASME B18.2.2-2015 Table 12 "Hex Flange Nuts" (https://www.globalfastener.com/standards/detail_4555.html).
  • Acorn nuts: SAE J483a, low crown, as reproduced by AmesWeb "Acorn Nut Dimensions (Inch Series)", which cites SAE J483a via Machinery's Handbook, 30th edition (https://amesweb.info/Fasteners/NutsInchSeries/AcornHighLowCrownNutDimensions.aspx). Cross-check: Kent Automotive grade 2 acorn nuts (https://www.kent-automotive.com/collections/acorn-nuts-wf4510/products.json) agree on the overall height H and the thread depth for #6 to 1/2.
Size D Nylon s × h All-metal s × h Flange s / dc / m / c Acorn F / Q / A / H / S / T
#2 .086 .251 × .153 (NM) – – –
#4 .112 .251 × .153 (NM) .251 × .163 – –
#6 .138 .313 × .188 (NM) .313 × .171 .312 / .422 / .171 / .02 .3125 / .16 / .30 / .34 / .17 / .25
#8 .164 .345 × .239 (NM) .345 × .191 .344 / .469 / .203 / .02 .3125 / .16 / .30 / .34 / .17 / .25
#10 .190 .376 × .249 (NM) .376 × .241 .375 / .500 / .219 / .03 .375 / .19 / .36 / .41 / .22 / .28
1/4 .250 .439 × .328 (NE) .4385 × .288 .438 / .594 / .236 / .04 .4375 / .22 / .41 / .47 / .25 / .34
5/16 .3125 .502 × .359 (NE) .5020 × .336 .500 / .680 / .283 / .04 .500 / .25 / .47 / .53 / .28 / .41
3/8 .375 .564 × .468 (NE) .5645 × .415 .562 / .750 / .347 / .04 .5625 / .28 / .53 / .62 / .33 / .45
1/2 .500 .752 × .609 (NE) .7520 × .573 .750 / 1.031 / .458 / .05 .750 / .38 / .72 / .81 / .42 / .59

D: ASME B1.1 basic major diameter. Not covered (no source has them): #0 in every style; #2 all-metal, flange and acorn; #4 flange and acorn (an 18-8 #4-40 acorn nut is sold, but no source gives its crown).

Preset list: sizes of the step.parts catalogue (MIT), see library/NOTICE.md.

  1. 1.0.0 Latest
More #fastener
STEVEMIT

steve/inch-nut

Hex, jam and square nuts, inch, ASME B18.2.2: machine screw nuts #0 to #10, hex, jam and square nuts 1/4 to 1/2 in.

0 38 sizes 0 1 day ago v1.0.0
STEVEMIT

steve/metric-nut

Metric nuts: hex ISO 4032, thin ISO 4035, nylon-insert DIN 985, all-metal DIN 980, flange DIN 6923, cap DIN 1587, square DIN 557.

0 41 sizes 0 1 day ago v1.0.0
STEVEMIT

steve/hex-nut

Hex nut, ISO 4032, M2 to M12.

7 9 variants 0 2 days ago v1.1.0
STEVEMIT

steve/inch-button-head-screw

Button head socket cap screw, inch, ASME B18.3, #0 to 1/2 in, UNC/UNF, any length, with catalogue sizes as presets.

0 112 sizes 0 1 day ago v1.0.0