From 9cf0ad34629226011b3d17278d0a913c299d169d Mon Sep 17 00:00:00 2001
From: Doralitze <doralitze@chaotikum.org>
Date: Wed, 10 Apr 2019 08:23:23 +0200
Subject: [PATCH] =?UTF-8?q?add:=20Grundlage=20f=C3=BCr=20Umlenkrollen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 parts/Kabelumlenkrollen.scad  | 27 ++++++++++++++++++++++++++
 parts/lib/BasicFunctions.scad |  1 +
 parts/lib/RoundRect.scad      | 36 +++++++++++++++++++++++++++++++++++
 3 files changed, 64 insertions(+)
 create mode 100644 parts/lib/BasicFunctions.scad
 create mode 100644 parts/lib/RoundRect.scad

diff --git a/parts/Kabelumlenkrollen.scad b/parts/Kabelumlenkrollen.scad
index e69de29..c066fb3 100644
--- a/parts/Kabelumlenkrollen.scad
+++ b/parts/Kabelumlenkrollen.scad
@@ -0,0 +1,27 @@
+/*
+ * Umlenkrollen. Wie immer sind alle Angaben in mm
+*/
+include <lib/BasicFunctions.scad>;
+
+module spool(diameter, lenght, stone) {
+    $fn = get_render_correctness();
+    rotate_extrude(angle = 360, convexity = 2) {
+        difference () {
+            translate ([diameter / 4, 0, 0])
+                square([diameter / 2, lenght - 2 * stone], true);
+            translate ([(lenght - 2 * stone) +
+                        ((lenght - 2 * stone) / diameter) +
+                        (diameter/(lenght - 2 * stone)),
+                        0, 0])
+                circle(lenght - 2 * stone);
+        }
+    }
+    translate ([0, 0, (lenght / 2) - (stone / 2)])
+        linear_extrude(height=stone, center = true)
+            circle(diameter / 4);
+    translate ([0, 0, 0 - (lenght / 2) + (stone / 2)])
+        linear_extrude(height=stone, center = true)
+            circle(diameter / 4);
+}
+
+spool(30, 50, 5);
\ No newline at end of file
diff --git a/parts/lib/BasicFunctions.scad b/parts/lib/BasicFunctions.scad
new file mode 100644
index 0000000..b1fcb49
--- /dev/null
+++ b/parts/lib/BasicFunctions.scad
@@ -0,0 +1 @@
+function get_render_correctness() = ($preview == true) ? 15 : 360;
\ No newline at end of file
diff --git a/parts/lib/RoundRect.scad b/parts/lib/RoundRect.scad
new file mode 100644
index 0000000..ccf6d85
--- /dev/null
+++ b/parts/lib/RoundRect.scad
@@ -0,0 +1,36 @@
+include <BasicFunctions.scad>;
+
+module full_double_round_rect(size, radius) {
+    $fn = get_render_correctness() ;
+    x = size[0] - radius / 2;
+    y = size[1] - radius / 2;
+    z = size[2] - radius / 2;
+
+    translate([radius, radius, radius])
+        minkowski() {
+            cube(size=[x,y,z]);
+            sphere(r=radius);
+        }
+}
+
+module flat_round_rect(size, radius) {
+    $fn = get_render_correctness() ;
+    x = size[0] - radius / 2;
+    y = size[1] - radius / 2;
+    z = size[2];
+    
+    translate ([radius, radius, 0])
+        minkowski () {
+            cube(size=[x, y, z]);
+            cylinder(r=radius);
+        }
+}
+
+module half_double_round_rect(size, radius) {
+    union() {
+        full_double_round_rect(size, radius);
+        flat_round_rect([size[0], size[1], size[2] / 2], radius);
+    }
+}
+
+half_double_round_rect ([30, 40, 10], 5);
\ No newline at end of file
-- 
GitLab