59 lines
4.1 KiB
OpenSCAD
59 lines
4.1 KiB
OpenSCAD
|
include <../tray/common.scad>
|
||
|
|
||
|
u2 = 89;
|
||
|
rw = 482.6;
|
||
|
|
||
|
holder_size = [tray_size[0]+5, u2, tray_size[2]+3*2+36];
|
||
|
holder_margin = 7.5;
|
||
|
|
||
|
top_size = 5;
|
||
|
bottom_size = 11;
|
||
|
|
||
|
module holder() {
|
||
|
color("#a0a0a0") difference() {
|
||
|
translate([-5.01, 0, -3]) union() {
|
||
|
// base
|
||
|
translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, bottom_size]);
|
||
|
mirror([0,1,0]) translate([0, 2.5-(holder_size[1]-tray_size[1])/2 - tray_size[1], 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, bottom_size]);
|
||
|
cube([5, tray_size[1], bottom_size]);
|
||
|
translate([holder_size[0]-holder_margin, 0, 0]) cube([holder_margin, tray_size[1], 3]);
|
||
|
|
||
|
// top
|
||
|
translate([0, 0, holder_size[2]-top_size]) {
|
||
|
translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, top_size]);
|
||
|
mirror([0,1,0]) translate([0, 2.5-(holder_size[1]-tray_size[1])/2 - tray_size[1], 0]) cube([holder_size[0], (holder_size[1]-tray_size[1])/2, top_size]);
|
||
|
cube([5, tray_size[1], top_size]);
|
||
|
translate([holder_size[0]-holder_margin, 0, 0]) cube([holder_margin, tray_size[1], top_size]);
|
||
|
}
|
||
|
|
||
|
// pillars
|
||
|
translate([0, 2.5-(holder_size[1]-tray_size[1])/2, 0]) {
|
||
|
cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]);
|
||
|
translate([0, holder_size[1]-2-(holder_size[1]-tray_size[1])/2, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]);
|
||
|
translate([holder_size[0]-5, holder_size[1]-2-(holder_size[1]-tray_size[1])/2, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]);
|
||
|
translate([holder_size[0]-5, 0, 0]) cube([5, (holder_size[1]-tray_size[1])/2-3, holder_size[2]]);
|
||
|
}
|
||
|
|
||
|
// studs
|
||
|
translate([(holder_size[1]-tray_size[1])/4, -(holder_size[1]-tray_size[1])/4, holder_size[2]+2.5]) {
|
||
|
cylinder(h=5, r=2.5, center=true);
|
||
|
translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, 0, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
translate([0, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
union() {
|
||
|
tray();
|
||
|
translate([(holder_size[1]-tray_size[1])/4-5.01, -(holder_size[1]-tray_size[1])/4, -0.501]) {
|
||
|
cylinder(h=5, r=2.5, center=true);
|
||
|
translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, 0, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
translate([0, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
translate([holder_size[0]-(holder_size[1]-tray_size[1])/2, holder_size[1]-(holder_size[1]-tray_size[1])/2, 0]) cylinder(h=5, r=2.5, center=true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// color("#f0f0f0") holder();
|