Sign in with STEVE

steve/v-slot-extrusion

20 x 20 V-slot aluminium extrusion, any length, measured from the published FreeCAD-library model.

v1.0.0 Latest STEVE MIT 0
Isometric
part.py 65 lines · Python · STEVE runtime · checked
Download
1"""20 x 20 V-slot aluminium extrusion, any length.
2
3The section, centred on the origin in the XY plane, extruded along +Z by `length`: a 20 x 20 square with 0.5 mm corner
4radii and a V-slot in each face. Each slot: a 45 degree V from the face opening down to the lip tips, the lips' flat
5undersides, the undercut's straight walls, 45 degree walls down to the core and the core's small V notch; a 4.2 mm
6centre bore. All four slots are the same, turned 90 degrees.
7
8Geometry measured from the published FreeCAD-library model "2020x50_V_slot_profile-Part.step" (hasecilu, CC-BY-3.0);
9there is no manufacturer drawing. See the README.
10"""
11import math
12
13from steve import Model
14
15length = 100 # mm Length
16finish = "clear" # Anodising
17
18# mm, measured on the reference model's cross-section at mid-length (OCCT section, edges read exactly; the model's
19# own values are given to 0.05 mm, the 45 degree walls' ends to 1e-4 mm). x across the top slot from its centre line,
20# y up from the profile's centre.
21SECTION = {
22 "outer": 20.0, # outside, square
23 "corner_r": 0.5, # outside corner radius
24 "opening": 9.7, # slot width at the face (x = +-4.85)
25 "tip": 6.1, # between the lip tips (x = +-3.05), 1.8 below the face: the V is 45 degrees
26 "lip_y": 8.2, # lip underside (flat, out to the undercut wall)
27 "undercut": 11.0, # undercut width (walls at x = +-5.5)
28 "wall_y": 6.5607, # where the undercut wall turns into the 45 degree wall
29 "floor": 5.6786, # core face width at y = core_y (x = +-2.8393)
30 "core_y": 3.9, # core face
31 "notch": 0.4, # V notch in the core face, 0.2 deep
32 "notch_depth": 0.2,
33 "bore": 4.2, # centre bore
34}
35FINISHES = {"clear": "#cfd2d6", "black": "#2b2c2e"}
36
37s = SECTION
38half = s["outer"] / 2
39rc = s["corner_r"]
40# one slot, the top one, left to right (the outline runs clockwise: top face, then right face, ...)
41slot = [(-s["opening"] / 2, half), (-s["tip"] / 2, s["lip_y"]), (-s["undercut"] / 2, s["lip_y"]),
42 (-s["undercut"] / 2, s["wall_y"]), (-s["floor"] / 2, s["core_y"]), (-s["notch"] / 2, s["core_y"]),
43 (0.0, s["core_y"] - s["notch_depth"]), (s["notch"] / 2, s["core_y"]), (s["floor"] / 2, s["core_y"]),
44 (s["undercut"] / 2, s["wall_y"]), (s["undercut"] / 2, s["lip_y"]), (s["tip"] / 2, s["lip_y"]),
45 (s["opening"] / 2, half)]
46
47
48def turn(points, quarter):
49 a = -math.pi / 2 * quarter
50 return [(x * math.cos(a) - y * math.sin(a), x * math.sin(a) + y * math.cos(a)) for x, y in points]
51
52
53model = Model()
54with model.sketch("section", on="XY", name="Section") as sk:
55 for q in range(4): # top, right, bottom, left side: the top one turned 90 degrees clockwise each time
56 pts = turn([(-half + rc, half)] + slot + [(half - rc, half)], q)
57 sk.polyline(f"side_{q}", pts, closed=False)
58 cx, cy = turn([(half - rc, half - rc)], q)[0]
59 start = 90 - 90 * q - 90
60 sk.arc(f"corner_{q}", (cx, cy), rc, start, start + 90)
61 sk.circle("bore", (0, 0), s["bore"] / 2)
62model.extrude("profile", "section", distance=length, name="Profile")
63model.material("aluminum-generic", color=FINISHES[finish]) # 6063-T5 typical (no STEVE entry for 6063)
64result = model.result()
65

A 20 x 20 mm V-slot aluminium extrusion: a V-slot in each face (45 degree V down to the lips, flat lip undersides, the undercut, 45 degree walls to the core), 0.5 mm outside corner radii and a 4.2 mm centre bore, extruded to any length. The section was measured from the FreeCAD-library model 2020x50_V_slot_profile (CC-BY-3.0, by hasecilu); there is no manufacturer drawing. Centred on the origin in the XY plane, extruded along +Z. Dimensions and attribution: see the README.

V-slot extrusion 20 × 20

A 20 × 20 mm V-slot aluminium extrusion, any length: a V-slot in each face, 0.5 mm outside corner radii and a 4.2 mm centre bore.

Geometry

The section is centred on the origin in the XY plane and extruded along +Z by length. Each of the four slots (the same, turned 90°), from the face inwards:

Feature mm
Outside, square 20
Outside corner radius 0.5
Slot width at the face 9.7
Width between the lip tips (45° V, 1.8 below the face) 6.1
Lip underside, from the centre (flat out to the undercut wall) 8.2
Undercut width 11.0
Undercut wall ends, from the centre (then 45° to the core) 6.5607
Core face width / from the centre 5.6786 / 3.9
V notch in the core face, width × depth 0.4 × 0.2
Centre bore Ø 4.2

Section area 168.01 mm² (0.454 kg/m in 6063).

Parameters

Parameter Meaning
length mm
finish anodising colour, clear or black (appearance only)

Sources

There is no manufacturer drawing behind this part: the geometry was measured from the published reference model below, on its cross-section at mid-length (exact OCCT section edges), and the recipe re-draws that section in its own code. Each preset is checked against the model: bounding box within 0.05 mm, volume within 2 %, section area within 2 % and the section outline within 0.1 mm of the model's.

  • FreeCAD-library, Mechanical Parts/Mountings/2020_V-slot_Al_extrusion/2020x50_V_slot_profile-Part.step (commit 2e36ae32), by hasecilu; https://github.com/FreeCAD/FreeCAD-library; licensed under CC-BY-3.0 (the library's licence for all its parts). Distributed by step.parts as 2020x50_v_slot_profile (https://www.step.parts/parts/2020x50_v_slot_profile), identical geometry. No endorsement by the author or the FreeCAD project is implied.

Simplifications: none beyond the reference model's own (it has no fillets inside the slots and no end threads). The model is a generic 20 × 20 V-slot; check a specific maker's section (OpenBuilds and others differ slightly) where it matters.

Presets: the 50 mm reference sample and the catalogue's V-slot lengths (100 to 1500 mm). The catalogue's own models at those lengths, and its 20 × 40 to 20 × 80 entries, are step.parts' simplified stand-ins (a rectangle with one rectangular groove per face), not V-slot sections: they are not used, and the length presets are checked against the reference model's section (area and outline as above, volume = its section area × length). Preset list: from the step.parts catalogue (MIT), see library/NOTICE.md.

  1. 1.0.0 Latest
More #profile
STEVEMIT

steve/t-slot-extrusion

T-slot aluminium extrusions with real cross-sections (2020, 2040, 3030, 3060, 4040, 4080; slot 5, 6, 8), any length.

1 110 sizes 0 1 day ago v2.0.0
STEVEMIT

steve/makerbeam-profile

MakerBeam 10 x 10 mm aluminium profile, any length, from MakerBeam's own drawing.

0 14 sizes 0 1 day ago v1.0.0
STEVEMIT

steve/extrusion-corner-bracket

Corner bracket envelope for 2020, 3030 and 4040 extrusions: two flat legs at a right angle (simplified, no holes).

0 6 sizes 0 1 day ago v1.0.0
STEVEMIT

steve/extrusion-accessory

T-slot extrusion accessories (end cap, cover strip, anchor fastener, inside corner connector), 20/30/40 series: simplified.

0 12 sizes 0 1 day ago v1.0.0