Documentation / Formes / Composants

Composants

Les composants sont des objets construits à partir de blocs réutilisables. Une horloge, une boussole, un compteur de vitesse, une jauge circulaire, un vecteur tournant et un système orbital sont tous faits du même ensemble de cercles, de lignes, de polygones, de textes et de rotations.

Capture d'écran : composants horloge et boussole sur le tableau

Vue d'ensemble

Le bouton Objets de la barre d'outils ouvre la palette des objets : chaque objet y figure avec un aperçu de ce qu'il dessine et une description de ce qu'il fait, et tu peux chercher par nom, description ou mot-clé. Choisis-en un et fais-le glisser sur le tableau pour le placer. Un objet se comporte comme n'importe quelle autre forme : tu peux le sélectionner, le déplacer, le redimensionner, le faire tourner, le verrouiller, le masquer, le dupliquer, le copier, annuler ses modifications et l'enregistrer.

Un objet que tu construis sur le tableau — avec l'assistant IA ou à la main — peut être partagé : Copier la définition, dans son menu des paramètres, place sa définition dans le presse-papiers, prête à être collée dans l'éditeur d'objets du Catalogue.

Ce qui distingue un composant, c'est la façon dont il est construit. Au lieu d'un dessin dédié à chaque objet, un composant est un petit arbre de blocs approuvés — formes, transformations, interactions et associations de valeurs — que Modellus compile et dessine. Comme ils partagent les mêmes blocs, les composants ont un aspect cohérent entre eux et peuvent être enrichis sans nouveau code de dessin. Blocs de construction explique le principe, et Définition d'objet montre comment écrire un nouvel objet.

Essaie-les tous d'un coup : ouvre le modèle Démo des blocs de construction, puis appuie sur lecture. Une seule simulation fait fonctionner une horloge, une boussole, un compteur de vitesse, une jauge circulaire, un vecteur tournant et un système orbital.

Composants disponibles

ComposantCe qu'il montre
HorlogeUne horloge qui lit une variable d'heures, de minutes, de secondes et de millisecondes — ou le temps propre du modèle, compté en secondes — affichée soit comme un cadran avec une aiguille pour chacune, soit comme un affichage numérique de la même heure, et qui peut aussi tourner toute seule comme un chronomètre, avec sa propre liste de tours
BoussoleUne rose des vents dont l'aiguille suit une variable de cap, et dont la rose peut être tournée par une seconde variable
Compteur de vitesseUn cadran en arc avec une graduation, une aiguille et un affichage numérique
Jauge circulaireUn anneau qui se remplit proportionnellement à une variable
Vecteur tournantUn vecteur de Fresnel dont l'angle et la longueur suivent des variables, avec des projections facultatives
Système orbitalUn astre central avec des corps en orbite, placés d'après le temps de la simulation et leurs périodes
VolantLes commandes avec lesquelles on conduit un véhicule : un volant tourné par un angle ou une orientation, et une paire de pédales qui enfoncent chacune une valeur de la même façon, de zéro jusqu'à une limite propre à chaque pédale ; le tout dessiné comme une voiture, une moto ou un bateau, et tu peux retirer le volant, les pédales ou le frein
ThermomètreUne température lue comme la hauteur d'une colonne, face à une échelle graduée tous les tant de degrés — un pas, comme pour un curseur — et exprimée en Celsius ou en Fahrenheit. Un trait pointillé reporte le haut de la colonne sur l'échelle, comme le réticule d'un graphique place un point par rapport à ses axes, et l'œil sur la ligne de la température affiche le terme et sa valeur au-delà de l'échelle, à côté de la lecture. On peut faire glisser la colonne pour régler la température, et les graduations comme leurs nombres gardent la taille qu'utilisent les axes du tableau : redimensionner étire l'échelle, pas l'écriture

Associer un composant au modèle

Chaque composant propose un petit ensemble d'entrées dans le menu des variables de sa barre d'outils. Une entrée accepte soit une variable du modèle, soit un simple nombre, exactement comme les termes d'un mobile ou d'un point. L'horloge, par exemple, lit une variable d'heures, de minutes, de secondes et de millisecondes, et les transforme en angles d'aiguilles avec le langage d'expressions de Modellus :

AiguilleAngle
Heures((hour mod 12) + minute / 60) × 30
Minutes(minute mod 60) × 6
Secondes((second + millisecond / 1000) mod 60) × 6
Millisecondes(millisecond mod 1000) × 0.36

L'horloge s'affiche en cadran ou en chiffres, et une touche dédiée de la barre d'outils indique lequel. La touche affiche le choix en cours et ouvre les deux possibilités : analogique dessine le cadran, ses aiguilles et ses nombres, et numérique dessine la même heure en chiffres sur un panneau — hh:mm:ss, chaque champ complété à sa propre largeur. Les deux lisent les quatre mêmes variables : passer de l'un à l'autre ne change rien à ce à quoi l'horloge est associée. Les nombres et le glissement n'appartiennent qu'au cadran, ils disparaissent donc des menus quand ce sont les chiffres qui sont affichés.

Les chiffres sont les segments d'une ancienne horloge numérique, et non du texte : chaque caractère est formé de sept segments, et ceux qui ne sont pas allumés restent visibles en léger fond, comme les segments éteints d'un écran à cristaux liquides. Ils sont dessinés et non tapés : ils restent donc nets à toutes les tailles et n'ont besoin d'aucune police chargée. Couleur du cadran est celle du panneau sur lequel on les lit et Couleur des nombres celle des segments eux-mêmes : un panneau sombre avec des segments clairs ne demande que deux couleurs.

La précision avec laquelle l'horloge lit le temps se règle en peignant, pas en activant des éléments. Il n'y a pas d'option afficher les secondes ou afficher les millisecondes : on retire un élément de l'horloge en effaçant la couleur dans laquelle il est lu, et on le fait revenir en lui en redonnant une. Efface la couleur des secondes, et l'aiguille des secondes disparaît du cadran, comme le champ qui suit les minutes disparaît de l'affichage ; les millièmes commencent sans couleur, une horloge n'en affiche donc aucun tant que tu n'en choisis pas une, et en choisir une ajoute sur le cadran une aiguille dédiée — qui fait un tour par seconde — et trois chiffres de plus après les secondes. Les nombres autour du cadran fonctionnent de la même façon, avec la couleur des nombres. Le cadran ne porte aucune graduation pour les millièmes : cette aiguille se lit sur le même anneau que celle des secondes.

L'aiguille des secondes balaie au lieu d'avancer par à-coups : elle tient compte des millièmes où se trouve l'horloge, si bien qu'une lecture de 15 s 500 ms la place à mi-chemin après la quinzième graduation, au lieu de la laisser attendre la seconde entière suivante pour sauter. Une horloge qui ne lit pas de millisecondes n'a rien à reporter : son aiguille des secondes avance donc graduation par graduation, exactement comme avant.

L'horloge entière peut aussi lire le temps propre du modèle. Utiliser la variable indépendante, l'interrupteur placé au-dessus des termes dans le menu des variables, confie toute l'horloge à la variable indépendante — quel que soit le nom que le modèle lui a donné — lue comme un nombre de secondes, d'où sont tirées les quatre parties. Une simulation qui atteint 3725.5 indique 1:02:05.500 sans que le modèle ait jamais parlé d'heures. Les quatre lignes restent en place, avec leurs sélecteurs vidés et grisés : les termes qu'elles désignaient restent dans l'objet, en attendant que l'interrupteur soit désactivé, mais plus rien ne les lit — la touche de la barre d'outils indique donc l'horloge propre du modèle dans chaque emplacement ; et la couleur de chaque partie se choisit toujours sur sa ligne, car une horloge que le modèle fait avancer a des aiguilles à peindre comme n'importe quelle autre. Et puisque c'est le modèle qui la fait avancer, la seule touche qui vaille la peine est celle des tours — lecture et arrêt disparaissent, et les tours se vident avec la corbeille à la place.

Chaque ligne porte la couleur de la partie qu'elle lit. La pastille au bout de la ligne des heures est l'aiguille des heures sur le cadran et le premier champ des chiffres sur le panneau, et il en va de même pour les lignes des minutes, des secondes et des millisecondes — la couleur se choisit donc à côté du terme qu'elle peint plutôt que dans une liste ailleurs, et la lecture et sa couleur sont nommées ensemble. Au départ, la couleur est sombre pour les heures et les minutes et chaude pour les secondes ; les millisecondes commencent sans couleur, ce qui limite une nouvelle horloge à trois aiguilles. Nombres reste dans le menu des couleurs, puisque c'est ce qu'il reste : les nombres autour du cadran, et les deux-points et le point entre les champs de l'affichage numérique.

L'horloge peut tourner toute seule. Active Boutons dans le menu des paramètres et trois touches apparaissent dans une bande à part, sous le cadran ou le panneau, qui leur fait de la place : lecture/pause lance le décompte en temps réel depuis la valeur affichée et l'arrête là quand on appuie de nouveau — une seule touche, qui affiche le symbole de ce que ferait le prochain appui — ; tour relève la lecture telle qu'elle est et la garde ; et arrêt termine le chronométrage, remet la lecture à zéro et oublie les tours. Les touches portent les mêmes symboles que le reste du tableau, tirés du même jeu d'icônes plutôt que dessinés pour leur ressembler. Une horloge en marche dessine sa première touche en négatif, symbole et fond inversés, pour le signaler.

Les tours relevés peuvent être listés sous les touches. Active Afficher les tours et une section dédiée s'ouvre sous la bande, séparée d'elle par un trait : une ligne par appui sur la touche des tours, la plus récente en haut, chacune avec la lecture du moment et le nombre de secondes correspondant. La liste est la mémoire propre de l'objet : le fichier la conserve, l'annulation la restaure et rouvrir le modèle retrouve les tours — contrairement au chronométrage lui-même, dont une horloge enregistrée ne se souvient jamais. La touche des tours y écrit et la touche d'arrêt la vide.

Ce qu'elle compte va là où pointent les quatre lignes : chaque partie de la lecture est écrite dans le terme que désigne la ligne, si bien que hour, minute, second et millisecond évoluent dans le modèle, et tout ce qui les lit évolue avec eux. Une ligne qui contient un simple nombre au lieu d'un terme est écrite elle-même : une horloge tout juste sortie de la palette fonctionne donc sans être associée à rien. Une ligne qui désigne un terme calculé par le modèle ne peut pas être écrite, et une horloge dont toutes les lignes sont dans ce cas le signale avec le curseur d'une poignée verrouillée. Elle compte avec sa propre horloge et non celle du modèle : elle continue donc de compter que la lecture soit en cours ou à l'arrêt, et tout le chronométrage — de lecture à arrêt — s'annule en une seule fois.

La boussole lit deux variables. Cap fait tourner l'aiguille dans le sens des aiguilles d'une montre à partir du nord, et Rose fait tourner la rose — ses graduations, ses lettres cardinales et ses indications en degrés — dans le sens des aiguilles d'une montre sous l'aiguille. Laisser la rose à 0 donne une boussole de relèvement, avec le nord fixe en haut. L'associer à un terme égal à l'opposé du cap, en laissant le cap à 0, donne un compas d'aviation à rose mobile : l'aiguille reste pointée vers le haut comme une ligne de foi pendant que la rose tourne, si bien que le cap actuel est toujours la valeur sous l'aiguille.

La boussole marque aussi des Pointeurs : autant de directions que tu en désignes, listées dans son menu des variables comme un graphique liste les termes qu'il trace. Chaque ligne choisit avec ses deux boutons si elle est un angle en degrés ou une orientation, c'est-à-dire une paire de termes lue comme un vecteur — de combien vers l'est et de combien vers le nord — et pointe là où pointe ce vecteur. Un angle se mesure depuis N et croît dans le sens des aiguilles d'une montre : chaque repère se place donc sur la graduation de sa direction et tourne avec la rose comme cette graduation. Chaque ligne reçoit une couleur. Fais glisser une ligne par sa poignée pour la réordonner, et appuie sur la corbeille pour la retirer.

On fait glisser une aiguille pour réécrire sa valeur dans le modèle, comme l'aiguille d'une jauge. Rien ne l'active : c'est le terme désigné par la ligne qui en décide, exactement comme pour tout autre dessin d'une valeur que tu peux modifier — une aiguille qui désigne un terme calculé par le modèle reste en lecture seule, comme toutes les aiguilles d'une horloge que le modèle fait avancer.

Le volant est piloté par une seule ligne, Tourné par, et une touche dédiée de la barre d'outils indique comment cette ligne est lue. La touche affiche le choix en cours et ouvre les deux possibilités : un angle et une orientation . Lue comme un angle, la ligne propose un seul sélecteur — un terme ou un nombre lu en degrés, dans le sens inverse des aiguilles d'une montre, comme partout ailleurs dans le modèle : tourner le volant à gauche augmente la valeur et le tourner à droite la diminue, si bien qu'un volant tourné à droite indique une valeur négative — et la barre d'outils affiche cette seule valeur. Lue comme une orientation, un second sélecteur apparaît à côté du premier et la barre d'outils affiche les deux : la paire est lue comme la direction qu'elle indique, de combien vers la droite et de combien vers le haut. Une direction est un cap et non un angle, et tourne dans l'autre sens — dans le sens des aiguilles d'une montre à partir de la verticale, comme sur une boussole, pour qu'un repère se place sur la graduation de sa direction. Une orientation permet au volant de suivre une vitesse ou une force sans que le modèle ait à calculer l'angle d'abord, et faire glisser le volant réécrit la paire : tu peux ainsi orienter cette vitesse à la main. La couleur au bout de la ligne est celle du repère en haut du volant — la partie qui montre la direction dans laquelle il est tourné — : elle se choisit donc là où la direction est désignée, et non dans un menu de couleurs à part.

La boussole marque ses pointeurs avec les deux mêmes choix, sous les deux mêmes icônes : une direction se désigne donc de la même façon partout où on en demande une. Une boussole affiche autant de pointeurs que tu en demandes, chacune de ses lignes porte donc ce choix ; le volant n'est tourné que par une seule chose, son choix se fait donc une fois, dans la barre d'outils, et sa ligne ne porte que les termes et la couleur.

Véhicule, dans le menu des paramètres, choisit le véhicule dessiné avec trois boutons : une voiture, une moto ou un bateau. Le volant suit ce choix — volant à trois branches pour la voiture, guidon pour la moto ou barre à huit poignées pour le bateau, tous trois avec un repère en haut pour voir d'un coup d'œil de combien le volant a été tourné — et les pédales aussi : les pédales de frein et d'accélérateur d'une voiture suspendues à leur boîtier, la paire de leviers au guidon d'une moto, ou la paire de manettes d'habitacle d'un bateau.

Le volant, les pédales et, parmi elles, le frein sont les parties d'un même objet, et chacune peut être retirée. Volant et Pédales, dans le menu des paramètres, activent ou désactivent les deux moitiés : le volant seul est l'objet tel qu'il a toujours été, les pédales seules sont la paire de commandes dans tout le cadre, et avec les deux le cadre est partagé — le volant dans la moitié du haut et les pédales en dessous, comme dans le véhicule. Frein est la troisième, et apparaît dès que les pédales sont activées : désactive-le et la pédale de frein, le levier de frein de la moto et la manette de marche arrière du bateau ne sont plus dessinés, et l'accélérateur dispose de toute la zone des pédales — le véhicule qu'un modèle conduit avec une seule commande. Une partie désactivée emporte ses propres lignes, pour que les menus ne désignent jamais un terme que rien ne lit : le frein emporte Freiné par, Maximum du frein et sa couleur.

Dans les deux cas, on peut faire glisser le volant : il pointe là où est le pointeur, pour que tu puisses diriger le modèle à la main, et l'angle se mesure à partir de la verticale — zéro est à midi, et un tour complet du volant couvre tout l'intervalle. Tourné par un angle, c'est cet angle qui est réécrit, lu par le chemin le plus court depuis le haut : à gauche il est positif, à droite négatif. Orienté par une orientation, c'est la paire qui est réécrite — elle garde sa norme et prend la direction dans laquelle le volant a été tourné, c'est-à-dire v = √(vx² + vy²) reporté le long du nouvel angle. Une paire entièrement nulle n'a pas de norme à garder : elle est donc reportée avec une norme de un, pour que le glissement ait quelque chose à faire tourner.

Chaque pédale enfonce sa propre valeur, et zéro est la position de repos des deux. L'accélérateur est piloté par Accéléré par et le frein par Freiné par, et les deux lignes sont faites de la même façon : un terme ou un simple nombre, un œil qui l'affiche sur le dessin, et la couleur de la pédale au bout. Les deux s'enfoncent de la même manière : maintenir une pédale et glisser vers le haut fait passer son terme au-dessus de zéro, jusqu'à la limite propre à cette pédale — Maximum pour l'accélérateur, Maximum du frein pour le frein. Aucune ne dépasse sa position de repos — glisser dans le mauvais sens relâche la pédale et s'arrête à zéro — et un glissement sur toute la zone d'une pédale couvre tout son intervalle. Ce que chacune contient, c'est la force avec laquelle on appuie dessus, positive dans les deux cas, et l'effet du freinage sur le modèle est l'affaire du modèle : lis Freiné par comme la quantité à retirer, tout comme Accéléré par est la quantité à ajouter. Désigne le même terme sur les deux lignes et les deux pédales enfoncent une même valeur ; désigne-en deux et le frein est une valeur que le modèle lit séparément de l'accélérateur. Quel que soit le véhicule dessiné, le frein est à gauche et l'accélérateur à droite, et chacun s'enfonce dans sa propre moitié de la zone des pédales — ou, si le frein est désactivé, l'accélérateur s'enfonce n'importe où dans cette zone.

Chaque pédale se place selon son propre terme, chacune sur sa propre échelle. Ainsi, un modèle qui freine enfonce la pédale de frein, tire la manette du bateau en marche arrière et serre le levier de frein de la moto, un modèle qui accélère fait de même de l'autre côté, et les deux peuvent se produire en même temps. Chaque valeur s'affiche au-dessus de la pédale qui l'enfonce, dans la couleur au bout de la ligne de cette pédale — c'est pourquoi les deux couleurs se choisissent là, et non dans un menu de couleurs qui nommerait deux fois la même chose.

Lue comme une orientation, une pédale enfonce sa propre paire le long du cap vers lequel le volant est tourné. Les pédales se lisent comme le volant : choisis orientation et un second sélecteur apparaît sur chacune des trois lignes, si bien que Accéléré par et Freiné par désignent chacune une paire — de combien vers la droite et de combien vers le haut — à côté de la paire qui oriente le volant. Le volant dit dans quelle direction va la poussée et la pédale dit avec quelle force : maintenir l'accélérateur reporte sa paire le long du cap, jusqu'à Maximum, et maintenir le frein reporte la sienne dans l'autre sens sur le même cap, jusqu'à Maximum du frein — la paire du frein pointe donc vers l'arrière, d'où vient le véhicule, tandis que l'enfoncement de la pédale reste positif, comme lorsqu'elle est lue comme un angle. Un modèle qui tire une vitesse de ces deux paires accélère le long de sa route et ralentit à contresens, sans qu'aucune pédale ne touche à la paire qui dirige le volant.

L'enfoncement d'une pédale se relit le long de cette même route — vers l'avant pour l'accélérateur, vers l'arrière pour le frein — et non comme la simple norme de la paire. Une paire perpendiculaire à la route n'enfonce donc rien du tout : ce qu'une pédale affiche, c'est la poussée dans le sens où va le modèle. Un arrêt n'a pas de direction propre — une paire de zéros ne pointe nulle part — : l'objet garde donc le dernier cap suivi. Le volant reste tourné dans ce sens pendant que le modèle est à l'arrêt, et appuyer sur une pédale le relance sur cette même route au lieu de sauter vers le nord. Ce cap est mémorisé tant que le tableau est ouvert, mais n'est pas écrit dans le modèle, qui ne dit rien de la direction vers laquelle regardait un véhicule à l'arrêt.

Une paire revient comme un terme, le long du cap sur lequel elle a été enfoncée, jusqu'à revenir à l'arrêt — une accélération est une poussée, et une poussée sans pied sur la pédale n'est plus une poussée. Désactive le frein ici et le modèle ne peut être poussé que vers l'avant : plus rien ne le repousse.

Les manettes du bateau basculent en profondeur et non sur le côté, comme les vraies sous la main : la manette de marche avant s'éloigne de toi quand le terme de l'accélérateur augmente, et la manette de marche arrière revient vers toi quand celui du frein augmente ; une manette paraît donc plus haute et plus fine en s'éloignant, plus courte et plus épaisse en se rapprochant, sa tige avançant et reculant dans la fente où elle se trouve. Aucune manette ne traverse le dessin.

Une pédale se maintient enfoncée, comme une vraie. Appuie dessus et il ne se passe rien : la valeur reste exactement où elle était, aussi longtemps que tu maintiens l'appui. Fais glisser le pointeur vers le haut tout en maintenant et la pédale s'enfonce davantage ; redescends et elle se relâche. Un glissement sur toute la zone d'une pédale couvre tout son intervalle, du repos jusqu'à la limite : tu appuies donc aussi doucement ou aussi fort que tu le veux.

Lâche-la et ce que la pédale enfonce revient tout seul au repos — d'un pas tous les dixièmes de seconde, jusqu'à zéro, comme le ressort sous une vraie pédale la remonte quand le pied la quitte. Retour des pédales, dans le menu des paramètres, indique la taille de ce pas, pour les deux pédales et quelle que soit la façon dont elles sont lues ; règle-le à zéro et ce qui a été enfoncé reste là où tu l'as lâché. Appuyer de nouveau rattrape la pédale là où elle en est sur son chemin de retour. Le geste entier — appuyer, glisser et revenir au repos — s'annule en une seule fois. Une pédale dont la ligne désigne un terme calculé par le modèle ne peut pas bouger, et le signale avec le curseur d'une poignée verrouillée ; une pédale dont la ligne contient un simple nombre fait varier ce nombre, pour que tu puisses essayer l'objet avant de l'associer à quoi que ce soit.

L'œil au début de chaque ligne affiche ce que la pédale contient, sur l'objet lui-même : terme = valeur, au-dessus de la pédale qui l'enfonce et dans la couleur de la ligne, écrit comme toutes les autres étiquettes de termes du tableau. Désactive-les et le dessin ne porte plus aucun nombre.

Barre d'outils

Capture d'écran : barre d'outils d'un composant
MenuContenu
Nom et couleursLe nom de l'objet et toutes les couleurs avec lesquelles le composant dessine
Mode de lecture Seulement sur un composant qui lit une direction : la lit-il comme un angle ou comme une orientation. La touche affiche le choix en cours
Mode d'affichage Seulement sur un composant qui peut être dessiné de plusieurs façons : pour l'horloge, le choix entre un cadran et un affichage numérique. La touche affiche le choix en cours
VariablesLes entrées du composant reliées au modèle
Paramètres Options d'affichage, échelle et interaction

Couleurs

Un composant dessine avec la palette standard de Modellus — ses couleurs, épaisseurs de trait et tailles de texte viennent des jetons de design partagés, si bien que les composants s'intègrent naturellement au tableau. Chaque couleur peut tout de même être modifiée individuellement dans le menu nom et couleurs.

Demander un objet à l'assistant

L'assistant Modellus construit les composants avec les mêmes blocs de construction. Il ne peut utiliser que des blocs approuvés, doit associer les valeurs à des variables qui existent dans ton modèle et ne peut pas insérer un objet qui échoue à la validation : tout ce qu'il produit se comporte donc comme un objet que tu as placé toi-même et reste entièrement modifiable.

Construire ton propre objet

Un objet n'est pas du code de dessin : c'est un document JSON qui désigne des blocs approuvés, et ce même document est ce que l'éditeur embarque, ce que le Catalogue publie et ce que l'assistant invente. Tout ce qui figure sur cette page peut être construit de cette façon.