From 29983cbb3f6f0222e8d16cdb5876dd092c83314d Mon Sep 17 00:00:00 2001
From: Anton Tetov <anton@tetov.se>
Date: Tue, 30 Aug 2022 13:03:53 +0200
Subject: [PATCH] p102

---
 rsp_tc20_p102_clone.scad | 114 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 rsp_tc20_p102_clone.scad

diff --git a/rsp_tc20_p102_clone.scad b/rsp_tc20_p102_clone.scad
new file mode 100644
index 0000000..27a332e
--- /dev/null
+++ b/rsp_tc20_p102_clone.scad
@@ -0,0 +1,114 @@
+// RSP TC20 p102 clone
+side = 64;
+sideLong = 94;
+sqHeight = 12;
+cylHeight = 4;
+
+$fn = 100;
+
+module
+cylBody(side, height)
+{
+    $fn = 360;
+    translate([ 0, 0, height / 2 ])
+    {
+        cylinder(h = height, r1 = side / 2, r2 = side / 2, center = true);
+    }
+}
+
+module
+lockCyl()
+{
+    translate([ 0, 0, 8 ])
+    {
+        cylinder(h = 12 + 1, r1 = 8 / 2, r2 = 8 / 2, center = true);
+    }
+}
+
+module
+slantedCylx4()
+{
+    rr = 35 / 2;
+    union()
+    {
+        translate([ rr, 0, 0 ])
+        {
+            rotate([ 0, -17, 0 ])
+            {
+                lockCyl();
+            }
+        }
+        translate([ 0, rr, 0 ])
+        {
+            rotate([ 17, 0, 0 ])
+            {
+                lockCyl();
+            }
+        }
+        translate([ -rr, 0, 0 ])
+        {
+            rotate([ 0, 17, 0 ])
+            {
+                lockCyl();
+            }
+        }
+        translate([ 0, -rr, 0 ])
+        {
+            rotate([ -17, 0, 0 ])
+            {
+                lockCyl();
+            }
+        }
+    }
+}
+
+// adapterplate and toolchanger
+module
+rsp_tc20_p102_clone()
+{
+    translate([ 0, 0, (sqHeight + cylHeight) ])
+    {
+        rotate([ 180, 0, 0 ])
+        {
+            difference()
+            {
+                union()
+                {
+                    difference()
+                    {
+                        // assign($fn = 100);
+                        union()
+                        {
+                            // sqBody(side,sqHeight);
+                            // sqBodyLong(sideLong,side,sqHeight);
+                            cylBody(side, sqHeight + cylHeight);
+                        }
+                        //  vvvvvvvv   add these rows again for standard
+                        //  toolchanger ^^^^^
+                        //    rotate([0,0,45]){
+                        //        holeM5x4();
+                        //    }
+                        //    rotate([0,0,0]){
+                        //        hole4x2();
+                        //    }
+                        //  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+                        translate([ 0, 0, 16 - (12) / 2 ]) cylinder(
+                            h = 12, r1 = 32 / 2, r2 = 34.5 / 2, center = true);
+                        rotate([ 0, 0, 0 ])
+                        {
+                            slantedCylx4();
+                        }
+                    }
+                    translate([ 0, 0, 4 / 2 ])
+                    {
+                        cylinder(
+                            h = 4, r1 = 42 / 2, r2 = 42 / 2, center = true);
+                    }
+                }
+
+            }
+        }
+    }
+}
+
+rsp_tc20_p102_clone();
-- 
GitLab