Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
outilsit:fablab:laser:lol:code [2022/02/07 19:40] vanlindtmarc créée |
outilsit:fablab:laser:lol:code [2022/02/09 01:38] 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 58: | Ligne 49: | ||
pi = 3.141592654; | pi = 3.141592654; | ||
tau = pi*2; | tau = pi*2; | ||
- | |||
- | / | ||
- | │ Exemples | ||
- | ╘════════════*/ | ||
- | |||
- | /* MOEBIUS / ELLIPSE | ||
- | moebius(n=32, | ||
- | ellipse([5, | ||
- | moebius(n=32, | ||
- | ellipse([20, | ||
- | */ | ||
- | /* CHULL | ||
- | |||
- | chull(m=true){ | ||
- | sphere(d=1, | ||
- | translate([10, | ||
- | translate([20, | ||
- | translate([30, | ||
- | translate([30, | ||
- | translate([0, | ||
- | } | ||
- | |||
- | */ | ||
- | |||
- | |||
- | /* PYTHATREE / BONE*/ | ||
- | // | ||
- | // | ||
- | |||
- | / | ||
- | hull(){sphere(d=10, | ||
- | translate([0, | ||
- | */ | ||
- | |||
- | |||
- | // | ||
- | // | ||
- | |||
- | / | ||
- | hull(){ | ||
- | circle(d=10, | ||
- | translate([0, | ||
- | circle(d=sqrt(0.5)*10, | ||
- | */ | ||
- | |||
- | |||
- | /**/ | ||
- | |||
- | /* ROTATE2 | ||
- | rotate2() | ||
- | cube(center=true); | ||
- | translate([0, | ||
- | cube(center=true); | ||
- | */ | ||
- | |||
- | /* RING | ||
- | ring(d=10, | ||
- | cylinder(d=1, | ||
- | translate([0, | ||
- | } | ||
- | */ | ||
- | |||
- | /* SKEW | ||
- | skew(YX=1) | ||
- | cube([2, | ||
- | */ | ||
- | |||
- | /* ROUNDSQUARE | ||
- | roundsquare(s=[40, | ||
- | */ | ||
- | |||
- | /* NGON | ||
- | ngon(d=20, | ||
- | translate([0, | ||
- | |||
- | translate([25, | ||
- | translate([25, | ||
- | |||
- | translate([50, | ||
- | translate([50, | ||
- | |||
- | translate([75, | ||
- | translate([75, | ||
- | |||
- | translate([100, | ||
- | translate([100, | ||
- | |||
- | translate([125, | ||
- | translate([125, | ||
- | */ | ||
- | /* OUTLINE*/ | ||
- | / | ||
- | ellipse([10, | ||
- | translate([0, | ||
- | */ | ||
- | / | ||
- | outline(w=1, | ||
- | ellipse([10, | ||
- | translate([0, | ||
- | */ | ||
- | / | ||
- | ellipse([10, | ||
- | translate([0, | ||
- | */ | ||
- | /**/ | ||
- | /* RANDOM | ||
- | for(i=[1: | ||
- | echo(random(10, | ||
- | } | ||
- | */ | ||
- | /* FIBONACCI | ||
- | for(i=[1: | ||
- | echo(fibonacci(i)); | ||
- | } | ||
- | */ | ||
- | |||
- | /* TEARDROP / RANDOM | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | */ | ||
- | |||
- | /* STAR | ||
- | star(d1=10, | ||
- | */ | ||
- | |||
- | /* TUBE - COUDE | ||
- | | ||
- | |||
- | | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | */ | ||
- | |||
- | |||
- | |||
- | /* ROUNDCUBE | ||
- | roundcube(s=[50, | ||
- | */ | ||
- | /* PAIR | ||
- | for(i=[0: | ||
- | echo(str(i, | ||
- | } | ||
- | */ | ||
- | /* GRID - CNC | ||
- | grid(s=[100, | ||
- | { | ||
- | cnc(0.5, | ||
- | ellipse([2, | ||
- | ellipse([1, | ||
- | }} | ||
- | */ | ||
- | |||
- | /* PIEPART | ||
- | piepart(d=10, | ||
- | rotate([0, | ||
- | piepart(d=10, | ||
- | |||
- | */ | ||
- | |||
- | /* PIE | ||
- | pie(d=10, | ||
- | */ | ||
- | /* SUM | ||
- | echo(sum([5, | ||
- | */ | ||
- | /* MYANGLE/ | ||
- | /* CORRECT / CHULL | ||
- | rotate_extrude() | ||
- | rotate_extrude_correct() | ||
- | chull(){ | ||
- | circle(d=3); | ||
- | translate([60, | ||
- | circle(d=3); | ||
- | translate([70, | ||
- | circle(d=3); | ||
- | } | ||
- | */ | ||
- | |||
- | /* FRACTSHAPE | ||
- | fractshape(d=40, | ||
- | translate([40, | ||
- | translate([80, | ||
- | |||
- | */ | ||
- | /* clean | ||
- | test=[[0, | ||
- | echo(clean(test)); | ||
- | */ | ||
- | |||
- | /* Kochflake | ||
- | for(i=[0: | ||
- | translate([i*10, | ||
- | */ | ||
- | |||
- | /* Chaincurve / TRACE | ||
- | |||
- | // | ||
- | |||
- | points=[[0, | ||
- | |||
- | color([0.4, | ||
- | linear_extrude(1) | ||
- | polygon(chaincurve(points, | ||
- | |||
- | color(" | ||
- | trace(points, | ||
- | |||
- | color([0.5, | ||
- | trace(chaincurve(points, | ||
- | |||
- | |||
- | */ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | /* | ||
- | difference(){ | ||
- | rotate2() | ||
- | translate([0, | ||
- | /* | ||
- | rotate2() | ||
- | */ | ||
- | |||
- | |||
Ligne 974: | Ligne 732: | ||
) | ) | ||
[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 755: | ||
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 777: | ||
translate([0, | translate([0, | ||
color([1/ | color([1/ | ||
- | | + | union() |
{ | { | ||
- | | + | |
- | polyhedron(my3Dobject[0], | + | polyhedron(my3Dobject[0], |
+ | | ||
} | } | ||
} | } | ||
Ligne 1046: | Ligne 793: | ||
def=multiplyfaces(b, | def=multiplyfaces(b, | ||
aa=[for(i=[0: | aa=[for(i=[0: | ||
- | (aa); | + | |
function ppcm(a, | function ppcm(a, | ||
Ligne 1255: | Ligne 1002: | ||
}}} | }}} | ||
+ | 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, | ||
+ | }}} | ||
</ | </ | ||