Sign in with STEVE

steve/set-screw

Hexagon socket set screw with flat point, ISO 4026 / DIN 913, M3 to M12, length from d, with catalogue sizes as presets.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 50 lines · Python · STEVE runtime · checked
Download
1"""Hexagon socket set screw with flat point, ISO 4026 (DIN 913), M3 to M12, length l >= d.
2
3Envelope model for assemblies: plain cylinder at the nominal thread diameter d (the thread is not modelled), hexagon
4socket (key size s, depth t min for the length) at one end and a flat point of diameter dp max at the other, chamfered at 45°.
5The socket end is on the XY plane at the origin, the screw along -Z; `length` is the nominal (overall) length l.
6"""
7from steve import Model
8
9size = "M5" # Thread size
10length = 8 # mm Nominal length (overall)
11material = "steel" # Material
12
13# ISO 4026:2003, Table 1 (official preview p. 3:
14# https://cdn.standards.iteh.ai/samples/36431/f53ced64ab1946679bd80f0a0e6cac63/ISO-4026-2003.pdf; also
15# https://fasten.it/en/Norms/Norm/DIN%20EN%20ISO%204026, DIN EN ISO 4026:2004-05).
16# size: (thread d, flat point diameter dp max, hexagon socket s nominal, socket depth t min for the shortest length
17# (footnote d: lengths in the shaded cells, which are l = d for M3 to M12), t min for longer lengths (footnote e))
18DIMENSIONS = {
19 "M3": (3.0, 2.0, 1.5, 1.2, 2.0),
20 "M4": (4.0, 2.5, 2.0, 1.5, 2.5),
21 "M5": (5.0, 3.5, 2.5, 2.0, 3.0),
22 "M6": (6.0, 4.0, 3.0, 2.0, 3.5),
23 "M8": (8.0, 5.5, 4.0, 3.0, 5.0),
24 "M10": (10.0, 7.0, 5.0, 4.0, 6.0),
25 "M12": (12.0, 8.5, 6.0, 4.8, 8.0),
26}
27# material choice: (STEVE material library id, appearance colour)
28MATERIALS = {
29 "steel": ("steel-generic", "#2b2d30"), # property class 45H, black oxide finish
30 "stainless-a2": ("stainless-304", "#c9ccd0"), # ISO 3506-3 A2-21H
31 "stainless-a4": ("stainless-316", "#c9ccd0"), # ISO 3506-3 A4-21H
32}
33
34d, dp, s, t_short, t_long = DIMENSIONS[size]
35if length < d:
36 raise ValueError(f"ISO 4026 has no {size} screw shorter than {d:g} mm (its socket depth isn't defined there)")
37t = t_short if length <= d else t_long # the shaded (shortest) length is l = d for every size here
38material_id, colour = MATERIALS[material]
39point = (d - dp) / 2 # 45° chamfer from d down to the flat point dp
40
41model = Model()
42with model.sketch("profile", on="XZ", name="Profile") as sk:
43 sk.polyline("outline", [(0, 0), (d / 2, 0), (d / 2, -(length - point)), (dp / 2, -length), (0, -length)])
44model.revolve("body", "profile", axis="Z", name="Screw")
45with model.sketch("socket_sketch", on="XY", name="Hexagon socket") as sk:
46 sk.polygon("hex", (0, 0), s / 2, 6, inscribed=False)
47model.extrude("socket", "socket_sketch", distance=-t, op="cut", name="Socket")
48model.material(material_id, color=colour)
49result = model.result()
50

ISO 4026 (DIN 913) hexagon socket set screw with flat point (grub screw). Envelope geometry for assemblies: a plain cylinder at the nominal thread diameter, hexagon socket (s, t min) and a flat point (dp max, 45° chamfer); the thread itself is not modelled. The socket end is on the XY plane at the origin and the screw points along -Z; `length` is the overall length. Dimensions from ISO 4026:2003 Table 1 (see the README).

Set screw, flat point (ISO 4026 / DIN 913)

Hexagon socket set screw (grub screw) with flat point, metric coarse thread, M3 to M12, length l from d up. Presets cover the common catalogue sizes (M3 × 3, M5 × 8, ...).

Geometry

Envelope for assemblies:

  • plain cylinder at the nominal thread diameter d, overall length l (length); the thread is not modelled;
  • hexagon socket at one end, key size s (nominal), depth t min for the length (see below), flat bottom;
  • flat point of diameter dp max at the other end, chamfered at 45° from d.

The socket end 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; at least d
material steel (property class 45H, black oxide), stainless-a2, stainless-a4 (ISO 3506-3)

Source

ISO 4026:2003, Hexagon socket set screws with flat point, Table 1, p. 3: d, dp max, s (nominal), t min. Read from the official preview https://cdn.standards.iteh.ai/samples/36431/f53ced64ab1946679bd80f0a0e6cac63/ISO-4026-2003.pdf and checked against DIN EN ISO 4026:2004-05 on fasten.it ("reproduced by permission of DIN", https://fasten.it/en/Norms/Norm/DIN EN ISO 4026, short-length column). DIN 913 is the same screw. ISO 4026:2026 is now current; its change list (DIN Media, DIN EN ISO 4026:2026) adds M30, changes the dp tolerance for dp ≤ 1 mm and deletes the masses, so none of the values below changes.

The table gives two t min values: footnote d, for the lengths in the shaded cells, which for M3 to M12 are exactly l = d (the shortest length of each size); footnote e, for every longer length. The model uses the first for l = d and the second for l > d. There is no ISO 4026 screw shorter than d, so length must be at least d.

Size dp max s t min (l = d) t min (l > d)
M3 2.0 1.5 1.2 2.0
M4 2.5 2.0 1.5 2.5
M5 3.5 2.5 2.0 3.0
M6 4.0 3.0 2.0 3.5
M8 5.5 4.0 3.0 5.0
M10 7.0 5.0 4.0 6.0
M12 8.5 6.0 4.8 8.0

Corrected in this audit: the socket depths were not from the table (0.75, 1, 1.25, 1.5, 2, 2.5, 3 = s / 2); they are now the table's t min. The catalogue's screws shorter than d (M4 × 3, M5 × 3 and × 4, M6 × 3 to × 5) are not ISO 4026 sizes and have no preset.

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

  1. 1.0.0 Latest
More #fastener
STEVEMIT

steve/inch-set-screw

Socket set screw, inch, ASME B18.3, #0 to 1/2 in, UNC/UNF, with catalogue sizes as presets.

0 73 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/countersunk-screw

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

0 62 sizes 0 1 day ago v2.0.0