diff options
-rw-r--r-- | Lego/Lego.scad | 231 | ||||
-rwxr-xr-x | Lego/compile.sh | 9 | ||||
-rw-r--r-- | Linuxanhaenger/Linuxanhaenger.scad | 17 | ||||
-rw-r--r-- | Linuxanhaenger/artixlinux-logo-only.svg | 205 | ||||
-rw-r--r-- | Staubsaugerhalter/Staubsaugerhalter.scad | 2 |
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; |