mirror of https://github.com/lumapu/ahoy.git
				
				
			
				 4 changed files with 283 additions and 0 deletions
			
			
		| After Width: | Height: | Size: 213 KiB | 
| After Width: | Height: | Size: 34 KiB | 
| @ -0,0 +1,283 @@ | |||||
|  | $fn=100; | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | translate([-w/2-10,0,d+bpt+tpt]) | ||||
|  | rotate(a=180, v=[0,1,0]) | ||||
|  | box_top(); | ||||
|  | translate([w/2+10,0,0]) | ||||
|  | box_bottom(); | ||||
|  |               | ||||
|  | 
 | ||||
|  | //*************************************************// | ||||
|  | //PARAMETERS | ||||
|  | //*************************************************// | ||||
|  | //BOX | ||||
|  | //-------------------------------------------------- | ||||
|  | //inner box width + tolerances | ||||
|  | w=90; | ||||
|  | //inner box length + tolerances | ||||
|  | h=30; | ||||
|  | //inner box depth  | ||||
|  | d=35; | ||||
|  | //wall tickness | ||||
|  | wt=3; | ||||
|  | //bottom plate tickness | ||||
|  | bpt=3; | ||||
|  | //top plate tickness | ||||
|  | tpt=3; | ||||
|  | //top cutout depth | ||||
|  | cd=5; | ||||
|  | //top cutout tickness | ||||
|  | cwt=1.5; | ||||
|  | //-------------------------------------------------- | ||||
|  | //BOARD MOUNTING HOLES | ||||
|  | //-------------------------------------------------- | ||||
|  | //position | ||||
|  | cx=0; | ||||
|  | cy=0; | ||||
|  | //holes size (radius) | ||||
|  | chs_i=1.5; | ||||
|  | chs_o=4; | ||||
|  | //distancer height | ||||
|  | dsth=3; | ||||
|  | //holes distance h | ||||
|  | chd_h=90; | ||||
|  | //holes distance v | ||||
|  | chd_v=90; | ||||
|  | //-------------------------------------------------- | ||||
|  | //TOP PART MOUNTING HOLES | ||||
|  | //-------------------------------------------------- | ||||
|  | //position | ||||
|  | cx1=0; | ||||
|  | cy1=0; | ||||
|  | //holes size (radius) | ||||
|  | chs_i1=1.6; | ||||
|  | chs_o1=3; | ||||
|  | //holes distance h | ||||
|  | chd_h1=h-2*chs_i1-2; | ||||
|  | //holes distance v | ||||
|  | chd_v1=w-2*chs_i1-2; | ||||
|  | //*************************************************// | ||||
|  | //*************************************************// | ||||
|  | //MODULES | ||||
|  | //*************************************************// | ||||
|  | 
 | ||||
|  | //top box part           | ||||
|  | module box_top() | ||||
|  | { | ||||
|  |         difference() | ||||
|  |         { | ||||
|  |             union() | ||||
|  |             { | ||||
|  |                 difference() | ||||
|  |                 { | ||||
|  |                     translate([ 0, 0, d+bpt-cd-0.2])      | ||||
|  |                     rounded_cube( w+2*wt, h+2*wt, tpt+cd+0.2, 6); | ||||
|  |                      | ||||
|  |                     translate([ 0, 0,  d+bpt-cd-1]) | ||||
|  |                     rounded_cube( w+2*cwt+0.3, h+2*cwt+0.3, cd+1, 4); | ||||
|  |                 } | ||||
|  |                 /*************************/ | ||||
|  |                  | ||||
|  |                 //add here... | ||||
|  |                  | ||||
|  |                 /*************************/ | ||||
|  |             } | ||||
|  |             //TOP PART HOLES | ||||
|  |             //tph_t_cut(); | ||||
|  |             /*************************/ | ||||
|  |              | ||||
|  |             //subtract here...  | ||||
|  |              | ||||
|  |             /*************************/  | ||||
|  |         } | ||||
|  | } | ||||
|  | //bottom box | ||||
|  | module box_bottom() | ||||
|  | { | ||||
|  |     difference() | ||||
|  |     { | ||||
|  |         union() | ||||
|  |         { | ||||
|  |             difference() | ||||
|  |             { | ||||
|  |                 rounded_cube( w+2*wt, h+2*wt, d+bpt, 6); | ||||
|  |                  | ||||
|  |                 translate([ 0, 0, -cd]) | ||||
|  |                 difference() | ||||
|  |                 { | ||||
|  |                     translate([ 0, 0,  d+bpt]) | ||||
|  |                     rounded_cube( w+2*wt+1, h+2*wt+1, cd+1, 4); | ||||
|  | 
 | ||||
|  |                     translate([ 0, 0,  d+bpt-1]) | ||||
|  |                     rounded_cube( w+2*cwt, h+2*cwt, cd+3, 4); | ||||
|  |                 } | ||||
|  |                 translate([ 0, 0, bpt]) | ||||
|  |                 rounded_cube( w, h, d+bpt, 4); | ||||
|  |             } | ||||
|  |             //BOARD DISTANCER | ||||
|  |             //board_distancer(); | ||||
|  |             //TOP PLATE DISTANCER | ||||
|  |             //top_distancer(); | ||||
|  |             /*************************/ | ||||
|  | 
 | ||||
|  |              | ||||
|  |              | ||||
|  |             /*************************/ | ||||
|  |         } | ||||
|  |          | ||||
|  |         //BOARD HOLES | ||||
|  |         //bh_cut(); | ||||
|  |         //TOP PART HOLES | ||||
|  |         //tph_b_cut(); | ||||
|  |         /*************************/ | ||||
|  |          | ||||
|  |         //subtract here... | ||||
|  |                      | ||||
|  |             translate([25, 0, 14]) | ||||
|  |             rotate([0,90,0])    | ||||
|  |             cylinder(r=3.5,h=40); | ||||
|  | 
 | ||||
|  |             translate([-48, 0, 7]) | ||||
|  |             cube( [10, 10, 5], true); | ||||
|  |              | ||||
|  |         /*************************/ | ||||
|  |    | ||||
|  |     } | ||||
|  | } | ||||
|  | 
 | ||||
|  | /****************************************************/ | ||||
|  | module board_distancer() | ||||
|  | { | ||||
|  |     translate([cx,cy,0]) | ||||
|  |     {               | ||||
|  |         translate([+chd_h/2,chd_v/2,0]) | ||||
|  |         cylinder(r=chs_o,h=bpt+dsth); | ||||
|  |         translate([-chd_h/2,chd_v/2,0]) | ||||
|  |         cylinder(r=chs_o,h=bpt+dsth); | ||||
|  |         translate([+chd_h/2,-chd_v/2,0]) | ||||
|  |         cylinder(r=chs_o,h=bpt+dsth); | ||||
|  |         translate([-chd_h/2,-chd_v/2,0]) | ||||
|  |         cylinder(r=chs_o,h=bpt+dsth); | ||||
|  |     } | ||||
|  | } | ||||
|  | module top_distancer() | ||||
|  | { | ||||
|  |     translate([cx1,cy1,0]) | ||||
|  |     { | ||||
|  |         translate([-chd_v1/2, chd_h1/2, 0])    | ||||
|  |         cylinder(r=chs_o1,h=d+bpt); | ||||
|  |         translate([-chd_v1/2, -chd_h1/2, 0])    | ||||
|  |         cylinder(r=chs_o1,h=d+bpt); | ||||
|  |         translate([chd_v1/2, chd_h1/2, 0])    | ||||
|  |         cylinder(r=chs_o1,h=d+bpt); | ||||
|  |         translate([chd_v1/2, -chd_h1/2, 0])    | ||||
|  |         cylinder(r=chs_o1,h=d+bpt); | ||||
|  |     } | ||||
|  | } | ||||
|  | module bh_cut() | ||||
|  | { | ||||
|  |     translate([cx,cy,0]) | ||||
|  |     {   | ||||
|  |         translate([-chd_h/2,-chd_v/2,-1]) | ||||
|  |         cylinder(r=chs_i,h=bpt+dsth+2); | ||||
|  |         translate([+chd_h/2,-chd_v/2,-1]) | ||||
|  |         cylinder(r=chs_i,h=bpt+dsth+2); | ||||
|  |         translate([-chd_h/2,chd_v/2,-1]) | ||||
|  |         cylinder(r=chs_i,h=bpt+dsth+2); | ||||
|  |         translate([+chd_h/2,chd_v/2,-1]) | ||||
|  |         cylinder(r=chs_i,h=bpt+dsth+2); | ||||
|  |          | ||||
|  |         translate([-chd_h/2,-chd_v/2,1.3]) | ||||
|  |         fhex(5.5,3); | ||||
|  |         translate([+chd_h/2,-chd_v/2,1.3]) | ||||
|  |         fhex(5.5,3); | ||||
|  |         translate([-chd_h/2,chd_v/2,1.3]) | ||||
|  |         fhex(5.5,3); | ||||
|  |         translate([+chd_h/2,chd_v/2,1.3]) | ||||
|  |         fhex(5.5,3); | ||||
|  |     } | ||||
|  | } | ||||
|  | 
 | ||||
|  | module tph_t_cut() | ||||
|  | { | ||||
|  |     translate([cx1,cy1,0]) | ||||
|  |     { | ||||
|  |         translate([-chd_v1/2, chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+tpt+3); | ||||
|  |         translate([chd_v1/2, chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+tpt+3); | ||||
|  |      | ||||
|  |         translate([-chd_v1/2, -chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+tpt+3); | ||||
|  |         translate([chd_v1/2, -chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+tpt+3); | ||||
|  |          | ||||
|  |         translate([-chd_v1/2, chd_h1/2, d+bpt+tpt-1.3])  | ||||
|  |         fhex(5.5,3); | ||||
|  |          | ||||
|  |         translate([chd_v1/2, chd_h1/2, d+bpt+tpt-1.3])   | ||||
|  |         fhex(5.5,3); | ||||
|  |      | ||||
|  |         translate([-chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3])    | ||||
|  |         fhex(5.5,3); | ||||
|  |          | ||||
|  |         translate([chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3])    | ||||
|  |         fhex(5.5,3); | ||||
|  |      | ||||
|  |     }    | ||||
|  | } | ||||
|  | module tph_b_cut() | ||||
|  | { | ||||
|  |     translate([cx1,cy1,0]) | ||||
|  |     { | ||||
|  |         translate([-chd_v1/2, chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+3); | ||||
|  |         translate([chd_v1/2, chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+3); | ||||
|  |      | ||||
|  |         translate([-chd_v1/2, -chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+3); | ||||
|  |         translate([chd_v1/2, -chd_h1/2, -2])    | ||||
|  |         cylinder(r=chs_i1,h=d+bpt+3); | ||||
|  |          | ||||
|  |         translate([-chd_v1/2, chd_h1/2, -1])  | ||||
|  |         cylinder(r=3,h=4); | ||||
|  |          | ||||
|  |         translate([chd_v1/2, chd_h1/2, -1])   | ||||
|  |         cylinder(r=3,h=4); | ||||
|  |      | ||||
|  |         translate([-chd_v1/2, -chd_h1/2, -1])    | ||||
|  |         cylinder(r=3,h=4); | ||||
|  |          | ||||
|  |         translate([chd_v1/2, -chd_h1/2, -1])    | ||||
|  |         cylinder(r=3,h=4);  | ||||
|  |      | ||||
|  |     }    | ||||
|  | } | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | module rounded_cube( x, y, z, r) | ||||
|  | { | ||||
|  |     translate([-x/2+r,-y/2+r,0]) | ||||
|  |     linear_extrude(height=z) | ||||
|  |     minkowski()  | ||||
|  |     { | ||||
|  |         square([x-2*r,y-2*r],true); | ||||
|  |         translate([x/2-r,y/2-r,0]) | ||||
|  |         circle(r); | ||||
|  | 
 | ||||
|  |     } | ||||
|  | } | ||||
|  | 
 | ||||
|  | module fhex(wid,height) | ||||
|  | { | ||||
|  |     hull() | ||||
|  |     { | ||||
|  |         cube([wid/1.7,wid,height],center = true); | ||||
|  |         rotate([0,0,120])cube([wid/1.7,wid,height],center = true); | ||||
|  |         rotate([0,0,240])cube([wid/1.7,wid,height],center = true); | ||||
|  |     } | ||||
|  | } | ||||
								
									Binary file not shown.
								
							
						
					
					Loading…
					
					
				
		Reference in new issue