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); }}
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | 
