Sign in with STEVE

steve/cotter-pin

Cotter pin (split pin), nominal 1 to 5 mm, any length: simplified envelope measured from step.parts' models.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 35 lines · Python · STEVE runtime · checked
Download
1"""Cotter pin (split pin), simplified as step.parts' published models draw it: two round legs side by side and a round
2cross bar for the eye, nominal sizes 1 to 5 mm, any length.
3
4The legs (diameter d, the nominal size) run along +Z from z = 0 to the length l, their axes at x = +-e; the eye is a
5round bar of diameter d along X, 2d long, centred on the origin. There is no eye loop, no half-round wire and no
6point: see the README.
7"""
8from steve import Model
9
10size = "2" # Nominal size d (mm)
11length = 32 # mm Length l
12material = "steel" # Material
13
14# mm, measured on step.parts' models iso_1234_cotter_pin_d<d>_l<l>_simple (every face read: the legs' and the bar's
15# cylinder radii and axes): {d: (leg and bar diameter, leg axis offset e from the centre, bar length)}
16SIZES = {
17 "1": (1.0, 0.35, 2.0),
18 "1.6": (1.6, 0.56, 3.2),
19 "2": (2.0, 0.7, 4.0),
20 "2.5": (2.5, 0.875, 5.0),
21 "3.2": (3.2, 1.12, 6.4),
22 "4": (4.0, 1.4, 8.0),
23 "5": (5.0, 1.75, 10.0),
24}
25MATERIALS = {"steel": ("steel-generic", "#9da2a8"), "stainless": ("stainless-304", "#c9ccd0")}
26
27d, e, bar = SIZES[size]
28material_id, colour = MATERIALS[material]
29model = Model()
30model.cylinder("leg_1", d / 2, length, at=(e, 0, 0), name="Leg")
31model.cylinder("leg_2", d / 2, length, at=(-e, 0, 0), op="join", name="Leg")
32model.cylinder("eye", d / 2, bar, at=(-bar / 2, 0, 0), direction=(1, 0, 0), op="join", name="Eye")
33model.material(material_id, color=colour)
34result = model.result()
35

A simplified cotter pin (split pin) for assemblies, nominal sizes 1, 1.6, 2, 2.5, 3.2, 4 and 5 mm (the ISO 1234 sizes), any length: two round legs of the nominal diameter side by side and a round cross bar for the eye. Measured from step.parts' published models (MIT); ISO 1234 does not dimension the eye, so no drawing exists. Not the real wire shape: see the README. The legs run along +Z from z = 0 to the length, the eye bar along X centred on the origin.

Cotter pin (simplified)

A simplified cotter pin (split pin) for assemblies, nominal sizes 1, 1.6, 2, 2.5, 3.2, 4 and 5 mm (the ISO 1234 sizes), any length.

Geometry

Two round legs of the nominal diameter d, side by side (axes at x = ±e), along +Z from z = 0 to the length l, and a round bar of diameter d along X, 2d long, centred on the origin, standing for the eye. Overall: 2d × d × (l + d/2).

d Legs and bar Ø Leg axis offset e Bar length
1 1 0.35 2
1.6 1.6 0.56 3.2
2 2 0.7 4
2.5 2.5 0.875 5
3.2 3.2 1.12 6.4
4 4 1.4 8
5 5 1.75 10

Parameters

Parameter Meaning
size nominal size d (the hole diameter), mm
length l, mm (from the eye's centre line to the leg ends)
material steel (STEVE steel-generic) or stainless (stainless-304)

Sources

ISO 1234 gives d, a, b, c and l but not the eye's shape, and no maker publishes a dimensioned drawing of it: the geometry was measured from the published reference models below (every face read: the legs' and the bar's cylinder radii and axes; e = 0.35 d and the bar 2 d long in every size), and the recipe re-draws it in its own code. Every preset is checked against its own model: bounding box within 0.05 mm and volume within 2 %.

  • step.parts, iso_1234_cotter_pin_d<d>_l<l>_simple for d = 1 to 5 (https://www.step.parts, repository https://github.com/earthtojake/step.parts, commit c6113328, catalog/step/): step.parts' own "analytic simplified" models, original project material under the repository's MIT licence (© 2026 earthtojake; no third-party source is recorded for them in its THIRD_PARTY_NOTICES.md or catalogue).

Simplifications (the models'): the legs are full round rods of the nominal diameter (a real pin is a half-round wire somewhat thinner than the hole), the eye is a straight bar instead of a loop, and there is no point or bent-out leg. Use it as an envelope in assemblies, not for the wire's dimensions.

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

  1. 1.0.0 Latest
More #cotter-pin
STEVEMIT

steve/hex-head-screw

Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.

18 85 sizes 0 1 day ago v2.0.0
STEVEMIT

steve/button-head-screw

Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length, with catalogue sizes as presets.

10 65 sizes 0 1 day ago v2.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/split-lock-washer

Split lock washer (spring washer), DIN 127 form B, M2 to M100.

3 21 sizes 0 1 day ago v1.0.0