Outils pour utilisateurs

Outils du site


outilsit:fablab:laser:lol:code

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
outilsit:fablab:laser:lol:code [2022/02/08 13:40]
vanlindtmarc
outilsit:fablab:laser:lol:code [2022/02/09 02:35] (Version actuelle)
vanlindtmarc
Ligne 4: Ligne 4:
 │           Module de déformation et modification pour OpenSCAD          │ │           Module de déformation et modification pour OpenSCAD          │
 ╞══════════════════╤════════════════════════════════════╤════════════════╡ ╞══════════════════╤════════════════════════════════════╤════════════════╡
-│ marc@vanlindt.be │   LGPL 2.1 marc@vanlindt.be 2022   │ v0.99 ---- wip |+│ marc@vanlindt.be │   LGPL 2.1 marc@vanlindt.be 2022   │ v0.98 ---- wip |
 ╞══════════════════╧═══════════════════════╤════════════╧════════════════╛ ╞══════════════════╧═══════════════════════╤════════════╧════════════════╛
 │          Variables générales            / │          Variables générales            /
Ligne 12: Ligne 12:
  
 LetterL=[[0,0],[0,70],[22,73],[19,21],[50,25],[48,-1],[0,0]]; LetterL=[[0,0],[0,70],[22,73],[19,21],[50,25],[48,-1],[0,0]];
-LetterO=[[0,35],[6.25,61.25],[25,70],[25,70],[43.75,61.25],[50,35],[50,35],[43.75,8.75],[25,0],[25,0],[6.25,8.75],[0,35]]; +//LetterO=[[0,35],[6.25,61.25],[25,70],[25,70],[43.75,61.25],[50,35],[43.75,8.75],[25,0],[6.25,8.75],[0,35]]; 
 +LetterO=[[0,0],[0,70],[50,70],[50,0],[0,0]];
 blue = [0,0,1,1]; blue = [0,0,1,1];
 red = [1,0,0,1]; red = [1,0,0,1];
Ligne 971: Ligne 971:
     bottom=true,     bottom=true,
     top=true,     top=true,
-    c=2Drot(interpolate(L1,L2,maxstep=1,step=0,correct=correct,q=1),angle), +    c=2Drot(interpolate(a,b,maxstep=1,step=0,correct=correct,q=1),angle), 
-    d=2Drot(interpolate(L1,L2,maxstep=1,step=1,correct=correct,q=1),angle),+    d=2Drot(interpolate(a,b,maxstep=1,step=1,correct=correct,q=1),angle),
     aa=[    for(i=[0:len(c)]) each[[c[i][0],c[i][1],0],[d[i][0],d[i][1],h]]  ],     aa=[    for(i=[0:len(c)]) each[[c[i][0],c[i][1],0],[d[i][0],d[i][1],h]]  ],
     bb=[    for(i=[0:1:len(aa)]) each [[i,i+1,i+2],[i+1,i+3,i+2]]    ],      bb=[    for(i=[0:1:len(aa)]) each [[i,i+1,i+2],[i+1,i+3,i+2]]    ], 
Ligne 1026: Ligne 1026:
   def=multiplyfaces(b,pp[1]),   def=multiplyfaces(b,pp[1]),
   aa=[for(i=[0:len(def)]) each [divide(abc[i],def[i],step/(maxstep))]])   aa=[for(i=[0:len(def)]) each [divide(abc[i],def[i],step/(maxstep))]])
-  (aa);+  clean(aa);
  
 function ppcm(a,b,q)=let( function ppcm(a,b,q)=let(
Ligne 1235: Ligne 1235:
 }}} }}}
  
 +module menger3d(it,d,maxit){
 +    it=it==undef?1:it;
 +    if (it==maxit){
 +        cube([d,d,d],center=true);
 +    }
 +    if (it<=maxit){
 +        union(){
 +        for (i=[-1:1]){
 +            translate([d/3,d/3,d/3*i]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit);
 +            translate([-d/3,d/3,d/3*i]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit);
 +            }
 +            
 +        translate([0,d/3,d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit);
 +        translate([0,d/3,-d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit);
  
-//menger2(); +        for (i=[-1:1]){ 
-module menger2(d,maxit,it,tab+            translate([d/3,-d/3,d/3*i]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
-{ +            translate([-d/3,-d/3,d/3*i]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
- it=it==undef?0:it; +            } 
- tab=it==undef?[[1]]:tab+        translate([0,-d/3,d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
-  +        translate([0,-d/3,-d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit)
-}+        translate([d/3,0,d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
 +        translate([d/3,0,-d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
 +        translate([-d/3,0,d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit)
 +        translate([-d/3,0,-d/3]) rotate([0,90,0]) menger3d(it=it+1,d=d*1/3,maxit=maxit); 
 +}}}
  
 +module jcube(it,d,maxit){
 +    it=it==undef?1:it;
 +union()
 +    {
 +        if(it==maxit)
 +        {
 +            cube([d,d,d],center=true);
 +        }    
 +        if(it<=maxit)
 +        {
 +            translate([d/2,d/2,d/2])
 +            translate([-d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([-d/2,d/2,d/2])
 +            translate([d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([d/2,-d/2,d/2])
 +            translate([-d/2*(sqrt(2)-1),d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([-d/2,-d/2,d/2])
 +            translate([d/2*(sqrt(2)-1),d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([d/2,d/2,-d/2])
 +            translate([-d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1),d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([-d/2,d/2,-d/2])
 +            translate([d/2*(sqrt(2)-1),-d/2*(sqrt(2)-1),d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([d/2,-d/2,-d/2])
 +            translate([-d/2*(sqrt(2)-1),d/2*(sqrt(2)-1),d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([-d/2,-d/2,-d/2])
 +            translate([d/2*(sqrt(2)-1),d/2*(sqrt(2)-1),d/2*(sqrt(2)-1)])
 +            jcube(it=it+1,maxit=maxit,d=d*(sqrt(2)-1));
 +
 +            translate([-d/2,-d/2,0])
 +            translate([d/2*(1-(2*(sqrt(2)-1))),d/2*(1-(2*(sqrt(2)-1))),0])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([-d/2,d/2,0])
 +            translate([d/2*(1-(2*(sqrt(2)-1))),-d/2*(1-(2*(sqrt(2)-1))),0])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([d/2,-d/2,0])
 +            translate([-d/2*(1-(2*(sqrt(2)-1))),d/2*(1-(2*(sqrt(2)-1))),0])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([d/2,d/2,0])
 +            translate([-d/2*(1-(2*(sqrt(2)-1))),-d/2*(1-(2*(sqrt(2)-1))),0])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([-d/2,0,-d/2])
 +            translate([d/2*(1-(2*(sqrt(2)-1))),0,d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([-d/2,0,d/2])
 +            translate([d/2*(1-(2*(sqrt(2)-1))),0,-d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([d/2,0,-d/2])
 +            translate([-d/2*(1-(2*(sqrt(2)-1))),0,d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([d/2,0,d/2])
 +            translate([-d/2*(1-(2*(sqrt(2)-1))),0,-d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([0,-d/2,-d/2])
 +            translate([0,d/2*(1-(2*(sqrt(2)-1))),d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([0,-d/2,d/2])
 +            translate([0,d/2*(1-(2*(sqrt(2)-1))),-d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([0,d/2,-d/2])
 +            translate([0,-d/2*(1-(2*(sqrt(2)-1))),d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +
 +            translate([0,d/2,d/2])
 +            translate([0,-d/2*(1-(2*(sqrt(2)-1))),-d/2*(1-(2*(sqrt(2)-1)))])
 +            jcube(it=it+1,maxit=maxit,d=d*(1-(2*(sqrt(2)-1))));
 +}}}
 </code> </code>
  
  
outilsit/fablab/laser/lol/code.1644324025.txt.gz · Dernière modification: 2022/02/08 13:40 de vanlindtmarc