commit 038e29f571f34c888cd57bc3d39c831c45dc9bda Author: nedko Date: Thu Jun 19 14:32:44 2025 +0300 Inital 3D added diff --git a/3d/base.scad b/3d/base.scad new file mode 100644 index 0000000..1182ab4 --- /dev/null +++ b/3d/base.scad @@ -0,0 +1,42 @@ +include + +union() +{ + // Center Piece + translate([0, -base_size_y/2 + plate_size_y/2, 0]) + difference() + { + // Base + cube([base_size_x + 2 * base_wall_size, base_size_y + 2 * base_wall_size, base_size_z], center = true); + + // Hollow + cube([base_size_x, base_size_y, base_size_z + 1], center = true); + + // Cut USB + translate([-usb_dist_x, base_size_y/2 + base_wall_size/2, base_size_z/2]) + cube([usb_size_x, base_wall_size + 1, usb_size_z * 2], center = true); + } + + // Side Pieces + for (x = [-1:2:1]) + { + translate([x * (base_size_x/2 + base_wall_size + side_size_x/2), 0, 0]) + difference() + { + // Main Block + cube([side_size_x, side_size_y, base_size_z], center = true); + + // Cut Screw + translate([0, 0, base_size_z/2]) + cylinder(h = base_size_z, d = screw_dia, $fn = seg, center = true); + + // Cut Screw Head + translate([0, 0, -screw_dia/4]) + cylinder(h = screw_dia/2, d1 = screw_dia * 2, d2 = screw_dia, $fn = seg, center = true); + + // Cut Screw Head Extension + translate([0, 0, -base_size_z/2 - screw_dia/2]) + cylinder(h = base_size_z, d = screw_dia * 2, $fn = seg, center = true); + } + } +} diff --git a/3d/base.stl b/3d/base.stl new file mode 100644 index 0000000..3d74ef1 Binary files /dev/null and b/3d/base.stl differ diff --git a/3d/config.scad b/3d/config.scad new file mode 100644 index 0000000..a5d9424 --- /dev/null +++ b/3d/config.scad @@ -0,0 +1,43 @@ +wall_size = 1.5; +tol = 1; +seg = 60; + +base_wall_size = 3; +base_size_x = 56; +base_size_y = 72; +base_size_z = 6; +plate_size_x = 56; +plate_size_y = 56; + +plate_elevation = 37.5; + +usb_dist_x = 8.5; +usb_size_x = 8; +usb_size_z = 3; + +screw_dia = 3.2; +thread_insert_dia = 4; +thread_insert_z = 6.7; + +side_size_x = 10; +side_size_y = 10; +side_size_z = plate_elevation - base_size_z; + +top_size_x = plate_size_x; +top_size_y = plate_size_y; +top_size_z = 6; + +stem_tol = 0.1; +stem_dist = 5.7; +stem_size_x = 1.2 + stem_tol; +stem_size_y = 3 + stem_tol; +stem_size_z = 3; +stem_hole = 2; + +weight_size_x1 = 100; +weight_size_y1 = 100; +weight_size_x2 = top_size_x + tol + 2 * wall_size; +weight_size_y2 = top_size_y + tol + 2 * wall_size; +weight_size_z = max((weight_size_x1 - weight_size_x2)/2, (weight_size_y1 - weight_size_y2)/2); +weight_scale_x = weight_size_x2 / weight_size_x1; +weight_scale_y = weight_size_y2 / weight_size_y1; diff --git a/3d/side.scad b/3d/side.scad new file mode 100644 index 0000000..e54283f --- /dev/null +++ b/3d/side.scad @@ -0,0 +1,15 @@ +include + +rotate([0, 90, 0]) +difference() +{ + // Main Block + cube([side_size_x, side_size_y, side_size_z], center = true); + + // Cut Holes + for (z = [-1:2:1]) + { + translate([0, 0, z * side_size_z/2]) + cylinder(h = thread_insert_z * 2, d = thread_insert_dia, $fn = seg, center = true); + } +} diff --git a/3d/side.stl b/3d/side.stl new file mode 100644 index 0000000..58cddfe Binary files /dev/null and b/3d/side.stl differ