steve/cotter-pin
Cotter pin (split pin), nominal 1 to 5 mm, any length: simplified envelope measured from step.parts' models.
Clevis pin with head, ISO 2341 / DIN 1444, type A or B (split-pin hole), d 4 to 24 mm, any length.
| 1 | """Clevis pin with head, ISO 2341 (DIN 1444), type A (plain) or type B (with split-pin hole), d 4 to 24 mm. |
| 2 | |
| 3 | Head of diameter dk and height k, shank of the nominal diameter d and length l under the head; type B has a |
| 4 | cross hole d1 for a split pin whose axis is le (min) from the end. Head edge radius and end chamfer are not |
| 5 | modelled. The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z; the cross |
| 6 | hole runs along Y. |
| 7 | """ |
| 8 | from steve import Model |
| 9 | |
| 10 | diameter = 8 # mm Nominal diameter d |
| 11 | length = 30 # mm Length l under the head |
| 12 | pin_type = "B" # Type: A plain, B with split-pin hole |
| 13 | material = "steel" # Material |
| 14 | |
| 15 | # ISO 2341:1986 table (https://www.globalfastener.com/standards/detail_252.html; https://www.fasteners.eu/standards/ISO/2341/). d: (head diameter dk, head height k, split-pin hole d1, hole axis to end le min) |
| 16 | DIMENSIONS = { |
| 17 | 4: (6.0, 1.0, 1.0, 2.2), 5: (8.0, 1.6, 1.2, 2.9), 6: (10.0, 2.0, 1.6, 3.2), 8: (14.0, 3.0, 2.0, 3.5), |
| 18 | 10: (18.0, 4.0, 3.2, 4.5), 12: (20.0, 4.0, 3.2, 5.5), 14: (22.0, 4.0, 4.0, 6.0), 16: (25.0, 4.5, 4.0, 6.0), |
| 19 | 18: (28.0, 5.0, 5.0, 7.0), 20: (30.0, 5.0, 5.0, 8.0), 22: (33.0, 5.5, 5.0, 8.0), 24: (36.0, 6.0, 6.3, 9.0), |
| 20 | } |
| 21 | # material choice: (STEVE material library id, appearance colour) |
| 22 | MATERIALS = { |
| 23 | "steel": ("steel-generic", "#b4b7bb"), |
| 24 | "stainless-a2": ("stainless-304", "#c9ccd0"), |
| 25 | } |
| 26 | |
| 27 | if diameter not in DIMENSIONS: |
| 28 | raise ValueError(f"ISO 2341 has no diameter {diameter} mm") |
| 29 | dk, k, d1, le = DIMENSIONS[diameter] |
| 30 | if pin_type == "B" and length < le + d1: |
| 31 | raise ValueError(f"a type B pin needs a length of at least {le + d1} mm for its split-pin hole") |
| 32 | material_id, colour = MATERIALS[material] |
| 33 | |
| 34 | model = Model() |
| 35 | with model.sketch("head_sketch", on="XY", name="Head") as sk: |
| 36 | sk.circle("head_circle", (0, 0), dk / 2) |
| 37 | model.extrude("head", "head_sketch", distance=k, name="Head") |
| 38 | with model.sketch("shank_sketch", on="XY", name="Shank") as sk: |
| 39 | sk.circle("shank_circle", (0, 0), diameter / 2) |
| 40 | model.extrude("shank", "shank_sketch", distance=-length, name="Shank") |
| 41 | if pin_type == "B": |
| 42 | model.cylinder("split_pin_hole", d1 / 2, 2 * diameter, at=(0, -diameter, le - length), direction=(0, 1, 0), |
| 43 | op="cut", name="Split-pin hole") |
| 44 | model.material(material_id, color=colour) |
| 45 | result = model.result() |
| 46 |
| 1 | name = "steve/clevis-pin" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Clevis pin with head, ISO 2341 / DIN 1444, type A or B (split-pin hole), d 4 to 24 mm, any length." |
| 6 | description = """ISO 2341 (DIN 1444) clevis pin with head: head dk x k, shank of nominal diameter d and length l under \ |
| 7 | the head, and for type B a split-pin hole d1 at le from the end, with catalogue sizes as presets. |
| 8 | |
| 9 | The head's bearing face is on the XY plane at the origin and the shank points along -Z. Dimensions from ISO 2341 \ |
| 10 | (see the README).""" |
| 11 | tags = ["pin", "clevis-pin", "iso-2341", "din-1444", "metric"] |
| 12 | |
| 13 | [parameters.diameter] |
| 14 | type = "choice" |
| 15 | default = 8 |
| 16 | choices = [4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24] |
| 17 | label = "Diameter" |
| 18 | description = "Nominal diameter d, mm." |
| 19 | |
| 20 | [parameters.length] |
| 21 | type = "number" |
| 22 | default = 30 |
| 23 | min = 4 |
| 24 | max = 200 |
| 25 | unit = "mm" |
| 26 | label = "Length" |
| 27 | description = "Length l under the head." |
| 28 | |
| 29 | [parameters.pin_type] |
| 30 | type = "choice" |
| 31 | default = "B" |
| 32 | choices = ["A", "B"] |
| 33 | label = "Type" |
| 34 | description = "A: plain; B: with a split-pin hole." |
| 35 | |
| 36 | [parameters.material] |
| 37 | type = "choice" |
| 38 | default = "steel" |
| 39 | choices = ["steel", "stainless-a2"] |
| 40 | label = "Material" |
| 41 | |
| 42 | [[presets]] |
| 43 | id = "B-4x12" |
| 44 | title = "Ø4 × 12, type B" |
| 45 | params = { diameter = 4, length = 12, pin_type = "B" } |
| 46 | aliases = ["ISO 2341 B 4x12", "DIN 1444 B 4x12", "clevis pin 4x12"] |
| 47 | standard = "ISO 2341" |
| 48 | |
| 49 | [[presets]] |
| 50 | id = "B-4x16" |
| 51 | title = "Ø4 × 16, type B" |
| 52 | params = { diameter = 4, length = 16, pin_type = "B" } |
| 53 | aliases = ["ISO 2341 B 4x16", "DIN 1444 B 4x16", "clevis pin 4x16"] |
| 54 | standard = "ISO 2341" |
| 55 | |
| 56 | [[presets]] |
| 57 | id = "B-4x20" |
| 58 | title = "Ø4 × 20, type B" |
| 59 | params = { diameter = 4, length = 20, pin_type = "B" } |
| 60 | aliases = ["ISO 2341 B 4x20", "DIN 1444 B 4x20", "clevis pin 4x20"] |
| 61 | standard = "ISO 2341" |
| 62 | |
| 63 | [[presets]] |
| 64 | id = "B-4x25" |
| 65 | title = "Ø4 × 25, type B" |
| 66 | params = { diameter = 4, length = 25, pin_type = "B" } |
| 67 | aliases = ["ISO 2341 B 4x25", "DIN 1444 B 4x25", "clevis pin 4x25"] |
| 68 | standard = "ISO 2341" |
| 69 | |
| 70 | [[presets]] |
| 71 | id = "B-4x30" |
| 72 | title = "Ø4 × 30, type B" |
| 73 | params = { diameter = 4, length = 30, pin_type = "B" } |
| 74 | aliases = ["ISO 2341 B 4x30", "DIN 1444 B 4x30", "clevis pin 4x30"] |
| 75 | standard = "ISO 2341" |
| 76 | |
| 77 | [[presets]] |
| 78 | id = "B-5x16" |
| 79 | title = "Ø5 × 16, type B" |
| 80 | params = { diameter = 5, length = 16, pin_type = "B" } |
| 81 | aliases = ["ISO 2341 B 5x16", "DIN 1444 B 5x16", "clevis pin 5x16"] |
| 82 | standard = "ISO 2341" |
| 83 | |
| 84 | [[presets]] |
| 85 | id = "B-5x20" |
| 86 | title = "Ø5 × 20, type B" |
| 87 | params = { diameter = 5, length = 20, pin_type = "B" } |
| 88 | aliases = ["ISO 2341 B 5x20", "DIN 1444 B 5x20", "clevis pin 5x20"] |
| 89 | standard = "ISO 2341" |
| 90 | |
| 91 | [[presets]] |
| 92 | id = "B-5x25" |
| 93 | title = "Ø5 × 25, type B" |
| 94 | params = { diameter = 5, length = 25, pin_type = "B" } |
| 95 | aliases = ["ISO 2341 B 5x25", "DIN 1444 B 5x25", "clevis pin 5x25"] |
| 96 | standard = "ISO 2341" |
| 97 | |
| 98 | [[presets]] |
| 99 | id = "B-5x30" |
| 100 | title = "Ø5 × 30, type B" |
| 101 | params = { diameter = 5, length = 30, pin_type = "B" } |
| 102 | aliases = ["ISO 2341 B 5x30", "DIN 1444 B 5x30", "clevis pin 5x30"] |
| 103 | standard = "ISO 2341" |
| 104 | |
| 105 | [[presets]] |
| 106 | id = "B-5x40" |
| 107 | title = "Ø5 × 40, type B" |
| 108 | params = { diameter = 5, length = 40, pin_type = "B" } |
| 109 | aliases = ["ISO 2341 B 5x40", "DIN 1444 B 5x40", "clevis pin 5x40"] |
| 110 | standard = "ISO 2341" |
| 111 | |
| 112 | [[presets]] |
| 113 | id = "B-6x20" |
| 114 | title = "Ø6 × 20, type B" |
| 115 | params = { diameter = 6, length = 20, pin_type = "B" } |
| 116 | aliases = ["ISO 2341 B 6x20", "DIN 1444 B 6x20", "clevis pin 6x20"] |
| 117 | standard = "ISO 2341" |
| 118 | |
| 119 | [[presets]] |
| 120 | id = "B-6x25" |
| 121 | title = "Ø6 × 25, type B" |
| 122 | params = { diameter = 6, length = 25, pin_type = "B" } |
| 123 | aliases = ["ISO 2341 B 6x25", "DIN 1444 B 6x25", "clevis pin 6x25"] |
| 124 | standard = "ISO 2341" |
| 125 | |
| 126 | [[presets]] |
| 127 | id = "B-6x30" |
| 128 | title = "Ø6 × 30, type B" |
| 129 | params = { diameter = 6, length = 30, pin_type = "B" } |
| 130 | aliases = ["ISO 2341 B 6x30", "DIN 1444 B 6x30", "clevis pin 6x30"] |
| 131 | standard = "ISO 2341" |
| 132 | |
| 133 | [[presets]] |
| 134 | id = "B-6x40" |
| 135 | title = "Ø6 × 40, type B" |
| 136 | params = { diameter = 6, length = 40, pin_type = "B" } |
| 137 | aliases = ["ISO 2341 B 6x40", "DIN 1444 B 6x40", "clevis pin 6x40"] |
| 138 | standard = "ISO 2341" |
| 139 | |
| 140 | [[presets]] |
| 141 | id = "B-6x50" |
| 142 | title = "Ø6 × 50, type B" |
| 143 | params = { diameter = 6, length = 50, pin_type = "B" } |
| 144 | aliases = ["ISO 2341 B 6x50", "DIN 1444 B 6x50", "clevis pin 6x50"] |
| 145 | standard = "ISO 2341" |
| 146 | |
| 147 | [[presets]] |
| 148 | id = "B-8x25" |
| 149 | title = "Ø8 × 25, type B" |
| 150 | params = { diameter = 8, length = 25, pin_type = "B" } |
| 151 | aliases = ["ISO 2341 B 8x25", "DIN 1444 B 8x25", "clevis pin 8x25"] |
| 152 | standard = "ISO 2341" |
| 153 | |
| 154 | [[presets]] |
| 155 | id = "B-8x30" |
| 156 | title = "Ø8 × 30, type B" |
| 157 | params = { diameter = 8, length = 30, pin_type = "B" } |
| 158 | aliases = ["ISO 2341 B 8x30", "DIN 1444 B 8x30", "clevis pin 8x30"] |
| 159 | standard = "ISO 2341" |
| 160 | |
| 161 | [[presets]] |
| 162 | id = "B-8x40" |
| 163 | title = "Ø8 × 40, type B" |
| 164 | params = { diameter = 8, length = 40, pin_type = "B" } |
| 165 | aliases = ["ISO 2341 B 8x40", "DIN 1444 B 8x40", "clevis pin 8x40"] |
| 166 | standard = "ISO 2341" |
| 167 | |
| 168 | [[presets]] |
| 169 | id = "B-8x50" |
| 170 | title = "Ø8 × 50, type B" |
| 171 | params = { diameter = 8, length = 50, pin_type = "B" } |
| 172 | aliases = ["ISO 2341 B 8x50", "DIN 1444 B 8x50", "clevis pin 8x50"] |
| 173 | standard = "ISO 2341" |
| 174 | |
| 175 | [[presets]] |
| 176 | id = "B-10x30" |
| 177 | title = "Ø10 × 30, type B" |
| 178 | params = { diameter = 10, length = 30, pin_type = "B" } |
| 179 | aliases = ["ISO 2341 B 10x30", "DIN 1444 B 10x30", "clevis pin 10x30"] |
| 180 | standard = "ISO 2341" |
| 181 | |
| 182 | [[presets]] |
| 183 | id = "B-10x40" |
| 184 | title = "Ø10 × 40, type B" |
| 185 | params = { diameter = 10, length = 40, pin_type = "B" } |
| 186 | aliases = ["ISO 2341 B 10x40", "DIN 1444 B 10x40", "clevis pin 10x40"] |
| 187 | standard = "ISO 2341" |
| 188 | |
| 189 | [[presets]] |
| 190 | id = "B-10x50" |
| 191 | title = "Ø10 × 50, type B" |
| 192 | params = { diameter = 10, length = 50, pin_type = "B" } |
| 193 | aliases = ["ISO 2341 B 10x50", "DIN 1444 B 10x50", "clevis pin 10x50"] |
| 194 | standard = "ISO 2341" |
| 195 | |
| 196 | [[presets]] |
| 197 | id = "B-12x40" |
| 198 | title = "Ø12 × 40, type B" |
| 199 | params = { diameter = 12, length = 40, pin_type = "B" } |
| 200 | aliases = ["ISO 2341 B 12x40", "DIN 1444 B 12x40", "clevis pin 12x40"] |
| 201 | standard = "ISO 2341" |
| 202 | |
| 203 | [[presets]] |
| 204 | id = "B-12x50" |
| 205 | title = "Ø12 × 50, type B" |
| 206 | params = { diameter = 12, length = 50, pin_type = "B" } |
| 207 | aliases = ["ISO 2341 B 12x50", "DIN 1444 B 12x50", "clevis pin 12x50"] |
| 208 | standard = "ISO 2341" |
| 209 |
Clevis pin with head, type A (plain) or type B (with a split-pin hole), d 4 to 24 mm, any length, with catalogue sizes as presets (type B).
Head of diameter dk and height k; shank of the nominal diameter d and length l under the head; for type B a cross hole d1 for the split pin, its axis le (min) from the end. The head's edge radius and the shank's end chamfer are not modelled. The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z; the cross hole runs along Y.
| Parameter | Meaning |
|---|---|
diameter |
Nominal diameter d, mm |
length |
Length l under the head, mm |
pin_type |
A plain, B with split-pin hole |
material |
steel, stainless-a2 |
ISO 2341:1986, Clevis pins with head, dimension table: dk (h14), k (js14), d1 (H13), le min (mm), read from the reproductions at https://www.globalfastener.com/standards/detail_252.html (with the tolerance limits, which confirm k 5.5 for d 22 and 6 for d 24) and https://www.fasteners.eu/standards/ISO/2341/. fasten.it's DIN EN 22341:1992-10 page gives k 5 and 6.3 for d 22 and 24 (the d1 values, apparently shifted into the k column); the ISO 2341 values are used.
| d | dk | k | d1 | le min |
|---|---|---|---|---|
| 4 | 6 | 1 | 1 | 2.2 |
| 5 | 8 | 1.6 | 1.2 | 2.9 |
| 6 | 10 | 2 | 1.6 | 3.2 |
| 8 | 14 | 3 | 2 | 3.5 |
| 10 | 18 | 4 | 3.2 | 4.5 |
| 12 | 20 | 4 | 3.2 | 5.5 |
| 14 | 22 | 4 | 4 | 6 |
| 16 | 25 | 4.5 | 4 | 6 |
| 18 | 28 | 5 | 5 | 7 |
| 20 | 30 | 5 | 5 | 8 |
| 22 | 33 | 5.5 | 5 | 8 |
| 24 | 36 | 6 | 6.3 | 9 |
Preset list: sizes of the step.parts catalogue (MIT), see library/NOTICE.md. The catalogue's generic clevis pins name no standard; their presets are ISO 2341 type B. Its 3 mm pins have no preset (the table starts at d = 4).
| 1 | # Clevis pin with head (ISO 2341 / DIN 1444) |
| 2 | |
| 3 | Clevis pin with head, type A (plain) or type B (with a split-pin hole), d 4 to 24 mm, any length, with catalogue |
| 4 | sizes as presets (type B). |
| 5 | |
| 6 | ## Geometry |
| 7 | |
| 8 | Head of diameter **dk** and height **k**; shank of the nominal diameter **d** and length **l** under the head; for |
| 9 | type B a cross hole **d1** for the split pin, its axis **le** (min) from the end. The head's edge radius and the |
| 10 | shank's end chamfer are not modelled. The head's bearing face is on the XY plane at the origin, the head above it, |
| 11 | the shank along -Z; the cross hole runs along Y. |
| 12 | |
| 13 | ## Parameters |
| 14 | |
| 15 | | Parameter | Meaning | |
| 16 | |---|---| |
| 17 | | `diameter` | Nominal diameter d, mm | |
| 18 | | `length` | Length l under the head, mm | |
| 19 | | `pin_type` | `A` plain, `B` with split-pin hole | |
| 20 | | `material` | `steel`, `stainless-a2` | |
| 21 | |
| 22 | ## Source |
| 23 | |
| 24 | ISO 2341:1986, *Clevis pins with head*, dimension table: dk (h14), k (js14), d1 (H13), le min (mm), read from the |
| 25 | reproductions at <https://www.globalfastener.com/standards/detail_252.html> (with the tolerance limits, which confirm k 5.5 for d 22 and 6 for d 24) and |
| 26 | <https://www.fasteners.eu/standards/ISO/2341/>. fasten.it's DIN EN 22341:1992-10 page gives k 5 and 6.3 for d 22 and 24 (the d1 values, |
| 27 | apparently shifted into the k column); the ISO 2341 values are used. |
| 28 | |
| 29 | | d | dk | k | d1 | le min | |
| 30 | |---|---|---|---|---| |
| 31 | | 4 | 6 | 1 | 1 | 2.2 | |
| 32 | | 5 | 8 | 1.6 | 1.2 | 2.9 | |
| 33 | | 6 | 10 | 2 | 1.6 | 3.2 | |
| 34 | | 8 | 14 | 3 | 2 | 3.5 | |
| 35 | | 10 | 18 | 4 | 3.2 | 4.5 | |
| 36 | | 12 | 20 | 4 | 3.2 | 5.5 | |
| 37 | | 14 | 22 | 4 | 4 | 6 | |
| 38 | | 16 | 25 | 4.5 | 4 | 6 | |
| 39 | | 18 | 28 | 5 | 5 | 7 | |
| 40 | | 20 | 30 | 5 | 5 | 8 | |
| 41 | | 22 | 33 | 5.5 | 5 | 8 | |
| 42 | | 24 | 36 | 6 | 6.3 | 9 | |
| 43 | |
| 44 | Preset list: sizes of the step.parts catalogue (MIT), see `library/NOTICE.md`. The catalogue's generic clevis pins name no standard; their presets are ISO 2341 type B. Its 3 mm pins have no preset (the table starts at d = 4). |
| 45 |
ISO 2341 (DIN 1444) clevis pin with head: head dk x k, shank of nominal diameter d and length l under the head, and for type B a split-pin hole d1 at le from the end, with catalogue sizes as presets. The head's bearing face is on the XY plane at the origin and the shank points along -Z. Dimensions from ISO 2341 (see the README).
Clevis pin with head, type A (plain) or type B (with a split-pin hole), d 4 to 24 mm, any length, with catalogue sizes as presets (type B).
Head of diameter dk and height k; shank of the nominal diameter d and length l under the head; for type B a cross hole d1 for the split pin, its axis le (min) from the end. The head's edge radius and the shank's end chamfer are not modelled. The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z; the cross hole runs along Y.
| Parameter | Meaning |
|---|---|
diameter |
Nominal diameter d, mm |
length |
Length l under the head, mm |
pin_type |
A plain, B with split-pin hole |
material |
steel, stainless-a2 |
ISO 2341:1986, Clevis pins with head, dimension table: dk (h14), k (js14), d1 (H13), le min (mm), read from the reproductions at https://www.globalfastener.com/standards/detail_252.html (with the tolerance limits, which confirm k 5.5 for d 22 and 6 for d 24) and https://www.fasteners.eu/standards/ISO/2341/. fasten.it's DIN EN 22341:1992-10 page gives k 5 and 6.3 for d 22 and 24 (the d1 values, apparently shifted into the k column); the ISO 2341 values are used.
| d | dk | k | d1 | le min |
|---|---|---|---|---|
| 4 | 6 | 1 | 1 | 2.2 |
| 5 | 8 | 1.6 | 1.2 | 2.9 |
| 6 | 10 | 2 | 1.6 | 3.2 |
| 8 | 14 | 3 | 2 | 3.5 |
| 10 | 18 | 4 | 3.2 | 4.5 |
| 12 | 20 | 4 | 3.2 | 5.5 |
| 14 | 22 | 4 | 4 | 6 |
| 16 | 25 | 4.5 | 4 | 6 |
| 18 | 28 | 5 | 5 | 7 |
| 20 | 30 | 5 | 5 | 8 |
| 22 | 33 | 5.5 | 5 | 8 |
| 24 | 36 | 6 | 6.3 | 9 |
Preset list: sizes of the step.parts catalogue (MIT), see library/NOTICE.md. The catalogue's generic clevis pins name no standard; their presets are ISO 2341 type B. Its 3 mm pins have no preset (the table starts at d = 4).
Cotter pin (split pin), nominal 1 to 5 mm, any length: simplified envelope measured from step.parts' models.
Parallel pin (dowel pin), ISO 2338 / DIN 7, d 0.6 to 50 mm, any length.
Slotted spring pin (roll pin), heavy duty, ISO 8752 / DIN 1481, d 1 to 50 mm, any length.
Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.