Box 1.0
This commit is contained in:
commit
b93ea4c409
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();
|
Loading…
x
Reference in New Issue
Block a user