/* standoff(standoff[radius,height,holesize,supportsize,supportheight,sink,style,i_dia,i_depth]) */ /* standoff module standoff(standoff[radius,height,holesize,supportsize,supportheight,sink,style,reverse,insert_e,i_dia,i_depth]) sink=0 none sink=1 countersink sink=2 recessed hole sink=3 nut holder sink=4 blind hole style=0 hex shape style=1 cylinder */ module standoff(stand_off){ radius = stand_off[0]; height = stand_off[1]; holesize = stand_off[2]; supportsize = stand_off[3]; supportheight = stand_off[4]; sink = stand_off[5]; style = stand_off[6]; reverse = stand_off[7]; insert_e = stand_off[8]; i_dia = stand_off[9]; i_depth = stand_off[10]; adjust = 0.1; difference (){ union () { if(style == 0 && reverse == 0) { rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6); } if(style == 0 && reverse == 1) { translate([0,0,-height]) rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6); } if(style == 1 && reverse == 0) { cylinder(d=radius,h=height,$fn=90); } if(style == 1 && reverse == 1) { translate([0,0,-height]) cylinder(d=radius,h=height,$fn=90); } if(reverse == 1) { translate([0,0,-supportheight]) cylinder(d=(supportsize),h=supportheight,$fn=60); } else { cylinder(d=(supportsize),h=supportheight,$fn=60); } } // hole if(sink <= 3 && reverse == 0) { translate([0,0,-adjust]) cylinder(d=holesize, h=height+(adjust*2),$fn=90); } if(sink <= 3 && reverse == 1) { translate([0,0,-adjust-height]) cylinder(d=holesize, h=height+(adjust*2),$fn=90); } // countersink hole if(sink == 1 && reverse == 0) { translate([0,0,-adjust]) cylinder(d1=6.5, d2=(holesize), h=3); } if(sink == 1 && reverse == 1) { translate([0,0,+adjust-2.5]) cylinder(d1=(holesize), d2=6.5, h=3); } // recessed hole if(sink == 2 && reverse == 0) { translate([0,0,-adjust]) cylinder(d=6.5, h=3); } if(sink == 2 && reverse == 1) { translate([0,0,+adjust-3]) cylinder(d=6.5, h=3); } // nut holder if(sink == 3 && reverse == 0) { translate([0,0,-adjust]) cylinder(r=3.3,h=3,$fn=6); } if(sink == 3 && reverse == 1) { translate([0,0,+adjust-3]) cylinder(r=3.3,h=3,$fn=6); } // blind hole if(sink == 4 && reverse == 0) { translate([0,0,2]) cylinder(d=holesize, h=height,$fn=90); } if(sink == 4 && reverse == 1) { translate([0,0,-height-2-adjust]) cylinder(d=holesize, h=height,$fn=90); } if(insert_e > 0 && reverse == 0) { translate([0,0,height-i_depth]) cylinder(d=i_dia, h=i_depth+adjust,$fn=90); } if(insert_e > 0 && reverse == 1) { translate([0,0,-height-adjust]) cylinder(d=i_dia, h=i_depth+adjust,$fn=90); } } }