diff --git a/src/components.scad b/src/components.scad
index e92fe19..8cd3547 100644
--- a/src/components.scad
+++ b/src/components.scad
@@ -40,6 +40,10 @@ top_plate_x = 175;
top_plate_y = 200;
top_plate_z = 5;
+// neutrik D screw holes
+neutrik_d_screw_radius = 1.6 + hole_tolerance;
+neutrik_d_radius = 12 + hole_tolerance;
+
/* PARTS */
module m4_hole() {
@@ -66,6 +70,20 @@ module frame_interchange_hole() {
cylinder(r=15, h=50, $fn=50, center=true);
}
+module neutrik_d_hole() {
+ cylinder(r=neutrik_d_radius, h=100, $fn=50, center=true);
+}
+
+module neutrik_d_screw_hole() {
+ cylinder(r=neutrik_d_screw_radius, h=100, $fn=50, center=true);
+}
+
+module neutrik_d_mount() {
+ neutrik_d_hole();
+ translate([9.5, 12, 0]) neutrik_d_screw_hole();
+ translate([-9.5, -12, 0]) neutrik_d_screw_hole();
+}
+
/* PIECES */
module levermountbase() {
diff --git a/src/frame-middle.scad b/src/frame-middle.scad
new file mode 100644
index 0000000..3851af6
--- /dev/null
+++ b/src/frame-middle.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 middle_frame() {
+ difference() {
+ frame();
+ // chop the left and right edge off
+ frame_side_chopper();
+ mirror([1, 0, 0]) frame_side_chopper();
+ }
+}
+
+difference() {
+ middle_frame();
+ // connection holes to other frames
+ frame_connection_holes();
+ mirror([1, 0, 0]) frame_connection_holes();
+
+ // cable routing holes
+ frame_cable_routing_hole();
+ mirror([1, 0, 0]) frame_cable_routing_hole();
+
+ // neutrik mounts for connector, switches
+ translate([0, 100, 0]) rotate([90, 0, 0]) neutrik_d_mount();
+ translate([-40, 100, 0]) rotate([90, 0, 0]) neutrik_d_mount();
+ translate([40, 100, 0]) rotate([90, 0, 0]) neutrik_d_mount();
+}