Sign in with STEVE

steve/levelling-foot

Levelling foot envelope (round base + threaded stud), M6 to M12, any base diameter and stud length.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 36 lines · Python · STEVE runtime · checked
Download
1"""Levelling foot envelope: a round base and a threaded stud (drawn at its nominal diameter), as step.parts' published
2models draw it, threads M6 to M12, base diameters 20 to 50 mm (any).
3
4The base (diameter `base_diameter`, thickness BASE_THICKNESS) sits on the XY plane, centred on the origin; the stud
5rises from its top along +Z, `stud_length` long. The swivel joint, the rubber pad and the nut are not modelled: the
6models draw every style with this same envelope.
7"""
8from steve import Model
9
10thread = "M8" # Stud thread
11base_diameter = 30 # mm Base diameter
12stud_length = 25 # mm Stud length (above the base)
13material = "unspecified" # Material
14
15# mm, measured on step.parts' models leveling_foot_m<d>_d<D> (cylinders of their two solids: base radius D/2 and 5 mm
16# thick in every model; stud radius = half the thread's nominal diameter, 25 mm long above the base)
17BASE_THICKNESS = 5.0
18STUDS = {"M6": 6.0, "M8": 8.0, "M10": 10.0, "M12": 12.0}
19MATERIALS = {
20 "unspecified": (None, None), # the models name no material
21 "steel": ("steel-generic", "#9da2a8"),
22 "stainless-304": ("stainless-304", "#c9ccd0"),
23}
24
25d = STUDS[thread]
26if base_diameter <= d:
27 raise ValueError("The base must be wider than the stud.")
28material_id, colour = MATERIALS[material]
29
30model = Model()
31model.cylinder("base", base_diameter / 2, BASE_THICKNESS, name="Base")
32model.cylinder("stud", d / 2, stud_length, at=(0, 0, BASE_THICKNESS), op="join", name="Stud")
33if material_id:
34 model.material(material_id, color=colour)
35result = model.result()
36

A levelling foot envelope for assemblies: a round base 5 mm thick and a threaded stud (drawn at its nominal diameter), threads M6 to M12, base diameter and stud length free. Measured from step.parts' published models (MIT), which draw fixed, swivel and rubber-pad feet with this same envelope; no maker or standard is behind them. Base on the XY plane centred on the origin, stud along +Z. Dimensions and attribution: see the README.

Levelling foot (envelope)

A levelling foot envelope for assemblies: a round base and a threaded stud, threads M6 to M12, any base diameter and stud length.

Geometry

The base (diameter base_diameter, 5 mm thick) sits on the XY plane, centred on the origin; the stud (drawn at the thread's nominal diameter, no thread) rises from its top along +Z, stud_length long.

Feature mm
Base thickness 5
Stud diameter M6: 6, M8: 8, M10: 10, M12: 12
Stud length (models) 25
Base diameters (models) 20, 25, 30, 40, 50

Parameters

Parameter Meaning
thread M6, M8, M10, M12
base_diameter mm
stud_length mm, above the base
material unspecified (no material assigned), steel, stainless-304

Sources

These generic feet name no maker and no standard covers them. The geometry was measured from the published reference models below (the cylinders of each model's two solids: base radius and thickness, stud radius and length), and every preset is checked against its own models: bounding box within 0.05 mm and volume within 2 %.

  • step.parts, leveling_foot_m<d>_d<D>, swivel_leveling_foot_m<d>_d<D> and rubber_pad_leveling_foot_m<d>_d<D> (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'): the fixed, swivel and rubber-pad feet are all drawn with this one envelope (no swivel ball, pad or nut), and the stud is a plain cylinder. The models draw base and stud as two touching solids; the recipe joins them into one.

Preset list: from the step.parts catalogue (MIT), see library/NOTICE.md; a size's three styles share one preset.

  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/hex-nut

Hex nut, ISO 4032, M2 to M12.

7 9 variants 0 2 days ago v1.1.0
STEVEMIT

steve/plate

Rectangular plate blank, any width, length and thickness, in common plate and sheet materials.

4 45 sizes 0 1 day ago v1.0.0