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 Prochaine révision Les deux révisions suivantes | ||
outilsit:fablab:laser:lol [2022/02/08 22:52] vanlindtmarc |
outilsit:fablab:laser:lol [2022/02/09 00:09] 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 237: | Ligne 259: | ||
---- | ---- | ||
+ | ==== addpoints(a, | ||
+ | **Attention** : pour les besoins que j'en ai eu, cette fonction ne " | ||
+ | < | ||
+ | abc=[50, | ||
+ | def=[100, | ||
+ | jkl=addpoints(abc, | ||
+ | echo(jkl); | ||
+ | |||
+ | -> ECHO: [[50, 50], [58.3333, 58.3333], [66.6667, 66.6667], [75, 75], [83.3333, 83.3333], [91.6667, 91.6667]] | ||
+ | </ | ||
+ | < | ||
+ | function addpoints(c1, | ||
+ | </ | ||
==== myangle(a, | ==== myangle(a, | ||
Ligne 425: | Ligne 460: | ||
def=fractalize(abc, | def=fractalize(abc, | ||
ghi=chaincurve(def); | ghi=chaincurve(def); | ||
- | polygon(def); | + | 2D(def); |
- | translate([55, | + | translate([55, |
</ | </ | ||
Ligne 445: | Ligne 480: | ||
---- | ---- | ||
+ | ==== interpolate(a, | ||
+ | {{ : | ||
+ | < | ||
+ | abc=square([10, | ||
+ | def=circle(d=10, | ||
+ | ghi=interpolate(abc, | ||
+ | jkl=interpolate(abc, | ||
+ | echo(len(abc)); | ||
+ | echo(len(def)); | ||
+ | echo(len(ghi)); | ||
+ | echo(len(jkl)); | ||
+ | trace(abc, | ||
+ | translate([15, | ||
+ | translate([0, | ||
+ | translate([15, | ||
+ | |||
+ | ->ECHO: 5 | ||
+ | ECHO: 8 | ||
+ | ECHO: 29 | ||
+ | ECHO: 29 | ||
+ | </ | ||
+ | < | ||
+ | function interpolate(a, | ||
+ | pp=ppcm(len(a)-1, | ||
+ | correct=correct==undef? | ||
+ | abc=vectranslate(multiplyfaces(a, | ||
+ | def=multiplyfaces(b, | ||
+ | aa=[for(i=[0: | ||
+ | (aa); | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== multiplyfaces(object, | ||
+ | {{ : | ||
+ | < | ||
+ | abc=square([10, | ||
+ | echo(len(abc)); | ||
+ | for(i=[1: | ||
+ | def=multiplyfaces(abc, | ||
+ | echo(len(def)); | ||
+ | translate([12*(i-1), | ||
+ | } | ||
+ | |||
+ | ->ECHO: 5 | ||
+ | ECHO: 9 | ||
+ | ECHO: 13 | ||
+ | ECHO: 17 | ||
+ | ECHO: 21 | ||
+ | </ | ||
+ | < | ||
+ | function multiplyfaces(object, | ||
+ | n=n==undef? | ||
+ | aa=n==0? | ||
+ | addpoints(object[i], | ||
+ | ]) | ||
+ | concat(clean(aa), | ||
+ | </ | ||
===== Primitives 2D ===== | ===== Primitives 2D ===== | ||
Ligne 461: | Ligne 554: | ||
abc = square([10, | abc = square([10, | ||
square([10, | square([10, | ||
- | translate ([12, | + | translate ([12, |
</ | </ | ||
Ligne 487: | 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 509: | Ligne 602: | ||
abc = ellipse([40, | abc = ellipse([40, | ||
ellipse([20, | ellipse([20, | ||
- | translate ([40, | + | translate ([40, |
</ | </ | ||
Ligne 530: | Ligne 623: | ||
abc = star(d1=40, | abc = star(d1=40, | ||
star(d1=40, | star(d1=40, | ||
- | translate ([40, | + | translate ([40, |
</ | </ | ||
Ligne 552: | Ligne 645: | ||
abc = roundsquare([15, | abc = roundsquare([15, | ||
roundsquare([20, | roundsquare([20, | ||
- | translate ([22, | + | translate ([22, |
</ | </ | ||
Ligne 590: | Ligne 683: | ||
abc = triangle(10, | abc = triangle(10, | ||
triangle(20, | triangle(20, | ||
- | translate ([17.55, | + | translate ([17.55, |
</ | </ | ||
Ligne 612: | Ligne 705: | ||
abc=piepart(d=50, | abc=piepart(d=50, | ||
piepart(d=50, | piepart(d=50, | ||
- | translate([30, | + | translate([30, |
</ | </ | ||
Ligne 635: | Ligne 728: | ||
def=teardrop(25, | def=teardrop(25, | ||
teardrop(25, | teardrop(25, | ||
- | translate([30, | + | translate([30, |
- | translate([60, | + | translate([60, |
</ | </ | ||
Ligne 661: | 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 685: | Ligne 778: | ||
abc=losange([10, | abc=losange([10, | ||
losange([20, | losange([20, | ||
- | translate([20, | + | translate([20, |
</ | </ | ||
Ligne 709: | Ligne 802: | ||
translate([50, | translate([50, | ||
- | translate([0, | + | translate([0, |
- | translate([50, | + | translate([50, |
</ | </ | ||
Ligne 726: | 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 768: | 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 1298: | Ligne 1454: | ||
} | } | ||
} | } | ||
- | </ | ||
- | |||
- | ---- | ||
- | ==== interpolate(a, | ||
- | {{ : | ||
- | < | ||
- | abc=square([10, | ||
- | def=circle(d=10, | ||
- | ghi=interpolate(abc, | ||
- | jkl=interpolate(abc, | ||
- | echo(len(abc)); | ||
- | echo(len(def)); | ||
- | echo(len(ghi)); | ||
- | echo(len(jkl)); | ||
- | trace(abc, | ||
- | translate([15, | ||
- | translate([0, | ||
- | translate([15, | ||
- | |||
- | ->ECHO: 5 | ||
- | ECHO: 8 | ||
- | ECHO: 29 | ||
- | ECHO: 29 | ||
- | </ | ||
- | < | ||
- | function interpolate(a, | ||
- | pp=ppcm(len(a)-1, | ||
- | correct=correct==undef? | ||
- | abc=vectranslate(multiplyfaces(a, | ||
- | def=multiplyfaces(b, | ||
- | aa=[for(i=[0: | ||
- | (aa); | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | ==== multiplyfaces(object, | ||
- | {{ : | ||
- | < | ||
- | abc=square([10, | ||
- | echo(len(abc)); | ||
- | for(i=[1: | ||
- | def=multiplyfaces(abc, | ||
- | echo(len(def)); | ||
- | translate([12*(i-1), | ||
- | } | ||
- | |||
- | ->ECHO: 5 | ||
- | ECHO: 9 | ||
- | ECHO: 13 | ||
- | ECHO: 17 | ||
- | ECHO: 21 | ||
- | </ | ||
- | < | ||
- | function multiplyfaces(object, | ||
- | n=n==undef? | ||
- | aa=n==0? | ||
- | addpoints(object[i], | ||
- | ]) | ||
- | concat(clean(aa), | ||
</ | </ | ||
Ligne 1369: | Ligne 1465: | ||
def=chaincurve(koch(abc, | def=chaincurve(koch(abc, | ||
my3Dobject=simple3D(abc, | my3Dobject=simple3D(abc, | ||
- | polyhedron(my3Dobject[0], | + | 3D(my3Dobject); |
</ | </ | ||
< | < |