PathTruder

Mise à jour de la page : 20 mai 2015.
    
J.C. Tchang
Original Version
On Philo's Site
.

PathTruder, est un programme générateur de faces LDraw, écrit par Philo (Philippe Hurbain).

 

Navigation rapide

 

Objet du programme

L'utilitaire PathTruder permet de créer un maillage de surfaces par extrusion d'un profil, suivant un chemin.
Le chemin est défini par 2 ensembles de lignes, fournies à PathTruder dans deux fichiers au format LDraw.
Le profil, également constitué d'un ensemble de lignes, est le troisième fichier d'entrée LDraw nécessaire à l'application. Le premier segment du profil, en rouge sur l'image précédente, définit comment ce profil est attaché au chemin. Une extrémité est positionnée sur le premier ensemble de lignes du chemin, et l'autre sur le second.

PathTruder peut être considéré comme une variante de Coverer, utilisant un profil qui ne serait pas restreint à une ligne droite. En conséquence, PathTruder a beaucoup plus de possibilités, mais a également quelques restrictions. Par exemple Coverer permet d'avoir un nombre de segments différents dans les deux ensembles de lignes définissant le chemin. Une autre différence, est que PathTruder ne crée pas les lignes conditionnelles (lignes type 5) entre les faces. Vous devrez utiliser en complément Edger pour cela.

PathTruder est une simple procédure de commande, dont le code source est fourni avec le programme dans le chapitre suivant, pour celui qui veut l'intégrer dans une interface plus conviviale.
Vous pouvez également utiliser PathTruder sous Windows, grâce à l'interface graphique LETGUI de Michael Heidemann, ce qui vous est même fortement recommandé ! (voir plus bas).

 

Téléchargement

 

Historique

 

Aide au lancement du programme

 

Utilisation

Voici une copie d'écran d'une simple exécution du programme :

 

Intégration dans LETGUI

Il est possible de lancer PathTruder à 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

Pour plus d'informations générales sur cette interface, allez sur la page LETGUI.

 

Intégration dans LD Part Editor

PathTruder 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 faces sur profil : PathTruder.

 

Comment le programme travaille

 

Conseils et exemples

Considérations sur le profil et son vecteur directeur


La première ligne (de type 2) contenue dans le fichier du profil a une fonction spéciale, car elle définit comment ce profil est attaché sur les lignes du chemin. Cette première ligne (en rouge sur l'image précédente), est le vecteur directeur du profil, et DOIT être dans le plan XY, pour obtenir un résultat correct. Elle définit les points d'accrochage, l'orientation, et la mise à l'échelle du profil. Elle ne doit pas avoir une longueur nulle.

Le profil, lui même, est constitué de lignes (également de type 2). Ce profil (en bleu sur l'image précédente) se raccroche généralement aux extrémités du vecteur directeur, mais ce n'est pas toujours vrai (voir plus loin). L'ensemble du profil peut être un profil ouvert ou fermé.
Dans la plupart des cas d'utilisation de PathTruder, l'ensemble du profil doit également être défini dans le plan XY. Une exception à cette règle est le cas d'un profil balayant une spirale, comme on le verra dans un exemple plus loin.

Voir le fichier : 1shape1.dat

Balayage du profil sur le chemin


Le premier point du vecteur directeur du profil (shape1) est placé sur la ligne de Path1, et le second point de ce vecteur est placé par homothétie (orientation et mise à l'échelle) sur la ligne de Path2.
Au cours du processus de création des surfaces, le profil va balayer tous les points du chemin (constitué de Path1 et Path2).

Ligne de commande : 
PathTruder -p1 1path1.dat -p2 1path2.dat -s1 1shape1.dat 1result.dat

Fichier résultat : 1result.dat


Les lignes du chemin n'ont pas besoin d'être parallèles, et peuvent même se rejoindre.

Ligne de commande : 
PathTruder -p1 2path1.dat -p2 2path2.dat -s1 2shape1.dat 2result.dat

Fichier résultat : 2result.dat

Balayage d'une boucle


Le chemin peut former une boucle fermée. Il est important dans ce cas qu'il n'y ait pas de ligne supplémentaire en dehors de la boucle, sinon l'algorithme de tri peut ne pas marcher.

Ligne de commande : 
PathTruder -p1 2looppath1.dat -p2 2looppath2.dat -s1 2shape1.dat 2loopresult.dat

Fichier résultat : 2loopresult.dat

Si le profil est circulaire, avec son vecteur directeur dans l'axe ont obtient un tore, en prenant des cercles comme chemin, positionnés en parallèles.

Orientation des lignes du profil


L'orientation des segments de lignes dans le fichier du profil est importante. Un segment doit se terminer là où le suivant commence. L'orientation des faces générées dépendent de cela. Le bouton "Echanger" dans la boite de dialogue de création ou d'édition des lignes dans MLCad permet de corriger cela. Nota : sur l'image, la boite de dialogue a volontairement été retaillée.
Une autre solution, à postériori, est de retourner les surfaces à l'envers grâce à LDDP. Voir à ce sujet le chapitre Certification BFC des faces dans la page Créer de nouvelles pièces LDraw.

Ligne de commande : 
PathTruder -p1 2path1.dat -p2 2path2.dat -s1 2badbfcshape1.dat 2badbfcresult.dat

Fichier résultat : 2badbfcresult.dat

Balayage avec 2 profils


Lorsque deux fichiers de profils sont spécifiés, une déformation progressive est appliquée entre ces deux profils au cours du balayage du chemin. Ici, le profil 3shape2 est obtenu à partir de 3shape1 en l'aplatissant.

Ligne de commande : 
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat 3result.dat

Fichier résultat : 3result.dat


Vous pouvez contrôler la vitesse de transition avec le paramètre -ts. Celui-ci peut varier de 1 (transition linéaire) à 10 (transition en "S", valeur par défaut), à 100 et plus (transition abrupte).

Lignes de commandes : 
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -ts 1 3resulta.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -ts 10 3resultb.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -ts 100 3resultc.dat

Fichiers résultat : 3resulta.dat, 3resultb.dat, 3resultc.dat


Le paramètre -tp contrôle la position de la transition, au cours du balayage. Celui-ci peut varier de 0 à 1. La valeur par défaut est 0.5 (à mi-chemin).

Lignes de commandes : 
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -tp 0.2 3resultd.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -tp 0.5 3resulte.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape1.dat -s2 3shape2.dat -tp 0.8 3resultf.dat

Fichiers résultat : 3resultd.dat, 3resulte.dat, 3resultf.dat


Le paramètre -tn contrôle le nombre de transitions entre le profil 1 et le profil 2 (déformations de shape1 à shape2).
-tn 1 va de shape1 à shape2, comme dans les exemples précédents.
-tn 2 va de shape1 à shape2, puis revient de shape2 à shape1.
-tn 3 va de shape1 à shape2, puis de shape2 à shape1, et enfin de shape1 à shape2.
-tn 4 va de shape1 à shape2, puis revient de shape2 à shape1, puis refait la même chose une seconde fois.
-tn N ... et ainsi de suite.
Nota : En comparaison avec les exemples précédent, les fichiers de profils sont inversés pour démarrer "à plat".

Lignes de commandes : 
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape2.dat -s2 3shape1.dat -tn 1 3resultg.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape2.dat -s2 3shape1.dat -tn 2 3resulth.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape2.dat -s2 3shape1.dat -tn 4 3resulti.dat

Fichiers résultat : 3resultg.dat, 3resulth.dat, 3resulti.dat

Précision de facettisation


Le paramètre -l permet d'affiner un chemin, en limitant la longueur maximum des segments de lignes de ce chemin. La longueur spécifie la longueur maximum qui occasionne la coupe des lignes en deux parties égales.

Lignes de commandes : 
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape2.dat -s2 3shape1.dat -tn 4 3resulti.dat
PathTruder -p1 3path1.dat -p2 3path2.dat -s1 3shape2.dat -s2 3shape1.dat -tn 4 -l 2 3resultj.dat

Fichiers résultat : 3resulti.dat, 3resultj.dat

Contrôle des sections extrêmes


Nouveau en version 1.2 : L'option -e permet un meilleur contrôle des extrémités de la surface générée. Pour l'utiliser, vous devez ajouter des segments terminaux aux deux extrémités des chemins. Le début et la fin de la surface générée sera perpendiculaire au plan défini par ces segments terminaux. Dans cet exemple, l'option est utilisée pour créer une surface qui rencontre un plan.

Lignes de commandes : 
PathTruder.exe -p1 11path1.dat -p2 11path2.dat -s1 1shape1.dat -e 11result.dat
PathTruder.exe -p1 11path1e.dat -p2 11path2e.dat -s1 1shape1.dat -e 11resulte.dat


Vous pouvez aussi utiliser l'option -e pour raccorder plusieurs surfaces générées par PathTruder.

Lignes de commandes : 
PathTruder.exe -p1 12path1.dat -p2 12path2.dat -s1 12shape1.dat -s2 12shape2.dat -e -i 12result1.dat
PathTruder.exe -p1 12path3.dat -p2 12path4.dat -s1 12shape3.dat -s2 12shape2.dat -e 12result2.dat


Vous pouvez aussi utiliser l'option -e lorsque les 2 chemins se rejoignent, comme dans cet exemple de coin sphérique particulier. Le profil shape2.dat créé par aplatissement de shape1.dat (qui est dans le plan X/Y) est uniquement nécessaire si l'on veut contrôler la forme du creux final avec l'option -ts 1.

Ligne de commande : 
PathTruder.exe -p1 path1.dat -p2 path2.dat -s1 shape1.dat -s2 shape2.dat -e -ts 1 cs_result.dat

Balayage à épaisseur constante


Si vous regardez la partie gauche de l'image précédente, vous pouvez voir que l'enveloppe externe n'est pas parallèle au chemin. Cela est dû à la projection du profil dans les angles du chemin, qui n'est pas constante suivant l'angle. Cela varie proportionnellement au cosinus de cet angle. Ce phénomène cause un aplatissement apparent du profil, ce qui est parfois gênant. Le paramètre -a inverse cet aplatissement en augmentant la hauteur du profil pour compenser cet effet.

Lignes de commandes : 
PathTruder -p1 4path1.dat -p2 4path2.dat -s1 4shape1.dat 4resultd.dat
PathTruder -p1 4path1.dat -p2 4path2.dat -s1 4shape1.dat -a 4resulte.dat

Fichiers résultat : 4resultd.dat, 4resulte.dat

Création de lignes dans les angles


Le paramètre -c contrôle l'angle que fait le chemin avec le segment précédent. Si cet angle est supérieur ou égal à la valeur donnée, alors des lignes sont insérées à la jonction entre les surfaces. La valeur par défaut est 180°, ce qui ne génère aucune ligne. Vous pouvez utiliser une valeur négative pour forcer la création des lignes.

Lignes de commandes : 
PathTruder -p1 4path1.dat -p2 4path2.dat -s1 4shape1.dat -c 180 4resulta.dat
PathTruder -p1 4path1.dat -p2 4path2.dat -s1 4shape1.dat -c 90 4resultb.dat
PathTruder -p1 4path1.dat -p2 4path2.dat -s1 4shape1.dat -c 10 4resultc.dat

Fichiers résultat : 4resulta.dat, 4resultb.dat, 4resultc.dat

Création de lignes de balayage


Vous pouvez également contrôler si et où des lignes doivent être créées le long de l'extrusion. Pour faire cela, vous devez insérer une ou plusieurs lignes de longueur nulle dans le fichier du profil. Lorsque deux fichiers de profils sont spécifiés, les lignes de longueur nulle doivent exister dans les deux fichiers.

Ligne de commande : 
PathTruder -p1 5path1.dat -p2 5path2.dat -s1 5shape1.dat 5result.dat

Fichier résultat : 5result.dat

Balayage évolutif


En utilisant la transition multiple de profils, il est facile de créer des tubes annelés suivant un chemin de lignes. Ici les profils sont des cercles identiques, mais la valeur du vecteur directeur est différente. Vous obtenez alternativement des rétrécissements/dilatations. Vous pouvez jouer avec les paramètres de transition -tp et -ts pour obtenir le résultat désiré. Le paramètre de longueur -l peut aider à couper les lignes du chemin pour obtenir une meilleure résolution.

Ligne de commande : 
PathTruder -p1 8path1.dat -p2 8path2.dat -s1 8shape1.dat -s2 8shape2.dat -l 2 -tn 24 8result.dat

Fichier résultat : 8result.dat


Une transition entre deux profils concave et convexe peut permettre de créer ce joli nez de bateau. Maintenant, je dois admettre qu'il faut jongler avec les paramètres pour obtenir une pièce réellement... bien profilée !

Ligne de commande : 
PathTruder -p1 9path1.dat -p2 9path2.dat -s1 9shape1.dat -s2 9shape2.dat -tn 2 9result.dat

Fichier résultat : 9result.dat

Balayage de révolution


Il est facile de créer une surface de révolution avec PathTruder.
Dessiner un demi-profil à l'échelle voulue. Ajoutez en première ligne le vecteur directeur qui doit avoir comme longueur une valeur D, correspondant à la hauteur du demi-profil, pour qu'il reste à l'échelle. Il doit être positionné à une distance R quelconque de l'axe de symétrie du demi-profil.
Comme lignes du chemin, choisissez deux cercles parallèles, ayant ce même rayon R, et distants de la valeur D.
En conséquence, les surfaces créées forment un volume complet de 360°.

Ligne de commande : 
PathTruder -p1 7path1.dat -p2 7path2.dat -s1 7shape1.dat 7result.dat

Fichier résultat : 7result.dat

Sur cette base, en utilisant des demi-cercles, ou des quarts de cercles, il est possible de générer des demi-volumes, ou des quarts de volume.


Nouveau en version 1.2 : L'orientation adéquate de la surface créée dépend de la façon dont vous avez crée le fichier du demi-profil et la direction des lignes du chemin. Si le résultat que vous obtenez semble à l'envers, utilisez l'option -i pour inverser la courbure du profil.

Lignes de commandes : 
PathTruder -p1 7path1a.dat -p2 7patha2.dat -s1 7shape1.dat 7resulta.dat
PathTruder -p1 7path1a.dat -p2 7patha2.dat -s1 7shape1.dat -i 7resultb.dat

Balayage avec un angle de rotation (torsion)


Avec le paramètre -r, vous indiquez à PathTruder de tourner le vecteur directeur durant le balayage, pour permettre de créer des pièces torsadées. Le profil ci-dessus est à la base de la modélisation du Barbed Wire Coil. C'est pour cela que j'ai ajouté cette fonction... Dans la ligne de commande, le paramètre -r doit être suivi de la valeur de l'angle de torsion en degré (ici 360 = 360° = 1 tour complet).

Ligne de commande : 
PathTruder -p1 6path1.dat -p2 6path2.dat -s1 6shape1.dat -r 360 6result.dat

Fichier résultat : 6result.dat


Autre exemple avec le paramètre -r, vous pouvez créer avec PathTruder des tronçons de cordage. Les cordes anciennes (années 1980) font un diamètre d'environ 0.8 mm (2 LDU) et actuellement environ 0.6 mm (1.5 LDU), et sont formés de 3 torons torsadés. Dans la ligne de commande, le paramètre -r doit être suivi de la valeur de l'angle de torsion en degré (ici 360 = 360° = 1 tour complet). Dans cet exemple la longueur des lignes font 6 LDU, et sont espacés de 1 LDU dans le premier cas et de 0.75 LDU dans le second. Une valeur plus petite de -l augmente la qualité du résultat, au détriment de la taille du fichier. Cette méthode génère malgré tout des tailles de fichiers importants, et il vaut mieux se limiter à de petits tronçons de corde.

Ligne de commande 1 (corde ancienne) : 
PathTruder -p1 string_p1a.dat -p2 string_p2a.dat -s1 string_sec.dat -r 360 -l 0.5  string_l05_r360.dat

Fichier résultat : string_l05_r360.dat

Ligne de commande 2 (corde actuelle) : 
PathTruder -p1 string_p1a.dat -p2 string_p2b.dat -s1 string_sec.dat -r 360 -l 0.5  string_l05_r360n.dat

Fichier résultat : string_l05_r360n.dat

Vous pouvez télécharger les fichiers de cet exemple sur ce site : string.zip (18 Ko).

Balayage en spirale


PathTruder peut créer également des ressorts avec le paramètre optionnel -r.
Dans ce cas d'utilisation, le profil peut avoir un angle avec le vecteur directeur. Si R est le rayon du ressort, L sa longueur, n le nombre de tours, l'angle A du plan du profil, avec la direction du vecteur doit se calculer avec la formule A = atan(n*2*PI*R/L).

Chaque chemin donne la longueur L du ressort, et peut être composé d'une seule ligne. Utilisez le paramètre -l pour couper les lignes. Plus la valeur de -l est petit, plus l'apparence du résultat est fin, mais plus la taille du fichier de sortie grossit !
La distance entre les lignes du chemin détermine le diamètre réel du fil. Le profil est généralement circulaire, mais peut être également prismatique. Il donne la forme du fil du ressort. Il doit avoir le même diamètre apparent que la longueur du vecteur directeur.
La distance R du profil au vecteur directeur donne le rayon du ressort.
Dans la ligne de commande, le paramètre -r doit être suivi de la valeur en degré du nombre de tours (ici 2,5 tours x 360°).

Ligne de commande : 
PathTruder -p1 10path1.dat -p2 10path2.dat -s1 10shape1.dat -l 0.5 -r 900 10result.dat

Fichier résultat : 10result.dat

 

Droits et Copyright

Le programme PathTruder 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.

Cette page

Traduction libre et Adaptation : J.C. Tchang.
Ajout de la création de cordage : J.C. Tchang.