steve/hex-head-screw
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.
| 1 | """Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length. |
| 2 | |
| 3 | Envelope model for assemblies: domed head (a spherical cap of diameter dk max and height k max), hexagon socket (key |
| 4 | size s, depth t min) and a plain shank at the nominal thread diameter d (the thread is not modelled). |
| 5 | The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z; `length` is the |
| 6 | nominal length l, measured from under the head. |
| 7 | """ |
| 8 | import math |
| 9 | |
| 10 | from steve import Model |
| 11 | |
| 12 | size = "M5" # Thread size |
| 13 | length = 10 # mm Nominal length (under the head) |
| 14 | material = "steel" # Material |
| 15 | |
| 16 | # ISO 7380-1:2011, Table 1 (official preview p. 3: |
| 17 | # https://cdn.standards.iteh.ai/samples/53671/84df01c5fcce4a91896ac3b0c55ca128/ISO-7380-1-2011.pdf); the same values in |
| 18 | # ISO 7380-1:2022, Table 1 (https://cdn.standards.iteh.ai/samples/78699/a175805085534f98983d6c8aa583a5b0/ISO-7380-1-2022.pdf). size: (thread d, head diameter dk max, head height k max, hexagon socket s, socket depth t min) |
| 19 | DIMENSIONS = { |
| 20 | "M3": (3.0, 5.7, 1.65, 2.0, 1.04), |
| 21 | "M4": (4.0, 7.6, 2.2, 2.5, 1.3), |
| 22 | "M5": (5.0, 9.5, 2.75, 3.0, 1.56), |
| 23 | "M6": (6.0, 10.5, 3.3, 4.0, 2.08), |
| 24 | "M8": (8.0, 14.0, 4.4, 5.0, 2.6), |
| 25 | "M10": (10.0, 17.5, 5.5, 6.0, 3.12), |
| 26 | "M12": (12.0, 21.0, 6.6, 8.0, 4.16), |
| 27 | "M16": (16.0, 28.0, 8.8, 10.0, 5.2), |
| 28 | } |
| 29 | # material choice: (STEVE material library id, appearance colour) |
| 30 | MATERIALS = { |
| 31 | "steel": ("steel-generic", "#2b2d30"), # property class 10.9 / 12.9, black oxide finish |
| 32 | "stainless-a2": ("stainless-304", "#c9ccd0"), # ISO 3506-1 A2-70 |
| 33 | "stainless-a4": ("stainless-316", "#c9ccd0"), # ISO 3506-1 A4-70 / A4-80 |
| 34 | } |
| 35 | |
| 36 | d, dk, k, s, t = DIMENSIONS[size] |
| 37 | material_id, colour = MATERIALS[material] |
| 38 | r = dk / 2 |
| 39 | dome_r = (r * r + k * k) / (2 * k) # radius of the spherical cap through the head's rim and top |
| 40 | start = math.degrees(math.atan2(dome_r - k, r)) |
| 41 | |
| 42 | model = Model() |
| 43 | with model.sketch("head_profile", on="XZ", name="Head profile") as sk: |
| 44 | sk.line("base", (0, 0), (r, 0)) |
| 45 | sk.arc("dome", (0, k - dome_r), dome_r, start, 90) |
| 46 | sk.line("axis", (0, k), (0, 0)) |
| 47 | model.revolve("head", "head_profile", axis="Z", name="Head") |
| 48 | with model.sketch("shank_sketch", on="XY", name="Shank") as sk: |
| 49 | sk.circle("shank_circle", (0, 0), d / 2) |
| 50 | model.extrude("shank", "shank_sketch", distance=-length, name="Shank") |
| 51 | model.plane("head_top", on="XY", offset=k, name="Head top") |
| 52 | with model.sketch("socket_sketch", on="head_top", name="Hexagon socket") as sk: |
| 53 | sk.polygon("hex", (0, 0), s / 2, 6, inscribed=False) |
| 54 | model.extrude("socket", "socket_sketch", distance=-t, op="cut", name="Socket") |
| 55 | model.material(material_id, color=colour) |
| 56 | result = model.result() |
| 57 |
| 1 | name = "steve/button-head-screw" |
| 2 | version = "2.0.0" |
| 3 | runtime = "steve" |
| 4 | license = "MIT" |
| 5 | summary = "Hexagon socket button head screw, ISO 7380-1, M3 to M16, any length, with catalogue sizes as presets." |
| 6 | description = """ISO 7380-1 hexagon socket button head screw. Envelope geometry for assemblies: domed head (dk max, \ |
| 7 | k max), hexagon socket (s, t min) and a plain shank at the nominal thread diameter; the thread itself is not modelled. |
| 8 | |
| 9 | The head's bearing face is on the XY plane at the origin and the shank points along -Z; `length` is the nominal \ |
| 10 | length under the head. Dimensions from ISO 7380-1:2011 Table 1 (see the README).""" |
| 11 | tags = ["fastener", "screw", "button-head", "iso-7380", "metric"] |
| 12 | |
| 13 | [parameters.size] |
| 14 | type = "choice" |
| 15 | default = "M5" |
| 16 | choices = ["M3", "M4", "M5", "M6", "M8", "M10", "M12", "M16"] |
| 17 | label = "Thread size" |
| 18 | |
| 19 | [parameters.length] |
| 20 | type = "number" |
| 21 | default = 10 |
| 22 | min = 2 |
| 23 | max = 200 |
| 24 | step = 1 |
| 25 | unit = "mm" |
| 26 | label = "Length" |
| 27 | description = "Nominal length l, from under the head to the end of the shank." |
| 28 | |
| 29 | [parameters.material] |
| 30 | type = "choice" |
| 31 | default = "steel" |
| 32 | choices = ["steel", "stainless-a2", "stainless-a4"] |
| 33 | label = "Material" |
| 34 | description = "steel: property class 10.9 / 12.9, black oxide; stainless-a2 / stainless-a4: ISO 3506-1 A2 / A4." |
| 35 |
| 1 | # Presets of this part (factory/PRESETS.md). Written by factory/gen.py. |
| 2 | |
| 3 | [[presets]] |
| 4 | id = "M3x4" |
| 5 | title = "M3 × 4" |
| 6 | params = { size = "M3", length = 4 } |
| 7 | aliases = ["ISO 7380 M3x4", "ISO 7380-1 M3x4", "BHCS M3x4", "button head screw M3x4", "M3 x 4 mm"] |
| 8 | standard = "ISO 7380-1" |
| 9 | |
| 10 | [[presets]] |
| 11 | id = "M3x5" |
| 12 | title = "M3 × 5" |
| 13 | params = { size = "M3", length = 5 } |
| 14 | aliases = ["ISO 7380 M3x5", "ISO 7380-1 M3x5", "BHCS M3x5", "button head screw M3x5", "M3 x 5 mm"] |
| 15 | standard = "ISO 7380-1" |
| 16 | |
| 17 | [[presets]] |
| 18 | id = "M3x6" |
| 19 | title = "M3 × 6" |
| 20 | params = { size = "M3", length = 6 } |
| 21 | aliases = ["ISO 7380 M3x6", "ISO 7380-1 M3x6", "BHCS M3x6", "button head screw M3x6", "M3 x 6 mm"] |
| 22 | standard = "ISO 7380-1" |
| 23 | |
| 24 | [[presets]] |
| 25 | id = "M3x8" |
| 26 | title = "M3 × 8" |
| 27 | params = { size = "M3", length = 8 } |
| 28 | aliases = ["ISO 7380 M3x8", "ISO 7380-1 M3x8", "BHCS M3x8", "button head screw M3x8", "M3 x 8 mm"] |
| 29 | standard = "ISO 7380-1" |
| 30 | |
| 31 | [[presets]] |
| 32 | id = "M3x10" |
| 33 | title = "M3 × 10" |
| 34 | params = { size = "M3", length = 10 } |
| 35 | aliases = ["ISO 7380 M3x10", "ISO 7380-1 M3x10", "BHCS M3x10", "button head screw M3x10", "M3 x 10 mm"] |
| 36 | standard = "ISO 7380-1" |
| 37 | |
| 38 | [[presets]] |
| 39 | id = "M3x12" |
| 40 | title = "M3 × 12" |
| 41 | params = { size = "M3", length = 12 } |
| 42 | aliases = ["ISO 7380 M3x12", "ISO 7380-1 M3x12", "BHCS M3x12", "button head screw M3x12", "M3 x 12 mm"] |
| 43 | standard = "ISO 7380-1" |
| 44 | |
| 45 | [[presets]] |
| 46 | id = "M3x16" |
| 47 | title = "M3 × 16" |
| 48 | params = { size = "M3", length = 16 } |
| 49 | aliases = ["ISO 7380 M3x16", "ISO 7380-1 M3x16", "BHCS M3x16", "button head screw M3x16", "M3 x 16 mm"] |
| 50 | standard = "ISO 7380-1" |
| 51 | |
| 52 | [[presets]] |
| 53 | id = "M3x20" |
| 54 | title = "M3 × 20" |
| 55 | params = { size = "M3", length = 20 } |
| 56 | aliases = ["ISO 7380 M3x20", "ISO 7380-1 M3x20", "BHCS M3x20", "button head screw M3x20", "M3 x 20 mm"] |
| 57 | standard = "ISO 7380-1" |
| 58 | |
| 59 | [[presets]] |
| 60 | id = "M3x25" |
| 61 | title = "M3 × 25" |
| 62 | params = { size = "M3", length = 25 } |
| 63 | aliases = ["ISO 7380 M3x25", "ISO 7380-1 M3x25", "BHCS M3x25", "button head screw M3x25", "M3 x 25 mm"] |
| 64 | standard = "ISO 7380-1" |
| 65 | |
| 66 | [[presets]] |
| 67 | id = "M3x30" |
| 68 | title = "M3 × 30" |
| 69 | params = { size = "M3", length = 30 } |
| 70 | aliases = ["ISO 7380 M3x30", "ISO 7380-1 M3x30", "BHCS M3x30", "button head screw M3x30", "M3 x 30 mm"] |
| 71 | standard = "ISO 7380-1" |
| 72 | |
| 73 | [[presets]] |
| 74 | id = "M3x35" |
| 75 | title = "M3 × 35" |
| 76 | params = { size = "M3", length = 35 } |
| 77 | aliases = ["ISO 7380 M3x35", "ISO 7380-1 M3x35", "BHCS M3x35", "button head screw M3x35", "M3 x 35 mm"] |
| 78 | standard = "ISO 7380-1" |
| 79 | |
| 80 | [[presets]] |
| 81 | id = "M3x40" |
| 82 | title = "M3 × 40" |
| 83 | params = { size = "M3", length = 40 } |
| 84 | aliases = ["ISO 7380 M3x40", "ISO 7380-1 M3x40", "BHCS M3x40", "button head screw M3x40", "M3 x 40 mm"] |
| 85 | standard = "ISO 7380-1" |
| 86 | |
| 87 | [[presets]] |
| 88 | id = "M3x50" |
| 89 | title = "M3 × 50" |
| 90 | params = { size = "M3", length = 50 } |
| 91 | aliases = ["ISO 7380 M3x50", "ISO 7380-1 M3x50", "BHCS M3x50", "button head screw M3x50", "M3 x 50 mm"] |
| 92 | standard = "ISO 7380-1" |
| 93 | |
| 94 | [[presets]] |
| 95 | id = "M4x4" |
| 96 | title = "M4 × 4" |
| 97 | params = { size = "M4", length = 4 } |
| 98 | aliases = ["ISO 7380 M4x4", "ISO 7380-1 M4x4", "BHCS M4x4", "button head screw M4x4", "M4 x 4 mm"] |
| 99 | standard = "ISO 7380-1" |
| 100 | |
| 101 | [[presets]] |
| 102 | id = "M4x5" |
| 103 | title = "M4 × 5" |
| 104 | params = { size = "M4", length = 5 } |
| 105 | aliases = ["ISO 7380 M4x5", "ISO 7380-1 M4x5", "BHCS M4x5", "button head screw M4x5", "M4 x 5 mm"] |
| 106 | standard = "ISO 7380-1" |
| 107 | |
| 108 | [[presets]] |
| 109 | id = "M4x6" |
| 110 | title = "M4 × 6" |
| 111 | params = { size = "M4", length = 6 } |
| 112 | aliases = ["ISO 7380 M4x6", "ISO 7380-1 M4x6", "BHCS M4x6", "button head screw M4x6", "M4 x 6 mm"] |
| 113 | standard = "ISO 7380-1" |
| 114 | |
| 115 | [[presets]] |
| 116 | id = "M4x8" |
| 117 | title = "M4 × 8" |
| 118 | params = { size = "M4", length = 8 } |
| 119 | aliases = ["ISO 7380 M4x8", "ISO 7380-1 M4x8", "BHCS M4x8", "button head screw M4x8", "M4 x 8 mm"] |
| 120 | standard = "ISO 7380-1" |
| 121 | |
| 122 | [[presets]] |
| 123 | id = "M4x10" |
| 124 | title = "M4 × 10" |
| 125 | params = { size = "M4", length = 10 } |
| 126 | aliases = ["ISO 7380 M4x10", "ISO 7380-1 M4x10", "BHCS M4x10", "button head screw M4x10", "M4 x 10 mm"] |
| 127 | standard = "ISO 7380-1" |
| 128 | |
| 129 | [[presets]] |
| 130 | id = "M4x12" |
| 131 | title = "M4 × 12" |
| 132 | params = { size = "M4", length = 12 } |
| 133 | aliases = ["ISO 7380 M4x12", "ISO 7380-1 M4x12", "BHCS M4x12", "button head screw M4x12", "M4 x 12 mm"] |
| 134 | standard = "ISO 7380-1" |
| 135 | |
| 136 | [[presets]] |
| 137 | id = "M4x16" |
| 138 | title = "M4 × 16" |
| 139 | params = { size = "M4", length = 16 } |
| 140 | aliases = ["ISO 7380 M4x16", "ISO 7380-1 M4x16", "BHCS M4x16", "button head screw M4x16", "M4 x 16 mm"] |
| 141 | standard = "ISO 7380-1" |
| 142 | |
| 143 | [[presets]] |
| 144 | id = "M4x20" |
| 145 | title = "M4 × 20" |
| 146 | params = { size = "M4", length = 20 } |
| 147 | aliases = ["ISO 7380 M4x20", "ISO 7380-1 M4x20", "BHCS M4x20", "button head screw M4x20", "M4 x 20 mm"] |
| 148 | standard = "ISO 7380-1" |
| 149 | |
| 150 | [[presets]] |
| 151 | id = "M4x25" |
| 152 | title = "M4 × 25" |
| 153 | params = { size = "M4", length = 25 } |
| 154 | aliases = ["ISO 7380 M4x25", "ISO 7380-1 M4x25", "BHCS M4x25", "button head screw M4x25", "M4 x 25 mm"] |
| 155 | standard = "ISO 7380-1" |
| 156 | |
| 157 | [[presets]] |
| 158 | id = "M4x30" |
| 159 | title = "M4 × 30" |
| 160 | params = { size = "M4", length = 30 } |
| 161 | aliases = ["ISO 7380 M4x30", "ISO 7380-1 M4x30", "BHCS M4x30", "button head screw M4x30", "M4 x 30 mm"] |
| 162 | standard = "ISO 7380-1" |
| 163 | |
| 164 | [[presets]] |
| 165 | id = "M4x35" |
| 166 | title = "M4 × 35" |
| 167 | params = { size = "M4", length = 35 } |
| 168 | aliases = ["ISO 7380 M4x35", "ISO 7380-1 M4x35", "BHCS M4x35", "button head screw M4x35", "M4 x 35 mm"] |
| 169 | standard = "ISO 7380-1" |
| 170 | |
| 171 | [[presets]] |
| 172 | id = "M4x40" |
| 173 | title = "M4 × 40" |
| 174 | params = { size = "M4", length = 40 } |
| 175 | aliases = ["ISO 7380 M4x40", "ISO 7380-1 M4x40", "BHCS M4x40", "button head screw M4x40", "M4 x 40 mm"] |
| 176 | standard = "ISO 7380-1" |
| 177 | |
| 178 | [[presets]] |
| 179 | id = "M4x50" |
| 180 | title = "M4 × 50" |
| 181 | params = { size = "M4", length = 50 } |
| 182 | aliases = ["ISO 7380 M4x50", "ISO 7380-1 M4x50", "BHCS M4x50", "button head screw M4x50", "M4 x 50 mm"] |
| 183 | standard = "ISO 7380-1" |
| 184 | |
| 185 | [[presets]] |
| 186 | id = "M5x4" |
| 187 | title = "M5 × 4" |
| 188 | params = { size = "M5", length = 4 } |
| 189 | aliases = ["ISO 7380 M5x4", "ISO 7380-1 M5x4", "BHCS M5x4", "button head screw M5x4", "M5 x 4 mm"] |
| 190 | standard = "ISO 7380-1" |
| 191 | |
| 192 | [[presets]] |
| 193 | id = "M5x5" |
| 194 | title = "M5 × 5" |
| 195 | params = { size = "M5", length = 5 } |
| 196 | aliases = ["ISO 7380 M5x5", "ISO 7380-1 M5x5", "BHCS M5x5", "button head screw M5x5", "M5 x 5 mm"] |
| 197 | standard = "ISO 7380-1" |
| 198 | |
| 199 | [[presets]] |
| 200 | id = "M5x6" |
| 201 | title = "M5 × 6" |
| 202 | params = { size = "M5", length = 6 } |
| 203 | aliases = ["ISO 7380 M5x6", "ISO 7380-1 M5x6", "BHCS M5x6", "button head screw M5x6", "M5 x 6 mm"] |
| 204 | standard = "ISO 7380-1" |
| 205 | |
| 206 | [[presets]] |
| 207 | id = "M5x8" |
| 208 | title = "M5 × 8" |
| 209 | params = { size = "M5", length = 8 } |
| 210 | aliases = ["ISO 7380 M5x8", "ISO 7380-1 M5x8", "BHCS M5x8", "button head screw M5x8", "M5 x 8 mm"] |
| 211 | standard = "ISO 7380-1" |
| 212 | |
| 213 | [[presets]] |
| 214 | id = "M5x10" |
| 215 | title = "M5 × 10" |
| 216 | params = { size = "M5", length = 10 } |
| 217 | aliases = ["ISO 7380 M5x10", "ISO 7380-1 M5x10", "BHCS M5x10", "button head screw M5x10", "M5 x 10 mm"] |
| 218 | standard = "ISO 7380-1" |
| 219 | |
| 220 | [[presets]] |
| 221 | id = "M5x12" |
| 222 | title = "M5 × 12" |
| 223 | params = { size = "M5", length = 12 } |
| 224 | aliases = ["ISO 7380 M5x12", "ISO 7380-1 M5x12", "BHCS M5x12", "button head screw M5x12", "M5 x 12 mm"] |
| 225 | standard = "ISO 7380-1" |
| 226 | |
| 227 | [[presets]] |
| 228 | id = "M5x16" |
| 229 | title = "M5 × 16" |
| 230 | params = { size = "M5", length = 16 } |
| 231 | aliases = ["ISO 7380 M5x16", "ISO 7380-1 M5x16", "BHCS M5x16", "button head screw M5x16", "M5 x 16 mm"] |
| 232 | standard = "ISO 7380-1" |
| 233 | |
| 234 | [[presets]] |
| 235 | id = "M5x20" |
| 236 | title = "M5 × 20" |
| 237 | params = { size = "M5", length = 20 } |
| 238 | aliases = ["ISO 7380 M5x20", "ISO 7380-1 M5x20", "BHCS M5x20", "button head screw M5x20", "M5 x 20 mm"] |
| 239 | standard = "ISO 7380-1" |
| 240 | |
| 241 | [[presets]] |
| 242 | id = "M5x25" |
| 243 | title = "M5 × 25" |
| 244 | params = { size = "M5", length = 25 } |
| 245 | aliases = ["ISO 7380 M5x25", "ISO 7380-1 M5x25", "BHCS M5x25", "button head screw M5x25", "M5 x 25 mm"] |
| 246 | standard = "ISO 7380-1" |
| 247 | |
| 248 | [[presets]] |
| 249 | id = "M5x30" |
| 250 | title = "M5 × 30" |
| 251 | params = { size = "M5", length = 30 } |
| 252 | aliases = ["ISO 7380 M5x30", "ISO 7380-1 M5x30", "BHCS M5x30", "button head screw M5x30", "M5 x 30 mm"] |
| 253 | standard = "ISO 7380-1" |
| 254 | |
| 255 | [[presets]] |
| 256 | id = "M5x35" |
| 257 | title = "M5 × 35" |
| 258 | params = { size = "M5", length = 35 } |
| 259 | aliases = ["ISO 7380 M5x35", "ISO 7380-1 M5x35", "BHCS M5x35", "button head screw M5x35", "M5 x 35 mm"] |
| 260 | standard = "ISO 7380-1" |
| 261 | |
| 262 | [[presets]] |
| 263 | id = "M5x40" |
| 264 | title = "M5 × 40" |
| 265 | params = { size = "M5", length = 40 } |
| 266 | aliases = ["ISO 7380 M5x40", "ISO 7380-1 M5x40", "BHCS M5x40", "button head screw M5x40", "M5 x 40 mm"] |
| 267 | standard = "ISO 7380-1" |
| 268 | |
| 269 | [[presets]] |
| 270 | id = "M5x50" |
| 271 | title = "M5 × 50" |
| 272 | params = { size = "M5", length = 50 } |
| 273 | aliases = ["ISO 7380 M5x50", "ISO 7380-1 M5x50", "BHCS M5x50", "button head screw M5x50", "M5 x 50 mm"] |
| 274 | standard = "ISO 7380-1" |
| 275 | |
| 276 | [[presets]] |
| 277 | id = "M6x4" |
| 278 | title = "M6 × 4" |
| 279 | params = { size = "M6", length = 4 } |
| 280 | aliases = ["ISO 7380 M6x4", "ISO 7380-1 M6x4", "BHCS M6x4", "button head screw M6x4", "M6 x 4 mm"] |
| 281 | standard = "ISO 7380-1" |
| 282 | |
| 283 | [[presets]] |
| 284 | id = "M6x5" |
| 285 | title = "M6 × 5" |
| 286 | params = { size = "M6", length = 5 } |
| 287 | aliases = ["ISO 7380 M6x5", "ISO 7380-1 M6x5", "BHCS M6x5", "button head screw M6x5", "M6 x 5 mm"] |
| 288 | standard = "ISO 7380-1" |
| 289 | |
| 290 | [[presets]] |
| 291 | id = "M6x6" |
| 292 | title = "M6 × 6" |
| 293 | params = { size = "M6", length = 6 } |
| 294 | aliases = ["ISO 7380 M6x6", "ISO 7380-1 M6x6", "BHCS M6x6", "button head screw M6x6", "M6 x 6 mm"] |
| 295 | standard = "ISO 7380-1" |
| 296 | |
| 297 | [[presets]] |
| 298 | id = "M6x8" |
| 299 | title = "M6 × 8" |
| 300 | params = { size = "M6", length = 8 } |
| 301 | aliases = ["ISO 7380 M6x8", "ISO 7380-1 M6x8", "BHCS M6x8", "button head screw M6x8", "M6 x 8 mm"] |
| 302 | standard = "ISO 7380-1" |
| 303 | |
| 304 | [[presets]] |
| 305 | id = "M6x10" |
| 306 | title = "M6 × 10" |
| 307 | params = { size = "M6", length = 10 } |
| 308 | aliases = ["ISO 7380 M6x10", "ISO 7380-1 M6x10", "BHCS M6x10", "button head screw M6x10", "M6 x 10 mm"] |
| 309 | standard = "ISO 7380-1" |
| 310 | |
| 311 | [[presets]] |
| 312 | id = "M6x12" |
| 313 | title = "M6 × 12" |
| 314 | params = { size = "M6", length = 12 } |
| 315 | aliases = ["ISO 7380 M6x12", "ISO 7380-1 M6x12", "BHCS M6x12", "button head screw M6x12", "M6 socket button head screw", "ISO7380 M6x12"] |
| 316 | standard = "ISO 7380-1" |
| 317 | |
| 318 | [[presets]] |
| 319 | id = "M6x16" |
| 320 | title = "M6 × 16" |
| 321 | params = { size = "M6", length = 16 } |
| 322 | aliases = ["ISO 7380 M6x16", "ISO 7380-1 M6x16", "BHCS M6x16", "button head screw M6x16", "M6 x 16 mm"] |
| 323 | standard = "ISO 7380-1" |
| 324 | |
| 325 | [[presets]] |
| 326 | id = "M6x20" |
| 327 | title = "M6 × 20" |
| 328 | params = { size = "M6", length = 20 } |
| 329 | aliases = ["ISO 7380 M6x20", "ISO 7380-1 M6x20", "BHCS M6x20", "button head screw M6x20", "M6 x 20 mm"] |
| 330 | standard = "ISO 7380-1" |
| 331 | |
| 332 | [[presets]] |
| 333 | id = "M6x25" |
| 334 | title = "M6 × 25" |
| 335 | params = { size = "M6", length = 25 } |
| 336 | aliases = ["ISO 7380 M6x25", "ISO 7380-1 M6x25", "BHCS M6x25", "button head screw M6x25", "M6 x 25 mm"] |
| 337 | standard = "ISO 7380-1" |
| 338 | |
| 339 | [[presets]] |
| 340 | id = "M6x30" |
| 341 | title = "M6 × 30" |
| 342 | params = { size = "M6", length = 30 } |
| 343 | aliases = ["ISO 7380 M6x30", "ISO 7380-1 M6x30", "BHCS M6x30", "button head screw M6x30", "M6 x 30 mm"] |
| 344 | standard = "ISO 7380-1" |
| 345 | |
| 346 | [[presets]] |
| 347 | id = "M6x35" |
| 348 | title = "M6 × 35" |
| 349 | params = { size = "M6", length = 35 } |
| 350 | aliases = ["ISO 7380 M6x35", "ISO 7380-1 M6x35", "BHCS M6x35", "button head screw M6x35", "M6 x 35 mm"] |
| 351 | standard = "ISO 7380-1" |
| 352 | |
| 353 | [[presets]] |
| 354 | id = "M6x40" |
| 355 | title = "M6 × 40" |
| 356 | params = { size = "M6", length = 40 } |
| 357 | aliases = ["ISO 7380 M6x40", "ISO 7380-1 M6x40", "BHCS M6x40", "button head screw M6x40", "M6 x 40 mm"] |
| 358 | standard = "ISO 7380-1" |
| 359 | |
| 360 | [[presets]] |
| 361 | id = "M6x50" |
| 362 | title = "M6 × 50" |
| 363 | params = { size = "M6", length = 50 } |
| 364 | aliases = ["ISO 7380 M6x50", "ISO 7380-1 M6x50", "BHCS M6x50", "button head screw M6x50", "M6 x 50 mm"] |
| 365 | standard = "ISO 7380-1" |
| 366 | |
| 367 | [[presets]] |
| 368 | id = "M8x4" |
| 369 | title = "M8 × 4" |
| 370 | params = { size = "M8", length = 4 } |
| 371 | aliases = ["ISO 7380 M8x4", "ISO 7380-1 M8x4", "BHCS M8x4", "button head screw M8x4", "M8 x 4 mm"] |
| 372 | standard = "ISO 7380-1" |
| 373 | |
| 374 | [[presets]] |
| 375 | id = "M8x5" |
| 376 | title = "M8 × 5" |
| 377 | params = { size = "M8", length = 5 } |
| 378 | aliases = ["ISO 7380 M8x5", "ISO 7380-1 M8x5", "BHCS M8x5", "button head screw M8x5", "M8 x 5 mm"] |
| 379 | standard = "ISO 7380-1" |
| 380 | |
| 381 | [[presets]] |
| 382 | id = "M8x6" |
| 383 | title = "M8 × 6" |
| 384 | params = { size = "M8", length = 6 } |
| 385 | aliases = ["ISO 7380 M8x6", "ISO 7380-1 M8x6", "BHCS M8x6", "button head screw M8x6", "M8 x 6 mm"] |
| 386 | standard = "ISO 7380-1" |
| 387 | |
| 388 | [[presets]] |
| 389 | id = "M8x8" |
| 390 | title = "M8 × 8" |
| 391 | params = { size = "M8", length = 8 } |
| 392 | aliases = ["ISO 7380 M8x8", "ISO 7380-1 M8x8", "BHCS M8x8", "button head screw M8x8", "M8 x 8 mm"] |
| 393 | standard = "ISO 7380-1" |
| 394 | |
| 395 | [[presets]] |
| 396 | id = "M8x10" |
| 397 | title = "M8 × 10" |
| 398 | params = { size = "M8", length = 10 } |
| 399 | aliases = ["ISO 7380 M8x10", "ISO 7380-1 M8x10", "BHCS M8x10", "button head screw M8x10", "M8 x 10 mm"] |
| 400 | standard = "ISO 7380-1" |
| 401 | |
| 402 | [[presets]] |
| 403 | id = "M8x12" |
| 404 | title = "M8 × 12" |
| 405 | params = { size = "M8", length = 12 } |
| 406 | aliases = ["ISO 7380 M8x12", "ISO 7380-1 M8x12", "BHCS M8x12", "button head screw M8x12", "M8 x 12 mm"] |
| 407 | standard = "ISO 7380-1" |
| 408 | |
| 409 | [[presets]] |
| 410 | id = "M8x16" |
| 411 | title = "M8 × 16" |
| 412 | params = { size = "M8", length = 16 } |
| 413 | aliases = ["ISO 7380 M8x16", "ISO 7380-1 M8x16", "BHCS M8x16", "button head screw M8x16", "M8 x 16 mm"] |
| 414 | standard = "ISO 7380-1" |
| 415 | |
| 416 | [[presets]] |
| 417 | id = "M8x20" |
| 418 | title = "M8 × 20" |
| 419 | params = { size = "M8", length = 20 } |
| 420 | aliases = ["ISO 7380 M8x20", "ISO 7380-1 M8x20", "BHCS M8x20", "button head screw M8x20", "M8 x 20 mm"] |
| 421 | standard = "ISO 7380-1" |
| 422 | |
| 423 | [[presets]] |
| 424 | id = "M8x25" |
| 425 | title = "M8 × 25" |
| 426 | params = { size = "M8", length = 25 } |
| 427 | aliases = ["ISO 7380 M8x25", "ISO 7380-1 M8x25", "BHCS M8x25", "button head screw M8x25", "M8 x 25 mm"] |
| 428 | standard = "ISO 7380-1" |
| 429 | |
| 430 | [[presets]] |
| 431 | id = "M8x30" |
| 432 | title = "M8 × 30" |
| 433 | params = { size = "M8", length = 30 } |
| 434 | aliases = ["ISO 7380 M8x30", "ISO 7380-1 M8x30", "BHCS M8x30", "button head screw M8x30", "M8 x 30 mm"] |
| 435 | standard = "ISO 7380-1" |
| 436 | |
| 437 | [[presets]] |
| 438 | id = "M8x35" |
| 439 | title = "M8 × 35" |
| 440 | params = { size = "M8", length = 35 } |
| 441 | aliases = ["ISO 7380 M8x35", "ISO 7380-1 M8x35", "BHCS M8x35", "button head screw M8x35", "M8 x 35 mm"] |
| 442 | standard = "ISO 7380-1" |
| 443 | |
| 444 | [[presets]] |
| 445 | id = "M8x40" |
| 446 | title = "M8 × 40" |
| 447 | params = { size = "M8", length = 40 } |
| 448 | aliases = ["ISO 7380 M8x40", "ISO 7380-1 M8x40", "BHCS M8x40", "button head screw M8x40", "M8 x 40 mm"] |
| 449 | standard = "ISO 7380-1" |
| 450 | |
| 451 | [[presets]] |
| 452 | id = "M8x50" |
| 453 | title = "M8 × 50" |
| 454 | params = { size = "M8", length = 50 } |
| 455 | aliases = ["ISO 7380 M8x50", "ISO 7380-1 M8x50", "BHCS M8x50", "button head screw M8x50", "M8 x 50 mm"] |
| 456 | standard = "ISO 7380-1" |
| 457 |
Hexagon socket button head screw, metric coarse thread, M3 to M16, at any length. Presets cover the common catalogue sizes (M3 × 6, M5 × 10, ...).
Envelope for assemblies and clearance checks:
length); the thread is not modelled.The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z.
| Parameter | Meaning |
|---|---|
size |
Thread size, M3 to M16 |
length |
Nominal length l under the head, mm |
material |
steel (property class 10.9 / 12.9, black oxide), stainless-a2, stainless-a4 (ISO 3506-1) |
ISO 7380-1:2011, Button head screws — Part 1: Hexagon socket button head screws, Table 1, p. 3: d, dk max, k max, s (nominal), t min, read from the official preview (https://cdn.standards.iteh.ai/samples/53671/84df01c5fcce4a91896ac3b0c55ca128/ISO-7380-1-2011.pdf) and fasten.it's DIN EN ISO 7380-1:2011-11 (https://fasten.it/en/Norms/Norm/DIN EN ISO 7380-1). The current edition, ISO 7380-1:2022, Table 1, p. 4 (https://cdn.standards.iteh.ai/samples/78699/a175805085534f98983d6c8aa583a5b0/ISO-7380-1-2022.pdf), has the same dk max, k max, s and t min (it adds t max and changes dw and e, which this model doesn't use).
| Size | dk | k | s | t |
|---|---|---|---|---|
| M3 | 5.7 | 1.65 | 2.0 | 1.04 |
| M4 | 7.6 | 2.2 | 2.5 | 1.3 |
| M5 | 9.5 | 2.75 | 3.0 | 1.56 |
| M6 | 10.5 | 3.3 | 4.0 | 2.08 |
| M8 | 14.0 | 4.4 | 5.0 | 2.6 |
| M10 | 17.5 | 5.5 | 6.0 | 3.12 |
| M12 | 21.0 | 6.6 | 8.0 | 4.16 |
| M16 | 28.0 | 8.8 | 10.0 | 5.2 |
Preset list: sizes and lengths of the step.parts catalogue (MIT), see library/NOTICE.md.
| 1 | # Button head screw (ISO 7380-1) |
| 2 | |
| 3 | Hexagon socket button head screw, metric coarse thread, M3 to M16, at any length. Presets cover the common catalogue |
| 4 | sizes (M3 × 6, M5 × 10, ...). |
| 5 | |
| 6 | ## Geometry |
| 7 | |
| 8 | Envelope for assemblies and clearance checks: |
| 9 | |
| 10 | - domed head: a spherical cap of diameter **dk max** and height **k max** (the standard's head radius is a reference |
| 11 | value; the cap through the rim and the top is used); |
| 12 | - hexagon socket, key size **s** (nominal), depth **t min**, flat bottom; |
| 13 | - plain shank at the nominal thread diameter **d**, length **l** (`length`); the thread is not modelled. |
| 14 | |
| 15 | The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z. |
| 16 | |
| 17 | ## Parameters |
| 18 | |
| 19 | | Parameter | Meaning | |
| 20 | |---|---| |
| 21 | | `size` | Thread size, M3 to M16 | |
| 22 | | `length` | Nominal length l under the head, mm | |
| 23 | | `material` | `steel` (property class 10.9 / 12.9, black oxide), `stainless-a2`, `stainless-a4` (ISO 3506-1) | |
| 24 | |
| 25 | ## Source |
| 26 | |
| 27 | ISO 7380-1:2011, *Button head screws — Part 1: Hexagon socket button head screws*, Table 1, p. 3: d, dk max, k max, |
| 28 | s (nominal), t min, read from the official preview |
| 29 | (<https://cdn.standards.iteh.ai/samples/53671/84df01c5fcce4a91896ac3b0c55ca128/ISO-7380-1-2011.pdf>) and fasten.it's |
| 30 | DIN EN ISO 7380-1:2011-11 (<https://fasten.it/en/Norms/Norm/DIN%20EN%20ISO%207380-1>). The current edition, |
| 31 | ISO 7380-1:2022, Table 1, p. 4 |
| 32 | (<https://cdn.standards.iteh.ai/samples/78699/a175805085534f98983d6c8aa583a5b0/ISO-7380-1-2022.pdf>), has the same |
| 33 | dk max, k max, s and t min (it adds t max and changes dw and e, which this model doesn't use). |
| 34 | |
| 35 | | Size | dk | k | s | t | |
| 36 | |---|---|---|---|---| |
| 37 | | M3 | 5.7 | 1.65 | 2.0 | 1.04 | |
| 38 | | M4 | 7.6 | 2.2 | 2.5 | 1.3 | |
| 39 | | M5 | 9.5 | 2.75 | 3.0 | 1.56 | |
| 40 | | M6 | 10.5 | 3.3 | 4.0 | 2.08 | |
| 41 | | M8 | 14.0 | 4.4 | 5.0 | 2.6 | |
| 42 | | M10 | 17.5 | 5.5 | 6.0 | 3.12 | |
| 43 | | M12 | 21.0 | 6.6 | 8.0 | 4.16 | |
| 44 | | M16 | 28.0 | 8.8 | 10.0 | 5.2 | |
| 45 | |
| 46 | Preset list: sizes and lengths of the step.parts catalogue (MIT), see `library/NOTICE.md`. |
| 47 |
ISO 7380-1 hexagon socket button head screw. Envelope geometry for assemblies: domed head (dk max, k max), hexagon socket (s, t min) and a plain shank at the nominal thread diameter; the thread itself is not modelled. The head's bearing face is on the XY plane at the origin and the shank points along -Z; `length` is the nominal length under the head. Dimensions from ISO 7380-1:2011 Table 1 (see the README).
Hexagon socket button head screw, metric coarse thread, M3 to M16, at any length. Presets cover the common catalogue sizes (M3 × 6, M5 × 10, ...).
Envelope for assemblies and clearance checks:
length); the thread is not modelled.The head's bearing face is on the XY plane at the origin, the head above it, the shank along -Z.
| Parameter | Meaning |
|---|---|
size |
Thread size, M3 to M16 |
length |
Nominal length l under the head, mm |
material |
steel (property class 10.9 / 12.9, black oxide), stainless-a2, stainless-a4 (ISO 3506-1) |
ISO 7380-1:2011, Button head screws — Part 1: Hexagon socket button head screws, Table 1, p. 3: d, dk max, k max, s (nominal), t min, read from the official preview (https://cdn.standards.iteh.ai/samples/53671/84df01c5fcce4a91896ac3b0c55ca128/ISO-7380-1-2011.pdf) and fasten.it's DIN EN ISO 7380-1:2011-11 (https://fasten.it/en/Norms/Norm/DIN EN ISO 7380-1). The current edition, ISO 7380-1:2022, Table 1, p. 4 (https://cdn.standards.iteh.ai/samples/78699/a175805085534f98983d6c8aa583a5b0/ISO-7380-1-2022.pdf), has the same dk max, k max, s and t min (it adds t max and changes dw and e, which this model doesn't use).
| Size | dk | k | s | t |
|---|---|---|---|---|
| M3 | 5.7 | 1.65 | 2.0 | 1.04 |
| M4 | 7.6 | 2.2 | 2.5 | 1.3 |
| M5 | 9.5 | 2.75 | 3.0 | 1.56 |
| M6 | 10.5 | 3.3 | 4.0 | 2.08 |
| M8 | 14.0 | 4.4 | 5.0 | 2.6 |
| M10 | 17.5 | 5.5 | 6.0 | 3.12 |
| M12 | 21.0 | 6.6 | 8.0 | 4.16 |
| M16 | 28.0 | 8.8 | 10.0 | 5.2 |
Preset list: sizes and lengths of the step.parts catalogue (MIT), see library/NOTICE.md.
Materials and finishes: each part is made of its standard's engineering material, with its usual finish.
Hexagon head screw, fully threaded, ISO 4017 / DIN 933, M1.6 to M36, any length, with catalogue sizes as presets.
Hexagon socket countersunk head screw, ISO 10642 / DIN 7991, M3 to M12, any length, with catalogue sizes as presets.
Pan head screw with cross recess, ISO 7045, M2 to M8, any length.
Captive panel screw envelope, M3 to M5, any length: shank and round knob (simplified).