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