Mate holder

From 33C3_Public_Wiki
Jump to: navigation, search
Description Mate holder for the chairs in CCH
Has website
Persons working on Asbjorn
Other projects...

refresh

Keep you mate bottles from tilting over on the floor. I preprinted about 60 at Labitat before going to congress.

Unfortunately there are some chairs, where they doesn't fit (too few measurement samples), forcing them will make break em, so only use them on those were they fit.

Enjoy, if you want one there currently are some in saal 2.

Mate holder.jpg

holder.scad

// Mate holder for Saal 1-2 at CCH, rev 1
// Placed in Public Domain

plate_d = 16.3; // turned out to only fit about 2/3 of the chairs :(
plate_w = 500;
plate_h = 600;

// >>> ((atan(58./10)/(tau/360))+360)%90
// 80.21759296819272
plate_angle = 9.8;

mate_head_radius = 13.25;
mate_outer_radius = 15.75;

arm_w = 5;
holder_w = 2*mate_head_radius+(2*arm_w);
holder_hf = 10; 
holder_hb = 20; 

module backplate() {
        translate([-plate_w/2,0,0]) rotate([plate_angle+180,0,0]) cube([plate_w,plate_d,plate_h]);
}

module barehook() {
       rotate([plate_angle+180,0,0]) translate([-holder_w/2,plate_d/2,0]) rotate([90,0,90]) scale([1,0.47,1]) cylinder(r=plate_d/2+5,h=holder_w,$fn=50);
        translate([-holder_w/2,0,0]) rotate([plate_angle+180,0,0]) translate([0,-5,0]) {
                cube([holder_w,10+plate_d,holder_hf]);
                translate([0,plate_d,0]) cube([holder_w,10,holder_hb]);
        }
}

module mate_bottle() {
        translate([0,0,-24.8]) cylinder(r=mate_head_radius,h=25,$fn=50);
        translate([0,0,0.001]) cylinder(r=mate_outer_radius,h=3,$fn=50);
}

module room_for_mate() {
        mate_bottle();
        cylinder(r=mate_outer_radius,h=30,$fn=50);
        difference(){
                translate([-mate_outer_radius,-30,0]) cube([2*mate_outer_radius, 30,10]);
                translate([-holder_w/2,-11, -0.5]) rotate([0,90,0]) scale([0.67,1,1]) cylinder(r=4,h=holder_w,$fn=50);
        }
        translate([0,-mate_head_radius,0]) cube([mate_head_radius*2,mate_head_radius*2,20],center=true);
}

module mate_holder() {
        difference () {
                union(){
                        translate([-holder_w/2,-15,-5]) cube([holder_w,30,5]);
                        translate([-holder_w/2,-11, -0.5]) rotate([0,90,0]) scale([0.67,1,1]) cylinder(r=4,h=holder_w,$fn=50);
                }
                union(){
                        mate_bottle();
                        translate([0,-mate_head_radius,0]) cube([mate_head_radius*2,mate_head_radius*2,20],center=true);
                }
        }
        //mate_bottle();
}

module arm_support() {
        difference(){
                translate([0,-25,-25]) cube([5,25,25]);
                translate([0,-25,0]) rotate([50,0,0]) translate([-1,-50,-50]) cube([7,50,50]);
        }
}

module hook() {
        difference () {
                union(){
                        barehook();
                        translate([0,-30,3]) mate_holder();
                        translate([-holder_w/2,-41,0]) cube([holder_w,37,5.2]);
                        translate([0,-17,0]){
                                translate([-holder_w/2,0,0]) arm_support();
                                translate([holder_w/2-5,0,0]) arm_support();
                        }
                };
                backplate();
                translate([0,-30,0]) room_for_mate();
                rotate([plate_angle+90,0,0]) translate([0,-3,10]) cylinder(r=3,h=15,$fn=50);
        }
}

//%backplate();
//hook();
rotate([180,0,0]) // for rotate for printing
hook();