Table of Contents
Variables et formules
Plusieurs champs de QElectroTech acceptent une formule — du texte contenant
des variables % que QET remplace au moment du dessin. %f-%l%c sur une
étiquette d'élément devient 3-B7. %id/%total dans le champ folio devient
3/12.
Le piège est qu'il n'existe pas un seul langage de variables. Cinq endroits différents acceptent des formules, chacun résout un jeu différent, et une variable qui fonctionne à un endroit est silencieusement laissée telle quelle ailleurs. C'est l'objet de cette page.
Sources : sources/autoNum/assignvariables.cpp (AssignVariables,
replaceVariable), sources/bordertitleblock.cpp,
sources/titleblocktemplate.cpp (interpreteVariables).
1. Où les formules sont acceptées
| Endroit | Réglé dans | Résout |
|---|---|---|
| Étiquette d'élément | informations de l'élément, ou Propriétés du projet → numérotation des éléments | position, folio, séquences, %{…} |
| Texte de conducteur | propriétés du conducteur → formule, ou numérotation des conducteurs | position, folio, séquences, propriétés du fil |
| Champ folio | propriétés du folio → Folio | uniquement %autonum, %id, %total |
| Cellules de cartouche | le modèle .titleblock |
ce que contient le contexte du cartouche |
| Étiquettes de renvoi | Propriétés du projet → renvois | comme les étiquettes d'élément |
2. Variables de folio et de position
Elles se résolvent sur les étiquettes d'éléments, les textes de conducteurs et les étiquettes de renvoi.
| Variable | Devient |
|---|---|
%f |
l'indice du folio, à partir de 1 |
%id |
le même indice de folio — %f et %id sont ici identiques |
%F |
le champ folio, c'est-à-dire ce que rend le réglage Folio du folio |
%total |
nombre total de folios du projet |
%M |
installation (plant) du folio |
%LM |
localisation / machine (locmach) du folio |
%l |
la lettre de ligne de la position de l'élément dans le cadre |
%c |
le numéro de colonne de la position de l'élément |
%prefix |
le préfixe de l'élément |
%f et %F ne sont pas interchangeables
%f est l'indice du folio — un simple nombre. %F insère le champ folio, qui
est lui-même une formule. La valeur par défaut de ce champ est %id/%total ;
donc sur le folio 3 sur 12 :
%f → 3
%F → 3/12
Les deux se lisent naturellement dans une étiquette, ce qui explique que la
différence passe inaperçue — jusqu'au jour où quelqu'un modifie le champ folio
et où toutes les étiquettes changent de forme avec lui. Si vous voulez le
numéro, utilisez %f.
%c compte à partir de 0 ou de 1 selon une préférence
Le numéro de colonne sort diminué de un lorsque la préférence les colonnes commencent à 0 est active. Le même projet ouvert par deux personnes aux réglages différents produit des étiquettes différentes. Si les étiquettes doivent être stables au sein d'une équipe, accordez-vous d'abord sur ce réglage.
3. Variables de conducteur
Uniquement dans les formules de conducteurs :
| Variable | Devient |
|---|---|
%wf |
fonction du conducteur |
%wv |
tension / protocole |
%wc |
couleur du fil |
%ws |
section du fil |
4. Variables de séquence
La numérotation automatique fournit des séquences numérotées. Chacune existe en
version projet et en version folio, et prend un indice final — _1 est la
première séquence définie dans ce schéma de numérotation, _2 la deuxième, etc.
| Famille | Par projet | Par folio |
|---|---|---|
| Unité | %sequ_1 |
%sequf_1 |
| Dizaine | %seqt_1 |
%seqtf_1 |
| Centaine | %seqh_1 |
%seqhf_1 |
| Alphabétique | %seqa_1 |
— |
| Bouclage | %seqw_1 |
— |
Une variable de séquence dont l'indice n'existe pas dans le schéma courant est
laissée telle quelle dans le texte. Voir un %sequ_2 littéral sur un folio
signifie que le schéma ne définit qu'une séquence, non que la numérotation a
échoué.
5. Variables d'information d'élément — %{…}
Les variables entre accolades puisent dans les champs d'information de l'élément :
%{label} %{manufacturer_reference}
Les plus courantes : %{label}, %{plant}, %{location}, %{function},
%{comment}, %{description}, %{designation}, %{manufacturer},
%{manufacturer_reference}, %{machine_manufacturer_reference},
%{supplier}, %{quantity}, %{unity}.
Également disponibles : %{auxiliary1} … %{auxiliary4} et leurs variantes
description_, designation_, manufacturer_, manufacturer_reference_,
supplier_, quantity_ et unity_ ; les champs API %{plc_type},
%{plc_address}, %{plc_function}, %{plc_comment}, %{plc_crossref},
%{plc_t1} … %{plc_t4}, %{plc_tc} ; les champs de conducteur
%{conductor_color}, %{conductor_section}, %{tension_protocol} ; et
%{void}, qui se résout en rien.
La liste est codée en dur, et quatre champs y manquent
La substitution %{…} est une liste fixe dans
AssignVariables::replaceVariable(), non une recherche parmi tous les champs
d'information. QETInformation::elementInfoKeys() recense 61 clés
d'information ; 59 variables entre accolades sont reconnues, et les deux
ensembles ne se recouvrent pas entièrement.
Deux clés sont absentes à dessein : formula (c'est elle, la formule) et
xref. Neuf autres n'ont aucune variable entre accolades :
%{machine_manufacturer_reference_auxiliary1}
%{machine_manufacturer_reference_auxiliary2}
%{machine_manufacturer_reference_auxiliary3}
%{machine_manufacturer_reference_auxiliary4}
%{category} %{model} %{notes} %{voltage_rating} %{current_rating}
Vous pouvez renseigner n'importe lequel de ces champs sur un élément, et le
%{machine_manufacturer_reference} simple se résout normalement — mais aucune
des neuf ne figure dans la liste de substitution et elles restent donc sur le
dessin sous forme de texte littéral. Utilisez un autre champ en attendant la
correction.
Les cinq dernières sont arrivées avec les champs de métadonnées « smart device »
et n'ont jamais été ajoutées à replaceVariable() ; les quatre variantes
auxiliaires manquent depuis plus longtemps.
Mesuré sur master 3cbb93075. Les révisions précédentes de cette page
indiquaient 57 clés, trois absentes à dessein et quatre inexpliquées : c'était
exact au moment de la rédaction, et cette dérive est la raison pour laquelle il
faut compter depuis le code source.
6. Variables du champ folio
Le champ folio est l'exception de cette page : il est résolu par une autre fonction et ne comprend que trois variables.
| Variable | Devient |
|---|---|
%id |
l'indice de ce folio |
%total |
le nombre de folios |
%autonum |
la valeur de numérotation automatique du folio |
La valeur par défaut est %id/%total. %f, %l, %c, %M, %LM et
%{…} n'y font rien — ils restent dans le champ tels quels et seront imprimés
sur chaque folio exactement comme saisis. C'est la déception la plus fréquente
au sujet des variables dans QET.
7. Variables de cartouche
Les cellules des modèles de cartouche utilisent leur propre mécanisme : toute
clé du contexte du cartouche est substituée, sous les deux formes — %{author}
et %author fonctionnent l'un comme l'autre.
Les clés standard sont les champs d'information du folio : title, author,
filename, folio, plant, locmach, indexrev, date, display_folio.
Les propriétés du projet et tout champ personnalisé ajouté au folio sont
également substitués.
Deux détails utiles :
- Les clés sont substituées de la plus longue à la plus courte,
délibérément. Sans cela, une clé nommée
plantmangerait le début de%plantcodeen laissantcodeorphelin. - Seule la forme entre accolades
%{nom}peut être découverte : la liste des variables utilisées, dans l'éditeur de modèles, est construite en cherchant%{…}. Un%nomnu se résout quand même, mais rien ne peut l'énumérer ; préférez donc la forme entre accolades dans les modèles.
8. Une seule passe, dans un ordre fixe
Les formules ne sont pas évaluées récursivement. QET enchaîne de simples remplacements de texte, dans un ordre fixe :
%F,%f,%id,%total,%M,%LM%c,%l,%prefix(éléments) ou%wf,%wv,%wc,%ws(conducteurs)- les champs du cartouche, puis les propriétés du projet, sous les deux formes
%{nom}et%nom - les séquences
Deux conséquences :
%Ffonctionne parce qu'il est développé en premier. Il insère le champ folio, qui peut lui-même contenir%idet%total— substitués dans la même étape, juste après. Tout ce que ce champ contient et que l'étape 1 ignore survivra jusqu'au dessin sous forme de texte littéral.- Une variable inconnue n'est jamais une erreur. Elle n'est simplement pas
remplacée. Une étiquette affichant
%seqh_3ou%{machine_manufacturer_reference_auxiliary1}est la façon dont QET vous dit que cette variable n'est pas résoluble ici.
9. Aide-mémoire
| Je veux… | Utiliser | Où cela marche |
|---|---|---|
| le numéro de folio | %f |
étiquettes d'élément / conducteur / renvoi |
| le numéro de folio dans le champ folio | %id |
champ folio uniquement |
numéro de folio et total, p. ex. 3/12 |
%F |
étiquettes d'élément / conducteur / renvoi |
| la position dans le cadre | %l%c |
étiquettes d'élément |
| un numéro incrémenté | %sequ_1 |
étiquettes d'élément / conducteur |
| la référence d'un élément sur le dessin | %{manufacturer_reference} |
textes dynamiques, étiquettes |
| l'installation sur un cartouche | %{plant} ou %plant |
modèles de cartouche |
Voir aussi : Lier des éléments · La base de données du projet · Project XML
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
