Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
outilsit:fablab:laser:lol [2022/02/08 23:10] vanlindtmarc |
outilsit:fablab:laser:lol [2022/02/09 02:27] (Version actuelle) vanlindtmarc |
||
|---|---|---|---|
| Ligne 64: | Ligne 64: | ||
| pi = 3.141592654; | pi = 3.141592654; | ||
| tau = pi*2; | tau = pi*2; | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ===== Fonctions de base ===== | ||
| + | |||
| + | ==== 2D(a) et 3D(a) ==== | ||
| + | {{ : | ||
| + | < | ||
| + | def=cube(); | ||
| + | 2D(abc); | ||
| + | translate([11, | ||
| + | </ | ||
| + | < | ||
| + | module 2D(a){ | ||
| + | polygon(a); | ||
| + | } | ||
| + | module 3D(a){ | ||
| + | if(a[1]!=undef) | ||
| + | { | ||
| + | polyhedron(a[0], | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| Ligne 438: | Ligne 460: | ||
| def=fractalize(abc, | def=fractalize(abc, | ||
| ghi=chaincurve(def); | ghi=chaincurve(def); | ||
| - | polygon(def); | + | 2D(def); |
| - | translate([55, | + | translate([55, |
| </ | </ | ||
| Ligne 532: | Ligne 554: | ||
| abc = square([10, | abc = square([10, | ||
| square([10, | square([10, | ||
| - | translate ([12, | + | translate ([12, |
| </ | </ | ||
| Ligne 558: | Ligne 580: | ||
| def = circle(r=5, | def = circle(r=5, | ||
| circle(d=10, | circle(d=10, | ||
| - | translate ([12, | + | translate ([12, |
| - | translate ([24, | + | translate ([24, |
| </ | </ | ||
| Ligne 580: | Ligne 602: | ||
| abc = ellipse([40, | abc = ellipse([40, | ||
| ellipse([20, | ellipse([20, | ||
| - | translate ([40, | + | translate ([40, |
| </ | </ | ||
| Ligne 601: | Ligne 623: | ||
| abc = star(d1=40, | abc = star(d1=40, | ||
| star(d1=40, | star(d1=40, | ||
| - | translate ([40, | + | translate ([40, |
| </ | </ | ||
| Ligne 623: | Ligne 645: | ||
| abc = roundsquare([15, | abc = roundsquare([15, | ||
| roundsquare([20, | roundsquare([20, | ||
| - | translate ([22, | + | translate ([22, |
| </ | </ | ||
| Ligne 661: | Ligne 683: | ||
| abc = triangle(10, | abc = triangle(10, | ||
| triangle(20, | triangle(20, | ||
| - | translate ([17.55, | + | translate ([17.55, |
| </ | </ | ||
| Ligne 683: | Ligne 705: | ||
| abc=piepart(d=50, | abc=piepart(d=50, | ||
| piepart(d=50, | piepart(d=50, | ||
| - | translate([30, | + | translate([30, |
| </ | </ | ||
| Ligne 706: | Ligne 728: | ||
| def=teardrop(25, | def=teardrop(25, | ||
| teardrop(25, | teardrop(25, | ||
| - | translate([30, | + | translate([30, |
| - | translate([60, | + | translate([60, |
| </ | </ | ||
| Ligne 732: | Ligne 754: | ||
| def=ngon(20, | def=ngon(20, | ||
| ngon(20, | ngon(20, | ||
| - | translate([25, | + | translate([25, |
| - | translate([50, | + | translate([50, |
| translate([25, | translate([25, | ||
| translate([50, | translate([50, | ||
| Ligne 756: | Ligne 778: | ||
| abc=losange([10, | abc=losange([10, | ||
| losange([20, | losange([20, | ||
| - | translate([20, | + | translate([20, |
| </ | </ | ||
| Ligne 780: | Ligne 802: | ||
| translate([50, | translate([50, | ||
| - | translate([0, | + | translate([0, |
| - | translate([50, | + | translate([50, |
| </ | </ | ||
| Ligne 797: | Ligne 819: | ||
| ---- | ---- | ||
| + | |||
| + | ===== Primitives 3D ===== | ||
| + | |||
| + | ==== cube(d, | ||
| + | {{ : | ||
| + | < | ||
| + | abc=cube([10, | ||
| + | echo(abc); | ||
| + | 3D(abc); | ||
| + | </ | ||
| + | < | ||
| + | function cube(d, | ||
| + | ( | ||
| + | d=d==undef? | ||
| + | center=center==undef? | ||
| + | mys=square([d[0], | ||
| + | aa=to3D(mys, | ||
| + | ) | ||
| + | center==false? | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ==== cylinder(d, | ||
| + | {{ : | ||
| + | < | ||
| + | abc=cylinder(d1=20, | ||
| + | def=cylinder(d=20, | ||
| + | 3D(abc); | ||
| + | translate([25, | ||
| + | </ | ||
| + | < | ||
| + | function cylinder(d, | ||
| + | ( | ||
| + | d1=d==undef? | ||
| + | d2=d==undef? | ||
| + | h=h==undef? | ||
| + | fn=fn==undef? | ||
| + | center=center==undef? | ||
| + | myg1=ngon(d=d1, | ||
| + | myg2=ngon(d=d2, | ||
| + | aa=to3D(myg1, | ||
| + | ) | ||
| + | center==false? | ||
| + | </ | ||
| ===== Divers ===== | ===== Divers ===== | ||
| Ligne 839: | Ligne 905: | ||
| aa; | aa; | ||
| </ | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== RVB(a, | ||
| + | {{ : | ||
| + | < | ||
| + | color(RVB(192, | ||
| + | translate([1.1, | ||
| + | translate([2.2, | ||
| + | </ | ||
| + | < | ||
| + | function RVB(a, | ||
| + | b=b==undef? | ||
| + | c=c==undef? | ||
| + | d=d==undef? | ||
| + | aa=[a, | ||
| + | )aa; | ||
| + | </ | ||
| + | |||
| ---- | ---- | ||
| Ligne 925: | Ligne 1010: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== outline(w, | ||
| + | |||
| + | < | ||
| + | abc=square([50, | ||
| + | |||
| + | # | ||
| + | outline(w=3) 2D(abc); | ||
| + | |||
| + | # | ||
| + | translate([55, | ||
| + | |||
| + | # | ||
| + | translate([110, | ||
| + | </ | ||
| + | < | ||
| + | module outline | ||
| + | w=w==undef? | ||
| + | t=t==undef?" | ||
| + | difference() | ||
| + | { | ||
| + | offset(t==" | ||
| + | children(); | ||
| + | offset(t==" | ||
| + | children(); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| ---- | ---- | ||
| Ligne 1098: | Ligne 1214: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | ---- | ||
| + | ==== menger3D(d, | ||
| + | {{ : | ||
| + | Attention, la prévisualisation amène des erreurs d' | ||
| + | < | ||
| + | menger3D(d=100, | ||
| + | </ | ||
| + | < | ||
| + | module menger3d(it=1, | ||
| + | if (it==maxit){ | ||
| + | cube([d, | ||
| + | } | ||
| + | if (it< | ||
| + | union(){ | ||
| + | for (i=[-1:1]){ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | } | ||
| + | | ||
| + | translate([0, | ||
| + | translate([0, | ||
| + | |||
| + | for (i=[-1:1]){ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | } | ||
| + | translate([0, | ||
| + | translate([0, | ||
| + | translate([d/ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([-d/ | ||
| + | }}} | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | ==== jcube(d, | ||
| + | {{ : | ||
| + | < | ||
| + | jcube(d=100, | ||
| + | </ | ||
| + | < | ||
| + | module jcube(it, | ||
| + | it=it==undef? | ||
| + | union() | ||
| + | { | ||
| + | if(it==maxit) | ||
| + | { | ||
| + | cube([d, | ||
| + | } | ||
| + | if(it< | ||
| + | { | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([-d/ | ||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | translate([d/ | ||
| + | translate([-d/ | ||
| + | translate([-d/ | ||
| + | translate([d/ | ||
| + | translate([d/ | ||
| + | translate([0, | ||
| + | translate([0, | ||
| + | translate([0, | ||
| + | translate([0, | ||
| + | }}} | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| ===== Modificateurs formes 2D et 3D ===== | ===== Modificateurs formes 2D et 3D ===== | ||
| Ligne 1367: | Ligne 1560: | ||
| children(); | children(); | ||
| }; | }; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== mirror(a, | ||
| + | {{ : | ||
| + | < | ||
| + | abc=chaincurve(center(LetterL), | ||
| + | 2D(abc); | ||
| + | translate([60, | ||
| + | translate([0, | ||
| + | translate([60, | ||
| + | </ | ||
| + | < | ||
| + | function mirror(a, | ||
| + | xx=x==undef? | ||
| + | yy=y==undef? | ||
| + | aa=[ | ||
| + | for(i=[0: | ||
| + | each | ||
| + | [ | ||
| + | [a[i][0]*xx, | ||
| + | ] | ||
| + | ] | ||
| + | )aa; | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== translate3D(a, | ||
| + | {{ : | ||
| + | < | ||
| + | abc=cube([10, | ||
| + | def=translate3D(rescale3D(abc, | ||
| + | 3D(abc); | ||
| + | 3D(def); | ||
| + | </ | ||
| + | < | ||
| + | function translate3D(a, | ||
| + | function rescale3D(a, | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== skew(XY, | ||
| + | {{ : | ||
| + | < | ||
| + | skew(XY=0.5) cube([25, | ||
| + | translate([50, | ||
| + | translate([0, | ||
| + | translate([50, | ||
| + | translate([0, | ||
| + | translate([50, | ||
| + | </ | ||
| + | < | ||
| + | module skew(XY, | ||
| + | matrice=[ | ||
| + | [1, | ||
| + | [YX, | ||
| + | [ZX,ZY,1,0] //[SkewZX, SkewZY, | ||
| + | ]; | ||
| + | multmatrix(matrice){ | ||
| + | children(); | ||
| } | } | ||
| } | } | ||
| Ligne 1380: | Ligne 1638: | ||
| def=chaincurve(koch(abc, | def=chaincurve(koch(abc, | ||
| my3Dobject=simple3D(abc, | my3Dobject=simple3D(abc, | ||
| - | polyhedron(my3Dobject[0], | + | 3D(my3Dobject); |
| </ | </ | ||
| < | < | ||