102 lines
2.7 KiB
OpenSCAD
102 lines
2.7 KiB
OpenSCAD
|
// socket outlet mount / steckdosenleistenhalter
|
||
|
// by zeus - zeus@ctdo.de - CC-BY-NC-4.0
|
||
|
// -> https://www.thingiverse.com/zeus
|
||
|
// -> https://github.com/zeus86
|
||
|
// 2014-11-04
|
||
|
// ==============================================
|
||
|
|
||
|
|
||
|
holder_w=55; // real size of steckdosenleiste, not holder!
|
||
|
holder_h=41; // as above; better add 1mm or so here for not to tight fit
|
||
|
holder_d=15;
|
||
|
hole_dia=5;
|
||
|
material_t=4;
|
||
|
$fn=50;
|
||
|
|
||
|
// ==============================================
|
||
|
|
||
|
// define which clamp to draw
|
||
|
|
||
|
//endclamp_closed_flange();
|
||
|
//endclamp_closed();
|
||
|
endclamp_halfopen();
|
||
|
//midclamp_open();
|
||
|
//midclamp_allopen();
|
||
|
|
||
|
// ==============================================
|
||
|
|
||
|
module endclamp_closed(){
|
||
|
difference(){
|
||
|
//walls
|
||
|
translate([0,0,holder_d/2+material_t/2]){
|
||
|
cube([holder_w+2*material_t,holder_h+2*material_t,holder_d+material_t],center=true);}
|
||
|
translate([0,0,holder_d/2+material_t]){
|
||
|
cube([holder_w,holder_h,holder_d+0.1],center=true);}
|
||
|
//holes
|
||
|
for (N = [-holder_w/4, holder_w/4]){
|
||
|
translate([N,-material_t/2,holder_d/2+material_t/2]){rotate([90,0,0]){
|
||
|
cylinder(r=hole_dia,h=holder_h+2*material_t+0.1,center=true);}}
|
||
|
translate([N,holder_h/2+material_t/2,holder_d/2+material_t/2]){rotate([90,0,0]){
|
||
|
cylinder(r=hole_dia/2,h=material_t+0.1,center=true);}}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
module endclamp_closed_flange(){
|
||
|
rotate([0,90,0]){
|
||
|
difference(){
|
||
|
union(){
|
||
|
rotate([0,180,0]){ translate([0,0,-holder_h/2+material_t/3]){ endclamp_closed();}}
|
||
|
translate([0,holder_h/2+material_t/2,holder_h/1.5-material_t/4]){
|
||
|
cube([holder_w+2*material_t,material_t,holder_d],center=true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for (N = [-holder_w/4, holder_w/4]){
|
||
|
translate([N,-material_t/2,holder_d*1.5+material_t]){rotate([90,0,0]){
|
||
|
cylinder(r=hole_dia,h=holder_h+2*material_t+0.1,center=true);}}
|
||
|
translate([N,holder_h/2+material_t/2,holder_d*1.5+material_t]){rotate([90,0,0]){
|
||
|
cylinder(r=hole_dia/2,h=material_t+0.1,center=true);}}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
module midclamp_open(){
|
||
|
difference(){
|
||
|
endclamp_closed();
|
||
|
translate([0,0,material_t/2]){
|
||
|
cube([holder_w,holder_h,2*material_t+0.1],center=true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
module midclamp_allopen(){
|
||
|
difference(){
|
||
|
endclamp_closed();
|
||
|
translate([0,0,material_t/2]){
|
||
|
cube([holder_w,holder_h,material_t+0.1],center=true);}
|
||
|
translate([0,-holder_h/2-material_t/2,holder_d/2+material_t/2])
|
||
|
cube([holder_w-material_t*3.5,material_t*2,holder_d+material_t+0.1],center=true); }
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
module endclamp_halfopen(){
|
||
|
difference(){
|
||
|
endclamp_closed();
|
||
|
translate([0,0,material_t/2]){
|
||
|
cylinder(r=holder_h/2,h=material_t+0.1,center=true);
|
||
|
}
|
||
|
for ( A = [-20 : 20] ){
|
||
|
translate([0,-holder_h/2-material_t/2,holder_d/2+material_t/2]){ rotate([0,A,0]){
|
||
|
cube([hole_dia*1.5,material_t*2,holder_d+2*material_t+0.1],center=true); }}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|