Sign in with STEVE

steve/lead-screw-nut

T8 lead screw nut, brass: flanged, or anti-backlash with spring, for leads 2, 4 and 8 mm.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 47 lines · Python · STEVE runtime · checked
Download
1"""T8 lead screw nut, brass: the flanged nut, or the anti-backlash nut (flanged nut, spring and second nut). Axis along Z, the flange's face on the XY plane, the
2body below it. The internal thread isn't modelled: the bore is the screw's 8 mm. Dimensions from the seller's drawing in the README."""
3import math
4
5import cadquery as cq
6from steve import Model
7
8style = "flange" # flange or anti-backlash
9lead = 2 # mm Lead of the screw it fits (2, 4 or 8)
10detail = "full" # full: with holes and, for anti-backlash, the spring; simple: the nut's outline
11
12# Handson Technology data sheet MCH-1179, Anti-Backlash T-Nut for Lead Screw, Mechanical Dimension, p. 2, https://handsontec.com/dataspecs/Anti-backlash-T-nut.pdf
13FLANGE_D, FLANGE_T, BODY_D, LENGTH, PCD = 22, 4, 10.3, 15, 16 # the flanged nut
14COLLAR_D, COLLAR_T = 14, 4 # the second nut: a 14 mm collar 4 thick on the same 10.3 body, 15 long
15OVERALL = 50 # the anti-backlash nut over both nuts, the spring between them
16BORE = 8
17HOLE = 3.5 # four mounting holes for M3; the drawing's hole figure is unclear, so this is an M3 clearance, for looks
18if lead not in (2, 4, 8):
19 raise ValueError("The T8 nut fits leads 2, 4 and 8 (P2 with 1, 2 or 4 starts).")
20
21
22model = Model()
23first = cq.Workplane("XY").circle(FLANGE_D / 2).extrude(FLANGE_T).union(cq.Workplane("XY").workplane(offset=FLANGE_T - LENGTH).circle(BODY_D / 2).extrude(LENGTH - FLANGE_T), clean=False)
24first = first.cut(cq.Workplane("XY").workplane(offset=FLANGE_T - LENGTH - 1).circle(BORE / 2).extrude(LENGTH + 2))
25if detail == "full":
26 for k in range(4):
27 a = math.radians(90 * k)
28 first = first.cut(cq.Workplane("XY").workplane(offset=-1).center(PCD / 2 * math.cos(a), PCD / 2 * math.sin(a)).circle(HOLE / 2).extrude(FLANGE_T + 2))
29model.add("nut", first, op="new", body="nut_body", name="Flanged nut")
30bodies = ["nut_body"]
31if style == "anti-backlash":
32 bottom = FLANGE_T - OVERALL
33 second = cq.Workplane("XY").workplane(offset=bottom).circle(COLLAR_D / 2).extrude(COLLAR_T).union(cq.Workplane("XY").workplane(offset=bottom + COLLAR_T).circle(BODY_D / 2).extrude(LENGTH - COLLAR_T), clean=False)
34 second = second.cut(cq.Workplane("XY").workplane(offset=bottom - 1).circle(BORE / 2).extrude(LENGTH + 2))
35 model.add("second_nut", second, op="new", body="second_body", name="Second nut")
36 bodies.append("second_body")
37 if detail == "full":
38 start = bottom + COLLAR_T # the spring sits over the bodies, from the second nut's collar to the flange
39 wire = 0.8 # the spring's wire and coil count are proportions, for looks
40 height = -start
41 path = cq.Wire.makeHelix(height / 8, height - wire, COLLAR_D / 2 - wire).moved(cq.Location(cq.Vector(0, 0, start + wire / 2)))
42 spring = cq.Workplane("XZ").center(COLLAR_D / 2 - wire, start + wire / 2).circle(wire / 2).sweep(cq.Workplane(obj=path), isFrenet=True)
43 model.add("spring", spring, op="new", body="spring_body", name="Spring")
44 model.material("steel-generic", bodies=["spring_body"], color="#8c8f94")
45model.material("brass", bodies=bodies, color="#c9a14a")
46result = model.result()
47

T8 brass lead screw nut, flanged or anti-backlash (flanged nut, spring and second nut). The internal thread isn't modelled. Dimensions from a seller's drawing. See the README.

Lead screw nut

A T8 brass lead screw nut: flanged, or anti-backlash (flanged nut, spring and second nut). Axis along Z, the flange's face on the XY plane, the body below it.

Source

Handson Technology data sheet MCH-1179, Anti-Backlash T-Nut for Lead Screw, Mechanical Dimension, page 2, https://handsontec.com/dataspecs/Anti-backlash-T-nut.pdf:

  • Flanged nut: flange 22 across and 4 thick, body 10.3, 15 long, holes on a 16 circle.
  • Second nut: collar 14 across and 4 thick on the same 10.3 body, 15 long.
  • Anti-backlash nut: 50 overall, with a 40 spring.

This is a seller's drawing of a common unbranded nut, so check yours. The sheet shows Tr8x8; the same body is sold for leads 2, 4 and 8, so lead names the nut without changing its outline.

Not modelled: the internal thread (the bore is the screw's 8 mm) and the second nut's tabs. Proportions, for looks only: the mounting hole size (an M3 clearance, because the drawing's hole figure is unclear), and the spring's wire and coils.

T8 round and polymer nuts, and T10, Tr12 and Tr16 nuts, aren't here yet; see COVERAGE.md.

  1. 1.0.0 Latest
More #lead-screw
STEVEMIT

steve/lead-screw

Trapezoidal lead screw with a real thread: Tr8, Tr10, Tr12 and Tr16, leads 2 to 8 mm, any length.

1 85 sizes 0 2 hours ago v1.1.1
STEVEMIT

steve/hex-nut

Hex nut, ISO 4032, M2 to M12.

9 9 variants 0 4 days ago v1.1.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.

2 41 sizes 0 2 hours ago v1.3.1
STEVEMIT

steve/miniature-linear-guide

HIWIN MGN miniature linear guideway, sizes 7, 9, 12 and 15: rail (MGNR) or block (MGN-C / MGN-H).

1 11 sizes 0 2 hours ago v1.1.1