From b47b192fd451a48d13f133ddb1227747770757c5 Mon Sep 17 00:00:00 2001 From: "Brian S. Stephan" Date: Thu, 17 Aug 2023 10:53:43 -0500 Subject: [PATCH] successful version of the left frame print seems aligned with the top plate, hole sizes look right, still need to pair it with a true middle frame --- src/components.scad | 35 +++++++++++++++++++++++++++++++++++ src/left-frame.scad | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 src/left-frame.scad diff --git a/src/components.scad b/src/components.scad index d79c285..e591e15 100644 --- a/src/components.scad +++ b/src/components.scad @@ -123,6 +123,13 @@ module topplate() { } } +module frame_box() { + difference() { + cube([frame_x, frame_y, frame_z], center=true); + cube([160, 185, frame_z+5], center=true); + } +} + module frame_mount_column() { cube([20, 20, frame_z], center=true); } @@ -133,3 +140,31 @@ module frame_panel_surround() { scale([1, 1, 2]) base_topplate(); } } + +module base_frame() { + frame_box(); + translate([0, 0, frame_z/2 + top_plate_z/2]) + frame_panel_surround(); + translate([(top_plate_x/2)-10, (top_plate_y/2)-10, 0]) + frame_mount_column(); + translate([-((top_plate_x/2)-10), (top_plate_y/2)-10, 0]) + frame_mount_column(); + translate([(top_plate_x/2)-10, -((top_plate_y/2)-10), 0]) + frame_mount_column(); + translate([-((top_plate_x/2)-10), -((top_plate_y/2)-10), 0]) + frame_mount_column(); +} + +module frame() { + difference() { + base_frame(); + translate([(top_plate_x/2)-10, (top_plate_y/2)-10, 0]) + frame_hex_bolt_hole(); + translate([-((top_plate_x/2)-10), (top_plate_y/2)-10, 0]) + frame_hex_bolt_hole(); + translate([(top_plate_x/2)-10, -((top_plate_y/2)-10), 0]) + frame_hex_bolt_hole(); + translate([-((top_plate_x/2)-10), -((top_plate_y/2)-10), 0]) + frame_hex_bolt_hole(); + } +} diff --git a/src/left-frame.scad b/src/left-frame.scad new file mode 100644 index 0000000..850f1f2 --- /dev/null +++ b/src/left-frame.scad @@ -0,0 +1,44 @@ +/* Copyright Brian Stephan 2023 + * + * This file is part of bullet-system-stick. + * + * bullet-system-stick is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * bullet-system-stick is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * bullet-system-stick. If not, see . + */ + +include + +module left_frame() { + difference() { + frame(); + // chop the right edge off + translate([frame_x/2, 0, 0]) cube([10.001, 2*(frame_y+top_plate_y), 2*(frame_z+top_plate_z)], center=true); + } +} + +difference() { + left_frame(); + // connection hole to other frames + translate([frame_x/2, (frame_y/4)+10, (frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, (frame_y/4)+10, -(frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, (frame_y/4)-10, (frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, (frame_y/4)-10, -(frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + + translate([frame_x/2, -((frame_y/4)+10), (frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, -((frame_y/4)+10), -(frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, -((frame_y/4)-10), (frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + translate([frame_x/2, -((frame_y/4)-10), -(frame_z/4)]) rotate([0, 90, 0]) m4_hole(); + + // cable routing hole + translate([frame_x/2, 0, 0]) rotate([0, 90, 0]) frame_interchange_hole(); +}