steve/hex-head-screw
Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.
Spring plungers M3 to M10: Elesa+Ganter GN 615-K ball spring plungers and GN 615.1-B bolt spring plungers.
| 1 | """Spring plungers, steel, Elesa+Ganter: GN 615-K ball spring plungers and GN 615.1-B bolt spring plungers. |
| 2 | |
| 3 | A threaded body (drawn as a cylinder at the thread's nominal diameter d1; thread and screwdriver slot not modelled) of |
| 4 | length l, axis along +Z from z = 0, and at its top the plunger standing out by w: a ball of diameter d2 (its top at |
| 5 | l + w) or a bolt of diameter d2 (a cylinder to l + w; its rounded end is not dimensioned and drawn flat). |
| 6 | """ |
| 7 | from steve import Model |
| 8 | |
| 9 | size = "M6" # Thread d1 |
| 10 | style = "ball" # Plunger |
| 11 | material = "steel" # Material |
| 12 | |
| 13 | NOMINAL = {"M3": 3.0, "M4": 4.0, "M5": 5.0, "M6": 6.0, "M8": 8.0, "M10": 10.0} |
| 14 | # mm. GN 615-K (11/2025): (ball d2, body l, protrusion w) |
| 15 | BALL = {"M3": (1.5, 7, 0.4), "M4": (2.5, 9, 0.8), "M5": (3, 12, 0.9), "M6": (3.5, 14, 1.0), "M8": (4.5, 16, 1.5), |
| 16 | "M10": (6, 19, 2.0)} |
| 17 | # mm. GN 615.1-B (10/2025): (bolt d2, body l, protrusion w) |
| 18 | BOLT = {"M4": (1.8, 9, 1.5), "M5": (2.4, 12, 2.0), "M6": (2.7, 14, 2.0), "M8": (3.8, 16, 2.0), "M10": (4.5, 19, 2.5)} |
| 19 | MATERIALS = {"steel": ("steel-generic", "#2f3134")} # black-oxide steel |
| 20 | |
| 21 | d1 = NOMINAL[size] |
| 22 | d2, l, w = {"ball": BALL, "bolt": BOLT}[style][size] |
| 23 | material_id, colour = MATERIALS[material] |
| 24 | |
| 25 | model = Model() |
| 26 | model.cylinder("body", d1 / 2, l, name="Body") |
| 27 | if style == "ball": |
| 28 | model.sphere("ball", d2 / 2, at=(0, 0, l + w - d2 / 2), op="join", name="Ball") |
| 29 | else: |
| 30 | model.cylinder("bolt", d2 / 2, w, at=(0, 0, l), op="join", name="Bolt") |
| 31 | model.material(material_id, color=colour) |
| 32 | result = model.result() |
| 33 |
| 1 | name = "steve/spring-plunger" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Spring plungers M3 to M10: Elesa+Ganter GN 615-K ball spring plungers and GN 615.1-B bolt spring plungers." |
| 6 | description = """Threaded spring plungers, steel, from the Elesa+Ganter sheets: GN 615-K ball spring plungers (M3 to \ |
| 7 | M10) and GN 615.1-B bolt spring plungers (M4 to M10). Envelope geometry: the threaded body as a cylinder at the \ |
| 8 | nominal diameter, the ball or bolt standing out by its stroke w; thread and slot not modelled. |
| 9 | |
| 10 | Axis along +Z from the XY plane, centred on the origin. Dimensions: see the README.""" |
| 11 | tags = ["plunger", "spring-plunger", "ball-plunger", "indexing", "positioning", "ganter", "elesa", "gn-615", "metric"] |
| 12 | |
| 13 | [parameters.size] |
| 14 | type = "choice" |
| 15 | default = "M6" |
| 16 | choices = ["M3", "M4", "M5", "M6", "M8", "M10"] |
| 17 | label = "Thread" |
| 18 | |
| 19 | [parameters.style] |
| 20 | type = "choice" |
| 21 | default = "ball" |
| 22 | choices = ["ball", "bolt"] |
| 23 | label = "Plunger" |
| 24 | description = "ball: GN 615-K (M3 to M10); bolt: GN 615.1-B (M4 to M10)." |
| 25 | |
| 26 | [parameters.material] |
| 27 | type = "choice" |
| 28 | default = "steel" |
| 29 | choices = ["steel"] |
| 30 | label = "Material" |
| 31 | description = "Black-oxide steel body, hardened steel ball or bolt." |
| 32 | |
| 33 | [[presets]] |
| 34 | id = "ball-M3" |
| 35 | title = "M3 ball spring plunger (GN 615-K-M3)" |
| 36 | params = { size = "M3", style = "ball" } |
| 37 | aliases = ["GN 615-M3-K", "M3 ball plunger", "M3 spring plunger", "Ganter GN 615-K M3", "plunger kind=ball_plunger; thread=M3; simplified body/ball/knob envelope"] |
| 38 | standard = "GN 615-K" |
| 39 | |
| 40 | [[presets]] |
| 41 | id = "ball-M4" |
| 42 | title = "M4 ball spring plunger (GN 615-K-M4)" |
| 43 | params = { size = "M4", style = "ball" } |
| 44 | aliases = ["GN 615-M4-K", "M4 ball plunger", "M4 spring plunger", "Ganter GN 615-K M4", "plunger kind=ball_plunger; thread=M4; simplified body/ball/knob envelope"] |
| 45 | standard = "GN 615-K" |
| 46 | |
| 47 | [[presets]] |
| 48 | id = "ball-M5" |
| 49 | title = "M5 ball spring plunger (GN 615-K-M5)" |
| 50 | params = { size = "M5", style = "ball" } |
| 51 | aliases = ["GN 615-M5-K", "M5 ball plunger", "M5 spring plunger", "Ganter GN 615-K M5", "plunger kind=ball_plunger; thread=M5; simplified body/ball/knob envelope"] |
| 52 | standard = "GN 615-K" |
| 53 | |
| 54 | [[presets]] |
| 55 | id = "ball-M6" |
| 56 | title = "M6 ball spring plunger (GN 615-K-M6)" |
| 57 | params = { size = "M6", style = "ball" } |
| 58 | aliases = ["GN 615-M6-K", "M6 ball plunger", "M6 spring plunger", "Ganter GN 615-K M6", "plunger kind=ball_plunger; thread=M6; simplified body/ball/knob envelope"] |
| 59 | standard = "GN 615-K" |
| 60 | |
| 61 | [[presets]] |
| 62 | id = "ball-M8" |
| 63 | title = "M8 ball spring plunger (GN 615-K-M8)" |
| 64 | params = { size = "M8", style = "ball" } |
| 65 | aliases = ["GN 615-M8-K", "M8 ball plunger", "M8 spring plunger", "Ganter GN 615-K M8", "plunger kind=ball_plunger; thread=M8; simplified body/ball/knob envelope"] |
| 66 | standard = "GN 615-K" |
| 67 | |
| 68 | [[presets]] |
| 69 | id = "ball-M10" |
| 70 | title = "M10 ball spring plunger (GN 615-K-M10)" |
| 71 | params = { size = "M10", style = "ball" } |
| 72 | aliases = ["GN 615-M10-K", "M10 ball plunger", "M10 spring plunger", "Ganter GN 615-K M10", "plunger kind=ball_plunger; thread=M10; simplified body/ball/knob envelope"] |
| 73 | standard = "GN 615-K" |
| 74 | |
| 75 | [[presets]] |
| 76 | id = "bolt-M4" |
| 77 | title = "M4 bolt spring plunger (GN 615.1-B-M4)" |
| 78 | params = { size = "M4", style = "bolt" } |
| 79 | aliases = ["GN 615.1-M4-B", "M4 spring plunger", "Ganter GN 615.1-B M4", "plunger kind=spring_plunger; thread=M4; simplified body/ball/knob envelope"] |
| 80 | standard = "GN 615.1-B" |
| 81 | |
| 82 | [[presets]] |
| 83 | id = "bolt-M5" |
| 84 | title = "M5 bolt spring plunger (GN 615.1-B-M5)" |
| 85 | params = { size = "M5", style = "bolt" } |
| 86 | aliases = ["GN 615.1-M5-B", "M5 spring plunger", "Ganter GN 615.1-B M5", "plunger kind=spring_plunger; thread=M5; simplified body/ball/knob envelope"] |
| 87 | standard = "GN 615.1-B" |
| 88 | |
| 89 | [[presets]] |
| 90 | id = "bolt-M6" |
| 91 | title = "M6 bolt spring plunger (GN 615.1-B-M6)" |
| 92 | params = { size = "M6", style = "bolt" } |
| 93 | aliases = ["GN 615.1-M6-B", "M6 spring plunger", "Ganter GN 615.1-B M6", "plunger kind=spring_plunger; thread=M6; simplified body/ball/knob envelope"] |
| 94 | standard = "GN 615.1-B" |
| 95 | |
| 96 | [[presets]] |
| 97 | id = "bolt-M8" |
| 98 | title = "M8 bolt spring plunger (GN 615.1-B-M8)" |
| 99 | params = { size = "M8", style = "bolt" } |
| 100 | aliases = ["GN 615.1-M8-B", "M8 spring plunger", "Ganter GN 615.1-B M8", "plunger kind=spring_plunger; thread=M8; simplified body/ball/knob envelope"] |
| 101 | standard = "GN 615.1-B" |
| 102 | |
| 103 | [[presets]] |
| 104 | id = "bolt-M10" |
| 105 | title = "M10 bolt spring plunger (GN 615.1-B-M10)" |
| 106 | params = { size = "M10", style = "bolt" } |
| 107 | aliases = ["GN 615.1-M10-B", "M10 spring plunger", "Ganter GN 615.1-B M10", "plunger kind=spring_plunger; thread=M10; simplified body/ball/knob envelope"] |
| 108 | standard = "GN 615.1-B" |
| 109 |
Threaded spring plungers with a ball (GN 615-K, M3 to M10) or a bolt (GN 615.1-B, M4 to M10). Presets cover the catalogue's ball plungers and spring plungers.
Envelope: the threaded body as a cylinder at the thread's nominal diameter d1, length l, axis along +Z from the XY plane, centred on the origin; at its top the plunger stands out by w: a ball of diameter d2 (its top at l + w) or a bolt of diameter d2 to l + w. The thread, the screwdriver slot and the bolt's rounded end are not dimensioned and not modelled (the bolt is drawn flat-ended).
| Parameter | Meaning |
|---|---|
size |
Thread d1: M3 to M10 (bolt: M4 to M10) |
style |
ball (GN 615-K) or bolt (GN 615.1-B) |
material |
steel (black-oxide body) |
| d1 | Ball d2 | l | w | Bolt d2 | l | w |
|---|---|---|---|---|---|---|
| M3 | 1.5 | 7 | 0.4 | – | – | – |
| M4 | 2.5 | 9 | 0.8 | 1.8 | 9 | 1.5 |
| M5 | 3 | 12 | 0.9 | 2.4 | 12 | 2 |
| M6 | 3.5 | 14 | 1 | 2.7 | 14 | 2 |
| M8 | 4.5 | 16 | 1.5 | 3.8 | 16 | 2 |
| M10 | 6 | 19 | 2 | 4.5 | 19 | 2.5 |
Not covered: the M3 spring (bolt) plunger (GN 615.1 starts at M4) and the indexing plungers (Elesa+Ganter's GN 617 indexing plungers use fine threads M10 × 1 and up; no coarse-thread M3 to M10 series was found).
Preset list: sizes of the step.parts catalogue (MIT), see library/NOTICE.md.
| 1 | # Spring plunger (Elesa+Ganter GN 615-K / GN 615.1-B) |
| 2 | |
| 3 | Threaded spring plungers with a ball (GN 615-K, M3 to M10) or a bolt (GN 615.1-B, M4 to M10). Presets cover the |
| 4 | catalogue's ball plungers and spring plungers. |
| 5 | |
| 6 | ## Geometry |
| 7 | |
| 8 | Envelope: the threaded body as a cylinder at the thread's nominal diameter **d1**, length **l**, axis along +Z from |
| 9 | the XY plane, centred on the origin; at its top the plunger stands out by **w**: a ball of diameter **d2** (its top at |
| 10 | l + w) or a bolt of diameter d2 to l + w. The thread, the screwdriver slot and the bolt's rounded end are not |
| 11 | dimensioned and not modelled (the bolt is drawn flat-ended). |
| 12 | |
| 13 | ## Parameters |
| 14 | |
| 15 | | Parameter | Meaning | |
| 16 | |---|---| |
| 17 | | `size` | Thread d1: M3 to M10 (bolt: M4 to M10) | |
| 18 | | `style` | `ball` (GN 615-K) or `bolt` (GN 615.1-B) | |
| 19 | | `material` | `steel` (black-oxide body) | |
| 20 | |
| 21 | ## Sources |
| 22 | |
| 23 | - Elesa+Ganter, **GN 615** "Ball spring plungers, Steel", sheet dated 11/2025, table GN 615-K (d1, d2, l ± 0.1, w, |
| 24 | spring preload and max load): https://www.elesa.com/siteassets/PDF/PDF_EN/GN%20615.pdf |
| 25 | - Elesa+Ganter, **GN 615.1** "Bolt spring plungers, Steel", sheet dated 10/2025, table GN 615.1-B (d1, d2 −0.1, |
| 26 | l ± 0.1, w; w tolerance +0.3/−0.4): https://www.elesa.com/siteassets/PDF/PDF_EN/GN%20615.1.pdf |
| 27 | |
| 28 | | d1 | Ball d2 | l | w | Bolt d2 | l | w | |
| 29 | |---|---|---|---|---|---|---| |
| 30 | | M3 | 1.5 | 7 | 0.4 | – | – | – | |
| 31 | | M4 | 2.5 | 9 | 0.8 | 1.8 | 9 | 1.5 | |
| 32 | | M5 | 3 | 12 | 0.9 | 2.4 | 12 | 2 | |
| 33 | | M6 | 3.5 | 14 | 1 | 2.7 | 14 | 2 | |
| 34 | | M8 | 4.5 | 16 | 1.5 | 3.8 | 16 | 2 | |
| 35 | | M10 | 6 | 19 | 2 | 4.5 | 19 | 2.5 | |
| 36 | |
| 37 | Not covered: the M3 spring (bolt) plunger (GN 615.1 starts at M4) and the indexing plungers (Elesa+Ganter's GN 617 |
| 38 | indexing plungers use fine threads M10 × 1 and up; no coarse-thread M3 to M10 series was found). |
| 39 | |
| 40 | Preset list: sizes of the step.parts catalogue (MIT), see `library/NOTICE.md`. |
| 41 |
Threaded spring plungers, steel, from the Elesa+Ganter sheets: GN 615-K ball spring plungers (M3 to M10) and GN 615.1-B bolt spring plungers (M4 to M10). Envelope geometry: the threaded body as a cylinder at the nominal diameter, the ball or bolt standing out by its stroke w; thread and slot not modelled. Axis along +Z from the XY plane, centred on the origin. Dimensions: see the README.
Threaded spring plungers with a ball (GN 615-K, M3 to M10) or a bolt (GN 615.1-B, M4 to M10). Presets cover the catalogue's ball plungers and spring plungers.
Envelope: the threaded body as a cylinder at the thread's nominal diameter d1, length l, axis along +Z from the XY plane, centred on the origin; at its top the plunger stands out by w: a ball of diameter d2 (its top at l + w) or a bolt of diameter d2 to l + w. The thread, the screwdriver slot and the bolt's rounded end are not dimensioned and not modelled (the bolt is drawn flat-ended).
| Parameter | Meaning |
|---|---|
size |
Thread d1: M3 to M10 (bolt: M4 to M10) |
style |
ball (GN 615-K) or bolt (GN 615.1-B) |
material |
steel (black-oxide body) |
| d1 | Ball d2 | l | w | Bolt d2 | l | w |
|---|---|---|---|---|---|---|
| M3 | 1.5 | 7 | 0.4 | – | – | – |
| M4 | 2.5 | 9 | 0.8 | 1.8 | 9 | 1.5 |
| M5 | 3 | 12 | 0.9 | 2.4 | 12 | 2 |
| M6 | 3.5 | 14 | 1 | 2.7 | 14 | 2 |
| M8 | 4.5 | 16 | 1.5 | 3.8 | 16 | 2 |
| M10 | 6 | 19 | 2 | 4.5 | 19 | 2.5 |
Not covered: the M3 spring (bolt) plunger (GN 615.1 starts at M4) and the indexing plungers (Elesa+Ganter's GN 617 indexing plungers use fine threads M10 × 1 and up; no coarse-thread M3 to M10 series was found).
Preset list: sizes of the step.parts catalogue (MIT), see library/NOTICE.md.
Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.
Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length, with catalogue sizes as presets.
Hex nut, ISO 4032, M2 to M12.
Rectangular plate blank, any width, length and thickness, in common plate and sheet materials.