3D-Drucker/Schraube: Unterschied zwischen den Versionen

Aus Wiki CCC Göttingen
Wechseln zu: Navigation, Suche
Zeile 4: Zeile 4:
  
  
 +
<highlightSyntax language="c">
 +
 +
module screw(type = 2, r1 = 15, r2 = 20, n = 7, h = 100, t = 8)
 +
{
 +
        linear_extrude(height = h, twist = 360*t/n, convexity = t)
 +
        difference() {
 +
                circle(r2);
 +
                for (i = [0:n-1]) {
 +
                                if (type == 1) rotate(i*360/n) polygon([
 +
                                                [ 2*r2, 0 ],
 +
                                                [ r2, 0 ],
 +
                                                [ r1*cos(180/n), r1*sin(180/n) ],
 +
                                                [ r2*cos(360/n), r2*sin(360/n) ],
 +
                                                [ 2*r2*cos(360/n), 2*r2*sin(360/n) ],
 +
                                ]);
 +
                                if (type == 2) rotate(i*360/n) polygon([
 +
                                                [ 2*r2, 0 ],
 +
                                                [ r2, 0 ],
 +
                                                [ r1*cos(90/n), r1*sin(90/n) ],
 +
                                                [ r1*cos(180/n), r1*sin(180/n) ],
 +
                                                [ r2*cos(270/n), r2*sin(270/n) ],
 +
                                                [ 2*r2*cos(270/n), 2*r2*sin(270/n) ],
 +
                                ]);
 +
                }
 +
        }
 +
}
 +
 +
module nut(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5)
 +
{
 +
        difference() {
 +
                cylinder($fn = s, r = r3, h = h);
 +
                translate([ 0, 0, -h/2 ]) screw(type, r1, r2, n, h*2, t*2);
 +
        }
 +
}
 +
 +
module nut2(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5)
 +
{
 +
    {
 +
                cylinder($fn = s, r = r3, h = h);
 +
        }
 +
}
 +
translate([ -30, 0, 0 ]) {
 +
screw();
 +
nut2();
 +
}
 +
translate([ 40, 0, 0 ])
 +
nut();
 +
 +
</highlightSyntax>
  
  
 
[[Kategorie:3D Model]]
 
[[Kategorie:3D Model]]

Version vom 24. Mai 2012, 23:37 Uhr

Eine Schraube und Mutter aus den openSCAD Beispielen.....

Schraube.gif


<highlightSyntax language="c">

module screw(type = 2, r1 = 15, r2 = 20, n = 7, h = 100, t = 8) {

       linear_extrude(height = h, twist = 360*t/n, convexity = t)
       difference() {
               circle(r2);
               for (i = [0:n-1]) {
                               if (type == 1) rotate(i*360/n) polygon([
                                               [ 2*r2, 0 ],
                                               [ r2, 0 ],
                                               [ r1*cos(180/n), r1*sin(180/n) ],
                                               [ r2*cos(360/n), r2*sin(360/n) ],
                                               [ 2*r2*cos(360/n), 2*r2*sin(360/n) ],
                               ]);
                               if (type == 2) rotate(i*360/n) polygon([
                                               [ 2*r2, 0 ],
                                               [ r2, 0 ],
                                               [ r1*cos(90/n), r1*sin(90/n) ],
                                               [ r1*cos(180/n), r1*sin(180/n) ],
                                               [ r2*cos(270/n), r2*sin(270/n) ],
                                               [ 2*r2*cos(270/n), 2*r2*sin(270/n) ],
                               ]);
               }
       }

}

module nut(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5) {

       difference() {
               cylinder($fn = s, r = r3, h = h);
               translate([ 0, 0, -h/2 ]) screw(type, r1, r2, n, h*2, t*2);
       }

}

module nut2(type = 2, r1 = 16, r2 = 21, r3 = 30, s = 6, n = 7, h = 100/5, t = 8/5) {

   {
               cylinder($fn = s, r = r3, h = h);
       }

} translate([ -30, 0, 0 ]) { screw(); nut2(); } translate([ 40, 0, 0 ]) nut();

</highlightSyntax>