7.8.12.6. Fonctions mathématiques (algorithme des caractéristiques )

[Remarque]Remarque

Les fonctions peuvent être présentes dans les conditions et l'affectation de variables numériques.

Exemple de condition:

IF (L1.LT.SQRT(25)) THEN ...

Exemples Attribution de variables numériques:

D3=LOGL1

A=(B+5)*3-10/2

C=SQRT(A**2+B**2)

Conditions

IF () THEN
  VAR = 
ELSE
  VAR = 
ENDIF

Commandes :

  • IF (....) : Entre les parenthèses (), saisissez la condition (par ex. "<Variable>.EQ.10").

  • THEN: Derrière THEN <Variable> =, saisissez la valeur que la variable doit prendre si la condition est remplie.

  • ELSE ...: Derrière ELSE <Variable> = se trouve la valeur pour la variable, si la condition n'est pas remplie.

  • ELSEIF (....) : Entre IF et ELSE, il est possible d'insérer un nombre quelconque d'autres distinctions de cas.

    [Remarque]Remarque

    Les boucles ELSEIF doivent se terminer par un ELSE.

  • ENDIF: clôture de la condition

Exemples avec des valeurs:

IF (L1.EQ.10) THEN
D3 = 20
ELSE
D3 = 30
ENDIF

IF (L1.EQ.10) THEN 
D3 = 10 
ELSEIF (L1.EQ.20) THEN 
D3 = 20 
ELSE
D3 = 30
ENDIF 

Opérateurs logiques :
  • Comparer

    .EQ .

    eq ual (égal)

    .GT.

    g reater t hen (plus grand que)

    .GE.

    g reater e qual (supérieur ou égal à)

    .LT.

    l ower t hen (plus petit que)

    .LE.

    l ower e qual (inférieur ou égal à)

  • Liens

    .AND.

    (les deux conditions - à droite et à gauche de .AND. - doivent être remplies)

    .OR .

    (l'une des deux conditions - à droite ou à gauche de .OR. - doit être remplie)

    .NE.

    n ot e qual (inégal)

  • Valeurs booléennes

    .TRUE.

    Une expression peut être égale à "vrai".

    --- .EQ..TRUE. ---

    .FALSE.

    Une expression peut être immédiatement "fausse".

    --- .EQ..FALSE. ---

Opérateur de concaténation de chaînes de caractères

L'opérateur // permet de lier des valeurs de variables à un texte (ou à d'autres valeurs de variables).

[Remarque]Remarque

Les variables doivent être déclarées sans $.

Exemples :

TYPE=‘new‘//TYPE

CONC = ABC//'0'//PQR//XYZ

Dans PARTdesigner, l'utilisation de variables à l'intérieur d'une chaîne de caractères fonctionne :

Exemples :

C= 'Test --- $A.-$B.'

NENN = '$H.x$B.x$L.'

Cela ne fonctionne PAS pour le mappage ERP [ERP mapping], de sorte que l'utilisation de l'opérateur // est particulièrement utile dans ce cas.

Calculs de base

+, -, *, /

plus, moins, fois, divisé

**

Potentialisation

Fonctions mathématiques

Nombre = ABS (nombre)

Valeur absolue :

exemple :

|-3.4| = 3.4

Nombre = INT (nombre)

Nombre = AINT (nombre)

INT convertit le nombre en un entier.

AINT coupe les décimales.

Le résultat de INT est le même que celui de AINT, tant que le nombre est dans la plage des entiers, c'est-à-dire de -2^31 à 2^31.

Convertir en "entier" / couper les décimales

exemple :

AINT(3.1) = 3
AINT(3.9) = 3
AINT(-3.9) = -3

Nombre = ANINT (nombre)

Nombre = NINT (nombre)

Les deux fonctions sont identiques.

Nombre réel entier le plus proche (arrondi)

exemple :

ANINT(3.1) = 3
ANINT(3.9) = 4
ANINT(4.5) = 5
ANINT(-3.9) = -4

Nombre = DIM (nombre,nombre)

Différence positive :

Tant que le premier nombre est plus grand que le deuxième, on calcule le nombre 1 - nombre 2 ; sinon, le résultat est 0.

exemple :

DIM(8,4) = 4
DIM(4,8) = 0

Nombre = SQRT (nombre)

Racine carrée

Nombre = EXP (nombre)

Fonction exponentielle

Nombre = LOG (nombre)

Logarithme naturel

Nombre = LOG10 (nombre)

Logarithme en base 10

Nombre = MAX (...)

MAX (A1, A2, A3,…) 

Valeur maximale des paramètres

Nombre = MIN (...)

MAX (A1, A2, A3,…) 

Valeur minimale du paramètre

Nombre = MOD (nombre,nombre)

Calcul du reste :

A - INT (A/P)*P

exemple :

MOD(11,4) = 3

11 - (INT(11/4)*4) = 11 - 2*4 = 3

11 / 4 == 2 Rest 3

Nombre = SIGN (nombre,nombre)

Transfert de signe : |A| signum (B)

SIGN(A,B) signifie que la valeur de retour est celle de A avec le signe de B.

exemple :

SIGN(10,1)   =  10
SIGN(10,-1)  = -10

SIGN(-10,1)  =  10
SIGN(-10,-1) = -10

Fonctions angulaires

Nombre = NAS (nombre)

Sinus

Nombre = SINH (nombre)

Hyperbelsinus

Nombre = COS (nombre)

Cosinus

Nombre = COSH (nombre)

Hyperbelcosinus

Nombre = TAN(Nombre)

Tangente

Nombre = TANH(Nombre)

Tangente du cosinus

Fonctions inverses de celles mentionnées ci-dessus :

Nombre = ASIN (nombre)

Arkussinus

Nombre = ACOS (nombre)

Arkuscosinus

Nombre = ATAN (nombre)

Arkustangens

Nombre = ATAN2 (nombre,nombre)

Arkustangens avec deux arguments

ATAN2 est une extension d'ATAN et, comme elle, une fonction inverse de la fonction angulaire tangente.

Elle prend deux nombres réels comme arguments, contrairement à l'arc tangente normale qui n'a qu'un seul nombre réel comme argument. Elle dispose ainsi de suffisamment d'informations pour pouvoir afficher la valeur de la fonction dans une plage de valeurs de 360° (donc dans les quatre quadrants) et ne doit pas se limiter à deux quadrants (comme la tangente à l'arc normale).

atan2(y,x) renvoie l'angle entre la ligne menant au point (x,y) et l'axe des X positif, limité à (-Pi,Pi].

Le résultat est renvoyé en degrés.

[Remarque]Remarque

Pour les fonctions angulaires, l'entrée entre parenthèses reflète le nombre de degrés.

fonctions liées au texte :

Nombre = ATOF ('text')

Transforme un texte en chiffre :

exemple :

ATOF ('3.2') -> 3.2

LEN ('texte')

LEN (variable)

Longueur du texte :

LEN('abcd')  = 4
LEN(VAR)  = Länge des Textes in der Variable VAR
texte = SUBSTR (texte,nombre,nombre)

Extrait d'un texte :

Le premier paramètre est le texte ; le deuxième indique à quel caractère commence l'extrait ; le troisième paramètre indique la longueur de l'extrait.

exemple :

SUBSTR('Hallo Welt',1,5) -> Hallo
SUBSTR('Hallo Welt',7,4) -> Welt

[Remarque]Remarque

Les fonctions suivantes ne peuvent pas être utilisées : FORMATSTR, FORMATVAL, KFIX

Fonctions de filetage

text = GETTHREADTEXT (nombre,texte,texte,nombre)

Utilisation pour les filetages :

L'expression suivante permet de générer différents textes de sortie.

exemple :

NAME  =  GETTHREADTEXT(D,'DIN 13','',P,'NAME')

Vous trouverez une description détaillée sur Section 7.9.3.14.1.1.2, « Différents pas de vis et calculs automatiques dérivés pour, par exemple, la description de la ligne et le diamètre du noyau  ».

Nombre = GETTHREADVALUE (nombre,texte,texte,nombre)

Comparer avec la fonction précédente.

GETTHREADTEXT récupère un texte dans la table et GETTHREADVALUE une valeur DOUBLE.

Fonctions de traduction

text = TRANSLATE ('text')

TRANSLATE traduit un texte dans la langue actuelle.

Voir aussi Section 7.8.12.7, « Fonctions de traduction  »-> Exemple 1

text = TRANSLATE (VARIABLENNAME)

Mais si, par exemple, la valeur traduite visible doit être utilisée dans la description de la ligne [Row label], la fiche de données [Data sheet], la dérivation 2D [2D derivation], etc., vous pouvez utiliser la fonction "TRANSLATE(VARIABLENNAME)".

Voir aussi Section 7.8.12.7, « Fonctions de traduction  »-> Exemples 2 et 3

texte = $VARIABLENNAME(SRC=VALDESC).

Voir aussi Section 7.8.12.7, « Fonctions de traduction  »-> Exemple 4