summaryrefslogtreecommitdiff
path: root/Patronenhuelle.scad
diff options
context:
space:
mode:
Diffstat (limited to 'Patronenhuelle.scad')
-rw-r--r--Patronenhuelle.scad35
1 files changed, 35 insertions, 0 deletions
diff --git a/Patronenhuelle.scad b/Patronenhuelle.scad
new file mode 100644
index 0000000..079cbf6
--- /dev/null
+++ b/Patronenhuelle.scad
@@ -0,0 +1,35 @@
+Patronendicke = 7.5;
+Patronenlaenge = 40;
+Wanddicke = 3;
+Gewindelaenge = 10;
+Gang = 2;
+epsilon = 0.01;
+
+auszen = 1;
+
+difference() {
+ union() {
+ translate([0,0,-Wanddicke])
+ cylinder(h = Patronenlaenge/2 - Gewindelaenge/2 + Wanddicke, r = Patronendicke/2 + Wanddicke, $fn = 100);
+ translate([0,0,Patronenlaenge/2])
+ cylinder(h = Gewindelaenge, r = Patronendicke/2 + Wanddicke/3, $fn = 100, center = true);
+ translate([0,0,Patronenlaenge/2 - Gewindelaenge/2]) {
+ intersection() {
+ difference() {
+ linear_extrude(Gewindelaenge, twist = -Gewindelaenge / Gang * 360, slices = Gewindelaenge/Gang * 50, $fn = 100, convexity = 10)
+ translate([-Patronendicke,epsilon])
+ square(2*Patronendicke);
+ cylinder(h = Patronenlaenge, r = Patronendicke/2 + auszen*epsilon, $fn = 100);
+ }
+ cylinder(h = Gewindelaenge, r = Patronendicke/2 + Wanddicke*2/3 - (1-auszen) * epsilon, $fn=100);
+ }
+ difference() {
+ cylinder(h = Gewindelaenge, r = Patronendicke/2 + Wanddicke*auszen, $fn = 100);
+ cylinder(h = Gewindelaenge, r = Patronendicke/2 + Wanddicke*2/3 + epsilon, $fn = 100);
+ }
+ }
+ }
+ cylinder(h = Patronenlaenge + Wanddicke, r = Patronendicke/2, $fn = 100);
+ translate([0,0,(Patronenlaenge-Gewindelaenge)/2])
+ cylinder(h = Patronenlaenge + Wanddicke, r = Patronendicke/2 + auszen * (Wanddicke/3 + epsilon), $fn = 100);
+} \ No newline at end of file