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
Dernière révision Les deux révisions suivantes
outilsit:fablab:laser:lol:code [2022/02/08 13:40]
vanlindtmarc
outilsit:fablab:laser:lol:code [2022/02/09 01:38]
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 49: Ligne 49:
 pi        = 3.141592654; pi        = 3.141592654;
 tau       = pi*2; tau       = pi*2;
- 
-/*═══════════╕ 
-│  Exemples   \ 
-╘════════════*/ 
- 
-/* MOEBIUS / ELLIPSE 
-  moebius(n=32,d=40,t=0.5) 
-  ellipse([5,20],$fn=128); 
-  moebius(n=32,d=40,t=0.5) 
-  ellipse([20,5],$fn=128); 
-*/ 
-/* CHULL  
- 
-chull(m=true){ 
-  sphere(d=1,$fn=64); 
-  translate([10,10,00]) sphere(d=1,$fn=16); 
-  translate([20,0,00]) sphere(d=1,$fn=16); 
-  translate([30,0,00]) sphere(d=1,$fn=16); 
-  translate([30,-10,00]) sphere(d=1,$fn=16); 
-  translate([0,-10,00]) sphere(d=1,$fn=16); 
-} 
- 
-*/ 
- 
- 
- /* PYTHATREE / BONE*/ 
-//pythatree(d="z",h=50,maxit=6,r1=30,r2=30) 
-//bone(h=50,d1=20,d2=14.14214,c=40,$fn=64); 
- 
-/*pythatree(d="z",h=10*biphi,maxit=8,a=90,r1=90,r2=90)       
-hull(){sphere(d=10,$fn=16); 
-translate([0,0,10*biphi])sphere(d=10*aphi,$fn=16);} 
-*/ 
- 
-    
-//pythatree(d="y",h=10,sp=5,maxit=8)    
-//polygon(square([10,10],center=true)); 
- 
-/*pythatree(d="y",h=50,maxit=9,a=90,s=sqrt(0.5))    
-hull(){ 
-  circle(d=10,$fn=64); 
-  translate([0,50]) 
-  circle(d=sqrt(0.5)*10,$fn=64);} 
-*/ 
- 
-    
-/**/ 
- 
-/* ROTATE2 
-  rotate2() 
-  cube(center=true); 
-  translate([0,2,0]) 
-  cube(center=true); 
-*/ 
- 
-/* RING 
-  ring(d=10,n=11){ 
-  cylinder(d=1,h=5); 
-  translate([0,0,5.6]) scale([1,1,2]) sphere(d=0.6,$fn=64); 
-  } 
-*/ 
- 
-/* SKEW 
-  skew(YX=1) 
-  cube([2,2,2]); 
-*/ 
- 
-/* ROUNDSQUARE 
-  roundsquare(s=[40,20],d=[5,10,5,15],$fn=64,center=true); 
-*/ 
- 
-/* NGON 
-  ngon(d=20,fn=3,inside=true); 
-  translate([0,0,-1])   #cylinder(d=20,$fn=64); 
- 
-  translate([25,0,0])   ngon(d=20,fn=3,inside=false); 
-  translate([25,0,-1])  #cylinder(d=20,$fn=64); 
- 
-  translate([50,0,0])ngon(d=20,f=4,inside=true); 
-  translate([50,0,-1])#cylinder(d=20,$fn=64); 
- 
-  translate([75,0,0])ngon(d=20,fn=4,inside=false); 
-  translate([75,0,-1])#cylinder(d=20,$fn=64); 
- 
-  translate([100,0,0])ngon(d=20,fn=5,inside=true); 
-  translate([100,0,-1])#cylinder(d=20,$fn=64); 
- 
-  translate([125,0,0])ngon(d=20,fn=5,inside=false); 
-  translate([125,0,-1])#cylinder(d=20,$fn=64); 
-*/ 
-/* OUTLINE*/ 
-/*outline(w=1,t="in"){ 
-  ellipse([10,20],fn=64);ellipse([20,10],fn=64);} 
-translate([0,0,1]){#ellipse([10,20],fn=64);#ellipse([20,10],fn=64);} 
-*/ 
-/*   
-outline(w=1,t="out"){  
-  ellipse([10,20],fn=64);ellipse([20,10],fn=64);} 
-translate([0,0,1]){#ellipse([10,20],fn=64);#ellipse([20,10],fn=64);} 
-*/   
-/*outline(w=1,t="on"){ 
-  ellipse([10,20],fn=64);ellipse([20,10],fn=64);} 
-translate([0,0,1]){#ellipse([10,20],fn=64);#ellipse([20,10],fn=64);} 
-  */ 
-/**/ 
-/* RANDOM 
-  for(i=[1:10]){ 
-    echo(random(10,s=i)); 
-  } 
-*/ 
-/* FIBONACCI 
-for(i=[1:15]){ 
-  echo(fibonacci(i)); 
-} 
-*/ 
- 
-/* TEARDROP / RANDOM 
- for(i=[1:500]){ 
-   translate([random(500,i*10),random(500,i*50),random(500,i*60)]) 
-   color([0.6,0.6,0.9,0.5])teardrop(a=30+random(30,i)); 
- } 
-*/ 
- 
-/* STAR 
-  star(d1=10,d2=20,fn=9); 
-*/ 
- 
-/* TUBE - COUDE 
-   tube(d1=10,d2=8,h=15,$fn=64); 
-    
-   translate([0,0,15]) 
-   coude(d1=10,d2=8,a=45,$fn=64); 
-  
-   translate([0,0,20]) 
-   rotate([0,045,0]) 
-   translate([0,0,5]) 
-   tube(d1=10,d2=8,h=5,$fn=64); 
-*/ 
- 
- 
- 
-/* ROUNDCUBE 
-roundcube(s=[50,100,150],b=[5,15,15,20],t=[25,35,40,5],$fn=64,center=true); 
-*/ 
-/* PAIR 
-for(i=[0:20]){ 
-  echo(str(i,pair(i)==true?" est pair!":" est impair!")); 
-} 
-*/ 
-/* GRID - CNC 
-  grid(s=[100,100],x=5,y=10,w=2) 
-  { 
-    cnc(0.5,$fn=32){ 
-      ellipse([2,1],$fn=32); 
-      ellipse([1,2],$fn=32); 
-  }} 
-*/ 
- 
-/* PIEPART 
-    piepart(d=10,p=20/100); 
-    rotate([0,0,360*21/100]) 
-    piepart(d=10,p=78/100); 
- 
-*/ 
- 
-/* PIE 
-pie(d=10,p=[1,2,1,2,1,2,3,2,1,3,2,1]); 
-*/ 
-/* SUM 
-echo(sum([5,10,15,20])); 
-*/ 
-/* MYANGLE/length*/ 
-/* CORRECT / CHULL 
-rotate_extrude() 
-rotate_extrude_correct() 
-chull(){ 
-  circle(d=3); 
-  translate([60,0]) 
-  circle(d=3); 
-  translate([70,120]) 
-  circle(d=3); 
-} 
-*/ 
- 
-/* FRACTSHAPE 
-    fractshape(d=40,fn=4,maxit=3); 
-    translate([40,0,0]) fractshape(d=40,fn=5,it=3); 
-    translate([80,0,0]) fractshape(d=40,fn=6,it=3); 
- 
-*/ 
-/* clean 
-test=[[0,0],[0,0],[10,10],[10,10],[20,20],[20,20],[30,30],[30,30],[40,40],[40,40],[50,50],[50,50]]; 
-echo(clean(test)); 
-*/ 
- 
-/* Kochflake 
-    for(i=[0:3]){ 
-    translate([i*10,0,0])kochflake(d=10,maxit=i);} 
-    */ 
- 
-/* Chaincurve / TRACE 
- 
-//points=[[0,0],[sin(30)*10,cos(30)*10],[10,0],[0,0]]; 
- 
-points=[[0,0],[0,10],[10,10],[20,0],[30,10],[40,20],[60,-20],[10,-10],[10,-5],[15,-5],[15,0],[0,0]]; 
- 
-color([0.4,1.0,0.4,1]) 
-linear_extrude(1) 
-polygon(chaincurve(points,8)); 
- 
-color("red") linear_extrude(3)    
-trace(points,0.2); 
- 
-color([0.5,0.5,1,1]) linear_extrude(3)    
-trace(chaincurve(points,8),0.1); 
- 
- 
-*/ 
- 
- 
- 
- 
- 
- 
-/* 
-difference(){ 
-rotate2()             cube([10,10,10],center=true); 
-translate([0,0,10])  cube([20,20,20],center=true);} 
-/* 
-rotate2()             cube([10,10,10],center=true); 
-*/ 
- 
- 
  
  
Ligne 971: Ligne 738:
     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 793:
   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 1002:
 }}} }}}
  
 +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.txt · Dernière modification: 2022/02/09 02:35 de vanlindtmarc