Created
May 31, 2026 18:42
-
-
Save ednisley/c87ba8d31e620f8ab44d3eef899a6796 to your computer and use it in GitHub Desktop.
OpenSCAD source code: 3D printed feet for square patio table
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Patio Table Foot - rectangular legs | |
| // Ed Nisley - KE4ZNU | |
| // 2026-05-26 | |
| include <BOSL2/std.scad> | |
| Layout = "Show"; // [Show,Build] | |
| /* [Hidden] */ | |
| HoleWindage = 0.2; | |
| Protrusion = 0.01; | |
| NumSides = 4*3*2*4; | |
| Gap = 5.0/2; | |
| $fn=NumSides; | |
| PadOA = [50,23.5,4.5]; | |
| LegAngles = [5,5]; | |
| EndStrut = [2.5 + 2.5,13.3 - 1.0,23.0]; | |
| SideStrut = [12.0,5.5 - 1.0,13.0]; | |
| Clearance = 0.5; | |
| StrutsOC = [44.0 - EndStrut.x,18.0 - SideStrut.y]; | |
| //----- | |
| // Define it | |
| module Foot(angles = LegAngles) { | |
| difference() { | |
| up((PadOA.x/2)*abs(sin(angles.x)) + (PadOA.y/2)*abs(sin(angles.y))) | |
| xrot(angles.x) yrot(angles.y) | |
| union() { | |
| down(3*PadOA.z) | |
| linear_extrude(4*PadOA.z) | |
| left(PadOA.x/2) fwd(PadOA.y/2) | |
| import("Patio Table Foot - pad outline.svg",center=true); | |
| up(PadOA.z) | |
| for (i = [-1,1]) | |
| right(i*StrutsOC.x/2) | |
| cuboid(EndStrut,anchor=BOTTOM) position(TOP) | |
| down(EndStrut.y/2) left(i*Clearance) | |
| pie_slice(r=(PadOA.x - StrutsOC.x)/2,ang=180,l=EndStrut.y,anchor=CENTER,spin=-i*90,orient=FRONT); | |
| up(PadOA.z) | |
| for (j = [-1,1]) | |
| fwd(j*StrutsOC.y/2) | |
| cuboid(SideStrut,anchor=BOTTOM) position(TOP) | |
| down(SideStrut.x/2) zrot(90) right(j*Clearance) | |
| pie_slice(r=(PadOA.y - StrutsOC.y)/2,ang=180,l=SideStrut.x,anchor=CENTER,spin=j*90,orient=FRONT); | |
| } | |
| cuboid(4*PadOA,anchor=TOP); | |
| } | |
| } | |
| //----- | |
| // Build it | |
| if (Layout == "Show") { | |
| back(PadOA.y/2 + Gap) | |
| Foot(); | |
| left(0.8*PadOA.x) fwd(PadOA.y) zrot(-90) | |
| yflip() Foot(); | |
| } | |
| if (Layout == "Build") { | |
| union() { | |
| fwd(PadOA.y/2 + Gap) | |
| Foot(); | |
| back(PadOA.y/2 + Gap) | |
| yflip() Foot(); | |
| } | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
More details on my blog at https://softsolder.com/2026/06/03/square-patio-table-feet/