Créer de nouvelles pièces LDraw

Mise à jour de la page : 26 décembre 2016.
    Page d'accueil J.C. Tchang (photo : Set 700/1 de 1950)
J.C. Tchang
 

Ce tutoriel est basé sur mes expériences en création de pièces LDraw (et surtout les exemples de ceux qui m'ont précédé dans cet exercice). Toutes les pièces que j'ai faites ne sont pas parfaites.

Ce tutoriel montre les méthodes et utilitaires que j'utilise pour les créer, mais naturellement d'autres méthodes peuvent exister. De même, il existe surement d'autres programmes ou utilitaires que je n'utilise pas. Cela ne préjuge pas de leur qualité, mais simplement que ceux que j'utilise ont répondu à chacun de mes besoins jusqu'à aujourd'hui. Si vous pensez que je passe à coté de certains, faites le moi savoir :-). Ce tutoriel est malgré tout l'occasion de passer en revue une majorité d'utilitaires.

Créer une pièce LDraw c'est quoi ?
A partir d'une pièce réelle....
Il s'agit de créer un fichier texte au format LDraw, décrivant par des instructions ou commandes la manière de la modéliser...
Il est alors possible de la visualiser dans un programme de rendu comme LDView, ou POV-Ray.
Et, de l'utiliser dans un modèle comportant de nombreuses pièces, avec un programme de création de modèles tels que LEdit (sous DOS), MLCad, LeoCad, SR 3D Builder, ... (sur PC Windows), MLCad (également sous Linux), ou BrickDraw3D, Bricksmith, ... (sur Mac).

 

Navigation rapide

 

Pourquoi créer ou modifier des pièces LDraw ?

Il y a un certain nombre de raisons qui pousse à créer de nouvelles pièces LDraw :

Il est également parfois utile de reprendre une pièce existante :

 

Pièces disponibles sur LDraw.org

Le site de référence pour toutes les pièces Lego au format LDraw est : http://www.ldraw.org/, sinon pour les pièces personnelles mettez-les sur votre propre "site perso".

Ce site possède deux bibliothèques de pièces : Les pièces officielles, validées et les pièces Non Officielles (Unofficial).

 

Pièces existantes NON disponibles sur LDraw.org

Le site LDraw.org ne référence que les pièces Lego au format LDraw. Il n'y a pas, à ma connaissance, de site référençant d'autres pièces au format LDraw Non Lego.

Vous pouvez trouver sur d'autres sites certaines de ces pièces :

Vous pouvez aussi trouver sur d'autres sites certaines pièces Lego non référencées par LDraw.org :

Nota : Je ne signale ces sites que pour information, et ils appartiennent à leurs ayants droits respectifs. De même pour le Copyright des sociétés produisant ou commercialisant ces pièces en quelque lieu que ce soit ... dans l'univers ... , soyons large :-).

Quelle pièce créer ?

La pièce à créer en priorité est certainement celle qui vous manque pour votre projet... :-), puis pour être altruiste de faire d’autres pièces réclamées dans les forums sur Internet.

En fonction de ses goûts personnels on peut choisir de faire des pièces anciennes, ou au contraire des pièces qui viennent de sortir, et combleront l'attente d'un plus grand nombre d'utilisateurs.

C'est aussi à l'occasion d'un achat de faire la pièce, le motif ou l'autocollant qui manque pour réaliser une reproduction virtuelle d'un Set existant.

Mais, il faut aussi choisir en fonction de son niveau d'utilisation des programmes de création. Lorsqu'on débute, il faut créer des pièces simples pour apprendre en s'amusant, et ne pas être découragé à la moindre difficulté.

Il est bon également de faire profiter la communauté du travail fourni pour créer la pièce qui vous manquait. Elle manque sûrement à beaucoup d'autres. Ce serait dommage de ne pas leur en faire profiter.

 

Avant de créer une nouvelle pièce LDraw

Faut-il avoir en main une vraie pièce pour la modéliser ? Oui de préférence, car cela est une aide précieuse, mais il est possible d'en modéliser une que vous n'avez pas à disposition. Quelques bonnes photos trouvées sur Internet peuvent parfois suffire, si l'on connaît son utilisation, et donc ses proportions. J'ai modélisé par exemple les pièces Mursten sans en posséder une seule, car elles sont anciennes et très rares, mais cela peut générer des erreurs ou des approximations.

Avant de se lancer dans la modélisation, il est préférable de :

A cette étape, et au cours de la création, il peut être intéressant de dessiner sur une feuille de papier quadrillée ou non, partiellement, ou en totalité, la pièce à créer, pour noter les valeurs des points caractéristiques. Cela est une aide pour donner les bonnes valeurs aux primitives qui vont être insérées.

Exemple de dessins avec positionnement de points caractéristiques pour la pièce 57792 :
Relevé général. Relevé de définition d'une nervure interne.

Nota : Voir le chapitre Mesurer et calculer pour connaître les unités de mesure à employer et l'unité de modélisation (LDU).

LDraw Part Search Services

Outil de recherche de pièces sélectionnées sur des bases de données Internet Bricklink, LDraw Parts Tracker (PT), Lugnet Partsref et Peeron. Fonctionne sur Mac.

Voir : LDraw Part Search Services (en Anglais).

 

Les différents fichiers LDraw

Tous les fichiers LDraw sont de simples fichiers texte, ayant une structure commune, et des méta-commandes particulières suivant les cas.

Voir la page de référence concernant les différents fichiers de pièces LDraw : FAQ for LDraw file types (en Anglais).

Les principaux types de fichiers LDraw

Les Modèles (assemblages de pièces) :

Les Pièces (Part) et parties de pièces avec l'extension .DAT :

Les Primitives avec l'extension .DAT :

Le site LDraw.org classe les pièces et primitives en deux catégories :

 

Le format de fichier LDraw

La page de référence sur le format des fichiers LDraw est :

Il existe d'autres pages de référence, plus particulières :

Page en français :

 

Les primitives

La page de référence sur les primitives :

Page en français :

Nota : De nouvelles primitives pouvant apparaître, je vous conseille, si vous avez chargé toutes les pièces "Unofficial", de fouiller (par date de création) les dossiers "/P" et /P/48" de LDraw pour découvrir les nouvelles qui peuvent vous servir.

Visualisation des primitives

Il est possible de visualiser les primitives, une par une, avec LDView.

Pour afficher toutes les primitives du dossier "P" dans MLCad, il faut renommer les dossiers de LDraw "PARTS" en "PARTS.ref" et "P" en "PARTS", puis générer un nouveau fichier "Parts.lst" avec mklist.exe. Avant d'ouvrir MLCad renommer les dossiers modifiés avec leur nom d'origine. Pour afficher les pièces et les primitives sous MLCad fusionner le contenu de "Parts.old" dans "Parts.lst".

Une autre solution plus récente pour MLCad est d'utiliser LDMakeList (ex mklist2 ou LDList) : avec l'option -m. Voir : Maintenance du fichier Parts.lst avec LDMakeList.exe.
Nota : Avec la version testée (v0.9.3) les primitives sont mélangées avec les pièces suivant leur désignation, et les primives du dossier 48 (haute résolution) ne sont pas traitées.
Nota : Avec la version testée v2.14 les primitives sont regroupées dans l'arborescence "Other Parts / P / Primitive :" et "Other Parts / H / Hi-res primitive :"

Le modeleur BrickFoundry permet d'afficher l'arborescence des primitives :

LDlister


Le programme LDlister est prévu pour permettre l'affichage des primitives sous MLCad, mais semble ne plus fonctionner depuis l'apparition des caractères " dans la désignation des pièces.

 

Pour créer une nouvelle pièce LDraw

Les pages de référence :

Créer une pièce LDraw, c'est créer un fichier au format LDraw, constitué de commandes de base et de primitives, définissant l'enveloppe externe d'une pièce facettisée, et ayant ces facettes limitées par des lignes (conditionnelles ou non).

Page en français :

Une bonne source d'information sur la façon de créer une nouvelle pièce est de regarder le fichier d'une pièce similaire dans la bibliothèque de pièces, tout en sachant qu'elle n'est pas toujours au goût du jour.

 

Les outils de base

Voici quelques programmes, ou outils de base, servant à créer des fichiers LDraw. Je le répète, il s'agit des programmes que j'utilise, prioritairement. Cela ne veut pas dire que ce soit la seule méthode.

MLCad

A la base ce programme est un modeleur, et n'est pas le plus apte à priori pour créer des pièces LDraw, mais il possède un certain nombre de commandes qui facilite le travail de conception et de modélisation.

J'utilise principalement ce programme pour :

Deux boîtes de dialogue sont très utiles (en création de pièces) :

Un défaut de ce programme (il en faut bien), est de ne pas avoir d'annulation des commandes (la commande "Edition / Défaire" n'est pas opérationnelle). Pour contourner cela, copier l'entité ou le groupe d'entités que vous manipulez. Il suffit de les détruire si le résultat escompté n'est pas correct, et est devenu irréversible. Une autre façon de contourner est de revenir à la dernière sauvegarde avec la commande "Fichier / Retourner". Nota : La version MLCad v3.40 apporte enfin la commende Défaire, mais pas le Refaire.

Attention, la boite de dialogue "Position & orientation" ne fonctionne pas correctement en version MLCad v3.30. Elle est inutilisable pour créer des pièces LDraw. Pour cette raison, il est préférable de rester en version v3.20, ou attendre une prochaine version. Nota : La version MLCad v3.40 corrige partiellement cette boite de dialogue, et peut être utilisée.

Pour plus de renseignements sur l'utilisation de ce programme, voir les : Pages de l'Aide MLCad en Français.

LDraw Design Pad (LDDP)

J'utilise principalement de programme pour :

Ce programme permet également de lui adjoindre des programmes complémentaires (Plugins) non repris ailleurs.

Un de ces programmes complémentaires, pouvant être utile à la création de pièces, est SyncEdit, qui permet de déplacer un point par ses coordonnées X, Y, Z, en même temps sur toutes les faces et lignes qui ont un point à cette coordonnée.

Pour plus de renseignements, voir la page LDraw Design Pad (LDDP).

LDView

J'utilise principalement de programme pour :

Pour plus de renseignements, voir la page LDView.

Comment utiliser ces programmes conjointement

MLCad et LDView :

Les 3 programmes ensemble :

Nota : Pour utiliser les 3 programmes ensemble, il est préférable d'avoir un grand écran, ou comme dans mon cas une configuration avec 2 écrans.

Nota : Le "polling" ou rafraîchissement du fichier temporaire de LDDP nécessite d'écrire automatiquement et très souvent ce fichier (tous les 1, 2 ou 5 secondes, ou même 0.5 seconde ou moins), il vaut mieux éviter de faire fonctionner ce programme en créant son fichier temporaire sur une clef USB, ou un disque SSD (à mémoire Flash). Suivant les modèles ce fichier temporaire pourrait détruire la zone d'écriture en quelques heures, ou quelques dizaines d'heures (technologie 2008).

 

Autres outils de base

En dehors des 3 programmes présentés ci-dessus, j'utilise d'autres programmes généraux (en dehors des programmes spécialisés que nous allons voir plus loin) de façon plus épisodiques ou spécifiques.

L3Lab

Ce programme peut être utilisé comme un visualisateur de pièces comme LDView. En particulier pour visualiser le sens des faces (menu Test / mytest6). Son principal inconvénient (pour moi), c'est de ne pas disposer d'un Zoom interactif.

Voir la page L3Lab pour plus d'informations sur son utilisation.

LDraw Add-On (LDAO)

Le programme LDraw Add-On, ou LDAO est un programme qui peut être utilisé comme un éditeur de fichier comme LDDP, mais qui semble un peu dépassé aujourd'hui.

Mais, ce programme possède des fonctions qui peuvent toujours être intéressantes, comme placer automatiquement une primitive (ligne de type 1 en général) suivant un maillage répétitif en X, Y, et Z (Dans l'éditeur de fichier, menu "Tools / Gridder"), ou une génération circulaire avec "Tools / Lathe".

Pour avoir un aperçu des fonctionnalités de ce programme, voir la page : LDraw Add-On (LDAO).

Emacs et LDraw-mode

Emacs est un éditeur de texte du monde libre et LDraw-mode.el un ajout de Fredrik Glöckner donnant des fonctionnalités d'édition de fichiers LDraw en colorant les différents paramètres des lignes, en décomposant les primitives, permettant la recherche de pièce, l'insertion de primitive RING, la création de surfaces entre deux courbes, ou en aidant à la création d'éléments souples suivant une courbe de Bézier.


Exemple d'utilisation.

Pour plus d'informations, voir le site : LDraw-mode for Emacs (en Anglais).

Notepad

Ce programme, qui est l'éditeur de texte de base de Windows, est mon éditeur par défaut de tous les fichiers texte (dont les fichiers .DAT, .LDR, et .MPD au format LDraw).

S'il est "rustique", il a pour moi l'avantage de ne rien interpréter, et de visualiser exactement ce qu'il y a dans le fichier. Je passe toujours par ce programme lorsque je reprends un fichier que je n'ai pas créé, et dont la validité n'est pas assurée.

Certaines personnes préfèrent utiliser Wordpad, un peu plus convivial, et moins limité. Ils ont sans doute raison. :-)
De même, il existe de nombreux autres puissants éditeurs de texte.

Voir également Notepad2, de Florian Balmer ( http://www.flos-freeware.ch ) qui permet de visualiser facilement les caractères <CR><LF> de fin de ligne (menu : "View / Show Line Endings").

Ici un caractère <CR> manquant sur la pièce officielle 3062b.

On peut changer le type de codage de tout le fichier avec le menu "File / Line Endings / Windows (CR+LF)", et passer ainsi d'un format Unix à un Format Windows.

Nota : Depuis sa version 3.0.0 le programme DATHeader (voir plus bas) corrige automatiquement la présence des caractères <CR><LF>.

TextWrangler LDraw Kit

TextWrangler LDraw Kit est une collection de scripts et outils pour l'éditeur de texte et de code TextWrangler, qui fonctionne sur Mac OS X. Cela permet d'ajouter à cet éditeur des fonctionnalités pour travailler avec les fichiers LDraw.

Voir : http://anoved.net/software/ldraw/textwrangler-ldraw-kit/ (en Anglais).

FreeCommander

Ce programme du monde libre de Marek Jasinski, remplace avantageusement l'explorateur de Windows. Dans le cadre des pièces LDraw, je l'utilise pour faire une recherche dans les fichiers de pièces .DAT (l'explorateur Windows ne le fait pas dans ce type de fichier). C'est une façon de trouver dans son dossier "local" toutes les pièces qui emploient une primitive donnée, ou font partie d'une catégorie ou mot-clef.

LOCAD

Ce projet de Scott Wardlaw, démarré en 2011, se voulait être éditeur de pièce LDraw, écrit en java avec Netbeans. Trois versions ont été publiées (v0.0, v0.3 et v0.7). Son développement ne semble pas pour l'instant poursuivi.

A suivre sur : Re: LDPartEditor - Planning stage started (en Anglais).

LDForge

Ce projet de Santeri Piippo, publié à partir de 05-2013, se veut également un outil de création et édition 3D de pièce LDraw. Il permet également la génération de primitives circulaires.

Pré-version du programme :

Projet à suivre sur : LDForge v0.2.1 ou LDForge v0.3 (en Anglais).

Voir le manuel de LDForge, pour plus d'informations sur son utilisation.

Bilan de mes tests de la version v0.3 :

Nota : Je ne suis peut-être pas objectif, car mes tests ne sont pas toujours en accord avec mes habitudes prises avec un autre programme.

Au final le programme n'a pas évolué entre 09-2014 et 04-2016 et a été officiellement abandonné par son auteur à cette date.

LD Part Editor

Programme de Nils Schmidt dont la publication est prévu pour Noël 2014. Ce projet se veut être un outil de création et d'édition de pièce LDraw. Il doit être portable (écrit en java). J'attends avec impatiente sa publication :-).

Pré-version du programme :

A suivre sur : LDPartEditor - Planning stage started (en Anglais).

Ce programme a été enfin publié le 11 avril 2015. Il est encore en version Beta mais apporte beaucoup de fonctionnalités.

Voir le manuel de LD Part Editor, pour plus d'informations sur son utilisation.

LDCad

Ce programme est en réalité un éditeur de modèle mais permet d'éditer les pièces. Voir : LDCad : Edition de pièce.

 

Programmes de CAO et conversion

Pour créer la forme des pièces, il peut être possible d'utiliser un outil de professionnel, comme les logiciels de CAO (Conception Assistée par Ordinateur).
Soit il existe dans ce logiciel une sortie au format LDraw (avec "Sauvegarder Sous...", ou "Save As..."), soit il existe un convertisseur externe, lisant le format natif du logiciel, ou un autre format standard de sortie du logiciel, et convertissant ces données au format LDraw.

Exemple de programme : AC3D (exportation en .LDR).

Exemples de convertisseurs : 3DWin (Shareware), 3D Object Converter, MAX2DAT (convertit à partir du format 3DSMAX), Su2LDraw (convertit à partir du format Google SketchUp), stl2dat (convertit à partir du format STL prévu pour la stéréolithographie, en provenance de Solidworks, Autocad, Rhino 3D, etc...).

Mais, cette méthode a un inconvénient majeur. Elle n'utilise généralement pas la notion de "primitive", et en conséquence, les fichiers peuvent prendre des tailles importantes.

C'est pour cette raison que je n'ai pas cherché à les utiliser dans ce but, même si j'en ai utilisé de nombreux par le passé. Je n'ai donc pas fait d'expérience d'exportation vers le format LDraw. Ce peut être, malgré tout, un moyen plus facile, avec les puissants outils de ces logiciels, de créer les formes de la pièce. Puis, ensuite, de remplacer ces formes par des primitives.

Voir à ce sujet le chapitre Reprendre une pièce LEGO Universe Team, qui donne les actions à mener pour convertir un fichier brut provenant d'un logiciel de CAO en fichier utilisable.

Conversion avec stl2dat

Les choses évoluant, stl2dat sait reconnaitre les cylindres et les bords (primitives n-4cyli.dat et n-4edge.dat), ce qui facilite grandement le travail.

Nota : Ce programme est interfacé avec LETGUI, ce qui facilite son utilisation sous Windows.

Voir le manuel du programme : stl2dat.

Capture de maillage LDD

Cette méthode est basée sur le message de Philo sur LUGNET : Converting LDD parts to LDraw, lui même dérivant du message de Superkalle sur Eurobricks : Extract LDD geometries with 3D Screenprint 3DVia tool from Dassault Systems.

Voici la méthode :

Partie capture :

Partie conversion :

Partie exploitation :

Nota : Voir ci-dessous l'utilitaire 3dxml2dat qui automatise en partie la procédure.

Nota : Le même mécanisme pourrait être utilisé pour d'autres produits possédant une base de données de pièces comme LEGO Universe.

Nota : Vous pouvez télécharger des fichiers de maillage LDD sur le site : Digital Bricks, en sélectionnant LDraw / Not in LDraw (en Anglais).

3dxml2dat

Cet utilitaire, en ligne de commande, complète la méthode de capture de maillage LDD dans la partie conversion, mise à l'échelle, et création des lignes conditionnelles du chapitre précédent. Il écrit au format LDraw la partie du code 3dxml de la section <Positions>.

Voir le message (en Anglais) de Rolf Osterthun sur le forum LDraw.org : 3dxml2dat.

G2Ldr

Ce programme est un utilitaire qui permet de convertir les fichiers de pièces de la base de données de LDD (db.lif) en fichiers LDraw. Cela nécessite l'utilisation de programmes permettant d'extraire ces fichiers de la base, comme ExtractLIFF ou LIF_Extractor, mais son utilisation est déconseillée car cela peut contrevenir aux règles d'usage de LDD.

Selector

Cet utilitaire, en ligne de commande, permet de sélectionner plus facilement les faces adjacentes d'un maillage complexe dans un fichier LDraw.

Voir son mode d'emploi sur ma page : Selector.

Meshmixer

Ce programme gratuit de Autodesk permet d'éditer un maillage de pièce patatoïdale, c'est à dire de pièce ne pouvant pas être générée à partir de figure géométrique simple (cube, cylindre, sphère). C'est le cas de plus en plus de nouvelles pièces aux formes complexes sans faces planes (chevelure et têtes spéciales de Minifig, têtes, corps et jambes de figure Friends, etc.

Il est possible d'échanger avec ce programme des données LDraw par l'intermédiaire du format .stl en utilisant LDView (LDraw -> stl) et stl2dat (stl -> LDraw).

Ce programme peut également importer des fichiers au format .obj, .ply et .amf.

Voir : Tutoriel : Editer des pièces LDraw avec Meshmixer.

 

Mesurer et calculer

Mesurer

Pour avoir les dimensions générales de la pièce, il faut la mesurer, avec une règle, un pied à coulisse, etc... Des outils de mesure spéciaux en unités LDraw, peuvent être créés et utilisés comme décrit dans la page : Outils de mesure LDraw.

Ces mesures doivent être complétées par une comparaison avec d'autres pièces similaires.

Nota : C'est à l'occasion de ces mesures qu'on peut compléter le dessin sur papier avec les bonnes valeurs, avant de créer le fichier lui même. (Voir le chapitre Avant de créer une nouvelle pièce LDraw).

Mesurer avec "carcan"

Une autre façon de faire, si vous avez la pièce réelle, est de la placer dans un "carcan" de briques, ..., pour visualiser ses dimensions et proportions. Faire de même dans MLCad.

Exemple de mesure des points caractéristiques d'une courbe complexe de la pièce 54090, avec une jauge de profondeur et en s'appuyant sur un "carcan" de briques pour positionner les points (ici le bord courbe) :

Avec création des lignes caractéristiques sous MLCad (ici en rouge), et recherche des courbes pouvant s'ajuster aux points, comme 1/4 de cercle déformé (gris), parabole (jaune), partie de parabole (rose) ou courbe de pièce voisine de référence (vert) :

Nota : Si le nombre de points est important, il est préférable d'utiliser une méthode plus automatique comme celle de Philo décrite au chapitre NXT 3D scanner.

Mesurer avec profil

Une troisième possibilité, pour les pièces aux formes complexes, est de scanner la pièce dans une ou plusieurs directions, puis avec le programme Quad2Dat (voir plus bas) d'en faire des profils, qui vont servir à construire la pièce.

Exemple de profil créé avec Quad2dat, pour la pièce 4503, ayant servi pour définir les points caractéristiques :

Calculer avec un tableur

A partir des mesures principales, il est possible de calculer des points complémentaires de la pièce avec un tableur, tel que Excel ou Works, tableurs de Microsoft, ou en version gratuite avec OpenOffice.org Calc.

Exemple de calcul de points avec un tableur, pour la pièce 4503 :

Calculer des angles

Grâce aux programmes Lcad Calculator avec son onglet Triangle rectangle, ou LDCalc et L'onglet : Triangle, il est possible de calculer des angles à partir des côtés d'un triangle rectangle.

Une autre possibilité, utilisée par Philo pour déterminer la position des noeuds de la pièce 32090, est d'utiliser le Mode Connection Solver de SR 3D Builder. Dans cet exemple, chaque brin extérieur à une longueur en nombre de trous de poutre exact, mais les angles de certaines poutres et la position du noeud de gauche sont inconnus :
 
A gauche l'ébauche de la pièce, où la position des poutres vertes et rouges ont été déterminées par "Connection Solver". et à droite la pièce finale faite à partir de cela par J.C. Tchang.

La méthode précédente pourrait être adaptée en utilisant le programme LEGO Digital Designer (LDD) et son Utilisation de l'outil aligne charnière (Hinge Align tool). Le résultat sera exporté au format LDraw.

Unité LDraw (LDU)


Nota : Cette image provient du site : Brickwiki.

Les mesures faites sur la pièce en mm ou en pouces doivent être converties en LDU, c'est-à-dire en unités LDraw (LDraw Unit). Vous pouvez utiliser votre tableur préféré, ou des utilitaires qui font cela très bien : Lcad Calculator ou LDCalc. Voir également la conversion en ligne avec LEGO Unit Converter.

Dans la pratique une brique 1x1 fait environ 8 mm de large et est modélisée avec 20 unités LDU. Soit 1 LDU vaut à peu près 0,4 mm. Les Anglo-saxons préfèrent utiliser des valeurs en pouces et 1 LDU vaut 1/64 de pouce soit 0,39687 mm. Je ne rentrerais pas dans la polémique qui existe pour savoir si les pièces Lego étaient à l'origine calculées en pouces ou en millimètres.

Pour aller un peu plus loin sur la valeur de 1 LDU, j'ai aligné 6 briques 2x10 sur des plaques de base, plus 2 briques en extrémités pour tenir compte des jeux inter-briques. En mesurant cette distance avec une règle précise j'obtiens une valeur de 479,6 mm ou 479,7 mm (0.6 ou 0.7 estimé à l'oeil) pour 60 largeurs de brique élémentaire. Ce qui fait :

En conclusion, les mesures peuvent être arrondies, et les dimensions des pièces complexes ou positions des points caractéristiques, doivent être comparées avec un assemblage de briques standards pour les valider.

Généralement, les parties de pièces qui ont une taille inférieure à 1 LDU ne sont pas modélisées, mais c’est à voir au cas par cas, en raison de l'évolution de la puissance de calcul des ordinateurs.

Lcad Calculator

Voir le mode d'emploi du programme Lcad Calculator avec son onglet Conversions d'unités, pour convertir des valeurs entre les unités mm / pouce / LDU.
Ce programme utilise le taux de conversion de 0,39687 mm pour 1 LDU.

J'utilise aussi ce programme (onglet : 2 Lines) pour calculer l'intersection d'une ligne avec une portion de cercle décomposée en lignes. Les 6 valeurs de chaque ligne sont introduites par copier/coller en mode "Multiple point entry".

J'utilise également ce programme (onglet : Triangle / Line) pour calculer le 4ème point d'un plan connaissant les 3 premiers points et une ligne sur lequel se trouve le 4ème point. Cela permet de faire l'inverse de PlanarCheck, qui découpe en 2 triangles, lorsque l'on sait que la face doit être plane.

LDCalc

Ce programme est équivalent à Lcad Calculator, mais actuellement (en version 0.1.0.5) ne donne pas toutes les fonctionnalités du programme précédent, en particulier pour insérer les triplets de valeurs par copier/coller, ni le calcul de l'intersection d'une ligne et d'un triangle.

Par contre, il utilise le taux de conversion de 0,4 mm pour 1 LDU par défaut, et ce taux peut être modifié si besoin.

Vous pouvez voir la manuel en Français de ce programme sur ma page LDCalc.

GeoGebra

Ce programme ne fait pas partie des outils LDraw, mais c'est un excellent programme d'apprentissage de la géométrie et de l'algèbre.

Pour notre usage, il est parfait pour faire par exemple des calculs de géométrie, comme retrouver le centre d'un cercle passant par 3 points, la bissectrice d'un angle, ou l'intersection de deux lignes.

Voir le site : GeoGebra.

ang2point.pl

Cet utilitaire écrit en Perl par Tim Gould permet de calculer des points sur un cercle LDraw en fonction de leurs positions angulaires.

Voir son mode d'emploi sur ma page Usage du script ang2point.pl.

CyliPoints.pl

Cet utilitaire écrit en Perl par Tim Gould permet de calculer les paramètres (matrice de transformation) d'une primitive cylindrique (entre autre) connaissant son point de départ, son point d'arrivée et son rayon.

Voir son mode d'emploi sur ma page Usage du script CyliPoints.pl.

 

Exemple de méthode pour changer d'échelle une partie de la pièce avec MLCad

Nota : Cette méthode générale fonctionne également sans passer par un sous fichier, mais en sélectionnant directement plusieurs lignes du fichier actif.

 

Décomposer le problème

Dans un premier temps, nous allons nous intéresser à la partie de la construction donnant les formes générales, sans nous préoccuper d'un motif éventuel, des lignes conditionnelles, du sens des faces, etc...

Et, dans cette partie le plus important est de récupérer le maximum de choses.

 

Parties non modélisées

Certaines parties de pièces ne sont pas à modéliser, car ces parties sont considérées comme inutiles, et cela permet d'abord de simplifier la modélisation, et ensuite d'accélérer la vitesse d'affichage de la pièce dans les programmes de rendu.

Parties invisibles

Lorsque la pièce est une pièce moulée en plusieurs parties, et assemblée par collage, ou sertissage (donc non démontable), il n'est pas utile de modéliser les parties internes non visibles. Ce peut être le cas des parties internes des moteurs, des mécanismes à friction, des queues d'avion moulées en 2 parties, etc...

Par contre, les pièces démontables (assemblage par vis ou clipsage), et les pièces articulées doivent avoir de préférence un modèle par pièce élémentaire.

Parties de très petite taille

Les éléments de très petite taille, non fondamentaux de la représentation de la pièce ne sont pas modélisés. Cela reste malgré tout à l'appréciation et au bon vouloir des auteurs, et des vérificateurs. C'est le cas des petits rayons sur les arêtes, des pentes de démoulage, mais aussi de marques du plan de joint et des éjecteurs des moules.

Dans l'exemple suivant la partie cylindrique du nez conique de la pièce 57792 n'a pas été modélisé :

Il fait environ 1/2 mm de haut (environ 1 LDU) et quelques dizièmes de profondeur, et reste peu visible par rapport au cône de 68 LDU de haut.

Inscriptions de moulage

Les inscriptions de moulage, sont des inscriptions gravées dans le moule, donnant le copyright (© LEGO), le numéro du moule (servant de numéro de pièce LDraw), et un numéro d'ordre des pièces dans le moule lorsqu'elles sont moulées en quantité du même type (permet de situer un défaut éventuel lors de la fabrication).

Sur la 2ème image (pièce 4497), l'inscription de copyright est moulé sur une partie embossée plane, non modélisée sur la pièce LDraw.

De même, le logo LEGO sur le dessus des tenons n'est pas modélisé, mais cela peut être simulé par certains programmes de rendu, par substitution des primitives de tenons.

Dégagements de moulage

Sur la face externe de cette pièce 57792 : Pièce 57792 sur Peeron.com,
il y a un dégagement de moulage :

Ce creux n'est pas modélisé sur la pièce LDraw, car il est caché par un autocollant, dans le set 7990 "Cement Mixer". Par contre s'il s'avérait que ce dégagement sert de point d'articulation dans un autre usage, il faudrait le modéliser.

Allégement des pièces

Ces parties n'ont aucune fonction dans l'utilisation des pièces, mais seulement une fonction d'allègement, pour gagner un peu de matière au moulage, et donc avoir un gain sur le prix de revient. (S'il est minime sur chaque pièce, cela devient important sur la quantité).

Au fond de certaines pièces, dont les briques et plates, se trouve des creux cylindriques sous chaque tenon. De même (photo de droite) les pièces récentes ont un trou cylindrique sur les plots inter-tenons en dessous des pièces.

Les briques (relativement récentes) ont également les parois externes plus minces, laissant apparaitre de petites nervures à l'intérieur, au droit des tenons. Ces petites nervures ne sont pas (encore ?) modélisées, et les parois sont modélisées plus épaisses, en les englobant.

Dans l'exemple suivant de la pièce 712 ancienne version, j'ai modélisé "pour voir" les creux cylindriques sous chaque tenon (N'existe pas sur LDraw.org).

Pièces haute définition

Mais, ce qui vient d'être dit dans ce chapitre n'est pas inéluctable. Il est tout à fait possible de créer des pièces contenant le maximum d'éléments ajoutant à leur réalisme. Voir ma page : Pièces LDraw de Haute Définition.

 

Cohérence des formes

La forme et la dimension des pièces doivent être au plus proches de la forme réelle, mais plus important doivent être homogènes avec les pièces LDraw existantes similaires. C'est à dire que les pièces similaires assemblées fassent continuité de forme et de dimension.

Par exemple, la partie verticale à la base des pièces pentées LDraw (Slope, Wedge, ...) fait 4 LDU de haut, alors que sur les pièces LDD elle fait 5 LDU. La hauteur réelle est plus proche de 5 LDU, mais retravailler toutes ces pièces LDraw existantes serait difficile. Donc, pour obtenir des pièces LDraw homogènes, il faut continuer à utiliser une hauteur de 4 LDU.

 

Utilisation des sous-fichiers

Lorsque la pièce est complexe et symétrique, il est intéressant de créer un fichier ne comportant que la moitié de la pièce. Prendre le coté positif de la pièce (x+, ou z+ par exemple), car de cette façon il n'y a pas de signe devant chaque coordonnée x ou z, et cela diminue la taille du fichier.

Un second fichier, correspondant à la pièce complète, servira à insérer le premier fichier dans sa position, et dans sa position symétrique, plus si besoin les parties non symétriques.

L'utilisation des sous-fichiers est également intéressant lorsque la pièce présente une même séquence de nombreuses fois (exemple : roues, jantes, ...).

Egalement, lorsqu’une partie de la pièce sert à plusieurs pièces (exemple : le même motif sur un torse et un autocollant, même clip sur 3 pièces différentes, ...)

Par contre, lorsqu'une pièce est composée de plusieurs éléments moulés séparément, puis assemblés ou collés de façon définitive, il ne faut pas utiliser de sous-fichiers. Chaque élément est une pièce à part entière dont la désignation commence par ~ et un fichier d'assemblage xxxxC01.dat est créé pour définir la pièce assemblée.

Nota : Au cours du développement d'une pièce complexe, il peut être intéressant de multiplier le nombre de sous-fichiers, et ainsi pourvoir les agencer plus facilement dans le fichier principal. En fin de développement, il suffit de faire un "Inline Part" des sous-fichiers devenus inutiles avec LDDP, avant de terminer la pièce.

LDStructure

Cet utilitaire permet de visualiser un fichier de pièce avec les fichiers liés, c'est-à-dire les assemblages contenant cette pièce d'un côté et les sous-fichiers et primitives de l'autre.

Voir le manuel d'utilisation de LDStructure pour plus d'informations.

 

Création et suppression de sous-fichiers

Création de sous-fichiers

On peut créer les sous-fichiers comme des pièces ordinaires, puis les assembler dans un fichier parent, qui deviendra la pièce complète.

Par contre, pour créer un sous-fichier à partir de la pièce parent, on peut utiliser l'utilitaire LDDP, et sa commande "Tools / Subfile Selection".

Le programme LDForge, permet également de créer un sous-fichier à partir du fichier parent avec la commande du menu contextuel "Subfile Selection".

Décomposition de sous-fichiers

A l'inverse, au cours de la construction, il est parfois nécessaire de supprimer (décomposer) un sous-fichier, et de l'incorporer dans le fichier parent. On peut également utiliser LDDP, avec sa commande "Tools / Inline Part", qui "remonte" d'un niveau le sous-fichier. Cela fonctionne également pour décomposer les primitives, et permettre d'en supprimer une partie non nécessaire.

On peut également utiliser l'utilitaire Inliner qui fait à peu près la même chose, avec certains plus.

Le programme Edger2, en plus de son utilisation principale permet également de décomposer les sous-fichiers et primitives. De même pour SymSplitter et Unrectifier.

Les programmes LDForge et LD Part Editor, permettent également de décomposer les sous-fichiers et primitives, sur un niveau ou tous les niveaux jusqu'aux primitives de base.

MLCad peut également décomposer un modèle et tous ses sous-fichiers, y compris les primitives, en primitives de base (lignes type 2 à 5). Pour cela, il faut utiliser le menu : "Fichier / Exporter...", et dans l'onglet "Configuration de l'exportation" sélectionner "LDraw primitives" dans le champ "Format d'exportation :". Mais, en contrepartie, les primitives comme stud.dat sont également décomposées...

Voir également l'éditeur Emacs et LDraw-mode.

Voir également Unrectifier qui à la base décompose les primitives Rect, mais peut aussi décomposer toutes les primitives.

Inliner

Cet utilitaire permet de décomposer les primitives et parties de pièces (lignes de type 1), en leurs composants, de façon récursive. Son avantage est de respecter le sens des faces (si les sous-fichiers et primitives sont renseignés à ce sujet).

Son autre avantage, c'est de le faire de façon récursive sur plusieurs niveaux de sous-fichiers.

Voir le manuel d'utilisation de Inliner pour plus d'informations, y compris sur la théorie des matrices de transformations.

 

Utilisation des primitives

Le maître mot est : Utilisez les primitives, utilisez les primitives, ... Voir ma page : Référence sur les primitives LDraw, pour une vue d'ensemble des primitives existantes.

En effet, utiliser les primitives simplifie grandement le travail, car cela remplace plusieurs, et parfois de nombreuses lignes de commandes, et en conséquence, diminue la taille du fichier.

Le deuxième avantage (qui est peut-être le principal), cela permet de supprimer un certain nombre d'erreurs, ou manques, en utilisant des données valides.

Lorsque plusieurs primitives sont disponibles dans une catégorie, toujours regarder en premier si la plus complète convient, en l'orientant parfois différemment, puis descendre dans les variantes sinon.
Exemple :

Pensez également à la déformation de primitives.

Egalement essayer d'optimiser le nombre de facettes à générer :
 
Sur cette pièce 99780.dat de Magnus Forsberg le raccordement du rayon sur la face avant a été fait par une primitive 1-4cylc.dat (contenant 1-4disc.dat), et utilise la primitive 1-4chrd.dat sur la face arrière. Cette utilisation de primitive chrd (corde) permet de supprimer 2 primitives triangulaires sur la face arrière, ce qui est astucieux. Mais, cela n'a pas été repris sur la face avant !

Conversion d'entités simples en primitives

Lors de la construction, il a été utilisé des faces quadrangulaires et des lignes sur les bords séparées. Il est alors possible de convertir facilement cela en primitives rect avec l'utilitaire Rectifier.

Création de nouvelles primitives

Tout sous-fichier peut à un moment donné être considéré comme une primitive et passer du dossier "PARTS/S" au dossier "P" ou "P/48". C'est à faire lorsque l'on estime (ou que LDraw.org le considère), qu'un sous-fichier est suffisamment général et réutilisable sur de nombreuses pièces.

Il peut aussi arriver d'avoir besoin d'une primitive circulaire qui n'existe pas, en particulier sur les primitives de tores, d'anneaux, ou de cônes. Dans ce cas les programmes Prim-Gen ou PrimGen2 peuvent rendre de grands services.

LDForge peut également générer certaines primitives circulaires. Voir le chapitre Projet de primitive circulaire de son manuel.

Conseils sur l'utilisation des primitives

Avec les primitives "rect" et "box", faire attention à ne pas superposer 2 bords avec 2 primitives contiguës.

Lorsque toutes les primitives auront été placées, il sera toujours temps de compléter les bords manquants avec des lignes, et les faces manquantes avec des triangles et quadrilatères.

Dans quelques rares cas, l'utilisation de certaines primitives est déconseillée, comme les tenons (Studs) lorsqu'ils ne servent pas de tenons, car dans ce cas particulier, certains programmes de rendu ajoutent sur le dessus de chaque tenon le logo LEGO. Dans ce cas précis il faut utiliser la primitive non officielle 4-4cylc.dat. Dans d'autres cas lorsque la primitive doit être coupée, je préconise d'utiliser tout de même dans un premier temps une primitive, puis de la décomposer avec LDDP (Tools / Inline Part).

Les primitives courbes partielles en 3 dimensions (1-8cyli, 1-4cyli, 1-4con, etc.) possèdent des lignes conditionnelles à chaque extrémité. Il faut donc éviter de les accoler entre-elles (1-8cyli + 1-8cyli par exemple). Préférer la primitive de taille supérieur (1-4cyli dans l'exemple). Si cette primitive n'existe pas il vaut mieux la créer. Ce type de problème n'existe pas avec les primitives courbes en 2 dimensions qui ne comportent pas de lignes conditionnelles (disc, ndis, ring, etc.).

Primitive circulaire standard ou haute résolution ?

Pour les primitives en haute résolution (sous-dossier 48), il se pose la question de savoir à quel rayon il faut passer d'une primitive à 16 faces à une de 48 ? La pièce 2470 utilise la haute résolution pour R=27, la 2695 pour R=28, la 272 pour R=40, la 30167 pour un rayon extérieur R=25, etc. Mais la pièce 6259 de R=40 utilise une primitive de basse résolution, et la pièce 2577 de rayon R=80 n'est composée que de 8 faces pour 1/4 de tour. Le choix semble laissé à l'appréciation de l'auteur de la pièce, mais cela manque de cohérence.

En partant de l'idée arbitraire qu'une facette de "cylindre", ou bord de "cercle" ne doit pas dépasser 1 largeur de brique (20 LDU) on pourrait considérer que le rayon maximal ne devrait pas dépasser :

Pour une facettisation plus précise, ne dépassant pas la largeur de 1/2 brique (10 LDU) le rayon maximal ne devrait pas dépasser :

Primitive de tore

La création d'une primitive de section de tore est actuellement volontairement limitée par le standard LDraw pour éviter de créer un trop grand nombre de primitives.

Dans la pratique, il faut parfois cumuler deux primitives ou plus pour obtenir l'angle de balayage dont on a besoin.

Voir à ce sujet l'attention du : Champ Segments de PrimGen2 pour plus d'informations.

Pour connaître le nom de la primitive utile à un projet, voir : Tore circulaire, au chapitre : "Description du nom de ces primitives".

Une autre solution est d'utiliser PrimGen2 ou ToriCalc.

ToriCalc

Page de tableur toricalc.xls de Max Martin Richter permettant d'avoir le ratio des rayons de la primitive de tore utile à un projet.

Egalement exécutable en ligne de commande ToriCalc.exe du même auteur, puis avec interface graphique toujours du même auteur.

Voir le manuel : ToriCalc pour plus d'informations.

Primitive d'anneau et de cône

L'utilisation des primitives "rin(g)" (anneau), et "con(e)" (cône) est particulière en raison de leur caractéristique d'avoir le rayon extérieur (ou grand rayon) égal au rayon intérieur (ou petit rayon) + 1.

Pour cette raison, il faut parfois plusieurs primitives successives pour passer d'un rayon donné à un autre. Heureusement il existe un utilitaire Rings and Cones qui permet de calculer cela très facilement.

Dans certains cas, ce programme ne peut-être utilisé, car les bords extérieurs et intérieurs ne sont pas des primitives "edge" standards, ou sont décalés. Dans ces cas de figure il ne pourra être envisagé d'utiliser les primitives "ring" et "cone", et il faudra plutôt se servir d'un utilitaire tel que Edger ou Ytruder (voir plus loin).

On peut également utiliser la fonction RING de LDS pour générer des anneaux ou portions d'anneaux non standards.

On peut maintenant utiliser le Mode cercle de LDForge pour calculer en interactif l'assemblage des primitives "ring" nécessaires pour faire un anneau, et même créer en même temps les primitives qui manquent. Mais, (en version v0.3) il faut maîtriser la position des clics.

Primitive d'anneau et de cône non homologuables

Dans d'autres cas, le programme Rings and Cones ne donne pas de solution. On peut se servir de Prim-Gen pour créer des parties de pièce utilisant des primitives non homologables (pseudo-primitives), ayant un rayon intérieur non entier :

Dans ce cas de figure, il serait peut-être souhaitable de créer des noms de primitives pour pouvoir les homologuer, en prenant la valeur utile multiplié par 100 :

Attention : Ce n'est qu'une approche de ce problème, car je n'ai pas testé ce qui se passe lorsque la valeur nécessite 3 ou 4 chiffres après la virgule. En tous les cas ceci n'a rien d'officiel, ni d'officieux.

Rings and Cones

Cet utilitaire permet de calculer la succession de "Ring" (anneau), et "Cone" (cône) qui permettent de passer d'un rayon à un autre, avec l'échelle qu'il faut leur appliquer.

Voir le manuel d'utilisation de Rings and Cones (v3.1) pour plus d'informations.
Pour ceux qui sont restés à la version 2 voici l'ancien mode d'emploi : Rings and Cones (v2.0).

Assemblage de primitives de cônes

Lorsque l'on a besoin de plusieurs primitives "cone" pour faire un seul cône, il faut mettre le facteur d'échelle préconisé par le programme dans les 2 directions du plan de base. Pour la hauteur, il faut mettre une valeur proportionnelle aux facteurs d'échelle et à la hauteur H à obtenir.

Exemple :
Si S1 est le facteur d'échelle du 1er cône, et S2 celui du second :
H1 = (H * S1) / (S1 + S2)
H2 = (H * S2) / (S1 + S2)


1 4 3 0 0 0 -0.6666 0 2 0 0 0 0 2 4-4con4.dat
1 1 2.3333 0 0 0 -1.3333 0 4 0 0 0 0 4 4-4con1.dat
Extrait du fichier : 2790as01.dat

Ou, en généralisant :
Hn = (H * Sn) / (S1 + S2 + ... + Sn)

Nota : Rings and Cones (v3.1) peut faire le calcul pour vous, en sélectionnant "Shape : Cone", "Show as LDraw code", et en mettant la valeur H dans le champ "Height".

Mais, si besoin, la proportion des facteurs de hauteur peut être modifiée pour donner des cônes à angles évolutifs.

Le programme LD Part Editor, permet également d'assembler les primitives de cônes : LD Part Editor : Génération d'entités courbes imbriquées : Rings and Cones.

Raccordement de primitives circulaires

En raison de la possibilité d'augmenter la facettisation des primitives circulaires avec certains programmes de visualisation, comme LDView, il n'est pas toujours simple de raccorder les primitives circulaires ensemble (edge, disc, ndis, chrd, ring, cyli, cyls, cone, tore, sphe, ...). Voir liste complète : Primitives courbes.

L'idée de base est de raccorder en tangence les éléments courbes par d'autres éléments courbes. Mais, c'est plus facile à dire qu'à faire dans la pratique.

Dans l'exemple ci-dessus de conception d'un tenon en haute définition pour pièce 4032 (Plate 2 x 2 Round), les éléments se raccordent d'abord avec des "edges" et "cyli" comportant un nombre entier de facettes, puis on ajoute des tores du même nombre de facettes, eux même raccordés par des "cyls" lorsqu'ils ne sont pas tangents entre eux. Ensuite on ajoute des "disc" ou des "chrd" lorsque cela n'est pas possible (point de centre différent). Enfin on raccorde les "chrd" par des triangles.

En suivant cette méthode, on peut visualiser la pièce sous LDView avec une facettisation plus ou moins importante. Dans l'exemple, l'image du centre est la version standard (16 facettes sur 360°).

Nota : Attention, la substitution des tores se fait mal lorsque ces tores ne sont pas de définition standard (1-4, 2-4, et 4-4, soit t04, t02, et t01 avec la dénomination actuelle). Il manque une dénomination officielle pour les autres types de tore. Dans l'exemple j'ai utilisé LDView 3.2 qui donne dans ce domaine de meilleurs résultats que la version 4.1.

Si l'utilisation d'un nombre entier de facettes n'est pas possible sur les parties circulaires, la conséquence est la présence de "trous" lorsque l'on pousse la facettisation avec LDView. Voir par exemple : Cas particulier des pièces 2x2 Round. De même pour les bords qui peuvent "disparaitre" à l'intérieur de la pièce (voir mêmes images).

Voir aussi comme exemple : Utilisation des primitives LDraw circulaires dans les motifs d'autocollants.

Dans ces cas de figure, il peut être amené à envisager de décomposer les primitives pour qu'il n'y ait pas de substitution.

Sur une idée de Damien Roux [Darats], développé par Philippe Hurbain [Philo], est apparu en janvier 2015 une nouvelle primitive 1-16chrd. Cette primitive vide (via empty.dat) pouvant être utilisée de façon multiple avec les primitives 1-4ering.dat ou 4-4ering.dat.

Cette primitive n'affiche rien en mode normal mais comble les trous occasionnés par la substitution de primitives circulaires bordant des triangles avec LDView. Voir partie supérieure de l'image ci-dessus.

 

Ordre de construction de la pièce

Pour construire la pièce, il est préférable de suivre un certain nombre d'étapes.

Dans certains cas, il est plus facile de démarrer par l'extérieur de la pièce. Dans ce cas là, je préconise de construire le fichier en partant de la fin, et en insérant petit à petit les parties internes au début du fichier.

Utilisation des commentaires

Je préconise également d'insérer de nombreuses lignes de commentaires (vides ou non) séparant les étapes de constructions, ce qui permettra ultérieurement de vérifier qu'il ne manque pas une face, une ligne de bord, une ligne conditionnelle, ... ou qu'il reste un trou dans la pièce, à chaque étape de construction.
Avant de publier la pièce, il sera toujours temps de diminuer le nombre de commentaires, en laissant (en Anglais) les seuls commentaires utiles à l'utilisation de la pièce.

Nota : Les lignes de commentaire, sont les lignes commençant par 0 (ancienne forme) ou 0 // (nouvelle forme à systématiser), mais depuis 2013, les lignes de commentaires sans texte sont remplacées par des lignes entièrement vides.

 

Origine et orientation de la pièce

L'origine de la pièce, suivant le standard, correspond à la position x=0, y=0, z=0, de la pièce modélisée.
Elle est généralement positionnée en x et z au milieu de la pièce, et en y sur le dessus, hors tenons. C'est le cas de toutes les briques, et de toutes les plates. Pour d'autres pièces il s'agit de l'axe d'un trou, ou du centre pour des pièces cylindriques (roues, jantes, ...).

L'orientation de la pièce se fait généralement avec les tenons sur le dessus, et le bas de la pièce vers les +y. La partie tenon se trouve donc en -y. La plus grande largeur se fait en x, et la plus petite en z.


Exemples d'origine et orientation montré avec LDView. Nota : Sur la première image, les lettres X,Y,Z ont été ajoutées manuellement avec un programme d'imagerie.


Comme ici, il est possible d'insérer un élément visualisant l'origine et l'orientation de la pièce pour plus de facilité.
Le fichier utilisé ici est zerobase.dat de Paul Easter, fourni avec le programme Prim-Gen.

Dans la pratique, il faut se référer à une pièce similaire pour savoir où doit se trouver l'origine de la pièce, et son orientation. Ceci est important, car lorsqu'une pièce a été soumise et utilisée dans des modèles, toute modification pose problème sur tous les modèles qui ont été créés.

 

Créer des pièces avec des outils spécialisés

En fonction de la pièce, il est possible d'utiliser un certain nombre d'outils spécialisés dans un domaine particulier.

On va retrouver des outils pour :

Un certain nombre de ces outils, à l'origine en mode "ligne de commande", sont utilisables directement sous Windows, à partir de LDDP, ou LETGUI.

LETGUI

Cet utilitaire, développé par Michael Heidemann (mikeheide), reprend sous une interface Windows, de façon beaucoup plus conviviale, de nombreux utilitaires qui à la base sont en ligne de commande (ex mode DOS).

Voir le manuel de LETGUI, pour plus d'informations sur les utilitaires concernés, et sur son utilisation générale.

 

Les pièces à motif

Les pièces à motif (Pattern) sont en premier les pièces comportant un dessin imprimé dessus, comme les têtes ou torses de Minifig, les drapeaux, les briques comportant le dessin d'une lettre, etc...

La couleur de la pièce est toujours mise par défaut en couleur 16 (Main Color), et le motif avec sa couleur réelle. Exemple la pièce : "brick 1 x 8 with "STATION" Pattern" existe uniquement en plastique blanc avec le motif (texte) en bleu ou en rouge. Un seul fichier pourrait être crée, mais par convention il faut en créer 2 : Le premier avec le motif bleu, et le second avec le motif rouge.

Lorsque le motif possède la couleur du support cette partie est mise en couleur 16 car elle n'est généralement pas imprimée. Par contre, il arrive que le même motif soit imprimé sur des pièces de différentes couleurs (blanche et noire par exemple). Dans ce cas, si le motif utilise ces couleurs, ces parties sont créés avec leur véritable couleur.

Actuellement, le motif doit être créé uniquement avec des triangles et des quadilatères. Les lignes sont interdites (ce qui n'a pas toujours été le cas comme on le constate sur d'anciennes pièces officielles).

Une deuxième catégorie de pièces à motif sont les autocollants (Sticker). Les autocollants individuels sont considérés comme des pièces à part entière ayant une épaisseur de 0.25 LDU, que l'on met dans un modèle sur une pièce nue, sans motif. Il ne faut pas créer la pièce portant le dessin de l'autocollant, comme s'il était imprimé.

Pour ces autocollants, la couleur du support est en discussion (en 2011). Officiellement, elle doit être de la couleur dominante du bord, sauf lorsque le support est transparent. La nouvelle tendance serait de mettre en couleur 16 ce support est la couleur 16 comme pour les pièces. Une autre particularité des autocollants c'est qu'ils ne possèdent pas de lignes de bord. Voir plus loin le chapitre : "Les autocollants (Sticker)" pour plus d'informations sur ce type de pièces.

La première méthode pour créer un motif vectoriel est d'agrandir le motif à réaliser avec une photocopieuse, puis de relever les points caractéristiques avec une règle, convertir les valeurs en LDU, et entrer les coordonnées obtenues dans un fichier au format LDraw. C'est sans doute la méthode la plus simple en moyens, mais également la plus fastidieuse. Malgré tout c'est cette méthode que j'ai utilisé pour mes premiers motifs, et ce qui m'a fortement encouragé à trouver une autre méthode plus rapide.

Voir ci-dessous les différents programmes et méthodes utilisables pour cela.

Les programmes "Bitmap" et "Vectoriels"

Il y a de nombreux programmes qui permettent, à partir d'une image (pièce photographiée ou scannée), de créer un fichier LDraw. Mais, la majorité de ces programmes simulent le dessin par une succession de petits carrés ou rectangles, générant de gros fichiers. De tels fichiers ne sont normalement pas valides pour le "Part Tracker", mais peuvent rendre des services pour une utilisation personnelle.

Programmes type "Bitmap" :

Programmes type "Vectoriels" automatiques :

Programmes type "Vectoriels" interactifs :

Utilisation de programmes "Vectoriels"

Personnellement j'utilise j'utilisais le programme Quad2dat, et j'ai même écris un utilitaire complémentaire, Dat2QP permettant d'importer des données dans ce programme. Mais actuellement (en 2011) j'utilise aussi le programme LPC qui est un challenger performant, et (5-2012) a des possibilités uniques (autocollant, support 3D quelconque).

En complément vous pouver aussi utiliser des utilitaires comme Projector, LDFlat, et SlicerPro pour créer des motifs "3D".

Le programme MLCad possède un module générateur de flèche, qui peut être utilisé pour en créer, puis les incorporer dans un motif. Voir Créer une flèche.

Utilisation de programmes "Bitmap"

Une utilisation des programmes "Bitmap" peut être envisagé lorsqu'il y a des dégradés de couleurs, ce qui n'est pas facile à faire avec les programmes vectoriels. Dans ce cas, il peut être intéressant de mélanger les 2 techniques : "Bitmap" dans un premier temps, et reprise en "vectoriel" pour les aplats de couleur. Voir plus bas Sticker Generator.
Voir aussi plus bas une autre approche plus vectorielle avec utilisation de triangles fins.

C'est aussi une solution pour générer "rapidement" un autocollant personnel.
Mais attention, ces motifs Bitmap ne doivent pas être envoyés sur "Parts Tracker" du site LDraw.org.

Les programmes de "Mapping"

Une voie d'avenir est peut-être le "mapping" ou "texturation", c'est-à-dire plaquer une image ou une photo sur les faces de la pièce à motif. Si cela existe dans de nombreux programmes de dessin vectoriels 3D, cela n'existe pas encore dans le monde LDraw. Depuis début 2010, une tentative d'aller dans ce sens a commencé à apparaître, mais dans combien de temps cela sera standardisé et disponible ?


Voici une image de Joshua Delahunty montrant une tentative de mapping.
Pour plus d'informations sur ce sujet voir sur le fil de discussion de Lugnet : "Dither" colors in patterned/sticker parts (en Anglais).

Voir également le projet de créer une méta-commande spécifique dans le format LDraw : Méta-commande de Texturation (!TEXTMAP).

Depuis avril 2012, LDView en version 4.2 Beta 1 est capable de visualiser les pièces texturées, depuis le 30 octobre 2012 Bricksmith version 2.6 gère les textures planes, et depuis le 13 décembre 2012 LeoCAD version 0.79 supporte les textures.

 
Exemple sous LDView v4.2 Beta 1. On voit ici sur l'image de droite, l'inconvénient de cette méthode si on zoom un peu trop sur la pièce.

Voir aussi LD Part Editor qui permet d'insérer les méta-commandes spécifiques.

Autres méthodes de vectorisation

Méthode Willy Tschager (Holly-Wood)

Une autre méthode a été développée par Willy Tschager. Voir sa page Pattern it! (en Anglais). Il s'agit d'un article paru dans BrickJournal, Issue 9, Volume 2 de Jan/fev 2010.

Cette méthode passe par les fonctions :

Méthode Lee Gaiteri (LummoxJR)

Méthode développée par Lee Gaiteri. Voir : Unofficial File parts/973p4x.dat (en Anglais), et Re: Patterns: Outline or no outline? (en Anglais).

Cette méthode passe par les fonctions :

Méthode Damien Roux

Méthode utilisée et décrite par Damien Roux. Voir : Minifigs Patterns (en Anglais).

Cette méthode passe par les fonctions :

Méthode Philo pour les dégradés de couleurs en vectoriel

Voir : Méthode des triangles fins pour simuler le dégradé de couleurs.

 

Pièces à motif Non Plans

Les programmes génèrent le plus souvent des motifs plans (2D), mais il est parfois nécessaire de créer des motifs non plans (3D).

Mais on peut aussi jongler avec un programme générant un motif 2D, puis projeter ce motif sur une forme 3D à l'aide de Projector ou SlicerPro (plus performant).

Dans certains cas le motif reste plan (2D), mais est à mettre sur une partie oblique (3D).

Dans d'autres cas le motif peut s'appuyer directement sur un maillage 3D.

Il y a plusieurs types de projections pour les motifs 3D.

Projection droite :
  • Adapté aux pièces à motif non plans (cylindriques ou sphériques) photographiés ou scannés.
  • Adapté aux autocollants déjà posés sur pièce non plane.
  • Mais peu adapté aux pièces fortement courbes (à contourner en faisant plusieurs projections séparées).
Projection cylindrique :
  • Adapté aux autocollants scannés avant pose.
  • Un peu adapté aux pièces à motif non plans, en faisant plusieurs images accolées.
  • Mais peu adapté aux pièces bombées (projection sphérique) avec les programmes actuels.
Projection sphérique :
  • Actuellement aucun programme ne permet de projeter un motif sur une surface demi-sphérique.
  • Pour contourner, utiliser plusieurs fois la projection droite en ne dépassant pas +/- 45°.
  • Photo pièces 61287pb01+61287pb02 source Bricklink.

En complément une solution de Gerald Lasser pour scanner "à plat" les têtes de Minifig :

Résultat pour la tête 3626cpb1113 (Photo BrickLink) :

Méthode de Gerald Lasser :

 

Idéaliser le motif

Il arrive parfois que le motif imprimé sur une pièce ne soit pas parfait, et présente des défauts : Décalage ou rotation du motif sur la pièce, décalage d'une couleur par rapport aux autres, couleur erronée ou incomplète, bord non droit, ...
Exemple d'après la pièce 3004p07 de Michael Heidemann :

Photo de pièce Modèle LDraw Commentaire
Motif d'après photo Peeron, avec décalage du rouge et rotation du vert.
Motif d'après photo Steffen, mieux aligné mais approximatif.
  Motif d'après photo Steffen, plus idéalisé sans chevauchement de rouge et de vert, sauf au niveau des attaches, donnant une couleur brune.

Quelle solution choisir ? Idéaliser est peut-être une bonne chose, mais il ne faut pas oublier que l'on modélise pour avoir une représentation virtuelle de la réalité. Dans le cas présent, les deux photos à gauche représentent deux réalités différentes d'une même pièce, et devraient donc avoir leur représentation LDraw.

 

LDraw Draw

J'indique ce programme fonctionnant sous DOS pour le côté historique des choses...

Voir : Extrait de Copies d'écran superposées du programme, d'après les copies d'écran de l'auteur Tore Eriksson.

Quad2dat

Ce programme est fait à l'origine pour faire des motifs sur des pièces standards. Malgré ses plantages, c'est le meilleur programme disponible dans son domaine.

En dehors des pièces planes, comme les "Brick", "Tile", etc, il permet de faire un motif sur des pièces inclinées, comme les "Slope". Mais, surtout, il permet de faire des motifs sur des pièces non planes comme les têtes ou jambes de Minifig,

Il peut, avantageusement, servir pour faire d'autres types de pièces :

Voir le manuel de Quad2dat, pour plus d'informations sur son utilisation.

Dat2QP

Ce petit utilitaire, que j'ai développé, permet de compléter Quad2dat, en l'ouvrant à d'autres utilisations, permettant par exemple de récupérer des motifs ou parties de motifs existants, d'utiliser des gabarits non standards, etc...

Voir le manuel de Dat2QP, pour plus d'informations sur son utilisation.

img2sticker

Ce programme permet de convertir une image BMP en fichier LDraw vectorisé. Nota : l'entête du fichier généré indique par erreur que le nom du programme est "RGB2Sticker".

Cet utilitaire sorti en 2005 a été écrit par Timothy Gould en Perl et nécessite l'installation d'un environnement permettant l'exécution du programme.

Ce programme n'étant pas parfait (ou très imparfait :-) ) et presque inutilisable (cela dépend de l'image source, et du traitement subi), il peut être possible de reprendre le résultat avec Quad2dat par l'intermédiaire de Dat2QP.
Nota : S'il avait été parfait, il serait en tête de liste, car il serait le plus rapide à créer des autocollants "vectoriels".

Voir le manuel de img2sticker, pour plus d'informations sur son utilisation.

LDPattern

Cet utilitaire de ildari (Il'dar Ismagilov) se veut une alternative à Quad2Dat.

Il est pour l'instant en développement, mais les débuts sont prometteurs.

Voir le manuel de LDPattern, pour plus d'informations sur son utilisation.

LD Pattern Creator (LPC), ex LDraw Pattern Creator (LPC)

Cet utilitaire de Nils Schmidt [BlackBrick89] a été publié le 3 juin 2011 sur Lugnet.

La version beta 1.0 beta est très stable, et peut donc être utilisée sans problème majeur. Le concept de création séparée des points (sommets) et des triangles de maillage sauf pour les "primitives" oriente la façon d'utiliser de programme. Ce concept a sans doute pour origine la volonté de diminuer le nombre d'espaces parasites entre deux bords contigus de triangles.

Donc, créez d'abord toutes les primitives possibles, y compris les triangles chaînés, en déplaçant si besoin les sommets à ajuster, puis ajouter les sommets restants dans les trous, avant de terminer par le maillage de ces trous.

La version 1.1 beta a été publié le 3 juillet 2011 sur Lugnet. Cette nouvelle version apporte principalement les primitives LDraw, les gabarits, les couleurs de LDConfig.ldr, et le maillage automatique. Cette nouvelle version est une très bonne solution de vectorisaion de motif.

La version 1.2 beta publié le 2 octobre 2011. Cette nouvelle version apporte en plus des fonctions de modification de maillage, d'options de paramétrage, et des raccourcis clavier.

La version 1.2.1 beta du 2 mars 2012, n'apporte pas de grands changements, mais passe en "Open source".

Les versions 1.3.x (mars 2012 à juin 2012), apportent principalement les menus en Français, la projection 3D, le gabarit d'autocollant, un maillage un peu plus efficace, et de nombreux petits ajouts et corrections.

Par rapport à Quad2dat, il lui manque principalement une optimisation du nombre de clics pour créer le maillage, et plus de souplesse dans les "modes" (sommet/triangle/primitive et sélection/déplacement). L'idéal serait leur suppression ...on peut réver :-).

Voir le manuel de LD Pattern Creator (LPC), pour plus d'informations sur son utilisation. J'ai gardé le manuel des versions Beta LD Pattern Creator (LPC) pour l'historique des choses.

Projector

Cet utilitaire, développé par Philo, permet quant à lui, de récupérer un motif plan, fait avec Quad2dat par exemple, et de le projeter sur un maillage 3D.

Voir le manuel de Projector, pour plus d'informations sur son utilisation.

LDFlat

Cet utilitaire, développé par Michael Heidemann (mikeheide), sert à "aplatir" des entitées LDraw. Il peut être utile pour préparer le motif "2D" utilisé par Projector, mais d'autres solutions existent : Dat2QP fait la même chose dans la conversion du gabarit vers Quad2dat, ou on peut utiliser MLCad et sa boite de dialogue "Position & orientation" (voir la méthode dans : Construire des pièces avec Quad2Dat, Edger et Ytruder).

Voir le manuel de LDFlat, pour plus d'informations sur son utilisation.

SlicerPro

Cet utilitaire, développé par Philo, est une version améliorée de Projector que nous venons de voir. Il permet de découper et projeter un motif plan sur une forme 3D, fait avec Quad2dat par exemple. Son principal avantage est de faire la projection sans qu'il soit nécessaire de respecter dans le motif les limites de chaque facette de la forme 3D.

C'est un moyen alternatif à l'utilisation des profils non plans (template head, template leg) de Quad2dat pour créer des motifs de tête de Minifig (Minifig Head), ou les jambes de Minifig (Minifig Leg) à partir du scan de la pièce, sans avoir besoin de découper le motif à chaque facette.

Cet utilitaire permet également de projeter des lignes sur une forme 3D.

Voir le manuel de SlicerPro, pour plus d'informations sur son utilisation.

Sticker Generator

Cet utilitaire, développé par Scott Wardlaw, permet de générer rapidement un fichier LDraw à partir d'une image "Bitmap" comportant un maximum de 256 couleurs (.BMP).
C'est une façon rapide de créer des motifs de pièces et des autocollants qui comportent des dégradés de couleurs.

Voir le manuel de Sticker Generator, pour plus d'informations sur son utilisation.

Utilitaire de Rolf Osterthun

Cet utilitaire, en cours de développement, est une tentative pour générer automatiquement un fichier LDraw à partir d'une image Bitmap.

Voir le message sur le forum LDraw.org : Re: quad2dat program (en Anglais).

 

Les pièces comportant du texte

L'utilitaire Txt2dat permet de créer un motif pour une pièce ou un autocollant comportant un "texte" reproduit suivant une police de caractères vectorielle "true type" .ttf quelconque (y compris les symboles des polices tel que "Windings", ou les caractères spéciaux avec l'option -a).

Dans un motif comportant plusieurs textes (comme le cadran d'une horloge), il faut créer un fichier par texte différent, puis les mettre à l'échelle et en position avec MLCad, ensuite importer le résultat dans Quad2dat, grâce à l'utilitaire Dat2QP, pour terminer le motif.

Ce programme créant un maillage de triangles, il peut-être envisagé de diminuer le nombre de lignes dans le fichier avec Rectifier :

On peut également utiliser cet utilitaire pour créer le contour de lettres servant à des extrusions en bosse ou en creux, comme sur la pièce 50914 faite par Philo (voir la méthode dans : Ytruder). Ou mieux, maintenant que cela existe, utiliser les options -g et -m de txt2dat.

En complément de cet utilitaire, voir le chapitre Mettre un texte en italique dans la page sur les déformations.

Voir aussi LD Part Editor qui intègre une version de Txt2Dat ayant un comportement légèrement différent.

Pour le choix de la police de caractère, voir : Txt2dat : fontfile.

Txt2dat

Voir le manuel de Txt2dat, pour plus d'informations sur son utilisation.

Si vous ne trouvez pas la bonne police de caractères, il est possible de créer le texte avec une police approchante, puis de modifier le résultat grace à Quad2dat en convertissant les données de Txt2dat par Dat2QP.

Nota : Pour avoir une meilleure définition sur de petits caractères, il est préférable d'utiliser une hauteur de caractère plus importante, puis de réduire l'échelle du résultat (avec MLCad par exemple).

 

Les autocollants

Les autocollants se font comme les pièces à motif (voir plus haut), avec une particularité sur la boite englobante et sur le nom du fichier. Voir à ce propos : Spécification des autocollants (Sticker). Voir également dans cette page mes réflexions sur l'utilisation des couleurs, et la description, mais cela n'engage que moi.

Vous pouvez utiliser un script pour LDS faisant automatiquement la boite englobante rectangulaire à vos dimensions. Voir le chapitre : Créer la boite englobante des autocollants rectangulaires, de la page LDS.
Vous avez également d'autres scripts permettant de Créer des autocollants à bandes, ou de Créer des autocollants à cadre. En symétrisant un autocollant à bandes, on peut facilement obtenir un autocollant à chevrons.

Le programme Txt2dat génère sa boite englobante, mais pour rester au standard, il faut utiliser l'option -l (pas de lignes), et ajouter la face de fond non générée.

Mais la solution actuelle (depuis 06-2009), des boites englobantes rectangulaires, est d'utiliser la primitive box5-12.dat, avec une facteur d'échelle de 0.25 en Y.

Nouvelle possibilité de créer des autocollants avec LD Pattern Creator (LPC), et son Gabarit d'autocollant rectangulaire.

Les autocollants ne sont pas forcément rectangulaires. Ils doivent suivre la découpe réelle des planches d'autocollants.

Forme rectangulaire
85038c.dat
Forme quelconque (ici circulaire)
85038a.dat

Le nom des fichiers des autocollants doivent suivre la Spécification des autocollants (Sticker). Il est possible également de soumettre une pièce avec l'autocollant positionné sur la pièce support. Dans ce cas, il faut ajouter "d01", "d02", ..., au nom de la pièce de base.

Textured sticker generator

Ce programme en ligne de Roland Melkert permet de générer les lignes de code LDraw d'un autocollant rectangulaire plan utilisant la texture d'une image PNG.

Voir : http://www.melkert.net/test/stickerGen.html.

Entrer dans les champs "Width" et "Height" la largeur et la hauteur de l'autocollant en LDU. Laisser la valeur "Thickness" par défaut pour avoir une épaisseur d'autocollant standard. Entrer dans "Picture" le nom de l'image qui doit être au format .png. Décocher "Edges" pour avoir un autocollant standard sans bords. Cliquer sur "Generate" pour obtenir le code LDraw qu'il suffit de copier et coller dans le fichier .dat de l'autocollant.


Exemple visualisé avec LDCad.

Nota : La version testée ne semble pas mettre l'image à l'échelle en fonction de la taille de l'autocollant.

Les autocollants Non plans

Les autocollants ne sont pas forcément plans. Ils doivent être créés "en forme", c'est-à-dire épousant la forme de la pièce qui va les recevoir, lorsque celle-ci n'est pas plane. Dans ce cas il peut exister une version de base plane, pour être utilisé sur des pièces planes dans des modèles personnels, ou pour créer la liste des pièces d'un manuel d'instructions, et une ou plusieurs versions "en forme" pour les mettre en position dans des modèles officiels.

Forme plane 59826a.dat,
comme sur la planche d'autocollants.
Pour mettre dans un manuel
d'instructions (par exemple)
Le même mis "en forme" :
59826ac01.dat,
prêt à être posé sur la pièce 57792,
ayant un rayon R=60 LDU (Set 7990).

Les autocollants non plans doivent utiliser des techniques adaptées :

LPDC-Sticker Template_Gen

Il s'agit d'une feuille de tableur LPDC-Sticker Template_Gen.xlsm développée par Gerald Lasser, qui permet de générer les surfaces offsettées (à 0.25 LDU par défaut) d'un autocollant sur surface bombée. Ces surfaces peuvent ensuite être utilisées comme gabarit dans LD Pattern Creator.

 
Images de l'auteur de la feuille (cliquer pour agrandir).
Nota : La version actuelle (11-2016) ne génère pas correctement les bords. Voir seconde image.

Voir : [LDPatternCreator] Template Generator for Stickers on Bent Surfaces (en Anglais).

 

Les pièces souples

Les pièces souples, sont les pièces dont la forme n'est pas figée, mais dépend de la position de montage dans un modèle. Voici un certain nombre de types de pièces souples :

Tuyaux, câbles électriques, courroies : Ce type de pièces souples, ne sont habituellement pas créées comme des pièces ordinaires. En effet, il faudrait créer autant de pièces qu'il y a de formes, de longueurs, et de positions, qui sont infinies...
Dans la pratique, seules les parties élémentaires composants les pièces souples sont modélisées. La pièce complète est "synthétisée" au cours de la création du modèle à partir d'un utilitaire comme LSynth version 2, ou LSynth version 3. Voir également le Générateur d'objet souple de LDDP, ou le générateur de courroie Rubber Belt Generator, ou encore Créer une courroie ou Créer un tuyau de MLCad. Aussi LdGLite avec son éditeur de tuyaux (Bezier Hoser Function EH).

Chaînes de Minifig : Pour les pièces souples composées de maillons rigides, comme les chaînes de Minifig, seul le maillon (et le maillon extrême) est modélisé. La encore LSynth (en version 3) "synthétise" le modèle Chaîne Minifig. Egalement LdGLite avec son éditeur de chaînes (Bezier Hoser Function EH21). Nota : Il n'y a pas, à ma connaissance, d'utilitaire permettant de créer une chaîne, avec les maillons croisés, qui suivent la forme naturelle et équation de la chaînette.

Chaînes porteuses : Pour les pièces souples composées de maillons rigides, comme les chaînes porteuses, seul le maillon unitaire est modélisé. La encore LSynth "synthétise" le modèle.

Bandes de roulement : Pour les pièces en plastique souple ou en caoutchouc, comme les bandes de roulement, seule la portion unitaire est modélisée, mais avec 3 variantes : Partie droite, partie en courbe, partie de transition droite/courbe. La encore LSynth (en version 3) "synthétise" le modèle.

Tissu : Une autre catégorie de pièces souples sont les pièces en tissus, placés dans la catégorie "canvas". Ces pièces doivent être modélisées "en forme", c'est-à-dire en position d'utilisation. On pourrait mettre également dans cette catégorie les voiles.
Voir : Tutoriel : Plier une cape de Minifig.

Feuille plastique : On pourrait mettre également dans cette catégorie les bannières en plastique souple, qui doivent être déformés dans la réalité pour être mis en place, et qui devraient également être modélisés "en forme".

Autocollants en forme : Les autocollants positionnés sur une pièce non plane doivent être modélisés "en forme". Ils sont alors considérés comme une pièce ordinaire. Voir le chapitre précédent.

LSynth

Cet utilitaire est prévu pour créer des pièces souples suivant 2 catégories : Les pièces LEGO "souples" ouvertes, comme les tuyaux, cordages et câbles électriques, et les pièces "souples" fermées, permettant d'assembler des pièces "articulées", ou des segments souples suivant un circuit fermé.

Nota : Pour une visualisation des modèles créés par LSynth par tout un chacun, même par ceux qui n'ont pas installé ce programme, il faut que les segments souples, et les pièces unitaires fassent partis de la bibliothèque LDraw (à envoyer sur LDraw.org). Il faut donc éviter de les nommer LS***.DAT, et de réserver ces appellations aux contraintes spécifiques de LSynth (Ce n'est pas toujours le cas).

Voir le manuel de LSynth version 2 (obsolète), ou LSynth version 3, pour plus d'informations sur son utilisation.

Rubber Belt Generator

Générateur de courroie à section ronde ou carrée.

Voir le manuel de Rubber Belt Generator, pour plus d'informations sur son utilisation.

LDCad (pièces dynamiques)

Cet éditeur de modèle permet de créer des pièces souples appelées "dynamiques" dans ce programme. Elles sont ensuite visualisables par tout programme du système LDraw.

Voir création de pièce souple : LDCad : Modèle ou sous-modèle de pièce dynamique.

Voir création de ressort : LDCad : Modèle ou sous-modèle de ressort.

Voir utilisation : LDCad : Pièces dynamiques.

 

Les cordages

Les cordages ne sont pas souvent modélisés. Les méthodes indiquées ci-dessous sont à utiliser dans les modèles, et les pièces générées ne sont pas à soumettre au "Parts Tracker".

En première approximation (ici en rouge à gauche, à côté d'une brique 1x1 de référence), on peut les simuler par des lignes (ligne LDraw de type 2), en les insérant dans le modèle avec MLCad. Chaque brin rectiligne pouvant être une copie du brin précédent, en déplaçant l'extrémité libre de façon interactive, tout en gardant l'autre extrémité à la fin du brin précédent. Cette simulation ne respecte pas le diamètre réel du cordage.

On peut ensuite (ici en bleu) les simuler par des primitives cylindriques 4-4cyli.dat. Mais, leur mise en place dans l'espace n'est pas toujours simple. Le diamètre des cordages était d'environ 0.8 mm (2 LDU) dans les années 1980. Aujourd'hui ce diamètre à diminué et fait environ 0.6 mm (1.5 LDU).
Nota : Voir le chapitre CyliPoints.pl pour calculer les paramètres du cylindre. Un autre solution est de suivre les formules données sur le forum LDraw.org : Drawing a cylinder from A to B (en anglais).

Mais une solution est apparu (ici en jaune), avec l'utilitaire LSynth Version 3. Voir les chapitres sur les cordages STRING_HOSE, et STRING_BAND.

Dans le réalité les cordages sont formés de 3 fils ou torons, torsadés ensemble. On peut les simuler (ici en vert), en faisant balayer une section formé de 3 demi-cercles mis à 120°, avec l'utilitaire PathTruder, et son option de Balayage avec un angle de rotation. Les cordages étant d'un ton mat, il n'est pas nécessaire d'ajouter les lignes conditionnelles. Nota : Cette méthode génère des fichiers volumineux.
J'ai incorporé ce type de cordage dans LSynth Version 3. Voir les chapitres sur les cordages torsadés STRING_HOSE2, et STRING_HOSE3.

Une variante des cordages se rencontre avec les pièces "String Braided" (ici en gris), comme les pièces 75924, 75925, 76384, 76391, ... qui sont composées d'un cordage en fibres synthétiques, tressées comme un "scoubidou" et faisant environ 1 mm de diamètre (2,5 LDU) avec 1 tenon à chaque extrémité. Cette pièce existe également (ici en noir) avec tronçons de barres (Minifig Grip) surmoulées sur le cordage. Voir les chapitres des cordages tressés STRING_xxL, ou STRING_WITHOUT_GRIPS_21L, et STRING_WITH_GRIPS, ou STRING_WITH_GRIPS2 de LSynth Version 3.

Pour créer un noeud, il est toujours possible de le simuler en insérant une sphère 8-8sphe.dat avec une rayon de 2 LDU :

Pour simuler le filet de corde 71155, (Thread Net 10 x 10), il existe un tableau Excel (Microsoft), Lego CAD - Net Generator crée par Robin Sayce-Jones que vous pouvez retrouver sur sa page Lego CAD.
Cette feuille Excel permet de générer un filet en définissant les hauteurs caractéristiques des nœuds connus, le reste étant interpolé. Nota : la corde est de section carrée, et les nœuds sont formés de cubes, ce qui est acceptable si l'on ne zoom pas de trop près.

Voir également une utilisation de LSynth : Simulation du filet de corde.

Comparatif des cordages réels et virtuels

Comparatif des cordages réels et virtuels à la même échelle :

1 Filet (Part 71155)
2 Cordage tressé avec tenons (Part 75924)
3 Cordage simple actuel
4 Cordage simple ancien (vers 1985)
5-6-7 Cordages virtuels (x77a.dat en 3 variantes, avec couleur LDraw 256 (Rubber_black))

Comparatif de cordages virtuels sous LDView, en fonction de l'ajout ou non de lignes :

5 Cordage virtuel avec lignes inter-brins, et lignes conditionnelles de lissage.
6 Cordage virtuel avec lignes inter-brins, sans lissage.
7 Cordage virtuel sans aucune ligne.

Mon choix s'est porté sur la configuration 7 qui visuellement donne plus de "flou" ou un aspect "plus rugueux", même si ce n'est pas "pelucheux" comme dans la réalité (3 ou 4).

En outre, le fichier élémentaire de la configuration 7 fait 3.45 Ko, la configuration 6 fait 3.67 Ko (+6%), et la configuration 5 fait 7.65 Ko (+122%).

 

Les ressorts

Un ressort (Spring, en Anglais) est une pièce souple, mais qui est modélisé à des positions particulières (état libre et/ou comprimé), dans les assemblages qui les utilisent.

Ressorts de compression

Des logiciels tels que MLCad (Menu : Extras/Générateurs/Ressort...), ou l'utilitaire indépendant Spring2dat, (à la base le même programme) permettent de créer des ressorts de compression avec une section de fil carré.

Egalement, l'utilitaire PathTruder, et son option de Balayage en spirale, permet de générer des ressorts de section quelconque. (Voir plus bas).

Voir également : LDCad : Modèle ou sous-modèle de ressort.

Nota : Certains ressorts peuvent comporter des parties jointives au milieu de leur longueur. Cela permet de diminuer la raideur du ressort tout en lui gardant une certaine longueur. Il faut dans ce cas les construire comme 2 ressorts plus petits mis bout à bout, en respectant le nombre de spires. Voir par exemple la pièce 22977.DAT (Technic Shock Absorber 6.5L, Spring Extra Stiff).

Ressorts de traction

Les ressorts de traction ont un anneau à chaque extrémité, qui doivent être modélisés séparément. Voir une méthode de construction de ressort de traction avec fil circulaire, formé de portions de tores, avec la pièce 519.dat (~Crane Grab Jaw Spring).

Table des ressorts existants dans la bibliothèque

Nota : Table en ordre croissant du diamètre d'enroulement D, puis la longueur H. Pour les ressorts de traction les anneaux sont compris (intérieur à intérieur). Pour une explication sur les caractéristiques, voir Usage du programme Spring2dat. Table à jour au 25-12-2009.

NomType HRDS TB
70181Traction 584     
70181a
70181c01
Traction (étendu) 584     
519Traction (fil rond) 5224100.625 22
519O
519c01
Traction (fil rond) 6824100.625 22
70038Compression 4457- 21
517
70864
Compression 287100.64 22
x991
u9070
Compression 187111 33
u9211c01Compression 2314121.5 22
u9211Compression 5114121.5 22
71953Compression 444141.5 22
41837Compression 444.5141.5 22
x882Compression 446142 11
22977Compression 469142 33+6 au centre
px928dCompression 6418.521.26 11
x987Compression 6418.521.26 11
987Compression 82 22
70450aCompression 1810202 11
48918d
48918c03
Compression 496204 11
48918c
48918c02
Compression 626204 11
108Compression 7610202 22
70450bCompression 7810202 11
48918b
48918c01
Compression 836204 11
48918a
48918
Compression 966204 11
71830Compression 787241 33
110Compression 9410242 22
48912s04Compression 496404 11
48912s03Compression 626404 11
48912s02Compression 836404 11
48912s01Compression 966404 11

Spring2dat

Cet utilitaire est prévu pour créer des ressorts de compression.

Voir le manuel de Spring2dat, pour plus d'informations sur son utilisation.

 

Les vis

Les vis n'ont pas besoin d'outils spécialisés, mais sont utilisées dans des pièces assemblées, et n'ont donc pas de numéro affecté, ou sont parfois omises. Elles sont souvent considérées comme des sous-fichiers. Il est par conséquent difficile de retrouver une vis existante. Voici un tableau de celles que j'ai trouvé.
Mais c'est en train de changer pour leur donner une nouvelle numérotation (voir tableau ci-dessous).

Nom Tête Type Diamètre Longueur
sous tête
64420 Cylindrique Indémontable 2.5 42
7351s02
u9022
Cylindrique Triangle 4 4
2775s02
u9020
F/90 Fendue 5 4,5
x567s03
u9021
Cylindrique Fendue 5 6
u9265 Cylindrique Torx 5 14
x560s01
u9000
F/90 Fendue 5 44,5
6282s01
u9013
Cylindrique Cruciforme 6 12
u9288 Dome Cruciforme 6.5 23.75
u9267 Dome Cruciforme 7.5 30

 

Les pièces Non LEGO

Les pièces Non LEGO, c'est quoi ? Il s'agit de toutes les pièces généralement non fournies avec le sets et qui apparaissent dans les anciens Sets ou les nouveaux.

Dans les sets actuels et anciens on peut noter les piles électriques, ou batteries.
Nota : En 05-2011 est apparu la pièce U9157 : Button Cell LR41.

On trouve parfois dans les illustrations de set ce type d'objets :
Exemple avec le livre d'idée 221 de 1973, page 40 : Bande de papier de 120 mm de large environ. Page 41 : mètre ruban de couturière et paire de ciseaux.

Si l'on veut les créer ils se font comme les autres pièces, mais ne sont pas à envoyer sur le site LDraw.org (à voir).

 

La création de faces et bords complexes

Pour les parties de pièces ayant une forme courbe ou complexe, il existe un certain nombre d'utilitaires aidant à les concevoir, soit en création de faces courbes facettisés, soit en création de lignes de bords complexes.

Voir comme exemples de créations complexes utilisant plusieurs outils :
   - Tutoriel : Construire des pièces avec Quad2Dat, Edger et Ytruder.
   - Tutoriel : Jonction de tenons avec une surface non plane.
   - Tutoriel : Plier une cape de Minifig.

Voir aussi l'éditeur Emacs et LDraw-mode.

Voir également la possibilité d'utiliser la déformation de primitives.

Lathe de LDraw Add-On

Cet outil de LDraw Add-On est un générateur de formes circulaires.

 

Dans l'exemple, 2 lignes LDraw sont fournis, et à droite le résultat généré, visualisé avec LDView, avec en plus les lignes d'origine en rouge. Lathe génére les faces, les bords, et même les lignes conditionnelles.

 

Dans cet exemple, 4 coordonnées X,Y, et Z sont donnés, et à droite le résultat généré, visualisé avec LDView, avec en plus les lignes reliant les points en rouge.

Toutes les possibilités de Lathe restent à découvrir.

Prim-Gen

Cet utilitaire est prévu pour créer de nouvelles primitives circulaires, mais peut également créer des éléments que vous pouvez utiliser directement dans votre pièce.

Exemple dans cette pièce x385.dat 4234.dat :

Les parties jaunes ont nécessité la création provisoire d'une primitive de tore t08i4595.dat (R=14.8, r=6.8) pour faire le raccordement, en utilisant un facteur d'échelle de 14.8 en X et Y, et pour une longueur de 6 LDU en Z un facteur d'échelle de 13.0588 (R/r*6) en Z.
Les parties vertes sont des portions de cylindre (1-4cyl) coupés par le tore.
Tous ces éléments ont été "limités" avec Intersector.

Voir le manuel de Prim-Gen, pour plus d'informations sur son utilisation.

Attention, ce programme soulève une question au sujet de le dénomination actuelle des tores, car on ne peut pas nommer tous les cas de figure. Voir le chapitre Tore circulaire de ma page sur les primitives, et le chapitre Champ Segments de Prim-Gen.

Depuis 08-2014 les noms des fichiers des primitives ne suivent pas le nouveau format 21.3, préférez utiliser le programme qui suit : PrimGen2.

PrimGen2

Cet utilitaire est la reprise du programme précédent Prim-Gen.

Depuis la version v1.0.5.0 de 08-2014 les noms des fichiers des primitives suivent le nouveau format 21.3 au lieu de 8.3.

Voir le manuel de PrimGen2, pour plus d'informations sur son utilisation.

Nota : Ce programme a été intégré dans LDPartEditor. Voir : Génération de primitive circulaire : PrimGen2.

LDPara

Génère des éléments en forme de paraboloïde de révolution. A utiliser lorsque la déformation de portions de sphères ne suffit pas.

Voir le manuel de LDPara, pour plus d'informations sur son utilisation.

Ytruder

Cet utilitaire est un générateur de faces, suivant une direction donnée.

Nota : Edger2, en plus de son utilisation principale peut permettre de générer le chemin utile à Ytruder à partir du bord de faces existantes.

Voir le manuel de Ytruder, et Construire des pièces avec Quad2Dat, Edger et Ytruder, pour plus d'informations sur son utilisation.

Coverer

Cet utilitaire est un autre générateur de faces, complémentaire du précédent, générant des faces réglées entre 2 chemins composés de lignes.

Nota : Edger2, en plus de son utilisation principale peut permettre de générer les chemins utiles à Coverer à partir du bord de faces existantes.

Voir le manuel de Coverer, pour plus d'informations sur son utilisation.

PathTruder

Cet utilitaire est un autre générateur de faces, par balayage d'un profil, évolutif ou non, contraint par un chemin principal, et un secondaire. Il peut également générer des pièces de révolution ou des spires de ressorts.

Pour créer le profil et/ou un chemin compliqué (mais plan) à partir d'une image ou pièce scannée, il est possible de créer avec Quad2dat un remplissage de ces profils avec des triangles et des quadrilatères, puis d'utiliser Edger pour générer les bords. Il suffit ensuite de récupérer les lignes "blanches" utiles.

Nota : Edger2, en plus de son utilisation principale peut permettre de générer les chemins et profils utiles à PathTruder à partir du bord de faces existantes.

Voir le manuel de PathTruder, pour plus d'informations sur son utilisation.

Isecalc

Cet utilitaire permet de générer les lignes formant l'intersection de 2 groupes de faces.

Nota : Si le résultat escompté n'est pas bon ou partiel, vérifier que les faces sont correctes avec LDDP et corriger les faces "croisées" (Bowtie quad) en particulier. Voir : Test des erreurs avec LDDP.

Voir le manuel de Isecalc, pour plus d'informations sur son utilisation.

Voir également la possibilité d'utiliser la déformation de primitives "edge" en lieu et place. Solution à privilégier lorsque c'est possible (cylindres coplanaires et de même diamètre). Voir Intersection de tubes, sur ma page Déformation de primitives.

SyncEdit

Cet utilitaire permet de déplacer un sommet commun à plusieurs lignes ou faces, en changeant les coordonnées sur tous les éléments concernées en même temps.

Cet utilitaire, crée par Anders Isaksson, est un programme complémentaire (Plugin) du programme LDDP, mais existe aussi en version autonome. Attention : Ce programme ne fonctionne pas avec une "Option régionale" de Windows en français. Passez temporairement au format "Anglais (Etats-Unis)" pour l'utiliser. Le séparateur des nombres décimaux devant être "." au lieu de ",". Revenez à votre configuration "Français (France)" ensuite.

Cet utilitaire peut aider à modifier les formes complexes 3D, mais en conséquence cela peut générer des quadrilatères non plans, ce qu'il faudra vérifier avec PlanarCheck.

Pour la modification de formes 2D, il existe une autre solution plus interactive avec Quad2dat.

Pour plus de renseignements, voir la page SyncEdit.

Grace à ce programme, en combinaison avec Quad2dat, il est possible de créer des pièces comportant du relief comme avec cette pièce x522. Voir la méthode décrite au chapitre Tutoriel de création de pièce en relief.

Scripts en Perl

Ces utilitaires écrit en Perl par Tim Gould permettent de créer automatiquement des raccordements de cylindres, ou de cylindre coupé par un plan, ou de calculer des points sur un cercle.

Voir ma page : Scripts en Perl de Tim Gould.

CSG de LD Part Editor

Cet outil permet de construire des pièces complexes à partir de primitives simples et d'opérations booléennes pour "usiner" ces primitives.

Voir : Géométrie de construction de solides (!LPE CSG).

 

La limitation ou coupe d'entités

Voici quelques outils permettant de couper ou limiter des éléments filaires ou surfaciques.

En dehors de la liste des utilitaires qui suivent voir également SlicerPro plus haut, ou Unificator pour faire un trou dans un maillage.

Linetrim

Cet utilitaire permet de limiter des lignes à leur intersection avec des surfaces. Son auteur semble avoir fait migrer son code vers son autre utilitaire : Intersector, plus général.

Voir le manuel de Linetrim, pour plus d'informations sur son utilisation.

Intersector

Cet utilitaire permet de couper un ensemble de surfaces et de lignes à leur intersection avec un autre groupe de surfaces.

Voir le manuel de Intersector, pour plus d'informations sur son utilisation.

Nota : Il n'est pas toujours nécessaire de couper les surfaces dans une modélisation. Il est vrai qu'une face qui en chevauche une autre (dans le même plan), ou qui passe derrière (va à l'intérieur de la pièce) ne change pas la visualisation, sauf pour les pièces transparentes.

En cas d'intersection complexe, il est préférable de décomposer les intersections en plusieurs parties, en éliminant les parties indésirables entre chaque utilisation du programme. Exemple pris sur la pièce de javelot de Minifig 4497.dat (Minifig Spear), dont le quart de jonction est fait en 4 étapes, avec nettoyage du résultat entre chaque opération.

 
La première étape est de faire l'intersection du cylindre vert, avec la partie de disque déformé rose. La seconde avec l'intersection du cylindre bleu avec le plan marron, la troisième en inversant les fichiers du plan marron et du cylindre bleu. La quatrième en traitant le résultat nettoyé de la première étape, avec le résultat nettoyé des seconde et troisième étapes. On peut ensuite traiter les bords avec Isecalc, et symétriser les parties avec MLCad.

CylinderCut et CircleCut

CylinderCut est un tableau Excel de Michael Heidemann qui permet de couper les éléments d'une primitive cylindrique 4-4cyli par 2 plans symétriques perpendiculaires à l'axe Y, et à une distance donnée.


Résultat sous LDView avec les lignes conditionnelles et les axes affichés.

C'est souvent utile pour récupérer la facette tronquée, mais il est souhaitable de remplacer les facettes complètes par des primitives lorsque c'est possible.

CircleCut est un second tableau Excel de Michael Heidemann qui fait la même chose avec les éléments d'une primitive circulaire 4-4edge.

Vous pouvez retrouver ces tableaux sur la page LDraw - Programme de l'auteur.

SymSplitter

Cet utilitaire permet de séparer ou couper un ensemble de surfaces et de lignes par rapport à un ou plusieurs plans. De base il est plutôt orienté pour traiter les fichiers créés par un programme de CAO, et en particulier les fichiers LEGO Universe Team (voir plus bas).

Dans ce but, après avoir manuellement remplacé de nombreux éléments par des primitives, vous pouvez utiliser ce programme pour séparer la partie centrale restant dans le fichier principal, d'une des parties latérales mise dans un sous-fichier.

Ce programme laisse également la possibilité de couper les entités centrales pour créer un seul sous-fichier de la moitié de la pièce (par exemple), et permettre ensuite de remplacer des éléments restants par des primitives. Cette seconde façon de faire permet de travailler sur un fichier plus petit pour incorporer des primitives, tout en laissant la possibilité d'ajouter des primitives "auto-symétriques" qui seront mises ultérieurement dans le fichier principal.

L'autre point fort de ce programme est d'ajuster les sommets proches d'un plan de coupe à ce plan de coupe, et d'ainsi éliminer de nombreux petits éléments inutiles.

Voir le manuel de SymSplitter, pour plus d'informations sur son utilisation.

 

Automatiser la création

Il peut être intéressant, dans certains cas, d'automatiser la création de pièces ou parties de pièces, pour simplifier, entre autres, la saisie de nombreuses lignes répétitives, ou pour créer une gamme de pièces similaires. Cela est possible avec le programme LDS et son interface graphique LDS Shell.

Une autre solution pour les petites pièces ayant des formes toutes en courbes complexes, c'est d'utiliser un "Scanner 3D" pour relever un maillage de points. C'est possible avec un montage en Lego comme le montre Philo (Philippe Hurbain) avec sa solution NXT 3D scanner, ou sa nouvelle méthode 3D Laser scanner (voir plus bas).

Le programme MLCad possède un module générateur de plaques de base, qui peut être utilisé pour faire de nouvelles plaques planes. Voir : Créer une plaque.

Le script bp_hu.lds, s'exécutant sous LDS, permet également de générer les plaques de base comportant les évidements sous la plaque. Voir : Créer une série de plaques de base (Baseplate).

Egalement, le script plate_hd.lds permet de générer les plates comportant les évidements en dessous. Voir : Créer une série de plates en haute définition.

Le programme LDraw-Add-On (LDAO) permet de placer automatiquement une primitive (ligne de type 1 en général) suivant un maillage répétitif en X, Y, et Z (Dans l'éditeur de fichier, menu "Tools / Gridder"). Voir : Réseau de pièces ou primitives, sur la page : LDraw Add-On (LDAO).

Le programme LeoCAD possède également une commande de maillage répétitif (menu "Piece / Array") linéaire avec ou sans rotation de l'élément, suivant 1, 2 ou 3 directions. Mais ce programme travaillant uniquement avec des pièces, il faut jongler pour remplacer la pièce utilisée par la bonne primitive. Voir : Maillage de pièces.

Voir également un script en Perl de Tim Gould, pour générer des tuyaux annelés linéaires : Usage du script ribbed_hose.pl.

 

LDS (LDraw Script Compiler) et LDS Shell

Cet utilitaire permet de créer un fichier .DAT à partir d'un langage Script proche du Basic.
Il me semble une bonne solution pour des modélisations d'une gamme de pièces paramétrés. Par contre ses limitations ne permettent pas d'envisager des programmes trop complexes.

Voir le manuel de LDS et LDS Shell, pour plus d'informations sur son utilisation.

NXT 3D scanner

Il s'agit de relever des points 3D avec un montage NXT motorisé, en transférant les données sur un PC, puis d'en faire une maillage avec un programme tel que MeshLab, et enfin de le mettre au format LDraw avec le programme stl2dat.

Voir la page de Scanner 3D NXT, pour plus d'informations sur cette méthode.

Nota : Faute de matériel suffisant, je n'ai pas testé cette solution.

3D Laser scanner

Cette méthode est une évolution de la méthode précédente, plus rapide mais nécessitant plus de matériel spécialisé.

Voir la page de Scanner 3D Laser, pour plus d'informations sur cette méthode.

Cette méthode utilise plusieurs programmes : ShapeFusion en version complète ou Meshlab et Sculptris.

Nota : Faute de matériel suffisant, je n'ai pas testé cette solution.

 

Finir la pièce

Finir la pièce, c'est s'occuper en réalité de rendre "parfaite" sa représentation, et mettre en forme le fichier pour qu'il ne génère aucun message d'erreur dans son utilisation, et lors de l'envoi sur le "Part Tracker".

 

Validation des faces

Quadrilatères non valides

Une des premières choses est de vérifier que les faces quadrangulaires ne sont pas dégénérées ou non valides, c'est-à-dire qu'elles ne soient pas en forme de nœud papillon, ou concave, ou ne possèdent pas 3 sommets alignés, ou 2 sommets confondus. Voir le chapitre Quadrilatères non valides, de la page Format des fichiers LDraw.

Un moyen de le vérifier est d'utiliser DATHeader, dans une version récente.

Planéité des quadrilatères

Une autre chose est de vérifier que les faces quadrangulaires sont planes, sinon il faudra les découper en 2 faces triangulaires. C'est nécessaire pour une question de rendu, et sinon la pièce ne passera pas les tests de "Part Tracker".

Pour vérifier la planéité on peut utiliser PlanarCheck qui fait le test et suggère les triangles à utiliser, ainsi que la ligne conditionnelle se trouvant à leur jonction.

Ce programme peut même découper les faces non planes automatiquement, mais Attention, une face non plane cache souvent une face mal construite, qui aurait dû être plane. Avant de la transformer en 2 faces triangulaires, vérifiez avec les éléments voisins s'il ne faut pas plutôt revoir la face quadrangulaire.

Un autre moyen de vérifier et corriger la planéité des faces est d'utiliser DATHeader, dans une version récente.

PlanarCheck

Voir le manuel de PlanarCheck, pour plus d'informations sur son utilisation.

Recombinaison de triangles adjacents

Il peut parfois être utile sur 2 triangles adjacents formant quadrilatère d'inverser le côté adjacent pour pouvoir modifier un des triangles par exemple.

En dehors de Flipper, le programme LPC permet également de recombiner les paires de triangles. Voir : Recombiner 2 triangles adjacents.

Flipper

Cet utilitaire permet de recombiner 2 triangles adjacents.

Voir le manuel d'utilisation de Flipper pour plus d'informations.

 

Jonction des faces

Il s'agit de vérifier et corriger les défauts qui peuvent se trouver sur le raccordement des faces entre-elles.

Jonction en T

Lors de la création des faces, il faut s'assurer de ne pas créer de jonctions en T, qui génère des artefacts dans le rendu. Voir à ce sujet le chapitre : Jonction de polygones.

Il n'est pas toujours facile de supprimer les jonctions en T, en particulier lors de la création de motifs textuels (création de triangles à sommets alignés). Si les bords concernés sont horizontaux ou verticaux cela peut être acceptable de les laisser, par contre le défaut est beaucoup plus prononcé sur les bords obliques, et ils doivent être supprimés.

Edger2 ou Gapfinder permettent de vérifier les jonctions en T.


Exemple de suppression de jonction en T :
- A gauche 2-4disc + quadrilatère = Jonction en T au centre du 1/2 disque.
- Au centre 2-4disc + quadrilatère + triangle = Suppression de la jonction en T.
- A droite : 2-4chrd + quadrilatère = Suppression plus simple de la jonction en T.

LD Part Editor est capable de supprimer, si possible, les jonctions en T. Voir : Recherche/Suppression de jonctions en T : TJunctionFinder.

Trou ou chevauchement de faces

Une seconde chose est de vérifier s'il ne manque pas de face, s'il existe un "espace" ou "trou" entre deux faces ou si deux bords se chevauchent. Gapfinder permet de rechercher les points des sommets qui ne correspondent pas à un autre sommet.

Nota : Edger2, en plus de son utilisation principale permet également de rechercher les "trous" entre faces.

Unificator permet quand à lui de corriger les sommets proches d'autres sommets, pouvant même s'accrocher sur des sommets figés dans un sous-fichier ou une primitive.

Gapfinder

Voir le manuel de Gapfinder, pour plus d'informations sur son utilisation.

Unificator

Ce programme permet d'unifier (et donc de corriger) les sommets des lignes et surfaces qui ne sont pas jointifs.

Voir le manuel de Unificator, pour plus d'informations sur son utilisation.

 

Certification BFC des faces

La certification BFC (Back Face Culing), certification du sens des faces, est utile pour les programmes de rendu en donnant un "sens" aux faces triangulaires et quadrangulaires (et par extension aux primitives qui les utilisent), ce qui facilite le calcul de l'affichage des parties visibles par ces programmes.

La même pièce 4214, non certifiée à gauche, puis avec la méta-commande 0 BFC CERTIFY CW et le sens des faces non ordonnés (les faces en rouge sont à retourner), puis à droite certifiée avec toutes les faces dans le bon sens (toutes les faces sont vertes).
Nota : les couleurs vert et rouge ne sont que des conventions utilisées par les programmes pour visualiser facilement le sens : vert = face avant, rouge = face arrière.
La théorie, ou règle du "tire-bouchon", veut que si l'on place un tire-bouchon perpendiculairement à une face, et que l'on tourne dans le sens donné par l'ordre des points définissant la face, le tire-bouchon avance dans le "sens" face avant -> face arrière.

En pratique, le sens des faces est uniquement donné par l'ordre successif des points définissant la face.

Programmes permettant de visualiser le sens des faces :

Pour certifier BFC un fichier il faut :

Nota : Attention à la syntaxe : 0 BFC CERTIFT CCW, au lieu de 0 BFC CERTIFY CCW (un T au lieu d'un Y, vu sur la pièce 644.DAT du 19-12-2009) provoque une plantage complet de MLCad v3.20 sur une message Runtime Error!.

Voir ci-dessous les outils qui peuvent permettre d'accélérer le processus.

BFC-Tool

Cet utilitaire sous Windows écrit par Nils Schmidt doit permettre de mettre dans le même sens toutes les faces d'une pièce.

Mais... J'ai testé la version 2.00 du 4 novembre 2010 qui se semble pas fonctionnelle, tout du moins dans ma configuration (Sauvegarde la source et pas le résultat).

Voir : Copie d'écran du programme.

Windz

Cet autre utilitaire en ligne de commande, écrit par Ildefonso Junior Zanette en 2002, fonctionne avec certaines limitations, et a semble-t-il été retiré d'Internet par son auteur.

Mais... J'ai testé la version 0.1.2.0 du 19 mai 2008 qui est une aide certaine. Il ne reste plus qu'à corriger les manques (Ajouter des BFC INVERTNEXT sur certaines primitives, ou les retourner en changeant le signe d'un paramètre de la matrice de transformation).

Mais (suite)... Depuis le 24 février 2011 vous pouvez trouver ce programme dans la mise à jour de LETGUI, qui l'interface.

Voir le manuel de Windz, pour plus d'informations sur son utilisation.

 

Validation des bords

Valider les bords c'est vérifier qu'il n'en manque pas, ou qu'il n'y en a pas de dupliqués ou superposés.

Bords manquants

Valider les bords manquants c'est valider que tous les bords possèdent une ligne.

Un moyen simple est de visualiser la pièce avec MLCad dans la vue 3D en mode filaire (bouton droit de la souris, et cocher "Filaire").

En tournant autour de la pièce, on peut vérifier que généralement 3 lignes ordinaires (ou plus) doivent partir de chaque sommet, sauf pour les bords arrondis qui n'en possèdent que 2 (la troisième étant une ligne conditionnelle). Nous nous occuperons dans le chapitre suivant de ces lignes conditionnelles. Dans l'image précédente il manque 3 lignes.

On peut faire la même chose avec LDView, en le paramétrant pour ne voir que les bords. Il faut cocher "Wireframe" et "Show edges only" dans l'onglet "Geometry" de la fenêtre des préférences (menu : "Edit : Preferences..."), ou cliquer sur l'icone "Wireframe", puis dans le menu de l'icone "Edge Lines" cocher "Show edges only".

Bords dupliqués

Il peut arriver que des lignes de bords soient dupliquées, c'est-à-dire que deux lignes existent avec les mêmes coordonnées. Une façon simple de le détecter est de le vérifier avec LDDP et sa commande "Tools / Error Checking / Run Error Check" (F10), puis dans la fenêtre qui s'ouvre en bas, de faire avec le bouton droit de la souris un "Autofix All Errors". Cela supprime (en autre) toutes les lignes dupliqués, même celles qui n'ont pas le même sens (P1->P2 et P2->P1 sont considérées comme identiques).

Mais cela ne permet pas de voir si des lignes ne sont pas dupliquées avec des lignes appartenant à des primitives. Une solution est de décomposer les primitives (avec LDDP commande "Tools / Inline Part", ou avec Inliner qui respecte le sens des faces), et d'utiliser LDDP avec sa commande "Tools / Error Checking / Run Error Check" pour rechercher les lignes dupliquées.
Si les primitives décomposées étaient toutes de type "rect", "rect3", ..., l'utilisation de Rectifier peut être envisagé pour reconstruire les primitives, sinon il vaut mieux traiter le cas de chaque ligne dupliquée dans le fichier d'origine (avant décomposition).

Bords superposés

Cas le plus difficile à détecter, puisqu'il faut regarder "visuellement" chaque ligne où elle se trouve. Voir à ce sujet le chapitre Chevauchement de lignes, de la page sur le Format des fichiers LDraw.

 

Lignes conditionnelles

Les lignes conditionnelles sont les éléments LDraw les plus difficiles à appréhender et maîtriser. Ces lignes forment la jonction entre les facettes des formes cylindriques ou sphériques. Comme toutes les lignes, elles ne sont pas visibles lorsqu'elles sont derrière, et visibles lorsqu'elles sont sur le bord. Par contre elles ne sont pas visibles lorsqu'elles sont devant, contrairement aux lignes standards. C'est pour cela qu'on les appelle "lignes conditionnelles" (conditional lines).

Ces lignes sont définies par 4 points. Les 2 premiers points définissant la ligne elle-même, et les 2 suivants définissent, respectivement avec les 2 premiers points, 2 plans donnant la limite de visibilité.

Voir le chapitre Type de ligne 5 : Insertion de ligne conditionnelle, de la page sur le Format des fichiers LDraw.

Visualisation des lignes conditionnelles
2 faces sans ligne conditionnelle visualisée.
... avec la ligne conditionnelle entre les 2 faces, visualisée dans LDView.
5 24 9.239 20 3.827 9.239 0 3.827 10 20 0 7.071 20 7.071
Cette autre forme de la ligne conditionnelle est valide, mais les points de contrôle traversent les faces, ce qui complique l'affichage lors de la conception de la pièce.
5 24 9.239 20 3.827 9.239 0 3.827 10 0 0 7.071 0 7.071
Pour corriger cela (mais ce n'est pas indispensable), il suffit que le 3ème et le 4ème point soit dans le même plan perpendiculaire au premier point (dans l'exemple mettre Y=20 aux 2 derniers points, comme dans le cas précédent.

Il existe trois utilitaires qui permettent de créer facilement des lignes conditionnelles : Edger, OLC, et maintenant Edger2. Mais aussi maintenant les éditeurs LDForge et LD Part Editor.

Pour faire l'inverse LDForge permet aussi de convertir des lignes conditionnelles en lignes ordinaires (changement de type et suppression des 2 dernières coordonnées), avec la commande : "Tools / Demote conditional lines".

De même LD Part Editor permet de convertir dans les 2 sens les lignes conditionnelles et lignes ordinaires, avec les utilitaires "C2L" et "L2C".

D'autres programmes génèrent également, en complément de leur utilité principale, des lignes conditionnelles, comme Lathe de LDraw Add-On, PlanarCheck, Ytruder, Coverer, Intersector, Unrectifier, ou Flipper.

Toutes les primitives comportant des parties cylindriques ou sphériques possèdent leurs propres lignes conditionnelles. Il n'y a donc pas lieu de les recréer.

Ces primitives lorsqu'elles sont partielles (1-4, 1-8, etc.), possèdent des lignes conditionnelles à leur extrémité qui ne sont pas toujours bien orientés, en fonction du besoin. Il est parfois nécessaire d'en ajouter une autre, mais cela ne permet pas toujours de respecter le problème du Chevauchement de lignes. Il peut être préférable de décomposer la primitive.

Edger

Cet utilitaire génère des lignes de bords et des lignes conditionnelles sur un maillage de faces.

Nota : Si les lignes conditionnelles attendues ne sont pas créées c'est souvent parce que les faces contiguës n'ont pas la même précision (3 et 4 chiffres après la décimale). Si cela ne pose pas de problème pour la pièce, mettre tout à 3 décimales avec LDDP en sélectionnant 3 décimales dans la boite de dialogue "Tools / Options..." et dans l'onglet "Configuration Values" mettre 3 dans le champ "Position Decimal Accuracy". (Pensez à remettre la valeur original après l'opération). Il faut ensuite sélectionner toutes les lignes du fichier nécessitant un arrondi, et d'utiliser la commande "Tools / Auto Round Selection".

Voir le manuel de Edger, et Construire des pièces avec Quad2Dat, Edger et Ytruder, pour plus d'informations sur son utilisation.

Edger2

Cet utilitaire génère des lignes de bords et des lignes conditionnelles sur un maillage de faces.
C'est une version améliorée de Edger, qui permet entre autre de gérer la précision de calcul.

Voir le manuel de Edger2, pour plus d'informations sur son utilisation.

OLC

Cet utilitaire génère des lignes conditionnelles sur un maillage de faces.

Voir le manuel de OLC, pour plus d'informations sur son utilisation.

 

Tenons

Un tenon ou plot (Stud en Anglais), est l'une des excroissances se trouvant généralement sur le dessus des pièces.

Pour plus d'informations sur les tenons standards voir le chapitre : Primitives spéciales tenons (Stud) de ma page sur les primitives.

Les programmes affichant les fichiers LDraw, conformément au Standard LDraw actuel, ont la possibilité d'afficher les tenons suivant 4 ou 5 niveaux de précision ou rendu plus ou moins réaliste, et généralement sans le logo, en contrepartie d'un temps d'affichage plus ou moins long :

  1. Pas d'affichage des tenons.
  2. Affichage super rapide par une ligne (studline.dat).
  3. Affichage en basse résolution (stu2xxx).
  4. Affichage standard (studxxx).
  5. Affichage haute résolution ou haute définition, actuellement spécifique à chaque programme, ou intervention manuelle sur les primitives officielles.

Nota : Il serait peut-être bon d'envisager une nouvelle catégorie de primitives de tenons pour la catégorie "haute définition" du genre stu3xxx, pour officialiser ces primitives, à condition que les programmes tel que LDView, MLCad, ..., ajoutent une option pour les gérer.

Orientation des tenons

Si la pièce comporte des tenons (Studs), il faut vérifier qu'ils sont bien orientés. C'est-à-dire que le logo LEGO est dans le même sens sur la pièce réelle, et avec les logiciels de rendu.

Voici différentes possibilités pour visualiser les tenons avec logo :

Tenons avec logos sous LDView

Sans primitive spéciale on peut utiliser directement LDView en cochant "Texture studs" dans "Primitive substitution".


Vous pouvez voir, sur la partie droite de l'image, les logos sur les tenons pleins dans un modèle LDraw.

Mais, actuellement, ce programme ne visualise pas les logos des primitives "stud2.dat", c'est-à-dire les tenons creux non débouchants.

Tenons avec logos sous LD Part Editor

Sans primitive spéciale on peut utiliser directement LD Part Editor en cochant dans le menu contextuel d'une vue "View Actions / Stud Logo".


Le programme affiche des logos filaires sur les tenons pleins (stud.dat) et creux (stud2.dat).

Tenons avec logo sous tous les programmes de visualisation

Pour afficher tous les types de tenons avec logos, il faut actuellement passer par des primitives spéciales, à mettre en lieu et place des primitives standards.
Voir à ce sujet ma page Pièces LDraw de haute définition, et en particulier le chapitre Tenons avec logos.

Tenons des pièces asymétriques

En raison de cette orientation, et visualisation particulière, les primitives "stud" et "stug" ne doivent pas être symétrisées, ni déformées.

Dans le cas des pièces asymétriques à tenons, comme les ailes (wing), il faut mettre la partie principale dans un sous-fichier, et mettre les tenons dans le fichier principal.


Exemple avec les tenons spéciaux de J.C. Tchang et les pièces 43723 et 43722, dont la partie principale symétrisée est dans le fichier s\43722s01.dat.

Attention : LDView redresse de lui-même les tenons symétrisés en cochant "Texture studs" dans "Primitive substitution". Pour visualiser les tenons symétrisés avec ce programme, il faut utiliser la méthode décrite ci-dessus avec les Tenons avec logos.

Tenons creux et tenons creux débouchants

Dans les pièces il est préférable d'utiliser la primitive stud2.dat lorsque le trou n'est pas débouchant, et comporte un logo, et d'utiliser la primitive stud2a.dat lorsque le trou est débouchant et donc sans logo, quitte à ajouter si besoin le bord 4-4edge manquant.

Tenons de basse résolution (Fast-Draw)

A chaque fois qu'une primitive de tenon standard (studxxx) est créé il faut également créer une autre primitive (stu2xxx), pour le mode d'affichage basse résolution.

Lorsqu'ils sont circulaires ces tenons sont créés avec 8 facettes, alors que les tenons standards le sont avec 16.

Cette primitive ne doit pas appeler en sous-fichier la primitive du tenon standard, même s'il est identique (voir stud12 et stu212 par exemple), sinon les programmes qui font la substitution tenon standard -> tenon basse résolution répètent indéfiniment l'opération et se bloquent. Il faut dans ce cas faire une décomposition (Inline) du sous-fichier.

Ces primitives ont l'expression : (Fast-Draw) en fin de "Description" (1ère ligne).

Si certains se posent la question sur l'utilité de ces primitives avec les ordinateurs actuels, il faut toujours garder à l'esprit la compatibilité avec l'historique et les programmes de modélisation ou de rendu qui gèrent ces primitives. A mon sens, elles sont encore utiles lorsque le modèle comporte de très nombreuses pièces (plus de 3000), et que la taille du modèle ne permet pas de faire un zoom rapproché.

Exemple de message d'erreur constaté avec MLCad lorsqu'une primitive basse résolution manque :

Dans cet exemple, ce message bloque le chargement d'un fichier qui utilise la primitive standard stud4c, et il faut cliquer sur l'un des boutons autant de fois qu'il y a cette primitive dans le modèle...., ce qui peut être très long....

 

Couleur

Nous ne nous sommes pas occupés, jusqu'à maintenant, de la couleur des pièces. C'est le moment de le faire.

Couleur des pièces standards

Il y a 2 couleurs spéciales pour toutes les pièces standards :

Ces couleurs spéciales permettent de définir dans le modèle LDraw la couleur finale de la pièce, et d'avoir 1 seul fichier par pièce monochrome, quelle que soit sa couleur finale.

Couleurs affectées

En dehors de ces 2 couleurs spéciales, les autres couleurs peuvent (doivent) être utilisées uniquement dans les motifs (Pattern), ou pour définir des pièces codifiées ayant 1 numéro par couleur affectée (Shortcut_Physical_Colour).

Si une pièce existe avec le même motif, mais ayant ce motif avec des couleurs différentes, alors il faut créer plusieurs fichiers. Par contre si une pièce existe en plusieurs couleurs avec un motif toujours de la même couleur alors un seul fichier suffit. En effet, par convention, on doit toujours pouvoir changer la couleur de la pièce (couleur du plastique d'une pièce réelle) alors que le motif (décor) doit avoir une couleur figée dans le fichier.

Pour une liste des couleurs disponibles, voir le chapitre Couleurs, de ma page Format des fichiers LDraw.

Attention, il ne faut pas utiliser les couleurs définis dans MLCad version 3.20 directement, car elles peuvent être parfois obsolètes (ce n'est plus vrai en version 3.30). Il faut utiliser les couleurs définies dans le fichier ldconfig.ldr officiel se trouvant avec la dernière mise à jour des pièces officielles de LDraw.org.

Exceptionnellement, il pourra être utilisé dans les pièces à motif des couleurs directes lorsque la couleur réelle n'existe pas dans le fichier ldconfig.ldr. Voir : Couleur directe. Pour la gestion des couleurs directes voir : Couleur des entités de LDForge et son bouton "Direct Color".

Pour des considérations sur les couleurs variables (irisée, thermo-luminescente, phosphorescente, réfléchissantes, ...), voir le chapitre : Motif à couleurs variables, sur ma page sur les Autocollants.

Couleurs de travail

Lors de la création de la pièce, il m'arrive d'affecter des couleurs aux différentes lignes du fichier, pour visualiser les limites d'une primitive par exemple, ou bien, mieux voir où se trouve la ligne en cours.

A cette étape, c'est le moment de tout remettre en ordre et d'affecter les couleurs 16 et 24 à tous les éléments (hors motif, naturellement). LDDP, MLCad LDForge ou DATheader permettent de faire cela très facilement.

Pièce à 2 couleurs dans la masse (à double injection)

Certaines pièces sont fabriquées avec 2 couleurs dans la masse dans le même moule. Elles sont reconnaissables car la limite entre les deux couleurs n'est pas franche et varie légèrement entre deux pièces. Les matériaux des 2 parties peuvent également être différents : partie rigide en ABS standard et partie pouvant être dangereuse (pointue par exemple) en plastique souple.

Quelle est la partie du fichier qui va recevoir la couleur figée, et l'autre la couleur variable (16 Main-color, 24 Edge-color) ? Cela est laissé à l'appréciation de l'auteur et des vérificateurs. Le choix peut être pour la partie variable la partie la plus grande, la partie servant de base à la pièce, ou la partie opaque d'une pièce en partie transparente.

La création de ces pièces au format LDraw pose un petit problème sur la couleur des lignes de bords.

Dans l'exemple ci-dessus les parties blanches sont en couleur figée, et les parties bleues sont mises en couleur variable 16 (Main-color).

L'ensemble est composé de deux primitives box5-4a.dat, et le dessus de la première marche en 1 est composée d'une primitive rect3.dat, alors que la partie en 2 est composée d'un quadrilatère et de 3 lignes (décomposition d'une primitive rect3.dat).

Ce sont ces 3 lignes qui peuvent poser problème si elles sont mises en couleur figée (ici blanc à droite). Elles doivent avoir la couleur 24 (Edge-color).

Si une partie de la pièce est prévue pour être transparente, il faut ajouter une ou des faces pour fermer la partie opaque, pour ne pas en voir l'intérieur, comme sur l'image ci-dessus à gauche. Sur la partie droite de l'image un quadrilatère a été ajouté à la jonction entre la partie opaque et la partie transparente. Par contre il n'y a pas de ligne de bord sur cette jonction.

ColorSum

Le programme ColorSum de Max Martin Richter permet de rechercher le code RVB en hexadécimal (Hex RGB) d'une nouvelle couleur (New Colour) à partir de la moyenne des codes de 2 couleurs et également de trouver la couleur LDraw existante la plus proche (Nearest LDraw Colour).

Voir sur le forum LDraw.org : ColorSum (en Anglais).

LDDMaker

Le programme LDDMaker de Michael Heidemann permet de créer le fichier d'une pièce codifiée (Shortcut_Physical_Colour), c'est-à-dire un fichier avec le numéro utilisé par TLG ou dans LDD pointant vers le fichier réel LDraw. Ce numéro à sept chiffres correspond à la forme de la pièce affectée d'une couleur particulière.

 

Réduction du fichier

Réduire le fichier, c'est réduire sa taille en supprimant tous les éléments inutiles.

 

Arrondir les décimales

Certains utilitaires créent des valeurs avec beaucoup de décimales ce qui n'est pas forcément utile en final. Dans la pratique, 3 ou 4 décimales sont amplement suffisantes. Voir à ce sujet : Précision et format des valeurs de ma page Format des fichiers LDraw.

LDraw Design Pad permet de faire les arrondis. Voir le chapitre Réduction de nombre de décimales.

Il existe un programme indépendant de Jim DeVona nommé LDTrim, qui permet également de faire cela.

Egalement DATHeader permet de le faire, avec même un choix différent possible entre le nombre de décimales dans les positions, et dans la matrice.

On peut aussi utiliser LDForge ou LD Part Editor.

 

Supprimer les lignes de commandes dupliquées

Au cours du développement de la pièce, il peut arriver que l'on duplique certaines parties et que 2 entités graphiques soient superposés. Un moyen de le vérifier et de les supprimer est d'utiliser DATHeader ou LDraw Design Pad avec la fonction Test des erreurs.

Nota : Voir également au chapitre Validation des bords.

 

Regrouper les triangles

Lorsque 2 faces triangulaires ont un côté commun, et sont dans le même plan, il peut être judicieux de les transformer en 1 seul quadrilatère. On peut le faire au coup par coup, avec LDDP. Voir le chapitre Traitement des faces.

Un moyen de les rechercher et de les convertir, est également d'utiliser DATHeader, dans une version récente.

Un autre moyen est d'utiliser Rectifier, qui convertit, entre autre, 2 triangles ayant un bord commun en un quadrilatère.

Mais ceci va à l'encontre de l'opinion de certains qui préconisent l'utilisation des triangles en facettisation, et il faut faire attention à ne pas créer par la même occasion des jonctions en "T".

Voir également LDForge et LD Part Editor.

 

Regrouper les faces et bords

Après toutes les étapes précédentes, il peut être judicieux de réduire la taille du fichier en convertissant les quadrilatères et lignes de bords en primitives rect. Le programme Rectifier est là pour cela.

Pour que la chose soit efficace, il est important de faire cette opération après avoir traité le sens BFC des faces, et corrigé les couleurs.

Pour des questions de développement important, ce programme se limite aux primitives planes. Après son exécution l'on peut toujours faire manuellement une recherche pour passer aux primitives box.

Rectifier

Cet utilitaire permet de faire deux choses :
- Associer 2 triangles ayant un bord commun en un quadrilatère.
- Associer des quadrilatères et des lignes correspondant a ses bords en primitive de la série rect.

Nota : Ce programme n'assemble les triangles que s'ils ont la même direction (sens BFC), et la même couleur.
Les quadrilatères en forme de parallélogramme sont traités par le programme et prennent comme valeurs de matrice des valeurs qui suivent la technique de déformation de primitives.

Voir le manuel d'utilisation de Rectifier pour plus d'informations.

Unrectifier

Cet utilitaire fait l'inverse du précédent, dans le but de retravailler différemment le fichier.

Voir le manuel d'utilisation de Unrectifier pour plus d'informations.

 

Reprendre une pièce Officielle

Il est parfois utile de reprendre une pièce Officielle, car comme nous l'avons vu plus haut, elles ne sont pas toujours aux standards actuels.

Principales actions à mener :

Nous verrons plus loin, comment mettre à jour l'entête du fichier, et comment soumettre ce type de pièce au "Part Tracker".

Nota : Cette méthode générale peut s'appliquer également à des pièces "Non Officielles", "abandonnées" depuis plus de 3 mois dans le "Part Tracker", et restées sans correction.

Exemple de reprise de pièce :

La pièce 4497.dat telle qu'elle se présentait dans la bibliothèque LDraw à gauche, au milieu une photo d'une pièce réelle, et à droite le fichier LDraw après reprise de la forme.

Nota : Il existe dans LDCad v1.4 un utilitaire nommé libfix qui permet une autocorrection du format des fichiers LDraw de la base de données officielle ou non.

 

Reprendre une pièce NonCA

Les pièces NonCA sont les pièces se trouvant dans la liste des pièces officielles du site LDraw.org, dont les auteurs n'ont pas voulu signer la charte concernant les droits de distribution, ou qui n'ont pas donné signe de vie sur ce sujet.

Ces pièces doivent être refaites comme de nouvelles pièces.

Voir la liste de ces pièces sur la page NonCA-Parts in need of re-writing (en Anglais).

Bonne nouvelle, il semble maintenant que toutes les pièces NonCA soient refaites...

 

Reprendre une pièce LEGO Universe Team (LUT)

Ces fichiers de pièces proviennent de l'équipe de développement LEGO (LEGO Universe Team) et ont été faites pour le jeu vidéo en ligne LEGO Universe (disparu en janvier 2012).

Voir la liste des pièces restantes et les spécifications sur la page des 2 premières livraisons L(EGO)Draw parts chart (en Anglais), et la liste des pièces de tous les envois à partir de la page L(EGO)Draw Parts (en Anglais).

Les fichiers fournis sont bruts et doivent être repris pour pouvoir être utilisés et soumis sur le "Parts Tracker" (suivi des pièces de LDraw.org).

Les principales actions à mener sont :

Spécifications particulières de l'entête :

0 PartDescription
0 Name: Filename.dat
0 Author: RealName [UserName]
0 !LDRAW_ORG Unofficial_Part
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt
...
0 !HISTORY YYYY-MM-DD {The LEGO Universe Team} Original part shape
0 !HISTORY YYYY-MM-DD [UserName] File preparation for LDraw Parts Tracker

Nota : La date YYYY-MM-DD est la date d'origine (History date) se trouvant en seconde colonne de la liste des pièces, ou au début de la page pour la troisième livraison et les suivantes.

Cette date est :

Nota : Il y a eu plusieurs sources de fichiers, chacune ayant une spécification particulière de l'entête.
Voir : Information sur la source.

 

Validité des fichiers LEGO Universe Team ?

Attention, les fichiers "LEGO Universe Team" sont des représentations virtuelles de pièces réelles, créés de façon parfois simplifiées par rapport aux fichiers servant à la fabrication des moules et donc des pièces réelles. Ils ne sont pas toujours une représentation de la réalité comme on veut le faire avec le système LDraw. Voici par exemple la porte vitrée 60616 "Glass for Door 1 x 4 x 6".

Zoom de l'articulation de la pièce 60616.
En haut : Modélisation d'après la pièce réelle.
En bas  : Modélisation d'après le fichier "LEGO Universe Team".

En conséquence, il faut parfois modifier la forme du fichier LUT pour se rapprocher le plus possible de la forme réelle.

 

Reprendre un maillage LDD

Certaines personnes capturent le maillage de pièces complexes à partir de leur visualisation dans le programme LDD. La méthode est décrite au chapitre : Capture de maillage LDD.

Spécifications particulières de l'entête (NON officiel) :

...
0 !HISTORY YYYY-MM-DD {LEGO Digital Designer} Original part shape
0 !HISTORY YYYY-MM-DD [UserName] File preparation for LDraw Parts Tracker

Nota : La date YYYY-MM-DD (Année-Mois-Jour) est la date de création de la pièce LDraw.

 

Reprendre une pièce "Unofficial"

Ces pièces sont les pièces "Unofficial" (Non Officielles) du site LDraw.org. On peut suivre leur état dans la partie "Parts Tracker" ou "PT" (Suivi des pièces) de ce site.

Si vous modifiez une pièce que vous avez réalisée, il n'y a pas de problème, la nouvelle version remplacera l'ancienne. Voir au chapitre "Soumettre la pièce" pour la marche à suivre.

Si vous n'êtes pas l'auteur du fichier d'origine, il est bon de laisser passer un délai de 3 mois pour permettre à son auteur de faire lui-même les corrections attendues. Passé ce délai minimum une nouvelle version peut être soumise par vous. Si l'adresse de courriel de l'auteur est disponible, un petit message (en Anglais), sera plus courtois.

Avant de la reprendre, il est bon de lire la liste des remarques notées par les vérificateurs, même si toutes les remarques ne sont pas à prendre en compte, car il peut y avoir divergence de vue entre les vérificateurs. Bon d'accord... je dois m'améliorer dans ce domaine là...

 

Finir le fichier

Finir le fichier, c'est le rendre apte à passer les contrôles du Part Tracker.

Il faut d'abord bien formater l'entête du fichier, puis nettoyer le reste du fichier, et enfin valider l'ensemble du fichier en vérifiant qu'il ne génère aucun message d'erreur.

 

Entête du fichier

L'entête du fichier correspond aux lignes commençant par 0 en début de fichier et les lignes vides intercalaires. Il y a un certain nombre de règles à respecter concernant :

En dehors de ces éléments principaux, il y a d'autres informations mises dans l'entête du fichier. Pour en avoir une information complète, voir le chapitre Méta-commandes officielles de l'entête du fichier, de ma page Format des fichiers LDraw.

Pièces à variantes

Pour les pièces à variantes, c'est-à-dire les pièces qui ont subi une modification de forme au cours du temps, tout en gardant son numéro, il faut créer :

Pièces alias

Pour les pièces alias, c'est-à-dire les pièces qui ont plusieurs numéros de moule, il faut créer :

Nota : Malheureusement pour l'instant il n'y a pas de distinctif dans la désignation qui permette sous MLCad de savoir si on a affaire au fichier principal ou au fichier alias. Voici un tableau récapitulatif.
Depuis 2013, ces pièces ont comme premier caractère = comme signe distinctif dans leur désignation.

Désignation Pièce
Opaque
Pièce Alias
Transparente
Pièce Alias
Laquée ou autre
Ball 52mm Diameter 22119   51930
Brick 1 x 1 3005 3005
30071
 
Brick 2 x 2 Corner Round 3063 45417  
Brick 2 x 4 with Curved Top 6192 30337  
Brick 2 x 6 2456   44237
Brick 4 x 6 2356   44042
Cone 1 x 1 4589 6188  
Cone 1 x 1 with Stop 59900 64288  
Cone 8 x 4 x 6 Half 48310 47543  
Container Box 2 x 2 x 2 Door with Slot 4346 30059  
Container Box 2 x 2 x 2 with Hollow Studs 4345b 30060  
Cylinder 2 x 4 x 4 6218 6259  
Dish 2 x 2 2654 54196  
Dish 4 x 4 Inverted 3960 30065  
Dish 6 x 6 Inverted With Hollow Studs 44375a 45729  
Door 2 x 8 x 6 Revolving 30102 30344  
Door 2 x 8 x 6 Revolving with Shelf Supports 40249   41357
Fence 2 x 12 x 6 30110   60791
Glass for Window 1 x 4 x 3 Opening   86210 60603
Magnet Cylindrical 70023   70793
Magnet Cylindrical Casing 2959   4106
Minifig Cap Aviator 30171   90510
Minifig Cup 3899 6264  
Minifig Goblet 2343 30002  
Minifig Hook Double 55707d   56619
Panel 1 x 2 x 1 with Square Corners 4865a 30010  
Panel 1 x 2 x 2 Reinforced with Hollow Studs 87552 94638  
Panel 1 x 2 x 2 with Hollow Studs 4864b 6268b  
Panel 1 x 2 x 2 with Solid Studs 4864a 6268a  
Panel 1 x 2 x 3 with Hollow Studs 2362b 30009  
Panel 1 x 4 x 3 with Hollow Studs 4215b 30007  
Panel 1 x 6 x 5 59349 59350  
Panel 6 x 8 x 4 Fuselage 42604 55539  
Panel 10 x 6 x 11 2408 30097  
Panel 10 x 10 x 2 & 1/3 Quarter Saucer Top 30117 30320  
Plate 1 x 1 Round 4073   6141
Plate 1 x 1 with Tooth 49668   49673
Plate 2 x 2 with Towball 3731   3729
Slope Brick 31 1 x 1 x 2/3 54200   50746
Slope Brick 33 3 x 6 3939   6208
Slope Brick 75 2 x 2 x 3 3684   30499
Slope Brick Curved 6 x 1 42022 41762  
Slope Brick Curved 6 x 1 Inverted 42023 41763  
Slope Brick Round 3 x 8 x 2 Left 41750 42020  
Slope Brick Round 3 x 8 x 2 Right 41749 42019  
Technic Beam 4 x 0.5 Liftarm with Boss 2825   32006
Technic Bionicle Weapon Throwing Disc 32533   32171
Technic Brick 4 x 6 with Open Center 2 x 4 32531 40344  
Technic Brick 6 x 8 with Open Center 4 x 6 32532 40345  
Technic Dome 7 x 7 x 5 57587   60288
Technic Engine Cylinder Head 2850 32061  
Technic Flame 2 x 12 32558   57488
Technic Gearbox 2 x 4 x 3.333 6588 32239  
Technic Panel Fairing #1 32190   22749
Technic Panel Fairing #2 32191   22750
Technic Panel Fairing #3 32188   22972
Technic Panel Fairing #4 32189   22973
Tile 1 x 1 with Groove 3070b 30039  
Tile 1 x 2 Grille with Groove 2412b 30244  
Turntable 4 x 4 (Complete) 3403c01   73603
Tyre 12/ 40 x 11 Wide 6015   60700
Windscreen 10 x 4 x 2 & 1/3 Canopy 2507 2507 30058

DATHeader

Ce programme permet de gérer facilement la syntaxe de l'entête du fichier. Dans ses versions récentes, il est également un vérificateur et correcteur de format, sur l'entête, le numéro, les couleurs, les faces (triangles et quadrilatères), le nombre de décimales, les lignes dupliquées, ...

Voir le manuel de DATHeader, pour plus d'informations sur son utilisation.

Ce programme, en plus de sa fonction de gestion de l'entête, permet de "nettoyer" le fichier de lignes insérées (0 ROTATION), modifiées (0 BFC CERTIFY INVERTNEXT) ou supprimées (lignes vides) par MLCad.

Il ne faut donc plus modifier le fichier avec MLCad après le nettoyage effectué par DATHeader, ou sinon le repasser une nouvelle fois par DATHeader.

 

Nettoyage du fichier

Pour nettoyer le fichier, il faut supprimer toutes les lignes de commandes mises en commentaire, et les commentaires inutiles, également les lignes vides inutiles, et les lignes dupliquées.

Un dernier nettoyage avec DATHeader, permet de s'assurer qu'il n'y a pas de ligne modifiée par MLCad.

Depuis la version 3.00 de DATHeader, ce programme valide le format binaire du fichier et la présence des caractères <CR> <LF> en fin de lignes et de fichier.

LDMakeList permet de vérifier l'existence de caractère Non UFT-8 dans les fichiers de la bibliothèque.
Warning! File LS22.dat contains non-UTF-8 characters!

 

Vérification de la géométrie

Voici quelques pages de référence (en Anglais) sur la vérification du fichier :

Nota : Ces pages concernent les personnes qui vont vérifier la validité de votre fichier lorsqu'il sera soumis au "Parts Tracker". Les informations les plus importantes ont été reprises dans cette page.

Nous allons utiliser successivement les 3 programmes suivants pour rechercher toutes les erreurs pouvant rester dans le fichier de pièce.

Vérification du fichier sous LDDP

Vérifier qu'il n'y a pas d'erreur de syntaxe avec la commande du menu Tools / Error Checking / Run Error Check, ou en cliquant sur "Check for errors" dans la barre d'outils, ou simplement sur la touche "F10".

No Errors Found! doit s'afficher en bas de la fenêtre du programme.

Cela permet de vérifier que toutes les lignes sont correctement écrites.

Si des erreurs apparaissent il faut les corriger. Voir méthode générale dans le chapitre Test des erreurs de LDraw Design Pad (LDDP).

Vérification du fichier sous LDView

Avec ce programme, on peut faire une dernière vérification sur la visualisation de la pièce.

Voir le manuel de LDView pour effectuer les différentes vérifications.

Vérification du fichier sous MLCad

Il faut enfin mettre le fichier dans le dossier des pièces LDraw, puis après avoir fait un "Fichier / Scanner Pièces" sous MLCad de valider que la pièce se trouve bien au bon endroit dans l'arborescence des pièces et qu'elle est bien orientée et positionnée en l'insérant dans la vue 3D avec une pièce de même type.

Une dernière vérification est à faire en utilisant la pièce dans un assemblage, en lui changeant la couleur, en la dupliquant avec un pas standard...

Nota : Si vous faites une modification dans MLCad au cours de cette vérification, il faut "nettoyer" une nouvelle fois le fichier avec DATHeader (voir plus haut).

 

Soumettre la pièce

Pour soumettre une pièce sur le "Parts Tracker", il faut avoir un compte sur le site LDraw.org, et avoir rentré son Login.

Pour obtenir un compte et devenir un auteur de la communauté LDraw.org, il suffit d'en faire la demande par courriel à l'adresse indiquée dans l'image qui suit.

 

Soumettre une pièce nouvelle

Si la pièce est une pièce nouvelle elle peut être soumise sans problème (si elle respecte les standards LDraw) sur le Parts Tracker, le gestionnaire des pièces en cours de validation (PT pour les intimes).

Surtout ne PAS cocher "Replace existing file" (Remplace fichier existant). Cela évite d'écraser le fichier d'un autre auteur de pièce qui a été plus rapide que vous.

Après soumission, le résultat des tests de validité s'affiche.


 

Soumettre une pièce existante dans PT

Si la pièce est déjà présente dans PT, on peut en soumettre une nouvelle version améliorée, mais il est bon de respecter une certaine courtoisie si on n'est pas l'auteur du fichier d'origine. Il est bon en particulier de laisser un délai de 3 mois passer pour permettre à son auteur de faire lui-même les corrections attendues.

Ne pas oublier dans ce cas de cocher "Replace existing file" pour écraser la version précédente.

 

Soumettre une pièce officielle

Si la pièce est une pièce officielle modifiée, non présente dans PT, il faut l'envoyer à l'adresse de courriel des administrateurs de LDraw.org.

Par contre, si cette pièce officielle est déjà présente dans PT, il faut la resoumettre comme une pièce ordinaire, en respectant les mêmes conditions.

 

Suivre les commentaires

Si la pièce a été soumise récemment, on peut suivre les commentaires sur : Parts Tracker Activity Log.

Sinon, il vaut mieux accéder directement à la page de l'historique de la pièce en faisant une recherche par son numéro ou son nom.

 

Mettre à jour le fichier

En fonction des commentaires des vérificateurs, il est parfois nécessaire de reprendre partiellement la pièce.

Ne pas oublier, après correction de :

 

Actions des vérificateurs (Reviewing)

Les vérificateurs doivent mener des actions de vérifications qu'il est important de connaître (même si je ne suis pas moi-même un vérificateur). Par contre, en principe, ils ne doivent pas modifier le fichier.

En voici une liste :

Nota : Si une pièce ne répond pas à tous les critères ci-dessus, pour la mettre tout de même à disposition rapidement lorsque les modifications sont importantes l'on peut ajouter (needs work) dans la désignation.

La liste précédente a pour origine un message de Jim DeVona sur le forum de LDraw.org, qui utilise uniquement des programmes compatibles avec le matériel Mac (Bricksmith, LDView, L3P, Planarcheck, L3Lab).
Les vérificateurs travaillant sur PC ont le choix d'autres programmes (MLCad, LDDP, DATHeader, ...).

 

Conclusion

Félicitations, si vous avez tout lu. Vous devriez pouvoir vous lancer dans la création de votre première pièce (mais je sais que vous ne m'avez pas attendu), ou de gagner du temps sur la création de votre prochaine.

Bonnes créations,
         J.C. Tchang