From 4431183e523d6c03c9dc705d6097ca017e26908d Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Mon, 7 Sep 2026 12:49:58 -0700 Subject: [PATCH] Initial import --- .gitattributes | 4 ++ clip-a.stl | 3 + clip-b.stl | 3 + clip.scad | 157 +++++++++++++++++++++++++++++++++++++++++++++++++ clip.stl | 3 + 5 files changed, 170 insertions(+) create mode 100644 .gitattributes create mode 100644 clip-a.stl create mode 100644 clip-b.stl create mode 100644 clip.scad create mode 100644 clip.stl diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8504958 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.stl filter=lfs diff=lfs merge=lfs -text +*.STL filter=lfs diff=lfs merge=lfs -text +*.3mf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text diff --git a/clip-a.stl b/clip-a.stl new file mode 100644 index 0000000..e9cb38f --- /dev/null +++ b/clip-a.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f565c0fdc4f6c39582cc4fa84328bea837248ba7e5a88ea220ee8dda6f85d82 +size 1605429 diff --git a/clip-b.stl b/clip-b.stl new file mode 100644 index 0000000..ab970cd --- /dev/null +++ b/clip-b.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:283ff4212aa577e1c6ef746ea04d46823862b4e1790e9e0178eafa4091f32234 +size 361430 diff --git a/clip.scad b/clip.scad new file mode 100644 index 0000000..85a9828 --- /dev/null +++ b/clip.scad @@ -0,0 +1,157 @@ +$fn = 300; + +outer = 25.9; + +part = "b"; + +if (part == "a" || part == "*") { + difference() { + assembly(); + clips(mask=true); + } +} + +if (part == "b" || part == "*") { + intersection() { + assembly(); + clips(mask=true); + } +} + + +module tenten() { + color("red") + union() { + difference() { + hull() { + for (x=[0.75, outer - 0.75], y=[0.75, outer - 0.75]) + translate([x, y, 0]) { + cylinder(h=30, r=0.75); + } + } + + for (t=[[-1, (outer - 9) / 2], [outer - 1.0, (outer - 9) / 2]]) + translate([t[0], t[1], -1]) + cube([2, 9, 32]); + + for (t=[[-1, (outer - 9) / 2], [outer - 3, (outer - 9) / 2]]) + translate([t[0], t[1] + 1.1, -1]) + cube([4, 6.8, 32]); + + for (t=[[(outer - 9) / 2, -1], [(outer - 9) / 2, outer - 1.0]]) + translate([t[0], t[1], -1]) + cube([9, 2, 32]); + + for (t=[[(outer - 9) / 2, -1], [(outer - 9) / 2, outer - 3]]) + translate([t[0] + 1.1, t[1], -1]) + cube([6.8, 4, 32]); + } + + for (x=[(outer - 9) / 2,(outer - 9) / 2 + 9], y=[1.1,outer-1.1]) { + translate([x, y, 0]) + cylinder(h=30, d=2.2); + + translate([y, x, 0]) + cylinder(h=30, d=2.2); + } + } +} + +module assembly() { + difference() { + union() { + hull() { + for (x=[1, outer + 3], y=[1, outer]) + translate([x, y, 0]) + cylinder(h=12, r=1.4); + } + + hull() { + for (x=[1.7, outer + 2.3], y=[1.7, outer - 0.7]) + translate([x, y, 0]) + cylinder(h=20, r=1.2); + } + } + + translate([2, -1.01, -1]) + tenten(); + + translate([10, -1, -1]) + cube([15, 5, 30]); + } + + clips(); +} + + +module clips(mask=false) { + translate([-3.51, 1, 0]) { + if (mask) { + clipmask(); + } else { + clip(); + } + } + + translate([outer + 7.51, 1, 0]) + mirror([1, 0, 0]) { + if (mask) { + clipmask(); + } else { + clip(); + } + } + + translate([3, outer + 4.5, 0]) + rotate([0, 0, -90]) { + if (mask) { + clipmask(); + } else { + clip(); + } + } + + translate([27, outer + 9.5, 0]) + mirror([1, 0, 0]) + rotate([0, 0, -90]) { + if (mask) { + clipmask(); + } else { + clip(); + } + } +} + +module clip() { + difference() { + hull() { + for (y=[0, 20]) + translate([0, y, 0]) { + translate([1, 2, 0]) + cylinder(h=12, d=4); + + translate([1, 0, 0]) + cube([4, 4, 12]); + } + } + + translate([1.2, -1.75, -1]) + rotate([0, 0, 25]) + cube([2.4, 2, 14]); + + for (y=[0.8:1.7:18]) + translate([2.4, y, -1]) + rotate([0, 0, 65]) + cube([0.5, 2.0, 14]); + + for (y=[0.4:1.7:18]) + translate([0.7, y, -1]) + rotate([0, 0, -65]) + cube([0.5, 2.1, 14]); + } +} + +module clipmask() { + translate([0.3, -1, -1]) + cube([2.7, 20.1, 14]); +} \ No newline at end of file diff --git a/clip.stl b/clip.stl new file mode 100644 index 0000000..b0e30c2 --- /dev/null +++ b/clip.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b568df4e0846bfee305a698ff09b7511eba74f08e08232e68acdc4c65592959 +size 1547140