From 7ae48d6e4f451134e0132a7e530cf30dd6d1c54a Mon Sep 17 00:00:00 2001 From: finn Date: Fri, 4 Jul 2025 02:01:47 -0700 Subject: [PATCH] 1st pass eberle qls mount --- outdoor/eberleMount.scad | 75 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 outdoor/eberleMount.scad diff --git a/outdoor/eberleMount.scad b/outdoor/eberleMount.scad new file mode 100644 index 0000000..5f9b24a --- /dev/null +++ b/outdoor/eberleMount.scad @@ -0,0 +1,75 @@ +// Simple c shaped clip to insert into molle and mount QRS to. +// Ref: Hole spacing upper 31.8mm apart, lower 64.6mm below midpoint of upper, try 6mm holes +// +// Strategy: +// 3 cylinders at hole spacing +// 3 boxes with c shape +// minkowski all +// cut holes, slice top and bottom +// so backwards: diff 2 slices and holes, minkowski, then make the 3 cylinders and 3 cubes + +$fn = 40; +qlsHoriz = 31.8; +qlsVert = 64.6; +qlsShiftX = 4; +qlsShiftY = 63; +qlsCant = 9.1; + +minkRad = 4; +thickness = 5; +armSize = 15; +armCtc = 37; +armLength = 126; + +// QLS spaced cylinders for add or remove +module qls(diam = 6) { + translate([qlsHoriz / 2, qlsVert / 2, 0]){ + cylinder(44, d = diam, center = true); + } + translate([-1 * qlsHoriz / 2, qlsVert / 2, 0]){ + cylinder(44, d = diam, center = true); + } + translate([0, -qlsVert / 2]){ + cylinder(44, d = diam, center = true); + } + } + module tcqls(diam = 6) { + translate([qlsShiftX, qlsShiftY, 0]){ + rotate(qlsCant, [0, 0, 1]){ + qls(diam); + } + } + } + +// main diff +difference() { + // diff the minkowskid collection and two slice plates and some qls holes + minkowski() { + // minkowski the 6 part union and a sphere + union() { + // union of 3 cubes and 3 cylinders from qls + translate([ armCtc / 2, armLength / 2, 0 ]) { + cube([ armSize - minkRad * 2, armLength - minkRad * 2, 1 ], center = true); + } + translate([ -armCtc / 2, armLength / 2, 0 ]) { + cube([ armSize - minkRad * 2, armLength - minkRad * 2, 1 ], center = true); + } + translate([ 0, armLength - armSize / 2, 0 ]) { + cube([ armCtc + armSize - minkRad * 2 , armSize - minkRad * 2, 1], center = true); + } + tcqls(12 - minkRad); + } + + // mink sphere + sphere(minkRad); + } + // diffed top bottom slices and qls screw holes + translate([0, 0, -33 - thickness / 2]){ + cube([444, 444, 66], center = true); + } + translate([0, 0, 33 + thickness / 2]){ + cube([444, 444, 66], center = true); + } + tcqls(7); + + }