Replacement foot for our grill.
This commit is contained in:
Binary file not shown.
@@ -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
Reference in New Issue
Block a user