Ytruder, LDraw Extruder
Mise à jour de la page : 3 avril 2017.
Ytruder est un programme générateur de faces LDraw à partir
d'un chemin composé de lignes, écrit par Philo (Philippe Hurbain).
Navigation rapide
Objet du programme
L'utilitaire Ytruder crée une succession de triangles et quadrilatères,
à partir d'un ensemble de lignes. Cela est fait par extrusion suivant une
direction X, Y ou Z.
Bien que similaire à Coverer,
il a quelques autres possibilités, comme la capacité de traiter
plusieurs chemins (ensemble de lignes contiguës) distincts en
même temps. L'ensemble de lignes est fourni à l'utilitaire dans un
fichier LDraw. Un second fichier, contenant les surfaces et les lignes
de jonctions ordinaire ou conditionnelles, est crée.
Son nom est l'héritage de la version initiale qui fonctionnait seulement dans la direction Y ...
C'est une simple application en ligne de commande (type DOS).
Le code source est fourni ci-dessous pour tous ceux qui veulent
l'intégrer dans une interface plus conviviale.
Il est globalement moins puissant que Coverer, mais outre le fait qu'il traite
plusieurs contours, il peut aussi transformer automatiquement des lignes
conditionnelles en lignes fixes sur les bords à angles aigus.
Contrairement à Coverer, il n'y a qu'un seul fichier de départ,
et l'extrusion se fait à partir d'un seul ensemble de profils.
Un profil étant composé d'une succession de lignes LDraw contiguës.
Il peut y avoir plusieurs profils disjoints dans le fichier.
Chaque ligne du profil de départ génère une facette quadrangulaire.
Est ajouté une ligne suivant la direction X, ou Y, ou Z à chaque extrémité du profil, et
soit une ligne ordinaire, soit une ligne conditionnelle aux autres
sommets du profil, suivant l'angle existant entre 2 facettes.
Téléchargement
Historique
- V1.0 : Version initiale (janvier 2008).
- V1.1 : Amélioration du format de sortie du fichier généré (juillet 2008).
- V1.2 : Ajouté les options de la ligne de commande permettant de travailler
suivant les directions X, Y, ou Z (novembre 2008).
- V1.3 : Ajouté mode distance radiale (Avril 2009).
- V1.4 : Corrigé erreur d'analyse de la ligne de commande (Octobre 2009).
Utilisation
- Préparez le fichier LDraw d'entée. Ytruder utilise uniquement
les lignes en données d'entrée (lignes de type 2). Les autres entités
LDraw sont ignorées. Si vous voulez créer des surfaces à partir de
primitives filaires, vous devez d'abord les décomposer en lignes (Inlined).
LDDesignPad fait cela très bien.
- Ouvrez une fenêtre "Invite de commande".
- Tapez la ligne de commande :
ytruder [-x ou -y ou -z] [-d ou -s ou -p ou -r <val>]
[-a <angle>] LdrawLineFile LdrawSurfaceFileOut
Ytruder va créer le fichier LdrawSurfaceFileOut, contenant
les surfaces. Notez que si le fichier existe, il est écrasé sans message d'erreur.
Les paramètres optionnels -x, -y,
-z contrôlent la direction de l'opération,
et -d, -s, -p,
-r, -a
contrôlent le comportement de Ytruder. Ces options seront détaillées plus bas.
- Ytruder crée les données de sortie avec 6 chiffres après le point décimal.
Cette précision est excessive pour la plupart des usages, et les valeurs
peuvent-être arrondis. Ici encore
LDDesignPad fait cela très bien.
Aide au lancement
Si vous lancez le programme sans paramètre, vous obtenez un message d'aide
de l'usage du programme.
Description des options
Options de direction :
- -x : Impose la direction de l'extrusion suivant l'axe X, dans
le sens X+ si la valeur <val> des options qui suivent
est positive, et X- si la valeur est négative.
- -y : Impose la direction de l'extrusion suivant l'axe Y, dans
le sens Y+ si la valeur <val> des options qui suivent
est positive, et Y- si la valeur est négative.
- -z : Impose la direction de l'extrusion suivant l'axe Z, dans
le sens Z+ si la valeur <val> des options qui suivent
est positive, et X- si la valeur est négative.
Nota : l'option -y est prise par défaut si aucune de ces options n'est fournie.
Options à choix :
- -d <val> : Génère un bord à partir des profils jusqu'à une certaine
distance en LDU suivant l'axe X, Y, ou Z.
ex : ytruder -d 10 test1.dat test2.dat.
- -s <val> : Génère un bord à partir des profils
jusqu'à la symétrie des profils par rapport
à un plan X, Y, ou Z distant d'une certaine valeur (par défaut 0).
- -p <val> : Génère un bord à partir des profils
jusqu'à un plan X, Y, ou Z
distant d'une certaine valeur (par défaut 0).
- -r <val> : Génère un bord à partir des profils
par extrusion radiale suivant la direction X, Y, ou Z, et
distant d'une valeur non nulle.
Nota : l'option -s 0 (symétrie par rapport à l'origine)
est pris par défaut si aucune de ces options n'est fournie.
Option complémentaire :
- -a <angle> : Génère une ligne ordinaire, à la place d'une ligne conditionnelle, si
l'angle entre 2 facettes est supérieur à un certain angle (30° par défaut).
Voici une copie d'écran d'une simple exécution du programme :
Autre exemple sur une autre machine :
Intégration dans LETGUI
Il est possible de lancer Ytruder à partir d'une interface
plus conviviale que la ligne de commande. LETGUI crée par Michael Heidemann
est fait pour cela.
Utilisation de l'interface
- Sélectionnez "Ytruder" dans le menu déroulant "Tool".
- Entrez le chemin d'accès à l'utilitaire Ytruder, si cela n'a pas été configuré, dans le champ "Ytruder".
- Entrez le nom du fichier d'entrée avec son chemin, dans le champ "Input", ou le sélectionner
avec le bouton . Ce fichier
peut être visualisé en cliquant sur le bouton , ou
édité avec le bouton
- Entrez le nom du fichier de sortie, ou garder celui défini automatiquement, dans le champ "Output".
- Sélectionnez l'option de projection -d, -s, ou -p ou -r en cochant "translation by distance"
(translation par distance),
ou "symmetry across plane" (symétrie par rapport à un plan), ou "projection on plane"
(projection sur un plan), ou "extrude radially" (extrusion radiale).
- Entrez la valeur de distance ou de plan dans le champ "value".
- Cochez "angle", et entrez sa valeur dans le champ "angle value", pour donner la limite de définition
des lignes conditionnelles.
- Sélectionnez la direction de projection x, y, ou z dans le menu déroulant "opération direction".
- Exécuter la commande en cliquant sur le bouton .
Pour plus d'informations générales sur cette interface, allez sur la page LETGUI.
Intégration dans LDForge
Le programme Ytruder a été interfacé dans LDForge.
Voir le chapitre : Programme d'extrusion de faces sur une succession de lignes : Ytruder.
Intégration dans LD Part Editor
Le programme Ytruder a été interfacé dans LD Part Editor.
Voir le chapitre : Génération de faces à partir de lignes : YTruder.
Comment le programme travaille
- Le fichier d'entrée est lu et analysé. Les extrémités des lignes
sont stockées dans un tableau (Le nombre de lignes est limité à 1000,
ce qui devrait être suffisant !).
- Les lignes sont scannées pour trouver le début du chemin (un chemin est
défini comme une succession de lignes contiguës dont la dernière va le clore).
- Le chemin est exploré du début à la fin, en créant les surfaces et les lignes
conditionnelles par le processus et en les stockant dans des tableaux.
L'orientation des surfaces est maintenue le long du chemin, facilitant
la construction de pièces conformes BFC (standard du sens des faces).
- Chaque surface est construite à partir d'une ligne du chemin et
une seconde, obtenue à partir de la première et dépendant du paramètre :
- -d <val> : La première ligne est translatée d'une
distance <val> dans la direction X, Y, ou Z (suivant l'option de direction prise).
- -s <val> : La seconde ligne est obtenue par
symétrie suivant un plan X, Y, ou Z=<val>. Ytruder
utilise par défaut un plan de symétrie Y=0.
- -p <val> : La seconde ligne est obtenue par
projection sur le plan X, Y ou Z=<val>.
- -r <val> : La seconde ligne est obtenue par
extrusion radiale suivant la direction X, Y ou Z, et d'une distance <val>.
- Des lignes sont ajoutées au début et à la fin de chaque chemin. Le
tableau des lignes est encore scanné pour trouver d'autres chemins
de lignes inutilisées.
- Le fichier de sortie est écrit. Durant ce processus :
- Les quadrilatères qui ont 2 sommets identiques sont transformés
en triangles, les quadrilatères dégénérés et les lignes
conditionnelles attenantes sont supprimés.
- Les lignes conditionnelles qui sont entre deux surfaces ayant un
angle supérieur à la valeur -a <angle> sont converties
en lignes simples. Ytruder utilise par défaut
un angle de 30°.
Exemples de test
|
Extrusion parallèle.
Fichiers : ytline.dat --> ytsurf-d6.dat
Ligne de commande : Ytruder -d 6 ytline.dat ytsurf-d6.dat |
|
Extrusion symétrique.
Fichiers : ytline.dat --> ytsurf-s0.dat
Ligne de commande : Ytruder -s 0 ytline.dat ytsurf-s0.dat
ou : Ytruder.exe ytline.dat ytsurf-s0.dat (-s 0 est par defaut) |
|
Extrusion par projection.
Fichiers : ytline.dat --> ytsurf-p0.dat
Ligne de commande : Ytruder -p 0 ytline.dat ytsurf-p0.dat |
|
Extrusion radiale.
Fichiers : spiral.dat --> screw.dat
Ligne de commande : Ytruder -r 5 spiral.dat screw.dat |
|
Avec un angle entre deux surfaces mis à 0°, une ligne simple est créée
à la jonction de 2 surfaces.
Fichiers : ytline.dat --> ytsurf-s0a0.dat
Ligne de commande : Ytruder -s 0 -a 0 ytline.dat ytsurf-s0a0.dat |
|
Avec un angle entre deux surfaces mis à 180°, seul des lignes conditionnelles
sont créées à la jonction de 2 surfaces.
Fichiers : ytline.dat --> ytsurf-s0a180.dat
Ligne de commande : Ytruder -s 0 -a 180 ytline.dat ytsurf-s0a180.dat |
Exemples réels
|
Un exemple réel, provenant des lettres gravées dans la pièce NXT, que j'ai
récemment crée en utilisant Ytruder.
Fichiers : usbline.dat --> usbside.dat
Ligne de commande : Ytruder -d 0.5 usbline.dat usbside.dat |
Le résultat, après ajout des surfaces supérieures et inférieures. La méthode utilisée
est détaillée dans le tutoriel :
Construire des pièces avec Quad2Dat, Edger et Ytruder
(fichier usb-final.dat).
Une autre partie de pièce, extraite de la pièce
50914. La construction
de cette pièce est détaillée dans le tutoriel :
Construire des pièces avec Quad2Dat, Edger et Ytruder.
Droits et Copyright
Le programme Ytruder et son manuel d'utilisation appartient à (c) Philo (Philippe Hurbain).
Vous pouvez le retrouver sur son site et sa
page des utilitaires LDraw,
et sur la version d'origine en
anglais de cette page.
Traduction et Adaptation : J.C. Tchang.