J.C. Tchang |
Original page on author site txt2dat. |
Le programme txt2dat de Ross Crawford génère des fichiers LDraw à partir d'une police de caractères.
Par défaut il utilise les Spécifications des autocollants (Sticker).
Il est complété par txt2dat online de Jim DeVona et l'interface graphique GUItx2d de Anders Isaksson.
Ce manuel est une traduction et adaptation des documents d'origine des auteurs
respectifs.
Le programme txt2dat crée des fichiers LDraw de textes, à partir de polices de caractères.
C'est un utilitaire que j'ai écrit (dixit Ross Crawford) de façon basique, pour produire des autocollants virtuels (stickers) pour mes modèles LDraw. Il vous permet de choisir n'importe quelle police de caractères vectorielle, et de créer un fichier LDraw contenant la représentation de n'importe quelle chaîne de caractères dans cette police.
Vous pouvez télécharger ce programme sur le site de l'auteur, R. Crawford :
Page de txt2dat, ou
Page de txt2dat, ou
txt2dat location.
En 07-2020, nouvelle adresse du programme avec version Windows, MacOS, Linux et source :
txt2dat - Create LDraw files from text.
Le fichier de l'autocollant généré est composé de commandes LDraw ayant plusieurs fonctions actives ou non :
Par défaut, txt2dat génère une boite (box) orientée suivant le standard LDraw.org Standards: Official Library Specification for Sticker Parts (bibliothèque officielle des standards LDraw pour les pièces "sticker"), dont voici la traduction : Spécifications des autocollants (Sticker). En particulier son épaisseur est de 0.25 LDU (unités LDraw). De nombreux attributs de l'objet final LDraw peuvent être ajustés, en utilisant les options décrites ci-dessous.
Le programme redirige les commandes LDraw vers "stdout", et tous les autres messages vers "stderr". De cette façon, le fichier LDraw peut-être capturé en redirigeant "stdout" vers un fichier.
txt2dat [options] [fontfile] [> result.dat]
Options des caractères : | |
-s chaine | Ajoute une chaîne de caractères. Les caractères sont ajoutés dans l'ordre où ils apparaissent dans la ligne de commande. Mettre la chaîne de caractère entre " ", lorsqu'il y a des espaces dans la chaîne. Exemple : "A B C". C'est utile lorsque les lettres du texte son espacés. |
-a code | Ajoute un caractère ASCII (donné en décimal)
dans la chaîne de caractères. Les caractères sont ajoutés dans l'ordre où ils apparaissent dans la ligne de commande. Plusieurs options -s et -a peuvent être combinées dans la même commande. Exemple : -a 65 -s BC -a 68 dans la commande donne le texte "ABCD". |
-c code_couleur | Spécifie la couleur des
caractères suivant le standard LDraw ou - (-c-) pour transparent. Par défaut la couleur des caractères est 0 pour "black" (noir). Sélectionner une couleur de caractère transparente, ou une couleur de fond transparente, est différent du choix de la couleur 47 "trans-white" (blanc transparent). Le programme ne crée pas de facettes triangulaires dans le premier cas, et dans le second crée des facettes avec la couleur 47. |
-p valeur | Spécifie la taille du texte en points (définition standard des polices de caractères).
1 point vaut environ 0.64 LDU.
La valeur par défaut est de 12 points. Nota : Pour une meilleure qualité avec de petites tailles de texte, augmentez cette valeur. Vous pourrez ultérieurement changer la valeur d'échelle avec MLCad par exemple. |
-r valeur | Résolution des courbes Splines.
Doit être plus grand ou égal à 0. 0 = Bon compromis (par défaut) 1 = Maximum >1 = Réduit la résolution. Résolution des Splines : La meilleure résolution pour chaque spline dépend de la taille en points de la police de caractères. Les grandes tailles nécessitent plus de segments. Plus de segments, nécessite plus de temps de calcul, et aussi de plus de mémoire. La valeur par défaut produit généralement un bon résultat, sauf pour de très petites tailles. Je ne recommande pas d'utiliser de hautes résolutions de Splines (valeurs de -r basses) avec une taille supérieure à 64, mais vous êtes libres d'expérimenter ;) |
-k | Crénage des paires de caractères, pour les polices le supportant, c'est-à-dire ajuste au mieux l'espace entre les lettres. Exemple "WA" et "HI" n'ont pas un espacement fixe entre les lettres. |
Options de la boîte englobante de l'autocollant (sticker) : | |
-h valeur | Spécifie la hauteur de la boite englobante (en unités LDU). Par défaut, la hauteur est le premier multiple de 8 LDU (hauteur d'une pièce "plate"), plus grand que la hauteur totale des caractères. La ligne de base de la police de caractère est sur l'axe x. La boite n'a pas de face inférieure (plus au standard actuel). Mais il est facile d'en ajouter une manuellement, si vous en voulez une. Je peux le mettre en option, si de nombreuses personnes le demandent. |
-w valeur | Spécifie la largeur de la boite englobante (en unités LDU). Par défaut, la largeur est le premier multiple de 20 LDU (largeur d'une brique 1x1), plus grand que la largeur totale des caractères. Le texte est centré dans la boite, et sur l'axe z. |
-b code_couleur | Spécifie la couleur de fond
suivant le standard LDraw ou - (-b-) pour transparent (voir option -c). Par défaut la couleur de fond est 15 pour "white" (blanc). Vous pouvez utiliser des couleurs non définies dans les spécifications LDraw, en choisissant parmi les numéros de couleur utilisateur, et en définissant cette couleur comme vous le voulez dans votre fichier LDraw. |
-x | Ne crée pas la boite englobante. |
Options de bord vertical et ligne de bord : | |
-g | Crée un bord vertical autour des caractères, seulement
si l'une des options de couleur transparente -b- ou -c- est utilisée (pas les deux),
et sauf si -l est utilisé. Des lignes verticales sont également crées à chaque fin de segment droit de la police, donc en fonctions des polices utilisées, vous pouvez avoir plus de lignes verticales que nécessaire. La police interne par défaut est dans ce cas, puisque tous les caractères sont facettisés (composés de segments droits et non de courbes). Cela peut être réduit par l'option -m ci-dessous. Cette option -g n'est pas à utiliser pour faire des autocollants mais pour créer des textes embossés sur/dans les pièces au format LDraw. |
-m angle | Convertit les lignes de bord verticaux en lignes conditionnelles, si 0 <= angle < 90. Par défaut angle = 10°. Utilisé conjointement à l'option -g. |
-l | Ne crée pas les lignes de bords des caractères et/ou de la boite. A utiliser par défaut pour respecter le standard actuel des autocollants. |
Options du fichier de sortie : | |
-d nom_piece | Spécifie le nom descriptif de la pièce. Cela est mis comme commentaire dans la première ligne du fichier. Par défaut le nom est "Sticker file". |
-f nom_fichier | Spécifie le nom du fichier de la pièce. Cela génère une ligne LDraw dans le fichier "0 Name: nom_fichier". Le fichier de sortie n'est pas crée avec cette option (voir -o). Par défaut le nom est "sticker.dat". |
-o nom_fichier | Spécifie le nom du fichier de sortie. Toutes les lignes de commandes LDraw générées vont dans ce fichier. Annule -f si spécifié. Par défaut la sortie est "stdout" (sortie standard, c'est-à-dire la fenêtre si aucune redirection n'est donnée vers un fichier : > result.dat par exemple). |
-e nom_fichier | Spécifie le nom du fichier d'erreur. Tous les messages d'erreur vont dans ce fichier. Par défaut les messages sont envoyés sur "stderr" (sortie des erreurs, la fenêtre par défaut). |
-D valeur | Spécifie le niveau de déverminage (Seulement disponible lorsque cela est compilé à partir de la source. La valeur par défaut est 3. |
fontfile | Le chemin complet d'un
fichier de police de caractères vectorielle existante, mais
pas forcément installée.
Si cela n'est pas fourni, une police de caractères par défaut, interne au programme est utilisée. Cette police a été générée à partir des briques LDraw 1x1 comportant des lettres, par Tore Eriksson. Elle contient seulement les caractères "espace", les chiffres de 0 à 9, et les caractères majuscules A à Z. Les caractères minuscules sont remplacés par leur équivalent majuscule. J'ai choisi cette police car elle est assez petite, et je ne veux pas augmenter de trop la taille de l'exécutable (.exe). Elle peut être changée, seulement, en recompilant la source. Les instructions sont fournies dans le fichier build.txt, inclus avec les sources. Les variantes de polices de caractères Bold (Gras), et Italic (Italique), sont généralement dans des fichiers différents, en conséquence, vous devez choisir le fichier approprié. text2dat ne peut créer automatiquement les polices grasses ou en italique. Par exemple : la famille de polices Arial est composé de : arial.ttf, arialbd.ttf, ariali.ttf et arialbi.ttf. Les polices le plus souvent utilisées tournent autour des polices Arial
avec, suivant l'épaisseur du jambage : arial.ttf pour le plus fin, arialbd.ttf
pour une épaisseur moyenne, ariblk.ttf pour une forte épaisseur. Pour rechercher rapidement une police correspondant au besoin, j'utilise le programme FontList, programme libre de Edwin Martin, qui génère automatiquement une page HTML de toutes les polices installées avec un exemple, solution la plus rapide. Egalement pour aller plus loin AMP Font Viewer, programme libre d'Alberto Martinez Pérez, qui affiche un exemple de chaque police disponible installée ou non. Certains utilisent une recherche via le site : http://www.identifont.com ou http://www.whatfontis.com/, mais le résultat n'est pas toujours convainquant, et cela renvoi souvent vers des polices de caractères commerciales. Pour le thème architecture, la police utilisée par certains est :
Font Myriad Web Pro.ttf. D'autres utilisent la police Helvetica ou la police Swis721 BT. A voir. |
txt2dat -s Hello -c 4 -p 72 c:\windows\fonts\arial.ttf > hello.dat
Génère un fichier "hello.dat" contenant la chaîne de caractères "Hello" en rouge, avec une police "Arial" d'une hauteur en point de 72, sur un fond blanc.
Voici un petit exemple d'utilisation de txt2dat avec des caractères spéciaux, en utilisant l'option -a. Nota : L'interface GUItx2d ne passant pas cette option, ne peut être utilisée.
La première chose à faire est de rechercher le code des caractères que l'on a besoin avec la "Table des caractères" de Windows. Après sélection de la police et du caractère, il suffit de noter sa valeur hexadécimale (base 16) :
Pour obtenir le code en valeur décimal à obtenir, on peut utiliser la Calculatrice de Windows, en mode d'affichage Scientifique :
Cocher "Hex" pour rentrer la valeur en hexadécimal, puis cocher
"Déc" pour en obtenir la conversion en décimal.
Dans l'exemple la valeur hexadécimal 042C donne la valeur décimale 1068.
Nota : On peut aussi faire le calcul à la main (4*16*16 + 2*16 + 12 = 1068), en mettant A=10, B=11, C=12, D=13, E=14, F=15.
Pour obtenir le texte qui nous intéresse, il faut plusieurs caractères spéciaux et plusieurs caractères standards. Nous allons utiliser la commande suivante combinant les caractères. Il est préférable de mettre cette commande dans un fichier .BAT, puis de l'exécuter en faisant un double clic, et obtenir le résultat dans le fichier result.dat.
txt2dat -a 1054 -a 1055 -s ACH -a 1054 -s CT -a 1068 -c 4 -p 72 C:\Windows\Fonts\arialbd.ttf > C:\Lego\txt2dat\result.dat
Voici le résultat, modifié en largeur avec un facteur 0.7 (avec MLCad) pour être plus proche du résultat escompté :
Depuis 03-2007, vous pouvez accéder à une version de txt2dat "en ligne" sur Internet, sur le site de Jim DeVona : txt2dat online.
Nota : En 2012, cette version en ligne a été retiré par son auteur.
Il s'agit de l'interface graphique de txt2dat crée par Anders Isaksson.
Vous pouvez pouviez télécharger ce programme ici :
guitx2d.zip.
Nota : Ce programme semble avoir disparu d'Internet. Il n'était plus mis a jour,
et n'incorpore pas les dernières options ajoutées à txt2dat.
Mais depuis le 05-07-2013 on peut le trouver sur le forum LDraw.org (version d'origine) :
Re: Putting comments into LDraw projects....
A la première utilisation cliquez sur l'onglet "Setting" :
... et indiquez le chemin du programme txt2dat, et du visualiseur
de résultat (ici L3Lab).
Lorsque le programme considère le chemin comme bon, le champ correspondant
passe en vert.
Sinon restez sur le premier onglet :
... où vous pouvez entrer les paramètres nécessaires à la création
du "sticker", et vous en montrant un aperçu en dessous.
Nota : le centrage du texte n'apparaît pas dans l'aperçu, ainsi que les
paramètres "Transparent".
Entrez dans le champ :
Vous pouvez également cliquer, si besoin, sur la case :
Nota : avec certaines versions de Windows, il n'est pas possible de sélectionner
la police de caractère avec la boite de dialogue. Il faut rentrer son nom manuellement.
Pour voir le nom réel du fichier d'une police installée, cliquez dans la liste avec
le bouton droit de la souris et sélectionnez "Détail".
Pour utiliser la police de caractères par défaut de txt2dat, allez chercher le fichier brick.ttf dans les sources, et copiez-le dans le dossier d'installation de txt2dat (par exemple).
Lorsque tout est bien paramétré, vous pouvez cliquer sur le bouton "Do It!", pour lancer la génération du résultat.
Le programme passe alors automatiquement sur l'onglet "Output" :
Dans le champ inférieur apparaît la liste des commandes LDraw générées, mais ce champ est non modifiable.
Vous pouvez cliquer sur les boutons suivants pour :
Supprimez le fichier GUItx2d.INI dans le dossier Windows, pour retrouver les paramètres par défaut.
Txt2Dat a été intégré dans l'éditeur de pièce LD Part Editor, voir la page : LD Part Editor, et particulièrement le chapitre Génération de motif texte : Txt2Dat.
Ce programme a été écrit par R. Crawford :
Ce programme est un logiciel libre. Vous pouvez le redistribuer et/ou le modifier sous les termes de la licence GNU General Public License publiée par la Free Software Foundation. Soit en version 2 de la licence, soit (à votre convenance) n'importe quelle version ultérieure.
Ce programme est distribué dans l'espoir qu'il vous soit utile, mais SANS AUCUNE GARANTIE. Sans même la garantie implicite de CAPACITE MARCHANDE ou d'APTITUDE POUR UN BUT PARTICULIER. Voyez la licence GNU General Public License pour plus de détails.
C'est encore un programme en version Beta. Utilisez-le à vos propres risques. Veuillez envoyer tous commentaires/suggestions/bugs à txt2dat@br-eng.info.
Anders Isaksson a écrit une interface graphique pour txt2dat, appelée GUItx2d,
qui facilite son utilisation. Vous pouvez lire à ce sujet le
forum Lugnet (en anglais).
Nota : Je n'ai pas contribué à ce programme (dixit R. Crawford). Veuillez contacter Anders pour toute
information !
Adaptation de ce manuel, traduction en français, J.C. Tchang.
Ce manuel est libre de droits, et n'engage nullement les auteurs des programmes.