Formules
Voici les fonctions qui peuvent être employées dans les formules, en particulier pour les valeurs intermédiaires :
sin, cos, tan
Les fonctions trigonométriques courantes : Sinus, Cosinus et Tangente. L’angle doit être indiqué en degrés (cercle = 360°).
asin, acos, atan
Les fonctions trigonométriques courantes : Arc Sinus, Arc Cosinus et Arc Tangente pour calculer la mesure d’un angle orienté en degrés (cercle = 360°).
round
Arrondi. Le résultat est arrondi. round(2.4) donne 2.0, round(2.5) donne 3.0. Si VAB doit toujours être arrondi au-dessus, la formule à utiliser est : round(VAB+0.5). Cette fonction est importante pour une répartition.
abs
Valeur absolue, Valeur sans signe (sans le signe moins -). abs(25) donne 25, abs(-25) donne également 25. Cette fonction est importante pour calculer une différence (distance) entre deux valeurs dont l’une est plus grande mais sans savoir laquelle.
Éditeur de formules
(14.01) Dans l’éditeur de formules, la liste des variables utilisées est affichée dans une zone à gauche de la fenêtre. Le commentaire est également affiché derrière le nom de la variable. La sélection de l’une d’entre elles génère l’affichage de l’image d’aide associée que son emplacement dans l’arborescence ce qui rend la compréhension de la formule plus simple.
(20.01) Editeur DI-COB – Affichage des valeurs actuelles dans l’éditeur de formules Si une formule est ouverte dans l'éditeur de formules, les valeurs actuelles des variables sont également affichées dans la liste des variables après les textes. En haut de la boîte de dialogue, vous pouvez voir le résultat de la formule entière. Ces affichages sont très utiles pour vérifier les formules ; il est ainsi plus facile d’identifier si un résultat est dû à la formule actuelle ou s'il y a une valeur inattendue pour une variable. Les valeurs ne peuvent être affichées que dans l'éditeur DI-COB car c’est le seul module depuis lequel les variables système possèdent une valeur.
Toutes les variables dans l’éditeur de formules
(15.01) Toutes les formules peuvent être munies de conditions. Les valeurs chiffrées mais aussi les autres types de valeurs peuvent désormais être utilisées dans les conditions (Par exemple, les textes). C’est pourquoi toutes les variables sont maintenant visibles depuis l’éditeur de formules et pas seulement les variables avec un format chiffré.
Formules conditionnelles, conditions
Les conditions peuvent être traitées dans les formules. Ainsi, il est possible de créer une formule plus flexible qui réagira à différentes situations. Par ex., le nombre d’EAI peut être réduit considérablement en utilisant une formule conditionnelle.
Une telle formule se compose de trois parties qui sont séparées par un point-virgule :
(condition);(Formule si condition remplie);(Formule si condition non remplie)
(14.03) Les parenthèses permettent de couvrir plus de deux hypothèses.
Exemples:
(condition 1);((condition 2);(2 remplie);(2 non remplie));(1 non remplie)
(---------------1 remplie-----------------)
(condition 1);(1 remplie);((condition 2);(2 remplie);(2 non remplie))
(---------------1 non remplie-------------)
L’imbrication de conditions peut être poursuivie à l’intérieure des conditions "remplie" et "non remplie".
Ainsi, un niveau conditionnel inférieur peut être introduit. Exemple :
(con. 1);(1 remplie.);((con. 2);(2 remplie.);((con. 3);(3 remplie.);(3 non remplie.)))
(---------1 non remplie----------------------------------------)
(---------2 non remplie----------------)
Comparaisons conditionnelles
=
identique. Les valeurs situées de part et d’autre du signe = doivent être identiques. Exemple : la condition VAB = 4 est remplie lorsque VAB est égale à 4.
!=
différent. Les valeurs situées de part et d’autre du signe != doivent être différentes. Exemple: la condition VAB!=4 est remplie lorsque VAB est différent de 4.
>
plus grand. La valeur devant le signe > doit être plus grande que la valeur située derrière. Exemple la condition VAB>4 est remplie lorsque VAB est supérieure à 4.
>=
plus grand ou égal. La valeur devant le signe > doit être plus grande ou identique à la valeur située derrière le signe. Exemple la condition VAB>=4 est remplie lorsque VAB est supérieure ou égale à 4.
<
plus petit. La valeur devant le signe > doit être plus petite que la valeur située derrière. Exemple la condition VAB<4 est remplie lorsque VAB est inférieure à 4.
<=
plus petit ou égal. La valeur devant le signe > doit être plus petite ou identique à la valeur située derrière le signe. Exemple la condition VAB<=4 est remplie lorsque VAB est inférieure ou égale à 4.
&
et. Par ce signe, plusieurs conditions peuvent être liées. Exemple : Si la variable VAB doit être comprise entre 4 et 8, la condition sera : (VAB>4)&(VAB<8)
Conditions liées, liens logiques
Plusieurs conditions peuvent être logiquement liées :
&
logique du "et" : Toutes les conditions utilisant la logique du "et" doivent être remplies. Ainsi, si VAB doit être supérieur à 4 est plus petit que 8, l’expression suivante sera formulée dans les conditions : (VAB>4)&(VAB<8)
|
logique du "ou" : (V20.01) Au moins une des conditions doit être remplie :
Comme défini dans le language C++) pour définir ou, le caractère "|" est utilisé. Il est obtenu sur un clavier Azerty avec la combinaison de touches "Alt Gr" "6" (la touche 6 placée au-dessus des touches T et Y).
Nous utilisons ici la logique habituelle du "ou" : si au moins une des deux conditions partielles est remplie, l'ensemble ou l'expression est rempli. Les deux conditions partielles peuvent également être remplies. (Avec l'exclusivité - ou une seule des deux peut être remplie).
Les liens logiques "et" et "ou" peuvent également être utilisés en combinaison. Voici des exemples de formules conditionnelles :
Exemple : ((V_abc=a)|(V_abc=b));(0.04);(0.16)
Si la variable V_abc a la valeur a ou b, la valeur est de 0.04. Dans tous les autres cas, la valeur est de 0.16.
Exemple : ((V_aa=a)|(V_bb=b));(0.04);(0.16)
Si la variable V_aa a la valeur a ou V_bb a la valeur b, alors la valeur est 0.04. La condition générale est également remplie si les deux parties s'appliquent (V_aa=a et V_bb=b). Dans tous les autres cas, la valeur est de 0.16.
Exemple de simulation exclusive avec "ou" : (((V_a1=0)&(V_a2!=0))|((V_a1!=0)&(V_a2=0)));(0.04);(0.16)
Si une seule des variables V_a1 et V_a2 peut avoir la valeur 0, alors la valeur est 0.04. Dans tous les autres cas, la valeur est 0.16.
Possibilités de conditions imbriquées
Dans les formules conditionnelles, les conditions peuvent être très imbriquées, par ex. :
(((V_a1=0)&(V_a2!=0))|((V_a1!=0)&(V_a2=0)));(0.04);(0.16)
Dans les formules conditionnelles, les conditions peuvent également contenir des formules, par ex. :
(V_a1=(1+2+V_a2));(0.04);(0.16)
Dans les formules conditionnelles, les parties vrai/faux (après le premier ou le deuxième point-virgule) peuvent également contenir des formules conditionnelles complètes et donc être imbriquées davantage, par ex. :
(V_a1=0);((V_a2=0);(0.04);(0.16));(0.16)
Toutefois, vous ne pouvez pas utiliser une formule conditionnelle complète dans le cadre d'une condition.
Par conséquent, ce qui suit n'est pas autorisé :
(0.3<((0.4<0.5);(0.6);(0.1));(0.04);(0.10)
Comme mentionné ci-dessus, les conditions en soi peuvent être imbriquées arbitrairement et les différentes parties (à gauche et à droite du caractère de comparaison) peuvent également contenir des formules. Mais la condition ne doit pas contenir une formule conditionnelle complète. Il ne doit donc y avoir aucun point-virgule.
Logiquement, ces cas peuvent être couverts en changeant la formule ou être divisés en plusieurs valeurs intermédiaires pour une meilleure vue d'ensemble.
Tolérance pour la comparaison de nombres
Lorsque l’on souhaite comparer des valeurs qui ont été calculées, il faut garder à l’esprit que les nombres sont conservés avec plusieurs décimales par l’ordinateur. Aussi, la valeur enregistrée par l’ordinateur peut être 0.99999999999 ou 1.00000000000001 au lieu de 1. Cela explique qu’une comparaison avec la valeur 1.0 (VA=1.0) peut échouer même si elle semble remplie à première vue.
Pour éviter cela, une tolérance peut être définie dans la condition. Elle permet de vérifier la différence par rapport à la valeur souhaitée. Pour que la condition VA=1.0 soit remplie avec une tolérance de 0.01, le résultat doit être compris entre -0.01 et +0.01. La condition doit alors être définie ainsi :
((0.01>(VA - 1.0))&(-0.01<(VA - 1.0)))Pour éliminer le signe, vous pouvez également utiliser la fonction abs sur la différence :(0.01>(abs(VA - 1.0)))Dans les autres cas, un nombre sûr suffit pour la comparaison. C’est souvent le cas lorsque l’on calcule un nombre d’éléments pour une répartition. Si la condition définit que le nombre (VANZ) est supérieur à 3, nous ne comparons pas (VANZ>3) mais (VANZ>2.5). Peu importe que le résultat pour VANZ soit 2.999999 ou 3.0000001.
Textes dans les formules conditionnelles
(21.01) Ce chapitre de la version 18.01 a été complètement supprimé.
Comparaison des textes
Les textes peuvent également être utilisés pour la comparaison. Ces variables peuvent être utilisées avec toutes les unités qui n’ont pas une valeur numérique : txt, Idnr., Enum, A-F, ...
La valeur de comparaison est écrite directement en tant que texte sans aucun caractère supplémentaire. Par exemple, si la variable "V_Textevariable" doit être identique à "Test", la condition sera formulée ainsi: (V_Textevariable=Test)
Les textes sont classés par ordre alphabétique et peuvent par conséquent être comparés avec "supérieur" et "inférieur". Le texte le plus petit correspond à celui dont l’ordre alphabétique arrive en premier: "Aluminium" est ainsi "inférieur" à "Plomb".
Si l’on souhaite qu’une valeur de variable ne doit pas être vide, nous devons indiquer que la valeur est "supérieure" à " " (un espace): (V_Textevariable> ). Il n’existe pas de formule pour identifier si le texte n’est pas renseigné (vide), il faut donc comparer la valeur de la variable avec un texte court. La classification des caractères positionne l’espace " " en première position dans l’ordre alphabétique. L’utilisation de l’espace est utile lorsque l’on souhaite utiliser les textes avec un "#" (Référence produit des éléments d’aide) car le caractère "#" est situé avant les nombres et lettres de l’alphabet.
Texte dans les conditions : Spécifique aux fichiers *.oa1 (IFC Premium)
Dans les conditions (= Condition) des fichiers *.oa1, les comparaisons sont effectuées avec des variables système. Les informations suivantes doivent être respectées :
Si la variable système est un nombre, celui est écrit directement ; Exemple : Condition=(OH=1.23) Toutefois, s’il s’agit d’un texte précédé d’un nombre, ce dernier devra être écrit (et seulement dans ce cas-là) entre guillemets. Exemple : Condition=(IFCNAME="1.23")
Liste et joker (méta caractère) dans les conditions
(15.01) Jusqu’à présent, une condition pouvait être comparée uniquement à une valeur. De nouvelles dispositions ajoutées pour les conditions permettent désormais d’interroger les étages (SWAKT) ou les modèles de conception (AUSF).
Listes : Si une condition est valable uniquement pour le RC, elle s’énonce (SWAKT=GF). Si elle est valable pour les étages RC, Et et Co, elle s’énonce (SWAKT={GF~UF~AG}). Les données d’une liste doivent être renseignées entre deux accolades {} et délimités par le caractère ~.
Joker : Une condition s’applique uniquement sur le modèle de conception Mur extérieur_V, lorsque l’on écrit (AUSF=Mur extérieur_V). Elle s’applique à tous les modèles de conception commençant par Mu avec la condition (AUSF={Mu*}). L’expression est renseignée entre deux accolades et le joker par un astérisque *. Les commandes suivantes sont prises en compte :
ABC* Commence par ABC, peu importe la fin
*ABC Peu importe le début, se termine par ABC
*ABC* Comporte ABC, peu importe l’endroit où se situe ces caractères
Listes et joker: Ces deux possibilités peuvent également être combinées. Pour appliquer une condition à toutes les conceptions, on devra utiliser les lettres AW (mur extérieur) et IW (mur intérieur). Ce qui se traduira par la formule suivante :(AUSF={AW*~IW*}).
Répartition dans les formules
Seulement dans les E.C.P. : Une répartition peut être formulée pour définir les coordonnées de points des composants, des bibliothèques de composant, des bibliothèques d’élément de plan (V20.01) et pour les points de référence des E.A.I. :
Chaque coordonnée reçoit sa valeur sous la forme
(Départ~Saut~Chiffre). Le chiffre 1 signifie qu’aucun saut n’est effectué, ainsi l’objet sera réalisé uniquement au point de départ.Les répartitions ne peuvent être formulées qu’en direction de X, Y et Z :
X(1.0~0.1~5)Y(0.0~0.0~1)Z(0.0~0.0~1) Série suivant X avec 5 éléments, Départ de 1.0 avec incrémentation tous les 0.1
X(1.0~0.1~5)Y(0.0~0.2~4)Z(0.0~0.0~1) Série suivant X avec 5 éléments, Départ de 1.0 avec incrémentation tous les 0.1, Cette série est reproduite 4 fois en direction de Y.
Avec cette fonction de répartition, il est donc également possible de créer des grilles 2D ou 3D d’éléments de dessin, de composants, etc...
Messages d’erreur, message lors de formules incorrectes
(V20.01) Avec l'introduction du nouveau système de formule, les messages d'erreur ont également été révisés :
L'affichage des erreurs de formule a été étendu :
Les formules sont vérifiées de manière optionnelle lors de l'ouverture des fichiers (COB, ECP, configuration). Si vous le souhaitez, la case correspondante peut être cochée dans la fonction 5-02-1 Sauvegarde et historique. Le bâtiment doit être redémarré pour que la prise en compte de cette option soit disponible.
Dans la mesure du possible, le type d'erreur de formule et la formule affectée sont affichés. Ce message peut être copié dans le presse-papiers et utilisé ensuite dans la fonction de recherche des éditeurs.
Le bouton dans le message peut être utilisé pour arrêter l'affichage d'autres erreurs. Ceci est valable jusqu'au redémarrage du bâtiment (ou de l'éditeur DI-COB). Toutefois, le message d'erreur d'une division par 0 ne peut pas être supprimé.
Mis à jour
Ce contenu vous a-t-il été utile ?
