Replacement foot for our grill.

This commit is contained in:
2026-08-04 18:28:39 -05:00
parent c3d957a669
commit 78d2bc7392
3 changed files with 15397 additions and 0 deletions
Binary file not shown.
+107
View File
@@ -0,0 +1,107 @@
$fn=256;
dimLeg = [32, 32, 50];
dimCaster = [31, 31, 50];
casterPinDia = 7.5;
casterRestDia = 14;
casterRestHeight = 3;
pipeThickness = 2.2;
wallThickness = 4;
legCutHeight = 96;
ep = 0.01;
dimOuter = dimLeg + [wallThickness, wallThickness, 0];
module casterReceiver1() {
translate([0, 0, dimCaster[2]/2])
difference() {
cube(dimCaster, center=true);
cylinder(h=dimCaster[2]+2*ep, d=casterPinDia, center=true);
translate([0, 0, -dimCaster[2]/2-ep]) cylinder(h=casterRestHeight+ep, d=casterRestDia);
}
}
module casterReceiver2() {
}
module legReceiver() {
translate([0, 0, dimLeg[2]/2]);
difference() {
cube(dimLeg + [2*wallThickness, 2*wallThickness, 0], center=true);
cube(dimLeg + [0, 0, 2*ep], center=true);
}
}
module singlePiece() {
difference() {
union() {
// Caster receiver blank
linear_extrude(
height=dimCaster[2],
scale = [
dimOuter[0] / (casterRestDia + wallThickness),
dimOuter[1] / (casterRestDia + wallThickness)])
square(
[ casterRestDia + wallThickness,
casterRestDia + wallThickness],
center=true);
// Leg extension
translate([-dimOuter[0]/2, -dimOuter[1]/2, dimCaster[2] - ep])
cube([dimOuter[0], dimOuter[1], legCutHeight - dimCaster[2] + dimLeg[2] + ep]);
}
// Caster receiver cuts
cylinder(h=dimCaster[2], d=casterPinDia);
translate([0, 0, -ep]) cylinder(h=casterRestHeight + ep, d=casterRestDia);
// Leg receiver cut
translate([0, 0, (legCutHeight + dimLeg[2]/2)])
cube(dimLeg + [0, 0, ep], center=true);
}
}
module supportRib() {
sideLen = legCutHeight + dimLeg[2] * 3;
supportHeight = legCutHeight + dimLeg[2];
difference() {
translate([0, 0, supportHeight/2])
cube([sideLen, sideLen, supportHeight-ep], center=true);
singlePiece();
translate([-sideLen/2-ep, 1, -ep])
cube([sideLen+2*ep, sideLen+2*ep, supportHeight+2*ep]);
translate([-sideLen/2-ep, -sideLen-1, -ep])
cube([sideLen+2*ep, sideLen+2*ep, supportHeight+2*ep]);
translate([0, -sideLen/2-ep, -ep])
cube([sideLen+2*ep, sideLen+2*ep, supportHeight+2*ep]);
cylinder(h=legCutHeight, d=casterRestDia+2*ep);
translate([0, 0, legCutHeight + dimLeg[2]/2 - ep])
cube(dimLeg + [2*ep, 2*ep, 2*ep], center=true);
}
}
difference() {
union() {
rotate([0, -45, 0])
translate([(casterRestDia + wallThickness)/2, 0, 0])
union() {
singlePiece();
for (i = [-1, 1]) {
translate([-0.1, i*8, 0])
supportRib();
}
}
translate([-100, -30, 0]) cube([1, 60, 20]);
}
translate([-200, -200, -200]) cube([400, 400, 200]);
translate([-210, -10, -ep]) cube([100, 20, 200]);
}
File diff suppressed because it is too large Load Diff