Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

[ gelöst ] OpenSCAD FOR-Schleife

geschrieben von modellbauyodi 
[ gelöst ] OpenSCAD FOR-Schleife
10. January 2021 05:47
Moin,

Ich habe ein Drahtbügel gezeichnet und wollte ihn mit einer Schleife vervielfältigen damit es ein Gitter ergibt.
Nur leider fünzt es nicht. Mein Drahtbügel wird nur verschoben aber nicht vervielfältigt sad smiley

$fn   = 200;
$drd    = 2;    // Drahtdurchmesser
$drb    = 20;   // Gitterbreite
$drh    = 100;  // Gitterhöhe
$drbs   = 10;   // Länge der Spitze
$v      = 4;    // Stababstand

module machma_strebe(){
rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-$drb/2 ,$drh/2])cylinder(h=$drh, d=$drd , center=true);
translate([0   ,-$drb/2 , 0]) sphere(d=$drd ) ;
translate([0   ,0 , $drh]) rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-$drb/2 , $drh]) sphere(d=$drd ) ;
translate([0   ,+$drb/2+$drbs/2 , $drh])rotate ([270,0,0]) cylinder(h=$drbs, d=$drd,d2=1 , center=true);
translate([0   ,+$drb/2+$drbs/2 , 0])rotate ([270,0,0]) cylinder(h=$drbs, d=$drd,d2=1 , center=true);
}

for (i=[0:3]){
    $v=$v+$drd;
translate([$v   ,0 , 0]) machma_strebe();
}

Flotte Grüße Dirk

1-mal bearbeitet. Zuletzt am 10.01.21 09:48.
VDX
Re: OpenSCAD FOR-Schleife
10. January 2021 06:12
... "for ... translate" - ist ja auch nur eine Mehrfach-Verscchiebung -- versuchs da auch mal mit "rotate" ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: OpenSCAD FOR-Schleife
10. January 2021 07:06
Hallo,

Oder versuch es mal hiermit:
$fn   = 200;
$drd    = 2;    // Drahtdurchmesser
$drb    = 20;   // Gitterbreite
$drh    = 100;  // Gitterhöhe
$drbs   = 10;   // Länge der Spitze
$v      = 4;    // Stababstand

module machma_strebe(){
rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-($drb/2) ,($drh/2)])cylinder(h=$drh, d=$drd , center=true);
translate([0   ,-($drb/2) , 0]) sphere(d=$drd ) ;
translate([0   ,0 , $drh]) rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-$drb/2 , $drh]) sphere(d=$drd ) ;
translate([0   ,+($drb/2)+($drbs/2) , $drh])rotate ([270,0,0]) cylinder(h=$drbs, d1=$drd,d2=1 , center=true);
translate([0   ,+($drb/2)+($drbs/2) , 0])rotate ([270,0,0]) cylinder(h=$drbs, d1=$drd,d2=1 , center=true);
}

for (i=[0:3]){
translate([(i*$v+$drd)   ,0 , 0]) machma_strebe();
}

Grüße Mark,
Re: OpenSCAD FOR-Schleife
10. January 2021 09:46
Moin,

Ich habe es jetzt so gelöst.
Falls es interessiert, es ist ein Käfig für Imker. Der wird auf einer Brutwabe gesteckt und dann eine neue Königin
darin eingesperrt um sie zu schützen damit sie nicht gleich abgestochen wird.

Ich hoffe es ist nach dem ausdrucken brauchbar smiling smiley

Flotte Grüße

/*****************************************************************
*                      Königinnen Zusetzkäfig                             *
*                        (c) Dirk Unvrzagt                       *
*                      www.modellbau-yodi.de/imker               *
*            www.youtube.com/channel/UCotr73if133Efw8GJBuqIjg    *
*                                                                *
*                  Frei für nicht kommerzielle Nutzung           *
*                                                                *
*                     benutzung auf eigene Gefahr                *
*****************************************************************/
$fn   = 100;
$drd    = 2;    // Drahtdurchmesser
$drb    = 20;   // Gitterbreite
$drh    = 100;  // Gitterhöhe
$drbs   = 10;   // Länge der Spitze
$v      = 3.55; // Stababstand
$anz    = 19;   // Anzahl der stäbe
$ea     = 12;   // Durchmesser eingang
$rand   = 5;    // Rand um Eingang

echo ("*******************************" );
echo ("länge",($anz*$drd)+(($anz-1)*$v),"mm");
echo ("*******************************" );
module machma_strebe(){
rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-$drb/2 ,$drh/2])cylinder(h=$drh, d=$drd , center=true);
translate([0   ,-$drb/2 , 0]) sphere(d=$drd ) ;
translate([0   ,0 , $drh]) rotate ([90,90,0]) cylinder(h=$drb, d=$drd , center=true);
translate([0   ,-$drb/2 , $drh]) sphere(d=$drd ) ;
translate([0   ,+$drb/2+$drbs/2 , $drh])rotate ([270,0,0]) cylinder(h=$drbs, d1=$drd,d2=0.5 , center=true);
translate([0   ,+$drb/2+$drbs/2 , 0])rotate ([270,0,0]) cylinder(h=$drbs, d1=$drd,d2=0.5 , center=true);
}
difference(){
    $a=$v+$drd;
    for (i=[0:$asad smiley$anz-1)*$a]){
        translate([i  ,0 , 0]) machma_strebe();
    }
  translate([$drh/2  ,-$drb/2 , $drh-$ea/2-8]) rotate ([90,0,0])cylinder(h=$drd*2, d=$ea , center=true);  
}

difference(){
    $a=$v+$drd;
for (i=[0:$asad smiley$anz-1)*$a]){
    translate([0  ,0 , i]) rotate ([0,90,0]) machma_strebe();
}
translate([$drh/2  ,-$drb/2 , $drh-$ea/2-8]) rotate ([90,0,0])cylinder(h=$drd*2, d=$ea , center=true);
}
difference(){
translate([$drh/2  ,-$drb/2 , $drh-$ea/2-8]) rotate ([90,0,0])cylinder(h=$drd, d=$ea+$rand*2 , center=true);
translate([$drh/2  ,-$drb/2 , $drh-$ea/2-8]) rotate ([90,0,0])cylinder(h=$drd*2, d=$ea , center=true);
}

translate([0 ,-$drb/2+8 ,$drh/2]) cylinder(h=$drh, d=$drd , center=true);
translate([$drh ,-$drb/2+8 ,$drh/2]) cylinder(h=$drh, d=$drd , center=true);
translate([$drh/2 ,-$drb/2+8 ,0]) 
    rotate ([0,90,0])
        cylinder(h=$drh, d=$drd , center=true);
translate([$drh/2 ,-$drb/2+8 ,$drh]) 
    rotate ([0,90,0])
        cylinder(h=$drh, d=$drd , center=true);

In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen