Walls¶
⚙️ Spec sheet → — visual schematic and metrics measured from a real rendered STL.
FDM-optimised wall shapes from BOSL2’s walls.scad — parts that use less material and print
without support. SparseWall is an X-cross-braced open wall (and
SparseCuboid a solid-box variant braced along one axis);
CorrugatedWall a sinusoidal corrugated panel;
ThinningWall and ThinningTriangle walls whose
middle thins away while the edges stay thick, joined by angled shoulders that don’t overhang;
NarrowingStrut the home-plate strut those triangles are built from. The
honeycomb hex_panel is a follow-up.
-
class pybosl2.parts.walls.SparseWall(height=
50, length=100, thick=4, maxang=30, strut=5, max_bridge=20)[source]¶ Bases:
objectAn open, X-cross-braced rectangular wall that saves material.
and prints support-free (BOSL2 sparse_wall()).
A solid border of width strut frames a lattice of diagonal braces, each kept under maxang from vertical (so it needs no support) and spaced so no bridge exceeds max_bridge. The wall is thick in X, length long in Y and height tall in Z.
Examples
from pybosl2.parts.walls import SparseWall SparseWall(height=50, length=100, thick=4).show()Loading 3-D preview…- Parameters:¶
- property height : float¶
Wall height in mm (Z axis).
- property length : float¶
Wall length in mm (Y axis).
- property thick : float¶
Wall thickness in mm (X axis).
-
class pybosl2.parts.walls.SparseCuboid(size, dir=
SparseAxis.Y, strut=5, maxang=30, max_bridge=20)[source]¶ Bases:
objectA solid cuboid whose interior is X-cross-braced along dir (“X”, “Y” or “Z”) (BOSL2 sparse_cuboid()).
A drop-in for
cuboid()when the part would benefit from the sparse lattice; dir is the axis the diagonal braces (and the through-gaps) run along.Examples
from pybosl2.parts.walls import SparseCuboid, SparseAxis SparseCuboid(size=[50, 40, 10], dir=SparseAxis.Y, strut=3).show()Loading 3-D preview…- Parameters:¶
- property size : list[float]¶
Outer dimensions
[X, Y, Z]in mm.
-
class pybosl2.parts.walls.CorrugatedWall(height=
50, length=100, thick=5, strut=5, wall=2)[source]¶ Bases:
objectA corrugated wall: a solid border framing a sinusoidal sheet.
of thickness wall (BOSL2 corrugated_wall()).
The corrugation waves back and forth across the thick thickness as it runs along the length, which stiffens a thin wall. strut is the width of the solid top/bottom/end border.
Examples
from pybosl2.parts.walls import CorrugatedWall CorrugatedWall(height=50, length=100, thick=5).show()Loading 3-D preview…- property height : float¶
Wall height in mm (Z axis).
- property length : float¶
Wall length in mm (Y axis).
- property thick : float¶
Wall thickness in mm (X axis).
-
class pybosl2.parts.walls.ThinningWall(height=
50, length=100, thick=5, angle=30, strut=None, wall=None)[source]¶ Bases:
objectA rectangular wall that thins to wall in the middle while.
the edges stay thick (BOSL2 thinning_wall()).
Angled shoulders (kept under angle) join the thick border to the thin centre so nothing overhangs. length may be a single length or
(bottom, top)for a trapezoidal wall. The diagonalbracesoption of the original is not ported.Examples
from pybosl2.parts.walls import ThinningWall ThinningWall(height=50, length=80, thick=4).show()Loading 3-D preview…- Parameters:¶
- property height : float¶
Wall height in mm (Z axis).
- property length : float¶
Wall length in mm.
- property thick : float¶
Wall thickness in mm (X axis).
-
class pybosl2.parts.walls.ThinningTriangle(height=
50, length=100, thick=5, angle=30, strut=5, wall=3, diagonly=False, center=None)[source]¶ Bases:
objectA right-triangular wall with thick edges thinning to wall in the middle (BOSL2 thinning_triangle()).
The hypotenuse rises from the front-bottom to the back-top. diagonly keeps only the hypotenuse edge thick; center centres the shape (otherwise it rests on
z = 0at the front). Built fromNarrowingStrutbraces.Examples
from pybosl2.parts.walls import ThinningTriangle ThinningTriangle(height=50, length=80, thick=4, center=True).show()Loading 3-D preview…- Parameters:¶
- property height : float¶
Wall height in mm (Z axis).
- property length : float¶
Wall length in mm (Y axis).
- property thick : float¶
Wall thickness in mm (X axis).
-
class pybosl2.parts.walls.NarrowingStrut(w=
10, length=100, wall=5, angle=30)[source]¶ Bases:
objectA strut like an extruded baseball home plate: a rectangle topped by a narrowing triangle (BOSL2.
narrowing_strut()).
The triangular top converges at angle so the strut can brace an overhang without needing support. w is the width (thickness), length the length, wall the height of the rectangular base. It sits on the
z = 0plane with the apex pointing up.Examples
from pybosl2.parts.walls import NarrowingStrut NarrowingStrut(w=10, length=100, wall=5, angle=30).show()Loading 3-D preview…- property width : float¶
Width (thickness) of the strut in mm.
- property length : float¶
Length of the strut in mm.
- property wall : float¶
Height of the rectangular base in mm.
- property angle : float¶
Narrowing angle in degrees.
Examples¶
These mirror the examples in BOSL2’s walls.scad, rendered live through PythonSCAD.
Examples that rely on BOSL2’s attachment/anchor system, or on features not in this port, are omitted.
sparse_wall
Typical shape:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
SparseWall(height=40, length=100, thick=3).show()
Thinner strut:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
SparseWall(height=40, length=100, thick=3, strut=2).show()
Larger maxang:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
SparseWall(height=40, length=100, thick=3, strut=2, maxang=45).show()
Longer max_bridge:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
SparseWall(height=40, length=100, thick=3, strut=2, maxang=45, max_bridge=30).show()
sparse_cuboid
A cross-braced box, braced along X:
from pybosl2.parts.walls import SparseAxis, SparseCuboid
SparseCuboid([10, 20, 30], dir=SparseAxis.X, strut=1).show()
Braced along Y:
from pybosl2.parts.walls import SparseAxis, SparseCuboid
SparseCuboid([10, 20, 30], dir=SparseAxis.Y, strut=1).show()
Braced along Z:
from pybosl2.parts.walls import SparseAxis, SparseCuboid
SparseCuboid([10, 20, 30], dir=SparseAxis.Z, strut=1).show()
corrugated_wall
Typical shape:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
CorrugatedWall(height=50, length=100).show()
Wider strut border:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
CorrugatedWall(height=50, length=100, strut=8).show()
Thicker corrugation:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
CorrugatedWall(height=50, length=100, strut=8, wall=3).show()
thinning_wall
Typical shape:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
ThinningWall(height=50, length=80, thick=4).show()
Trapezoidal:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
ThinningWall(height=50, length=[80, 50], thick=4).show()
thinning_triangle
Centered:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
ThinningTriangle(height=50, length=80, thick=4, angle=30, strut=5, wall=2, center=True).show()
Resting on the ground plane:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
ThinningTriangle(height=50, length=80, thick=4, angle=30, strut=5, wall=2, center=False).show()
Only the diagonal edge thickened:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
ThinningTriangle(height=50, length=80, thick=4, angle=30, strut=5, wall=2, diagonly=True, center=False).show()
narrowing_strut
A support-free strut:
from pybosl2.parts.walls import SparseWall, SparseCuboid, CorrugatedWall, ThinningWall, ThinningTriangle, NarrowingStrut
NarrowingStrut(w=10, length=100, wall=5, angle=30).show()