LDCad

Mise à jour de la page : 24 décembre 2016.
    Set 700/1 de 1950
J.C. Tchang
Original Version
on Roland Melkert Site
.

Le programme LDCad est un éditeur de modèle LDraw créé par Roland Melkert et utilisant la bibliothèque de pièces de LDraw.org. Ce manuel est basé sur la version 1.6 Beta 1a du programme.

L'écran principal du programme peut se diviser ainsi :

 

Navigation rapide

 

Téléchargement

Voir la page de téléchargement sur le site de l'auteur du programme :
http://www.melkert.net/LDCad/download.

Personnellement, j'utilise la version pour Windows format archive. Prendre une des versions Linux pour ceux qui utilisent ce système.

Si vous voulez utiliser la dernière version de développement (moins stable) voir :
http://www.melkert.net/LDCad/nextVer
.

Vous pouvez également utiliser la version (v1.4 actuellement) intégrée au système d'installation LDraw "tout en un", voir :
LDraw All-In-One-Installer.

 

Historique

 

Installation

En pré-requis, la bibliothèque de pièces LDraw doit être installée.

Lancer l'exécutable d'installation ou décompresser le fichier archive avec par exemple 7-Zip, puis valider les droits d'utilisation et donner le dossier d'installation du programme. Personnellement j'utilise le dossier :
C:\LEGO\LDCad

Au premier lancement le programme demande l'emplacement de la bibliothèque LDraw :

Il suffit d'indiquer le dossier d'installation de votre bibliothèque de pièces LDraw.

Dans le panneau pièces s'affiche un message "Updating content / Please wait" ce qui veut dire que son contenu est en cours de mise-à-jour et qu'il faut attendre un peu pour que le panneau s'affiche.

Configuration LUA

Pour éditer les scripts à partir de LDCad il faut configurer un programme par défaut pour les fichiers .lua.

Pour cela, sous Windows, avec le bouton droit de la souris, ouvrir les "Propriétés" d'un fichier .lua et sélectionner un programme à utiliser par défaut pour ouvrir ce type de fichier.

Ce programme peut être Notepad (fourni avec Windows), Notepad2 (un peu plus évolué), mais de préférence Notepad++ (affiche la syntaxe LUA), ou LuaDevelopmentTools (LDT) (gère la syntaxe standard).

 

Introduction

Mon but (dixit l'auteur du programme) avec cet éditeur est d'avoir une version "moderne" de la façon de faire de MLCad. Donc, bien qu'il y ait seulement une vue "3D" par défaut, vous ne pouvez modifier les choses que dans deux dimensions à un moment donné. C'est fondamental de vous représenter en mode 2D sur un plan "devant" (front), "côté" (side) ou "dessus" (top). Vous choisissez le plan à utiliser avec le référentiel en bas à gauche (boussole) et avec le menu grille (Grid). Il est bon de jouer avec insérer et déplacer un truc pour comprendre ce que je dis ici.

Pour bien démarrer avec LDCad, je vous conseille de parcourir le chapitre : Description de l'interface utilisateur et la revue des différents panneaux qui suit, puis d'utiliser le Tutoriel : Edition de base pour démarrer un premier modèle.

 

Description de l'interface utilisateur

L'interface possède trois sections principales, à savoir : Le panneau couleurs (en haut à gauche par défaut), le panneau pièces (en bas à gauche) et la vue d'édition principale (le reste). Une quatrième section optionnelle permet d'afficher le panneau du code source du fichier. Les panneaux Couleurs et Pièces, s'interprètent d'eux-mêmes, mais leur description, plus bas, peut permettre d'en savoir plus. Utilisez-les pour naviguer à travers les couleurs ou les pièces disponibles. Ces deux panneaux sont complètement personnalisables en éditant un fichier INI, mais pour le moment le paramétrage par défaut devrait suffire.

Pour commencer à travailler, soit démarrer un nouveau modèle soit en ouvrir un existant. Les deux actions peuvent être faites dans le panneau "Getting started" au démarrage du programme, ou ensuite avec le menu "File", ou avec le bouton "Open a file", ou avec le menu contextuel "File" ou "Main menu / File" de l'éditeur que vous ouvrez avec un clic droit n'importe où dans la fenêtre graphique. Dans ce menu aller dans le menu principal ("Main menu") puis fichier ("File") et sélectionner ouvrir un fichier ("Open ..") ou créer un nouveau fichier ("New model"). Quand un fichier est actif (dans une session) la fenêtre graphique vous permet d'accéder à plusieurs aides à l'édition.

En bas à gauche vous pouvez voir un référentiel ou boussole ("Compass") qui vous donnera une information sur l'orientation du monde, et le plan courant de la grille. Quand la souris est sur ce référentiel il s'agrandit pour passer en mode interactif, ainsi vous pouvez l'utiliser pour changer de plan de travail (devant/côté/dessus), déplacer le point de vue en utilisant les flèches dans les coins de la grille, vérifier et fixer les pas de la grille, ou changer les différents modes d'utilisation de l'éditeur.

En haut de la fenêtre graphique, vous trouverez une information sur l'étape courante sur la gauche et une information sur la session du modèle en cours à droite. Les sessions sont les instances d'édition d'un fichier ou sous-fichier LDraw. Il y a une session par fichier ouvert et pour les fichiers multiples MPD il y a une session supplémentaire par sous-fichier. Vous pouvez passer d'une session à l'autre en cliquant sur le nom de session qui s'affiche en haut à gauche de la fenêtre graphique et en sélectionnant une autre session dans ce menu. Ce menu est aussi accessible par un clic sur le menu "Session / Change current session".

Je pense que c'est pour l'instant assez d'informations sur l'interface de base, et le reste deviendra clair pendant les activités d'édition. Si ça ne l'est pas, lire la suite. Egalement, quand vous avez un doute sur la fonction d'un bouton il y a normalement un message d'explication (en anglais) dans la barre de statut en bas de la fenêtre du programme.

 

Panneau couleurs

Panneau de choix des couleurs avec son menu racine (Main group) :

- En haut : 6 onglets de sélections différentes.
- Au milieu : Un menu de catégories de couleurs (Solid plastic=Opaque, Transparent=Transparente, Metallic=Métallique, Rubber=Caoutchouc, Plastic=Opaque, Special=Couleur principale (16) et de bord (24), Favorites=Favorites, History (Today/Week/Month/All)=Historique du jour ou semaine ou mois ou toutes.
- En dessous le numéro, (code de catégorie), et le nom de la couleur par défaut.
- En bas la couleur sélectionnée par défaut, et les dernières utilisées.

Panneau avec le camembert de sélection d'une couleur lorsque qu'une catégorie a été sélectionnée :

- En haut : 6 onglets de sélections différentes.
- En dessous : Catégorie sélectionnée.
- Au centre : Un des camemberts de sélection de couleur. On peut faire tourner le camembert avec la molette de la souris, le basculer avec Ctrl+Molette et cliquer sur une des parts colorées pour qu'elle devienne couleur par défaut. Lors du survol du camembert le numéro et nom de la couleur survolée s'affiche en vert en dessous et dans la barre de statut.
- Flèche haut : Retour dans les catégories.
- Flèches horizontales : Passage entre les différents camemberts de la catégorie.
- Valeurs à gauche (0-70): Fourchette des numéros de couleurs affichés.
- Valeurs à droite (1/10): Numéro du camembert affiché/Nombre de camemberts.
- En dessous le numéro et le nom de la couleur sélectionnée ou survolée. Derrière le numéro s'affiche une code de catégorie (P=Opaque, T/P=Transparente, T=Transparente à inclusion, M=Métallique ou Métal, C=Chromé, PL=Nacrée, R=Caoutchouc, T/R=Caoutchouc transparent)
- En bas la barre de la couleur sélectionnée par défaut, et les dernières utilisées. En cliquant sur une des dernières utilisées, elle devient de nouveau couleur par défaut.

La couleur sélectionnée devient la couleur par défaut de toutes les nouvelles pièces, et les briques du panneau pièces s'affichent avec cette couleur.

Pour l'utilisation des couleurs voir le chapitre : Couleur, et les raccourcis clavier : Raccourcis clavier et souris : Panneau couleurs.

Si vous avez configuré le panneau couleurs pour avoir vos catégories personnelles, la catégorie "[Back]" permet d'accéder aux différentes configurations et au "Main group" de la configuration par défaut ("default"). Voir le chapitre : Configuration panneau couleurs.

Couleurs favorites

La catégorie de couleurs "Favorites" est vide par défaut. Mettez-y vos couleurs favorites. Cela peut être par exemple votre charte de couleurs pour créer un modèle.

Pour ajouter une couleur dans cette catégorie, sélectionner une couleur dans une autre catégorie pour qu'elle devienne courante, puis l'ajouter comme "Favorite" avec le menu contextuel "Color bin / Favorites / Add current" ou le bouton correspondant de la barre d'outils ou le raccourci "F".

Pour supprimer une couleur dans cette catégorie, la sélectionner dans le camembert "Favorites", puis utiliser le menu contextuel "Color bin / Favorites / Remove current" ou le raccourci Maj+F ou utiliser "Color bin / Favorites / Clear" pour les supprimer toutes.

Nota : Les couleurs favorites sont stockées dans le fichier colorBin.fav, voir : Fichier colorBin.fav.

Panneau couleurs supplémentaire


Il est possible d'ajouter des panneaux supplémentaires avec le menu "View / New color bin window" ou le menu contextuel "Color bin / New color bin window".

Par défaut le panneau est indépendant et peut chevaucher les autres panneaux de la fenêtre du programme. Il peut être collé aux autres panneaux, voir : Manipulation des panneaux couleurs, pièces et code source.

Le panneau peut être supprimé avec le menu contextuel "Color bin / Close window" ou lorsqu'il est indépendant avec sa croix en haut à droite.

 

Panneau pièces

En haut, 6 onglets de sélections différentes, avec en dessous la catégorie ou groupe de pièces sélectionnées.

En dessous un filtre de sélection pour rechercher des pièces suivant certains critères. Voir plus bas.

Panneau de choix des catégories avec :

- Sorted by function : Trié par fonctions arborescentes.
- By category : Par catégories suivant leur nom.
- Lego sets : Par pièces contenues dans un set Lego.

- Search the inventory : Par résultat de recherche (recherche sur toutes les pièces).
- Model content : Par sous-modèle ou pièce du modèle courant.
- Special parts : Par pièces spéciales (aides au positionnement, chemin pièce dynamique, ressort, méta-commandes, éléments de pièce, éléments d'accrochage).

- Templates : Par assemblages prédéfinis (gabarits).
- Favorite parts : Par pièces favorites.
- Historic parts : Par historique d'utilisation.

Sélection d'une pièce :

- Vous pouvez sélectionner une pièce dans la catégorie courante, ou descendre avec le curseur latéral.
- La pièce sélectionnée est ajoutée au modèle par glisser/déposer dans la fenêtre graphique. Voir : Ajouter des pièces au modèle.

La couleur des pièces dans le panneau dépend de la couleur par défaut.
On peut augmenter ou diminuer le nombre de pièces par ligne avec + et - tout en changeant leur taille.
On peut tourner les pièces avec Ctrl+Souris.
Voir les autres raccourcis : Raccourcis clavier et souris : Panneau pièces.

Sélection d'une pièce appartenant à un Set :

- Vous pouvez sélectionner une pièce dans la catégorie "Lego sets".
- Pour les sets renseignés, le panneau affiche uniquement les pièces appartenant à ce set, avec éventuellement leur couleur affectée et la quantité de chaque.

Pour créer un panneau de ce type, voir : Configuration panneau pièces.
Voir également : Tutoriel : Générer un panneau pièce de Set personnalisé, et LDCad parts bin custom list.

Affichage des points d'attirance :

- On peut afficher/cacher les points d'attirance avec F11 (panneau pièces et édition graphique).
- Sinon, en mode édition de pièce, les points d'attirance peuvent s'afficher avec le menu "Prefs / LDraw" en mettant "Shadow files" sur "Enabled", puis en relançant le programme.

Affichage des motifs texturés :

- On peut afficher les textures de pièce générées à partir d'images (!TEXMAP), en mettant "Prefs / LDraw / Textures" sur "Enable", à condition que "Prefs / LDraw / Vertex processing" ne soit pas sur "None".
Voir en complément : Pièces texturées.

Affichage des pièces Non Officielles :

- Le message "unOff" s'affiche au bas de chaque case d'une pièce non officielle, en mettant "Part bin / Unofficial indication" sur "Enable".

Pour configurer le panneau pièces, voir le chapitre : Configuration panneau pièces.

Lorsque la bibliothèque de pièces à changé un message d'attente s'affiche dans le panneau :

Pièces favorites

La catégorie des pièces "Favorites" est vide par défaut. Y mettre vos pièces favorites, c'est-à-dire les pièces que vous utilisez régulièrement ou de temps en temps mais que vous avez du mal à trouver dans leur catégorie de base.

Pour ajouter une pièce dans cette catégorie, sélectionner une pièce dans une autre catégorie pour qu'elle devienne courante, puis l'ajouter comme "Favorite" avec le menu contextuel "Part bin / Favorites / Add current" ou le bouton correspondant de la barre d'outils ou le raccourci "F".

Pour supprimer une pièce dans cette catégorie, la sélectionner dans la catégorie "Favorites", puis utiliser le menu contextuel "Part bin / Favorites / Remove current" ou le raccourci Maj+F ou utiliser "Part bin / Favorites / Clear" pour les supprimer toutes.

Nota : Les pièces favorites sont stockées dans le fichier partBin.fav, voir : Fichier partBin.fav. En v1.5, pour supprimer une pièce favorite de LDCad, il faut fermer LDCad, puis éditer ce fichier et supprimer la pièce.

Filtre des pièces

Pour diminuer le nombre de pièces affichées et faciliter la sélection, il est possible de cliquer sur le bandeau :

Un clic sur l'entonnoir à gauche fait apparaître une fenêtre de filtre de pièces :

Le filtre ne s'applique que sur la catégorie de pièces affichée. Pour faire une recherche sur toutes les pièces, sélectionner à partir du haut de l'arborescence ("Main group"), l'icône représentant une Minifig tenant une loupe ("Search the inventory").

Pour supprimer le filtre cliquer sur l'entonnoir à croix rouge à droite du bandeau.

Edition de sous-modèle ou de pièce


Certaines catégories du panneau présentent l'icône d'une clé plate lorsque l'on passe dessus. On la trouve dans les catégories des sous-modèles MPD ou des gabarits ("Templates"). En cliquant sur cette clé on édite le sous-modèle concerné.

En mode édition de pièce cette même icône permet d'éditer la pièce concernée.

Panneau pièces supplémentaire


Il est possible d'ajouter des panneaux supplémentaires avec le menu "View / New part bin window" ou le menu contextuel "Part bin / New part bin window". Le but est par exemple de choisir des pièces avec le panneau principal et de visualiser et sélectionner les sous-fichiers du modèle courant avec le second panneau.

Par défaut le panneau est indépendant et peut chevaucher les autres panneaux de la fenêtre du programme. Il peut être collé aux autres panneaux, voir : Manipulation des panneaux couleurs, pièces et code source.

Son orientation dépend de ses dimensions (rapport hauteur/largeur). On l'ajuste en tirant sur un coin ou un bord avec la souris.

Le panneau peut être supprimé avec le menu contextuel "Part bin / Close window" ou lorsqu'il est indépendant avec sa croix en haut à droite.

 

Panneau code source

Il est possible d'afficher le code source, dans un ou plusieurs panneaux, avec le menu "View / New source window" ou le menu contextuel "Source / New source window".

Par défaut le panneau est indépendant et peut chevaucher les autres panneaux de la fenêtre du programme. Il peut être collé aux autres panneaux, voir : Manipulation des panneaux couleurs, pièces et code source.

Le panneau peut être supprimé avec le menu contextuel "Source / Close window" ou lorsqu'il est indépendant avec sa croix en haut à droite.

Manipulation du code source

Un "+" s'affiche à gauche des sous-fichiers. Cliquer dessus pour dérouler le contenu de ce sous-fichier. Cliquer ensuite sur le "-" pour fermer le contenu.

La ligne de code survolée par la souris est encadrée en vert si elle est éditable, en rouge sinon, et la pièce correspondante passe en surbrillance dans la fenêtre graphique.

Un clic sur une ligne de code sélectionne cette ligne et la met sur un fond plus clair. Si cette entité est une entité graphique elle est aussi sélectionnée dans la fenêtre graphique. Si ce n'est pas une entité graphique un message "Selection is invisible." ou "Selection contains invisible items." apparait dans la fenêtre graphique.

Un double-clic sur une ligne de sous-fichier rend ce sous-fichier actif. Pour revenir au modèle principal cliquer sur le bouton "Edit the main model".

Pour sélectionner plusieurs entités utilisez la touche Ctrl. Cliquer sur une entité sélectionnée pour la désélectionner. Utiliser Ctrl+A pour tout sélectionner. Utiliser "Echap" ou Ctrl+Maj+A pour annuler toute sélection.

Pour sélectionner une succession d'entités, cliquer sur la première, puis avec la touche Maj cliquez sur la dernière.

Utiliser le menu contextuel "Select / Invert" pour inverser les entités sélectionnées (hors méta-commandes).

Utiliser le menu contextuel "Select / Working color" ou "Working part" ou "Working part and color" pour sélectionner toutes les pièces ayant la couleur active, le type de la pièce active, ou le type et la couleur de la pièce active.

Utiliser le menu contextuel "Select / Same color" ou "Same part" ou "Same part and color" pour sélectionner toutes les pièces ayant la couleur de la sélection, le type de la pièce sélectionnée, ou le type et la couleur de la pièce sélectionnée.

Utiliser le menu contextuel "Select / Same step(s)" pour sélectionner toutes les pièces visibles partageant les étapes des pièces de la sélection courante. Avec "Select / Current step" vous sélectionnez toutes les pièces visibles de l'étape courante. Avec "Select / Except current step" vous sélectionnez toutes celles n'appartenant pas à l'étape courante. Avec "Select / Limit to current step" vous désélectionnez toutes celles n'appartenant pas à l'étape courante.

Avec les touches Ctrl+X, Ctrl+C, Ctrl+V, il est possible de couper/copier/coller une sélection. Au moment du coller un message "Select the source insertion point" s'affiche et un point d'insertion s'affiche en vert. Il suffit de cliquer au bon endroit.

On peut aussi faire glisser une sélection à la souris jusqu'à un nouvel emplacement.

Lors d'une sélection, la couleur de la première entité sélectionnée devient couleur courante.

Edition du code source

La ligne de code survolée par la souris est encadrée en vert si elle est éditable, en rouge sinon. Cliquer dessus pour la sélectionner, puis sur le bouton central de la souris pour l'éditer. On peut aussi l'éditer avec le menu contextuel "Selection / Properties".

Voir le chapitre : Modification du code source, pour l'édition de chaque type d'entité.

 

Manipulation des panneaux couleurs, pièces et code source

Les panneaux couleurs, pièces et code source y compris les supplémentaires peuvent être accrochés sur les bords de la fenêtre du programme ou bien placés dans des fenêtres indépendantes.

Pour modifier l'état d'un panneau, vérifier dans le menu "Prefs / GUI" que "Lock docked windows" soit sur "No". Si "Lock docked windows" est sur "Yes" l'état des panneaux est figé.

Pour rendre un panneau indépendant il suffit de cliquer sur le panneau et de le faire glisser à la souris en dehors de son emplacement.

Pour accrocher un panneau indépendant sur un bord de la fenêtre du programme, appuyer sur "Ctrl" puis cliquer sur le panneau et le faire glisser à la souris vers un des bords. La position de la souris conditionne le bord concerné et le redimensionnement ou non des panneaux voisins.

 

Panneau édition graphique

La zone d'édition graphique ou fenêtre graphique permet de visualiser le modèle en cours, d'ajouter ou supprimer des pièces, de les déplacer ou les tourner, de leur changer de couleur, etc ... :

On y trouve :

Panneau point de vue

Repères d'orientation :
Par défaut le référentiel absolu (monde) s'affiche, ainsi que le plan de la grille active. Les flèches de couleur du référentiel indiquent :
- Flèche rouge : X+
- Flèche verte : Y+ (Le standard LDraw définit le Y positif vers le bas)
- Flèche bleue : Z+
En mode grille relative il y a deux référentiels qui s'affichent :
- Le référentiel absolu du modèle passe avec des couleurs plus sombres et un trait plus fin.
- Le référentiel local devient référentiel courant.

En survolant avec la souris le repère d'orientation (référentiel), celui-ci se transforme en outil de manipulation du point de vue (déplacement, orientation), et paramétrage de modélisation (plan de travail, pas de la grille).

- Cliquer sur les losanges au centre pour sélectionner le plan de travail par défaut (XY, YZ, ZX).
- Cliquer sur un endroit vide en bougeant la souris pour faire tourner le modèle.
- Cliquer sur l'un des 2 panneaux "flèches doubles" en bougeant la souris pour déplacer le point de vue du modèle suivant le plan de la grille, horizontalement ou verticalement.
- Cliquer sur l'un des 2 panneaux "flèches quadruples" en bougeant la souris pour déplacer le point de vue du modèle suivant le plan de la grille, en tous sens.

- Au-dessus s'affiche le pas de la grille courante en X/Z et en Y, et le pas de rotation en degrés.
- Cliquer dessus pour ouvrir le menu grille (Grid) et modifier les choix.

- "NSR/ASR" change le mode rotation d'étape.
- "AEP/MEP" change de mode de plan de travail Automatique (suivant orientation de la vue) ou Manuel.
- "GS/PS" change de mode d'attirance Grille ou Pièce.
- "SPN/TBL" change de mode de rotation Spin ou Trackball.
- "MOV/CEN/ROT" change de mode déplacement/centre de rotation/rotation de l'épingle.
- "3D/2D" change de mode de vue 3D/2D.

- Cliquer avec le bouton droit de la souris pour ouvrir le menu "Editing views".

- En mode de vue 2D on peut choisir le sens de la vue en faisant tourner le cube avec la souris. Vue de gauche (Left), droite (Right), face (Front), arrière (Back), dessus (Top) et dessous (Bottom).
- La vue est activée dès que la face du cube passe en jaune.
- Attention, en faisant tourner le cube, on joue sur le sens de la vue mais aussi sur son orientation à l'écran.

Pour remettre le point de vue en position 3D de base :
- Taper la touche "O" pour la grille, si rien n'est sélectionné.
- Taper la touche "Début" pour aligner la sélection sur la grille courante.
- Taper la touche Ctrl+Début pour réinitialiser la rotation de la sélection.
- Menu contextuel "Editing view / View Angle / Left 45 deg" ou menu "View / Editing view / View Angle / Left 45 deg" pour réinitialiser l'orientation (ou une autre orientation possible si vous avez choisi le multi-vues).

Panneau étape

En haut à gauche de la fenêtre graphique on a une information sur le numéro de l'étape courante et le nombre d'étapes du modèle actif.

En cliquant dessus on ouvre le menu "Stepping" pour changer d'étape de construction, en créer ou en supprimer.

Panneau session

En haut à droite de la fenêtre graphique on a une information sur le nom du modèle ou sous-modèle en cours. Si le nom est suivi de {M} il s'agit du modèle principal du fichier en cours.

En cliquant dessus on ouvre le menu "Change current model" pour changer de modèle courant.

En survolant le panneau un menu à onglets s'affiche pour sélectionner le mode d'affichage.

Nota : Le mode sélectionné s'affiche en jaune. Les options actives (sauf "Close") sont en vert et les inactives en rouge.

Panneau information

En bas à droite de la fenêtre graphique on a une icône I comme "Information". En survolant à la souris cette icône un panneau d'informations s'affiche.

Parts / Step : Nombre total de pièces à l'étape courante et (nombre de pièces différentes).
Parts / Model : Nombre total de pièces dans le modèle et (nombre de pièces différentes).

Sub models / Step : Nombre total de pièces en sous-modèle à l'étape courante et (nombre de pièces différentes).
Sub models / Model : Nombre total de pièces en sous-modèle dans le modèle et (nombre de pièces différentes).

Color / Step : Nombre de couleurs à l'étape courante.
Color / Model : Nombre de couleurs dans le modèle.

Size / in bricks : Dimensions en X/Y/Z en nombre de briques entières (1 brique = 8 mm en largeur et 9,6 mm en hauteur).
Size / in mm : Dimensions en X/Y/Z en mm.

Panneau coordonnées ou propriétés

Si une pièce ou un sous-modèle est sélectionné, le panneau coordonnées donne la position en X/Y/Z de son origine. S'il y en a plusieurs, il s'agit des coordonnées de la première de la sélection.

En cliquant sur ce panneau, la boite de dialogue des propriétés du premier objet de la sélection s'affiche.

Ce panneau peut être caché en désactivant "INFO" dans le panneau session.

Si une pièce de chemin ou une section de ressort est sélectionné, le panneau coordonnées est remplacé par un panneau donnant les caractéristiques du chemin ou du ressort.
NR=Numéro du chemin, GRP=Groupe, CNT=Nombre de pièces ou éléments.
NR=Numéro de section du ressort, PROP=Proportion du ressort complet, WND=Nombre de spires.

 

En cliquant sur ce panneau, la boite de dialogue des propriétés du chemin ou de la section du ressort s'affiche.

Si la sélection (dans le panneau code source) porte sur une ligne de commentaire ou une méta-commande, le panneau coordonnées est remplacé par le message "Selection is invisible" (La sélection est invisible).

Si la sélection porte à la fois sur des entités graphiques et sur des lignes de commentaire ou de méta-commande, le panneau coordonnées s'affiche ainsi que le message "Selection contains invisible items" (La sélection contient des éléments invisibles).

Panneau animation

Lors d'une animation, un panneau de contrôle peut s'afficher en bas de l'écran graphique.

Outil de manipulation (épingle)

Lorsqu'au moins une pièce est sélectionnée, cet outil apparait au-dessus de la première pièce de la sélection.

Cet outil permet de déplacer ou tourner les pièces de la sélection dans le modèle.

Outil de manipulation :

- La pyramide supérieure permet d'éloigner/rapprocher l'outil par rapport à la sélection.
- Le cube en-dessous permet de sélectionner le mode rotation pièce.
- Le cube du milieu permet de sélectionner le mode déplacement pièce.
- Le cube du bas permet de sélectionner le mode déplacement du point de centre.

Mode rotation pièce :

- En cliquant sur le petit cube supérieur nous avons un outil de rotation.
- Cliquer sur le disque pour choisir l'angle de rotation de la sélection, dans le plan actif et suivant le pas de la grille courante.
- Cliquer sur le disque avec le bouton du milieu de la souris pour ouvrir la boite de dialogue rotation manuelle (Manual rotation) pour avoir d'autres options de rotation.

Mode déplacement pièce :

- En cliquant sur le petit cube central nous avons un outil de déplacement.
- Cliquer sur une des flèches pour déplacer la pièce à la souris dans le plan actif et suivant le pas de la grille courante.
- Suivant l'endroit cliqué, sélectionner une direction ou l'autre ou les deux (ici une direction).
- Cliquer sur les flèches avec le bouton du milieu de la souris pour ouvrir la boite de dialogue déplacement manuel (Manual movement) pour avoir d'autres options de déplacement.

Mode déplacement du point de centre :

- Cliquer sur le petit cube du bas pour pouvoir déplacer le point de centre. Cela permet de changer l'origine des rotations.
- Cliquer sur une des flèches pour déplacer le point de centre à la souris dans le plan actif.
- Suivant l'endroit cliqué, sélectionner une direction ou l'autre ou les deux (ici les deux).
- Cliquer sur les flèches avec le bouton du milieu de la souris pour ouvrir la boite de dialogue sélection du point de centre (Selection center) pour avoir d'autres options de déplacement.

Cet outil peut être masqué en désactivant "PIN" dans le panneau session.

Multi-vues

Pour couper le panneau visualisation en plusieurs panneaux, utiliser le menu "View / Editing views / Split", et pour définir un sens à chaque vue utiliser le menu "View / Editing views / View angle".

Pour supprimer des vues, utiliser le menu "View / Editing views / Split / Unsplit" ou toutes les vues avec "View / Editing views / Split / Unsplit all".

Pour passer temporairement du mode multi-vues au mode mono-vue de la vue active et inversement, utiliser le menu "View / Editing views / Split / Swap full screen" ou la barre "espace" du clavier.


Pour ceux qui ont des difficultés à concevoir uniquement en vue 3D et pour éviter de faire le modèle symétrique à celui à obtenir, la meilleur configuration est de définir les vues comme ci-dessus (norme ISO européenne). En haut à gauche vue de face (front), en haut à droite vue de gauche (left), en bas à gauche vue de dessus (top) et en bas à droite vue 3D (left 45°).

Il faut d'abord couper le panneau visualisation avec le menu "View / Editing views / Split / Split four ways", puis définir un sens à chaque vue et pour les vues 2D figer leur orientation en mettant "AEP/MEP" sur "MEP" dans le panneau point de vue. A partir de ce moment l'utilisation du bouton droit ou gauche de la souris déplace le contenu de la vue sans le faire tourner.

 

Barre de statut

En bas de la fenêtre du programme se trouve la barre de statut. Elle est séparée en 3 parties :

 

Démarrer un modèle

Un modèle LDraw est un assemblage de briques ou pièces virtuelles utilisant le format de fichier LDraw. Il s'agit soit d'un modèle simple (généralement un fichier .LDR), soit d'un modèle multiple (généralement un fichier .MPD). Celui-ci est composé de sous-fichiers dont le premier est le maître-modèle ou modèle principal (celui qui s'affiche en premier).

Au démarrage de LDCad s'affiche le panneau "Getting started", permettant de démarrer un projet de modèle :

Fichiers

LDCad peut charger en même temps plusieurs fichiers au format LDraw. Chaque fichier peut contenir un modèle simple (généralement .LDR, parfois .DAT) ou un modèle multiple (généralement .MPD, parfois .LDR).

Ouvrir un modèle existant

Au démarrage du programme, il est possible d'ouvrir un modèle existant dans le panneau "Getting started". Ce modèle peut être n'importe où sur votre disque ("model from disk"), parmi les exemples fournis avec le programme ("example model") ou parmi ceux récemment ouverts ("Recent").

Ensuite, il est possible d'ouvrir d'autres modèles avec le menu "File / Open", ou "File / Recent", ou "File / Example".

On peut aussi ouvrir le fichier d'un modèle existant en faisant glisser ce fichier dans la fenêtre de LDCad.

Une boite de dialogue s'affiche :

Ouvrir un nouveau modèle

Au démarrage du programme, il est possible d'ouvrir un nouveau modèle dans le panneau "Getting started", en sélectionnant "Start a new model".

Ensuite, il est possible d'ouvrir d'autres nouveaux modèles avec le menu "File / New model", ou "File / New" en cochant "Model" pour un modèle standard.

Il faut ensuite renseigner l'entête du fichier.

Onglet "Main" (principal) :

Onglet "Tags" (étiquettes) :

Onglet "Help" (aide) :

Onglet "History" (historique) :

Usage : Entrer le texte de la modification puis cliquer sur le bouton "Add" pour remplir les automatiquement autres champs.

Onglet "Scripting" (scriptage) :

Modèles et sous-modèles

Les fichiers LDraw peuvent contenir un modèle simple composé d'un assemblage de pièces unitaires, ou un modèle multiple composé du modèle principal (le premier dans le fichier) et de sous-modèles appelés par le modèle principal ou d'autres sous-modèles.

Ajouter un sous-modèle standard

Pour créer un sous-modèle dans le modèle courant utiliser le menu "Session / Add new submodel ..".

On peut aussi utiliser le menu "Session / Add new .." en cochant "Model" pour un sous-modèle standard :

Il faut ensuite renseigner l'entête du sous-fichier comme l'entête d'un fichier standard, avec en plus la possibilité de changer le nom du sous-fichier.

Pour déplacer des pièces du modèle principal dans un sous-modèle :

Pour dupliquer un sous-modèle :

Modèle ou sous-modèle de pièce dynamique

Pour créer un modèle de pièce dynamique utiliser le menu "File / New" en cochant "Path part", ou pour un sous-modèle "Session / Add new" en cochant également "Path part".

Créer un modèle pour l'ajouter à sa bibliothèque de gabarits ou créer un sous-modèle pour l'utiliser directement dans son modèle en cours.

Cliquer sur "Yes / Proceed" pour continuer, sinon cliquer sur "Cancel" pour annuler et ensuite utiliser un gabarit existant au lieu de partir de rien.

Onglet "Main" (principal) :

Onglet "Tags" (étiquettes) :

Onglet "Path" (chemin) :

Nota : Pour modifier l'entête de la pièce dynamique il faut utiliser le menu "Session / Edit header" ou hors sélection (avec "Echap") utiliser la touche "Entrée".

Exemple de pièce dynamique

0 FILE hose01.ldr
0 AUTHOR LDCad
0 !CATEGORY technic
0 !KEYWORDS flexible, pneumatic
0 !LDCAD CONTENT [type=path] [addFallBack=default] [looped=false] [displayKind=mm] [curveStep=0] [displayLenCor=0]

0 !LDCAD PATH_POINT [type=bezier] [posOri=0 0 0 1 0 0 0 0 1 0 -1 0] [prevCPDist=25] [nextCPDist=17] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=26 15 14 0 0 -1 0 -1 0 -1 0 0] [prevCPDist=21.5] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=38 80 40 0 0 -1 0 -1 0 -1 0 0] [prevCPDist=25] [nextCPDist=5] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=38 100 40 0 0 -1 0 -1 0 -1 0 0] [prevCPDist=5] [nextCPDist=33.5] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
0 !LDCAD PATH_POINT [type=bezier] [posOri=-23.236 199.403 60 0 0.256 -0.967 0 -0.967 -0.256 -1 0 0] [prevCPDist=30.5] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]

0 !LDCAD PATH_SKIN [donCol=16] [donOri=1 0 0 0 1 0 0 0 1] [donPart=ldcPnuHoseSeg.dat] [donYSize=400%] [donCen=absCen] [donCenYOfs=0] [donFinScale=fitDon2Seg] [donPlace=deform] [donYAlign=0] [segSize=100%] [segSizeTol=5%] [segsCnt=0] [segsGrp=0] [segsMaxMerge=10] [donInline=false] [segsEdgeDelKind=keepFirstLeft]

0 !LDCAD PATH_CAP [group=start] [color=16] [posOri=0 0 0 1 0 0 0 0 1 0 -1 0] [extraLen=8mm] [part=165.dat]
0 !LDCAD PATH_CAP [group=end] [color=16] [posOri=-23.236 199.403 60 0 -0.256 0.967 0 0.967 0.256 -1 0 0] [extraLen=8mm] [part=165.dat]

0 !LDCAD GENERATED [generator=LDCad 1.4 Alpha]
0 //This is the fallback LDraw content for above PATH configuration.
0 // Do not edit, any changes will be lost upon regeneration.
0 // The path is approx 102.261589 mm (255.65) and exists out of 50 segments.

Modèle ou sous-modèle de ressort

Pour créer un modèle de ressort utiliser le menu "File / New" en cochant "Spring part", ou pour un sous modèle "Session / Add new" en cochant également "Spring part".

Créer un modèle pour l'ajouter à sa bibliothèque de gabarits ou créer un sous-modèle pour l'utiliser directement dans son modèle en cours.

Cliquer sur "Yes / Proceed" pour continuer, sinon cliquer sur "Cancel" pour annuler et ensuite utiliser un gabarit de ressort existant au lieu de partir de rien.

Onglet "Main" (principal) :

Onglet "Tags" (étiquettes) :

Onglet "Spring" (ressort) :

Nota : pour modifier l'entête du ressort il faut utiliser le menu "Session / Edit header".

 

Sauvegarde

Utiliser le menu "File / Save" (Ctrl+S) ou le bouton correspondant pour sauvegarder le fichier contenant le modèle ou sous-modèle actif. Utiliser "File / Save as" pour le sauvegarder sous un autre nom ou dans un autre dossier.

Pour sauvegarder tous les fichiers ouverts utiliser le menu "File / Save all" (Ctrl+Maj+S).

Nota : Au moment de la sauvegarde, LDCad ajoute le contenu des fichiers donneurs des pièces dynamiques pour permettre d'utiliser le fichier LDraw généré par d'autres programmes externes.

 

Sortie

Pour sortir du programme cliquer sur le bouton rouge à la croix, à droite de la barre de titre.

Pour sortir du fichier en cours utiliser le menu "File / Close", ou cliquer sur "Close" dans le panneau session.

Sinon utiliser le menu "File / Close all" pour fermer tous les fichiers ouverts, ou "File / Close unchanged" pour fermer tous les fichiers ouverts non modifiés.

Nota : Lors de la sortie un message de confirmation apparait si un fichier modifié n'a pas été sauvegardé au préalable.

 

Pièces

Une pièce est la représentation virtuelle au format LDraw d'une pièce LEGO réelle. Le programme LDCad ne fournit aucune pièce en lui-même, mais utilise les bibliothèques du site LDraw.org.

Bibliothèques de pièces

Il y a deux bibliothèques de pièces LDraw sur le site LDraw.org. La principale est la bibliothèque officielle des pièces validées. La seconde concerne les pièces soumises par leur auteur et en attente de correction ou de validation.

La bibliothèque officielle est mise-à-jour environ deux fois par an et la non officielle à chaque mise-à-jour de fichier dans "Parts Tracker".

En dehors de ces deux bibliothèques vous pouvez trouver d'autres pièces, Lego ou Non, pouvant être utilisées par LDCad, à condition qu'elles utilisent le format LDraw.

Pièce manquante

En utilisant un modèle créé par un tiers, il peut arriver que ce modèle utilise des pièces qui ne soient pas dans votre bibliothèque.

Pour connaître les pièces manquantes éventuelles, utiliser le menu contextuel "Select / Missing file parts" du panneau "Source" pour toutes les sélectionner.

Pour résoudre ce problème, mettre à jour votre bibliothèque ou demander les fichiers manquants à l'auteur du modèle, s'ils sont spécifiques.

Ajouter des pièces au modèle

Pour insérer une pièce il faut au préalable avoir une session ouverte, soit en créant un nouveau fichier ("New .."), soit en en ouvrant un existant ("Open .."). Voir le chapitre "Démarrer un modèle".

Pour sélectionner une pièce dans le panneau pièce :

Il y a trois méthodes pour insérer une nouvelle pièce :

Un conseil : Insérer la première pièce du modèle à "X=Y=Z=0" et les suivantes à partir de la première. Pour les sous-modèles, ayant un point de rotation dans le modèle principal, mettre de préférence ce point de rotation à "X=Y=Z=0".

Voir le chapitre suivant pour les paramètres de la nouvelle pièce qui utilisent les variables de travail.

Voir également le chapitre sur l'attirance pièce pour son positionnement.

Variables de travail

Toutes les insertions ou éditions faites sont basées sur les variables de travail courantes. Ce sont les :

Fichiers de modèle gabarit

Les modèles gabarits LDCad sont des petits assemblages de pièces au format LDraw que vous pouvez faire glisser du panneau pièces dans vos modèles, comme toute autre pièce ou modèle. Pour cela LDCad utilise par défaut le dossier "C:/Users/tchang/AppData/Roaming/LDCad/templates/shortcut" (changer tchang par votre nom d'utilisateur Windows) qui contient tous les gabarits par défaut.

Ces gabarits concernent de petits assemblages fixes (roue), articulés (charnière), comportant une pièce dynamique (câble électrique, tuyau pneumatique, ressort), ou des pièces à maillons (chaîne).

Les gabarits par défaut se trouvent dans le groupe "Templates" du panneau pièces.

Un message apparait au moment de l'insertion :

Si le gabarit ne peut être décomposé (pièce souple ou à maillons) le message se limite à :

Vous pouvez ajouter vous-même des gabarits en ajoutant un nouvel emplacement avec le menu "Prefs / LDraw / User templates", puis en sauvegardant un ou plusieurs fichiers LDraw à cet endroit. Les lignes directrices pour les créer sont :

Lorsque vous prévoyez de créer de nombreux modèles vous-même il peut être nécessaire de créer pour eux des groupes personnalisés (.pbg) dans le panneau pièce. De cette façon vous pouvez les organiser plus logiquement à l'intérieur de ce panneau.

La modification de gabarit existant peut faire apparaître un message de confirmation :

Cliquer sur "Yes/Proceed" pour éditer le gabarit officiel, sinon sur "Cancel" pour annuler et cocher "Don't ask again" pour que la question ne soit plus posée ultérieurement.

Une utilisation importante des gabarits, dans la configuration de LDCad par défaut, concerne les pièces dynamiques (pièces souples), c'est-à-dire les pièces de chemin et les ressorts. Ces gabarits définissent une situation de départ utile pour ajouter par exemple un tuyau pneumatique ou un amortisseur à votre modèle.

Vous pouvez créer ces types de gabarits vous-même en démarrant un fichier de chemin ou de ressort autonome dans LDCad en utilisant le menu "File / New .." et en cochant "Path part" ou "Spring part". Il faut les sauvegarder dans les sous-dossiers "template/path" pour les chemins ou "template/spring" pour les ressorts.

Edition de pièce

Il est possible d'éditer les pièces. Le menu : "Prefs / Editing / Part editing / Part (shadow) editing" doit être sur "Enabled". A partir de ce moment une "clef plate" apparait sur les icônes des pièces dans le panneau pièces, permettant l'édition.

Un message peut apparaître si vous utilisez une bibliothèque fantôme compressée :

Voir le chapitre : Bibliothèque fantôme.


Affichage d'une pièce en cours d'édition.

Nota : Attention les entités de type 2 (ligne), 3 (triangle), 4 (quadrilatère), 5 (ligne conditionnelle), si elles sont utilisées dans un modèle alors ce modèle est considéré comme une pièce, alors évitez d'en mettre dans le modèle principal.

Un message d'erreur apparaît pour éviter ce problème :

Aller dans la catégorie "Special / LDraw part building items" du panneau pièce pour insérer des entités de base de type 2 (ligne), 3 (triangle), 4 (quadrilatère), 5 (ligne conditionnelle), dans la pièce en cours d'édition avec des valeurs nulles :

Les insérer de préférence dans le panneau code source, puis les éditer pour leur donner des valeurs voulues. Voir le chapitre : Modification d'une entité.

 

Pièces assemblées

Dans ce chapitre nous parlons des pièces présentes dans la bibliothèque qui sont en réalité des assemblages fixes de pièces unitaires. Pour les sous-modèles, voir le chapitre : Modèle multiple (MPD).

Pièces assemblées dans la bibliothèque

Ces pièces ont généralement le mot "(Complete)" entre parenthèses dans leur désignation et/ou c01, c02, ... dans leur nom de fichier.

Si l'on a besoin de cet assemblage dans la configuration proposée par la bibliothèque alors pas de problème cet assemblage s'insère comme une pièce ordinaire.

Si l'on a besoin de cet assemblage dans une autre configuration, voici la marche à suivre :

Minifigs

En attendant un module spécifique pour créer et insérer une minifig personnalisée dans LDCad, suivre les étapes suivantes :

Cela est également valable avec les "Technic Action Figure" 2698c01.dat, les "Complete friends figures" ou les "Complete fabuland figures".

Roues

L'assemblage des roues composées d'une jante et d'un pneu se trouvent dans "Templates / Wheels".

Articulations

L'assemblage des pièces articulées se trouvent dans "Templates / Hinges/turntables" et dans "Templates / Misc".

 

Pièces texturées

LDCad est capable de gérer les pièces ou autocollants texturés, c'est-à-dire des pièces à motif recevant la projection d'une image sur ses faces.

Ces pièces utilisent la méta-commande de Texturation (!TEXMAP).


La projection peut se faire sur des faces planes, cylindriques ou sphériques.

Pour que les images s'affichent il faut mettre "Prefs / LDraw / Textures" sur "Enable", et que "Prefs / LDraw / Vertex processing" ne soit pas sur "None". Sinon la pièce s'affiche comme si elle n'avait pas de motif.

Si l'image n'est pas accessible ou inexistante le motif est remplacé par une grande croix blanche.

Cet affichage se fait dans la fenêtre graphique et dans le panneau pièces.

Pour créer un autocollant texturé rectangulaire vous pouvez utiliser : Textured sticker generator, du même auteur.

 

Pièces dynamiques

Les types de pièces dynamiques ou pièces souples concernent :

Utilisation de pièce dynamique

Les pièces dynamiques prédéfinies se trouvent dans le panneau pièces dans le groupe de pièces des gabarits ("Templates").

Voir : Tutoriel : Edition avancée et en particulier le chapitre Pièces dynamiques et les chapitres qui suivent.

Manipulation des points de passage

  • Point de passage de chemin (Bezier).
  • Sélectionner le petit référentiel coloré pour déplacer le point.
  • Déplacer la boule verte pour augmenter/diminuer la raideur du chemin vers le point suivant.
  • Déplacer la boule rouge pour augmenter/diminuer la raideur du chemin vers le point précédent.
  • Point de passage de chemin circulaire (Circle).
  • Sélectionner le petit référentiel coloré au centre pour déplacer le point.
  • Déplacer l'une des boules jaune pour augmenter/diminuer le rayon du chemin.
  • Déplacer la boule verte pour augmenter/diminuer la raideur du chemin vers le point suivant.
  • Déplacer la boule rouge pour augmenter/diminuer la raideur du chemin vers le point précédent.
  • Lors du déplacement interactif d'une boule, suivre la valeur dans la barre de statut.


    Pour le point de chemin circulaire, il est aussi possible, en appuyant sur le bouton central de la souris au-dessus d'une boule, d'ouvrir cette boite de dialogue pour entrer la valeur exacte directement. On peut aussi passer par la boite de dialogue "Path point / selection properties" et son champ "Radius" (Rayon).

    Pour passer d'un type de point à l'autre, le sélectionner, puis avec le bouton du milieu de la souris ouvrir la boite de dialogue "Path point / selection properties". Ensuite sélectionner le type dans le champ "Type".

    Pièces dynamiques existantes

    Câble électrique

    Les gabarits se trouve dans "Templates / Electric cables".

    Câble électrique Power Functions

    Les gabarits se trouve dans "Templates / Power functions".

    La construction utilise un élément de base (donneur officiel LDCad) :


    Exemple du câble.

    Chaîne Minifig

    Le gabarit se trouve dans "Templates / Chains".

    La construction utilise 2 éléments de base :

    Nota : La chaîne générée doit posséder 21 maillons intermédiaires (Chaîne 30104) ou 5 maillons intermédiaires (Chaîne 92338).

    Chaîne Bionicle

    Le gabarit se trouve dans "Templates / Chains".

    Cordage

    Le gabarit se trouve dans "Templates / Ropes and strings".


    Exemple du cordage standard (rond).


    Exemple du cordage utilisant l'élément LSynth LS60.dat.

    Pour cela utiliser :
    0 !LDCAD PATH_SKIN [donCol=0] [donOri=1 0 0 0 0 1 0 -1 0] [donPart=LS60.dat] [donYSize=100%] [donCen=absCen] [donFinScale=segMerge] [donPlace=refsDyn] [segSize=75%] [segSizeTol=5%] [segsMaxMerge=1]

    Cordage avec tenons

    Le gabarit se trouve dans "Templates / Ropes and strings".

    Axe Technic flexible (Flexible d’entraînement)

    Le gabarit se trouve dans "Templates / Technic".

    Axe Technic flexible rigide aux extrémités

    Le gabarit se trouve dans "Templates / Technic".

    Câble Technic "Flex-System"

    Le gabarit se trouve dans "Templates / Technic".

    Tuyau de guidage Technic "Flex-System"

    Le gabarit se trouve dans "Templates / Technic".

    Câble+Tuyau Technic "Flex-System"

    Le gabarit se trouve dans "Templates / Technic".

    Tuyau rigide 3 mm

    Le gabarit se trouve dans "Templates / Technic".

    Tuyau pneumatique évasé

    Les gabarits se trouve dans "Templates / Pneumatic". Deux versions : Standard et LQ (basse qualité).

    Voir création dans le tutoriel : Tutoriel : Tuyau pneumatique.

    Tuyau annelé

    Le gabarit se trouve dans "Templates / Technic". Deux versions : Standard et LQ (basse qualité)

    Courroie section ronde

    Le gabarit se trouve dans "Templates / Rubber bands".

    Courroie section carrée

    Le gabarit se trouve dans "Templates / Rubber bands".

    Chaîne Technic d'entraînement

    Les gabarits, chemin ouvert ou fermé, se trouvent dans "Templates / Chains".

    Chaîne Technic porteuse

    Les gabarits, chemin ouvert ou fermé, se trouvent dans "Templates / Chains".

    La construction utilise un élément de base :

    Se monte généralement sur :

  • 48451.DAT Technic Turntable New with Hole Top : Rayon ~71.3 LDU
  • 2855.DAT Technic Turntable Type 1 Top : Rayon ~71.3 LDU
  • 3649.DAT Technic Gear 40 Tooth : Rayon 50 LDU
  • 73071.DAT Technic Differential : Rayon 30 LDU
  • 6573.DAT Technic Differential with Gear 16 Tooth and 24 Tooth : Rayon 20 et 30 LDU
  • 3648A.DAT Technic Gear 24 Tooth with 3 Axleholes : Rayon 30 LDU
  • 3648B.DAT Technic Gear 24 Tooth with Single Axle Hole : Rayon 30 LDU
  • 76019.DAT Technic Gear 24 Tooth Clutch with DkGray Center : Rayon 30 LDU
  • 3650A.DAT Technic Gear 24 Tooth Crown : Rayon 30 LDU
  • 4019.DAT Technic Gear 16 Tooth : Rayon 20 LDU
  • 6542A.DAT Technic Gear 16 Tooth with Clutch : Rayon 20 LDU
  • 3647.DAT Technic Gear 8 Tooth : Rayon 10 LDU

  • Exemple avec pignons 3648B et 3649.

    Chaîne Technic porteuse large

    Les gabarits, chemin ouvert ou fermé, se trouvent dans "Templates / Chains".

    La construction utilise un élément de base :

    Se monte généralement sur :

  • 57519.DAT Technic Sprocket Wheel : Rayon 48.3 LDU
  • 57520.DAT Technic Sprocket Wheel : Rayon 30 LDU

  • Exemple en ajoutant un 3ème point pour simuler la gravité en haut de la chaîne.

    Ressort

    Les gabarits pour les amortisseurs se trouvent dans "Templates / Shocks".

    Voir : Modèle ou sous-modèle de ressort pour créer un nouveau ressort, et Amortisseur pour sa mise en place.

    Création de pièce dynamique

    La création de pièce dynamique doit être envisagée seulement lorsque le gabarit de la pièce dynamique correspondant à votre besoin n'existe pas. Les étapes à suivre se résument à :

    Pièce dynamique à longueur fixe

    Pour avoir une pièce dynamique ayant une longueur fixe, il faut aller dans le menu "Session / Edit header" d'une pièce dynamique pour ouvrir la boite de dialogue "Edit header", puis dans l'onglet "Path" ajouter une ou plusieurs contraintes de longueur dans "Length constains". Voir le chapitre : Modèle ou sous-modèle de pièce dynamique.

    Vous pouvez aussi limiter le nombre de segments sur le chemin pour obtenir le même effet, mais la méthode des contraintes est destinée à être utilisé combinée avec la génération d'inventaire, bien que cela ne soit pas utilisé à l'heure actuelle (v1.5).

    Fichiers donneurs

    Les fichiers donneurs sont des pièces LDraw spéciales (.dat) utilisées lors de la génération du contenu d'un chemin.

    Lorsqu'ils sont utilisés par exemple pour générer une pièce de chemin, ils sont recherchés dans les emplacements LDraw standards. Mais, il est préférable de les garder séparés pour une meilleure organisation. Les donneurs par défaut de LDCad se trouvent dans le sous-dossier "donors". Suivant l'emplacement de votre configuration, cet endroit devra également être dans la liste des dossiers de recherche LDraw.

    Si vous concevez le contenu (partie souple) d'un chemin personnalisé, vous devrez également créer un certain nombre de fichiers donneurs. Vous pouvez stocker ces fichiers n'importe où, même dans les bibliothèques LDraw existantes. Mais c'est plus propre de leur donner un dossier spécial quelque part et d'ajouter cet emplacement dans les recherches en utilisant le type spécial "donor" dans la boite de dialogue de recherche LDraw, accessible depuis le menu "Prefs / LDraw / Search (library) paths".

    Créer un fichier donneur est identique à la création de pièce ou primitive LDraw des bibliothèques officielle et non officielle. Le seul problème supplémentaire, qui pourrais vous inquiéter est quand faut-il inclure des lignes conditionnelles, si vous avez l'intention de les utiliser, avec la méthode de positionnement de la déformation. Car cela pourrait entraîner la génération de très gros fichiers, alors que ce n'est pas vraiment la peine visuellement parlant.

    Avant de créer des donneurs personnalisés, il serait utile de parcourir ceux disponibles par défaut dans LDCad, car dans ceux que j'ai ajouté vous trouverez quelques commentaires sur leur utilisation ici et là.

     

    Couleur

    Voir le chapitre : Panneau couleurs pour une description du choix des couleurs.

    Voir les chapitres : Configuration panneau couleurs et Configuration palette de couleurs, pour sa configuration.

    Définir la couleur par défaut

    Utiliser le panneau couleurs pour définir la couleur par défaut. Cette couleur est utilisée pour afficher les pièces dans le panneau pièces et sera la couleur de toutes les pièces insérées ensuite dans le modèle.

    Changer la couleur des pièces

    Après sélection, cela est fait en utilisant le panneau couleurs. L'utiliser pour naviguer jusqu'à la couleur désirée, et la cliquer dans la "roue des couleurs" (camembert). Cela changera la couleur courante indiquée dans la barre juste en dessous. Cliquer sur cette barre appliquera la couleur désirée à la sélection courante. On peut également faire un double clic directement sur la couleur désirée dans le camembert.

     

    Modes d'attirance

    Pour mettre en place une pièce ou la déplacer il y a deux modes d'attirance possible :

    En dehors de ces modes, il est toujours possible de placer une pièce approximativement, puis d'éditer ses propriétés (bouton central de la souris) pour changer ses coordonnées et orientation.

    Attirance grille

    Ce mode est actif si GS (Grid Snapping) est actif dans le panneau point de vue.

    Toutes les insertions utilisent une "attirance relative sur le pas de la grille" par défaut, donc si la dernière pièce sélectionnée était sur un emplacement non courant par exemple à 4,4,4 en utilisant les pas 10,8,10, elle sautera à 14,4,14 puis 24,4,24 .... en étant sur le plan XZ (c'est différent de MLCad qui sautera en absolu). Je pense que ce pas relatif est meilleur parce qu'il permet des insertions rapides par exemple les chevilles Technic (Technic Pin) dans une poutre (Beam), après avoir mis la première correctement. Dans MLCad vous aviez à ajuster chaque cheville séparément ou utiliser une grille plus fine pour tout.

    Voir le chapitre : Tutoriel : Base du placement des briques.

    Attirance pièce

    Ce mode est actif si PS (Part Snapping) est actif dans le panneau point de vue.

    Voir le chapitre : Tutoriel : Construire en utilisant l'attraction pièce.

     

    Etape de construction

    Chaque modèle ou sous-modèle peut être découpé en étapes de construction. Une étape correspondant à toutes les pièces ajoutées ensemble, comme sur une page de manuel d'instructions par exemple.

    La gestion des étapes se fait par le panneau étape en haut à gauche de la zone graphique et le menu "Stepping" qui apparaît lorsqu'on clique dessus. On a aussi certains boutons de la barre d'outils.

    Etape ordinaire

    Une étape ordinaire correspond à l'ajout de la méta-commande : 0 STEP dans le code source.

    Utiliser le menu "Stepping / Insert" pour ajouter une étape avant celle courante, "Stepping / Selection insert" pour ajouter une étape avant la pièce principale de la sélection, et "Stepping / Append" pour ajouter une étape après la dernière.

    On peut aussi ajouter une étape après la dernière avec le bouton correspondant de la barre d'outils.

    Etape de rotation

    Une étape de rotation permet d'afficher le modèle suivant une orientation temporaire.

    Elle correspond à l'ajout de méta-commandes : 0 ROTSTEP xxx dans le code source.

    La rotation peut se faire suivant les 3 angles de façon absolue, relative ou incrémentale.

    Pour ajouter une étape de rotation, il faut d'abord ajouter une étape ordinaire comme vu précédemment, puis de modifier cette méta-commande d'étape ordinaire en étape de rotation. Voir : Edition d'une étape (STEP ou ROTSTEP).

    Visualisation par étape

    On peut visualiser le modèle dans l'état d'une étape donnée.

    Lorsqu'une étape est sélectionnée, toutes les pièces de cette étape et celles des étapes précédentes s'affichent dans la zone graphique tandis que celles des étapes suivantes sont cachées.

    Lorsqu'une étape de rotation est sélectionnée, l'orientation des vues tient compte des angles donnés.

    Dans le menu "Stepping" cliquer sur "First" pour aller à la première étape, "Last" pour aller sur la dernière, "Previous" pour la précédente, "Next" pour la suivante et "Selected" pour aller à l'étape de la pièce principale de la sélection. Dans le même menu on peut également sélectionner une étape par son numéro d'ordre.

    On peut aussi utiliser les boutons "First", "Previous", "Next" et "Last" de la barre d'outils.

    Gestion des étapes

    Utiliser le menu "Stepping / Del current" pour supprimer l'étape sélectionnée courante. Les pièces composant cette étape appartiennent alors à l'étape précédente. On peut aussi cliquer sur la ligne de l'étape à supprimer dans le panneau code source et taper "Suppr" ou "Del" au clavier.

    Utiliser le menu "Stepping / Move to step" pour déplacer la sélection à l'étape de son choix.

    Pour modifier une méta-commande d'étape voir : Edition d'une étape (STEP ou ROTSTEP).

     

    Groupe de pièces

    On peut grouper une sélection de pièces pour pouvoir manipuler ce groupe comme une seule pièce.

    Utiliser le menu contextuel "Selection / Grouping / Group selection" pour créer un groupe de la sélection courante. Vous pouvez aussi utiliser le bouton correspondant de la barre d'outils ou le raccourci Ctrl+G.

    Pour ajouter des pièces à un groupe, sélectionner une pièce du groupe puis avec Ctrl+Clic sélectionner les pièces à ajouter. Utiliser ensuite le menu contextuel "Selection / Grouping / Add selection to group".

    Les groupes n'apparaissent pas explicitement dans le panneau code source, mais lorsque l'on fait un clic sur une ligne de code appartenant à un groupe toutes les lignes appartenant à ce groupe sont également sélectionnés.

    Pour supprimer un groupe, sélectionner une pièce du groupe puis avec le menu contextuel "Selection / Grouping / Ungroup selection" vous supprimez le/les groupes de premier niveau des pièces sélectionnées.

    Pour supprimer tous les groupes, utiliser le menu contextuel "Selection / Grouping / Ungroup all".

    Lorsque l'on copie un groupe de pièces, le groupe n'est pas copié. Si l'on veut grouper les pièces de la nouvelle sélection, utiliser Ctrl+G ou le menu contextuel. Si les 2 groupes sont identiques, il est préférable d'utiliser la notion de sous-modèle.

    Un groupe de pièces appartient à la couche de regroupement actif. Si l'on change de couche de regroupement la sélection du groupe n'est pas active.

    Pour avoir une information sur les méta-commandes de groupe voir : Métas de groupes.

    Couche de regroupement

    Par défaut les pièces sont dans la couche 1. Il y a 32 couches de disponible. Pour changer de couche survoler le panneau session et dans l'onglet "Normal" ou "Nested", cliquer sur "Grouping layer". Sélectionner une nouvelle couche dans le menu "Grouping layer" qui s'affiche. Sélectionner "0: none/disabled" pour aucune.

    On peut aussi changer de couche par défaut avec le menu "Edit / Selection / Grouping / Grouping layer".

    Nota : La notion de couche de regroupement est encore expérimentale en version v1.6 Alpha 4.

    Groupe automatique

    On peut mettre à jour, si besoin, les groupes automatiques avec le menu "Edit / Selection / Grouping / Update auto groups".

    On peut supprimer, si besoin, les groupes automatiques avec le menu "Edit / Selection / Grouping / Clear auto groups".

     

    Pièce cachée

    On peut cacher temporairement une sélection de pièces pour pouvoir mieux visualiser ce qui est derrière ou dessous.

    Utiliser le menu contextuel "Selection / Ghosting / Hide selection" pour cacher la sélection. Vous pouvez aussi utiliser le bouton correspondant de la barre d'outils ou le raccourci H.

    Utiliser le menu contextuel "Selection / Ghosting / Undo last" pour réafficher de façon récursive la dernière sélection cachée. Vous pouvez aussi utiliser le bouton correspondant de la barre d'outils ou le raccourci Ctrl+H.

    Utiliser le menu contextuel "Selection / Ghosting / Show all" pour réafficher toutes les pièces cachées. Vous pouvez aussi utiliser le bouton correspondant de la barre d'outils ou le raccourci Ctrl+Maj+H.

    Utiliser le menu contextuel "Selection / Ghosting / Show selection" pour réafficher les pièces cachées sélectionnnées dans le code source. Vous pouvez aussi utiliser le raccourci Maj+H.

    Nota : L'état caché n'est pas sauvegardé, en conséquence les pièces cachées apparaîtront normalement à la prochaine ouverture du fichier.

     

    Echange de buffer

    L'échange de buffer est une façon de sauvegarder en mémoire tampon la position d'une ou plusieurs pièces (position provisoire), puis de les placer à leur position définitive.

    En mode édition "Normal" ou "Nested" le bouton "BXCHG" active ou désactive l'action de ce mécanisme.

    Ce mécanisme est principalement prévu pour une utilisation dans des programmes de création de manuel d'instructions. LDCad ne semble pas prévu pour créer des échanges de buffer, mais peut les éditer. Voir : Edition d'un échange de buffer (BUFEXCHG).

     

    Méta-commandes MLCad, LSynth, LPub

    LDCad est capable de gérer la présence de méta-commandes spécifiques à ces programmes.

    LDCad peut les éditer, Voir : Edition de méta-commande MLCad, Edition de méta-commande LSynth, Edition de méta-commande LPub.

     

    Modèle multiple (MPD)

    LDCad permet de gérer des modèles multiples, c'est-à-dire un fichier (.mpd) contenant plusieurs sous-modèles. Le premier sous-modèle ou modèle principal est le modèle affiché par défaut. Les autres sous-modèles sont appelés par le modèle principal ou un autre sous-modèle.

    Création

    Pour créer un fichier MPD commencer par créer un fichier ordinaire avec "File / New model" ou "File / New" en cochant "Model". Cela deviendra par la suite le modèle principal du fichier MPD.

    Le fichier devient un fichier MPD en créant le premier sous-modèle avec "Session / Add new submodel" ou "Session / Add new" en cochant "Model". On peut ensuite créer autant de sous-modèles que l'on veut.

    Utilisation

    Le modèle principal et les sous-modèles peuvent contenir autant de pièces que l'on veut, comme n'importe quel modèle ordinaire. Ces pièces s'insèrent et se gèrent de façon classique.

    En dehors des pièces, ils peuvent contenir les autres sous-modèles qui se gèrent pratiquement comme des pièces ordinaires. Un sous-modèle pouvant appeler un autre sous-modèle sur autant de niveaux que l'on veut, et un sous-modèle peut être utilisé autant de fois que l'on veut.

    La seule contrainte, pour éviter un problème de récursivité, est de ne jamais ajouter un sous-modèle dans le sous-modèle lui-même ou un de ses sous-modèles quel qu'en soit le niveau.

    Pour ajouter un sous-modèle dans le modèle principal ou un autre sous-modèle, allez dans le panneau pièces dans "Model (content) / Content of current model's file", puis le sélectionner et l'insérer dans le sous-modèle actif par glisser/déposer ou la touche "Inser".

    Pour changer de sous-modèle courant, dans la même arborescence du panneau pièces, cliquer sur l'icône de clé plate qui apparait près de la représentation du sous-modèle. On peut également le sélectionner dans la liste du panneau session ou avec le menu "Session / Change current session".

    Lors de l'insertion la couleur par défaut est appliquée au sous-modèle, ce qui n'a aucun effet en général, sauf si certaines pièces du sous-modèle sont de couleur 16, alors la couleur par défaut est affectée à ces pièces. C'est utile pour utiliser un même sous-modèle avec des couleurs différentes dans le modèle principal.

    Gestion

    Utiliser "Session / Set main subfile" pour changer le sous-modèle actif en modèle principal.

    Utiliser "Session / Edit header" pour renommer un sous-modèle ou changer d'autres informations.

    Utiliser "Session / Delete this subfile" pour supprimer le sous-modèle actif.

     

    Modèle à l'échelle

    Sur un exemple de Roland Dahl voici la méthode qu'il a utilisée pour créer un modèle à l'échelle en insérant dans LDCad des images planes de ce modèle.


    Vue 3D du modèle du bateau Endurance utilisé par Ernest Shackleton pour son expédition transantarctique de 1914.

    La méthode détourne l'usage de Textured sticker generator pour créer des autocollants recevant des vues planes du modèle. Ces autocollants sont ensuite ajoutés dans le modèle LDCad et utilisés comme gabarits dans la construction du modèle.

    Nota : Pour changer l'échelle des autocollants il suffit de les sélectionner puis avec le menu contextuel "Properties" de changer les valeurs non nulles des champs "Part orientation" par un nouveau facteur suivant les deux directions principales de l'autocollant.

     

    Modification du modèle

    Sélection

    Les pièces doivent être sélectionnées pour leur appliquer une modification, comme un déplacement, une rotation, un changement de couleur, etc.

    Sélection unitaire

    Une pièce est sélectionnée en cliquant dessus, sa bordure passe en bleu clair. Pour sélectionner des pièces supplémentaires, appuyer sur la touche Ctrl et cliquer sur d'autres pièces. LDCad ajoutera ces pièces à la sélection ou les enlèvera si elles sont déjà dans la sélection.

    La première pièce sélectionnée est la "pièce principale" de la sélection, qui est utilisée comme centre pour toutes les activités d'édition utilisant l'outil de déplacement/rotation. C'est la sorte d'ombrelle qui est visible quand au moins une pièce est sélectionnée. Cet outil est utilisé pour tourner et déplacer les pièces. Vous pouvez changer de pièce principale en cliquant sur une autre pièce dans la sélection tout en appuyant sur Ctrl+Maj.

    Sélection de zone

    Les pièces peuvent être sélectionnées dans une zone rectangulaire. Pour cela :


    Sélection de zone avec gestion de la profondeur.

    Nota : Une pièce doit avoir au moins un sommet dans la zone rectangulaire pour être sélectionnée.

    Copie

    Pour copier une sélection dans le presse-papier utiliser le menu contextuel "Selection / Copy" ou le raccourci clavier Ctrl+C. Une boite de dialogue de paramétrage apparaît :

    Pour ne plus afficher la boite de dialogue précédente sélectionner "Always" aux questions, la première fois qu'elle apparaît, ou au préalable en configurant les options (voir ci-dessous).

    Nota : La boite de dialogue peut varier en fonction des pièces copiées. Voir toutes les options : Options copier/coller.

    Pour couper une sélection et la mettre dans le presse-papier utiliser le menu contextuel "Selection / Cut" ou le raccourci clavier Ctrl+X.

    Pour coller le contenu du presse-papier utiliser le menu contextuel "Selection / Paste" ou le raccourci clavier Ctrl+V. Une boite de dialogue de paramétrage apparaît :

    Remplacement

    Pour remplacer toutes les pièces d'une sélection par une autre pièce, en gardant leur position, orientation et couleur d'origine, il suffit de sélectionner les pièces à remplacer, puis faire un double-clic sur la nouvelle pièce dans le panneau pièces.

    Déplacement

    Vous pouvez déplacer une pièce en la "saisissant" avec le bouton gauche de la souris. Elle se déplacera sur le plan de la grille courante en utilisant le pas courant. Vous pouvez aussi utiliser l'outil de manipulation en le mettant en mode déplacement (utiliser le cube en haut de l'outil). Quand c'est fait alors un grand double chemin en croix sera visible. Vous pouvez attraper celui qui convient par un clic gauche et déplacer la pièce en gardant le bouton pressé. Cela peut être fait dans une seule direction ou les deux ensemble selon où vous cliquez sur les flèches (indiqué par leur surbrillance).

    Vous pouvez aussi utiliser la boite de dialogue de déplacement manuel, qui s'ouvre en cliquant avec le bouton central de la souris sur les flèches de l'outil de manipulation ou avec le bouton droit de la souris dans le menu "Selection / Move ..".

    Déplacement manuel :
  • New position : Nouvelle position en valeur absolu.
  • Movement vector : Vecteur de déplacement, par rapport à la position actuelle.
  • Coordinates : Coordonnées en X, Y et Z.
  • Toutes les coordonnées sont relatives à la grille courante.

    Rotation

    Tourner peut être fait en utilisant l'outil de manipulation en le mettant en mode rotation. Quand il est dans ce mode il montre un disque segmenté. Cliquez dessus avec la souris en gardant le bouton pressé et déplacez la souris, l'angle courant sera montré visuellement et en degrés. La sélection entière tournera autour du centre de la première pièce sélectionnée (pièce principale). Les pièces tourneront toujours suivant un axe perpendiculaire au plan de la grille courante, même si ce plan n'est pas à niveau. Les futures versions vous laisseront changer le point de rotation des pièces à un autre endroit que le centre de la pièce principale.

    Rotation manuelle :
  • Current editing plane rotation : Rotation dans le plan d'édition (plan de la grille).
  • Angle : Angle de rotation en degrés.
  • Absolute rotation : Rotation en valeur absolu.
  • Toutes les coordonnées sont relatives à la grille courante, sans indication contraire.
  • Roll - Pitch - Yaw rotation : Rotation relative à la sélection, comme si vous étiez dans un avion ou un bateau.
  • Roll : Roulis (Bascule de droite à gauche).
  • Pitch : Tangage (Bascule d'avant en arrière).
  • Yaw : Lacet (Changement de cap).
  • Custom vector rotation : Rotation suivant un axe défini par un vecteur directeur.
  • Vector : Valeur du vecteur en X, Y et Z.
  • Angle : Angle de rotation en degrés.
  • Rotation matrix : Rotation suivant la matrice de transformation définissant Rotation/Echelle/Symétrie/Déformation dans le format LDraw (6 derniers paramètres d'une pièce).
  • Advanced options : Options avancées.
  • Override rotation center : Passe outre le centre de rotation actuel.
  • Modelspace : En valeur absolu (Zéro du modèle).
  • Mainpart space : En valeur relative à la pièce principale de la sélection.
  • Center : Centre de rotation temporaire en X, Y et Z.
  • Centre de rotation manuel :
  • Use custom selection center : Utilise un centre de rotation de la sélection personnalisé.
  • Custom selection center is static : Le centre de rotation est statique.
  • Pos in model (grid) space : Position par rapport à l'origine du modèle (absolu) et suivant le pas de la grille.
  • Pos in mainpart space : Position par rapport à l'origine de la pièce principale de la sélection.
  • Position : Coordonnées en X, Y et Z du centre de rotation.
  • Use ... : Utilise :
         Selection absolute center : Centre absolu de la sélection.
         Mainpart origin : Origine de la pièce principale.
         Mainpart absolute center : Centre absolu de la pièce principale.
  • Nota : Actuellement (v1.6 Alpha 4) les angles de rotation sont en degrés et 1/10ème de degré seulement.

    Symétrie

    Pour symétriser le contenu (en entier) du sous-fichier actif, aller dans le menu "Session / Mirror this subfile".

    Nota : Certaines pièces ont besoin d'information supplémentaire pour un placement angulaire correct. Cette information n'est pas toujours disponible.

    Porte du camion 5580. La symétrie de la porte est OK, mais la vitre n'a pas été retournée.

     

    Modification du code source

    Modification de l'entête

    L'entête du modèle principal ou d'un sous-modèle peut être modifié par le menu "Session / Edit Header".

    Pour la description des différents champs, voir : Ouvrir un nouveau modèle. La seule différence est qu'il est possible de modifier le nom du fichier ou sous-fichier dans "(sub)file name".

    Il est aussi possible d'éditer une ligne d'entête existante directement, voir : Modification d'une méta-commandes ou entité.

    Modification d'une méta-commandes ou entité

    Cliquer sur une entité dans la fenêtre graphique ou sur une ligne du panneau code source pour la sélectionner, puis appuyer sur le bouton central de la souris pour l'éditer ou avec le bouton droit de la souris sélectionner la commande "Selection / Properties".

    Edition de la description ou d'un commentaire :

    Edition du nom du sous-fichier (Name) :

    Edition du nom de l'auteur (Author) :

    Edition de la catégorie (!CATEGORY) :

    Edition des mots clefs (!KEYWORDS) :

    Edition de la licence d'utilisation (LICENSE) :

    Edition d'une étape (STEP ou ROTSTEP) :

    Edition d'un échange de buffer (BUFEXCHG) :

    Edition de méta-commande MLCad :

    Edition de méta-commande LSynth :

    Edition de méta-commande LPub :

    Edition d'entité graphique (pièce ou sous-modèle) :

    Edition de chemin de pièce dynamique :

    Edition de section de ressort :

    Edition de ligne (mode édition pièce) :

    Edition de triangle (mode édition pièce) :

    Edition de quadrilatère (mode édition pièce) :

    Edition de ligne conditionnelle (mode édition pièce) :

     

    Script

    LDCad v1.4 et plus récent utilise le langage de programmation lua pour ses scripts. Alors avant d'essayer d'utiliser les scripts dans LDCad il est bon de se familiariser avec l'usage général de ce langage : Lua (en anglais) ou Programmation en language LUA (en français), ou LUA : Le tutoriel (en français).

    Dans LDCad les modules Lua officiels suivants sont toujours disponibles : base, bit32, math, package, string et table. Egalement disponible le module ldc un module spécial LDCad qui permet d'accéder et de communiquer avec les parties internes de LDCad : Scripting API (en anglais), voir ci-dessous la traduction.

    La combinaison du langage lua de base et une collection de fonctions spécifiques à LDCad que vous pouvez utiliser à travers le module ldc ouvre un très grand monde de possibilités.

    Edition d'un script

    Pour éditer un script, aller dans "Session / Scripting / Open script" ou "Scripts / xxxx / Open script".

    Nota : Pour que le fichier lua par défaut s'ouvre, un éditeur doit être assigné à ce type de fichier dans l'explorateur de Windows. Voir le chapitre : Installation.

    Exemple avec Notepad++ et le fichier 8248.lua :

    Ouvrir une nouveau script ne semble pas prévu dans LDCad. Pour cela, ouvrir le script par défaut et utiliser le menu "File / Nouveau" de l'éditeur.

    Fenêtre console

    Lors de la mise au point d'un script, les messages d'erreur s'affichent dans la fenêtre console :

    Cette fenêtre s'ouvre avec le menu : "Scripts / Scripting console".

    Langage des scripts

    Dans LDCad les modules lua officiels suivants seront toujours disponibles : base, bit32, math, package, string et table.

    Egalement disponible est le module spécial à LDCad nommé : ldc, qui permet d'accéder aux outils LDCad et communiquer avec ses composants internes.

    Le module ldc de LDCad introduit les objets userdata (données utilisateurs) suivants :

    Fonctions du module ldc

    Le module ldc expose certaines fonctions simples de haut niveau, qui sont utilisées pour des informations générales et de lien de haut niveau entre les objets ldc :

    Objets du module ldc

    ldc.vector

    L'objet vecteur est utilisé pour stocker une simple coordonnée X,Y,Z ou une direction.
    Un objet vecteur peut être obtenu comme résultat d'autres fonctions ldc, mais vous pouvez également en créer un pour un usage particulier en utilisant son constructeur, comme :
    local myVec=ldc.vector()
    Après cela, vous pouvez utiliser la variable myVec pour manipuler les données x,y,z. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    myVec:clear()

    Constructeur

    Lors de la création d'un vecteur, en utilisant ldc.vector(), il sera à 0,0,0 par défaut. Vous pouvez changer ce comportement en fournissant des paramètres supplémentaires. Les combinaisons acceptées sont :

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'un vecteur vous devez utiliser sa fonction clone. Elle renvoie un nouveau vecteur contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    clear

    clear réinitialise x,y et z à zéro.
    Cette fonction n'a pas de paramètre supplémentaire.

    set

    set peut être utilisé pour changer les valeurs x, y et z du vecteur de la même manière que vous les initialisez en utilisant le constructeur.
    Elle accepte donc les mêmes combinaisons de paramètres comme décrit dans le constructeur.
    Cette fonction n'a pas de valeur de retour.

    setComp

    setComp est utilisé pour changer x, y ou z en utilisant un index comme premier paramètre, où 1 est pour x, 2 est pour y et 3 est pour z.
    Un second paramètre est utilisé comme nouvelle valeur pour le composant indiqué.
    Cette fonction n'a pas de valeur de retour.

    setX

    setX est utilisé pour changer la valeur x du vecteur. Le seul paramètre est la nouvelle valeur de x.
    Cette fonction n'a pas de valeur de retour.

    setY

    setY est utilisé pour changer la valeur y du vecteur. Le seul paramètre est la nouvelle valeur de y.
    Cette fonction n'a pas de valeur de retour.

    setZ

    setZ est utilisé pour changer la valeur z du vecteur. Le seul paramètre est la nouvelle valeur de z.
    Cette fonction n'a pas de valeur de retour.

    get

    Get renvoie x,y et z en une seule fois, comme :
    local x, y, z=myVec:get()
    Ensuite, vous pouvez utiliser les variables lua normales x, y et z dans certains calculs manuels (vecteur).
    Cette fonction n'a pas de paramètre supplémentaire.

    getComp

    getComp renvoie x, y ou z en utilisant un index, où x est 1, y est 2 et z est 3.

    getX

    getX renvoie la valeur courante x du vecteur.
    Cette fonction n'a pas de paramètre supplémentaire.

    getY

    getY renvoie la valeur courante y du vecteur.
    Cette fonction n'a pas de paramètre supplémentaire.

    getZ

    getZ renvoie la valeur courante z du vecteur.
    Cette fonction n'a pas de paramètre supplémentaire.

    add

    add est utilisé pour augmenter x, y et z avec une valeur donnée. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.
    Cette fonction n'a pas de valeur de retour.

    getAdd

    getAdd renvoie un nouveau vecteur avec le résultat de x, y et z augmenté d'une valeur. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.

    sub

    sub est utilisé pour diminuer x, y et z avec une valeur donnée. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.
    Cette fonction n'a pas de valeur de retour.

    getSub

    getSub renvoie un nouveau vecteur avec le résultat de x, y et z diminué d'une valeur. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.

    mul

    mul est utilisé pour multiplier x, y et z avec une valeur donnée. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.
    Cette fonction n'a pas de valeur de retour.

    getMul

    getMul renvoie un nouveau vecteur avec le résultat de x, y et z multiplié par une valeur. La valeur peut être un autre vecteur ou l'une des combinaisons de paramètres du constructeur.

    transform

    transform applique une matrice de transformation donnée à x, y et z. La matrice donnée peut être l'une des matrices valides des combinaisons de paramètres du constructeur.
    Cette fonction n'a pas de valeur de retour.

    getTransformed

    getTransformed renvoie un nouveau vecteur qui contient le résultat de la transformation x, y et z avec une matrice donnée. La matrice donnée peut être l'une des matrices valides des combinaisons de paramètres du constructeur.

    normalize

    normalize va redimensionner le vecteur pour que sa longueur devienne 1.0.
    Cette fonction renvoie également l'ancienne longueur du vecteur.
    Cette fonction n'a pas de paramètre supplémentaire.

    getNormalized

    getNormalized renvoie un nouveau vecteur de même direction mais avec une longueur de 1.0.
    Cette fonction n'a pas de paramètre supplémentaire.

    getLength

    getLength renvoie la longueur du vecteur.
    Cette fonction n'a pas de paramètre supplémentaire.

    getDot

    getDot renvoie le produit scalaire de x,y,z avec un second vecteur. Le vecteur donné peut être l'une des combinaisons de vecteurs valides des paramètres du constructeur.

    getCross

    getCross renvoie un nouveau vecteur contenant le produit croisé de x,y,z avec un second vecteur. Le vecteur donné peut être l'une des combinaisons de vecteurs valides des paramètres du constructeur.

    getAngle

    getAngle renvoie l'angle interne avec le second vecteur donné en degrés. Le second vecteur peut être l'une des combinaisons de vecteurs valides des paramètres du constructeur.
    Nota : Cette fonction accepte tout vecteur, la normalisation n'est pas nécessaire.

    getSignedAngle

    getSignedAngle renvoie l'angle entre deux autres vecteurs en degrés, en supposant que sa propre donnée est le plan normal.
    Le résultat est négatif si le premier vecteur donné est devant le second one (par exemple, 2 heures et 3 heures).
    Le premier vecteur doit être donné à l'aide d'un objet vectoriel existant, le second vecteur peut être l'une des combinaisons de vecteurs valides des paramètres du constructeur.
    Nota : Cette fonction accepte tout vecteur, la normalisation n'est pas nécessaire.

    ldc.matrix

    L'objet matrice est un conteneur de matrice mathématique.
    Les opérations de matrice orientées LDCad sont très ciblées pour une utilisation combinée avec les entités LDraw de type 1 au niveau du modèle. A cette fin, toutes les matrices sont censées décrire une position et une orientation seulement. Si besoin, vous pouvez appliquer un facteur d'échelle, mais cela n'est pas supporté officiellement lorsque c'est appliqué au modèle comme le montre LDCad et se traduira par des problèmes d'éclairage, etc.
    Un objet matrice peut être obtenu comme résultat d'autres fonctions ldc, mais vous pouvez également en créer un pour un usage particulier en utilisant son constructeur, comme :
    local myMatrix=ldc.matrix()
    Après cela, vous pouvez utiliser la variable myMatrix pour manipuler les données de la matrice. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    myMatrix:setIdentity()

    Constructeur

    Lors de la création d'une matrice en utilisant ldc.matrix() elle sera par défaut à l'état neutre "1 0 0 0   0 1 0 0   0 0 1 0   0 0 0 1". Vous pouvez modifier ce comportement en fournissant des paramètres supplémentaires. Les combinaisons acceptées sont :

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'une matrice vous devez utiliser sa fonction clone. Elle renvoie une nouvelle matrice contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    set

    La fonction set peut être utilisé pour changer les valeurs de la matrice de la même manière que vous les initialisez en utilisant le constructeur.
    Elle accepte donc les mêmes combinaisons de paramètres comme décrit dans le constructeur.
    Cette fonction n'a pas de valeur de retour.

    setIdentity

    setIdentitiy charge l'état neutre dans les données de la matrice.
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    setOri

    setOri peut être utilisé pour changer la part orientation (sous-matrice 3x3) des données de la matrice, cela peut être fait en utilisant les combinaisons de paramètres suivants :

    Cette fonction n'a pas de valeur de retour.

    setPos

    setPos peut être utilisé pour changer la part position des données de la matrice, cela peut être fait en utilisant les combinaisons de paramètres vecteur valides du constructeur.
    Cette fonction n'a pas de valeur de retour.

    setMul

    setMul est utilisé pour stocker le résultat de deux autres matrices multipliées ensemble dans la matrice. Il faut donc deux objets matrice comme paramètres.
    La fonction ne renvoie pas de valeur, car elle modifie les données elles-mêmes.

    getOri

    getOri renvoie une copie de la partie orientation de la matrice dans un nouvel objet matrice. La partie position de la matrice résultante est fixée à 0,0,0.
    Cette fonction n'a pas de paramètre supplémentaire.

    getPos

    getPos renvoie un nouvel objet vecteur contenant les données de position de la matrice.
    Cette fonction n'a pas de paramètre supplémentaire.

    get

    Get renvoie 12 nombres qui contiennent les données de la matrice courante dans la notation de ligne de code de type 1 LDraw, comme :
    local x, y, z, a, b, c, d, e, f, g, h, i=myMatrix:get()
    Vous pouvez utiliser ces valeurs lorsque vous voulez faire une manipulation manuelle de bas niveau sur une matrice ou besoin de transmettre les données à certaines bibliothèques tierces.
    Cette fonction n'a pas de paramètre supplémentaire.

    stripOri

    stripOri réinitialise la partie orientation de la matrice à sa valeur neutre, tout en gardant la partie position.
    Une nouvelle matrice contenant une copie de l'ancienne orientation (sans position) sera également retournée.
    Cette fonction n'a pas de paramètre supplémentaire.

    stripPos

    stripPos réinitialise la partie position de la matrice à sa valeur neutre, tout en gardant la partie orientation.
    Une nouvelle matrice contenant une copie de l'ancienne position sera également retournée.
    Cette fonction n'a pas de paramètre supplémentaire.

    limitToOri

    limitToOri supprime les informations de position de la matrice, tout en conservant la partie orientation.
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    limitToPos

    limitToOri supprime les informations d'orientation de la matrice, tout en conservant la partie position.
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    mulAB

    mulAB utilise une seconde matrice pour multiplier la première comme : self=self*B
    En plus d'une seconde matrice directe, vous pouvez également utiliser les combinaisons de paramètres matrice du constructeur comme source de "B".
    Cette fonction n'a pas de valeur de retour.

    mulBA

    mulAB utilise une seconde matrice pour multiplier la première comme : self=B*self
    En plus d'une seconde matrice directe, vous pouvez également utiliser les combinaisons de paramètres matrice du constructeur comme source de "B".
    Cette fonction n'a pas de valeur de retour.

    getMulAB

    getMulAB est identique à mulAB, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    getMulBA

    getMulBA est identique à mulBA, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    mulOriAB

    mulOriAB utilise une seconde matrice pour transformer sa sous-matrice d'orientation 3x3, comme : self=self*B
    Les informations de position de la matrice restent inchangées.
    En plus d'une seconde matrice directe, vous pouvez également utiliser les combinaisons de paramètres d'orientation de matrice du constructeur comme source de "B". Voir aussi setOri.
    Cette fonction n'a pas de valeur de retour.

    mulOriBA

    mulOriBA utilise une seconde matrice pour transformer sa sous-matrice d'orientation 3x3, comme : self=B*self
    Les informations de position de la matrice restent inchangées.
    En plus d'une seconde matrice directe, vous pouvez également utiliser les combinaisons de paramètres d'orientation de matrice du constructeur comme source de "B". Voir aussi setOri.
    Cette fonction n'a pas de valeur de retour.

    getMulOriAB

    getMulOriAB est identique à mulOriAB, sauf qu'elle renvoie une nouvelle matrice avec les données d'orientation obtenues sans changer ses propres données.

    getMulOriBA

    getMulOriBA est identique à mulOriBA, sauf qu'elle renvoie une nouvelle matrice avec les données d'orientation obtenues sans changer ses propres données.

    setTranslate

    setTranslate charge une transformation de translation dans la matrice. Elle remplace à la fois les informations de position et d'orientation.
    La translation peut être donnée par toute combinaison de paramètres de vecteur valide (voir le constructeur du chapitre ldc.vector).
    Cette fonction n'a pas de valeur de retour.

    mulTranslateAB

    mulTranslateAB effectue une transformation de translation sur ses données actuelles. La translation donnée (sous forme de matrice) est appliquée comme : self=self*transMatrix
    La translation peut être donnée par toute combinaison de paramètres de vecteur valide (voir le constructeur du chapitre ldc.vector).
    Cette fonction n'a pas de valeur de retour.

    mulTranslateBA

    mulTranslateBA effectue une transformation de translation sur ses données actuelles. La translation donnée (sous forme de matrice) est appliquée comme : self=transMatrix*self
    La translation peut être donnée par toute combinaison de paramètres de vecteur valide (voir le constructeur du chapitre ldc.vector).
    Cette fonction n'a pas de valeur de retour.

    getMulTranslateAB

    getMulTranslateAB est identique à mulTranslateAB, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    getMulTranslateBA

    getMulTranslateBA est identique à mulTranslateBA, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    setRotate

    setRotate charge une transformation de rotation dans la matrice, ce qui écrase toutes les données de la matrice.
    La rotation désirée doit être donnée au moyen d'un angle (en degrés) et d'un vecteur pour tourner autour. La partie vecteur peut être donnée par toute combinaison de paramètres de vecteur valide du constructeur.
    Cette fonction n'a pas de valeur de retour.

    mulRotateAB

    mulRotateAB effectue une transformation de rotation sur ses données actuelles. La rotation désirée (sous forme de matrice) est appliqué comme : self=self*rotateMatrix
    La rotation désirée doit être donnée au moyen d'un angle (en degrés) et d'un vecteur pour tourner autour. La partie vecteur peut être donnée par toute combinaison de paramètres de vecteur valide du constructeur.
    Cette fonction n'a pas de valeur de retour.

    mulRotateBA

    mulRotateBA effectue une transformation de rotation sur ses données actuelles. La rotation désirée (sous forme de matrice) est appliqué comme : self=rotateMatrix*self
    La rotation désirée doit être donnée au moyen d'un angle (en degrés) et d'un vecteur pour tourner autour. La partie vecteur peut être donnée par toute combinaison de paramètres de vecteur valide du constructeur.
    Cette fonction n'a pas de valeur de retour.

    getMulRotateAB

    getMulRotateAB est identique à mulRotateAB, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    getMulRotateBA

    getMulRotateBA est identique à mulRotateBA, sauf qu'elle renvoie une nouvelle matrice avec les données obtenues sans changer ses propres données.

    invert

    invert inverse la matrice de sorte qu'elle devient sa propre transformation "undo".
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    invertOri

    invertOri inverse (transposition 3x3) sa partie orientation sans changer l'information de position.
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    invertPos

    invertPos inverse le signe des coordonnées de position x, y et z. L'orientation reste inchangée.
    Cette fonction n'a pas de paramètre supplémentaire et n'a pas de valeur de retour.

    getInverted

    getInverted fait la même chose que invert mais renvoie le résultat comme un nouvel objet matrice sans changer ses propres données.

    getInvertedOri

    getInverted fait la même chose que invertOri mais renvoie le résultat d'orientation (donc sans information de position) comme un nouvel objet matrice sans changer ses propres données.

    getInvertedPos

    getInvertedPos fait la même chose que invertPos mais renvoie le résultat de position comme un nouvel objet matrice sans changer ses propres données.

    getTransformed

    getTransformed peut être utilisé pour appliquer les données de la matrice courante à une source quelconque.
    La source doit être donnée comme un vecteur ou une de ses combinaisons de paramètres de vecteur valide du constructeur.
    La fonction renvoie alors les valeurs x, y et z transformées.

    ldc.subfile

    L'objet sous-fichier est utilisé pour accéder à un modèle LDraw simple dans LDCad. Il est appelé sous-fichier car un fichier LDraw peut contenir plusieurs modèles (MPD).
    Un objet sous-fichier peut être obtenu comme résultat d'autres fonctions ldc, mais vous pouvez également en créer un pour une utilisation personnalisée en utilisant son constructeur, comme :
    local mySF=ldc.subfile()
    Après cela, vous pouvez utiliser la variable mySF pour accéder aux données du modèle LDraw associé. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    local cnt=mySF:getRefCount()

    Constructeur

    Lors de la création d'un sous-fichier en utilisant ldc.subfile() celui-ci pointera par défaut au niveau supérieur du modèle de la session d'édition courante. Mais, vous pouvez aussi le faire pointer vers un autre modèle en fournissant le nom du modèle recherché en tant que paramètre du constructeur.
    Lorsque, par exemple, "minifig.ldr" est donné et est utilisé quelque part dans l'arborescence du modèle de la session courante, il sera lié à l'objet sous-fichier. S'il n'y a pas un tel modèle, l'objet sous-fichier ne sera pas lié.
    Noter qu'un objet sous-fichier non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Il est aussi autorisé de fournir un autre objet sous-fichier comme paramètre du constructeur afin de le copier.

    clone

    Tous les objets ldc sont orientés donnée utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'un objet sous-fichier, vous devez utiliser sa fonction clone. Elle renvoie un nouvel objet sous-fichier contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    link

    link est utilisé pour associer l'objet sous-fichier avec un (autre) sous-fichier dans LDCad. Cela se fait en donnant un nom qui est ensuite utilisé pour rechercher dans l'arborescence du modèle de la session courante. Si aucun nom n'est donné, l'objet sera par défaut au niveau supérieur des sous-fichiers de la session courante.
    Si aucune session n'est active, ou si aucun sous-fichier de la session n'a le nom donné, l'objet sera non lié.
    Noter qu'un objet sous-fichier non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Cette fonction renvoie vrai (true) si un lien a été installé avec succès, renvoie faux (false) sinon.

    isLinked

    isLinked renvoie une valeur booléenne indiquant si l'objet est actuellement lié à un sous-fichier ou non.
    Cette fonction n'a pas de paramètre supplémentaire.

    getFileName

    getFileName renvoie le nom de fichier complet du sous-fichier courant lié (le cas échéant).
    Si l'objet n'est pas lié, une chaîne vide sera retournée.
    Cette fonction n'a pas de paramètre supplémentaire.

    getRefCount

    getRefCount renvoie le nombre de lignes de code de type 1 dans le sous-fichier lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getRef

    getRef est utilisé pour obtenir un nouvel objet refLine lié à l'une des lignes de code de type 1 contenu dans le sous-ficher lié.
    Vous pouvez accéder aux lignes par index, en commençant à 1, ou par le nom de la pièce (par exemple : 3001.dat). Si un nom de pièce est donné, la première référence dans le sous-fichier pointant vers elle sera retournée. Si un nom de pièce et un index est donné, la énième référence pointant vers elle sera retournée.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getGroupCount

    getGroupCount renvoie le nombre de groupes qui ont leur premier niveau dans le sous-fichier lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getGroup

    getGroup est utilisé pour obtenir un nouvel objet groupe lié à l'un des groupes LDCad existant dans le sous-fichier lié.
    Vous pouvez accéder aux groupes par index, en commençant à 1, ou par le nom d'un groupe (par exemple Group 1).
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    ldc.refLine

    L'objet refLine est utilisé pour accéder à une seule ligne de code LDraw de type 1 dans LDCad.
    Un objet refLine est toujours obtenu à partir d'autres fonctions ldc, comme par exemple :
    local myRef=mySF:getRef(1)
    Après cela, vous pouvez utiliser la variable myRef pour manipuler les données de la ligne de code LDraw de type 1 associée. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    myRef:setColor(15)

    Constructeur

    Le constructeur refLine n'a pas de paramètre et l'objet ne sera donc pas lié à une ligne de code LDraw de type 1 réelle.
    Notez qu'un objet refLine non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Il est également autorisé de fournir un autre objet refLine comme paramètre du constructeur afin de le copier.

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc et donc toujours passés par référence. Donc, pour obtenir une copie d'un objet refLine vous devez utiliser sa fonction clone. Elle renvoie un nouvel objet refLine contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    isLinked

    isLinked renvoie une valeur booléenne indiquant si l'objet est actuellement lié avec une refLine ou non.
    Cette fonction n'a pas de paramètre supplémentaire.

    getOri

    getOri renvoie un nouvel objet matrice contenant l'orientation actuelle de la refLine liée. Notez que l'orientation est relative au niveau où est le parent du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getPos

    getPos renvoie un nouveau vecteur contenant la position actuelle dans la ligne de code de type 1 liée. Notez que l'information donnée est relative au niveau où est le parent du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getPosOri

    getPosOri renvoie un nouvel objet matrice contenant la matrice de placement complète de la ligne de code de type 1 liée. Notez que l'information donnée est relative au niveau où est le parent du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    setOri

    setOri est utilisé pour changer l'orientation de la ligne de code de type 1 liée, sans changer sa position. Vous pouvez utiliser l'une des combinaisons de paramètres du constructeur de matrice d'orientation, afin de fournir le nouveau placement. Pour plus d'informations sur les paramètres, voir la fonction setOri de l'objet matrice elle-même.
    Notez que l'information donnée est relative au niveau où est le parent du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setPos

    setPos est utilisé pour changer la position de la ligne de code de type 1 liée, sans changer son orientation. La nouvelle position peut être fournie en utilisant l'une des combinaisons de paramètres du constructeur de vecteur valide.
    Notez que l'information donnée est relative au niveau où est le parent du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setPosOri

    setPosOri est utilisé pour changer la matrice de placement LDraw complète de la ligne de code de type 1 liée. Vous pouvez utiliser l'une des combinaisons de paramètres du constructeur de matrice valide, afin de fournir le nouveau placement.
    Notez que l'information donnée est relative au niveau où est le parent refLine du sous-fichier.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    getVisible

    getVisible renvoie une valeur booléenne indiquant si la ligne de code de type 1 liée, est actuellement visible dans l'éditeur LDCad.
    Notez que l'état visible est seulement pertinent pendant la lecture d'animations.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    setVisible

    setVisible est utilisé pour changer l'état visible de la ligne de code de type 1 liée dans l'éditeur LDCad. Cela est fait en fournissant un paramètre booléen.
    Notez que l'état visible est seulement pertinent pendant la lecture d'animations.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    getColor

    getColor renvoie le code LDraw de la couleur actuellement utilisée par la ligne de code de type 1 liée.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    setColor

    setColor est utilisé pour changer la couleur de la ligne de code de type 1 liée. La couleur doit être donnée en utilisant son code couleur LDraw.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    getSubfile

    getSubfile renvoie un nouvel objet sous-fichier lié au sous-fichier auquel refLine appartient.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    ldc.group

    L'objet group est utilisé pour accéder au contenu LDraw d'un groupe LDCad. Les objets du groupe peuvent être obtenus à partir d'autres fonctions ldc, ou créés de façon autonome en utilisant leur constructeur, comme par exemple :
    local myGrp=ldc.group()
    La variable myGrp peut alors être utilisé pour accéder au contenu d'un groupe lié. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    myGrp:setColor(15)

    Constructeur

    Lors de la création d'un objet groupe en utilisant ldc.group() il sera par défaut dans un état non lié. Mais, vous pouvez également pointer vers quelque chose d'utile en fournissant le nom du groupe recherché en tant que paramètre du constructeur.
    Lorsque par exemple "Group 1" est utilisé, le sous-fichier principal de la session courante est recherché pour le groupe donné. Vous pouvez éventuellement demander une recherche récursive pour le groupe en fournissant true (vrai) comme second paramètre.
    S'il est trouvé il sera lié et vous pouvez commencer à travailler avec ce groupe, sinon l'état sera non lié. Notez qu'un objet groupe non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Il est aussi autorisé de fournir un autre objet groupe comme paramètre au constructeur afin de le copier.

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'un objet groupe vous devez utiliser sa fonction clone. Elle renvoie un nouvel objet groupe contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    link

    link est utilisé pour associer l'objet groupe avec un (autre) groupe dans LDCad, en utilisant un nom comme premier paramètre.
    En option, un second paramètre booléen peut être utilisé pour indiquer si la fonction doit faire une recherche récursive dans l'arborescence du modèle de la session courante si vrai (true), ou juste dans le sous-fichier principal si faux (false) par défaut.
    Si aucun groupe ne porte le nom soumis, l'objet sera non lié.
    Cette fonction renvoie vrai (true) si le lien a été installé avec succès, renvoie faux (false) sinon.

    isLinked

    isLinked renvoie une valeur booléenne indiquant si l'objet est actuellement lié à un groupe ou non.
    Cette fonction n'a pas de paramètre supplémentaire.

    getGroupName

    getGroupName renvoie le nom du groupe lié. S'il n'y a pas de groupe actuellement lié, elle retourne une chaîne vide.
    Cette fonction n'a pas de paramètre supplémentaire.

    getRefCount

    getRefCount renvoie le nombre de lignes de code de type 1 dans le groupe LDCad lié. Notez que ce nombre peut ne pas être égal au nombre total d'éléments dans le groupe car un groupe ne contient pas exclusivement des lignes de code de type 1.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getRef

    getRef est utilisé pour obtenir un nouvel objet refLine lié à l'une des lignes de code de type 1 que le groupe LDCad lié contient. Si un nom de pièce (partName) est donné à la place, la fonction renvoie la première référence pointant vers elle. Si un nom de pièce et un index est donné, la fonction renvoie le nième référence pointant vers elle.
    Vous pouvez accéder aux lignes par index, en commençant à 1, ou par nom de pièce (exemple 3001.dat). Si un nom de pièce est donné la première référence dans le groupe pointant vers elle est retourné.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getOri

    getOri renvoie un nouvel objet matrice contenant l'orientation actuelle du groupe LDCad lié. Notez que l'orientation est relative au niveau de l'élément principal du groupe lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getPos

    getPos renvoie un nouveau vecteur contenant la position du point de centre actuel du groupe LDCad lié.
    Notez que la position est relative au niveau de l'élément principal du groupe lié. Elle indique également la position du centre des groupes et non la véritable position des éléments principaux.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    getPosOri

    getPosOri renvoie un nouvel objet matrice contenant la matrice de placement complète du groupe LDCad lié. Notez que ce placement est relatif au niveau où est l'élément principal du groupe lié. Sa part position est prise au point de centre actuel du groupe LDCad lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de paramètre supplémentaire.

    setOri

    setOri est utilisé pour changer l'orientation du groupe LDCad lié, sans changer sa position. Vous pouvez utiliser l'une des combinaisons de paramètres du constructeur de matrice d'orientation, afin de fournir le nouveau placement. Pour plus d'informations sur les paramètres, voir la fonction setOri de l'objet matrice elle-même. Notez que l'information donnée est relative au niveau de l'élément principal du groupe lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setPos

    setPos est utilisé pour changer la position de la ligne de code de type 1 lié, sans changer son orientation. La nouvelle position peut être fournie en utilisant l'une des combinaisons de paramètres du constructeur de vecteur valide.
    Notez que l'information donnée est relative au niveau de l'élément principal du groupe lié. Elle s'applique également à la position du centre des groupes, et non à la vraie position de l'élément principal.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setPosOri

    setPosOri est utilisé pour changer la matrice de placement LDraw complète du groupe LDCad lié. Vous pouvez utiliser l'une des combinaisons de paramètres du constructeur de matrice valide, afin de fournir le nouveau placement.
    Notez que l'information donnée est relative au niveau de l'élément principal du groupe lié.
    Elle s'applique également à la position du centre des groupes, et non à la vraie position de l'élément principal.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setVisible

    setVisible affiche ou cache tous les éléments du groupe lié à l'aide d'un paramètre booléen.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    setColor

    setColor applique le code couleur LDraw donné à tous les éléments du groupe lié.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.
    Cette fonction n'a pas de valeur de retour.

    ldc.animation

    L'objet animation est utilisé pour accéder et/ou créer une animation dans LDCad. Il est presque toujours créé en utilisant son constructeur, comme par exemple :
    local myAni=ldc.animation()
    La variable myAni peut alors être utilisée pour manipuler une animation. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    myAni:register('kick ass movie')

    Constructeur

    Lors de la création d'un objet animation en utilisant ldc.animation() il sera par défaut à son état non lié. Mais vous pouvez également pointer vers une animation existante ou une nouvelle animation, en une seule fois, en fournissant le nom de l'animation voulue comme paramètre du constructeur.
    Lorsque le nom donné appartient à une animation existante, dans la session d'édition courante, l'objet animation sera lié. S'il n'y a pas un tel objet, il sera ajouté puis lié.
    Notez qu'un objet animation non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Il est aussi autorisé de fournir un autre objet animation comme paramètre au constructeur afin de le copier.

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'un objet animation vous devez utiliser sa fonction clone. Elle renvoie un nouvel objet animation contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    register

    register est utilisé pour créer (ou lier) une (différente) animation dans la session d'édition courante.
    Cela est fait en fournissant un nom comme paramètre. Si une animation est trouvé avec ce nom, elle est liée avec, sinon elle sera créé puis liée.
    Cette fonction n'a pas de valeur de retour.

    link

    link est utilisé pour associer un objet animation avec un (autre) objet animation, dans la session d'édition courante.
    Cela est fait en fournissant un nom comme paramètre. Si un objet animation est trouvé avec ce nom il est lié, sinon l'objet retourne à son état non lié.
    Cette fonction renvoie un indicateur booléen, indiquant si le lien a été installé ou non.

    isLinked

    isLinked renvoie un indicateur booléen si l'objet est actuellement lié avec une animation ou non.
    Cette fonction n'a pas de paramètre supplémentaire.

    getName

    getName renvoie le nom de l'animation courante liée. Si rien n'est actuellement lié, une chaine vide est renvoyée.
    Cette fonction n'a pas de paramètre supplémentaire.

    setFPS

    setFPS est utilisé pour définir le nombre d'images par seconde de l'animation liée en lecture.
    Lorsque cette fonction n'est jamais appelée, l'animation prend par défaut la valeur interne par défaut de LDCad. Changez seulement le fps (frames per second = images par seconde) par script si vous souhaitez appliquer un taux statique pour une raison quelconque.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getFPS

    getFPS renvoie le nombre actuel d'images par seconde qu'utilise l'animation liée pendant la lecture.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getFrameNr

    getFrameNr renvoie le numéro de l'image de l'animation liée actuellement active. Notez que contrairement au comportement normal de lua, la première image de l'animation est numéroté zéro, cela est dû principalement à une raison mathématique.
    Notez également que le numéro ne doit pas être à moins de 0..fps*length-1 car cela représente des images supplémentaires résultant de choses comme un mouvement lent.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getFrameCount

    getFrameCount renvoie le nombre d'images actuellement actives de l'animation liée.
    Notez que le nombre n'est pas forcement égal à fps*length car il comptabilise des images supplémentaires résultant de choses comme un mouvement lent.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getFrameTime

    getFrameTime renvoie le temps en secondes de l'image courante de l'animation liée représente. C'est zéro pour la première image et (length-1/fps) pour la dernière.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    setLength

    setLength est utilisé pour configurer le temps de lecture de l'animation liée. Vous devez fournir la longueur souhaitée en secondes.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    getLength

    getLength renvoie le temps de lecture en secondes de l'animation liée.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    setEvent

    setEvent est utilisé pour contrôler quelle fonction de script lua est appelée quand un certain évènement d'animation se produit. Cela se fait en fournissant deux chaines de caractères comme paramètres.
    Le premier paramètre identifie l'évènement que vous voulez souscrire. Les évènements disponibles sont :

    Le second paramètre est le nom (sans les "()") de la fonction lua dans votre script que vous voulez exécuter lorsque l'évènement donné se produit.
    Notez que les évènements sont liés au niveau LDCad, non seulement pour l'objet de l'animation sur lequel vous travaillez.
    Si l'objet n'est pas lié, l'appel de cette fonction provoque une erreur et termine l'exécution du script.

    ldc.session

    L'objet session est utilisé pour accéder à une session d'édition dans LDCad. Il est toujours créé en utilisant son constructeur, comme par exemple :
    local mySes=ldc.session()
    La variable mySes peut alors être utilisée pour accéder à des informations sur une session liée. Cela se fait à travers une collection de fonctions auxquelles vous avez toujours accès en utilisant la méthode du raccourci lua ":". Exemple :
    print(mySes:getName())

    Constructeur

    Lors de la création d'un objet session en utilisant ldc.session() il sera par défaut à la session d'édition courante, s'il n'y en a pas il sera à son état non lié.
    Notez qu'un objet session non lié provoque une erreur d'exécution dès que vous essayez de l'utiliser comme s'il était lié.
    Il est aussi autorisé de fournir un autre objet session comme paramètre au constructeur afin de le copier.

    clone

    Tous les objets ldc sont orientés données utilisateur lua, et donc toujours passés par référence. Donc, pour obtenir une copie d'un objet session vous devez utiliser sa fonction clone. Elle renvoie un nouvel objet session contenant des données identiques.
    Cette fonction n'a pas de paramètre supplémentaire.

    isLinked

    isLinked renvoie un indicateur booléen si l'objet est actuellement lié avec une session ou non.
    Cette fonction n'a pas de paramètre supplémentaire.

    getName

    getName renvoie le nom de la session liée. Le nom donné est identique à celui affiché en haut à droite du panneau édition LDCad. Si aucune session n'est actuellement liée, une chaine vide est renvoyée.
    Cette fonction n'a pas de paramètre supplémentaire.

    Exemple de script

    L'inconvénient de tout cela est que vous devez investir du temps et des efforts pour commencer à utiliser les scripts. Comme la meilleure façon d'apprendre quelque chose est de passer par des exemples, voici, fournis par l'auteur de LDCad, quelques exemples essentiels de taches courantes que vous pouvez faire à l'aide de scripts dans LDCad.

    La principale raison de l'ajout des scripts à LDCad était son utilisation combinée avec la création d'animations. La plupart des fonctions disponibles visent donc à cet objectif.

    Toute animation dans LDCad doit être créée par le biais d'un script afin d'être accessible dans l'interface graphique. A cette fin, vous pouvez lier un fichier de script lua à votre modèle en utilisant la boite de dialogue de son entête ou juste par glisser-poser du fichier .lua dans LDCad lorsque son modèle est le modèle courant.

    Ci-dessous le minimum de choses à mettre dans un script pour rendre accessible votre modèle au mode animation.

    function register()
      local ani=ldc.animation('test animation')
      ani:setLength(10)
      ani:setEvent('frame', 'onFrame')
    end
    
    function onFrame()
      local ani=ldc.animation.getCurrent()
      --do per frame animation stuff
    end
    
    register()
    

    Le script ci-dessus crée et enregistre l'animation "test animation", et la configure pour avoir un temps de lecture de 10 secondes. Il attribue ensuite la fonction "onFrame" pour gérer la dépendance des changements à chaque image.

    En utilisant ce script, avec n'importe quel modèle courant dans LDCad, cela rendra actif l'onglet "animation" dans le panneau session, qui à son tour listera "test animation" comme animation active courante (vous pouvez écrire plusieurs animations dans le même script).

    Lorsque le mode animation joue l'animation, elle appelle la fonction "onFrame" de votre script lua à chaque image de l'animation. Il est de la teneur de cette fonction de gérer la position, l'orientation, la couleur, le statut afficher/masquer de toutes les choses que vous voulez faire au sein de votre film.

    Le script actuel ne fait donc absolument rien. Il faut donc modifier la fonction "onFrame" pour faire tourner en continu la première brique dans le modèle autour de son axe Y, tout en conservant sa position globale en valeur absolue pendant la lecture.

    function onFrame()
      local ani=ldc.animation.getCurrent()
      local angle=ani:getFrameNr()/ani:getFrameCnt()*360
      local ref=ldc.subfile():getRef(1)
      local ori=ldc.matrix()
      ori:setRotate(angle, 0, 1, 0)
      ref:setOri(ori)
    end
    

    La fonction calcule maintenant l'angle de rotation actuel sur la base du "frameNr" (une rotation par longueur de lecture). Il construit ensuite une matrice de rotation en utilisant l'angle, et l'applique à la ligne de référence LDraw en utilisant seulement sa partie orientation.

    Noter que la brique sera en rotation autour de son axe Y dans sa propre orientation neutre. C'est pourquoi la matrice de rotation est appliquée en valeur absolue.

    J'espère que l'exemple précédent vous permet de clarifier les bases. Maintenant, pour vraiment maîtriser les scripts d'animation il est bon d'essayer vous-même les API et d'analyser les modèles livrés en exemple avec LDCad, qui possèdent des scripts d'animation (par exemple 5510.mpd, 5580.mpd ou 4248.mpd). J'ai essayé d'ajouter autant que possible des commentaires utiles.

     

    Animation

    Depuis sa version 1.4 LDCad utilise les scripts, utilisant le langage lua, pour faire des trucs dynamiques amusants avec vos modèles LDraw.

    Chargement d'une animation

    Un script d'une animation peut se charger lorsqu'un modèle est actif en ouvrant son entête avec "Session / Edit header", onglet "Scripting", puis en sélectionnant le script sur le disque avec le bouton [ .. ], puis valider avec le bouton "OK".

    On peut charger directement le script d'une animation par un glisser-coller du fichier de l'explorateur Windows à la fenêtre du programme.

    Nota : En raison d'un bug, si l'on veut changer de fichier d'animation avec le même modèle il faut au préalable recharger ce modèle avec F5.

    Le script peut se charger automatiquement avec le modèle, si celui-ci contient une ligne de déclaration : 0 !LDCAD SCRIPT [source=nom_script.lua], ou nom_script.lua est le nom du fichier script.

    Activation du mode animation

    Activer le mode animation dans le panneau session, en cliquant sur l'onglet "Animation". Cela ouvre le panneau de gestion de l'animation et active l'animation par défaut du script.

    S'il n'y a pas de script de chargé, le mode animation est inactif.

    Pour sortir du mode animation, cliquer sur l'onglet "Normal" du panneau session.

    Sélection d'une animation

    Sélectionner une animation d'un fichier multi-script avec le menu "Session / Animation / Select animation". Ce menu apparait également dans le panneau session, onglet "Animation", en cliquant sur "Current: "xxx". Si "none" s'affiche c'est que le modèle ne possède pas d'animation.

    Utilisation d'une animation

    Une fois l'animation chargée et sélectionnée, un panneau de gestion de l'animation apparait à l'écran. Voir : Panneau animation pour son utilisation.

    Edition d'une animation

    Pour éditer l'animation active, aller dans "Session / Scripting / Open script".

    Nota : Pour que le fichier lua s'ouvre, un éditeur doit être assigné à ce type de fichier dans l'explorateur de Windows. Voir le chapitre : Installation.

    Création d'une animation

    Pour créer une animation ...

    Animation multiple

    Il est possible de mettre plusieurs animations dans un seul script. Pour cela utiliser un unique "frame / start function name" et enregistrer "multiple animation objects" dans la "register function".

    function register()
      local ani=ldc.animation('Animation 1')
      ani:setLength(20)
      ani:setEvent('frame', 'onAni1Frame') 
     
      ani:register('Animation 2')
      ani:setLength(15)
      ani:setEvent('frame', 'onAni2Frame')
    end
    function onAni1Frame()
     
      local ani=ldc.animation.getCurrent()
      --animation 1 frame stuff 
    end
    function onAni2Frame()
      local ani=ldc.animation.getCurrent()
      --animation 2 frame stuff
    end
    register()
    

    Exportation de l'animation

    Exportation d'image PNG

    Pour exporter les images PNG d'une animation utiliser le menu : "Session / Animation / OpenGL animation export".

    Paramétrage des images :

    Exemple d'une des 125 images générées sur le modèle 5580 et la macro "Explode" :

    Les fichiers se trouvent par défaut dans : C:\Users\tchang\AppData\Roaming\LDCad\examples\5580-glExport (dans cet exemple).

    Nota : Les images utilisent le point de vue et les pièces affichées suivant l'étape courante.

    Les images peuvent être ensuite assemblées dans une vidéo animée à l'aide, par exemple, de Movie Maker de Windows.

    Exportation pour rendu POV-Ray

    Pour exporter au format de rendu POV-Ray une animation le modèle tel à l'écran, utiliser le menu : "Session / Animation / POV-Ray animation export".

    Paramétrage du fichier POV, Onglet "Main options" :

    Onglet "POV Options" :

    Options :

    Prefixes :

    Onglet "POV Include files" :

    Onglet "INI Options" :

    Exemple de l'image générée par POV-Ray à partir du fichier 5580.pov généré par LDCad :

    Le fichier se trouve par défaut dans : C:\Users\tchang\AppData\Roaming\LDCad\examples\5580-povExport (dans cet exemple).

    Exemples d'animation

    En premier voir les tutoriels de Roland Melkert (en plein écran) :

    Les exemples qui suivent sont de Philo : Animation fun with LDCad.
    Les scripts sont à télécharger ici : LDCad_animation_scripts.zip (mono-script), model-build-animations.zip (multi-script) et brick_drop_build_rotate.zip (mono-script).
    Le modèle LDraw de Faramond Florent (Makou) avec ses sous-modèles décomposés : 10018_-_Darth_Maul-flat.mpd, ou Non : 10018_-_Darth_Maul-flat-sub.mpd.

    Marche à suivre :

    Nota 1 : Le script peut être chargé directement par un glisser-coller du fichier de l'explorateur Windows à la fenêtre du programme.

    Nota 2 : En raison d'un bug (v1.5), si l'on veut changer de script avec le même modèle il faut au préalable recharger ce modèle avec F5.

    Construction de bas en haut

    Modèle : 10018 - Darth Maul-flat.mpd
    Script : bottom up build.lua (bottom-up)
    ou Multi-script : model-build-animations.lua (Bottom-up Build).

    Construction et dissolution dans l'ordre des pièces

    Modèle : 10018 - Darth Maul-flat.mpd
    Script : part order build.lua (build)
    Script : part order dissolve.lua (dissolve)
    ou Multi-script : model-build-animations.lua (Build ou Dissolve).

    Attirance magnétique (implosion)

    Modèle : 10018 - Darth Maul-flat.mpd
    Script : magnet build.lua (magnet build)
    ou Multi-script : model-build-animations.lua (Magnet Build).

    Explosion

    Modèle : 10018 - Darth Maul-flat.mpd
    Script : explode.lua (explode)
    ou Multi-script : model-build-animations.lua (Explode).

    Construction par couche

    Modèle : 10018 - Darth Maul-flat.mpd
    Script : brick drop build.lua (brick drop build)
    ou Multi-script : model-build-animations.lua (Layered Brick Drop Build).

    Construction par couche avec rotation

    Modèle : 10018 - Darth Maul-flat-sub.mpd
    Script : brick drop build rotate (brick drop build+rotate).

     

    Tutoriel : Edition de base

    Dans ce chapitre, je vais vous guider à travers les bases de l'édition de modèle dans LDCad. Donc, après avoir lu ce chapitre vous devriez être capable de créer vos propres modèles LDraw basiques, comme une maison simple ou une petite voiture. Cependant, il est préférable de lire au préalable le chapitre : Description de l'interface utilisateur et en particulier de connaître un peu l'utilisation des panneaux pièces et couleurs.

    Ouvrir un nouveau modèle

    Le plus simple est au démarrage de sélectionner "Start a new model" dans le panneau "Getting started", mais vous pouvez à tout moment ouvrir un nouveau modèle avec le menu "File / New model".

    Juste après une boite de dialogue "Edit header" s'ouvre. Elle est utilisée pour entrer quelques informations sur le modèle. A ce stade seul le champ "Author" a un intérêt réel, ensuite il suffit de fermer la boite de dialogue en appuyant sur le bouton "Ok".

    La première fois que vous fermez cette boite de dialogue, un message apparaît demandant si le nom et le prénom doivent être utilisés par défaut pour tous les futurs modèles comme "Author" et "User". Comme c'est généralement le cas, répondre "Oui".

    Après tout cela vous devez avoir une zone d'édition graphique vide dans laquelle vous pourrez commencer à construire quelque chose de révolutionnaire. L'écran doit ressembler à ceci :

    Aux quatre coins du panneau d'édition graphique, vous trouverez des éléments qui contrôlent un certain aspect du processus de construction :

    Comme ce chapitre s'attache uniquement au dessin de modèles simples, la plupart de ces coins n'ont pas encore d'intérêt réel. Pour l'instant il suffit de se concentrer sur la boussole dans le coin en bas à gauche. Cette boussole sera discutée plus en détail plus bas.

    Préparation des panneaux couleurs et pièces

    Lorsque vous travaillez sur un nouveau modèle LDraw, il est conseillé en premier de configurer les panneaux couleurs et pièces d'une manière pratique.

    Nous allons par exemple fixer le premier onglet du panneau couleurs sur "Solid plastic" (plastique opaque) et le second sur "Transparent" (plastique transparent) car ces groupes de couleurs sont le plus souvent utilisés. Eventuellement (selon le type de modèle) vous pouvez également définir les troisième et quatrième onglets sur "Metallic" (métallique) et "Rubber" (caoutchouc).

    Après avoir fait cela une fois, vous n'aurez probablement plus jamais à le refaire. En effet, cette configuration couvre 99% des besoins de modélisation normale et LDCad mémorise la configuration d'une session à l'autre.

    Pour le panneau pièces c'est une autre histoire. Choisir les groupes de pièces pour les six onglets, dépendra grandement du type de modèle Lego (par exemple Technic, City, Creator, ...) que vous allez vouloir créer.

    Dans notre exemple, nous allons travailler sur une petite maison. Alors mettez "Plain bricks" au premier onglet (briques ordinaires, que l'on trouve à partir de la racine dans "Library sorted... / Basic bricks / Basic bricks without..."). Au second onglet les plates ordinaires seraient probablement des plus utiles. Donc y affecter "Normal plates" (plates ordinaires, que l'on trouve à partir de la racine dans "Library sorted... / Plate (flat) parts / Normal plates).

    Nous pourrions ensuite mettre les onglets trois, quatre, et cinq simplement sur "Sorted" pour naviguer ensuite dans ces arborescences lorsque l'on a besoin d'une pièce non disponible dans les deux premiers onglets.

    Enfin mettons dans l'onglet six le résultat de recherche "Search" (que l'on trouve à partir de la racine indiqué par la minifig tenant une loupe). Il sera alors prêt à l'emploi, lorsque nous essayerons de trouver des pièces spécifiques pas très souvent utilisées.

    Avec les panneaux configurés à votre goût, il est temps de commencer à construire quelque chose.

    Base du placement des briques

    Remarque, bien que LDCad ait un mode attirance des briques entre-elles, je voudrais tout d'abord utiliser le mode grille de positionnement, car il est important de comprendre la notion de grille pour profiter ensuite pleinement du mode attirance.

    Construire un modèle virtuel LDraw est sensiblement la même chose que construire un vrai modèle LEGO, il suffit d'ajouter une brique à la fois. La seule différence est que votre stock de briques est illimité dans une multitude de couleurs.

    Afin d'ajouter une brique dans le modèle, vous sélectionnez tout d'abord la couleur que vous voulez utiliser dans le panneau couleurs. Par exemple sélectionner "Red" (rouge) afin que nous puissions commencer à construire un mur pour notre petite maison. Avec la couleur fixée, vous allez chercher la brique que vous voulez ajouter au modèle dans le panneau pièces.

    Localisez la pièce "Brick 1x4" dans le panneau pour faire notre mur. Le premier onglet activé, nous devons nous trouver sur "Plain bricks", alors faisons défiler les pièces vers le bas avec la molette de la souris, jusqu'à ce que nous apercevions la brique 1x4. Cliquer alors sur cette brique et sans relâcher le bouton gauche de la souris, la déplacer dans la zone d'édition graphique.

    Lorsque la brique entre dans la zone graphique vous devez voir quelque chose comme cela :

    La grille visualise le plan de placement actif et l'intersection des lignes bleu et rouge représente l'origine de ce plan. Le petit panneau à côté de la pièce affiche sa position dans l'espace 3D. Ne nous occupons pas pour l'instant des valeurs affichées et plaçons la pièce n'importe où en relâchant le bouton de la souris.

    Nota : Je suppose que vous n'avez pas fait pivoter la scène avant le placement. Si vous l'avez fait, vous pourriez voir la grille orientée d'une autre façon (verticalement par exemple au lieu d'être à plat). Si c'est le cas ne vous inquiétez pas, posez la brique n'importe où, puis appuyez sur la touche "T" pour remettre la grille par défaut.

    Une fois le bouton de la souris relâché l'affichage change à nouveau. La grille aura disparu et une sorte de parapluie sera épinglé sur le dessus de la brique. Il s'agit de l'outil de manipulation principal d'une sélection appelé "pin" en anglais ou "épingle" en français.

    L'épingle est principalement utilisée pour faire tourner ou déplacer les briques sélectionnées après leur placement initial. L'épingle sera par défaut en mode rotation indiqué par le disque. Cela permet d'ajouter une nouvelle brique 1x4 près de la première pour créer le coin de notre maison. Vous la faites glisser dans le modèle comme précédemment, puis vous cliquez sur le disque de rotation. Une petite étiquette apparait et en maintenant le bouton de la souris enfoncé, délacer la souris jusqu'à ce que "95DEG" ou "-95DEG" s'affiche.

    La pièce est désormais orientée à 90° comme vous le voulez, mais pas au bon endroit. Vous pouvez la déplacer avec l'épingle en la mettant en mode déplacement. Pour cela cliquez sur le cube central au dessus du disque. Le disque se transforme en une croix fléchée.

    En mode déplacement l'épingle peut être utilisée pour déplacer la sélection de trois manières différentes dans le plan d'édition courant. En cliquant et en maintenant le centre de la croix cela permet de déplacer librement dans le plan. En cliquant et en maintenant une des flèches cela permet de déplacer suivant une seule direction. Dans le cas présent utilisez le centre de la croix pour déplacer la brique, de façon à faire un coin avec l'autre brique. De façon alternative, vous pouvez également déplacer n'importe quelle sélection en cliquant sur une pièce de cette sélection et en déplaçant la souris. Bien que la méthode utilisant l'épingle marche mieux combiné avec la méthode d'attirance discutée plus loin.

    Ensuite, nous allongeons le mur dans les deux sens en ajoutant d'autres briques 1x4. Il suffit de glisser une autre brique dans la scène. En faisant cela, vous avez probablement remarqué que la nouvelle brique sera orientée comme celle que nous avons tournée. C'est parce que les nouvelles pièces seront toujours ajoutées à un modèle avec la dernière couleur et la dernière orientation utilisée. Mettre la brique ajoutée au bout de la précédente.

    Pour ajouter une brique orientée comme la première, vous sélectionnez simplement celle-ci en cliquant dessus. Cela provoque le saut de l'épingle sur cette brique. Ensuite vous glissez et déposez une nouvelle brique 1x4 et cette fois elle va être orientée dans l'autre sens. Lorsqu'elle est placée vous avez maintenant quatre briques et le modèle commence à se construire.

    Point de vue

    Maintenant que nous avons quatre briques à l'écran, l'espace pourrait commencer à manquer pour la suite. Ceci peut être facilement corrigé en modifiant l'affichage du modèle. Cela se fait en manipulant la caméra. Pour en voir plus il faut dé-zoomer. Cela peut être fait simplement en utilisant la molette de la souris dans la zone graphique. Cela devrait être facile, donc faites juste un essai.

    Pendant le zoom vous remarquerez peut-être que l'emplacement de la souris influe sur la façon dont les choses sont zoomées. C'est ce qu'on appelle un "zoom sur le curseur" qui est le mode de zoom par défaut. Le zoom sur le curseur s'assure que ce qui est par exemple au-dessous du curseur de la souris reste sous le curseur pendant que vous zoomez ou dé-zoomez. En prime, vous pouvez également utiliser ce comportement pour déplacer la vue vers la droite ou la gauche par exemple en choisissant intelligemment la position du curseur.

    Un moyen plus facile pour déplacer le point de vue pourrait être d'utiliser la touche Maj en cliquant dans le fond de la zone graphique, tout en déplaçant la souris. Si vous voulez déplacer la scène par rapport au plan de construction courant utilisez les touches Ctrl+Maj.

    Les mouvements de caméra ci-dessus se font en utilisant le bouton gauche de la souris combinée avec un clic sur le fond de la zone graphique. En travaillant sur de très grands modèles cela pourrait entraîner un problème si l'arrière-plan n'était pas visible. Pour éviter cela, vous pouvez également utiliser le bouton droit, combiné avec les touches Maj ou Ctrl+Maj pour déplacer le point de vue. La seule différence entre la méthode du bouton droit et celle du bouton gauche est que celle du bouton droit ignore complètement les briques à l'écran.

    En plus de déplacer la caméra, vous pouvez également modifier l'angle ou la direction d'où vous regardez la scène en la faisant tourner. Cela se fait en cliquant avec le bouton gauche de la souris sur le fond de la zone graphique, suivi d'un déplacement de la souris.

    LDCad utilise le mode rotation "trackball" (boule de commande) par défaut, ce qui signifie que l'emplacement de départ du clic de la souris va influencer la manière dont la scène tourne. La meilleure façon de le visualiser c'est d'imaginer un gros ballon de plage à l'intérieur de la zone graphique. Si vous le "prenez" au centre gauche et déplacez la souris vers la droite, il tournera de gauche à droite, mais si vous le prenez en bas à gauche et déplacez la souris vers le haut à droite il tournera en diagonale et ainsi de suite.

    Beaucoup de gens n'aiment pas le mode trackball, il est donc possible de contrôler la rotation avec une méthode plus conviviale pour les débutants expliquée dans le chapitre de la boussole plus bas. Mais s'il-vous-plaît, ne renoncez pas trop vite, car vous pourriez apprendre à aimer le mode trackball si vous vous donnez assez de temps pour le maîtriser.

    Le plan d'édition

    En plaçant les premières briques vous pourriez vous dire qu'elles ne peuvent être positionnées que suivant deux directions. La raison principale de ceci est que vous construisez un modèle 3D à l'aide d'un périphérique d'entrée (souris) se déplaçant sur un écran 2D. LDCad résout ce problème en orientant la grille 2D dans le plan de montage utile.

    Le plan de montage limitera toujours les manipulations dans seulement deux des trois directions du modèle. Cela signifie que vous travaillez dans trois "vues" différentes du modèle, à savoir : haut/bas, gauche/droite ou côtés et avant/arrière. Jusqu'à présent, nous avons travaillé uniquement dans l'orientation haut/bas.

    Pendant une rotation de la vue, vous pourriez avoir noté que l'orientation du plan d'édition change parfois automatiquement. C'est le résultat de la fonction "auto editing plane" qui est activé par défaut. Cette fonction de basculer automatiquement entre les trois différents plans d'édition est basé sur l'emplacement de la caméra. En bref, il essaie de deviner le plan de montage que vous allez avoir besoin ensuite. Vous pourriez aussi avoir noté que l'épingle change de direction selon l'orientation courante du plan d'édition.

    Profitons de ce changement automatique pour ajouter une deuxième couche de briques à notre mur. Sélectionnez d'abord une brique orientée de la même façon que celle que vous voulez ajouter. Faites ensuite tourner la caméra jusqu'à ce que l'épingle soit vers vous comme sur la photo ci-dessus.

    Maintenant, faites glisser une nouvelle brique 1x4 (ou 1x2 afin de créer un mur plus solide en alternant les jonctions verticales) dans le modèle. Vous remarquerez encore que la nouvelle brique ne peut être déplacée que dans deux directions, mais cette fois l'un d'elles est la hauteur, ce qui vous permet de placer la nouvelle brique sur les autres.

    Pour ajouter sur la deuxième rangée une brique perpendiculaire à la première , vous pouvez sélectionner une brique bien orientée sur la première rangée et changer à nouveau la caméra ou se mettre avec le plan de montage haut/bas et tourner la nouvelle brique après le placement. Une fois que vous avez obtenu les deux orientations sur la deuxième rangée, il suffit d'ajouter les nouvelles briques en commençant par sélectionner une brique bien orientée sur cette rangée.

    En ajoutant les briques vous avez sans doute remarqué que la position des nouvelles briques dépendait également de celle de la dernière utilisée (ou sélectionnée) concernant la troisième direction de leur position. Cela signifie que l'ajout d'une nouvelle brique en vue de dessus utilisera comme hauteur celle de la dernière brique sélectionnée. Vous pouvez utiliser ce comportement pour construire par exemple des murs parallèles et multi-niveaux sans avoir à changer tout le temps l'orientation du plan d'édition. Juste en sélectionnant intelligemment au préalable la bonne brique.

    En utilisant les connaissances ci-dessus, voyez si vous pouvez continuer le mur jusqu'à ce qu'il ressemble au modèle ci-dessous.

    La boussole d'édition

    Jusqu'à présent, j'ai essayé de vous familiariser avec une chose à la fois en utilisant leur comportement par défaut. En faisant cela, j'ai complètement ignoré la boussole située en bas à gauche de la zone graphique. La boussole est sans doute le moyen de contrôle le plus important de LDCad, il est donc très important de bien comprendre ses mécanismes de fonctionnement.

    La boussole est accessible en plaçant votre souris sur la petite grille fléchée dans le coin en bas à gauche. Alors se fait un zoom avec une version plus grande et vous donnant un accès direct à un certain nombre d'options et paramètres de grille et plan d'édition souvent utilisés. Passons tout d'abord sur les choses entourant la bordure du panneau boussole.

    En haut à gauche du panneau, vous voyez le texte "10 10" (si vous êtes en vue de dessus). Ceci indique le pas de la grille courante dans le plan d'édition courant. En cliquant sur les nombres on ouvre le menu grille (Grid). La principale utilisation du menu grille consiste à sélectionner une grille différente ou un pas de rotation différent. Ceci est nécessaire si le placement d'une brique semble "sauter" l'endroit où vous voulez qu'elle aille parce que la grille courante à un pas trop important.

    En haut à droite du panneau vous voyez le texte "15 DEG". Ceci indique le pas de rotation courant. En cliquant sur le texte on ouvre également le menu grille qui vous permet de sélectionner un autre pas de rotation dans la liste.

    En bas à droite du panneau vous voyez d'abord le texte "TBL". Ceci indique que la caméra utilise actuellement le mode "trackball" discutée plus haut. En cliquant sur le texte il se change en "SPN" indiquant que le contrôle de la caméra va maintenant utiliser le mode de rotation "spin" c'est-à-dire une rotation autour des axes X/Y écran. Comme le mode "spin" a moins de libertés, cela peut occasionner un petit saut dans l'orientation de la caméra au moment du changement.

    La caméra en mode "spin" agit essentiellement comme si votre modèle était placé sur un plateau tournant. Vous pouvez le tourner de gauche à droite et de haut en bas, mais il ne sera jamais penché. Cliquer sur le texte "SPN" pour passer à nouveau en mode "trackball".

    En dessous de "TBL/SPN" vous verrez le texte "3D", ce qui indique le mode actuel de projection caméra. Ce 3D signifie que l'on est en mode perspective avec point de fuite. En cliquant dessus le texte passe à "2D" mettant la caméra en mode orthonormé, ce qui signifie fondamentalement que la caméra sera pointée perpendiculairement au plan d'édition, tout en ignorant la distorsion de profondeur. Ce mode peut être très pratique lorsque vous travaillez sur des modèles plus compliqués. Vous en apprendrez davantage sur ce mode dans la section édition avancée. Pour l'instant repassez en mode 3D en cliquant sur le texte "2D".

    A côté de "3D/2D" se trouve le texte "ROT". L'épingle a son cube du haut de sélectionné et se trouve en mode rotation de la sélection. En cliquant une fois sur le texte "ROT" celui-ci passe à "MOV". Cela veut dire que l'épingle a son cube du milieu de sélectionné et se trouve en mode déplacement de la sélection. En cliquant une nouvelle fois sur le texte "MOV" celui-ci est changé en "CEN". L'épingle a son cube du bas de sélectionné et se trouve en mode déplacement de l'épingle seule permettant généralement de changer le centre d'une rotation ultérieure.

    En bas à gauche du panneau, vous trouverez le texte "AEP", qui indique le mode actuel du plan d'édition. AEP (Automatic Editing Plane) signifie que la fonction plan d'édition automatique est active et que le changement de plan dépend de l'orientation donnée au modèle. En cliquant sur le texte celui-ci est changé en "MEP" (Manual Editing Plane) et le mode passe en manuel, donc que les rotations de la caméra ne provoquera plus de changement de plan d'édition. Par conséquent, vous devrez modifier manuellement l'orientation du plan d'édition lorsque c'est nécessaire.

    A côté du mode auto/manuel du plan d'édition vous trouverez le texte "GS". Cela indique le mode d'attraction actuel. Le mode GS (Grid Snapping) permet un alignement sur la grille courante, en cliquant dessus il est changé en "PS" (Part Snapping) permettant l'alignement des pièces avec un comportement d'attraction un peu différent, mais nous allons en dire plus un peu plus loin.

    Au centre de la boussole, vous trouverez un référenciel rouge, vert et bleu. Ces lignes fléchées indiquent l'orientation du monde par rapport à la caméra. Rouge indique gauche/droite ou largeur ou axe X, vert indique haut/bas ou hauteur ou axe Y (attention LDraw utilise le côté Y négatif vers le haut) et le bleu indique avant/arrière ou profondeur ou axe Z.

    Dans le plan de deux des trois axes, vous voyez une grille grise donnant l'orientation actuelle du plan d'édition. Dans les coins de cette grille il y a quatre icônes, que vous pouvez utiliser pour déplacer la caméra dans une (flèche) ou deux (croix) directions à la fois.

    Au centre du référenciel apparait des losanges actifs. Ils peuvent être cliqués pour sélectionner l'orientation du plan d'édition.

    Même à l'intérieur du panneau boussole, vous pouvez faire pivoter la caméra comme vous l'avez appris à le faire en cliquant dans le fond du panneau. Il en va de même pour le déplacement de la caméra à l'aide des touches Maj ou Ctrl+Maj.

    Comme vous pouvez le voir, la boussole contrôle tous les aspects du comportement du plan d'édition abordés jusqu'à présent, et est donc une des choses les plus importantes lors de l'édition d'un modèle.

    Construire en utilisant l'attraction pièce

    Jusqu'à présent nous avons ajouté de nouvelles briques au modèle exclusivement à l'aide des grilles 2D. Il y a cependant un moyen beaucoup plus facile d'ajouter des briques à un modèle en utilisant l'attraction pièce.

    Vous vous demandez peut-être pourquoi j'ai perdu votre temps à vous apprendre la méthode de la grille, alors que l'attraction pièce plus facile est disponible. La principale raison à cela est que toutes les pièces LDraw n'ont pas les informations complémentaires nécessaires pour les emboîter entre-elles, ce qui signifie que certaines pièces doivent toujours être placées à l'aide de la méthode de la grille. Donc, pour pouvoir utiliser toutes les pièces LDraw (Officielles et Non Officielles) il vaut mieux connaître les deux méthodes. Ainsi en combinant les deux méthodes vous construirez des modèles encore plus rapidement, car elles peuvent être utilisées en complément l'une de l'autre.

    Pour utiliser l'attraction pièce il faut le rendre actif à l'aide de la boussole. Cela se fait en s'assurant que "PS" s'affiche à la place de "GS" en deuxième texte en bas à gauche comme indiqué dans le chapitre précédent. Personnellement, j'aime aussi m'assurer que le plan d'édition est défini en manuel (MEP), pendant que l'attraction pièce est active, car cela peut être gênant dans le cas contraire. Si on est en manuel, il vaut mieux se mettre avec la grille du plan d'édition horizontale la plupart du temps.

    Maintenant continuons le modèle en ajoutant une autre rangée de briques à l'aide de l'attraction pièce. Sélectionnez d'abord une brique ayant encore une fois l'orientation appropriée. Ensuite, repérez la brique que vous voulez ajouter dans le panneau pièces. Sélectionnez également une couleur différente (jaune par exemple) pour ces nouvelles briques.

    Maintenant, vous faites glisser votre brique sélectionnée dans le modèle comme d'habitude. Dans un premier temps cela se comporte exactement comme précédemment (montrant une grille, etc.), mais lorsque vous déplacez la brique à proximité d'une brique déjà dans le modèle elle sautera vers elle dans une des positions prévues. En continuant à déplacer la souris la brique sautera sans cesse vers la meilleure ou probablement meilleure position. Il faut juste continuer jusqu'à ce qu'elle soit emboîtée à l'endroit que vous voulez qu'elle soit.

    Lorsque le mode attraction est activé, la position de la caméra peut être très importante car elle a une grande influence sur comment LDCad tente de "deviner" les positions de placement de la nouvelle brique. Donc, quand les choses ne semblent pas bien fonctionner, tourner la caméra comme si vous teniez et regardiez un modèle réel en construction afin d'y ajouter des briques.

    Lors de l'ajout de briques, vous aurez besoin de faire pivoter des pièces afin de les ajouter sur les différents côtés du mur. Cela peut être fait en utilisant l'épingle comme précédemment ou en utilisant les touches fléchées du clavier tout en faisant glisser la pièce.

    En appuyant sur la Flèche Gauche ou Droite la pièce courante tournera de 90 degrés autour de son axe vertical (vert) (par rapport à la grille d'édition). Avec les Flèches Haut et Bas cela fait la même chose autour de son axe horizontal (rouge). Avec les Flèches PageHaut et PageBas, vous faites pivoter autour du troisième axe (bleu).

    Nous venons de voir l'essentiel pour construire des modèles en utilisant l'attraction pièce (tant que les choses restent avec des angles de 90 degrés). Le seul inconvénient est que toutes les pièces n'utilisent par cette attraction comme nous l'avons déjà dit. Mais, bonne nouvelle, toutes les pièces officielles se trouvant dans les briques triées (Sorted), les plates et la plupart des Technic ont les informations nécessaires. Et ces groupes de pièces représentent une très grande partie des pièces utilisées "tous les jours" et cela permet la plupart du temps de rendre les choses beaucoup plus faciles à modéliser.

    Avec l'attraction pièce, essayez de compléter le modèle de la maison jusqu'à ce qu'il ressemble à l'image ci-dessous.

    Pour les pièces pentées du toit, utilisez le troisième onglet du panneau pièces en sélectionnant "Basic bricks / 45 degree sloped bricks".

    Construire avec un angle en utilisant les grilles relatives

    Même si je considère cette fonctionnalité comme une fonction d'édition avancée, je voudrais en discuter en utilisant la grille relative pour clore ce chapitre. Cela parce que même de simples modèles auront des pièces placées à des angles qui ne seront pas un multiple de 90 degrés.

    Notre modèle de maison n'a aucune de ces pièces, étant extrêmement rectangulaire, comme la plupart des modèles simples. Pour illustrer la nécessité d'une grille relative, désactiver un instant l'attraction pièce et ajoutez une brique au niveau du sol avec un angle par exemple de 30 degrés devant la maison.

    Nous allons également utiliser cette tâche pour vous présenter une autre fonctionnalité pratique de LDCad, le clonage ou duplication. Sélectionnez l'une des briques 1x4 du bas de la maison. Fixer également la couleur courante sur un autre choix, vert par exemple. Maintenant, avec la souris à l'intérieur de la zone graphique, appuyez sur la touche "Inser". Une nouvelle brique 1x4 s'ajoute avec la couleur sélectionnée sans avoir à la localiser et la faire glisser à partir du panneau pièces. La touche "Inser" va toujours dupliquer la sélection ou multi-sélection courante. Si une seule pièce est sélectionnée elle prend la couleur courante, sinon les pièces de la sélection gardent leur couleur d'origine.

    Placez la brique 1x4 quelque part devant la maison et tournez-la ensuite pour qu'elle ressemble à l'image au-dessus. Ensuite clonez à nouveau et essayez de créer un coin de murs avec deux briques. Vous découvrirez bientôt que ce n'est pas possible, peu importe comment vous essayez il y aura toujours un écart ou un chevauchement entre les deux briques.

    C'est parce que la grille est en diagonale par rapport à l'orientation des briques. Maintenant, vous pouvez (en partie) contourner ce problème en utilisant l'attraction pièce, mais la bonne et universelle façon de résoudre ce problème est d'utiliser une grille relative.

    Jusqu'ici, la grille a défini ce qui était à gauche/droite/haut/bas etc, dans le monde d'édition absolu. Ici, avec ce coin de murs on a besoin d'un ensemble de règles différentes pour définir le gauche/droite/haut/bas, etc. Ceci est possible en définissant une grille relative.

    Supprimez la deuxième brique (test) en la sélectionnant et en appuyant sur la touche "Suppr", puis sélectionnez de nouveau la première brique d'angle. Maintenant avec la souris dans la zone graphique, appuyez sur "O" au clavier. Alors, vous remarquerez que la boussole change légèrement. Elle affiche maintenant deux croix. Ceci indique que la grille relative est activée. Les lignes plus épaisses indiquent l'orientation de la grille relative, tandis que les plus fines et plus sombres indiquent l'orientation absolue.

    Maintenant, essayez de recréer l'angle des murs en clonant la brique existante. Ce sera encore possible à l'aide de la méthode que nous avons appris précédemment. C'est parce que tout est rectangulaire encore une fois, la seule différence étant qu'elle est à 90° par rapport à une brique orientée.

    Quand le travail est fini avec l'angle singulier, vous pouvez revenir à la grille absolue. Il faut d'abord mettre la souris dans la zone graphique, ensuite vider si besoin la sélection à l'aide de la touche "Echap" et enfin appuyer sur la touche "O" pour retourner dans l'espace absolu.

    Vous pourriez trouver la grille relative très déroutante ou même inutile (en utilisant l'attraction pièce) mais par expérience je sais que même des modèles simples peuvent en avoir besoin, pour mettre les choses au bon endroit. Dans le chapitre "édition avancée" la vraie puissance et utilité de la grille relative pourrait devenir plus claire.

    Conclusion

    Avec ce qui a été dit dans ce chapitre, vous devriez être capable de construire des modèles simples à l'aide de LDCad. Je recommande de commencer à assembler des modèles simples afin d'avoir de plus en plus l'habitude du programme. Une bonne façon de faire est d'avoir quelques manuels d'instructions LEGO d'anciens modèles (ils ont généralement moins de pièces) des gammes City ou Creator, se trouvant sur Internet, et d'essayez d'en reproduire le modèle à l'aide de LDCad.

    Lorsque vous aurez complètement maîtrisé les techniques vues dans ce chapitre, vous pourriez être prêt à utiliser LDCad avec certaines fonctions plus avancées, fonctions d'édition qui vous aideront à tirer le meilleur parti du format LDraw. Il se chargera de choses comme : étapes de construction, sous-modèles (MPD) et éléments flexibles.

     

    Tutoriel : Edition avancée

    Une fois que vous avez sous contrôle les bases, il serait peut-être temps de débloquer certaines des fonctionnalités plus avancées du système LDraw et du programme LDCad.

    Sous-modèles

    LDraw est un format récursif, ce qui signifie que vous pouvez utiliser vos modèles à l'intérieur d'autres modèles comme s'ils n'étaient plus que de grosses ou énormes briques. En plus, le format LDraw peut prendre en charge plusieurs modèles à l'intérieur d'un seul fichier (MPD). Les fichiers MPD prennent en charge complètement la nature récursive de LDraw en vous permettant de concevoir vos modèles de façon modulaire tout en mettant soigneusement le tout dans un seul fichier.

    LDCad supporte pleinement l'utilisation de modèles récursifs, y compris le format MPD. Pour mieux comprendre cette fonctionnalité, il est préférable d'essayer et de créer un simple modèle MPD. Pour cela ouvrir un nouveau fichier comme d'habitude, mais ne pas l'enregistrer sur le disque tout de suite. Ensuite, vous pouvez ajouter quelque chose comme vous avez déjà appris, mais comme je veux vous expliquer l'utilisation des sous-modèles, limitez-vous à une petite plaque de base ou quelque chose de similaire, juste pour avoir une base pour placer ensuite dessus les sous-modèles.

    Ensuite, nous ajoutons un nouveau sous-modèle au fichier en cliquant sur l'icône de la barre d'outils. Ceci vide la zone graphique et ouvre la boîte de dialogue familière "Edit header" (édition entête). La différence est que c'est l'entête d'un modèle supplémentaire (deuxième) à l'intérieur du nouveau fichier, sur lequel nous travaillons. Une autre petite différence est que vous êtes autorisé à modifier le nom du fichier pour ce modèle, ce qui n'est autorisée que pour les modèles à l'intérieur d'un fichier MPD (le fichier est passé de l'extension ldr à mpd dès que vous avez ajouté un second modèle à l'intérieur). N'hésitez pas à utiliser la boîte de dialogue comme d'habitude, mais pour cet exemple nous allons dessiner un petit arbre, alors remplaçons "subModel-1.ldr" par "arbre.ldr". Après avoir accepté les changements, c'est maintenant une bonne idée d'enregistrer le fichier sur le disque. Il est généralement préférable de reporter l'enregistrement d'un fichier MPD après avoir ajouté un deuxième modèle, car la boite de dialogue sauvegardera automatiquement le fichier avec l'extension .mpd au lieu de .ldr selon la convention d'usage officielle LDraw.

    Il n'y a pas de limitations sur ce que vous pouvez dessiner dans un sous-modèle, mais dans cet exemple, pour rester simple, il suffit juste de dessiner comme objet un arbre simple. Peut-être quelque chose comme sur l'image ci-contre, mais n'hésitez pas à le faire suivant votre propre goût. Quand c'est fini, le sous-modèle peut être utilisé dans le modèle principal (ou n'importe quel autre sous-modèle) du fichier MPD comme s'il s'agissait d'une brique normale. Vous pouvez même l'utiliser plusieurs fois et/ou avec différentes couleurs (nous verrons cela plus tard).

    Pour ajouter le sous-modèle à un autre modèle du fichier, vous devez d'abord revenir sur le modèle de base, ce qui peut être fait en appuyant sur la touche "Fin", lorsque la souris est à l'intérieur de la zone graphique car cette touche ramène le précédent modèle utilisé au premier plan. Mais comme vous en aurez ensuite besoin, vous pouvez aussi utiliser le panneau pièces pour naviguer entre le modèle de base et les sous-modèles. Sélectionnez sur le panneau pièces un onglet inutilisé ou peu utilisé et naviguez si besoin jusqu'à la racine en cliquant sur la grosse flèche vers le haut jusqu'à ce qu'elle disparaisse. Ensuite, vous cliquez sur la séquence suivante des cellules du panneau :
     

    Cela ouvre le groupe d'objets "File content" (contenu du fichier). Ce groupe affiche tous les modèles contenus dans le fichier courant, il doit donc ressembler à l'image ci-contre. Ce groupe permet de sélectionner le modèle de base ou le sous-modèle que vous souhaitez ensuite modifier. Cela se fait en pointant la souris en bas à droite de la cellule contenant le modèle cible. Une icône de "clé plate" s'affiche. En cliquant dessus vous éditez le modèle concerné.

    En plus de naviguer entre les sous-modèles du fichier MPD, ce groupe est également utilisé pour ajouter l'un des modèles à un autre modèle comme s'ils étaient des pièces normales. Cela se fait exactement de la même façon qu'avec n'importe quelle autre pièce en le faisant glisser du panneau pièces vers la zone graphique ou en le sélectionnant et en appuyant sur la touche "Inser".

    Astuce : Désactivez l'accrochage pièce lorsque vous ajoutez de grands sous-modèles car actuellement cette fonction de LDCad n'est pas optimisé pour ce type d'opération et pourrait entraîner une réaction très lente. Mais ici, le petit arbre ne devrait pas poser de problèmes.

    Ajoutez quelques arbres à la plaque de base. Puis, essayez de créer un deuxième sous-modèle (par exemple un rocher) et ajoutez-en également quelques-uns au modèle principal. Si vous avez réussi, vous devriez vous retrouver avec quelque chose qui ressemble à l'image ci-dessous.

    Vous vous demandez peut-être comment j'ai réussi à ajouter des rochers colorés différemment en utilisant un seul sous-modèle. Ceci est possible en utilisant la couleur LDraw spéciale numéro 16. Cette couleur 16 signifie "utiliser la couleur parent". Tout ce qui utilise la couleur 16 dans votre sous-modèle sera de la couleur attribuée au sous-modèle lors de son placement, tout comme avec des briques LDraw normales. Vous pouvez assigner à n'importe quel ensemble de pièces la couleur 16, ainsi vous pourriez par exemple assigner la couleur 16 aux briques vertes du haut de l'arbre, et ainsi affecter différentes teintes de vert aux arbres qui auront par contre tous un tronc brun. Vous trouverez la couleur 16 dans le groupe "Special" du panneau couleurs. Il faut juste être sûr d'utiliser la couleur 16 et non la couleur 24 qui a une utilisation légèrement différente.

    Ce qui précède est l'essentiel pour être productif avec les sous-modèles. La seule chose qui reste à dire à mon humble avis est quand utiliser les sous-modèles. Il ne faut pas limiter son utilisation aux choses que vous allez à priori utiliser plusieurs fois dans un modèle. Il est tout à fait normal de mettre des choses utilisées une seul fois dans un sous-modèle. Les principales raisons de cet usage sont habituellement la simplification de l'assemblage et/ou une conception modulaire. Mais il pourrait aussi être nécessaire pour limiter la taille de la section sur laquelle vous travaillez afin de ne pas effondrer votre carte graphique.

    Une autre bonne raison d'utiliser un sous-modèle est la construction inclinée ou tournée suivant un angle quelconque. Au lieu de placer toutes les pièces une à une suivant un tel angle, envisagez la création d'un sous-modèle avec un assemblage "à plat" normal, puis placez ce sous-modèle au bon angle d'un seul coup. Cela permettra un ajustement plus facile de cet angle dans l'avenir. Cela empêchera également des erreurs d'arrondi et/ou des problèmes d'alignement.

    Vous pourriez être un peu accablé par ces "règles", mais ne vous inquiétez pas, vous n'avez pas à planifier tous ces sous-modèles au préalable. LDCad vous propose plusieurs outils pour réorganiser les choses par la suite. Par exemple vous pouvez facilement déplacer la sélection courante dans un nouveau sous-modèle en utilisant le menu "Reorganize" (réorganise) qui est accessible par un clic droit dans la zone graphique lorsqu'une sélection est active. Ceci ouvre le menu "Selection" (sélection), menu à l'intérieur duquel vous cliquez sur "Reorganize", puis sur "Move to submodel" (déplace vers un sous-modèle). Cela ouvre la boîte de dialogue suivante qui propose quelques options que vous n'avez généralement pas besoin de changer.

    Après avoir cliqué sur le bouton "Accept" un nouveau sous-modèle sera créé, la sélection y sera déplacé, suivi par le remplacement de cette sélection par une référence au nouveau sous-modèle. Cela ouvre ensuite la boîte de dialogue d'édition de l'en-tête du nouveau sous-modèle, afin que vous puissiez ajouter son nom de fichier, etc, ... Après avoir fermé cette boîte de dialogue, rien ne semble avoir changé et le modèle est visuellement le même. Mais, comme la sélection est maintenant un unique sous-modèle vous pouvez l'utiliser comme un autre sous-modèle. Il y a d'autres outils associés aux fichiers MPD disponibles dans le menu "Reorganize", mais ils seront expliqués dans un des prochains chapitres.

    Edition imbriquée

    L'utilisation des sous-modèles est extrêmement utile, mais a un inconvénient majeur. Cela limite la façon dont vous pouvez changer les pièces mises en sous-modèles si vous êtes en train de modifier le modèle principal lui-même. Cela vous oblige à basculer en permanence entre ces modèles pour les éditer. Egalement, cela limite votre compréhension du modèle assemblé dans son ensemble. Ce problème est encore plus évident lors de l'utilisation de la grille (sans accrochage pièce) comme approche de construction, en voulant sélectionner une pièce dans une orientation similaire à celle que vous voulez ajouter. Mais cette pièce ne peut pas être individuellement sélectionnée parce qu'elle est dans un sous-modèle. Heureusement, LDCad offre une fonctionnalité unique qui supprime complètement cette lacune d'utilisation des sous-modèles, ça s'appelle le mode édition imbriquée.

    Une édition imbriquée signifie que toutes les pièces des sous-modèles utilisés dans le modèle actif vont se comporter comme si elles étaient placées directement dans le modèle actif lui-même. En conséquence toutes les informations de position et orientation de ces pièces sont données dans le système de coordonnées du modèle actif. Le seul inconvénient de l'édition imbriquée est que vous perdez le contrôle des références des sous-modèles eux-mêmes, mais ceci est résolu simplement en basculant en mode édition normale lorsque c'est nécessaire ou en utilisant les exclusions (voir explications plus loin). Evidemment le mode édition imbriquée n'est utile que lorsque vous travaillez sur un modèle contenant des sous-modèles.

    Vous pouvez modifier le mode d'édition courant avec le panneau en haut à droite de l'écran graphique qui devient visible lorsque vous déplacez le curseur de votre souris sur le nom du fichier affiché normalement à cet endroit. Pour activer l'édition imbriquée, cliquez simplement sur l'onglet "Nested" et sur l'onglet "Normal" pour revenir en mode édition normale. Le panneau session offre également d'autres options sur la session courante, mais nous verrons cela plus tard.

    La meilleure façon de comprendre le mode édition imbriquée est de l'utiliser sur un fichier MPD de taille moyenne. Par exemple, ouvrez le fichier 5510.mpd fourni avec LDCad (en utilisant le menu "File / Example"). Déplacez la souris sur le modèle et vous remarquerez que le pare-choc avant gris et l'arceau noir au-dessus des sièges sont des sous-modèles (leurs noms s'affichent dans la barre de statut). Maintenant passez en mode édition imbriquée et déplacez à nouveau la souris sur ces zones. Cette fois les briques individuelles seront en surbrillance comme n'importe quelle autre brique "normale" du modèle principal. Vous pouvez également les sélectionner et les déplacer comme des briques "normales".

    En mode édition imbriquée toutes les nouvelles briques ajoutés seront par défaut ajoutées au modèle actif, peu importe où vous les placez. Mais il est également possible d'ajouter de nouvelles briques à l'un des sous-modèles au lieu du modèle principal actif. Cela se fait en cliquant sur le texte "Insert into" du panneau session, alors qu'une pièce du modèle cible est sélectionnée. Par exemple, si vous sélectionnez la "Plate 1x8" du pare-chocs avant, puis cliquez sur le texte "Insert into", alors toutes les nouvelles pièces seront ajoutées au sous-modèle "frontBumper.ldr". Vous pouvez le vérifier en affichant ce sous-modèle dans l'éditeur. Pour revenir à l'ajout de pièce dans le modèle principal, assurez-vous que rien n'est sélectionné et cliquez à nouveau sur "Insert into". De façon alternative, une bascule entre mode imbriqué et mode normal réinitialisera également la cible des pièces insérées.

    Une chose qui pourrait être un peu confus, en utilisant le mode édition imbriquée, est de travailler avec des modèles qui utilisent un ou des sous-modèles plusieurs fois (comme l'arbre dans l'exemple du chapitre précédent). Ceci parce que leurs pièces individuelles seront surlignées pour toutes les instances quelque soit la copie sélectionnée (voir ci-dessous). C'est parce que vous manipulez la brique (unique) originale qui est affichée à plusieurs endroits dans le modèle principal. Déplacer ces pièces individuelles peut être un peu déroutant selon l'orientation des références du sous-modèle. Cela vaut également pour l'ajout de briques alors que le modèle cible est un sous-modèle utilisé plusieurs fois, car ces briques ajoutées apparaîtront également sur toutes les autres instances.

    En mode édition imbriquée ce n'est pas sans importance si le modèle utilise un sous-modèle unique ou plusieurs dizaines de sous-modèles, qui eux-mêmes utilisent des sous-modèles. L'ensemble de ces modèles et leurs relations les uns avec les autres s'appelle l'arbre du modèle. Dans cet "arbre" le modèle principal correspond au tronc, les sous-modèles aux branches, et les pièces sont les feuilles. Il y a des moments ou vous souhaiteriez travailler avec un sous-modèle "branche" comme un ensemble tout en conservant le comportement des "feuilles" pour d'autres branches. C'est possible en utilisant "Nesting exclusion". Cette fonctionnalité peut fondamentalement "promouvoir" n'importe quelle feuille en la branche de l'arbre qui l'utilise.

    Par exemple, essayez de déplacer un arbre spécifique dans notre petit exemple de forêt en mode imbriqué et vous trouverez que ce n'est pas possible. On a besoin d'une bascule vers le mode édition normale, qui dans ce cas n'est pas si mal que ça. Mais il y a des moments ou vous souhaiteriez manipuler un sous-modèle dans son ensemble sans quitter le mode imbriqué (par exemple lors de la création de groupes compliqués, ce que nous verrons plus tard). Dans ce cas il vous suffit de sélectionner une brique de l'instance de l'arbre que vous souhaitez déplacer et appuyez sur la touche "E" du clavier ou faire un clic droit pour ouvrir le menu "Selection" et sélectionner "Nesting exclusions / Exclude selection". La brique se désélectionnera mais il vous sera maintenant possible de sélectionner l'arbre dans son ensemble alors que tous les autres arbres utilisent toujours le comportement imbriqué.

    Pour retourner à un arbre totalement imbriqué, assurez-vous que l'arbre est toujours sélectionné et appuyez sur Ctrl+E, ou utilisez "Include selection" dans le menu. Pour effacer toutes les exclusions en une seule fois appuyez sur Maj+Ctrl+E, ou utilisez "Clear exclusions" dans le menu.

    Dernière chose que vous devez maintenant savoir sur l'imbrication est la fonction "Move to current level" (Déplacer vers le niveau courant), accessible depuis le menu "Selection / Reorganize". Cela vous aidera à passer des trucs d'un sous-modèle (utilisé une fois) à un autre sous-modèle (utilisé une fois) sans modifier visuellement le modèle dans son ensemble. Pour faire cela, sélectionnez par exemple la "Plate 1x8" du pare-chocs avant en mode édition imbriquée dans l'exemple 5510.mpd. Puis faites un clic droit dans zone graphique pour ouvrir le menu "Selection" et choisissez "Reorganize / Move to current level". Ceci déplacera la Plate du sous-modèle frontBumper.ldr vers le modèle main.ldr. Vous pouvez vérifier cela en revenant en mode édition normale et en inspectant le modèle frontBumper.ldr. Le niveau courant référencé dans le menu est le modèle actif de "Insert into" que vous avez défini à l'aide du panneau session. Essayez de replacer la Plate 1x8 dans son sous-modèle d'origine en changeant le sous-modèle dans "Insert into" et en réutilisant la fonction "Move to current level".

    Ce qui précède devrait vous éclairer assez sur le mode édition imbriquée de LDCad pour vous mettre à l'aise avec ce mode, mais, comme toujours, il est préférable d'essayer et jouer avec cette fonctionnalité pour la comprendre et la maîtriser complètement.

    Pièces dynamiques

    La bibliothèque LDraw officielle vous propose des milliers de pièces LEGO et elle continue de croître chaque année. Il y a bien une lacune sur certaines de ces pièces, c'est leur représentation statique, non pliable, des pièces dynamiques comme dans la réalité. Cela signifie que des pièces comme les élastiques ne s'étirent pas, qu'on ne peut plier les tuyaux pneumatiques ou compresser les amortisseurs etc. Il y a plusieurs solutions à ce problème, qui se résument généralement à générer des composants personnalisés à l'aide d'outils tiers (souvent très compliqués).

    Pour éviter d'avoir à utiliser ces outils compliqués, LDCad vous propose une collection de générateurs de pièces dynamiques intégrés, qui peuvent être utilisés en temps réel lors de l'édition. Cela signifie que vous pouvez guider par exemple un tuyau pneumatique flexible dans votre modèle tout en visualisant la progression et le résultat en temps réel. Un autre avantage des pièces dynamiques générées par LDCad, c'est qu'elles seront utilisables et visibles dans n'importe quel autre programme de rendu LDraw sans avoir à installer des bibliothèques de composants supplémentaires.

    Il existe actuellement deux types de pièces dynamiques dans LDCad, soit Chemin (Path), soit Ressort (Spring). Il est possible de créer des pièces dynamiques à partir de zéro, mais dans la plupart des cas, il sera préférable d'utiliser un des modèles ou gabarits fournis (Template). Ces gabarits contiennent une situation de départ (un élastique par exemple) que vous pouvez modifier suivant la forme requise par la suite. Chaque pièce dynamique est gérée dans un sous-modèle dédié, donc si jamais vous faites glisser un gabarit dans votre modèle il créera automatiquement un nouveau sous-modèle (dans un fichier MPD par défaut). Par la suite vous pouvez faire ce que vous voulez avec ce sous-modèle car c'est une copie du gabarit original.

    Courroie (élastique)

    Pour voir de quoi je parle, assemblez en premier un simple support avec des roues techniques, auxquelles vous voudriez ajouter un élastique autour (voir image à gauche). Ensuite, recherchez le groupe principal des gabarits dans le panneau pièces (par exemple en utilisant son onglet dédié).

    Pour faire cela accédez à la racine du panneau, puis sélectionnez le sous-groupe "Templates". A l'intérieur vous trouverez une collection de sous-groupes dédiés à certaines catégories générales (comme les pièces pneumatiques ou les amortisseurs etc.). Comme nous avons besoin d'un élastique, choisissez le sous-groupe "Rubber band" représenté par un simple anneau rond (en caoutchouc).
     

    Pour ajouter un élastique à notre modèle vous le faites simplement glisser du panneau pièces, comme n'importe qu'elle autre pièce. Mais, comme l'élastique ne peut pas s'accrocher automatiquement sur les roues, vous devrez utiliser le mode grille pour le placer au bon endroit. Dans notre cas vous le faites en sélectionnant l'une des roues et en définissant la grille pour être dans le plan de la roue comme sur l'image ci-contre.

    Avant de placer l'élastique vous devez également sélectionner une couleur "caoutchouc" dans le panneau couleurs. Vous pouvez le faire à partir du groupe de couleurs "Rubber" (caoutchouc), qui permet d'utiliser la couleur caoutchouc rouge.



    Maintenant, vous faites glisser l'élastique rond dans le modèle, en le plaçant autour d'une des roues. Ne vous inquiétez pas s'il est trop petit ou trop grand.
    Lorsque vous le relâchez, la boite de dialogue ci-contre apparaîtra. Elle demande si vous souhaitez ajouter la nouvelle pièce dynamique comme faisant partie du fichier actuel (MPD) ou faisant partie d'un nouveau fichier. Généralement, vous voulez utiliser l'option MPD par défaut, alors appuyez directement sur le bouton "Select".
    Il en résulte une autre boite de dialogue. Il s'agit d'éditer l'en-tête du nouveau sous-fichier. Vous devez maintenant être familiarisé avec cette boîte de dialogue et renseignez-la comme d'habitude. Quand vous fermez la boite avec le bouton "Ok", le modèle devrait ressembler à l'image de gauche.
    Maintenant que l'élastique est placé, nous pouvons commencer le façonnage de sorte qu'il contourne les trois roues de manière réaliste. Pour ce faire vous devez basculer en mode édition imbriquée. Ceci est nécessaire car nous voulons manipuler les éléments de l'élastique et pas sa localisation globale. Une fois le mode imbriqué actif, vous verrez un grand changement dans la manière dont la bande élastique est affichée, car des "leviers" de contrôle sont maintenant visibles. Pour l'instant l'élastique est sur un "guide" circulaire unique dont vous pouvez contrôler le rayon en faisant glisser l'une des sphères jaunes. Essayez d'agrandir le rayon pour voir ce que je veux dire.

    Lors du redimensionnement du cercle, le rayon courant s'affiche dans la barre de statut. Essayez de le fixer à 30.5 pour le rendre parfaitement conforme à la dimension de la roue. Ensuite nous devons ajouter deux cercles supplémentaires au chemin de la courroie, pour passer autour des deux autres roues. Pour cela, vous devez d'abord sélectionner le cercle guide actuel vers son centre, cependant c'est actuellement un problème car ce centre est caché par la roue elle-même. Vous pouvez résoudre ce problème en masquant temporairement la roue (Hide) ou en éditant la courroie elle-même (à partir du groupe MPD "File content" du panneau pièces discuté ci-dessus).

    Profitons de cette situation pour introduire la fonction masquage de pièce, car elle est très facile à utiliser. Sélectionnez la roue et appuyez sur la touche "H", cela permet de masquer la roue et de faire apparaître la partie centrale du cercle guide.

    Maintenant vous pouvez le sélectionner et ajouter un nouveau cercle guide en appuyant sur la touche "Inser" dans la fenêtre graphique (Assurez-vous que la grille est encore définie correctement). Cela fera apparaître un deuxième cercle que vous placez au centre de la seconde petite roue, puis redimensionnez-la à un rayon de 30.5. Une fois cela fait appuyez de nouveau sur "Inser" et placez le troisième cercle au milieu de la grande roue. Comme elle est plus grande, vous avez besoin de définir le rayon à 47. Vous devriez maintenant avoir quelque chose comme l'image à droite.

    Nota : Si la courroie se croise, il faut retourner le cercle guide, soit avec l'outil de manipulation en mode rotation, soit avec le menu contextuel "Selection / Properties" et en changeant le sens dans le champ "Direction".

    Nous avons fini d'ajouter des cercles, alors il faut faire réapparaître la première roue masquée en appuyant sur Ctrl+H pour annuler la dernière action de masquage. C'est tout et votre courroie est prête pour l'inspection à son état neutre en passant en mode édition normale pour cacher les outils de contrôle du chemin, comme dans l'image à gauche.

    Tuyau pneumatique

    Comme vous pouvez le voir ajouter un élastique à un modèle n'est pas si difficile. Il en va de même pour toutes les autres pièces dynamiques qui suivent un "chemin". Elles sont appelés "pièces à chemin" car elles sont toutes composées d'un élément qui suit un chemin passant autour ou à travers un certain nombre de points de contrôle. L'exemple de la courroie, sur laquelle nous avons travaillé utilise uniquement les points de contrôle circulaires, mais travailler par exemple avec un tuyau pneumatique est très similaire. La seule différence est que les leviers de contrôle dans cette pièce sont utilisés pour modeler la courbe du tube entre deux points. Pour mieux comprendre cela créez un modèle pneumatique très simple, quelque chose comme le modèle à gauche.

    Quand c'est fait, affectez par exemple la couleur caoutchouc noir comme couleur courante et ajoutez un nouveau tuyau pneumatique en sélectionnant son gabarit dans le groupe des modèles "Pneumatic" (un niveau vers le haut du groupe "Rubber band"). Tandis que l'accrochage pièce est activé, les extrémités du tuyau du gabarit seront alignées sur les tiges des connecteurs pneumatiques (Vous devrez peut-être faire pivoter tout d'abord le tuyau à l'aide des touches fléchées). Utilisez l'accrochage pièce pour connecter l'extrémité du tuyau le plus proche de votre curseur de la souris sur le connecteur supérieur. Quand c'est fait relâchez le bouton de la souris, ce qui va déclencher à nouveau l'apparition de la boite de dialogue de sous-modèle. Choisissez à nouveau l'option MPD et renseignez la boîte de dialogue suivante de l'en-tête des nouveaux sous-fichiers comme d'habitude.

    Une fois le tuyau placé, se mettre en mode imbriqué. Cela rendra les leviers de contrôle visibles et vous serez en mesure d'acheminer le tuyau vers le deuxième connecteur pneumatique sur son arrière. Pour faire cela, il suffit tout d'abord de prendre l'extrémité libre du tuyau et de la glisser vers le connecteur à gauche, quand il s'enclenche dans le connecteur relâchez la souris et cela provoquera la régénération du tuyau en forme de "S". C'était assez facile, mais le tuyau semble utiliser des angles très aigus, quelque chose qui n'arrivera pas dans la vie réelle. Pour améliorer cela prenez simplement les leviers de contrôle qui sortent de leurs extrémités puis les allonger afin de donner plus d'ampleur aux plis du tuyau. Vous devriez vous retrouver avec quelque chose comme l'image à gauche.

    Le chemin entre deux points de contrôle suit une courbe de Bézier, et les sphères rouges et vertes des points de contrôle servent à influencer le lissage du coude afin d'améliorer la forme. Vous devez simplement les déplacer jusqu'à ce que les choses soient à votre goût. Vous devriez retrouver quelque chose ressemblant à l'image de gauche.

    Passons maintenant à quelque chose de plus compliqué, pour acheminer le tuyau dans le trou de la brique Technic 1x2. Cela peut être fait en ajoutant un ou deux points de contrôle supplémentaires. Vous pourriez ajouter un seul point dans le centre du trou ou en mettre un de chaque côté du trou. La dernière solution permettra des cassures plus nettes sans avoir à vous soucier du tuyau passant dans la partie solide de la brique. Donc ajoutons-en deux car ce n'est vraiment pas beaucoup plus de travail.

    Tout en restant en mode imbriqué, sélectionnez l'extrémité supérieure du tuyau. Assurez-vous que la grille d'édition est réglée en vue de dessus afin que nous puissions déplacer le point à côté de celui sélectionné. Maintenant, appuyez sur la touche "Inser". Cela va ajouter un nouveau point de contrôle pour le tuyau, le mettre quelque part à gauche et devant celui sélectionné. Le tuyau peut sembler un peu "froissé", mais ne vous en inquiétez pas. Il semble froissé car le point a le même sens que celui que vous avez utilisé pour l'ajouter (il guide le tuyau vers vous), alors que le prochain point est de l'autre côté. Pour éviter cela nous devons changer la direction du nouveau point de contrôle pour que le tuyau s'éloigne de vous. Cela s'effectue simplement en le tournant de 180 degrés. Après cela, vous devriez avoir quelque chose qui ressemble à l'image de gauche. Vous avez peut-être remarqué que la direction d'un point de contrôle est indiquée par les deux sphères et que le tuyau est toujours tangent à cette direction en passant du rouge au vert.

    C'est bien d'avoir un point de contrôle flottant en l'air, ce qui est excellent pour la mise en forme d'un tuyau en général, mais dans notre cas il faut le faire passer dans le trou. Pour cela nous avons besoin de placer le point de contrôle exactement en face de l'orifice en utilisant une grille d'édition. Une telle situation se prête également pour le mode de projection orthogonal (2D). J'en ai un peu parlé dans le chapitre édition de base. La caméra 2D permet une précision de positionnement beaucoup plus simple.

    Tout d'abord, fixez la grille pour avoir l'axe de l'épingle parallèle au levier rouge du nouveau point de contrôle. Puis on passe en caméra 2D en appuyant sur Maj+V (le "Maj" de cette commande s'assure que le point de vue 2D est au plus près du point de vue 3D courant). Les choses ressembleront à l'image ci-contre. L'épingle aura disparu, mais à sa place un "rectangle d'édition" est maintenant disponible. Ce rectangle peut être utilisé pour déplacer et faire pivoter la sélection de façon similaire à l'épingle. La plus grande différence est qu'il sera toujours affiché au-dessus de tout le reste, même si la sélection est masquée par d'autres pièces.

    Ensuite, il faut passer en grille fine en cliquant sur le texte "10 8" en haut à gauche de la boussole et en sélectionnant "Fine (1;1;1;1)" dans son menu. Ceci est nécessaire car le centre du trou de la brique Technic est hors grille avec la grille par défaut. Ayant fait cela vous pouvez saisir le rectangle d'édition et déplacer le point de contrôle du tuyau, pour qu'il se trouve exactement à l'intérieur du trou de la brique 1x2 comme sur l'image ci-contre. Pour faire cela vous pouvez utiliser la croix centrale du point de contrôle pour vous guider en utilisant un très gros zoom sur la brique. Cela permet de se caler sur la forme polygonale du trou de la brique.
    Les déplacements ci-dessus mettent le point à son emplacement pour 2 des 3 coordonnées mais est encore en dehors pour sa "profondeur". Changeons de vue en mode 2D pour corriger la troisième coordonnée. Pour cela nous avons besoin d'avoir le modèle en vue de dessus (Top). Cela se fait avec la boussole en tournant le gros cube jusqu'à ce que le mot "Top" devienne jaune. Il suffit de saisir le cube avec le bouton gauche de la souris et de faire glisser la souris comme vous contrôlez la caméra en mode "trackball" en vue d'édition 3D. Vous devriez vous retrouver avec une vue comme sur l'image de gauche.
    Avec ce point de vue du modèle, nous pouvons facilement déplacer le point de contrôle vers la plaque jaune pour l'aligner avec le trou en dessous. Comme nous avons seulement besoin de déplacer le point dans un seul sens, au lieu de saisir l'intérieur du rectangle comme précédemment, essayez d'attraper son bord supérieure, cela limitera le mouvement dans une seule direction comme le font les flèches de l'outil de manipulation en vue 3D. Lorsque cela est fait vous pouvez retourner en mode 3D en appuyant sur "V". Les choses doivent maintenant ressembler à l'image ci-contre.
    Nous avons terminé avec le placement de précision, restaurez la grille par défaut en sélectionnant "Normal (10;8;10;10)" dans le menu "Grid" (ou appuyez simplement sur "3" alors que la souris se trouve à l'intérieur de la zone d'édition ou la boussole). Ajouter un deuxième point de contrôle à l'arrière de la brique 1x2 sera beaucoup plus facile maintenant, la première étant placée correctement. Il suffit de changer de point de vue sur le modèle pour que le dessous soit bien visible. Puis mettre la grille en mode haut/bas et appuyez sur "Inser", tandis que le dernier point ajouté est toujours sélectionné. Cela le dupliquera et vous pourrez placer le nouveau point de l'autre côté du trou. Cela doit ressembler à la photo à gauche.
    Vous avez maintenant fini le cheminement du tuyau. Une seule chose reste à faire, c'est de lisser ses courbes en ajustant la longueur des leviers vert ou rouge jusqu'à ce que la forme générale et la longueur du tuyau soient bonnes. Ensuite, en mode édition normal, il devrait ressembler à l'image ci-contre.

    En utilisant les techniques de manipulation, vus dans ces deux derniers chapitres, vous serez en mesure d'acheminer tout type de tuyau dans vos modèles. Ceci parce que ces techniques ne s'appliquent pas seulement aux tuyaux pneumatiques, elles fonctionneront avec n'importe lequel des gabarits ayant une fonction chemin. Vous pouvez même combiner les points de contrôle circulaires de l'élastique et les points de passage de ce chapitre si nécessaire. Cela peut être fait en changeant le type de point à l'aide de la boîte de dialogue des propriétés du point. Vous l'ouvrez en appuyant sur "Entrée", tandis qu'un point est sélectionné, ou en cliquant sur le petit panneau coordonnées.

    Une dernière chose que je voudrais ajouter en conclusion, est de toujours garder un œil sur les petits référentiels au centre des points de contrôle car ils ont une certaine importance. Il suffit de juste regarder de plus près l'un d'entre eux, et vous remarquerez qu'ils sont en fait composés de deux flèches. Les flèches indiquent le "roulis" ou torsion transversale que vous devez garder similaire au précédent point du chemin. Si la différence de torsion entre deux points est trop grande, cela peut provoquer des sauts bizarres ou torsions disgracieuses dans l'apparence du tuyau.

    C'est tout pour la fonction chemin des pièces dynamiques, ne vous inquiétez pas si certaines choses sont encore floues, vous en saurez de plus en plus juste en utilisant cet exemple. Vous pouvez aussi pratiquer un peu plus avec d'autres modèles simples, en essayant d'acheminer des tuyaux de différentes façons autour ou à travers eux.

    Amortisseur

    Les pièces dynamiques discutées précédemment sont toutes basées sur un chemin, mais LDCad offre aussi celles basées sur la fonction ressort. Par rapport aux pièces à chemin ces pièces ressort sont beaucoup plus faciles à former. Pour démontrer cela, utilisons une pièce ressort dans un exemple réel. Comme les ressorts servent souvent combinés aux amortisseurs Technic, configurons un système minimaliste de suspension semblable à celle utilisée dans le modèle exemple 8845.mpd.

    Tout d'abord, permettez-moi de dire, qu'il n'est pas toujours nécessaire d'utiliser dans vos modèles des amortisseurs dynamiques, de nombreux modèles seront très bien en utilisant les pièces statiques officielles tant qu'elles peuvent être utilisées avec leur longueur prédéfinie. Mais quand vous avez besoin d'un amortisseur en position légèrement compressée (résultant par exemple de poids du modèle) il est bon de savoir que les pièces dynamiques sont là pour être utilisées à travers une sélection de gabarits. Naviguez vers le groupe des gabarits amortisseurs dans le panneau pièces en cliquant à partir de la racine sur les sous-groupes "Templates" et "Shocks" dans l'onglet de votre choix.

     

    Ensuite, construisons une structure simple pour montrer comment ajouter un amortisseur un peu compressé à ce modèle. Quelque chose comme l'image à gauche doit être suffisamment claire. Elle utilise deux barres (Technic Beam) à 7 trous et celle du bas a une rotation de 15 degrés en commençant par sélectionner la goupille extrême et avec un Ctrl+Clic de la souris sur la barre et la goupille centrale, ce qui assure d'avoir la première goupille comme point de rotation pour toutes les pièces de la sélection.
    Maintenant, nous ajoutons un amortisseur 6.5 L gris à l'aide de son gabarit. Vous pouvez sélectionner d'abord la goupille ou la barre du haut pour s'assurer que l'orientation de la nouvelle pièce sera neutre. De façon alternative, vous pouvez également appuyer sur la touche "Début" (home) tout en faisant glisser l'amortisseur dans le modèle. Placez le nouvel amortisseur de façon à avoir son côté gris connecté à la goupille supérieure comme sur la photo ci-contre.
    Le problème suivant à résoudre est de pointer l'amortisseur vers la deuxième goupille tout en ignorant sa longueur pour l'instant. Pour ce faire, vous devrez trouver le bon angle pour faire pivoter l'amortisseur. Alors qu'à l'école vous aviez peut-être pensé quand aurais-je le besoin de ce truc de trigonométrie, bien deviner quoi... ça y est c'est maintenant :). Heureusement, LDCad propose des outils pour vous aider à faire les calculs nécessaires. Pour ce faire vous avez besoin d'une assistance en ajoutant une goupille temporaire à l'autre extrémité de l'amortisseur. Dans la pratique, il est préférable d'utiliser des pièces bizarrement colorées dans de tels cas, par exemple en rose, donc elles seront facilement reconnaissables comme étant temporaires.

    Ensuite, nous utilisons la fonction "Selection info" (info sur la sélection) pour obtenir tous les angles d'un triangle fait à partir de ces trois axes. Pour faire ceci sélectionnez les trois goupilles en commençant par la rose dans le sens horaire ou antihoraire en utilisant le Ctrl+Clic à la souris. Si l'épingle d'édition vous gêne lors de la sélection, vous pouvez la désactiver en appuyant sur "P". Après cela, cliquez sur le bouton droit de la souris pour ouvrir le menu "Selection" puis "Selection info", puis vérifiez ou changez pour avoir "Show info" sur "(Yes)", "Show distance" sur "(No)" et "Show angles" sur "(Yes)". Tout cela se traduira par quelque chose comme l'image ci-contre.

    Comme vous pouvez le constater facilement vous obtenez l'angle nécessaire (12,99 degrés) pour aligner l'amortisseur avec l'axe de la goupille cible. Vous pouvez utiliser cet angle comme affiché, mais étant un perfectionniste, moi je préfère utiliser la valeur avec davantage de chiffres pour éviter un décalage minuscule par la suite. Pour obtenir la valeur exacte, cliquez sur l'étiquette affichant la valeur de 12.99 pour mettre la valeur calculée réelle dans le presse-papier et pouvoir la coller ultérieurement (au préalable, vous pouvez épingler le menu précédent pour l'empêcher de se fermer). Maintenant, que nous avons l'angle, recliquez sur "Show info" pour le passer à "(No)" et l'affichage revient à la normale. Fermez le menu, supprimez la goupille rose et éventuellement réactivez l'épingle d'édition en appuyant à nouveau sur "P".

    C'est génial, nous avons maintenant l'angle de rotation, mais il est impossible d'utiliser directement le disque de rotation de l'épingle. Vous devez entrer l'angle manuellement pour faire une rotation de précision. Cela peut être fait à l'aide de la boîte de dialogue "Manual rotation" (rotation manuelle) qui peut être ouvert en cliquant sur l'icône alors que l'amortisseur est sélectionné. Alternativement, vous pouvez également utiliser le bouton central de la souris pour cliquer sur le disque de rotation de l'épingle. De toute façon cela ouvrira la boîte de dialogue ci-contre.

    Cette boîte de dialogue vous permet de faire pivoter la sélection à l'aide de plusieurs méthodes (angle de rotation normale, vecteur de rotation, matrice de rotation, etc.). La méthode de rotation peut être sélectionnée avec le menu déroulant en haut de la boite de dialogue. Mais, pour cette rotation, la méthode par défaut sera très bien. Entrez -12.99420 (ou utilisez le collé du presse-papier en ajoutant le signe moins) dans le champ "Angle" et appuyez sur "Entrée" ou cliquez sur "Accept". Ceci alignera parfaitement l'amortisseur. Vous devez utiliser -12.99420 et non 12.99420 à cause de la grille qui est antihoraire lorsque l'axe perpendiculaire à la grille pointe vers vous comme l'axe rouge (X+) le fait dans notre cas sur la boussole. C'est peut-être un peu confus, donc en pratique essayez l'angle tel quel et si cela s'avère faux, annulez avec Ctrl+Z et essayez à nouveau avec la même valeur en négatif.

    Maintenant que l'amortisseur est aligné avec l'axe de la goupille cible, il n'est pas encore connecté avec elle car il est encore trop long. Donc la prochaine étape que nous devons faire c'est de le mettre à la bonne longueur. Pour ce faire nous devons tout d'abord revenir mode imbriqué pour pouvoir manipuler les extrémités du ressort individuellement. Une fois le modèle en mode imbriqué et l'accrochage pièce actif, vous pouvez vous "saisir" de l'extrémité noire de la "clipser" sur la goupille du bas. Mais cela pas toujours possible selon les pièces utilisées, donc voyons aussi la manière sans accrochage. Si vous avez déjà utilisé la méthode accrochage, il suffit de l'annuler en appuyant sur Ctrl+Z.

    Mettre l'amortisseur dans la bonne position en utilisant juste la grille par défaut semble très compliqué, car il est actuellement hors pas de la grille, et il est impossible de le déplacer en ligne droite suivant son axe. A la suite d'un tel déplacement l'amortisseur va sembler cassé de manière irréaliste. Essayez juste de la faire (avec les flèches de l'épingle d'édition afin d'éviter l'accrochage pièce) pour voir ce que je veux dire. Ne vous inquiétez pas, vous pouvez annuler (Ctrl+Z) à nouveau par la suite.

    Cela devrait être un problème familier si vous vous souvenez de la section du chapitre édition de base sur l'utilisation de la grille relative. Heureusement la grille relative peut également être utilisée combinée avec le mode imbriqué. Sélectionnez donc l'extrémité grise de l'amortisseur et appuyez sur "O" pour changer l'orientation de la grille. Cela entraînera l'épingle d'édition à basculer sur le côté car l'orientation des amortisseurs est très différente. Il suffit de compenser cela en changeant le sens de la grille dans la boussole de façon à ce que l'axe pointe à nouveau vers vous. Nous devons déplacer l'extrémité noire de l'amortisseur, donc sélectionnez-la et changez l'épingle pour passer en mode déplacement (flèches).

    Également, à la suite du passage en grille relative, le trou du haut de l'amortisseur et la goupille seront désormais le point d'origine (0,0,0) de la grille, ce qui signifie que la valeur Y sur le panneau coordonnées X,Y,Z est identique à la longueur de l'amortisseur. Par conséquent, tout ce que nous avons besoin maintenant est la longueur exacte de l'amortisseur compressé. Ceci peut être obtenu en utilisant "Selection info" encore une fois. Pour cela, sélectionnez les deux goupilles beiges auxquelles l'amortisseur se connecte, puis rouvrir le menu "Selection info". Mais, cette fois mettre "Show distance" sur "(Yes)" pour afficher la distance et "Show angles" sur "No" pour réduire l'encombrement (même si ici cela ne sert à rien). Ceci vous donne une longueur utile de 98.04. Cliquez sur l'étiquette pour enregistrer la valeur exacte et arrêtez à nouveau l'affichage des infos sur la sélection avec "Show info" sur "(No)".

    Au lieu d'utiliser les infos de la sélection, vous pourriez également juste sélectionner la goupille inférieure dans ce cas particulier pour obtenir sa coordonnée "Y" (comme illustré dans l'image à gauche) correspondant à la bonne distance, car elle est déjà à la bonne place, et en raison de l'origine de la grille relative active et la configuration de l'amortisseur lui-même. La seule différence serait la précision, mais cela compterai moins sur des manipulations de déplacement.
    Maintenant que vous savez la longueur requise de 98.04 environ, sélectionnez la partie noire de l'amortisseur et ouvrez la boite de dialogue de déplacement manuel à l'aide de l'icône ou avec le bouton central de la souris en cliquant sur les flèches de l'épingle d'édition. Ceci ouvrira la boite de dialogue ci-contre.
    Utilisez cette boîte de dialogue pour changer la coordonnée Y de l'extrémité de l'amortisseur manuellement à 98.04, ou plus exactement à 98.03790 avec Ctrl+V puis appuyez sur la touche "Entrée" ou cliquez sur le bouton "Accept" de la boite.

    Cela régénérera le ressort et ainsi tout s'aligne correctement. Cela marque également la fin de l'ajout d'un amortisseur au modèle, la seule chose restant à faire est de nettoyer l'espace de travail. Pour cela, désélectionnez tout à l'aide de la touche "Echap" et appuyez sur "O" pour remettre la grille dans l'espace absolu. Vous pouvez également revenir en mode édition normale afin de voir la version "propre" de l'amortisseur. Les choses doivent ressembler à l'image ci-contre.

     

    Générer un panneau pièce de Set personnalisé (par Trevor Sandy)

    Ce tutoriel est la traduction du message de Trevor Sandy sur le forum LDraw.org : Generate custom LDCad set part bin.

    Ce tutoriel montre comment générer un panneau pièce personnalisé pour LDCad en utilisant mon (dixit l'auteur) utilitaire BrickUtils.

    Vous pouvez télécharger BrickUtils2.5.exe ou l'archive BrickUtils2.5.jar BrickUtils.

    Un Set est défini comme l'ensemble des pièces nécessaires pour numériser un modèle.

    Un panneau pièce de Set contiendra les pièces du Set Lego et éventuellement la quantité de chaque pièce.

    Cette exemple utilise le Set Technic Lego 42046 - La voiture du fuyard.

    Vous pouvez également télécharger l'archive de l'exemple 42046-01.zip.

    Etape 1 : Inventaire du Set

    Télécharger le fichier xml du Set sur Bricklink Set.

    1. Etre sûr de cocher le bouton "Inventory".
    2. Sélectionner "Set" dans le menu déroulant sous "Inventory".
    3. Entrer le numléro du Set dans le champ "Item No" en ajoutant le suffixe "-01" (exemple : 42046-01).
    4. Sélectionner "XML" dans le menu déroulant sous "Download Format".
    5. Cliquer sur "Download" et enregistrer le fichier "S-42046-01.xml".
    6. Renommer le fichier "S-42046-01.xml" en "42046-01.xml".

    Etape 2 : Image du Set

    Aller sur la recherche d'images de Google.

    1. Entrer dans le champ de recherche "Technic 42046.png".
    2. Sélectionner une image. C'est mieux si elle a un fond transparent.
    3. Sauvegarder le fichier en le nommant "42046-01.png".

    Etape 3 : Importer l'inventaire dans BrickUtils

    Importer 42046-01.xml dans BrickUtils.

    1. Cliquer le bouton "Import bricks" (second bouton) et sélectionner "Bricklink XML dump".
    2. Sélectionner le fichier 42046-01.xml sur votre disque.
    3. Valider l'importation.
    4. Une fenêtre "Imported brick list" s'affiche.

    Etape 4 : Configurer l'inventaire dans BrickUtils

    1. Valider la fenêtre "Imported brick list" en cliquant sur "OK". La fenêtre "Define brick list data" s'affiche.
    2. Pour définir les attributs du Set, cliquer sur le bouton "Search". La fenêtre "Search in Bricklink set database" s'affiche.
    3. Entrer "42046" dans le champ "By set #" et cliquer sur "Search" à droite du champ.
    4. Sélectionner une des lignes disponibles au-dessus et cliquer sur "OK".
    5. Dans la fenêtre principale, onglet "Working List", supprimer les pièces supplémentaires (extra parts) qui sont cochées dans la colonne "Extra" et également la feuille d'autocollant (Sticker) en sélectionnant ces lignes et en cliquant sur le bouton "Delete selected brick(s)".

    Etape 5 : Vérifier les pièces LDraw manquantes dans l'onglet "Part Mapping" (si besoin)

    Liste des numéros de pièce LDraw manquants.

    1. Les pièces n'ayant pas de correspondant LDraw sont automatiquement transférés dans l'onglet "Part Mapping".
    2. Supprimer la feuille d'autocollant.
    3. Rechercher les pièces équivalentes dans la bibliothèque LDraw avec le bouton "Search in LDraw part library".
    4. Ajouter les pièces trouvées dans "Part Mapping".

    Etape 6 : Valider la liste

    1. Vérifier qu'il n'y a plus de pièces LDraw manquantes.

    Etape 7 : Générer et installer le fichier .pbg

    Générer le fichier du panneau pièce de Set (.pbg).

    1. Exporter le fichier avec le menu "LDCad Parts-bin Set" du bouton "Export bricks".
    2. Cocher l'option "Include quantity", si vous voulez voir la quantité de chaque pièce utilisé dans le panneau pièce de LDCad, puis valider par "OK".
    3. Sauvegarder le fichier sous le nom "42046-01.pbg".
    4. Confirmer les messages de sauvegarde.
    5. Ouvrir le fichier "42046-01.pbg" dans un éditeur de texte et vérifier le nom de l'image à la ligne "picture=" (dans notre exemple : 42046-01.png).
    6. Copier les fichiers "42046-01.pbg" et "42046-01.png" dans le dossier ".\LDCad\partBin\default\sets".
    7. Lancer LDCad et dans le panneau pièces aller dans "Part Listings of Lego Sets/Parts in the 42046-01 set".

    Nota : La syntaxe .pgb pour ajouter des pièces "template" s'écrit :
    - wheel_15038+44771.ldr:[sourceInv=templates] [color=0]
    - path\technicFlexAxle.ldr:[sourceInv=templates] [color=0]
    - shortcut\hinge_2429+2430.ldr:[sourceInv=templates] [color=72]

    Etape 8 : Créer votre modèle

    Créer votre modèle LDraw sous LDCad en suivant l'ordre de montage du manuel (papier ou numérique).

     

    Générer un panneau pièce de Set personnalisé (par Orion Pobursky)

    Ce tutoriel est la traduction du message de Orion Pobursky sur le forum LDraw.org : LDCad Set Inventory PBG file generator.

    Je (dixit l'auteur) me suis ennuyé et codé un générateur pour faire un fichier .pbg à partir d'un inventaire BrickLink.

    C'est très basique. Il convertit les couleurs BL en couleurs LDraw, mais ne fait pas la validation des numéros de pièces. Je peux l'améliorer et dans ce cas je le mettrais sur le site LDraw.org.

    Vous pouvez trouver le convertisseur en ligne ici :
    http://www.pobursky.com/pbggen/pbggen.html

    Vous pouvez télécharger les inventaires de Set sur BrickLink ici :
    https://www.bricklink.com/catalogDownload.asp

    Nota : Mon générateur fonctionne uniquement avec les fichiers comportant des tabulations comme séparateurs ("Tab-Delimited File" dans le champ "Download Format" de la page BrickLink), et non avec les fichiers XML.

    Nota 2 : Voir le tutoriel précédent (dixit l'auteur de cette page) pour installer et utiliser le fichier .pbg généré, après l'avoir édité pour valider son contenu.

     

    Menus

    Les 6 menus principaux s'affichent en haut à gauche de l'écran. Les autres menus sont généralement accessibles dans leur arborescence ou dans des menus contextuels. Les menus contextuels dépendent de l'endroit ou se trouve le curseur et du mode courant, et s'affichent en cliquant avec le bouton droit de la souris.

    Dans les menus une commande peut s'afficher en jaune lorsque c'est la commande active.

    Dans les menus s'affiche à droite en vert le raccourci clavier correspondant à la commande. Un carré vert s'affiche lorsque la commande ouvre un sous-menu.

    En dehors des menus affichés par défaut dans la barre de menus, il est possible d'en ajouter ou d'en enlever, voir le chapitre "Paramétrage des menus".

    Dans chaque menu, vous pouvez utiliser les boutons :

    Main menu (Menu principal)

    Ce menu s'affiche en cliquant sur le bouton "menu principal" des autres menus.

    File (Menu fichier)

    Ce menu s'affiche en cliquant sur le menu "File".

    Session (Menu session)

    Ce menu s'affiche en cliquant sur le menu "Session".

    View (Menu visualisation)

    Ce menu s'affiche en cliquant sur le menu "View".

    Select (Menu sélection)

    Ce menu s'affiche en cliquant sur le menu "Select", ou avec le bouton droit de la souris dans la zone graphique avec "Edit / Select".

     

    Scripts (Scripts)

    Ce menu s'affiche en cliquant sur le menu "Scripts".

    Preferences (Menu préférences)

    Ce menu s'affiche en cliquant sur le menu "Prefs".

    Color bin (Options du panneau couleurs)

    Ce menu s'affiche en cliquant sur le menu "Main menu / Color bin", ou avec le bouton droit de la souris dans la zone de sélection des couleurs.

    Part bin (Options du panneau pièces)

    Ce menu s'affiche en cliquant sur le menu "Main menu / Part bin", ou avec le bouton droit de la souris dans la zone de sélection des pièces.

    Source (Options du panneau code source)

    Ce menu s'affiche en cliquant sur le menu "Main menu / Source", ou avec le bouton droit de la souris dans la zone d'affichage du code source.

    Edit (Edition)

    Ce menu s'affiche en cliquant sur le menu "Main menu / Edit", ou avec le bouton droit de la souris dans la zone graphique.

     

    Barre d'outils

    La barre d'outils s'affiche en haut de la fenêtre et permet d'accéder directement aux principales fonctions de LDCad.

    Nota : Les boutons de la barre d'outils décrits ci-dessous sont ceux affichés par défaut. Il y a de nombreux autres boutons disponibles, voir le chapitre "Paramétrage de la barre d'outils" pour les ajouter.

     

    Raccourcis clavier et souris

    Globales :

    Session :

    Menus ??? :

    Boites de dialogue :

    Panneau couleurs :

    Panneau pièces :

    Fenêtre d'édition graphique :

     

    Méta-commandes LDCad

    Ce sont des lignes de commandes spécifiques à LDCad qui sont ajoutées dans le fichier LDraw pour un usage spécifique à LDCad et qui sont interprétées généralement comme commentaires par les autres programmes utilisant le système LDraw.

    Voir la page : LDCad metas (en Anglais), pour avoir la syntaxe complète de ces méta-commandes.

    Règles et syntaxe

    La valeur des options peut avoir de nombreux types.

    Type Défaut Description
    float 0.0 Nombre non entier utilisant toujours le caractère "." comme séparateur décimal, quelque soit le réglage du pays dans le système.
    integer 0 Nombre entier.
    boolean false Doit être true (vrai) ou false (faux).
    string   texte libre. Accepte tout caractère sauf les sauts de ligne et les caractères "[" et "]".
    enum   Doit être l'une des courtes chaines de caractères de la collection dépendant de la méta-commande l'utilisant.
    ldrawRef   Référence à un autre fichier LDraw utilisant la méthode de recherche/emplacement LDraw normale. LDCad convertira automatiquement les caractères "\" ou "/" du chemin du fichier, suivant le système utilisé, mais il est toujours préférable d'utiliser le caractère "\".
    ldrawColNr 16 Entier non signé sur 32 bits indiquant le numéro d'une couleur LDraw.
    relFileName   Un nom de fichier relatif à l'emplacement du fichier LDraw le contenant. LDCad convertira automatiquement les caractères "\" ou "/" du chemin du fichier, suivant le système utilisé. Une variante spécifique pourrait être forcée cependant à la sauvegarde (par exemple pour les fichiers LDraw).
    unit 0

    Flottant avec indication optionnelle d'unité. Si aucune unité n'est spécifiée, l'unité LDraw est utilisée sauf indication contraire. Les unités supportées sont :
    mm : millimètre
    %: un pourcentage d'une autre valeur. Ne peut être utilisé que si la valeur de la propriété le permet. Si oui, il faut aussi décrire quelle valeur le pourcentage affecte.

    typeName array n type par défaut Nombre N de valeurs séparées par un espace " ". Les tableaux sont souvent utilisés pour charger un nombre fixe d'options en une seule fois. L'ordre des valeurs peut donc être très précis.
    typeName list n type par défaut Nombre N de valeurs séparées par une virgule ",". Pas de réelle différence avec les valeurs des tableaux précédents, sauf que chaque valeur dans la séquence est considérée comme un enregistrement indépendant, ainsi la suppression de toute valeur ne change pas la signification de la valeur combinée.
    LDraw matrix 0 0 0 1 0 0 0 1 0 0 0 1 Notation de position LDraw et matrice de transformation 3x3 utilisé pour construire une matrice 4x4.
    3x3 matrix 1 0 0 0 1 0 0 0 1 Matrice de transformation 3x3 dans le même ordre que les neuf derniers nombre d'une référence LDraw (la matrice de transformation gère l'orientation, l'échelle, la symétrie et la déformation).
    vector 0 0 0 Valeurs flottantes X, Y et Z utilisées comme vecteur.

    Méta outil d'aide

    Méta 0 !LDCAD MARKER

    Les marqueurs peuvent être utilisés pour aider à aligner des choses de formes bizarres. Vous pouvez également les utiliser pour vous aider dans la rotation d'une sélection.

    Exemple
    0 !LDCAD MARKER [posOri=-50 -24 0 1 0 0 0 1 0 0 0 1] [lengths=30 30 30 30 30 30]

    Propriétés
    Propriété Type Défaut Description
    posOri LDraw matrix   Matrice de position et transformation
    lengths integer array 30 30 30 30 30 30 nég x, pos x, nég y, pos y, nég z et pos z des longueurs d'axe.
    isTemp boolean false si vrai (true) le marqueur sera automatiquement supprimé lors de la prochaine sauvegarde.
    name string   Nom optionnel pour ce marqueur.

    Métas de groupes

    LDCad supporte le groupement d'entités LDraw imbriqué de façon récursive. Cela signifie que vous pouvez créer des groupes de pièces et d'autres groupes, même si elles sont réparties entre plusieurs fichiers LDraw (utilisés de manière récursive). Pour rendre cela possible, LDCad utilise plusieurs méta-commandes de regroupement dans les modèles utilisant des groupes.

    Méta 0 !LDCAD GROUP_DEF

    Cette méta-commande définit la présence d'un groupe à l'intérieur d'un fichier LDraw. Chaque groupe doit avoir une méta-commande de définition dans chaque fichier LDraw contenant des éléments membres du groupe. Cette méta-commande doit être utilisée uniquement dans l'entête des fichiers LDraw.

    Exemple
    0 !LDCAD GROUP_DEF [topLevel=true] [LID=0] [GID=EjSe9B4luQa] [name=Group 1] [center=0 12 0]

    Propriétés
    Propriété Type Défaut Description
    topLevel boolean true Indique si c'est, ou non, un groupe de premier niveau du fichier LDraw.
    LID integer 0 Nombre entier pour identifier de façon unique cette définition de groupe dans le fichier LDraw. Il est utilisé pour garder une référence courte aux objets (par exemple dans les lignes GROUP_NXT) et éviter d'utiliser l'identifiant GID complet de nombreuses fois.
    GID string   Pseudo identifiant unique global du groupe LDCad défini par cette méta-commande. Cet identifiant doit être globalement unique sachant que les groupes peuvent être répartis entre plusieurs fichiers.
    name string Group n L'utilisateur fourni le nom du groupe, qui doit être unique parmi tous les groupes de premier niveau dans le fichier LDraw. Par défaut il sera généré comme "Group 1", "Group 2", etc. Utilisé uniquement si topLevel est déclaré "true".
    center vector   Centre relatif à utiliser pour ce groupe. Utilisé uniquement si topLevel est déclaré "true".

    Méta 0 !LDCAD GROUP_NXT

    Cette méta-commande est utilisée pour indiquer que la ligne LDraw qui suit cette méta-commande doit être ajoutée à un ou plusieurs groupes LDCad. Si la ligne suivante n'est pas prise en charge par un groupe LDCad cette méta-commande sera ignorée.

    Exemple
    0 !LDCAD GROUP_NXT [ids=0] [nrs=2]

    Propriétés
    Propriété Type Défaut Description
    ids integer list   Référence LID pour la définition du groupe local dont la ligne qui suit est membre.
    nrs integer list   L'index de cet item à l'intérieur de la liste des membres du groupe référencé pour chaque valeur de cette liste. Ces index sont seulement utilisés pour le tri durant le chargement, de sorte que les nombres utilisés peuvent être différents à la prochaine sauvegarde. Devrait avoir le même nombre d'éléments que la propriété "id".

    Méta 0 !LDCAD GROUP_OBJ

    La méta-commande objet de groupe est utilisée pour grouper le contenu spécifique LDCad non sauvegardé (comme par exemple les points de début et de fin de chemin). Il est presque identique à la méta-commande GROUP_NXT mais ne doit être utilisée que dans l'entête des fichiers LDraw.

    Exemple
    0 !LDCAD GROUP_OBJ [ids=0] [nrs=2] [refName=Path start]

    Propriétés
    Propriété Type Défaut Description
    ids integer list   Voir : GROUP_NXT
    nrs integer list   Voir : GROUP_NXT
    refName enum   Nom de l'objet référencé.

    Métas de gestion de contenu

    LDCad maintient un certain nombre de méta-commandes pour garder une trace des informations spécifiques à LDCad à l'intérieur du fichier LDraw.

    Méta de script (0 !LDCAD SCRIPT)

    La méta-commande de script est utilisée pour lier un fichier script lua dans un fichier LDraw. Cette méta-commande ne doit être utilisée que dans l'entête du fichier ou d'un sous-fichier, et actuellement une seule instance est autorisée par sous-fichier.

    Exemple
    0 !LDCAD SCRIPT [source=5580.lua]

    Propriétés
    Propriété Type Défaut Description
    source relFileName   Nom de fichier relatif du fichier script lua que vous souhaitez utiliser avec ce modèle.

    Méta de contenu (0 !LDCAD CONTENT)

    La méta-commande de contenu est utilisée pour informer LDCad qu'il doit traiter le contenu du sous-fichier LDraw d'une manière spéciale, non graphique. Cette méta-commande liste les propriétés dépendantes du type de contenu, indiqué par la propriété type. Elle doit être utilisée dans l'entête.

    Exemple
    0 !LDCAD CONTENT [type=path] [addFallBack=default] [looped=false] [displayKind=mm] [curveStep=0] [displayLenCor=0]

    Propriétés
    Propriété Type Défaut Description
    type enum   Le type de contenu doit être path ou spring.
    addFallBack enum  

    Doit être une des valeurs suivantes :
    default : Utiliser le contenu ou emplacement du fichier dépendant par défaut.
    never : Ne pas ajouter ou supprimer du contenu vers ou venant du fichier.
    always : mise-à-jour ou ajout de code alternatif à chaque sauvegarde du fichier. C'est la valeur par défaut pour les emplacements normaux.
    remove : Ne pas ajouter de contenu et supprimer tout code alternatif existant lors de la sauvegarde. C'est la valeur par défaut pour les emplacements de gabarits.

    Propriétés spécifiques de chemin (Path)
    looped boolean false Indique si le chemin forme une boucle ou garde un point de départ et un point d'arrivée.
    displayKind enum mm

    Utilisé pour définir l'unité d'affichage, doit être une des valeurs suivantes :
    mm : millimètres.
    segs : segments.
    links : liens (utilise la même valeur que les segments).

    curveStep float 0.0 Utilisé pour définir la résolution de la courbe interne. La modification de cette valeur est seulement utile lors de la construction de choses faites de segments statiques non pliables, par exemple, une chaîne technique. Dans ce cas, la définition de cette valeur à la longueur du segment de pièce se traduira par un positionnement parfait, par exemple, les maillons de la chaîne. Sinon, vous pourriez voir des problèmes de placement car le générateur interne arrondit tout à n fois la longueur de la résolution qui pourrait légèrement différer de la longueur de la courbe du segment.
    0.0 indique que la résolution par défaut doit être utilisée.
    displayLenCor integer 0 Correction à appliquer lors du calcul de la longueur totale du chemin. Doit être donné dans l'unité displayKind. Pourrait être utilisé par exemple pour ajouter la longueur des pièces d'extrémités à la longueur du chemin générée.
    Propriétés spécifiques de ressort (Spring)
    cRes integer 16 Résolution cylindrique de la spire à utiliser pour le rendu (OpenGL).
    cResLD integer 16 Résolution cylindrique de la spire à utiliser pour le maillage LDraw généré.
    cDia unit 8.0 Diamètre interne de la spire.
    cRoll float 0.0 Enroulement autour de l'axe Y à appliquer à la spire en degrés.
    wRes integer 8 Résolution cylindrique du fil à utiliser pour le rendu (OpenGL).
    wResLD integer 8 Résolution cylindrique du fil à utiliser pour le maillage LDraw généré.
    wDia unit 2.0 Diamètre du fil.
    wCol ldrawColNr 16 Couleur du fil.
    sepMesh boolean false Indique si le fil doit être séparé du contenu du ressort principal, même s'il utilise la couleur 16. Si faux (false), il sera séparé uniquement si une couleur différente de 16 est utilisée.

    Méta de génération (0 !LDCAD GENERATED)

    La méta-commande de génération est utilisée pour informer que tout le contenu qui suit est maintenu par un des générateurs de LDCad. Cela signifie que la section entière du code LDraw pourrait être remplacé ou supprimé au moment de la sauvegarde par LDCad. Il n'est donc pas recommandé de modifier manuellement son contenu.

    Exemple
    0 !LDCAD GENERATED [generator=LDCad 1.4b]

    Ou en variante
    0 !LDCAD GENERATED [generator=LDCad 1.4b] [master=pump.ldr]

    Propriétés
    Propriété Type Défaut Description
    generator string   Version du programme qui a créé en dernier le contenu qui suit. La chaîne de caractères est juste pour information, car elle n'est actuellement pas utilisée pendant le chargement du contenu.
    master ldrawRef   Si ce bloc généré est nécessaire pour un autre bloc généré (par exemple le maillage d'un ressort faisant partie du contenu d'un amortisseur) une référence au contenu principal doit être donnée dans ce paramètre. Si le contenu principal est réglé tout ce sous-fichier sera géré par le générateur de contenu du gestionnaire, ce qui signifie qu'il pourrait être complètement supprimé, y compris toutes les lignes (jusqu'à et y compris 0 FILE) au-dessus de la méta-commande du générateur elle même. Le contenu principal doit être dans le même fichier MPD.

    Métas de contenu de chemin

    Les méta-commandes de contenu de chemin sont utilisées pour définir les pièces dynamiques à l'intérieur d'un sous-fichier dédié. Basé sur une collection de lignes 0! LDCAD PATH_, LDCad sera en mesure de générer de nombreux types de pièces flexibles pour une utilisation dans vos modèles. Afin de voir également correctement ces modèles dans d'autres programmes de visualisation ou d'édition LDraw une méta-commande de génération peut être utilisée pour ajouter au code LDraw du sous-fichier les éléments de la pièce dynamique figés au moment de la sauvegarde.

    Méta de point de chemin (0 !LDCAD PATH_POINT)

    La méta-commande de point de chemin est utilisé pour définir un point de passage. Le chemin généré utilisera ce point d'une certaine façon. S'il y a plusieurs points, le chemin suit l'ordre de ces points. Elles doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD PATH_POINT [type=bezier] [posOri=-110 0 0 1 0 0 0 1 0 0 0 1] [prevCPDist=25] [nextCPDist=25] [cirR=25] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]

    Propriétés
    Propriété Type Défaut Description
    type enum bezier

    Fixe le type de point, doit être bezier ou circle.
    Les points de Bézier (bezier) sont utilisés pour guider le chemin à travers le centre de ce point à l'aide de deux points de contrôle, un avant et un après, à l'aide de l'axe Y du système de coordonnée des points (donné par posOri).
    Les points de cercle (circle) sont utilisés pour guider le chemin autour du centre de ce point dans un plan 2D en utilisant le rayon personnalisé cirR.

    posOri LDraw matrix   Position et orientation du point. La partie orientation est très importante car elle définit la direction du chemin en utilisant son axe Y local.
    prevCPDist float 25.0 Définit le point de contrôle "avant" ce point en fixant la distance (sur l'axe Y local) avec lui. Le point de contrôle "avant" de ce point sera utilisé par le point de contrôle "après" du point de chemin précédent, afin de faire les calculs de Bézier pour le segment de ligne entre les deux.
    nextCPDist float 25.0 Définit le point de contrôle "après" ce point en fixant la distance (sur l'axe Y local) avec lui. Le point de contrôle "après" de ce point sera utilisé par le point de contrôle "avant" du point de chemin suivant, afin de faire les calculs de Bézier pour le segment de ligne entre les deux.
    cirR float 25.0 Fixe le rayon du cercle de guidage du chemin. Utilisé seulement si le type de point est circle.
    cirDir enum xyCW

    Utilisé pour sélectionner le plan 2D et le sens d'enroulement de ce point de chemin cercle. Doit être utilisé pour guider le chemin autour de son centre. Doit être une des valeurs suivantes :
    xyCW : Sens horaire autour du plan XY local.
    xyCCW : Sens antihoraire autour du plan XY local.
    zyCW : Sens horaire autour du plan ZY local.
    zyCCW : Sens antihoraire autour du plan ZY local.
    Utilisé seulement si le type de point est circle.

    prevYRoll float 0.0 Fixe l'enroulement (en degrés) autour de l'axe Y du chemin, le chemin donneur est nécessaire pour avoir l'arc de cercle local "avant". Utilisé lorsque par exemple vous travaillez avec un élastique de section carrée pour le guider d'une roue à gorge (beveled wheel) à une bague (bush). Utilisé seulement si le type de point est circle.
    nextYRoll float 0.0 Fixe l'enroulement (en degrés) autour de l'axe Y du chemin, le chemin donneur est nécessaire pour avoir l'arc de cercle local "après". Utilisé lorsque par exemple vous travaillez avec un élastique de section carrée pour le guider d'une bague (bush) à une roue à gorge (beveled wheel). Utilisé seulement si le type de point est circle.

    Méta d'extrémité de chemin (0 !LDCAD PATH_CAP)

    La méta-commande d'extrémité de chemin est utilisé pour ajouter une partie statique (pièce ou sous-fichier) à une pièce dynamique. C'est habituellement réservé aux parties d'extrémités extérieures à la pièce dynamique générée. Par exemple les tenons moulés aux extrémités de certains cordages. Elles doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD PATH_CAP [group=start] [color=16] [posOri=-170 8 0 1 0 0 0 1 0 0 0 1] [part=165.dat] [extraLen=0mm]

    Propriétés
    Propriété Type Défaut Description
    group enum  

    Groupe est utilisé pour attribuer cette extrémité à l'un des groupes automatiques LDCad disponible pour cette pièce flexible. Doit être une des valeurs suivantes :
    start : Toutes les choses qui forment le point de départ de la pièce flexible. C'est généralement une extrémité et le premier point du chemin.
    end : Toutes les choses qui forment le point d'arrivée de la pièce flexible. C'est généralement une extrémité et le dernier point du chemin.

    color ldrawColNr 16 Couleur à utiliser, donnée par la pièce LDraw.
    posOri ldraw matrix   Position et orientation de l'extrémité de la pièce.
    part ldrawRef   Pièce LDraw à utiliser pour pièce d'extrémité.
    extraLen unit 0mm Peut être utilisé pour indiquer la longueur des pièces d'extrémité, ou pour corriger la longueur totale du chemin lorsque les pièces d'extrémité comprennent par exemple une partie de la structure dynamique.

    Méta d'ancrage de chemin (0 !LDCAD PATH_ANCHOR)

    La méta-commande d'ancrage de chemin est éventuellement utilisé pour forcer un centre personnalisé utilisant le groupe de contenu de chemin automatique. Ceci peut être nécessaire pour les groupes de début et de fin si la méta-commande d'extrémité ou de point de chemin n'est pas adapté ou logique. Il ne peut y avoir qu'une méta-commande d'ancrage par type de groupe dans un sous-fichier de chemin. Elles doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD PATH_ANCHOR [group=start] [posOri=-110 24 0 1 0 0 0 1 0 0 0 1]

    Propriétés
    Propriété Type Défaut Description
    group enum  

    Groupe est utilisé pour attribuer cet ancrage à l'un des groupes automatiques LDCad disponible pour cette pièce flexible. Doit être une des valeurs suivantes :
    start : Toutes les choses qui forment le point de départ de la pièce flexible. C'est généralement une extrémité et le premier point du chemin.
    end : Toutes les choses qui forment le point d'arrivée de la pièce flexible. C'est généralement une extrémité et le dernier point du chemin.
    Il n'est pas autorisé d'affecter le groupe à quelque chose déjà utilisé par un autre ancrage.

    posOri ldraw matrix   Position et orientation de l'ancrage.

    Méta d'apparence de chemin (0 !LDCAD PATH_SKIN)

    La méta-commande d'apparence de chemin est utilisée pour définir la façon de remplir ou afficher la partie du chemin emprunté par un point donné. Il devrait y avoir au moins une méta-commande d'apparence dans chaque sous-fichier de pièce dynamique. Il est autorisé d'utiliser plusieurs méta-commandes d'apparence. La longueur totale du chemin sera divisé suivant les multiples méta-commandes en fonction des propriétés liées à leurs segments (SEG*). Les méta-commandes d'apparence doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD PATH_SKIN [donCol=16] [donOri=1 0 0 0 1 0 0 0 1] [donPart=3001.dat] [donYSize=100%] [donCen=absCen] [donCenYOfs=0] [donFinScale=fitDon2Seg] [donPlace=refsDyn] [donYAlign=0] [donInline=false] [segSize=100%] [segSizeTol=5%] [segsCnt=0] [segsGrp=0] [segsMaxMerge=1] [segsMrgAng=0] [segsEdgeDelKind=keepFirstLeft]

    Propriétés
    Propriété Type Défaut Description
    donCol ldrawColNr 16 Couleur à utiliser avec la pièce donneur.
    donOri 3x3 matrix   Rotation de la pièce donneur. donOri agit comme correction de la propre orientation du donneur afin de rendre l'axe Y de la pièce orienté. Ceci parce que la pièce donneur sera "trainée" le long du chemin dans sa direction Y locale (après cette correction).
    donPart ldrawRef   Fichier LDraw à utiliser pour remplir le chemin. Tout fichier LDraw est autorisé ici, mais en pratique il est préférable de se limiter à des pièces simples.
    donYSize unit 100% Utilisé pour fixer la taille de base du donneur dans sa direction Y. Si par exemple la pièce donneur est une section de tube avec une hauteur de 2 LDU, elle pourrait être étirée (Axe Y seulement) en utilisant cette option en morceaux de 8 LDU par exemple, soit 4 fois plus avec une valeur de 400%.
    donCen enum absCen

    Utilisé pour choisir le centre de travail de la pièce donneur. Cette option utilise le donneur comme il est après les corrections d'orientation. Doit être une des valeurs suivantes :
    partCen : Utilise l'origine de la pièce.
    absCen : Utilise le centre absolu de la pièce.
    absYCen : Utilise l'origine de la pièce pour les axes X et Z, mais utilise le centre absolu pour son axe Y.
    absXZCen : Utilise le centre absolu pour les axes X et Z, mais utilise l'origine de la pièce pour son axe Y.

    donCenYOfs float 0.0 Définit un décalage additionnel en Y pièce du donneur (après corrections donOri, donYSize et donCen) à utiliser.
    donFinScale enum fitDon2Seg

    Contrôle la façon dont le donneur est mis à l'échelle avant placement d'un segment. Doit être une des valeurs suivantes :
    none : Pas de mis à l'échelle supplémentaire.
    fitDon2Seg : Allonger ou réduire le donneur résulte à l'adapter exactement au segment de destination. Noter que cela pourrait (partiellement) remplacer quelques autres paramètres don* de mise à l'échelle mais il pourrait en résulter un résultat final inattendu.

    donPlace enum refsDyn

    Sélectionne la méthode de placement ou génération. Doit être une des valeurs suivantes :
    refsStat : Les donneurs sont placés en utilisant le centre calculé (après correction donYAling) au point de départ des segments en utilisant pour ces emplacements l'orientation du chemin local.
    refsDyn : Les donneurs sont placés en utilisant le centre calculé (après correction donYAling) au centre des segments en utilisant pour ces emplacements (interpolés) l'orientation du chemin local.
    deform : Le maillage du donneur est déformé de telle sorte qu'il suit la courbe du chemin à la suite tout code de retour en arrière aura mis entièrement récursif (transformé) la source de la pièce donneur pour chaque segment qui l'utilise. Le résultat de la méthode de déformation donne des pièces flexibles extrêmement lisses, mais il pourrait également se traduire par de très gros fichiers LDraw.

    donYAlign integer 0 Fixe une correction d'alignement à utiliser sur le centre du donneur calculé avant de placer un donneur sur le segment du chemin. Un nombre négatif décalera le donneur vers la gauche par multiples de sa longueur en Y. Donc -1 le déplacera d'une longueur entière vers la gauche. Un nombre positif fera la même chose vers la droite. 0 signifie qu'aucun changement ne sera effectué.
    donInline boolean false Détermine si le générateur va essayer de décomposer le fichier donneur au lieu d'y faire directement référence tout en créant le code de retour du segment. Décomposer le fichier donneur supprime sa dépendance et pourrait augmenter la portabilité du code de retour. Le donneur sera décomposé uniquement s'il est composé entièrement de lignes de type 1.
    segSize unit 100% Contrôle la longueur des segments individuels le long du chemin résultant. Chaque segment sur le chemin sera rempli avec une seule instance de pièce donneur. Fixer la taille des segments contrôle donc combien de fois le donneur peut être utilisé pour remplir le chemin. Soyez prudent lorsque vous réglez la taille du segment tout en utilisant la méthode de déformation car cela va influer grandement la taille du fichier résultant. Vous pouvez fournir la taille du segment en ldu, mm, ou en pourcentage de donYSize.
    segSizeTol unit 5% Contrôle le niveau d'agrandissement autorisé sur les segments afin de remplir l'espace restant. Si par exemple la taille des segments est 10 et le chemin complet a une longueur de 111, il en résulte 11 segments, la longueur restante de 1 sera étalée sur les 11 segments par une légère mise à l'échelle. Utilisez cette option pour limiter la quantité de mises à l'échelle pour éviter par exemple des distorsions notables de la pièce donneur. La tolérance peut être donnée en statique ldu, mm ou en pourcentage de la taille du segment calculé lui même.
    segsCnt integer 0 Utilisé pour définir éventuellement un nombre fixe de segments. 0 signifie qu'un nombre illimité de segments peut être utilisé pour construire le chemin. Si une valeur non nulle est donnée, seulement une partie du chemin sera rempli en utilisant les options de la méta-commande d'apparence. Cette option peut être utilisée pour limiter la longueur visible de la pièce flexible et faire de la place pour une autre méta-commande d'apparence sur le chemin.
    segsGrp integer 0 Utilisé pour grouper les segments résultants des différentes méta-commandes d'apparence. Si fixé à 0 aucun groupement ne sera effectué et chaque méta-commande d'apparence remplira son espace attribué dans l'ordre des lignes des méta-commandes d'apparence. Si la valeur est non nulle, les méta-commandes d'apparence utiliseront le même numéro de groupe et leurs segments se succèderons (compressés ensemble) rendant possible, par exemple, les motifs colorés.
    segsMaxMerge integer 1 Afin de tenter de réduire le code alternatif des segments qui sont en ligne droite à la suite d'un autre segment, il pourrait éventuellement être joint en un seul segment, pour placer moins de donneurs. Cette option est utile uniquement lorsque le donneur utilise l'échelle finale sinon vous allez vous retrouver avec des trous (grands) dans votre chemin.
    segsMrgAng float 0.0 Permet éventuellement de définir l'angle maximal (en degrés) entre deux segments afin de les estimer alignés. 0.0 indique de prendre la valeur par défaut. Cette valeur interne est codée en dur dans le programme (dépendant de la version). Utilisez cette option dans le cas ou un grand angle provoque des problèmes d'alignement.
    segsEdgeDelKind enum keepFirstLeft

    Contrôle quoi faire avec le chevauchement des lignes conditionnelles tout en utilisant la méthode de placement par déformation. Doit être une des valeurs suivantes :
    keepFirstLeft : Supprimer les gauches sauf pour le premier segment.
    keepLastRight : Supprimer les droites sauf pour le dernier segment.
    keepAll : Ne supprime rien, garde tout.

    Méta de longueur de chemin (0 !LDCAD PATH_LENGTH)

    La méta-commande de longueur de chemin est utilisée pour limiter la longueur ou pour définir un nombre réel de pièces pour la longueur maximum. Lorsqu'il y a plusieurs méta-commandes de longueur, celle la plus proche de la longueur réelle du chemin sera appliquée, par exemple dans le but de correspondre au chemin statique contenu dans des fichiers LDraw. La longueur totale du chemin sera divisé suivant les multiples méta-commandes en fonction des propriétés liées à leurs segments (SEG*). Les méta-commandes de longueur doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD PATH_LENGTH [lenTarget=50mm] [lenMargin=2%] [partName=some.dat] [partDescr=50 mm pneuhose]

    Propriétés
    Propriété Type Défaut Description
    lenTarget unit 0 La longueur maximale autorisée pour le chemin.
    lenMargin unit 0 La longueur totale du chemin peut différer en fonctions des vraies contraintes afin de se qualifier encore. Cela permet d'éviter les exclusions indésirables et compense pour les pièces extensibles (par exemple les bandes caoutchouc). La marge peut être donnée en ldu, mm ou un pourcentage de la valeur lenTarget.
    partName ldrawRef   La pièce LDraw qui représente la version statique du chemin qui correspond aux contraintes de cette méta-commande. Actuellement cette référence n'est jamais chargée de sorte qu'elle n'est pas obligée d'exister. Dans de futures versions, LDCad pourrait l'utiliser, par exemple en aperçu d'utilisation de la pièce, etc.
    partDescr string   Description à utiliser pour la partName donnée. Actuellement on ne fait rien avec cette valeur, mais dans de futures versions de LDCad il pourrait l'utiliser, par exemple lorsque le fichier LDraw de partName ne peut être trouvé (c'est virtuel).

    Métas de contenu de ressort

    Les méta-commandes de contenu de ressort sont utilisées pour définir les pièces qui comprennent un ressort mobile à l'intérieur d'un sous-fichier dédié. Basé sur une collection de lignes 0 !LDCAD SPRING_*, LDCad sera en mesure de générer de nombreux types de ressorts pour une utilisation dans vos modèles. Afin de voir également correctement ces modèles dans d'autres programmes de visualisation ou d'édition LDraw une méta-commande de génération peut être utilisée pour ajouter au code LDraw du sous-fichier les éléments de la pièce dynamique figés au moment de la sauvegarde.

    Méta de point de ressort (0 !LDCAD SPRING_POINT)

    La méta-commande de point de ressort est utilisée pour définir au plus deux points, en utilisant différents paramètres du groupe. Ce sont les points de connexion du ressort généré en utilisant une ou plusieurs méta-commandes de section. Les méta-commandes de point de ressort doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD SPRING_POINT [group=start] [posOri=0 24 0 1 0 0 0 1 0 0 0 1]

    Propriétés
    Propriété Type Défaut Description
    group enum  

    Groupe est utilisé pour attribuer ce point à l'un des groupes automatiques LDCad disponible pour la pièce ressort. Doit être une des valeurs suivantes :
    start : Ce point représente le début ou la base du ressort.
    end : Ce point représente la fin ou le sommet du ressort.
    Il n'est pas autorisé d'affecter le groupe à quelque chose déjà utilisé par un autre point.

    posOri LDraw matrix   Position et orientation de ce point de ressort.

    Méta d'extrémité de ressort (0 !LDCAD SPRING_CAP)

    La méta-commande d'extrémité de ressort est utilisée pour ajouter une partie statique (pièce ou sous-fichier) au début et à la fin de la partie ressort.

    Exemple
    0 !LDCAD SPRING_CAP [group=start] [color=16] [posOri=0 24 0 1 0 0 0 1 0 0 0 1] [part=3005.dat]

    Propriétés
    Propriété Type Défaut Description
    group enum  

    Groupe est utilisé pour attribuer cette extrémité à l'un des groupes automatiques LDCad disponible pour la pièce ressort. Doit être une des valeurs suivantes :
    start : Cette extrémité se connecte au début ou base du ressort.
    end : Cette extrémité se connecte à la fin ou sommet du ressort.
    Il n'est pas autorisé d'affecter le groupe à quelque chose déjà utilisé par une autre extrémité.

    color ldrawColNr 16 Couleur à utiliser pour cette pièce d'extrémité.
    posOri LDraw matrix   Position et orientation de cette pièce d'extrémité.
    part ldrawRef   Pièce LDraw à utiliser pour cette pièce d'extrémité. Peut être rien, mais en pratique, devrait être une pièce LDraw unitaire, car sinon cela pourrait nuire aux performances de rendu.

    Méta d'ancrage de ressort (0 !LDCAD SPRING_ANCHOR)

    La méta-commande d'ancrage de ressort est utilisée pour forcer un centre et une orientation personnalisée pour le groupe des ressorts. Il ne peut y avoir qu'une méta-commande d'ancrage par type de groupe dans un sous-fichier de ressort. Elle doit être utilisée uniquement dans l'entête, et éventuellement maintenu groupée.

    Exemple
    0 !LDCAD SPRING_ANCHOR [group=start] [posOri=0 48 0 1 0 0 0 1 0 0 0 1]

    Propriétés
    Propriété Type Défaut Description
    group enum  

    Groupe est utilisé pour attribuer cet ancrage à l'un des groupes automatiques LDCad disponible pour la pièce ressort. Doit être une des valeurs suivantes :
    start : Cet ancrage se connecte au début ou base du ressort.
    end : Cet ancrage se connecte à la fin ou sommet du ressort.
    Il n'est pas autorisé d'affecter le groupe à quelque chose déjà utilisé par un autre ancrage.

    posOri LDraw matrix   Position et orientation de cet ancrage.

    Méta de section de ressort (0 !LDCAD SPRING_SECTION)

    La méta-commande de section de ressort est utilisée pour définir l'apparence du fil du ressort, reliant les deux extrémités. Il doit y avoir au moins une méta-commande de section. Lorsque plusieurs méta-commandes de section sont présentes, la longueur disponible du ressort sera divisée entre eux suivant la propriété proportion. Elles doivent être utilisées uniquement dans l'entête, et éventuellement maintenu groupées.

    Exemple
    0 !LDCAD SPRING_SECTION [windingCnt=5] [proportion=1]

    Propriétés
    Propriété Type Défaut Description
    windingCnt float 5.0 Nombre d'enroulements autour de l'axe Y que devra faire le ressort pour couvrir la longueur disponible.
    proportion integer 1

    Définit la partie de la longueur totale du ressort que cette section contrôle. Si fixé à 0 le fil sera bien enroulé et la longueur de cette section dépendra du nombre d'enroulements et de l'épaisseur du fil. Si la valeur est non nulle, la longueur disponible sera calculée en prenant la longueur restante (longueur du ressort moins la longueur utilisé par les sections à proportion nulle) divisé par la somme de toutes les valeurs de proportion multiplié par la valeur de proportion de cette méta-commande.
    Par exemple, imaginez avoir un ressort d'une longueur de 100 en utilisant 4 méta-commandes de section. Si une de ces sections utilise une proportion de 2 et les trois autres une proportion de 1, les longueurs de section résultant sera : 40 (2/5ème), 20 (1/5ème), 20 (1/5ème) et 20 (1/5ème).

    Métas d'accrochage pièce

    Les méta-commandes d'accrochage pièce sont actuellement utilisées exclusivement combinés avec les fichiers de la bibliothèque fantôme afin d'ajouter des informations supplémentaires aux pièces de la bibliothèque LDraw. Cette information est utilisée par LDCad pour calculer automatiquement les positions de placement possible des pièces entre-elles.

    Ces méta-commandes décrivent essentiellement les points remarquables et leurs formes qui seront ensuite utilisés pour tester une à une chaque position lors de l'ajout d'une nouvelle pièce dans le modèle en cours. Cela sera fait pour toutes les informations d'accrochage à la fois sur la brique courante d'ajout et toutes celles présentes dans le modèle afin de trouver le meilleur point d'accrochage ou la solution la plus proche, par exemple une goupille dans le trou d'une poutre.

    Méta d'effacement d'accrochage (0 !LDCAD SNAP_CLEAR)

    La méta-commande d'effacement est utilisée pour vider la totalité ou une partie des informations d'accrochage héritées, recueillies jusqu'ici pour le fichier de la pièce courante. Cette méta-commande pourrait être nécessaire pour remplacer les informations héritées afin de l'étendre ou d'augmenter ses détails. Par exemple les informations obtenues à partir d'une primitive d'axe, car cette primitive est utilisée comme forme plus grande à l'intérieur d'un fichier de pièce.

    Exemple
    0 !LDCAD SNAP_CLEAR [id=axleHole]

    Propriétés
    Propriété Type Défaut Description
    id string   Utilisé pour effacer uniquement l'information d'accrochage obtenue en utilisant l'identifiant donné (id). Laissez-le vide pour effacer toutes les informations pour la pièce courante.

    Méta d'ajout d'accrochage (0 !LDCAD SNAP_INCL)

    La méta-commande d'ajout est utilisée pour ajouter une information d'accrochage dans cette pièce à partir d'une autre bibliothèque fantôme. Ceci est fait de façon non récursive.

    Exemple
    0 !LDCAD SNAP_INCL [ref=connhole.dat] [pos=-50 10 0] [ori=0 -1 0 0 0 -1 1 0 0] [grid=C 1 C 3 20 20]

    Propriétés
    Propriété Type Défaut Description
    ID string   Identifieur facultatif qui peut être utilisé dans les méta-commandes d'effacement (clear) pour éventuellement déposer cette information à un niveau supérieur dans les pièces qui l'utilise.
    pos vector   Position de l'information ou objet inclus.
    ori 3x3 matrix   Transformation de l'orientation à appliquer sur l'information ou objet inclus.
    scale vector   Vecteur facultatif de mise à l'échelle à appliquer sur l'information ou objet inclus.
    ref ldrawRef   Référence du fichier de la bibliothèque fantôme source. Doit utiliser uniquement des références de pièces locales.
    grid mixed array  

    Définit un modèle de grille à utiliser pour un placement multiple ou une inclusion du fichier référencé. La grille utilise l'orientation indiquée dans le paramètre ori. Comme les données de pièce LDraw sont orientés suivant l'axe Y, seules les valeurs de pas de grille en X et Z doivent être données comme ceci :
    Xcnt Zcnt Xstep Zstep par exemple : 4 8 20 20 qui pourrait être utilisé pour faire une grille 4x8 par exemple de tenons.
    Eventuellement chaque valeur de quantité peut être précédée par un caractère C indiquant que la grille devra être centrée sur cet axe. Si aucun C n'est donné, l'axe sera ajouté au paramètre pos. Par exemple pour centrer la grille 4x8 sur la position du paramètre pos utilisez : C 4 C 8 20 20.

    Méta d'accrochage de cylindre (0 !LDCAD SNAP_CYL)

    La méta-commande d'accrochage de cylindre est la pièce maîtresse des informations d'accrochage, car elle décrit les trous et les tenons qui sont le fondement de Lego. Si vous jetez un regard attentionné à quelques briques Lego, vous remarquerez que toutes ont des trous et des tenons d'accrochage similaires. La seule vraie différence entre elles sont le diamètre et le motif des formes de trous ou tenons (comme le côté d'une clef). Ce sont ces informations que la méta-commande d'accrochage sur cylindre tente de capturer pour appairer les pièces.

    Exemple
    0 !LDCAD SNAP_CYL [id=connhole] [gender=F] [caps=none] [secs=R 8 2 R 6 16 R 8 2] [center=true] [slide=true] [pos=0 0 0] [ori=1 0 0 0 1 0 0 0 1]

    Propriétés
    Propriété Type Défaut Description
    ID string   Identifieur facultatif qui peut être utilisé dans les méta-commandes d'effacement (clear) pour éventuellement déposer cette information à un niveau supérieur dans les pièces qui l'utilise.
    group string   Identifieur de groupe facultatif. Peut être utilisé pour limiter les correspondances possibles aux seules informations d'accrochage qui possèdent le même identifieur de groupe. Peut être utilisé pour prévenir les correspondances indésirables lorsque des formes très complexes sont impliquées, par exemple des trous de rotation à cliquet, etc.
    pos vector   Position de cette forme.
    ori 3x3 matrix   Orientation de cette forme.
    scale enum none

    Définit comment les références mises à l'échelle dans la pièce (officielle) principale doivent manipuler judicieusement l'information d'héritage. Doit être une des valeurs suivantes :
    none : Si une mise à l'échelle est détectée cette information ne sera pas héritée par la pièce de niveau supérieur.
    YOnly : L'information sera héritée seulement si la mise à l'échelle est limitée à l'axe Y, Si X et/ou Z est mis à l'échelle l'information ne sera pas héritée.
    ROnly : L'information sera héritée seulement si la mise à l'échelle est limitée au rayon du cylindre (habituellement X et Z) compte tenu de sa symétrie. Si l'information est mise à l'échelle de toute autre manière elle ne sera pas héritée.
    YandR : L'information sera héritée seulement si les règles YOnly ou ROnly s'appliquent.

    mirror enum cor

    Définit comment les références symétrisées dans la pièce (officielle) principale doivent manipuler judicieusement l'information d'héritage. Doit être une des valeurs suivantes :
    none : Si une symétrie est détectée cette information ne sera pas héritée par la pièce de niveau supérieur.
    cor : Si une symétrie est détectée l'information d'accrochage sera corrigée en retournant un des axes du rayon.

    gender enum male Fixe le genre de la forme du cylindre : M pour male (goujon) et F pour femelle (trou).
    secs mixed array  

    Décrit la forme du trou (le long de l'axe Y négatif) ou du goujon par une séquence de variantes de forme, de rayon et de longueur. L'information doit être donnée dans des blocs de : shapeVariant radius length ou shapeVariant doit être une des valeurs suivantes :
    R : Rond.
    A : Axe.
    S : Carré.
    _L : Extension judicieuse du rayon flexible vers le bloc de spécification précédent. Ce sera nécessaire par exemple pour l'extrémité d'un goujon de connecteur Technic. Bien qu'il soit un peu plus grand, il permet une compression (temporaire) tout en faisant glisser le goujon dans le trou d'une poutre Technic.
    L_ : Comme _L mais comme une extension vers la section suivante à la place de la précédente.
    Par exemple un simple tenon peut être décrit en utilisant un bloc unique : R 8 4 alors que le trou d'une poutre Technic en demande trois : R 8 2 R 6 16 R 8 2.

    caps enum one

    Définit les extrémités de la forme, doit être une des valeurs suivantes :
    none : La forme a les extrémités ouvertes. Par exemple un axe male ou un trou de poutre femelle.
    one : La forme a une extrémité fermée, qui dépend de son genre. Pour les formes males ce sera un A (fermé en bas) et pour les formes femelles ce sera un B (fermé en haut).
    two : La forme est fermée (bouchée) à ses deux extrémités. Par exemple la barre male de la poignée de valise d'une Minifig.
    A : La base est fermée/bouchée. Par exemple : Un tenon.
    B : Le sommet est fermée/bouchée. Par exemple : Un tenon de dessous.

    grid mixed array  

    Définit un motif de grille à utiliser pour le placement multiple de cette forme cylindrique. La grille utilise l'orientation indiquée dans le paramètre ori. Comme toutes les information d'attirance est orienté suivant l'axe Y seules les valeurs en X et Z du pas de la grille doivent être données comme ceci :
    Xcnt Zcnt Xstep Zstep par exemple : 4 8 20 20 pourrait être utilisé pour fabriquer une grille 4x8 de tenons.
    Eventuellement chaque valeur de quantité peut être précédée par un caractère C indiquant que la grille devra être centrée sur cet axe. Si aucun C n'est donné, l'axe sera ajouté au paramètre pos. Par exemple pour centrer la grille 4x8 sur la position du paramètre pos utilisez : C 4 C 8 20 20

    center boolean false Indique si cette forme cylindrique doit être centrée sur sa position ou non.
    slide boolean false

    Indique si cette forme cylindrique doit être considérée assez "lisse" pour faire glisser de potentielles pièces correspondantes. Si chaque pièce de la paire des pièces correspondantes ont l'option slide fixé à true (vrai) dans leurs méta-commandes d'information d'attirance, l'utilisateur sera en mesure de les faire glisser l'une sur l'autre. Sinon elles seront juste "attirées".
    Faire attention, lors de l'activation de cette option, car cela peut causer des glissements indésirables de par exemple un tenon dans un tenon de dessous. En pratique, il est bon de limiter slide à la valeur true aux choses que vous savez pouvoir glisser la plupart du temps (par exemple : pièces à clips, bagues (bush), roues dentées (gear), etc).

    Méta d'accrochage de clip (0 !LDCAD SNAP_CLP)

    La méta-commande d'accrochage sur clip est utilisée pour décrire tout ce qui a une forme de clip. Les clips sont toujours du genre féminin et seront testés pour s'appairer avec les formes cylindriques mâles.

    Exemple
    0 !LDCAD SNAP_CLP [radius=4] [length=8] [pos=0 0 0] [ori=1 0 0 0 1 0 0 0 1] [center=true]

    Propriétés
    Propriété Type Défaut Description
    ID string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    pos vector   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    ori 3x3 matrix   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    radius float 4.0 Rayon intérieur du clip au repos.
    length float 8.0 Longueur ou largeur du trou (partiel) du clip.
    center boolean   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    slide boolean   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    scale enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    mirror enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.

    Méta d'accrochage de clip (0 !LDCAD SNAP_FGR)

    La méta-commande d'accrochage sur doigt est utilisée pour décrire tout les formes de doigts pouvant se verrouiller. Les formes de doigts sont toujours testées parmi eux-mêmes.

    Exemple
    0 !LDCAD SNAP_FGR [group=lckHng] [genderOfs=M] [seq=4.5 8 4.5] [radius=6] [center=true] [pos=-30 10 0] [ori=1 0 0 0 0 1 0 -1 0]

    Propriétés
    Propriété Type Défaut Description
    ID string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    group string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    pos vector   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    ori 3x3 matrix   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    genderOfs enum male Indique le genre du premier doigt de la forme, doit être soit M pour male soit F pour femelle.
    seq float array   Définit la largeur de chaque doigt par une séquence de valeurs flottantes.
    radius float   Rayon extérieur du doigt (extrémité). Il est généralement biseauté et donc le paramètre d'accrochage principal.
    center boolean   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    scale enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    mirror enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.

    Méta d'accrochage générique (0 !LDCAD SNAP_GEN)

    La méta-commande d'accrochage générique est utilisée pour décrire des choses ayant des formes irrégulières qui dans la pratique ne disposent que de quelques pièces sur laquelle elles peuvent s'assembler. Des choses par exemple comme les prises électriques ou les vitres de fenêtres.

    La correspondance est faite seulement parmi les méta-commandes d'accrochage génériques elles-mêmes, basé sur le nom unique du groupe. Mais l'information "bounding" va influencer le meilleur candidat sélectionné lorsque plusieurs paires sont très proches.

    Exemple
    0 !LDCAD SNAP_GEN [group=nxtc] [gender=M] [pos=0 -1.5 1.5] [ori=1 0 0 0 0 1 0 -1 0] [bounding=box 12.5 16.5 8]

    Propriétés
    Propriété Type Défaut Description
    ID string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    group string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    pos vector   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    ori 3x3 matrix   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    gender enum male Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    bounding mixed array  

    Définit la forme englobante qui sera utilisée dans les calculs de la "meilleure paire candidate". C'est nécessaire car sinon le positionnement unitaire pourrait provoquer des correspondances indésirables. Il existe plusieurs types de formes englobantes, à savoir :
    pnt : Un seul point, pas de boite englobante, pas d'information supplémentaire requise.
    box : Boite définie par ses demi-côtés X, Y, et Z. Par exemple : box 10 8 10.
    cube : Cube défini par sa demi-taille. Par exemple : cube 8.
    cyl : Cylindre défini par son rayon et sa longueur. Par exemple : cyl 8 20.
    sph : Sphère définie par son rayon. Par exemple : sph 8.

    scale enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    mirror enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.

    Méta d'accrochage de sphère (0 !LDCAD SNAP_SPH)

    La méta-commande d'accrochage sur sphère est utilisée pour décrire un objet sphérique comme une rotule. Bien que les paires aient une orientation adaptée, elles seront accrochées ensemble en utilisant leur orientation actuelle dans l'éditeur puisque des choses comme les rotules tournent librement. Les versions futures de cette méta-commande pourraient éventuellement limiter cette liberté.

    Nota : Depuis LDCad v1.5, cette méta-commande est remplacée par la méta générique, car dans cette version de nouveaux paramètres à la méta d'accrochage générique rend la méta d'accrochage de sphère redondante.

    Exemple
    0 !LDCAD SNAP_SPH [gender=M] [radius=4]

    Propriétés
    Propriété Type Défaut Description
    ID string   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    pos vector   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    ori 3x3 matrix   Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    gender enum male Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    radius float   Rayon de la sphère.
    scale enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.
    Mais seuls none et ROnly sont autorisés.
    mirror enum none Voir méta-commande d'accrochage de cylindre SNAP_CYL.

     

    Configuration

    Il est possible de configurer LDCad au niveau de son apparence ou pour paramétrer son utilisation. C'est possible à partir de fichiers en mode texte pour l'apparence ou à travers son interface pour paramétrer son utilisation.

    Les fichiers de configuration sont situés dans un dossier ou un de ses sous-dossiers :

    Configuration générale de LDCad

    LDCad maintient un certain nombre de fichiers de configuration. Ce sont tous des fichiers texte similaires à des fichiers ".ini" qu'il est possible d'éditer manuellement si besoin lorsque le programme est fermé.

    Fichier main.cfg

    Le fichier "main.cfg" se trouve dans le dossier "LDCad/config" et sert à stocker tous les paramètres modifiables par exemple à travers le menu "Prefs" (Préférences). Il maintient également l'état général en cours du programme (taille et position des fenêtres, etc).

    Il abrite aussi quelques options de bas niveau réservées aux experts qui ne peuvent être modifiées à travers l'interface. L'auteur précise qu'il ne pense pas que ce soit nécessaire de décrire actuellement ces options, mais si vous avez besoin d'informations à leur sujet vous pouvez toujours le contacter.

    Fichier seeds.cfg

    Le fichier "seeds.cfg" se trouve dans le dossier "LDCad/config" et est utilisé pour garder une trace de la synchronisation entre fichiers source et leur emplacement cible. Par exemple le contenu du dossier partBin provient du fichier seeds/partBin.sf.

    Actuellement il est préférable de laisser ce fichier tel quel, car cela pourrait briser le processus de mise à niveau de LDCad s'il était mal employé.

    Fichier LDCad.cfg

    Ce fichier optionnel sera lu uniquement s'il est présent dans le même dossier que l'exécutable LDCad.exe. Il est utilisé pour configurer l'environnement interne de LDCad et donne l'emplacement de sauvegarde des fichiers de données et quels sont les dossiers par défaut à utiliser pour certaines fonctions de base.

    Le contenu par défaut, utilisé lorsqu'aucun fichier n'est trouvé, est (v1.5 Alpha 3 ou supérieur) :

    [paths]
    logDir=/logs
    cfgDir=/config
    guiDir=/gui
    resourcesDir=/resources
    colorBinDir=/colorBin
    partBinDir=/partBin
    examplesDir=/examples
    templatesDir=/templates
    donorsDir=/donors
    shadowDir=/shadow
    dirSeeds=/seeds
    
    [options]
    readOnly=false
    useSeeds=true
    useSingleInstance=true
    
    [defaults]
    ipcIDStr=LDCadIPC
    defLibCSL=offLib/offLibShadow.csl
    defConfigLDR=LDConfig.ldr 
    

    Pour en savoir plus sur la description du contenu, voir : http://www.melkert.net/LDCad/tech/config (en Anglais).

    Configuration interface graphique

    Presque toutes les couleurs, images et polices de caractères utilisées dans l'interface graphique OpenGL de LDCad sont modifiables en modifiant le modèle GUI. Il est toutefois recommandé d'apporter des modifications sur une copie du modèle par défaut. Ceci parce que les mises à jour du programme vont écraser vos modifications.

    Les modèles GUI se trouvent dans le dossier de configuration "gui". A l'intérieur, vous trouverez un readme.txt et un dossier "default". Pour créer un modèle personnalisé, copier le dossier par défaut et renommez-le par exemple en "monGUI" ou quelque chose à votre convenance. Ensuite, après être sorti de LDCad, vous devrez définir ce modèle comme modèle à utiliser en éditant le fichier "main.cfg" du dossier "config".

    Dans "main.cfg" recherchez la ligne "[guiTemplate]", et juste en dessous changez "name=default" par "name=monGUI" (ou comme vous avez nommé votre copie du dossier). Après avoir enregistré le fichier LDCad sera configuré pour utiliser votre modèle alternatif plutôt que celui par défaut. Mais comme il est actuellement identique vous ne noterez aucune différence.

    Images

    Le dossier des modèles GUI contient principalement des images png. Ce sont toutes les textures et symboles utilisées pour afficher les boutons, les icônes, etc. Un sous-dossier "menuBar" contient plus particulièrement des images utilisées par la barre d'outils et "partBinItems" pour celles du panneau pièces.

    Une façon de personnaliser LDCad est de remplacer ces images par vos propres versions. Il existe certaines règles pour bien le faire. Dans la pratique, il est préférable d'utiliser les mêmes dimensions autant que possible, car certaines d'entre elles sont semi-codées en dur ou présumés d'une certaine dimension pour forcer certaines mises en page. Il est également préférable d'appliquer la transparence chaque fois que l'original l'utilise.

    Quelques images seront automatiquement forcées à être transparentes si elles ne le sont pas. Ceci est fait en utilisant le pixel supérieur gauche comme couleur d'arrière-plan. A cet effet, il est recommandé de s'assurer de que ce pixel est quelque chose d'utile dans la plupart des cas.

    Fichier main.gui

    Le fichier "main.gui" se trouve parmi les images et devrait être présent dans tous les dossiers de modèle GUI. Le fichier sert à définir toutes les couleurs et polices utilisées et est probablement des plus faciles à régler.

    "main.gui" est en fait un fichier ini ordinaire qui contient deux sections, à savoir : options et fonts.

    Section "options"

    La section options ne détient actuellement que des définitions de couleur formatées comme suit :

    colorName=R G B
    

    Où R, G et B sont des nombres compris entre 0 et 1 qui indiquent les valeurs du composant rouge, vert et bleu de la couleur indiquée.

    La plupart des noms de couleur devraient facilement vous aider à comprendre où ils sont utilisés (pour ceux qui ont des notions d'anglais). Juste s'assurer d'avoir les couleurs d'arrière-plan et de premier plan contrastées pour rester visibles.

    Section "fonts"

    La section des polices vous permet de définir le nom de la police de caractères et sa taille pour afficher tous les textes dans l'interface graphique OpenGL. Ceci est fait en utilisant le format suivant :

    itemName=fontName1, fontName2, fontName3, ...., fontSize
    

    fontName est le nom du fichier d'une police se trouvant dans le dossier des polices du système (OS). LDCad utilise ce nom pour rechercher un fichier .ttf ou .ttc en utilisant les emplacements de recherche de polices.

    Les emplacements de recherche de polices par défaut diffèrent suivant le système (l'info exact est donnée dans les fichiers journaux), mais LDCad cherchera en premier à l'intérieur du dossier des gabarits. Alors, vous pouvez mettre le fichier ttf ou ttc là-dedans.

    Si nécessaire vous pouvez également étendre les emplacements de recherche de police en modifiant la section userFontLocations du fichier main.cfg, mais cela entraînera que votre configuration soit non portable.

    Si le premier nom de police n'est pas trouvé ou est non valide, le second est pris en compte et ainsi de suite. Lorsque vous créez un modèle universel n'oubliez pas de fournir des noms de polices distinctes pour Windows et Linux, car il y a très peu de polices disponibles à la fois sur les deux plates-formes.

    Une autre chose à garder à l'esprit est le fait qu'une police soit à espaces constant ou non. Si un élément utilise ce type d'espacement dans le modèle par défaut il est probablement préférable de faire la même chose dans votre propre modèle. Ceci parce que LDCad pourrait le supposer, en tout cas dans certains endroits.

    Et comme note finale, il pourrait être important de garder un œil sur le sous-ensemble Unicode qu'une police prend en charge. LDCad peut afficher tout caractère unicode 16 bits, mais ne sera en mesure de le faire que si la police donnée possède les informations nécessaires.

    fontSize définit la taille en pixels (px) pour afficher la police. Veillez à ce que la police sélectionnée prenne en charge cette taille et soit également lisible.

    S'il vous plaît, notez que pour l'instant, toutes les polices ne se dimensionneront pas parfaitement dans tous les cas, en utilisant des types de polices de dimensions (très) différentes, cela sera amélioré dans une future version de LDCad.

    Configuration panneau couleurs

    Il y a actuellement trois types de fichiers qui contrôlent le contenu du panneau couleurs :

    Fichier colorBin.fav

    Ce fichier est situé dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Il contient vos couleurs favorites, sans ordre particulier. Les couleurs favorites peuvent être rendues visibles dans le panneau couleurs en configurant les groupes du panneau couleurs du genre "favorite".

    Il n'est pas bon d'éditer ce fichier en dehors de LDCad. Vous pouvez cependant le supprimer, une fois LDCad fermé, pour effacer toutes les couleurs favorites. Le fichier sera récréé au prochain démarrage du programme.

    Fichier colorBin.his

    Ce fichier est situé dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Il contient l'historique des couleurs utilisées. Les couleurs utilisées peuvent être rendues visibles dans le panneau couleurs en configurant les groupes du panneau couleurs du genre "history".

    Il n'est pas bon d'éditer ce fichier en dehors de LDCad. Vous pouvez cependant le supprimer, une fois LDCad fermé, pour effacer l'historique des couleurs utilisées. Le fichier sera récréé au prochain démarrage du programme.

    Fichiers des groupes du panneau couleurs (*.cbg)

    Ces fichiers sont situés dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/colorBin", ou de façon générique "%appdata%/LDCad/config".

    Ces fichiers sont utilisés pour configurer le contenu du panneau couleurs dans LDCad. Cela se fait en fournissant un fichier .cbg pour chaque menu ou camembert de l'arborescence du panneau couleurs.

    Le fichier "sysRoot.cbg" se situe au même endroit.

    Le sous-dossier "default" contient les fichiers .cbg officiels (par défaut) de LDCad. Il n'est pas bon d'éditer les fichiers de ce sous-dossier.

    Si vous voulez ajouter ou créer des groupes personnalisés au panneau couleur, vous devez le faire en ajoutant un second sous-dossier en plus de celui par défaut. Par exemple en copiant et renommant le sous-dossier "default". Tout ce dossier est automatiquement traité et ajouté au panneau s'il contient un fichier "root.cbg".

    Après avoir ajouté le second sous-dossier, votre nouvelle configuration deviendra visible dans le panneau couleurs en allant à la racine du panneau (Main group) qui affiche la liste des sous-dossiers au lieu de la liste de la configuration par défaut. Ce comportement ne s'applique que s'il y a plusieurs sous-dossiers dans le dossier colorBin (???). Sinon, il y aura le contenu unique du sous-dossier par défaut.

    Les fichiers .cbg sont de simples fichiers texte qui contiennent une collection d'options et éléments. Pour en savoir plus sur leur structure voir : http://www.melkert.net/LDCad/tech/colBin (en Anglais).

    Configuration palette de couleurs

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / LDraw / Configuration files".

    LDraw configuration files : Fichiers de configuration LDraw (Fournis de base avec la bibliothèque LDraw) :

    Nota : Les changements seront actifs au prochain lancement de LDCad.

    Configuration panneau pièces

    Il y a actuellement cinq types de fichiers qui contrôlent le contenu du panneau pièces :

    Fichier partBin.fav

    Ce fichier est situé dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Il contient vos pièces favorites, sans ordre particulier. Les pièces favorites peuvent être rendues visibles dans le panneau pièces en configurant les groupes du panneau pièce du genre "favorite".

    Il n'est pas bon d'éditer ce fichier en dehors de LDCad. Vous pouvez cependant le supprimer, une fois LDCad fermé, pour effacer toutes les pièces favorites. Le fichier sera récréé au prochain démarrage du programme.

    Fichier partBin.his

    Ce fichier est situé dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Il contient l'historique des pièces utilisées. Les pièces utilisées peuvent être rendues visibles dans le panneau pièces en configurant les groupes du panneau pièces du genre "history".

    Il n'est pas bon d'éditer ce fichier en dehors de LDCad. Vous pouvez cependant le supprimer, une fois LDCad fermé, pour effacer l'historique des pièces utilisées. Le fichier sera récréé au prochain démarrage du programme.

    Fichier partBinGroups.inf

    Ce fichier est situé dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Ce fichier est un fichier de cache utilisé pour garder l'arbre du panneau pièces à jour par rapport avec ses sources pbg.

    Ne PAS éditer ce fichier, car il est maintenu par LDCad. Vous pouvez cependant le supprimer en cas de besoin. LDCad le régénérera au prochain démarrage du programme. Il en résultera un message "updating content..." (mise-à-jour du contenu) dans le panneau pièces.

    Fichiers d'inventaire du panneau pièces (*.inv)

    Ces fichiers sont situés dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/config", ou de façon générique "%appdata%/LDCad/config".

    Ces fichiers sont essentiellement des fichiers cache contenant des données de l'entête de tous les fichiers des bibliothèques LDraw (Officielle et Non officielle) actuellement disponibles dans LDCad.

    Ne PAS éditer ces fichiers, car ils sont maintenus par LDCad. Vous pouvez cependant les supprimer en cas de besoin. LDCad le régénérera au prochain démarrage du programme. Il en résultera un message "updating content..." (mise-à-jour du contenu) dans le panneau pièces.

    Fichiers des groupes du panneau pièces (*.pbg)

    Ces fichiers sont situés dans le dossier "C:/Users/tchang/AppData/Roaming/LDCad/partBin", ou de façon générique "%appdata%/LDCad/partBin".

    Ces fichiers sont utilisés pour configurer le contenu du panneau pièces dans LDCad. Cela se fait en fournissant un fichier .pbg pour chaque groupe de l'arborescence du panneau pièces.

    Le fichier "sysRoot.pbg" se situe au même endroit.

    Le sous-dossier "default" contient les fichiers officiels de configuration (par défaut) de LDCad. Il n'est pas bon d'éditer les fichiers de ce sous-dossier.

    Si vous voulez ajouter ou créer des groupes personnalisés au panneau pièces, vous devez le faire en ajoutant un second sous-dossier en plus de celui par défaut. Par exemple en copiant et renommant le sous-dossier "default". Tout nouveau dossier est automatiquement traité et ajouté au panneau s'il contient un fichier "root.pbg".

    Après avoir ajouté le second sous-dossier, votre nouvelle configuration deviendra visible dans le panneau pièces en allant à la racine du panneau (Main group) qui affiche la liste des sous-dossiers au lieu de la liste de la configuration par défaut. Ce comportement ne s'applique que s'il y a plusieurs sous-dossiers dans le dossier partBin (???). Sinon, il y aura le contenu unique du sous-dossier par défaut.

    Les fichiers .pbg sont de simples fichiers texte qui contiennent une collection d'options et éléments. Pour en savoir plus sur leur structure voir : http://www.melkert.net/LDCad/tech/partBin (en Anglais).

    Dans le sous-dossier "LDCad/partBin/default/sets" se trouvent les fichiers .pbg listant les pièces contenues dans un set référencé et une image .png de 256x256 pixels de chaque set.

    Bibliothèque de pièces

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / LDraw / Search (library) paths".

    Current item properties : Propriétés de l'item courant (sélectionné dans la liste en dessous) :

    Search order : Ordre de recherche :

    Accept : Valide les modifications.
    Discard : Annule les modifications.

    Nota : Les changements seront actifs au prochain lancement de LDCad.

    Bibliothèque fantôme

    Une bibliothèque fantôme LDCad (shadow library) est une collection de fichiers LDraw (pièces) organisés de façon identique aux fichiers la bibliothèque LDraw officielle. Ces fichiers peuvent être placés soit dans un dossier soit compressés dans un fichier zip renommé en .csl.

    Lorsqu'une bibliothèque fantôme est affectée à un emplacement de bibliothèque existante (à l'aide de la boîte de dialogue "LDraw search paths" du menu "Prefs / LDraw / Search (library) paths") elle sera chargée chaque fois qu'un élément de la bibliothèque correspondante est chargé.

    Par exemple, si la pièce 3001.dat est chargée à partir du dossier des pièces de la bibliothèque officielle, LDCad vérifiera s'il y a également un fichier 3001.dat à l'intérieur du dossier des pièces de la bibliothèque fantôme. Dans l'affirmative il chargera également ce fichier. Ensuite, il va ajouter toutes les informations utiles (comme une méta-commande !LDCAD snap) aux données en mémoire de la pièce 3001.dat officielle.

    Les bibliothèques fantômes sont actuellement exclusivement utilisées pour ajouter des informations d'accrochage pièce à un groupe croissant de pièces officielles en utilisant le fichier de bibliothèque fantôme par défaut offLibShadow.csl.

    Editer une bibliothèque fantôme

    Si vous souhaitez modifier la bibliothèque fantôme par défaut (par exemple pour ajouter des informations d'accrochage pièce ou faire une correction/modification mineure dans une pièce particulière), vous devrez tout d'abord copier/renommer le fichier en .zip, puis le décompresser à l'aide de n'importe utilitaire gérant le format ZIP (par défaut l'explorateur Windows). Pour pouvoir utiliser la bibliothèque fantôme modifiée, vous devrez également mettre à jour l'emplacement de recherche LDraw pour cette bibliothèque. La boîte de dialogue vous permettra de choisir soit un dossier normal (folder) soit un fichier compressé .CSL (archive).

    Editer la version fantôme des fichiers .dat peut se faire à l'aide de n'importe quel éditeur de texte brut. Avant d'apporter des modifications, vous pourriez vouloir parcourir quelques-uns des fichiers .dat existants (parmi les plus grands) et lire le fichier ruleInfo.txt inclus pour commencer.

    La manière de définir l'attraction pièce se trouve dans le chapitre sur les méta-commandes LDCad.

    Lorsque vous avez terminé de travailler sur une bibliothèque fantôme, vous pouvez la compresser à nouveau en .ZIP et la renommer en .CSL car le traitement de la version compressée sera plus rapide pendant le chargement des modèles.

    Partager vos modifications : Si vous ajoutez et/ou corrigez des choses dans la bibliothèque fantôme officielle, veuillez le signaler à l'auteur du programme en écrivant un message (en anglais) sur mailing it to author. De cette façon il pourra examiner vos modifications ou ajouts pour une future mise-à-jour et en faire bénéficier tous les utilisateurs.

    Gabarit utilisateur

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / LDraw / User templates".

    User template locations : Emplacements des gabarits utilisateur :

    Nota : Les changements seront actifs au prochain lancement de LDCad.

    Options copier/coller

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / Editing / Copy paste defaults".

    Paramétrage des grilles

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / Editing / Grid stepping".

    Move stepping : Pas de déplacement en unité LDraw.

    Rotation stepping : Pas de rotation en degrés.

    Nota : Le pas d'une grille ne peut être configuré avec une valeur inférieure à 0.01 LDU (0,004 mm).

    Nota : Le pas de rotation ne peut être configuré avec une valeur inférieure à 0.5 degré.

    Configuration des menus

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / GUI / Menubar config", onglet "Submenus", ou "Clic droit dans la barre menus + outils / GUI / Menubar config".

    Submenus : Sous-menus disponibles
    Liste de gauche = Liste des menus non utilisés, Liste de droite = Liste des menus affichés dans le programme.

    Configuration de la barre d'outils

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / GUI / Menubar config", onglet "Toolbuttons", ou "Clic droit dans la barre menus + outils / GUI / Menubar config".

    Toolbuttons : Boutons de la barre d'outils disponibles
    Liste de gauche = Liste des boutons non utilisés, Liste de droite = Liste des boutons affichés dans le programme.

    Configuration des raccourcis clavier

    Cette boite de dialogue s'affiche en cliquant sur le menu "Prefs / GUI / Hotkey config".

     

    En cas de problème

    Questions connues

    Problèmes ?

    Si le programme ne fonctionne pas ou vous avez trouvé un "bug" s'il vous plaît postez-moi un courriel (dixit l'auteur), avec les détails en mettant en fichier joint un fichier listant les commandes effectuées (logFile) dans la session ou a eu lieu le problème (les fichiers logs sont dans le sous-dossier "logs" du dossier d'installation du programme). Egalement donnez une description de votre matériel (cpu, vga, os) et si c'est lié à un modèle ou un fichier envoyez une copie du fichier en question.

    Cela devrait maintenant être suffisant, si quelque chose n'est pas auto-explicatif comme je le pensais ou l'espérais n'hésitez pas à poster.

    TOUTES questions/suggestions/commentaires/réflexions sont bienvenus.

     

    Impressions au cours du test du programme

    Voici une liste des impressions suite aux tests effectués de la version 1.5 Beta 1b à la version 1.6 Alpha 4, ainsi que les améliorations souhaitables ou à envisager qui amélioreraient les possibilités du programme et sa facilité d'utilisation.

     

    Droits et Copyright

    Le programme LDCad est développé par Roland Melkert. Vous pouvez le retrouver sur sa page : http://www.melkert.net/LDCad (en Anglais).

    Cette page en français est basée sur les tests de la version 1.6 Alpha 4 et la documentation de l'auteur.

    Traduction et Adaptation : J.C. Tchang.