Box 1.0
This commit is contained in:
		
							
								
								
									
										78
									
								
								sample-box.scad
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								sample-box.scad
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| $fa = 1; | ||||
| $fs = $preview ? 2 : 0.5; | ||||
|  | ||||
| // Define dimensions | ||||
| tube_diameter = 6; | ||||
| tube_length = 14; | ||||
| distance_between_rows = 14; | ||||
| distance_between_cols = 10; | ||||
| distance_to_edge=10; | ||||
| n_rows = 3; | ||||
| n_cols = 4; | ||||
| box_wall_thickness = 2; | ||||
| lid_thickness = 2; | ||||
| interlock_height = 3; | ||||
| interlock_width = 3; | ||||
| text_dist = tube_diameter/2 + 1; | ||||
| text_depth = 1; | ||||
| tolerance=1; | ||||
|  | ||||
| // Calculate derived dimensions | ||||
| box_inner_width = (n_rows-1)*distance_between_rows + 2*distance_to_edge;  | ||||
| box_inner_length = (n_cols-1) | ||||
| *distance_between_cols + 2*distance_to_edge;  | ||||
| box_outer_width = box_inner_width + 2 * box_wall_thickness; | ||||
| box_outer_length = box_inner_length + 2 * box_wall_thickness; | ||||
|  | ||||
| // Create the box | ||||
| module box() { | ||||
|     difference() { | ||||
|         cube([box_outer_length, box_outer_width, tube_length]); | ||||
|         translate([box_wall_thickness,box_wall_thickness,tube_length-3]) | ||||
|             cube([box_inner_length, box_inner_width, 3]); | ||||
|         for (row = [0:n_rows-1]) { | ||||
|             for (col = [0:n_cols-1]) { | ||||
|             translate([col * (distance_between_cols)+distance_to_edge+box_wall_thickness,  | ||||
|                 row * (distance_between_rows)+distance_to_edge+box_wall_thickness, | ||||
|                 3]) | ||||
|                 cylinder(h=tube_length, d=tube_diameter, center=false);                 | ||||
|             } | ||||
|         } | ||||
|             for (row = [0:n_rows-1]) { | ||||
|         for (col = [0:n_cols-1]) { | ||||
|             translate([col * (distance_between_cols)+distance_to_edge+box_wall_thickness,  | ||||
|                 row * (distance_between_rows)+distance_to_edge+box_wall_thickness+text_dist, | ||||
|                 tube_length-3-text_depth]) | ||||
|                 linear_extrude(height=text_depth) text(str((n_rows+1)*(row)+(col+1)),  | ||||
|             font = "Quicksand:style=Bold", size=5, halign="center");                 | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| module lid() { | ||||
|      | ||||
|     difference() { | ||||
|         union() { | ||||
|         cube([box_outer_length, box_outer_width, tube_length-2]); | ||||
|         translate([box_wall_thickness+tolerance/2, box_wall_thickness+tolerance/2,0]) | ||||
|         cube([box_inner_length-tolerance, box_inner_width-tolerance, tube_length]); | ||||
|         } | ||||
|         for (row = [0:n_rows-1]) { | ||||
|             for (col = [0:n_cols-1]) { | ||||
|             translate([col * (distance_between_cols)+distance_to_edge+box_wall_thickness,  | ||||
|                 row * (distance_between_rows)+distance_to_edge+box_wall_thickness, | ||||
|                 3]) | ||||
|                 cylinder(h=tube_length, d=tube_diameter, center=false);                 | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| // Assemble the box, lid, and interlock | ||||
| box(); | ||||
| translate([n_cols*distance_between_cols +20,0,0]) lid(); | ||||
| //interlock(); | ||||
		Reference in New Issue
	
	Block a user