Étape 5: Organiser les lettres
Dans le module, nous voulons faire les étapes suivantes :
Le personnage à la bonne taille à l’échelle (il s’agit dans environ 2mm de large - mais nous voulons qu’il est beaucoup plus grand!): scale(textsize)
Assurez-vous de nous faire savoir 3D (comme il est venu en bémol): linear_extrude (hauteur = 7, Centre = false)
Faire pivoter vers le haut de la bonne manière : rotate([90,0,180])
Il s’éloigner de l’origine (rotation fonctionne autour de l’origine, ce faisant cela avant rotation rend tout beaucoup plus facile!: translate([0,radius,0.8*textsize])
Le personnage de tourner encore une fois selon l’endroit où le mot est : rotate([0,0,rot*360/7])
Et puis nous sommes triés ! Vous vous retrouvez avec un module comme ceci :
hauteur = 40 ;
rayon = 30 ;
TEXTSIZE = 20 ;
module char (pourriture, name) {}
Rotate([0,0,rot*360/7]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (hauteur = 7, Centre = false) scale(textsize) import(file=name,origin=[1,1]) ;
}
et puis pour écrire un nom, vous juste l’appeler pour chaque lettre :
Char (0, "char_M.dxf") ;
Char (1, "char_A.dxf") ;
Char (2, "char_R.dxf") ;
Char (3, "char_I.dxf") ;
Char (4, "char_A.dxf") ;
Char (5, "char_N.dxf") ;
Char (6, "char_N.dxf") ;
Char (7, "char_E.dxf") ;
Maintenant, il y a un seul bit final gauche, pour rendre le réel « band ». OpenSCAD utilise la CSG (Constructive Solid Geometry) pour vous faire des formes en ajoutant ou en soustrayant les. Tout ce que nous devons faire est d’ajouter (union), toutes les lettres ensemble, comme un cylindre, puis de soustraire (différence) un cylindre légèrement plus mince pour qu’un trou est fait dans le milieu :
difference() {}
Union() {}
Char (0, "char_M.dxf") ;
Char (1, "char_A.dxf") ;
Char (2, "char_R.dxf") ;
Char (3, "char_I.dxf") ;
Char (4, "char_A.dxf") ;
Char (5, "char_N.dxf") ;
Char (6, "char_N.dxf") ;
Char (7, "char_E.dxf") ;
cylindre (h = hauteur, r = rayon + 5) ;
}
translate([0,0,-1]) cylindre (h = hauteur + 2, r = rayon) ;
}
Et c’est tout ! La chose totale est inférieure à :
---text_MARIANNE.scad
hauteur = 40 ;
rayon = 30 ;
TEXTSIZE = 20 ;
module char (pourriture, name) {}
Rotate([0,0,rot*360/9]) translate([0,radius,0.8*textsize]) rotate([90,0,180]) linear_extrude (hauteur = 7, Centre = false) scale(textsize) import(file=name,origin=[1,1]) ;
}
difference() {}
Union() {}
Char (0, "char_M.dxf") ;
Char (1, "char_A.dxf") ;
Char (2, "char_R.dxf") ;
Char (3, "char_I.dxf") ;
Char (4, "char_A.dxf") ;
Char (5, "char_N.dxf") ;
Char (6, "char_N.dxf") ;
Char (7, "char_E.dxf") ;
cylindre (h = hauteur, r = rayon + 5) ;
}
translate([0,0,-1]) cylindre (h = hauteur + 2, r = rayon) ;
}
-------------------------------------------