Sign in with STEVE

steve/countersunk-screw

Hexagon socket countersunk head screw, ISO 10642 / DIN 7991, M3 to M12, any length, with catalogue sizes as presets.

v2.0.0 Latest STEVE MIT 0
Isometric
part.py 49 lines · Python · STEVE runtime · checked
Download
1"""Hexagon socket countersunk head screw, ISO 10642 (DIN 7991), M3 to M12, any length.
2
3Envelope model for assemblies: 90 degree countersunk head (the cone of the theoretical sharp-edge diameter dk th and
4height k, its rim turned to the actual head diameter dk min, so it sits in a countersink exactly as the standard
5intends), hexagon socket (key size s, depth t min) and a plain shank at the nominal thread diameter d (the thread is not
6modelled). The head's top face is on the XY plane at the origin, the screw along -Z; `length` is the nominal length
7l, the overall length (head included), as the standard measures it.
8"""
9from steve import Model
10
11size = "M4" # Thread size
12length = 12 # mm Nominal length (overall, head included)
13material = "steel" # Material
14
15# ISO 10642:2004, Table 1 (official preview p. 4:
16# https://cdn.standards.iteh.ai/samples/34454/32dec7e84d974361b85f744935ab2175/ISO-10642-2004.pdf; also
17# https://fasten.it/en/Norms/Norm/DIN%20EN%20ISO%2010642, editions 2004-06 and 2013-04). size: (thread d, head diameter dk theoretical max, head diameter dk actual min,
18# head height k max, hexagon socket s, socket depth t min)
19DIMENSIONS = {
20 "M3": (3.0, 6.72, 5.54, 1.86, 2.0, 1.1),
21 "M4": (4.0, 8.96, 7.53, 2.48, 2.5, 1.5),
22 "M5": (5.0, 11.2, 9.43, 3.1, 3.0, 1.9),
23 "M6": (6.0, 13.44, 11.34, 3.72, 4.0, 2.2),
24 "M8": (8.0, 17.92, 15.24, 4.96, 5.0, 3.0),
25 "M10": (10.0, 22.4, 19.22, 6.2, 6.0, 3.6),
26 "M12": (12.0, 26.88, 23.12, 7.44, 8.0, 4.3),
27}
28# material choice: (STEVE material library id, appearance colour)
29MATERIALS = {
30 "steel": ("steel-generic", "#2b2d30"), # property class 8.8 / 10.9 / 12.9, black oxide finish
31 "stainless-a2": ("stainless-304", "#c9ccd0"), # ISO 3506-1 A2-70
32 "stainless-a4": ("stainless-316", "#c9ccd0"), # ISO 3506-1 A4-70 / A4-80
33}
34
35d, dk_th, dk, k, s, t = DIMENSIONS[size]
36material_id, colour = MATERIALS[material]
37total = max(length, k + 0.5)
38land = (dk_th - dk) / 2 # the 90° cone reaches dk this far under the top face
39
40model = Model()
41with model.sketch("profile", on="XZ", name="Profile") as sk:
42 sk.polyline("outline", [(0, 0), (dk / 2, 0), (dk / 2, -land), (d / 2, -k), (d / 2, -total), (0, -total)])
43model.revolve("body", "profile", axis="Z", name="Screw")
44with model.sketch("socket_sketch", on="XY", name="Hexagon socket") as sk:
45 sk.polygon("hex", (0, 0), s / 2, 6, inscribed=False)
46model.extrude("socket", "socket_sketch", distance=-t, op="cut", name="Socket")
47model.material(material_id, color=colour)
48result = model.result()
49

ISO 10642 (DIN 7991) hexagon socket countersunk head screw. Envelope geometry for assemblies: 90° head (the theoretical sharp-edge cone of height k, rim at the actual head diameter dk min), hexagon socket (s, t min) and a plain shank at the nominal thread diameter; the thread itself is not modelled. The head's top face is on the XY plane at the origin and the screw points along -Z; `length` is the nominal length, overall (head included), as the standard measures it. Dimensions from ISO 10642:2004 Table 1 (see the README).

Countersunk head screw (ISO 10642 / DIN 7991)

Hexagon socket countersunk (flat) head screw, metric coarse thread, M3 to M12, at any length. Presets cover the common catalogue sizes (M3 × 8, M5 × 16, ...).

Geometry

Envelope for assemblies and countersink checks:

  • 90° countersunk head: the cone of the theoretical (sharp-edge) diameter dk th and height k = (dk th − d) / 2, its rim turned to the actual head diameter dk min (a short cylindrical land at the top), so the cone seats in a countersink exactly as the standard intends;
  • hexagon socket, key size s (nominal), depth t min, flat bottom;
  • plain shank at the nominal thread diameter d; the thread is not modelled.

length is the nominal length l, measured overall (head included) as ISO 10642 does; it must be at least k + 0.5 mm. The head's top face is on the XY plane at the origin, the screw along -Z.

Parameters

Parameter Meaning
size Thread size, M3 to M12
length Nominal length l, overall, mm
material steel (property class 8.8 to 12.9, black oxide), stainless-a2, stainless-a4 (ISO 3506-1)

Source

ISO 10642:2004, Hexagon socket countersunk head screws, Table 1, p. 4: d, dk theoretical max, dk actual min, k max, s (nominal), t min, read from the official preview (https://cdn.standards.iteh.ai/samples/34454/32dec7e84d974361b85f744935ab2175/ISO-10642-2004.pdf; the M8 t is under the preview's watermark and was read from fasten.it) and checked against fasten.it's DIN EN ISO 10642 2004-06 and 2013-04 tables (https://fasten.it/en/Norms/Norm/DIN EN ISO 10642). Amendment 1:2012 changes only dk min of M20 (not offered here).

Edition note: ISO 10642:2019 (DIN EN ISO 10642:2020-02; carried into ISO 10642:2026) replaced w min by t max and, in fasten.it's reproduction of DIN EN ISO 10642:2020-02 (its only source found), lists smaller t min for M4 (1.4), M5 (1.75), M8 (2.9) and M10 (3.5). This recipe models the 2004 edition's values, which are confirmed by the official preview; every other column is the same in both.

Size dk th dk min k s t
M3 6.72 5.54 1.86 2.0 1.1
M4 8.96 7.53 2.48 2.5 1.5
M5 11.2 9.43 3.1 3.0 1.9
M6 13.44 11.34 3.72 4.0 2.2
M8 17.92 15.24 4.96 5.0 3.0
M10 22.4 19.22 6.2 6.0 3.6
M12 26.88 23.12 7.44 8.0 4.3

Preset list: sizes and lengths of the step.parts catalogue (MIT), see library/NOTICE.md.

  1. 2.0.0 Latest Compare with 1.1.0
  2. 1.1.0 Compare with 1.0.0

    Materials and finishes: each part is made of its standard's engineering material, with its usual finish.

  3. 1.0.0
More #fastener
STEVEMIT

steve/inch-flat-head-screw

Flat head (countersunk) socket cap screw, inch, ASME B18.3, #0 to 1/2 in, UNC/UNF, any length, with catalogue sizes as presets.

0 112 sizes 0 1 day ago v1.0.0
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/pan-head-screw

Pan head screw with cross recess, ISO 7045, M2 to M8, any length.

0 7 variants 0 2 days ago v1.1.0