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, | ||
+ | }}} | ||
</ | </ | ||