From 038e29f571f34c888cd57bc3d39c831c45dc9bda Mon Sep 17 00:00:00 2001 From: nedko Date: Thu, 19 Jun 2025 14:32:44 +0300 Subject: [PATCH] Inital 3D added --- 3d/base.scad | 42 ++++++++++++++++++++++++++++++++++++++++++ 3d/base.stl | Bin 0 -> 52484 bytes 3d/config.scad | 43 +++++++++++++++++++++++++++++++++++++++++++ 3d/side.scad | 15 +++++++++++++++ 3d/side.stl | Bin 0 -> 24684 bytes 5 files changed, 100 insertions(+) create mode 100644 3d/base.scad create mode 100644 3d/base.stl create mode 100644 3d/config.scad create mode 100644 3d/side.scad create mode 100644 3d/side.stl 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 0000000000000000000000000000000000000000..3d74ef1a4a86245c49abcf84273eaf5a71a517ac GIT binary patch literal 52484 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 + +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 0000000000000000000000000000000000000000..58cddfe62c9838569388f715c86f64217a720b53 GIT binary patch literal 24684 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 literal 0 HcmV?d00001