$fn=100; function points(rayon, angle) = [rayon*cos(angle), rayon*sin(angle)]; module triangle(rayon) {polygon([points(rayon, -30), points(rayon, 90), points(rayon, 210)]);} module triangle_arrondi(rayon) { minkowski() { triangle(rayon); circle(rayon/5); } } module symbole(taille, numero, texte) { union() { difference() { offset(r = taille/5) {triangle_arrondi(taille);} triangle_arrondi(taille); for(i=[0:2]) { rotate([0, 0, 30 + i*120]) { translate([taille/2 + taille/5 - 0.1, -taille/5, 0]) {square([taille/5 + 0.2, 2*taille/5]);} } } } for(i=[0:2]) { rotate([0, 0, 30 + i*120]) { translate([12*taille/15, taille/8, 0]) { rotate([0, 0, 60]) {triangle(taille/3);} } } } text(numero, valign="center", halign="center", size=taille/1.4); translate([0, -6*taille/5, 0]) {text(texte, valign="top", halign="center", size=taille/1.4);} } }