CEB Press v16.09/SCAD Files
work in progress
creating an OpenSCAD replica of v16.09
CEB Press v16.09/SCAD Files/Parametric
Contents
Frame
Assembly
F4x=31; //?why not just 22? F4y=11; F4z=0.5; F4basex=25; F6x=22.1875; //?why not just 22? F6y=8; F6z=0.5; F8x=43.5; F8y=6; F8z=0.5; F9x=43.5; F9y=4.5; F9z=0.5; $fn=20; //render final model at 100 // ----------------------- // translate([0,(F8y/2)+F6z,20.472]) //Z from F9// //adjust with cylinder length// rotate([90,0,0]) F4(); //?group with F5? translate([0,-(F8y/2),20.472]) rotate([90,0,0]) F4(); translate([0,(F8y/2)+F6z,0]) rotate([90,0,0]) F6(); translate([0,-(F8y/2),0]) rotate([90,0,0]) F6(); translate([1.9-8.5,0,0]){ rotate([0,0,90]){ translate([(F8y/2),F8z,0]) rotate([90,-90,0]) F8(); translate([(F8y/2)+(F9z/2)-(F8z/2),0,0]) rotate([0,-90,0]) F9(); translate([-(F8y/2)+(F9z/2)+(F8z/2),0,0]) rotate([0,-90,0]) F9(); } } translate([-1.9+8.5,0,0]){ rotate([0,0,-90]){ translate([(F8y/2),F8z,0]) rotate([90,-90,0]) F8(); translate([(F8y/2)+(F9z/2)-(F8z/2),0,0]) rotate([0,-90,0]) F9(); translate([-(F8y/2)+(F9z/2)+(F8z/2),0,0]) rotate([0,-90,0]) F9(); } } // ----------------------- // module F4(){ difference(){ translate([-(F4x/2),0,0]) cube([F4x,F4y,F4z]); translate([-(F4x/2),0,0]) cuts(); translate([(F4x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,0,0]) cube([3,5.375,F4z]); translate([0,5.375,0]) difference(){ cube([3,5.125,F4z]); translate([3,0,0]) rotate([0,0,atan(3/5.125)]) cube([10,10,F4z]); } translate([(F4x/2)-13.6375,F4y-0.5,0]) mirror([1,0,0]) cube([(F4x/2)-13.6375,0.5,F4z]); translate([(F4x/2)-13.6375,F4y-0.625,0]) cube([2,0.625,F4z]); translate([(F4x/2)-0.8125,F4y-0.5,0]) cube([0.8125,0.5,F4z]); translate([(F4x/2)-1.0625,F4y-0.625,0]) cube([0.25,0.625,F4z]); translate([(F4x/2)-9.8125,7.185,0]) //?part ycentered 7.5? cube([1.125,0.625,F4z]); //?interfaces with what? ?part F2? translate([(F4x/2)-8.5,2,0]) cylinder(h = F4z, r = 0.5025); //diameter 1.0? translate([(F4x/2)-8.5,6,0]) cylinder(h = F4z, r = 0.5025); translate([(F4x/2)-8.5,9,0]) cylinder(h = F4z, r = 0.5025); } //end module } module F6(){ difference(){ translate([-(F6x/2),0,0]) cube([F6x,F6y,F6z]); translate([-(F6x/2),0,0]) cuts(); translate([(F6x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([1.26,F6y-0.5,0]) //?xdistance from center? cube([1.125,0.5,F6z]); //?interfaces with what? translate([(F6x/2)-1.125,F6y-3.22,0]) cube([2.25,3.22,F6z]); translate([F6x/2,F6y-3.22,0]) cylinder(h = F6z, r = 1.125); translate([(F6x/2)-8.5,2,0]) cylinder(h = F6z, r = 0.38); //diameter 0.76? translate([(F6x/2)-8.5,6,0]) cylinder(h = F6z, r = 0.38); } //end module } module F8(){ difference(){ cube([F8x,F8y,F8z]); translate([-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5+14.5-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5+14.5-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); hull(){ translate([23.34,3,0]) //?x interfaces with what? cylinder(h = F8z, r = 0.5); translate([23.6,3,0]) cylinder(h = F8z, r = 0.5); } hull(){ translate([30.34,3,0]) //?x interfaces with what? cylinder(h = F8z, r = 0.5); translate([30.6,3,0]) cylinder(h = F8z, r = 0.5); } } } //end F8 module module F9(){ difference(){ cube([F9x,F9y,F9z]); translate([7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([14.5+7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([14.5+14.5+7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([0,F9y-0.5625,0]) cube([0.53125,0.5625,F9z]); translate([19.96875,F9y-0.5625,0]) cube([0.5625,0.5625,F9z]); translate([31.3,F9y-1.4,0]) cube([6.4,1.4,F9z]); //?interfaces with what? translate([F9x-0.5,F9y-0.5625,0]) cube([0.5,0.5625,F9z]); translate([2,1.9,0]) //?x interfaces with what? ?1.9? cylinder(h = F9z, r = 0.38); translate([6,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); translate([22.472,1.9,0]) //??.472?? ?interfaces with what? cylinder(h = F9z, r = 0.5025); translate([26.472,1.9,0]) cylinder(h = F9z, r = 0.5025); translate([29.472,1.9,0]) cylinder(h = F9z, r = 0.5025); translate([39,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); translate([42,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); } } //end F9 module module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,F9z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,F9z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,F9z]); } } //end cornerjoint module
F1
Welds to: F2, F3
Bolts to: F9
Abuts: A2
F1x=24.2; F1y=6; F1z=0.5; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F1x/2),0,0]) cube([F1x,F1y,F1z]); translate([-(F1x/2),0,0]) cuts(); translate([(F1x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ cube([0.5,0.5,F1z]); translate([0.5,0,0]) cube([0.7875,0.625,F1z]); translate([0,F1y-0.25,0]) cube([0.4,0.25,F1z]); translate([2.2875,F1y-0.5,0]) cube([1.125,0.5,F1z]); translate([11.0375,0,0]) cube([0.8125,0.625,F1z]); translate([11.85,0,0]) cube([0.25,0.5,F1z]); translate([3.6,1.5,0]) cylinder(h = F1z, r = 0.375); translate([3.6,4.5,0]) cylinder(h = F1z, r = 0.375); translate([6.1925,2.465,0]) cylinder(h = F1z, r = 0.6); } //end module
F2
Welds to: F1, F4, F6
F2x=19.5; F2y=3.5; F2z=0.5; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F2x/2),0,0]) cube([F2x,F2y,F2z]); translate([-(F2x/2),0,0]) cuts(); translate([(F2x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([1,F2y-0.625,0]) cube([0.125,0.625,F2z]); translate([1.125,F2y-0.5,0]) cube([8.625,0.5,F2z]); } //end module
F3
Welds to: F1
Bolts to: F12
F3x=23.75; F3y=3.5; F3z=0.5; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F3x/2),0,0]) cube([F3x,F3y,F3z]); translate([-(F3x/2),0,0]) cuts(); translate([(F3x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([1,0,0]) cube([1,0.625,F3z]); translate([2,0,0]) cube([1,0.5,F3z]); translate([3,0,0]) cube([5.875,0.625,F3z]); translate([8.875,0,0]) cube([1,0.5,F3z]); translate([9.875,0,0]) cube([1,0.625,F3z]); translate([5.375,1.75,0]) cylinder(h = F3z, r = 0.5); } //end module
F4
Welds to: F2, F5
Bolts to: F9
F4x=31; //?why not just 22? F4y=11; F4z=0.5; F4basex=25; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F4x/2),0,0]) cube([F4x,F4y,F4z]); translate([-(F4x/2),0,0]) cuts(); translate([(F4x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,0,0]) cube([3,5.375,F4z]); translate([0,5.375,0]) difference(){ cube([3,5.125,F4z]); translate([3,0,0]) rotate([0,0,atan(3/5.125)]) cube([10,10,F4z]); } translate([(F4x/2)-13.6375,F4y-0.5,0]) mirror([1,0,0]) cube([(F4x/2)-13.6375,0.5,F4z]); translate([(F4x/2)-13.6375,F4y-0.625,0]) cube([2,0.625,F4z]); translate([(F4x/2)-0.8125,F4y-0.5,0]) cube([0.8125,0.5,F4z]); translate([(F4x/2)-1.0625,F4y-0.625,0]) cube([0.25,0.625,F4z]); translate([(F4x/2)-9.8125,7.185,0]) //?part ycentered 7.5? cube([1.125,0.625,F4z]); //?interfaces with what? ?part F2? translate([(F4x/2)-8.5,2,0]) cylinder(h = F4z, r = 0.5025); //diameter 1.0? translate([(F4x/2)-8.5,6,0]) cylinder(h = F4z, r = 0.5025); translate([(F4x/2)-8.5,9,0]) cylinder(h = F4z, r = 0.5025); } //end module
F5
Welds to: F4
Bolts to: A1
F5x=31.4; F5y=3.5; F5z=0.5; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F5x/2),0,0]) cube([F5x,F5y,F5z]); translate([-(F5x/2),0,0]) cuts(); translate([(F5x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([4,F5y-0.625,0]) cube([1,0.625,F5z]); translate([5,F5y-0.5,0]) cube([1,0.5,F5z]); translate([6,F5y-0.625,0]) cube([6.7,0.625,F5z]); translate([12.7,F5y-0.5,0]) cube([1,0.5,F5z]); translate([13.7,F5y-0.625,0]) cube([1,0.625,F5z]); hull(){ translate([3.5,1.5,0]) cylinder(h = F5z, r = 0.5); translate([4.5,1.5,0]) cylinder(h = F5z, r = 0.5); } } //end module
F6
some errors of symmetry in source dxf drawing. made some assumptions. need to check fit with interfacing parts.
Welds to: F2, F7
Bolts to: F9
F6x=22.1875; //?why not just 22? F6y=8; F6z=0.5; $fn=20; //render final model at 100 projection(cut = true) //use projection to create 2D DXF files difference(){ translate([-(F6x/2),0,0]) cube([F6x,F6y,F6z]); translate([-(F6x/2),0,0]) cuts(); translate([(F6x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([1.26,F6y-0.5,0]) //?xdistance from center? cube([1.125,0.5,F6z]); //?interfaces with what? translate([(F6x/2)-1.125,F6y-3.22,0]) cube([2.25,3.22,F6z]); translate([F6x/2,F6y-3.22,0]) cylinder(h = F6z, r = 1.125); translate([(F6x/2)-8.5,2,0]) cylinder(h = F6z, r = 0.38); //diameter 0.76? translate([(F6x/2)-8.5,6,0]) cylinder(h = F6z, r = 0.38); } //end module
F8
Welds to: F9, F10
Bolts to: Rub Plate ?
F8x=43.5; F8y=6; F8z=0.5; $fn=20; //render final model at 100 difference(){ cube([F8x,F8y,F8z]); translate([-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5+14.5-0.0625,0,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); translate([14.5+14.5-0.0625,F8y,0]) mirror([0,1,0]) cornerjoint(7.375,0.625,0.25,0.5,0.125); hull(){ translate([23.34,3,0]) //?x interfaces with what? cylinder(h = F8z, r = 0.5); translate([23.6,3,0]) cylinder(h = F8z, r = 0.5); } hull(){ translate([30.34,3,0]) //?x interfaces with what? cylinder(h = F8z, r = 0.5); translate([30.6,3,0]) cylinder(h = F8z, r = 0.5); } } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,F8z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,F8z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,F8z]); } } //end cornerjoint module
F9
Welds to: F8, F11
Bolts to: F1, F4, F6
Abuts: A1 ?, A2 ?, F12
F9x=43.5; F9y=4.5; F9z=0.5; $fn=20; //render final model at 100 difference(){ cube([F9x,F9y,F9z]); translate([7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([14.5+7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([14.5+14.5+7.25,0,0]) cornerjoint(7.25,0.625,0.25,0.5,0.125); translate([0,F9y-0.5625,0]) cube([0.53125,0.5625,F9z]); translate([19.96875,F9y-0.5625,0]) cube([0.5625,0.5625,F9z]); translate([31.3,F9y-1.4,0]) cube([6.4,1.4,F9z]); //?interfaces with what? translate([F9x-0.5,F9y-0.5625,0]) cube([0.5,0.5625,F9z]); translate([2,1.9,0]) //?x interfaces with what? ?1.9? cylinder(h = F9z, r = 0.38); translate([6,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); translate([22.472,1.9,0]) //??.472?? ?interfaces with what? cylinder(h = F9z, r = 0.5025); translate([26.472,1.9,0]) cylinder(h = F9z, r = 0.5025); translate([29.472,1.9,0]) cylinder(h = F9z, r = 0.5025); translate([39,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); translate([42,1.9,0]) //?x interfaces with what? cylinder(h = F9z, r = 0.38); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,F9z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,F9z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,F9z]); } } //end cornerjoint module
F10
Welds to: F8?
F10x=5.9; F10y=2; F10z=0.5; cube([F10x,F10y,F10y]);
F11
Welds to: F9
F11x=1.25; F11y=6; F11z=0.5; projection(cut = true) //use projection to create 2D DXF files difference(){ translate([0,-(F11y/2),0]) cube([F11x,F11y,F11z]); translate([0,-(F11y/2),0]) cuts(); translate([0,(F11y/2),0]) mirror([0,1,0]) cuts(); } //end difference module cuts(){ translate([0.5,0,0]) cube([0.125,0.625,F11z]); translate([0.625,0,0]) cube([0.625,0.5,F11z]); } //end module
Arms
A1
Welds to: A2, A6
Bolts to: A4, A5, F1, H7, H8
Abuts: F9
A1x=4; A1y=72; A1z=0.5; $fn=20; difference(){ cube([A1x,A1y,A1z]); translate([0,0.71875,0]) cube([0.6875,0.5625,A1z]); translate([0,44.8501,0]) //?y.8501? cube([0.6875,0.5625,A1z]); translate([0,70.9688,0]) //y 0.46875 from top cube([0.6875,0.5625,A1z]); translate([2,2,0]) cylinder(h = A1z, r = 0.4); translate([2,4,0]) cylinder(h = A1z, r = 0.4); translate([2,27,0]) cylinder(h = A1z, r = 0.4); translate([2,37,0]) cylinder(h = A1z, r = 0.4); hull(){ translate([2,39.67,0]) //small error on drawing cylinder(h = A1z, r = 0.4); translate([2,40.25,0]) //small error on drawing cylinder(h = A1z, r = 0.4); } hull(){ translate([2,50.25,0]) //small error cylinder(h = A1z, r = 0.4); translate([2,50.85,0]) //small error cylinder(h = A1z, r = 0.4); } translate([2,53.75,0]) cylinder(h = A1z, r = 0.4); translate([2,56.75,0]) cylinder(h = A1z, r = 0.4); translate([2,63.75,0]) cylinder(h = A1z, r = 0.4); translate([2,69,0]) cylinder(h = A1z, r = 0.4); //corner joints for(i=[0:5]) translate([4,i*11.9375,0]) rotate([0,0,90]) cornerjoint(6.0625,0.625,0.125,0.5,0.125); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,A1z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,A1z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,A1z]); } } //end cornerjoint module
A2
Welds to: A1, A6
Bolts to: Guards, Hopper mounts
Abuts: F1 (?), F9
A2x=5.96603; //?just 6? A2y=72; A2z=0.5; $fn=20; difference(){ cube([A2x,A2y,A2z]); translate([A2x-0.6875,0.46875,0]) cube([0.6875,0.5625,A2z]); translate([A2x-0.6875,26.5874,0]) //?y.8501? cube([0.6875,0.5625,A2z]); translate([A2x-0.6875,A2y-0.71875,0]) //y 0.46875 from top cube([0.6875,0.5625,A2z]); hull(){ translate([A2x-1.75,21.2,0]) //?y? cylinder(h = A2z, r = 0.4); translate([A2x-1.75,22.765,0]) //?y? cylinder(h = A2z, r = 0.4); } hull(){ translate([A2x-1.75,47.56,0]) //?y? cylinder(h = A2z, r = 0.4); translate([A2x-1.75,49.0785,0]) //?y? cylinder(h = A2z, r = 0.4); } //corner joints for(i=[0:5]) translate([0,(i*12)+6,0]) rotate([0,0,270]) cornerjoint(6,0.625,0.125,0.5,0.125); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,A2z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,A2z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,A2z]); } } //end cornerjoint module
A3
Welds to: A4, A5
a3x=4; a3y=72; a3z=0.5; $fn=20; difference(){ cube([a3x,a3y,a3z]); //corner joints for(i=[0:5]) translate([0,(i*12)+6,0]) rotate([0,0,270]) cornerjoint(6,0.625,0.125,0.5,0.125); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,a3z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,a3z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,a3z]); } } //end cornerjoint module
A4
Welds to: A3
Bolts to: A1
a4x=6; a4y=72; a4z=0.5; $fn=20; difference(){ cube([a4x,a4y,a4z]); hull(){ translate([a4x-2,23.725,0]) //?y? cylinder(h = a4z, r = 0.4); translate([a4x-2,24.835,0]) //?y? cylinder(h = a4z, r = 0.4); } hull(){ translate([a4x-4,23.725,0]) //?y? cylinder(h = a4z, r = 0.4); translate([a4x-4,24.835,0]) //?y? cylinder(h = a4z, r = 0.4); } hull(){ translate([a4x-2,47.135,0]) cylinder(h = a4z, r = 0.4); translate([a4x-2,48.265,0]) cylinder(h = a4z, r = 0.4); } hull(){ translate([a4x-4,47.135,0]) cylinder(h = a4z, r = 0.4); translate([a4x-4,48.265,0]) cylinder(h = a4z, r = 0.4); } //corner joints for(i=[0:5]) translate([0,(i*11.9375)+6.0625,0]) rotate([0,0,270]) cornerjoint(6.0625,0.625,0.125,0.5,0.125); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,a4z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,a4z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,a4z]); } } //end cornerjoint module
A5
Welds to: A3
Bolts to: A1
a5x=6; a5y=72; a5z=0.5; $fn=20; difference(){ cube([a5x,a5y,a5z]); hull(){ translate([3,23.795,0]) cylinder(h = a5z, r = 0.405); translate([3,24.805,0]) cylinder(h = a5z, r = 0.405); } hull(){ translate([3,47.2,0]) cylinder(h = a5z, r = 0.405); translate([3,48.2,0]) cylinder(h = a5z, r = 0.405); } //corner joints for(i=[0:5]) translate([6,(i*12)+5.9375,0]) rotate([0,0,90]) cornerjoint(6.125,0.625,0.125,0.5,0.125); } module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,a5z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,a5z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,a5z]); } } //end cornerjoint module
A6
Welds to: A1, A2
Drawer
D1
d1x=18.5; d1y=18; d1z=0.5; $fn=20; difference(){ translate([-(d1x/2),0,0]) cube([d1x,d1y,d1z]); translate([-(d1x/2),0,0]) cuts(); translate([(d1x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ cube([2.5,16,d1z]); translate([2.5,1.5,0]) cube([0.6,5,d1z]); } //end module
D2
d2x=18.5; d2y=6; d2z=0.5; $fn=20; difference(){ cube([d2x,d2y,d2z]); //1 cuts numbered clockwise from top left translate([0,d2y-0.43,0]) cube([2,0.43,d2z]); //2 translate([5.25,d2y,0]) insert(0.8125,1.3125,0.125,0.3125,0.125,0.8125); //3 translate([11.75,d2y,0]) insert(0.8125,2.8125,0.125,0.3125,0.125,2.0625); translate([11.75+0.28125,d2y-0.53125,0]) cube([1,0.53125,d2z]); translate([11.75+0.78125,d2y-0.65625,0]) cube([0.625,0.25,d2z]); //4 translate([d2x,d2y,0]) insert(1.3125,2.8125,0.125,0.8125,0.125,1.8125); //5 translate([d2x,0,0]) insert(1.3125,1.8125,0.125,0.8125,0.125,1.3125); translate([d2x,0,0]) insert(2.375,1.3125,0.125,1.875,0.125,0.8125); //6 ??? error ??? translate([11.4688,0,0]) cube([0.546875,0.78125,d2z]); translate([11.4688+0.546875,0,0]) cube([0.640575,0.53125,d2z]); translate([11.3438,0.40625,0]) cube([0.25,0.5,d2z]); translate([11.885609,0.65625,0]) cube([0.255066,0.25,d2z]); translate([11.4688+0.546875+0.640575-.125,0.28125,0]) cube([0.25,0.375,d2z]); //X values in dxf dont seem standard? error in model? //translate([11.75,0,0]) //insert(0.8125,1.8125,0.125,0.3125,0.125,1.3125); //translate([11.75,0,0]) //insert(0.8125,1.8125,0.125,0.3125,0.125,1.3125); //7 translate([4.65625,0,0]) insert(1.125,1.3125,0.125,0.625,0.125,0.8125); translate([5.25,0,0]) insert(0.8125,2.3125,0.125,0.3125,0.125,1.8125); translate([5.25,0.53125,0]) cube([0.40625,0.375,d2z]); //8 insert(1.8125,1.3125,0.125,1.3125,0.125,0.8125); } //end difference module insert(X,Y,standdepthX,standwidthX,standdepthY,standwidthY){ difference(){ translate([0,0,d2z/2]){ #cube([X,Y,d2z],true); } translate([X/2,0,d2z/2]){ cube([standdepthY*2,standwidthY,d2z],true); } translate([-X/2,0,d2z/2]){ cube([standdepthY*2,standwidthY,d2z],true); } translate([0,Y/2,d2z/2]){ cube([standwidthX,standdepthX*2,d2z],true); } translate([0,-Y/2,d2z/2]){ cube([standwidthX,standdepthX*2,d2z],true); } } } //end insert
D3
d3x=13; d3y=5.5; d3z=0.5; $fn=20; difference(){ translate([-(d3x/2),0,0]) cube([d3x,d3y,d3z]); translate([-(d3x/2),0,0]) cuts(); translate([(d3x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,0.75,0]) cube([0.5,4,d3z]); translate([0.5,0.75,0]) cube([0.125,0.125,d3z]); translate([0.5,1.125,0]) cube([0.125,3.25,d3z]); translate([0.5,4.625,0]) cube([0.125,0.125,d3z]); translate([3.5,4.625,0]) insert(0.75,1,0.09375,0.25); translate([3.5,2.5,0]) insert(0.75,0.75,0.09375,0.25); translate([3.5,0.125,0]) insert(0.75,1.5,0.09375,0.25); translate([d3x/2,4.625,0]) insert(0.75,1,0.09375,0.25); translate([d3x/2,2.5,0]) insert(0.75,0.75,0.09375,0.25); translate([d3x/2,0.125,0]) insert(0.75,1.5,0.09375,0.25); } //end module module insert(X,Y,standdepth,standwidth){ difference(){ translate([0,0,d3z/2]){ #cube([X,Y,d3z],true); } translate([X/2,0,d3z/2]){ cube([standdepth*2,standwidth,d3z],true); } translate([-X/2,0,d3z/2]){ cube([standdepth*2,standwidth,d3z],true); } translate([0,Y/2,d3z/2]){ cube([standwidth,standdepth*2,d3z],true); } translate([0,-Y/2,d3z/2]){ cube([standwidth,standdepth*2,d3z],true); } } } //end insert
D4
d4x=7; d4y=5.5; d4z=0.5; $fn=20; difference(){ translate([-(d4x/2),0,0]) cube([d4x,d4y,d4z]); translate([-(d4x/2),0,0]) cuts(); translate([(d4x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,d4y-0.75,0]) rotate([0,0,270]) cornerjoint(1.46875,0.625,0.125,1.21875,0.125); translate([0,1.46875+1.25,0]) rotate([0,0,270]) cornerjoint(1.46875,0.625,0.125,1.21875,0.125); translate([-0.125,0,0]) cornerjoint(3.375,0.625,0.125,3.125,0.125); } //end module module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,d4z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,d4z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,d4z]); } } //end cornerjoint module
D5
d5x=13; d5y=6; d5z=0.5; $fn=20; difference(){ translate([-(d5x/2),0,0]) cube([d5x,d5y,d5z]); translate([-(d5x/2),0,0]) cuts(); translate([(d5x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,0.5,0]) cube([0.5,5,d5z]); translate([0.5,0.5,0]) cube([0.125,0.125,d5z]); translate([0.5,0.875,0]) cube([0.125,4.25,d5z]); translate([0.5,5.375,0]) cube([0.125,0.125,d5z]); translate([1,0,0]) cube([5,0.125,d5z]); translate([1,d5y-0.125,0]) cube([5,0.125,d5z]); translate([3.5,3,0]) insert(0.75,0.75,0.09375,0.25); translate([d5x/2,3,0]) insert(0.75,0.75,0.09375,0.25); } //end module module insert(X,Y,standdepth,standwidth){ difference(){ translate([0,0,d5z/2]){ #cube([X,Y,d5z],true); } translate([X/2,0,d5z/2]){ cube([standdepth*2,standwidth,d5z],true); } translate([-X/2,0,d5z/2]){ cube([standdepth*2,standwidth,d5z],true); } translate([0,Y/2,d5z/2]){ cube([standwidth,standdepth*2,d5z],true); } translate([0,-Y/2,d5z/2]){ cube([standwidth,standdepth*2,d5z],true); } } } //end insert
D6
d6x=13; d6y=6; d6z=0.5; $fn=20; difference(){ translate([-(d6x/2),0,0]) cube([d6x,d6y,d6z]); translate([-(d6x/2),0,0]) cuts(); translate([(d6x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,5.5,0]) rotate([0,0,270]) cornerjoint(4.5,0.625,0.125,0.25,0.125); translate([5,2,0]) insert(0.75,0.75,0.09375,0.25); } //end module module insert(X,Y,standdepth,standwidth){ difference(){ translate([0,0,d6z/2]){ #cube([X,Y,d6z],true); } translate([X/2,0,d6z/2]){ cube([standdepth*2,standwidth,d6z],true); } translate([-X/2,0,d6z/2]){ cube([standdepth*2,standwidth,d6z],true); } translate([0,Y/2,d6z/2]){ cube([standwidth,standdepth*2,d6z],true); } translate([0,-Y/2,d6z/2]){ cube([standwidth,standdepth*2,d6z],true); } } } //end insert module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,a4z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,a4z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,a4z]); } } //end cornerjoint module
D7
d7x=3; d7y=3; d7z=0.5; $fn=20; difference(){ cube([d7x,d7y,d7z]); translate([d7x/2,d7y/2,0]) cylinder(h = d7z,r = 0.5); }
D8
d8x=13; d8y=5; d8z=0.5; $fn=20; difference(){ translate([-(d8x/2),0,0]) cube([d8x,d8y,d8z]); translate([-(d8x/2),0,0]) cuts(); translate([(d8x/2),0,0]) mirror([1,0,0]) cuts(); } //end difference module cuts(){ translate([0,4.25,0]) rotate([0,0,270]) cornerjoint(3.5,0.625,0.125,0.25,0.125); translate([1,d8y-0.125,0]) cube([5.125,0.125,d8z]); translate([5,3.5,0]) insert(0.75,0.75,0.09375,0.25); } //end module module insert(X,Y,standdepth,standwidth){ difference(){ translate([0,0,d8z/2]){ #cube([X,Y,d8z],true); } translate([X/2,0,d8z/2]){ cube([standdepth*2,standwidth,d8z],true); } translate([-X/2,0,d8z/2]){ cube([standdepth*2,standwidth,d8z],true); } translate([0,Y/2,d8z/2]){ cube([standwidth,standdepth*2,d8z],true); } translate([0,-Y/2,d8z/2]){ cube([standwidth,standdepth*2,d8z],true); } } } //end insert module cornerjoint(L,H,EndGap,PadL,PadH){ difference(){ cube([L,H,a4z]); translate([EndGap,H-PadH,0]) cube([PadL,PadH,a4z]); translate([L-EndGap-PadL,H-PadH,0]) cube([PadL,PadH,a4z]); } } //end cornerjoint module
D9
d9x=3.5; d9y=3.5; d9z=0.5; $fn=20; difference(){ cube([d9x,d9y,d9z]); translate([2,0,0]) singlepeg(0.5,0.5,0.125,0.125,d9x); translate([-0.0000001,2,0]) //slight x shift to fix abberation rotate([0,0,270]) singlepeg(0.5,0.5,0.125,0.125,d9x); translate([2,2,0]) cylinder(h = d9z,r = 0.5); } //end difference module singlepeg(L,W,divotsDepth,divotsW,sidelength){ translate([(W/2),0,0]){ union(){ cube([divotsW,L+divotsDepth,d9z]); translate([divotsW,0,0]) cube([sidelength,L,d9z]); } } translate([-(W/2),0,0]){ mirror([1,0,0]){ union(){ cube([divotsW,L+divotsDepth,d9z]); translate([divotsW,0,0]) cube([sidelength,L,d9z]); } } } }
D10
d10x=18; d10y=3; d10z=0.5; $fn=20; difference(){ cube([d10x,d10y,d10z]); translate([1,d10y/2,0]) cylinder(h = d10z,r = 0.55); translate([4,d10y/2,0]) cylinder(h = d10z,r = 0.55); translate([9,d10y/2,0]) cylinder(h = d10z,r = 0.55); translate([14,d10y/2,0]) cylinder(h = d10z,r = 0.55); translate([17,d10y/2,0]) cylinder(h = d10z,r = 0.55); } //end difference
Grate
G1
g1x=23; g1y=2; g1z=0.5; $fn=20; difference(){ cube([g1x,g1y,g1z]); translate([7,g1y/2,0]) cylinder(h = g1z,r = 0.4065); translate([16,g1y/2,0]) cylinder(h = g1z,r = 0.4065); } //end difference
G2
g2x=56; g2y=2.3; g2z=0.5; $fn=20; union(){ difference(){ cube([g2x,g2y-0.1,g2z]); translate([4.375,1.6,0]) //goofy distance apart holes cylinder(h = g2z,r = 0.406); translate([20.125,1.6,0]) cylinder(h = g2z,r = 0.406); translate([35.875,1.6,0]) cylinder(h = g2z,r = 0.406); translate([51.625,1.6,0]) cylinder(h = g2z,r = 0.406); //first two cuts are goofy distance from begining, so is last one. for(i=[0:((g2x-3.4)/1.75)]) translate([(i*1.75)+3.4,0,0]) cube([0.3,0.5,g2z]); translate([1.6,0,0]) cube([0.3,0.5,g2z]); } //end difference //goofy distance from end translate([15.9475,g2y-0.1,0]) cube([0.3,0.1,g2z]); translate([g2x-15.9475-0.3,g2y-0.1,0]) cube([0.3,0.1,g2z]); }
G3
g3x=2; g3y=3; g3z=0.5; $fn=20; difference(){ cube([g3x,g3y,g3z]); translate([1,1,0]) cylinder(h = g3z,r = 0.40625); } //end difference
G4
g4x=5; g4y=2.5; g4z=0.5; $fn=20; difference(){ cube([g4x,g4y,g4z]); translate([1,1.25,0]) cylinder(h = g4z,r = 0.40625); } //end difference