steve/miter-gear
Straight miter gear (1:1 bevel, 90 degree) envelope, modules 1 to 3, with catalogue numbers as presets.
Straight gear rack, ISO 53 basic rack, modules 0.5 to 2, any length, with common lengths as presets.
| 1 | """Straight-tooth gear rack, ISO 53 basic rack, section from KHK's SR steel racks. Length along X, centred on the origin; |
| 2 | width along Y; base on the XY plane and teeth up along +Z. As many whole teeth as fit the length, centred, with the |
| 3 | tooth roots' level running to both ends. Height H is the pitch-line height H0 plus one module.""" |
| 4 | import math |
| 5 | |
| 6 | from steve import Model |
| 7 | |
| 8 | module = 1 # Module |
| 9 | length = 300 # mm Rack length |
| 10 | |
| 11 | PRESSURE_ANGLE = 20 # degrees: ISO 53:1998 basic rack |
| 12 | DEDENDUM = 1.25 # x module: ISO 53 |
| 13 | # module: (face width B, overall height H, height to the pitch line H0). KHK Gears catalogue 2025, Racks, SR steel racks |
| 14 | # table, https://khkgears.us/media/yzroimcg/catalog-2025-racks.pdf |
| 15 | RACKS = {0.5: (5, 12, 11.5), 0.8: (8, 12.3, 11.5), 1: (10, 12, 11), 1.5: (15, 20, 18.5), 2: (20, 25, 23)} |
| 16 | |
| 17 | MAX_TEETH = 260 # more teeth than this take longer to build than a build is allowed |
| 18 | |
| 19 | B, H, H0 = RACKS[module] |
| 20 | pitch = math.pi * module |
| 21 | count = int(length // pitch) |
| 22 | if count < 1: |
| 23 | raise ValueError(f"The rack must be at least one pitch ({pitch:.3f} mm) long.") |
| 24 | if count > MAX_TEETH: |
| 25 | raise ValueError(f"{count} teeth is too long to build: at most {MAX_TEETH} teeth ({MAX_TEETH * pitch:.0f} mm at this module).") |
| 26 | tan_a = math.tan(math.radians(PRESSURE_ANGLE)) |
| 27 | root_z = H0 - DEDENDUM * module |
| 28 | crest_half = pitch / 4 - module * tan_a |
| 29 | root_half = pitch / 4 + DEDENDUM * module * tan_a |
| 30 | points = [(-length / 2, 0), (length / 2, 0), (length / 2, root_z)] |
| 31 | for i in reversed(range(count)): |
| 32 | x = (i - (count - 1) / 2) * pitch |
| 33 | points += [(x + root_half, root_z), (x + crest_half, H), (x - crest_half, H), (x - root_half, root_z)] |
| 34 | points.append((-length / 2, root_z)) |
| 35 | |
| 36 | model = Model() |
| 37 | with model.sketch("rack_sketch", on="XZ", name="Rack section") as sk: |
| 38 | sk.polyline("profile", points, closed=True) |
| 39 | model.extrude("rack", "rack_sketch", distance=B, both=True, name="Rack") |
| 40 | model.material("steel-generic", color="#b4b8bd") |
| 41 | result = model.result() |
| 42 |
| 1 | name = "steve/gear-rack" |
| 2 | version = "1.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Straight gear rack, ISO 53 basic rack, modules 0.5 to 2, any length, with common lengths as presets." |
| 6 | description = """Straight-tooth rack with teeth cut from the ISO 53 basic rack and a section from a maker's public catalogue. \ |
| 7 | Length along X, centred on the origin; teeth up along +Z. See the README; not affiliated with any maker.""" |
| 8 | tags = ["gear", "rack", "gear-rack", "iso-53", "metric", "power-transmission"] |
| 9 | |
| 10 | [parameters.module] |
| 11 | type = "choice" |
| 12 | default = 1 |
| 13 | choices = [0.5, 0.8, 1, 1.5, 2] |
| 14 | label = "Module" |
| 15 | |
| 16 | [parameters.length] |
| 17 | type = "number" |
| 18 | default = 300 |
| 19 | min = 20 |
| 20 | max = 2000 |
| 21 | unit = "mm" |
| 22 | label = "Length" |
| 23 |
| 1 | # Presets of this part (factory/PRESETS.md). Written by factory/gen.py. |
| 2 | |
| 3 | [[presets]] |
| 4 | id = "M0.5-L100" |
| 5 | title = "Module 0.5, 100 mm" |
| 6 | params = { module = 0.5, length = 100 } |
| 7 | aliases = ["gear rack M0.5 100", "rack module 0.5 100 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=100 mm; width=8.0 mm"] |
| 8 | standard = "ISO 53" |
| 9 | |
| 10 | [[presets]] |
| 11 | id = "M0.5-L150" |
| 12 | title = "Module 0.5, 150 mm" |
| 13 | params = { module = 0.5, length = 150 } |
| 14 | aliases = ["gear rack M0.5 150", "rack module 0.5 150 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=150 mm; width=8.0 mm"] |
| 15 | standard = "ISO 53" |
| 16 | |
| 17 | [[presets]] |
| 18 | id = "M0.5-L200" |
| 19 | title = "Module 0.5, 200 mm" |
| 20 | params = { module = 0.5, length = 200 } |
| 21 | aliases = ["gear rack M0.5 200", "rack module 0.5 200 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=200 mm; width=8.0 mm"] |
| 22 | standard = "ISO 53" |
| 23 | |
| 24 | [[presets]] |
| 25 | id = "M0.5-L250" |
| 26 | title = "Module 0.5, 250 mm" |
| 27 | params = { module = 0.5, length = 250 } |
| 28 | aliases = ["gear rack M0.5 250", "rack module 0.5 250 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=250 mm; width=8.0 mm"] |
| 29 | standard = "ISO 53" |
| 30 | |
| 31 | [[presets]] |
| 32 | id = "M0.5-L300" |
| 33 | title = "Module 0.5, 300 mm" |
| 34 | params = { module = 0.5, length = 300 } |
| 35 | aliases = ["gear rack M0.5 300", "rack module 0.5 300 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=300 mm; width=8.0 mm"] |
| 36 | standard = "ISO 53" |
| 37 | |
| 38 | [[presets]] |
| 39 | id = "M0.5-L400" |
| 40 | title = "Module 0.5, 400 mm" |
| 41 | params = { module = 0.5, length = 400 } |
| 42 | aliases = ["gear rack M0.5 400", "rack module 0.5 400 mm", "M0.5 rack", "module 0.5", "gear type=rack; module=0.5; length=400 mm; width=8.0 mm"] |
| 43 | standard = "ISO 53" |
| 44 | |
| 45 | [[presets]] |
| 46 | id = "M0.8-L100" |
| 47 | title = "Module 0.8, 100 mm" |
| 48 | params = { module = 0.8, length = 100 } |
| 49 | aliases = ["gear rack M0.8 100", "rack module 0.8 100 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=100 mm; width=8.0 mm"] |
| 50 | standard = "ISO 53" |
| 51 | |
| 52 | [[presets]] |
| 53 | id = "M0.8-L150" |
| 54 | title = "Module 0.8, 150 mm" |
| 55 | params = { module = 0.8, length = 150 } |
| 56 | aliases = ["gear rack M0.8 150", "rack module 0.8 150 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=150 mm; width=8.0 mm"] |
| 57 | standard = "ISO 53" |
| 58 | |
| 59 | [[presets]] |
| 60 | id = "M0.8-L200" |
| 61 | title = "Module 0.8, 200 mm" |
| 62 | params = { module = 0.8, length = 200 } |
| 63 | aliases = ["gear rack M0.8 200", "rack module 0.8 200 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=200 mm; width=8.0 mm"] |
| 64 | standard = "ISO 53" |
| 65 | |
| 66 | [[presets]] |
| 67 | id = "M0.8-L250" |
| 68 | title = "Module 0.8, 250 mm" |
| 69 | params = { module = 0.8, length = 250 } |
| 70 | aliases = ["gear rack M0.8 250", "rack module 0.8 250 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=250 mm; width=8.0 mm"] |
| 71 | standard = "ISO 53" |
| 72 | |
| 73 | [[presets]] |
| 74 | id = "M0.8-L300" |
| 75 | title = "Module 0.8, 300 mm" |
| 76 | params = { module = 0.8, length = 300 } |
| 77 | aliases = ["gear rack M0.8 300", "rack module 0.8 300 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=300 mm; width=8.0 mm"] |
| 78 | standard = "ISO 53" |
| 79 | |
| 80 | [[presets]] |
| 81 | id = "M0.8-L400" |
| 82 | title = "Module 0.8, 400 mm" |
| 83 | params = { module = 0.8, length = 400 } |
| 84 | aliases = ["gear rack M0.8 400", "rack module 0.8 400 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=400 mm; width=8.0 mm"] |
| 85 | standard = "ISO 53" |
| 86 | |
| 87 | [[presets]] |
| 88 | id = "M0.8-L500" |
| 89 | title = "Module 0.8, 500 mm" |
| 90 | params = { module = 0.8, length = 500 } |
| 91 | aliases = ["gear rack M0.8 500", "rack module 0.8 500 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=500 mm; width=8.0 mm"] |
| 92 | standard = "ISO 53" |
| 93 | |
| 94 | [[presets]] |
| 95 | id = "M0.8-L600" |
| 96 | title = "Module 0.8, 600 mm" |
| 97 | params = { module = 0.8, length = 600 } |
| 98 | aliases = ["gear rack M0.8 600", "rack module 0.8 600 mm", "M0.8 rack", "module 0.8", "gear type=rack; module=0.8; length=600 mm; width=8.0 mm"] |
| 99 | standard = "ISO 53" |
| 100 | |
| 101 | [[presets]] |
| 102 | id = "M1-L100" |
| 103 | title = "Module 1, 100 mm" |
| 104 | params = { module = 1, length = 100 } |
| 105 | aliases = ["gear rack M1 100", "rack module 1 100 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=100 mm; width=10.0 mm"] |
| 106 | standard = "ISO 53" |
| 107 | |
| 108 | [[presets]] |
| 109 | id = "M1-L150" |
| 110 | title = "Module 1, 150 mm" |
| 111 | params = { module = 1, length = 150 } |
| 112 | aliases = ["gear rack M1 150", "rack module 1 150 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=150 mm; width=10.0 mm"] |
| 113 | standard = "ISO 53" |
| 114 | |
| 115 | [[presets]] |
| 116 | id = "M1-L200" |
| 117 | title = "Module 1, 200 mm" |
| 118 | params = { module = 1, length = 200 } |
| 119 | aliases = ["gear rack M1 200", "rack module 1 200 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=200 mm; width=10.0 mm"] |
| 120 | standard = "ISO 53" |
| 121 | |
| 122 | [[presets]] |
| 123 | id = "M1-L250" |
| 124 | title = "Module 1, 250 mm" |
| 125 | params = { module = 1, length = 250 } |
| 126 | aliases = ["gear rack M1 250", "rack module 1 250 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=250 mm; width=10.0 mm"] |
| 127 | standard = "ISO 53" |
| 128 | |
| 129 | [[presets]] |
| 130 | id = "M1-L300" |
| 131 | title = "Module 1, 300 mm" |
| 132 | params = { module = 1, length = 300 } |
| 133 | aliases = ["gear rack M1 300", "rack module 1 300 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=300 mm; width=10.0 mm"] |
| 134 | standard = "ISO 53" |
| 135 | |
| 136 | [[presets]] |
| 137 | id = "M1-L400" |
| 138 | title = "Module 1, 400 mm" |
| 139 | params = { module = 1, length = 400 } |
| 140 | aliases = ["gear rack M1 400", "rack module 1 400 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=400 mm; width=10.0 mm"] |
| 141 | standard = "ISO 53" |
| 142 | |
| 143 | [[presets]] |
| 144 | id = "M1-L500" |
| 145 | title = "Module 1, 500 mm" |
| 146 | params = { module = 1, length = 500 } |
| 147 | aliases = ["gear rack M1 500", "rack module 1 500 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=500 mm; width=10.0 mm"] |
| 148 | standard = "ISO 53" |
| 149 | |
| 150 | [[presets]] |
| 151 | id = "M1-L600" |
| 152 | title = "Module 1, 600 mm" |
| 153 | params = { module = 1, length = 600 } |
| 154 | aliases = ["gear rack M1 600", "rack module 1 600 mm", "M1 rack", "module 1.0", "gear type=rack; module=1.0; length=600 mm; width=10.0 mm"] |
| 155 | standard = "ISO 53" |
| 156 | |
| 157 | [[presets]] |
| 158 | id = "M1.5-L100" |
| 159 | title = "Module 1.5, 100 mm" |
| 160 | params = { module = 1.5, length = 100 } |
| 161 | aliases = ["gear rack M1.5 100", "rack module 1.5 100 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=100 mm; width=15.0 mm"] |
| 162 | standard = "ISO 53" |
| 163 | |
| 164 | [[presets]] |
| 165 | id = "M1.5-L150" |
| 166 | title = "Module 1.5, 150 mm" |
| 167 | params = { module = 1.5, length = 150 } |
| 168 | aliases = ["gear rack M1.5 150", "rack module 1.5 150 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=150 mm; width=15.0 mm"] |
| 169 | standard = "ISO 53" |
| 170 | |
| 171 | [[presets]] |
| 172 | id = "M1.5-L200" |
| 173 | title = "Module 1.5, 200 mm" |
| 174 | params = { module = 1.5, length = 200 } |
| 175 | aliases = ["gear rack M1.5 200", "rack module 1.5 200 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=200 mm; width=15.0 mm"] |
| 176 | standard = "ISO 53" |
| 177 | |
| 178 | [[presets]] |
| 179 | id = "M1.5-L250" |
| 180 | title = "Module 1.5, 250 mm" |
| 181 | params = { module = 1.5, length = 250 } |
| 182 | aliases = ["gear rack M1.5 250", "rack module 1.5 250 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=250 mm; width=15.0 mm"] |
| 183 | standard = "ISO 53" |
| 184 | |
| 185 | [[presets]] |
| 186 | id = "M1.5-L300" |
| 187 | title = "Module 1.5, 300 mm" |
| 188 | params = { module = 1.5, length = 300 } |
| 189 | aliases = ["gear rack M1.5 300", "rack module 1.5 300 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=300 mm; width=15.0 mm"] |
| 190 | standard = "ISO 53" |
| 191 | |
| 192 | [[presets]] |
| 193 | id = "M1.5-L400" |
| 194 | title = "Module 1.5, 400 mm" |
| 195 | params = { module = 1.5, length = 400 } |
| 196 | aliases = ["gear rack M1.5 400", "rack module 1.5 400 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=400 mm; width=15.0 mm"] |
| 197 | standard = "ISO 53" |
| 198 | |
| 199 | [[presets]] |
| 200 | id = "M1.5-L500" |
| 201 | title = "Module 1.5, 500 mm" |
| 202 | params = { module = 1.5, length = 500 } |
| 203 | aliases = ["gear rack M1.5 500", "rack module 1.5 500 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=500 mm; width=15.0 mm"] |
| 204 | standard = "ISO 53" |
| 205 | |
| 206 | [[presets]] |
| 207 | id = "M1.5-L600" |
| 208 | title = "Module 1.5, 600 mm" |
| 209 | params = { module = 1.5, length = 600 } |
| 210 | aliases = ["gear rack M1.5 600", "rack module 1.5 600 mm", "M1.5 rack", "module 1.5", "gear type=rack; module=1.5; length=600 mm; width=15.0 mm"] |
| 211 | standard = "ISO 53" |
| 212 | |
| 213 | [[presets]] |
| 214 | id = "M2-L100" |
| 215 | title = "Module 2, 100 mm" |
| 216 | params = { module = 2, length = 100 } |
| 217 | aliases = ["gear rack M2 100", "rack module 2 100 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=100 mm; width=20.0 mm"] |
| 218 | standard = "ISO 53" |
| 219 | |
| 220 | [[presets]] |
| 221 | id = "M2-L150" |
| 222 | title = "Module 2, 150 mm" |
| 223 | params = { module = 2, length = 150 } |
| 224 | aliases = ["gear rack M2 150", "rack module 2 150 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=150 mm; width=20.0 mm"] |
| 225 | standard = "ISO 53" |
| 226 | |
| 227 | [[presets]] |
| 228 | id = "M2-L200" |
| 229 | title = "Module 2, 200 mm" |
| 230 | params = { module = 2, length = 200 } |
| 231 | aliases = ["gear rack M2 200", "rack module 2 200 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=200 mm; width=20.0 mm"] |
| 232 | standard = "ISO 53" |
| 233 | |
| 234 | [[presets]] |
| 235 | id = "M2-L250" |
| 236 | title = "Module 2, 250 mm" |
| 237 | params = { module = 2, length = 250 } |
| 238 | aliases = ["gear rack M2 250", "rack module 2 250 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=250 mm; width=20.0 mm"] |
| 239 | standard = "ISO 53" |
| 240 | |
| 241 | [[presets]] |
| 242 | id = "M2-L300" |
| 243 | title = "Module 2, 300 mm" |
| 244 | params = { module = 2, length = 300 } |
| 245 | aliases = ["gear rack M2 300", "rack module 2 300 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=300 mm; width=20.0 mm"] |
| 246 | standard = "ISO 53" |
| 247 | |
| 248 | [[presets]] |
| 249 | id = "M2-L400" |
| 250 | title = "Module 2, 400 mm" |
| 251 | params = { module = 2, length = 400 } |
| 252 | aliases = ["gear rack M2 400", "rack module 2 400 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=400 mm; width=20.0 mm"] |
| 253 | standard = "ISO 53" |
| 254 | |
| 255 | [[presets]] |
| 256 | id = "M2-L500" |
| 257 | title = "Module 2, 500 mm" |
| 258 | params = { module = 2, length = 500 } |
| 259 | aliases = ["gear rack M2 500", "rack module 2 500 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=500 mm; width=20.0 mm"] |
| 260 | standard = "ISO 53" |
| 261 | |
| 262 | [[presets]] |
| 263 | id = "M2-L600" |
| 264 | title = "Module 2, 600 mm" |
| 265 | params = { module = 2, length = 600 } |
| 266 | aliases = ["gear rack M2 600", "rack module 2 600 mm", "M2 rack", "module 2.0", "gear type=rack; module=2.0; length=600 mm; width=20.0 mm"] |
| 267 | standard = "ISO 53" |
| 268 |
Straight-tooth rack. Length along X, centred on the origin; width along Y; base on the XY plane, teeth up along +Z.
As many whole teeth as fit the length, centred, at pitch π m, with the root level running on to both ends. Tooth thickness π m / 2 on the pitch line, 20° flanks, addendum 1.0 m, dedendum 1.25 m.
| Module | Face width B | Height H | Height to pitch line H0 |
|---|---|---|---|
| 0.5 | 5 | 12 | 11.5 |
| 0.8 | 8 | 12.3 | 11.5 |
| 1 | 10 | 12 | 11 |
| 1.5 | 15 | 20 | 18.5 |
| 2 | 20 | 25 | 23 |
Module 1.25 isn't in that table, so it isn't offered. A rack is limited to 260 teeth: longer ones take more than a build's time limit. The catalogue's preset widths differ for some modules: this part uses the KHK section. Maker names identify the source; this part isn't made by or affiliated with KHK.
Preset lengths: step.parts catalogue metadata (MIT, library/NOTICE.md).
| 1 | # Gear rack |
| 2 | |
| 3 | Straight-tooth rack. Length along X, centred on the origin; width along Y; base on the XY plane, teeth up along +Z. |
| 4 | |
| 5 | ## Geometry |
| 6 | |
| 7 | As many whole teeth as fit the length, centred, at pitch π m, with the root level running on to both ends. Tooth |
| 8 | thickness π m / 2 on the pitch line, 20° flanks, addendum 1.0 m, dedendum 1.25 m. |
| 9 | |
| 10 | ## Source |
| 11 | |
| 12 | - **Teeth:** ISO 53:1998, standard basic rack profile. |
| 13 | - **Section:** KHK Gears, catalogue 2025, Racks, SR steel racks table, |
| 14 | <https://khkgears.us/media/yzroimcg/catalog-2025-racks.pdf>: |
| 15 | |
| 16 | | Module | Face width B | Height H | Height to pitch line H0 | |
| 17 | |---|---|---|---| |
| 18 | | 0.5 | 5 | 12 | 11.5 | |
| 19 | | 0.8 | 8 | 12.3 | 11.5 | |
| 20 | | 1 | 10 | 12 | 11 | |
| 21 | | 1.5 | 15 | 20 | 18.5 | |
| 22 | | 2 | 20 | 25 | 23 | |
| 23 | |
| 24 | Module 1.25 isn't in that table, so it isn't offered. A rack is limited to 260 teeth: longer ones take more than a build's time limit. The catalogue's preset widths differ for some modules: this part |
| 25 | uses the KHK section. Maker names identify the source; this part isn't made by or affiliated with KHK. |
| 26 | |
| 27 | Preset lengths: step.parts catalogue metadata (MIT, `library/NOTICE.md`). |
| 28 |
Straight-tooth rack with teeth cut from the ISO 53 basic rack and a section from a maker's public catalogue. Length along X, centred on the origin; teeth up along +Z. See the README; not affiliated with any maker.
Straight-tooth rack. Length along X, centred on the origin; width along Y; base on the XY plane, teeth up along +Z.
As many whole teeth as fit the length, centred, at pitch π m, with the root level running on to both ends. Tooth thickness π m / 2 on the pitch line, 20° flanks, addendum 1.0 m, dedendum 1.25 m.
| Module | Face width B | Height H | Height to pitch line H0 |
|---|---|---|---|
| 0.5 | 5 | 12 | 11.5 |
| 0.8 | 8 | 12.3 | 11.5 |
| 1 | 10 | 12 | 11 |
| 1.5 | 15 | 20 | 18.5 |
| 2 | 20 | 25 | 23 |
Module 1.25 isn't in that table, so it isn't offered. A rack is limited to 260 teeth: longer ones take more than a build's time limit. The catalogue's preset widths differ for some modules: this part uses the KHK section. Maker names identify the source; this part isn't made by or affiliated with KHK.
Preset lengths: step.parts catalogue metadata (MIT, library/NOTICE.md).
Straight miter gear (1:1 bevel, 90 degree) envelope, modules 1 to 3, with catalogue numbers as presets.
Shaft collar: DIN 705 A set collar, bores 3 to 20 mm, and one-piece clamp collars.
Parallel key, DIN 6885-1 form A, 2 x 2 to 12 x 8, any length, with the common sizes as presets.
Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.