Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
outilsit:fablab:laser:lol:code [2022/02/07 19:40] vanlindtmarc créée |
outilsit:fablab:laser:lol:code [2022/02/09 02:35] (Version actuelle) vanlindtmarc |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| <code OpenSCAD LOLscad.scad> | <code OpenSCAD LOLscad.scad> | ||
| - | abc=ngon(d=40, | ||
| - | // | ||
| - | def=chaincurve(koch(abc, | ||
| - | ghi=koch(abc, | ||
| - | |||
| - | 2Dto3D(abc, | ||
| - | |||
| - | echo(def); | ||
| - | | ||
| / | / | ||
| │ | │ | ||
| Ligne 21: | Ligne 12: | ||
| LetterL=[[0, | LetterL=[[0, | ||
| - | LetterO=[[0, | + | //LetterO=[[0, |
| + | LetterO=[[0, | ||
| blue = [0,0,1,1]; | blue = [0,0,1,1]; | ||
| red = [1,0,0,1]; | red = [1,0,0,1]; | ||
| Ligne 974: | Ligne 965: | ||
| ) | ) | ||
| [clean(aa), | [clean(aa), | ||
| - | | + | |
| + | function simple3D(a, | ||
| + | angle=angle==undef? | ||
| + | correct=correct==undef? | ||
| + | bottom=true, | ||
| + | top=true, | ||
| + | c=2Drot(interpolate(a, | ||
| + | d=2Drot(interpolate(a, | ||
| + | aa=[ for(i=[0: | ||
| + | bb=[ for(i=[0: | ||
| + | cc=bottom==true? | ||
| + | dd=top==true? | ||
| + | ee=concat(bb, | ||
| + | ) | ||
| + | [clean(aa), | ||
| function vectranslate(a, | function vectranslate(a, | ||
| Ligne 983: | Ligne 988: | ||
| it==n+len(a)-2? | it==n+len(a)-2? | ||
| + | |||
| module 2Dto3D(a, | module 2Dto3D(a, | ||
| - | angle=rotation==undef? | ||
| - | quality=quality==undef? | ||
| - | he=h==undef? | ||
| - | mm=segment==undef? | ||
| - | aabc=a==undef? | ||
| - | adef=b==undef? | ||
| - | correct=correct==undef? | ||
| - | |||
| - | |||
| - | for(i=[0: | ||
| - | my3Dobject=to3D( | ||
| - | 2Drot(interpolate(aabc, | ||
| - | 2Drot(interpolate(aabc, | ||
| - | h=he/mm, | ||
| - | top=i==mm-1? | ||
| - | bottom=i==0? | ||
| - | | ||
| - | translate([0, | ||
| - | color([1/ | ||
| - | union() | ||
| - | { | ||
| - | polyhedron(my3Dobject[0], | ||
| - | polyhedron(my3Dobject[0], | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | module 2Dto3D2(a, | ||
| angle=rotation==undef? | angle=rotation==undef? | ||
| quality=quality==undef? | quality=quality==undef? | ||
| Ligne 1031: | Ligne 1010: | ||
| translate([0, | translate([0, | ||
| color([1/ | color([1/ | ||
| - | | + | union() |
| { | { | ||
| - | | + | |
| - | polyhedron(my3Dobject[0], | + | polyhedron(my3Dobject[0], |
| + | | ||
| } | } | ||
| } | } | ||
| Ligne 1046: | Ligne 1026: | ||
| def=multiplyfaces(b, | def=multiplyfaces(b, | ||
| aa=[for(i=[0: | aa=[for(i=[0: | ||
| - | (aa); | + | |
| function ppcm(a, | function ppcm(a, | ||
| Ligne 1255: | Ligne 1235: | ||
| }}} | }}} | ||
| + | module menger3d(it, | ||
| + | it=it==undef? | ||
| + | if (it==maxit){ | ||
| + | cube([d, | ||
| + | } | ||
| + | if (it< | ||
| + | union(){ | ||
| + | for (i=[-1:1]){ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | } | ||
| + | | ||
| + | translate([0, | ||
| + | translate([0, | ||
| - | //menger2(); | + | for (i=[-1: |
| - | module menger2(d, | + | translate([d/3,-d/3,d/3*i]) rotate([0,90,0]) menger3d(it=it+1, |
| - | { | + | |
| - | it=it==undef? | + | } |
| - | tab=it==undef?[[1]]:tab; | + | translate([0,-d/3,d/3]) rotate([0, |
| - | + | | |
| - | } | + | translate([d/ |
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([-d/ | ||
| + | }}} | ||
| + | |||
| + | module jcube(it, | ||
| + | it=it==undef? | ||
| + | union() | ||
| + | { | ||
| + | if(it==maxit) | ||
| + | { | ||
| + | cube([d, | ||
| + | } | ||
| + | if(it<=maxit) | ||
| + | { | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([0, | ||
| + | translate([0, | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([0, | ||
| + | translate([0, | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([0, | ||
| + | translate([0, | ||
| + | jcube(it=it+1, | ||
| + | |||
| + | translate([0, | ||
| + | translate([0, | ||
| + | jcube(it=it+1, | ||
| + | }}} | ||
| </ | </ | ||