Edger

Mise à jour de la page : 14 avril 2009.
    
J.C. Tchang
English Version
On Philo's Site
.

Edger est un utilitaire écrit en Java par Lee Gaiteri. Il permet de générer les bords (edges) de facettes contiguës avec des lignes conditionnelles, et des lignes standards sur les bords extérieurs.

Ensemble de facettes extraites pour exemple de la primitive 2-4sphe.dat.
Après ajout des lignes générées par Edger. Les lignes de bord sont blanches, et les lignes conditionnelles foncées. Seules les lignes conditionnelles, se trouvant dans la vue sur le bord de la pièce, sont visualisées.

Edger génère les lignes de bords des facettes non contiguës à une autre facette avec des lignes standards (type 2), avec la couleur blanche (couleur 15). Elles ne doivent pas exister dans une pièce normale, car cela veut dire que l'enveloppe de la pièce est ouverte. Normalement cela indique un problème dans la pièce. C'est pour cela qu'elles sont générées en blanc.

Edger génère les lignes de bords qui séparent deux facettes, par une ligne conditionnelle (type 5). Un bord doit être contigu à deux et seulement deux facettes. Les lignes conditionnelles sont générées avec la couleur de bord standard "Edge-Color", c'est-à-dire la couleur 24.

Vue montrant l'ensemble de facettes.
Vue montrant toutes les lignes de bord blanches et toutes les lignes conditionnelles grises, générées par Edger.

 

Installation

Edger étant écrit en Java, pour fonctionner un interpréteur Java de Sun doit être installé sur le PC. Cela est souvent le cas avec votre navigateur Internet préféré, sinon allez sur le site de Sun (ou autre) pour le télécharger.

Le programme lui-même n'a pas besoin d'installation pour fonctionner. Il suffit de mettre les deux fichiers fournis :
   edger.java
   edger.class
Dans un même dossier, par exemple :
   c:\lego\edger

 

Utilisation

Créez un fichier d'entrée contenant les facettes à traiter, c'est-à-dire des polygones triangulaires (type 3) et/ou quadrangulaires (type 4). Le programme ne traite pas directement les primitives (type 1) qui doivent être décomposées (Inlined) par un programme tel que LDraw Design Pad (LDDP).

Mettez ce fichier dans le dossier d'installation de Edger, que vous avez mis par exemple dans c:\lego\edger.

Ouvrez une fenêtre "Invite de commandes" (ex fenêtre DOS), puis allez dans le dossier où est installé Edger. Pour cela tapez la commande cd c:\lego\edger, ou bien si vous n'êtes pas un adepte des commandes DOS, tapez seulement cd suivi d'un espace, puis à partir de l'explorateur Windows positionné sur le dossier d'installation de Edger, faites glisser l'icône de dossier se trouvant dans la barre d'adresse, dans la fenêtre "Invite de commandes" puis sélectionnez cette fenêtre et validez avec la touche entrée. Cela est plus facile, surtout si le dossier d'installation contient des noms longs.

Tapez la commande :
java edger fichier_entree.dat > fichier_sortie.dat
exemple :
java edger test.dat > edger_result.dat

Dans le fichier en sortie, vous devez retrouver une ligne de commentaire :
0 WRITE Unmatched edges
Suivi éventuellement des lignes de bords extérieurs (type 2) de couleur 15, puis après une nouvelle ligne de commentaire :
0 WRITE Conditional edges
Les lignes conditionnelles (type 5) des bords contigus.

Il suffit d'insérer les lignes contenues dans le fichier résultat dans votre fichier de pièce pour terminer l'opération. Avec ou sans les lignes blanches de type 1 suivant les besoins.

 

Intégration de Edger dans LDraw Design Pad

Il est possible de lancer Edger à partir de LDraw Design Pad en créant un fichier edger.bat contenant :
   cd c:\lego\edger
   java edger %1 > %2\edger_result.dat
   copy %1 + %2\edger_result.dat %2\edger_result_plus.dat

Nota : La troisième ligne du fichier est optionnelle, et le fichier doit être placé dans le dossier indiqué dans le champ "Path & Filename:" de la boite de dialogue ci-dessous. Dans cet exemple le dossier des Plugins de LDDP.

Puis de configurer LDDP comme suit :

Pour pouvoir traiter dans LDDP le fichier courant (en entier).

Une fois configuré, vous pouvez lancer Edger dans LDDP en allant dans le menu Process/External Programs/User Defined Program/Edger, ou en sélectionnant le programme en cliquant sur l'icone "User Defined Program" de la barre d'outils "External Programs".

Le résultat du traitement se trouve dans le fichier edger_result.dat, placé dans le même dossier que le fichier d'origine. La troisième ligne du fichier edger.bat permet de créer également le fichier edger_result_plus.dat contenant le fichier d'origine "plus" les lignes crées par Edger.

 

Intégration dans LETGUI

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

 

Tutoriel de correction de lignes de bords utilisant Edger

Voici un exemple utilisant Edger, extrait d'un tutoriel fait par Philo sur le forum Lugnet dans le message 15935, posté le 8 janvier 2009.

Cet exemple explique comment valider les lignes de bords de la pièce 30135 "Minifig Hat Kepi" en provenance du LEGO Universe Team.

Les pièces LDraw converties par LEGO Universe Team souffrent de mauvaises lignes de bords et de mauvaises lignes conditionnelles. L'outil de conversion utilise uniquement l'angle entre les facettes pour décider si une ligne normale ou une ligne conditionnelle doit être crée. Avec une valeur bien choisie cet algorithme donne un bon, mais pas parfait, résultat. Quelques lignes de bord sont crées là où il n'en faudrait pas (elles sont faciles à supprimer), mais quelques-unes sont manquantes, et les créer manuellement est plus compliqué !

Voici un processus pratique pour résoudre ce problème.

Voici la pièce telle que reçue de LEGO Universe Team :

La première étape sera de traiter le fichier avec l'utilitaire Edger de Lee Gaiteri pour créer les lignes conditionnelles manquantes (le processus de conversion ne crée pas de lignes conditionnelles à la jonction de faces concaves).

Ces lignes conditionnelles sont ensuite ajoutées à la fin du fichier de la pièce.

A l'aide de votre éditeur de texte favori, changez toutes les occurrences 5 24 en début de ligne par 2 4. Cela transforme toutes les lignes conditionnelles en lignes ordinaires rouges (les données supplémentaires des points de contrôle des lignes conditionnelles sont ignorées à l'affichage).

Alors commence un fastidieux nettoyage manuel. Chargez la pièce dans MLCad, et changez la couleur des lignes erronées. Mettez en couleur "Edge color" (24) les lignes devant être normales, et en rouge (4) celles devant rester conditionnelles.
Nota : Il est plus facile de sélectionner les lignes si elles sont affichées avec une épaisseur plus grande (Réglages / Général / Changer... / Onglet Rendu / et sélectionnez 2 ou 3 dans le menu déroulant "Epaisseur des lignes").

Lorsque vous avez fini, testez le résultat avec LDView :

Si tout est correct, dans MLCad, sélectionnez un élément rouge à la souris, puis tous les autres éléments rouges en utilisant le bouton "Sélectionner la même couleur" (ou le menu Edition / Sélectionner / Même couleur) et supprimez les :

Traitez encore une fois le fichier résultat avec Edger pour recréer les lignes conditionnelles et les ajouter dans le fichier final de la pièce.

 

Droits et Copyright

Le programme Edger décrit dans ce tutoriel est de (c) Lee Gaiteri.

Merci à Philo de m'avoir fourni ce programme, qui n'est plus disponible sur le net actuellement.

Versions du programme

Cette page

Conception de ce tutoriel : J.C. Tchang.

Nota : Cette page se trouve reprise sur le site de Philo en français et en anglais.

L'origine en anglais du chapitre "Tutoriel de correction de lignes de bords" est de (c) Philo. Traduction libre : J.C. Tchang.