Sign in with STEVE

steve/captive-panel-screw

Captive panel screw envelope, M3 to M5, any length: shank and round knob (simplified).

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 32 lines · Python · STEVE runtime · checked
Download
1"""Captive panel screw envelope, M3 to M5, any length, as step.parts' published models draw it: a shank (drawn at the
2thread's nominal diameter) and a round knob, two bodies.
3
4The shank (diameter d, length `length`) runs along +Z from z = 0; the knob (diameter 2d, height d) is centred on the
5shank's top end, so it overlaps the shank by d / 2 (two bodies, as in the models: the knob is a separate part of a
6captive screw). No thread, retainer, spring or knurl.
7"""
8from steve import Model
9
10thread = "M3" # Thread
11length = 20 # mm Shank length
12material = "unspecified" # Material
13
14# mm, measured on step.parts' models captive_panel_screw_m<d>_l<length> (the cylinders of their two solids): shank
15# diameter = the thread's nominal d; knob diameter 2d and height d, centred on the shank's top end (every model)
16THREADS = {"M3": 3.0, "M4": 4.0, "M5": 5.0}
17KNOB_DIAMETER = 2.0 # x d
18KNOB_HEIGHT = 1.0 # x d
19MATERIALS = {"unspecified": (None, None), "steel": ("steel-generic", "#9da2a8"),
20 "stainless-304": ("stainless-304", "#c9ccd0")}
21
22d = THREADS[thread]
23material_id, colour = MATERIALS[material]
24
25model = Model()
26model.cylinder("shank", d / 2, length, name="Shank")
27model.cylinder("knob", KNOB_DIAMETER * d / 2, KNOB_HEIGHT * d, at=(0, 0, length - KNOB_HEIGHT * d / 2), op="new",
28 name="Knob")
29if material_id:
30 model.material(material_id, color=colour)
31result = model.result()
32

A captive panel screw envelope for assemblies: a shank at the thread's nominal diameter and a round knob (2d across, d high) centred on its top end, two bodies, M3 to M5 at any length. Measured from step.parts' published models (MIT); no maker or standard is behind them (PennEngineering PF11/PF12 come in other lengths). Shank along +Z from the origin. Dimensions and attribution: see the README.

Captive panel screw (envelope)

A captive panel screw envelope for assemblies: a shank and a round knob, M3 to M5, any length.

Geometry

The shank (diameter d, the thread's nominal diameter, no thread) runs along +Z from z = 0, length long; the knob (diameter 2d, height d) is centred on the shank's top end, overlapping it by d / 2. Shank and knob are two bodies, as in the models. Overall height: length + d / 2.

Thread Shank Ø Knob Ø × height
M3 3 6 × 3
M4 4 8 × 4
M5 5 10 × 5

Parameters

Parameter Meaning
thread M3, M4, M5
length shank length, mm
material unspecified (no material assigned), steel, stainless-304

Sources

These generic screws name no maker (PennEngineering's PF11/PF12 come in other lengths) and no standard covers them. The geometry was measured from the published reference models below (the cylinders of each model's two solids), and every preset is checked against its own model: bounding box within 0.05 mm and volume within 2 %.

  • step.parts, captive_panel_screw_m<d>_l<length> for M3, M4, M5 × 10 to 30 mm (https://www.step.parts, repository https://github.com/earthtojake/step.parts, commit c6113328, catalog/step/): step.parts' own models, original project material under the repository's MIT licence (© 2026 earthtojake). They name no material, so the presets have material = "unspecified".

Simplifications (the models'): plain cylinders: no thread, retainer, spring, ferrule or knurl.

Preset list: from the step.parts catalogue (MIT), see library/NOTICE.md.

  1. 1.0.0 Latest
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
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