Gestions des Formules
Les formules manuelles permettent de référencer un calcul ou une recherche dans le but d’être utilisé et réutilisé dans divers outils des moteurs GC et DT.
Les formules manuelles se décomposent en deux grandes classes identifiées par la notion de cadre d’utilisation :
Recherche d’une valeur liée à une matrice de valeur ou de VAS ou SAS (uniquement les champs caractéristiques de la fiche article) ou bien encore des ITS, ITD, ITN ainsi que des informations sur les modèles de la librairie dessin.
Calcul : la formule est de type calcul et renvoie un calcul numérique, alphanumérique ou booléen.
Fonction : Formules mathématiques de base (ARRONDI, …)
Métier : Formules dédiées aux calculs spécifiques Métier
Le résultat d’une formule peut être de 3 types :
Caractère
Numérique
Logique
Formules de calcul
Les formules de type calcul se définissent directement sous forme d’une expression du L4G Progress, dont les variables de calcul sont liées au domaine d’exécution de la formule. Si la formule est exécutée dans le cadre d’un calcul de configuration ( Scénario ou nomenclature : Statut Hors Config a No)
VBA qui doivent être identifiées de la façon suivante : VBA.La_référence_de_la_VBA
VBP qui doivent être identifiées de la façon suivante : VBP.La_référence_de_la_VBP
Formules qui doivent être identifiées de la façon suivante :
FOR.La_Reference_de_la_Formule.
Constante globale : CGL. La_référence_de_la_constante.
![image-20240529-125512.png](../__attachments/89589589/image-20240529-125512.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Si la formule est cochée Hors Config à Oui ( disponible depuis la version PCD1.3.30 ) , cela signifie que la formule peut exécutée dans une domaine autre que la génération de nomenclature et déroulement de scénario, par exemple lors d’un calcul de prix d’article sur mesure ( Requete APC) . Il est alors possible d’utiliser directement dans la formule de calcul des variables entités .Dans le cas d’une formule exécutée dans un arbre de condition lié au calcul du prix d’un article sur mesure, les variables entités interprétables par la formule sont les : SAS-VAS-VAR -SAF - VAF -SDL - VDL - SDE - VDE de l’article lié à la ligne d’appro en cours , SFL - VFL de la ligne d’OA en cours , SFE - VFE de l’OA en cours , SFF - VFF lié au fournisseur de l’OA en cours.
Les formules FONCTION
Les formules Fonctions permettent de gérer les diverses fonctions trigonométriques (COS, SIN, ARCCOS…) ainsi que la gestion de la fonction arrondi.
![](../__attachments/89589589/att_29_for_365461600.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Les formules CALCUL DIMENSIONNEL
Les Formules de Calcul Dimensionnel sont liées à la définition des objets du calcul dimensionnel. La Documentation CALCUL DIMENSIONNEL détaille les différents paramètres de ces formules.
Les formules de recherche
Les formules de recherches permettent de récupérer une donnée caractère ou numérique en précisant l’entité de recherche ainsi que la clé de recherche
Recherche sur Variable Standard Article : SAS
Seules les variables dont la référence commence par CARxxx ainsi que les variables GenFamArt, GenSFaArt, GenDesArt, GenDeLArt [1] , GenDeLArt [2] et GenDeLArt [3] peuvent être récupérées.
![](../__attachments/89589589/image-20230913-101931.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Variable Spécifique Article : VAS
![](../__attachments/89589589/image-20230913-102007.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Matrice de Valeurs
Voir paragraphe Récupération d’une valeur d’une matrice de valeurs
Recherche sur Informations Techniques Scénario : ITS
Ce type de formule permet d’effectuer des recherches de valeurs ou somme sur les IT scénario ITS du scénario en cours, contexte courant, contexte spécifique ou tous contextes.
![](../__attachments/89589589/image-20230913-102105.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Informations Techniques Dessin : ITD
Ce type de formule permet d’effectuer des recherches de valeurs ou somme sur les IT dessin ITD du scénario en cours, contexte courant, contexte spécifique ou tous contextes.
Recherche sur Informations Techniques Nomenclature : ITN
Voir paragraphe matrice MAJ de Type d’utilisation INoITNom
Recherche sur Requête REB
Ce type de formule permet d’exécuter une requête de type REB et de récupérer la valeur d’une VBP initialisée dans la requête.
![](../__attachments/89589589/image-20230913-102159.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Arbre de Condition
Les formules de recherche sur arbre de condition permettent d’exécuter un arbre de condition et de récupérer la référence d’une variable de type VBA, VBP ou VSD qui aura été initialisée durant l’exécution de l’arbre.
![](../__attachments/89589589/image-20230913-102230.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Modèle Librairie
Les formules de recherche sur Modèle Librairie permettent de récupérer des paramètres liés à un modèle de la librairie dessin.
Ce type de formule attend de trois à quatre paramètres :
La référence du modèle définie par une constante une VBA, VSD, VBP ou Formule
Le type d’élément recherché : Est-ce une information liée à Type d’élément (Nombre de Zones, de traverses, etc.) ou bien par rapport à une référence élément telle que Z1, V2, TH1 (position, Forme Géométrique)
Le type de recherche à effectuer : nombre des zones, listes des éléments verticaux… Voir liste ci-dessous
Filtre/Elem : nature des éléments que l’on souhaite récupérer (Dormant, Ouvrant, TravH, etc.)
Type Formule | Type Element ou Ref Element | Val Recherchée | Désignation |
Caractère | Ref Element | FormeElem | Forme Géométrique de l'élément |
Caractère | Ref Element | ListeElemB | Liste des Eléments en Bas / Element |
Caractère | Ref Element | ListeElemD | Liste des Eléments A Droite / Element |
Caractère | Ref Element | ListeElemG | Liste des Eléments A Gauche / Element |
Caractère | Ref Element | ListeElemH | Liste des Eléments en Haut / Element |
Caractère | Ref Element | ListeElem2NB | Liste des Eléments de 2eme Niveau en Bas / Element |
Caractère | Ref Element | ListeElem2ND | Liste des Eléments de 2eme Niveau à Droite / Element |
Caractère | Ref Element | ListeElem2NG | Liste des Eléments de 2eme Niveau à Gauche / Element |
Caractère | Ref Element | ListeElem2NH | Liste des Eléments de 2eme Niveau en Haut / Element |
Caractère | Vide | FormeMod | Forme Géométrique du Modele |
Caractère | Vide | ParDefMod | Liste des Paramètres du Modele |
Numérique | Ref Element | HautElem | Hauteur Element |
Numérique | Ref Element | LargElem | Largeur Element |
Numérique | Type Element | NbElem | Nombre d'éléments |
Numérique | Ref Element | PosXElem | Position X Element |
Numérique | Ref Element | PosYElem | Position Y Element |
Remarques : l’utilisation des formules avec valeur recherchée HautElem, LargElem,PosXElem et PosYElem ne peut être faite que dans les QOP de définition du modèle. Les autres types de recherche peuvent être réalisés dans le moteur GC et QOP.
Les éléments retournés par ce type de formule sous forme de liste chainée sont ordonnés selon les axes d’un repère orthonormé.
![](../__attachments/89589589/image-20230913-102329.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Recherche sur Query
Les formules de recherche sur Query ont pour but d’alimenter des listes d’aide à partir d’un query d’extraction (syntaxe L4G Progress) exécuté sur des TV du plugin.
Les tables accessibles sont les suivantes :
DDArtic | Table des Articles |
SPEIGeGeoGrp | Groupe Géométrie Profil |
SPEIGeGeoMac | Géométrie Masse Centrale |
SPEIGeProfil | Profil |
SPEIMDInter | Intercalaires |
SPEIMDLames | Lames |
SPEIMDPanneau | Panneaux |
SPEIMDRenfGeo | Lien Renfort / Géométrie |
SPEIMDRenfor | Renfort |
SPEIMDVitrag | Vitrage |
Le query d’extraction doit utiliser la syntaxe du L4G progress en respectant le type et la référence de chacun des champs de la table d’extraction. Le Query d’extraction comporte déjà la syntaxe suivante :
WHERE NomTV.RefSocApp = « Société Courante » AND Votre Formule D’extraction
Votre Formule d’extraction complète la syntaxe ci-dessus.
![](../__attachments/89589589/att_31_for_365461600.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Ces Formules peuvent être directement utilisées en tant que liste d’aide des VBA d’un questionnaire au même titre que des listes d’aide MAN, DYN, MAT ou ARC.
Recherche Traduction d’une VBA
Les formules de recherche de type Traduction permettent de récupérer le libellé ou le code de la valeur d’une VBA traduit à partir du type de désignation passé en paramètre.
![image-20240308-063112.png](../__attachments/89589589/image-20240308-063112.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Ref VBA : référence de la VBA à partir de laquelle la traduction doit etre réalisée
Valeur VBA : valeur de la VBA à partir de laquelle la traduction doit etre réalisée
Type Désignation de Traduction : type de désignation devant etre récupéré ( langue de traduction)
Val / Lib : choix de l'élément à traduire : Libellé complémentaire de la valeur de la VBA ( ex Ouvrant à la Française 2 Vantaux) ou code Valeur de la VBA ( ex OF2)
Les formules Métier
Les formules Métier permettent d’effectuer des calculs spécifiques liées au métier de la menuiserie.
Calcul de Répartition Périodique
Le but de cette formule de calcul est en autre de déterminer des positionnements d’usinage sur un profilé en fonction de diverses contraintes.
La formule renvoie la liste chainée des positions d’usinage (position1 ; position2 ; position3 ; etc.) voir schéma
La formule attend les paramètres suivants :
Type de calcul : Répartition avec nombre de positon figé ou non figé
Dimension de répartition : Dimension sur lequel le calcul doit s’appliquer
Décalage Origine : décalage à ajouter au résultat du calcul
C1 : Delta Début : Valeur à soustraire de la dimension de répartition avant calcul, pour déterminer la première position.
C2 : Delta Fin : Valeur à soustraire de la dimension de répartition avant calcul, pour déterminer la dernière position
Nombre Position Mini : (non obligatoire) nombre de positions mini devant être calculées
Pas Maximum : valeur maximum entre deux positionnements.
Jalon / Début : Yes / No : Le premier Jalon doit il générer une position de calcul ?
Jalon / Fin : Yes / No : Le dernier Jalon doit il générer une position de calcul ?
![](../__attachments/89589589/att_23_for_365461600.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
![](../__attachments/89589589/image-20230913-102550.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Les Formules sur Pointeurs
Déplacement de pointeur en phase2 (Moteur ABL uniquement)
Lors de l’exécution des règles de niveau 2 (et uniquement niveau 2) le pointeur en cours de traitement peut être déplacé à l’aide du nouveau type de formule (cadre d’utilisation DTpointeur) vers un autre pointeur de la nomenclature déjà générée.
![](../__attachments/89589589/att_20_for_365461600.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Le lien en cours sera « collé » sous le lien cible (Type Maj : Fils) ou en tant que frère du pointeur cible (Type Maj : Frere)
Le pointeur cible est identifié à partir des paramètres : composé – N° Ordre – Composant - Clé pointeur. Si plusieurs pointeurs cible correspondent aux critères d’identification, le pointeur courant sera déplacé sur le premier d’entre eux.
Les champs Composé , N°Ordre , composant et Clé pointeur peuvent être exprimés sous forme de constante ( Dormant,…) ou sous forme de VBA, VBP ou FOR . exemple : VBA.DorObjRef
La formule de déplacement doit être paramétrée en tant que règle d’INI de niveau 2 du pointeur à déplacer. La formule de déplacement de pointeur sera exécutée en dernier action du lien, après toutes les règles EXI, INI et IT.
Formules avec arguments
Cette fonctionnalité a pour but de pouvoir passer des arguments à une formule au moment de l’appel. Il est ainsi possible de rendre plus générique les formules.
Le principe général est de pousser au moment de l’appel de la formule les arguments qui doivent être utilisés dans la formule. Les arguments doivent être spécifiés entre crochet à la suite de la formule et séparés par des points virgules et sans espace entre les arguments. Le premier élément de la liste chainée correspond à l’argument un, le deuxième a l’argument 2 …
Les arguments peuvent être définis sous forme de VBA, VBP ou Formule.
Lors de la définition de la formule les nouveaux mots clés Arg.Car1 à Arg.Car9 (argument de type caractère) , Arg.Num1 à Arg.Num9 ( argument de type numérique) et Arg.Log1 à Arg.Log9 ( argument de type logique) peuvent être utilisés et seront interprétés dynamiquement au moment de l’exécution de la formule en fonction des valeurs passées lors de l’appel.
![](../__attachments/89589589/att_21_for_365461600.png?inst-v=2e0628d9-a170-4eb1-b774-b0d7a84fa1a1)
Exemple d’une mise à jour de variable avec une formule avec argument
VBA.s_modele = FOR.ForArg[VBA.i_modele]
Dans l’exemple ci-dessus on pousse à la formule ForArg un seul argument qui est la VBA.i_modele.
Lors de la définition de la formule le mot clé ARG.ValCar1 pourra être utilisé pour construire la formule et sera interprété au moment de l’exécution de celle-ci.