summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Lego/Lego.scad231
-rwxr-xr-xLego/compile.sh9
-rw-r--r--Linuxanhaenger/Linuxanhaenger.scad17
-rw-r--r--Linuxanhaenger/artixlinux-logo-only.svg205
-rw-r--r--Staubsaugerhalter/Staubsaugerhalter.scad2
5 files changed, 383 insertions, 81 deletions
diff --git a/Lego/Lego.scad b/Lego/Lego.scad
index 515bc1b..dc28ca1 100644
--- a/Lego/Lego.scad
+++ b/Lego/Lego.scad
@@ -95,10 +95,10 @@ module Hubelino_gerade_negativ(br) {
// (r-h/2)^2+(br/2)^2 = r^2
// h/4 + 1/h*(br/2)^2 = r
-module Hubelino_abwaerts_positiv(br) {
- rot_radius = h/4+((br*d-2*eps)*(br*d-2*eps))/4/h;
- rot_angle = 2*atan(h/(br*d-2*eps));
- translate([-br*d/2+eps,0,-rot_radius+h])
+module Hubelino_abwaerts_positiv(br,ho) {
+ rot_radius = h*ho/4+((br*d-2*eps)*(br*d-2*eps))/4/h/ho;
+ rot_angle = 2*atan(h*ho/(br*d-2*eps));
+ translate([-br*d/2+eps,0,-rot_radius+h*ho])
rotate([90,-90,0])
rotate_extrude(angle = -rot_angle)
translate([rot_radius,0,0]) {
@@ -116,16 +116,16 @@ module Hubelino_abwaerts_positiv(br) {
}
}
-module Hubelino_abwaerts_negativ(br) {
- rot_radius = h/4+((br*d-2*eps)*(br*d-2*eps))/4/h;
- rot_angle = 2*atan(h/(br*d-2*eps))+2*eps;
- translate([-br*d/2+eps,0,-rot_radius+h])
+module Hubelino_abwaerts_negativ(br,ho) {
+ rot_radius = h*ho/4+((br*d-2*eps)*(br*d-2*eps))/4/h/ho;
+ rot_angle = 2*atan(h*ho/(br*d-2*eps))+2*eps;
+ translate([-br*d/2+eps,0,-rot_radius+h*ho])
rotate([90,-90-eps,0])
rotate_extrude(angle = -rot_angle)
translate([rot_radius,0,0]) {
circle(r=hubelino_d/2);
translate([0,-hubelino_d/2-r])
- square([hubelino_d,hubelino_d+2*r]);
+ square([hubelino_d+h*ho,hubelino_d+2*r]);
}
translate([br*d/2-eps,0,rot_radius])
rotate([90,90-eps,0])
@@ -135,8 +135,8 @@ module Hubelino_abwaerts_negativ(br) {
square([rot_radius+2*hubelino_d,hubelino_d+2*r]);
translate([rot_radius,0,0]) {
circle(r=hubelino_d/2);
- translate([-hubelino_d,-hubelino_d/2-r])
- square([hubelino_d,hubelino_d+2*r]);
+ translate([-hubelino_d-h*ho,-hubelino_d/2-r])
+ square([hubelino_d+h*ho,hubelino_d+2*r]);
}
}
}
@@ -150,19 +150,13 @@ module Hubelino_Schikane_positiv(br, delta) {
translate([-br*d/2+eps,d*delta-rot_radius,0])
rotate([0,0,90])
rotate_extrude(angle = -rot_angle)
- translate([rot_radius,0,0]) {
+ translate([rot_radius,0,0])
circle(r=hubelino_d/2+r/2);
- translate([-hubelino_d/2-r+eps,-r/2])
- square([hubelino_d+2*r-2*eps,r/2]);
- }
translate([br*d/2-eps,rot_radius,0])
rotate([0,0,-90])
rotate_extrude(angle = -rot_angle)
- translate([rot_radius,0,0]) {
+ translate([rot_radius,0,0])
circle(r=hubelino_d/2+r/2);
- translate([-hubelino_d/2-r+eps,-r/2])
- square([hubelino_d+2*r-2*eps,r/2]);
- }
}
}
@@ -199,15 +193,26 @@ module Hubelino_Schikane_negativ(br, delta) {
}
}
-function uebergang(delta, x) = (-2*delta*x*x*x + 3*delta*x*x);
+function radius(br, delta) = (br*br + delta*delta)/4/delta;
-function weich(delta, x) = ( x<0 ? 0 : x>1 ? delta : uebergang(delta, x));
+function kreisUebergang(br, delta, x) = (
+ x<1/2
+ ?
+ radius(br,delta)-sqrt(radius(br,delta)*radius(br,delta)-br*x*br*x)
+ :
+ delta+sqrt(radius(br,delta)*radius(br,delta)-br*(1-x)*br*(1-x))-radius(br,delta)
+);
+
+//function uebergang(br, delta, x) = (-2*delta*x*x*x + 3*delta*x*x);
+function uebergang(br, delta, x) = delta < 0 ? -kreisUebergang(br, -delta, x) : delta == 0 ? 0 : kreisUebergang(br, delta, x);
+
+function weich(br, delta, x) = ( x<0 ? 0 : x>1 ? delta : uebergang(br, delta, x));
function weichMitSchritt(br, delta, x) = (
- weich(delta, (x-d)/(br-2*d))
+ weich(br, delta, (x-d)/(br-2*d))
);
-function SchikanenSpur(br, deltaX, deltaH, x) = [x,weich(deltaX,x/br),weichMitSchritt(br,deltaH,x)];
+function SchikanenSpur(br, deltaX, deltaH, x) = [x,weich(br,deltaX,x/br),weichMitSchritt(br,deltaH,x)];
module Hubelino_Schikane_positiv_h(br, deltaX, deltaH) {
difference() {
@@ -419,15 +424,15 @@ module Kreuzung(br, la, Loch, Gerade) {
}
}
-module abwaerts(br) {
+module abwaerts(br,ho) {
difference() {
union() {
- Lego_unten(br,2,2*h);
+ Lego_unten(br,2,(abs(ho)+1)*h);
translate([0,0,h])
- Hubelino_abwaerts_positiv(br);
+ Hubelino_abwaerts_positiv(br,abs(ho));
}
translate([0,0,h])
- Hubelino_abwaerts_negativ(br);
+ Hubelino_abwaerts_negativ(br,abs(ho));
}
}
@@ -483,37 +488,69 @@ module Trichter(br) {
}
}
+function Rooping_Spur(br,x) = [
+ 3/2*br/4*h*sin(x * 360) + x*br*d-br*d/2,
+ cos(x*180)*d,
+ br/4*h*(1-cos(x * 360))
+];
+
+function Rooping_Tangente_unnormiert(br,x,dx) =
+ (Rooping_Spur(br,x+dx)-Rooping_Spur(br,x));
+
+function Rooping_Tangente(br,x,dx) = Rooping_Tangente_unnormiert(br,x,dx) * 1/sqrt(Rooping_Tangente_unnormiert(br,x,dx)*Rooping_Tangente_unnormiert(br,x,dx));
+
+function Rooping_Normale_unnormiert(br,x,dx) = [
+ -(Rooping_Spur(br,x+dx)-Rooping_Spur(br,x))[2],
+ 0,
+ (Rooping_Spur(br,x+dx)-Rooping_Spur(br,x))[0],
+];
+
+function Rooping_Normale(br,x,dx) = Rooping_Normale_unnormiert(br,x,dx) * 1/sqrt(Rooping_Normale_unnormiert(br,x,dx)*Rooping_Normale_unnormiert(br,x,dx));
+
module Rooping_positiv(br) {
- da = fa((br-2)*d/2);
- translate([0,-d,h+(br-2)*d/2])
- for (Winkel=[0:da:360])
- rotate([0,Winkel,0])
- translate([0,Winkel/360*2*d,0])
+ dx = $fs/br/d;
+ difference() {
+ translate([0,0,h])
+ for (x=[0:dx:1])
+ difference() {
hull() {
- translate([0,0,-(br-2)*d/2])
+ translate(Rooping_Spur(br,x))
+ sphere(r=hubelino_d/2+r/2);
+ translate(Rooping_Spur(br,x+dx))
sphere(r=hubelino_d/2+r/2);
- rotate([0,da,0])
- translate([0,2*d*da/360,-(br-2)*d/2])
- sphere(r=hubelino_d/2+r/2);
}
+ polyhedron([
+ Rooping_Spur(br,x) - Rooping_Tangente(br,x,dx)*d - [0,d,0],
+ Rooping_Spur(br,x) - Rooping_Tangente(br,x,dx)*d + [0,d,0],
+ Rooping_Spur(br,x+dx) + Rooping_Tangente(br,x,dx)*d - [0,d,0],
+ Rooping_Spur(br,x+dx) + Rooping_Tangente(br,x,dx)*d + [0,d,0],
+ Rooping_Spur(br,x) - Rooping_Tangente(br,x,dx)*d- [0,d,0] + Rooping_Normale(br,x,dx)*d,
+ Rooping_Spur(br,x) - Rooping_Tangente(br,x,dx)*d + [0,d,0] + Rooping_Normale(br,x,dx)*d,
+ Rooping_Spur(br,x+dx) + Rooping_Tangente(br,x,dx)*d - [0,d,0] + Rooping_Normale(br,x,dx)*d,
+ Rooping_Spur(br,x+dx) + Rooping_Tangente(br,x,dx)*d + [0,d,0] + Rooping_Normale(br,x,dx)*d
+ ],
+ [[0,2,3,1],[4,5,7,6],
+ [0,1,5,4],[2,6,7,3],
+ [0,4,6,2],[1,3,7,5]],
+ 2
+ );
+ }
+ for (dd = [[br/2*d-eps,-3*d,0],[-br/2*d-6*d+eps,-3*d,0]])
+ translate(dd)
+ cube([6*d,6*d,4*d]);
+ }
}
module Rooping_negativ(br) {
- da = fa((br-2)*d/2);
- translate([0,-d,h+(br-2)*d/2])
- for (Winkel=[0:da:360])
- rotate([0,Winkel,0])
- translate([0,Winkel/360*2*d,0])
- hull() {
- translate([0,0,-(br-2)*d/2])
- sphere(r=hubelino_d/2);
- rotate([0,da*1.001,0])
- translate([0,2*d*da/360*1.001,-(br-2)*d/2])
- sphere(r=hubelino_d/2);
- }
- translate([0,2*d,h+(br-2)*d/2])
- rotate([90,90,0])
- cylinder(h=4*d, r=(br-2)*d/2);
+ dx = $fs/br/d;
+ translate([0,0,h])
+ for (x=[0:dx:1])
+ hull() {
+ translate(Rooping_Spur(br,x))
+ sphere(r=hubelino_d/2);
+ translate(Rooping_Spur(br,x+dx))
+ sphere(r=hubelino_d/2);
+ }
}
module Rooping(br) {
@@ -521,18 +558,10 @@ module Rooping(br) {
union() {
Lego_unten(br,4,h);
Rooping_positiv(br);
- translate([br/4*d,-d,h])
- Hubelino_gerade_positiv(br/2);
- translate([-br/4*d,d,h])
- Hubelino_gerade_positiv(br/2);
translate([0,0,h])
deckel(br,4);
}
Rooping_negativ(br);
- translate([br/4*d,-d,h])
- Hubelino_gerade_negativ(br/2);
- translate([-br/4*d,d,h])
- Hubelino_gerade_negativ(br/2);
}
}
@@ -719,46 +748,85 @@ module WeicheT(br) {
}
}
-function Loopingstart_trajektorie(br,ho,a) = [ 0, ((br-1)*(1/2-sin(a))+1/2)*d, ((ho-1)*(1-cos(a))+1)*h ];
+function Loopingstartgeradteil(br,ho) = d/2;
+function Kruemmung(br,ho) = ho / (br*br-Loopingstartgeradteil(br,ho)*Loopingstartgeradteil(br,ho));
+
+function Loopingstart_trajektorie_2d(br,ho,x) = [
+ x,
+ x+Loopingstartgeradteil(br,ho)<br ?
+ Kruemmung(br,ho) * x*x :
+ ho - (br-x) * 2 * (br-Loopingstartgeradteil(br,ho)) * Kruemmung(br,ho)
+];
+function Loopingstart_trajektorie(br,ho,x) = [ Loopingstart_trajektorie_2d(br,ho,x)[0], 0, Loopingstart_trajektorie_2d(br,ho,x)[1] ];
module Loopingstart_positiv(br,ho) {
- da = fa(max((br-1)*d,(ho-1)*h));
intersection() {
- for (a=[0:da:90])
+ for (x=[0:$fs:br])
hull() {
- translate(Loopingstart_trajektorie(br,ho,a))
+ translate(Loopingstart_trajektorie(br,ho,x))
sphere(r = hubelino_d/2 + r/2);
- translate(Loopingstart_trajektorie(br,ho,a+da))
+ translate(Loopingstart_trajektorie(br,ho,x+$fs))
sphere(r = hubelino_d/2 + r/2);
}
- translate([-d+eps,-br*d/2+eps,0])
- cube([2*d-2*eps,br*d-2*eps,ho*h-eps]);
+ translate([eps,-d+eps,-h])
+ cube([br*d-2*eps,2*d-2*eps,ho*h-eps]);
}
}
module Loopingstart_negativ(br,ho) {
- da = fa(max((br-1)*d,(ho-1)*h));
- for (a=[0:da:90])
+ for (x=[0:$fs:br])
hull() {
- translate(Loopingstart_trajektorie(br,ho,a))
+ translate(Loopingstart_trajektorie(br,ho,x))
sphere(r = hubelino_d/2);
- translate(Loopingstart_trajektorie(br,ho,a+da))
+ translate(Loopingstart_trajektorie(br,ho,x+$fs))
sphere(r = hubelino_d/2);
}
- sk = max(2,br-1,(ho-1)*h/d);
- translate([0,br*d/2,ho*h])
- scale([2/sk,(br-1)/sk,(ho-1)*h/d/sk])
- rotate([0,90,0])
- cylinder(h=sk*d, r=sk*d, center=true);
+ translate([0,d,0])
+ rotate([90,0,0])
+ linear_extrude(2*d)
+ polygon([ [0, ho*h], for (x=[0:$fs:br+$fs]) Loopingstart_trajektorie_2d(br,ho,x)]);
+ translate(Loopingstart_trajektorie(br,ho,br-Loopingstartgeradteil(br,ho)))
+ rotate([0,-atan(Kruemmung(br,ho)*(br-Loopingstartgeradteil(br,ho))*2),0])
+ translate([0,-d,-h])
+ difference() {
+ translate([-eps,0,0])
+ cube([(br+ho)*d+eps,2*d,2*h]);
+ translate([d/2,d,0])
+ Lego_oben(1,2);
+ }
}
module Loopingstart(br,ho) {
difference() {
union() {
- Lego_unten(2,br,ho*h);
- Loopingstart_positiv(br,ho);
+ translate([br*d/2,0,-h])
+ Lego_unten(br,2,ho*h);
+ Loopingstart_positiv((br-1)*d,(ho-1)*h);
+ }
+ Loopingstart_negativ((br-1)*d,(ho-1)*h);
+ }
+}
+
+module Schikane(br,delta) {
+ dds = [[(br-1)*d/2,0,0],[(1-br)*d/2,delta*d,0]];
+ difference() {
+ union() {
+ difference() {
+ translate([0,0,h])
+ Hubelino_Schikane_positiv(br,delta);
+ for (dd = dds)
+ translate(dd)
+ Lego_unten_negativ(1,2);
+ }
+ if (br <= 2 && delta <= 1)
+ translate([-2*eps,(delta-1)*d+eps,0])
+ cube([4*eps,(2-delta)*d-2*eps,h]);
+ for (dd = dds)
+ translate(dd)
+ Lego_unten(1,2,h);
}
- Loopingstart_negativ(br,ho);
+ translate([0,0,h])
+ Hubelino_Schikane_negativ(br,delta);
}
}
@@ -786,9 +854,14 @@ if (Teil == "Helix") {
} else if (Teil == "Prellbock") {
Prellbock(l);
} else if (Teil == "Rampe") {
- abwaerts(l);
+ abwaerts(l,ho);
} else if (Teil == "Rooping") {
Rooping(l);
+} else if (Teil == "SchikaneL") {
+ mirror([0,1,0])
+ Schikane(l,b);
+} else if (Teil == "SchikaneR") {
+ Schikane(l,b);
} else if (Teil == "Sechserkreuzung") {
Kreuzung(l,b,"","Gerade");
} else if (Teil == "Trichtel") {
diff --git a/Lego/compile.sh b/Lego/compile.sh
index c0b2039..d526026 100755
--- a/Lego/compile.sh
+++ b/Lego/compile.sh
@@ -8,8 +8,10 @@ Variablen['KreuzungMitLoch']='l b'
Variablen['Looping']='l'
Variablen['Loopingstart']='l ho'
Variablen['Prellbock']='l'
-Variablen['Rampe']='l'
+Variablen['Rampe']='l ho'
Variablen['Rooping']='l'
+Variablen['SchikaneL']='l b'
+Variablen['SchikaneR']='l b'
Variablen['Sechserkreuzung']='l b'
Variablen['Trichtel']='l'
Variablen['Trichter']='l'
@@ -62,6 +64,11 @@ if [ $(
exit 1
fi
+echo openscad ${FA:+-D '$fa='"${FA}"} ${FS:+-D '$fs='"${FS}"} -D 'Teil="'"${Teil}"'"' $(
+ paste -d'=' <(printf '%s\n' "${Variablen["${Teil}"]}" | tr ' ' '\n') <(printf '%s\n' "${p}" | tr ' ' '\n') \
+ | sed 's@.*@-D \0@'
+) --export-format stl -o "$@" Lego/Lego.scad
+
openscad ${FA:+-D '$fa='"${FA}"} ${FS:+-D '$fs='"${FS}"} -D 'Teil="'"${Teil}"'"' $(
paste -d'=' <(printf '%s\n' "${Variablen["${Teil}"]}" | tr ' ' '\n') <(printf '%s\n' "${p}" | tr ' ' '\n') \
| sed 's@.*@-D \0@'
diff --git a/Linuxanhaenger/Linuxanhaenger.scad b/Linuxanhaenger/Linuxanhaenger.scad
new file mode 100644
index 0000000..b0abcfd
--- /dev/null
+++ b/Linuxanhaenger/Linuxanhaenger.scad
@@ -0,0 +1,17 @@
+dicke = 5;
+duenne = 2;
+
+module artix()
+ import(file="artixlinux-logo-only.svg", center=true);
+
+difference() {
+ union() {
+ linear_extrude(dicke)
+ artix();
+ linear_extrude(duenne)
+ hull()
+ artix();
+ }
+ translate([0,15,-1])
+ cylinder(r=1, h=dicke+2);
+} \ No newline at end of file
diff --git a/Linuxanhaenger/artixlinux-logo-only.svg b/Linuxanhaenger/artixlinux-logo-only.svg
new file mode 100644
index 0000000..8e41fd2
--- /dev/null
+++ b/Linuxanhaenger/artixlinux-logo-only.svg
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="46.72533mm"
+ height="46.72533mm"
+ viewBox="0 0 46.72533 46.725331"
+ version="1.1"
+ id="svg4593"
+ inkscape:version="0.92.4 5da689c313, 2019-01-14"
+ sodipodi:docname="Artix_logo_square_frame.svg"
+ inkscape:export-filename="/tmp/Artix_logo_4096.png"
+ inkscape:export-xdpi="2226.6001"
+ inkscape:export-ydpi="2226.6001">
+ <defs
+ id="defs4587">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient887"
+ id="linearGradient1200-5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1,0,0,1,114.83738,50.597052)"
+ x1="70.512688"
+ y1="62.847496"
+ x2="63.043533"
+ y2="59.204388" />
+ <linearGradient
+ id="linearGradient887"
+ inkscape:collect="always">
+ <stop
+ id="stop883"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.36470589" />
+ <stop
+ id="stop885"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient887"
+ id="linearGradient1200-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-21.06111,67.884718)"
+ x1="70.512688"
+ y1="62.847496"
+ x2="55.280762"
+ y2="56.393845" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1849"
+ id="linearGradient1851-9-8-1"
+ x1="70.724701"
+ y1="12.29244"
+ x2="81.157883"
+ y2="19.324032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-11.753608,126.58468)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient1849">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.10217391"
+ offset="0"
+ id="stop1845" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.30434781"
+ offset="1"
+ id="stop1847" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1849"
+ id="linearGradient1851-9-8"
+ x1="70.724709"
+ y1="12.29244"
+ x2="87.0924"
+ y2="26.894571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-26.40001,101.15201)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1849"
+ id="linearGradient1851-9"
+ x1="105.83431"
+ y1="15.35424"
+ x2="80.208908"
+ y2="30.53084"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-56.382736,115.37787)" />
+ <linearGradient
+ gradientTransform="translate(-16.57152,-7.1090256)"
+ inkscape:collect="always"
+ xlink:href="#linearGradient887"
+ id="linearGradient881"
+ x1="75.542618"
+ y1="145.98615"
+ x2="81.200447"
+ y2="143.22675"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.1786659"
+ inkscape:cx="55.055788"
+ inkscape:cy="48.998008"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="1904"
+ inkscape:window-height="1008"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:pagecheckerboard="true"
+ borderlayer="false"
+ inkscape:showpageshadow="true" />
+ <metadata
+ id="metadata4590">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-23.826174,-99.183391)">
+ <g
+ id="g213"
+ transform="translate(0.57361468)">
+ <path
+ sodipodi:nodetypes="cccccccccccc"
+ style="display:inline;fill:#10a0cc;fill-opacity:1;stroke:none;stroke-width:0.09994879;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 46.614964,99.183394 -8.03465,16.473926 22.112351,12.38944 z m -10.46189,21.450886 -12.3269,25.27444 36.57813,-15.11174 z m 26.955981,12.3672 -11.536252,6.62286 17.831472,6.28438 z"
+ id="path886"
+ inkscape:connector-curvature="0"
+ inkscape:label="Base" />
+ <path
+ style="fill:url(#linearGradient881);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 58.971096,138.87713 4.137969,-5.87613 6.29521,12.90771 z"
+ id="path947"
+ inkscape:connector-curvature="0"
+ inkscape:label="Light" />
+ <path
+ style="fill:url(#linearGradient1851-9);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 23.826174,145.90872 25.6254,-15.1766 10.95269,0.065 z"
+ id="path1434-9-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="Shadow" />
+ <path
+ style="fill:url(#linearGradient1851-9-8);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 60.692734,128.04658 -22.11223,-12.38962 5.74419,-2.21251 z"
+ id="path1434-9-4-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="Shadow" />
+ <path
+ style="fill:url(#linearGradient1851-9-8-1);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 69.404275,145.90872 -17.831451,-6.28419 7.398272,-0.7474 z"
+ id="path1434-9-4-2-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="Shadow" />
+ <path
+ style="fill:url(#linearGradient1200-8);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 23.826174,145.90872 25.6254,-15.1766 -13.29865,-10.09774 z"
+ id="path1381-5-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="Light" />
+ <path
+ style="fill:url(#linearGradient1200-5);fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 60.692724,128.04658 -16.36803,-14.60213 2.29027,-14.261056 z"
+ id="path1381-5-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc"
+ inkscape:label="Light" />
+ </g>
+ </g>
+</svg>
diff --git a/Staubsaugerhalter/Staubsaugerhalter.scad b/Staubsaugerhalter/Staubsaugerhalter.scad
index 8dab8f4..8d328ee 100644
--- a/Staubsaugerhalter/Staubsaugerhalter.scad
+++ b/Staubsaugerhalter/Staubsaugerhalter.scad
@@ -7,7 +7,7 @@ dSchraubeOben = 9;
lSchraubsteg = 72-48;
dSteg = 6;
dSchwanz = 10;
-bSteg = 10;
+bSteg = 8;
bSchwanz = 2;
dNut = 2;