Resumé
L'idée de cette police était d'utiliser le moins possible de triangles primitifs pour chaque lettre. La police s'est développée très naturellement à partir de cette idée simple. Certes, la police n'est pas la plus lisible, mais chaque lettre se distingue nettement des autres (sauf le "B" et le "3"). La police utilise une largeur variable pour les lettres étroites.
La forme des lettres est stockée dans le vecteur fo. Chaque lettre est dans un (sous-) vecteur. Le premier élément est la largeur de la lettre (généralement 2, elle est ensuite mise à l'échelle avec la largeur de toutes les lettres w). Puis suit une liste de polygones. Certains points d'angle des polygones sont décalés d'une petite quantité (e=0,02) pour éliminer les dégénérescences lorsque deux polygones partagent un point
La clé pour trouver une certaine lettre dans le vecteur fo est la chaîne str0. Elle contient toutes les lettres disponibles :
Str0=" ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.:!?";
Actuellement, cette police ne contient que des lettres majuscules, des chiffres et quelques caractères spéciaux.
Faites-moi savoir si vous avez besoin de plus de caractères spéciaux et je vais essayer de les inclure.
Je suis quelque peu préoccupé par le fait que la police de caractères ne s'imprimera pas correctement, car certaines lettres (par exemple, "T", "X") ont des angles assez pointus, que l'imprimante ne peut pas gérer et peut omettre ou raccourcir les extrémités des lettres.
Est-ce qu'une personne avec une imprimante 3D pourrait faire une impression de test et poster une photo, s'il vous plaît ?
Si vous voulez utiliser cette police dans vos propres projets, vous pouvez simplement faire un include :
Utilisez lowpolyfontv1_0.scad.
et appelez le module :
type("HELLO WORLD",centre=true);
La ligne de texte peut avoir une longueur de 80 caractères. Si vous avez besoin de plus, alors vous devez étendre le module pos() qui calcule la position de chaque lettre dans le texte.
Tags
Model Source
