summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2023-03-26 20:48:37 +0200
committerErich Eckner <git@eckner.net>2023-03-26 20:48:37 +0200
commit4658b745e7eb92243f34099bf56375999d3bc6fe (patch)
tree8d0496ea98f0632d5164275eac9d14a7842d7858
downloadPatronenhuelle-4658b745e7eb92243f34099bf56375999d3bc6fe.tar.xz
initial commit
-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