Expressions/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Angle: {| class="wikitable float-right mw-collapsible mw-collapsed" !style="width: 33%;"|Unité !style="width: 66%;"|Description |- | ° | [https://fr.wikipedia.org/wiki/Degre...")
(Created page with "Courant: {| class="wikitable float-right mw-collapsible mw-collapsed" !style="width: 33%;"|Unité !style="width: 66%;"|Description |- | mA | [https://fr.wikipedia.org/wiki/Amp...")
Line 285: Line 285:
|}
|}


Courant:
Current:
{| class="wikitable float-right mw-collapsible mw-collapsed"
{| class="wikitable float-right mw-collapsible mw-collapsed"
!style="width: 33%;"|Unit
!style="width: 33%;"|Unité
!style="width: 66%;"|Description
!style="width: 66%;"|Description
|-
|-
| mA
| mA
| Milli[https://en.wikipedia.org/wiki/Ampere ampere]
| [https://fr.wikipedia.org/wiki/Ampere milliAmpère]
|-
|-
| A
| A
| [https://en.wikipedia.org/wiki/Ampere Ampere]
| [https://fr.wikipedia.org/wiki/Ampere Ampère]
|-
|-
| kA
| kA
| Kilo[https://en.wikipedia.org/wiki/Ampere ampere]
| [https://fr.wikipedia.org/wiki/Ampere kiloAmpère]
|-
|-
| MA
| MA
| Mega[https://en.wikipedia.org/wiki/Ampere ampere]
| [https://fr.wikipedia.org/wiki/Ampere megaAmpère]
|}
|}



Revision as of 14:08, 17 August 2019

Fonctions générales : min, max, count, sum, stddev et average. Les fonctions générales peuvent prendre un ou plusieurs arguments, séparés par une virgule ou un point-virgule. Les arguments peuvent inclure des plages de données (deux cellules séparées par deux points), par exemple =average(B1:B8). Celles-ci sont interprétées comme les propriétés B1, B2, ..., B8.

introduit dans la version 0.16

Il est maintenant possible de définir des propriétés utilisant des expressions mathématiques. Dans l'interface graphique, les boîtes de dialogues numériques et les champs de saisie qui sont liés à des propriétés contiennent une icône bleue File:Sketcher Expressions.png. En cliquant sur l'icône, ou en tapant le signe égal (=) comme dans un tableur, on fait apparaître l'éditeur d'expression pour cette propriété spécifique.

Une expression FreeCAD est une expression mathématique qui suit la notation pour les opérateurs mathématiques standard et fonctionne comme décrit ci-dessous. En outre, l'expression peut faire référence à d'autres propriétés et également utiliser des conditions. Une unité facultative peut être attachée aux nombres d'une expression.

Les nombres peuvent utiliser une virgule ',' ou un point décimal '.' séparer les chiffres entiers des décimales. Lorsque le marqueur décimal est utilisé, il doit obligatoirement être suivi d'au moins un chiffre. Ainsi, les expressions 1.+2. et 1,+2, ne sont pas valides, mais 1.0+2.0 et 1,0+2,0 sont valables.

Les constantes pi et e sont prédéfinies et doivent être écrites en minuscules.

Les opérateurs et fonctions reconnaissent les unités de mesure et nécessitent des combinaisons valides si elles sont fournies. Par exemple, 2mm + 4mm est une expression valide, tandis que 2mm + 4 ne l'est pas (la raison est qu'une expression comme 1in + 4 sera très probablement interprété comme 1in + 4in par le dessinateur mais comme toutes les unités en interne sont converties au système international SI, et le système est totalement incapable de deviner de quelle unité il s'agit).

Opérateurs pris en charge

Les opérations suivantes sont supportées:

Opération Description
+ Addition
- Soustraction
* Multiplication
/ Division
^ Exponentiation

Constantes prises en charge

Les constantes suivantes sont supportées:

Constante Description
e nombre d'Euler
pi Pi

Fonctions Supportées

Fonctions Mathématiques Générales

Les fonctions mathématiques suivantes sont disponibles.

Lorsqu'une fonction prend plusieurs arguments, ceux-ci peuvent être séparés par un point-virgule ';' ou une virgule suivie par un espace ','. Dans ce derniers cas, la virgule est convertie en point-virgule après la saisie. Quand on utilise un point-virgule, il n'est pas nécessaire de finir la ligne par un espace.

Les fonctions trigonométriques utilisent le degré comme unité par défaut. Pour la mesure en radian, ajoutez rad après la première valeur dans une expression. Par exemple cos(45) est identique à cos(pi rad / 4).
Ces fonctions trigonométriques sont supportées:

Fonction Description Plage des valeurs
acos(x) Arc cosinus -1 <= x <= 1
asin(x) Arc sinus -1 <= x <= 1
atan(x) Arc tangente tout
atan2(x, y) atan2 de x/y tout sauf y = 0
cos(x) Cosinus tout
cosh(x) Cosinus hyperbolique tout
sin(x) Sinus tout
sinh(x) Sinus hyperbolique tout
tan(x) Tangente tout sauf x = n·90 avec n = entier
tanh(x) Tangente hyperbolique tout

Ces fonctions d’exponentiation et de logarithmisation sont prises en charge:

Fonction Description Plage des valeurs
exp(x) Fonction exponentielle tout
log(x) Logarithme népérien x > 0
log10(x) Logarithme décimal x > 0
pow(x, y) Les puissances tout
sqrt(x) Racine carrée x >= 0

Ces fonctions d'arrondi, de troncature et de reste sont supportées:

Fonction Description Plage des valeurs
abs(x) Valeur absolue tout
ceil(x) Ceiling function la plus petite valeur entière supérieure ou égale à x tout
floor(x) Floor function, la plus grande valeur entière supérieure ou égale à x tout
mod(x, y) REste après la division de x par y tout sauf y = 0
round(x) Arrondi au nombre entier le plus proche tout
trunc(x) Troncature au nombre entier le plus proche tout

Statistiques et Fonctions cumulatives

Les fonctions cumulatives prennent un ou plusieurs arguments, séparés par un point-virgule ';' ou une virgule et un espace ','.
Les arguments peuvent inclure des références à des cellules dans une feuille de calcul. Les références de cellule sont constituées de lettres (CAPITAL) suivies du numéro de colonne.
Les arguments peuvent inclure des plages de cellules (deux références de cellules séparées par un deux-points), par exemple average(B1:B8).

Les fonctions cumulatives supportées sont

Fonction Description Plage des valeurs
average(x:y) Moyenne arithmétique des valeurs dans les cellules x à y; sum(x:y) / count(x:y) tout
count(x:y) Comptage de cellules de x à y tout
max(x:y) Valeur Maximum dans les cellules x à y tout
min(x:y) Valeur Minimum dans les cellules x à y tout
stddev(x:y) Écart type de valeurs des cellules x à y tout
sum(x: y) Somme de valeurs des cellules x à y tout

Expressions conditionnelles

Les expressions conditionnelles sont de la forme condition? resultTrue: resultFalse (condition ? résultat si VRAI : résultat si FAUX). La condition est définie comme une expression dont le résultat est '0' (faux) ou différent de zéro (vrai).

Les opérateurs relationnels suivants sont définis:

Unité Description
== égal à
!= pas égal à
> strictement plus grand que
< strictement plus petit que
>= plus grand ou égal à
<= plus petit ou égal à

Unités

Les unités peuvent être directement utilisées dans des expressions. L'analyseur les connecte à la valeur précédente. Donc '2mm' ou '2 mm' sont valides tandis que ' mm' est invalide car il n'y a pas de valeur.

Toutes les valeurs doivent avoir une unité. Par conséquent, vous devez généralement utiliser une unité pour les valeurs dans les feuilles de calcul.
Dans certains cas, cela fonctionne même sans unité, par exemple si vous avez dans la cellule B1 du calculateur, juste le nombre 1.5 et qu'il se reporte à la hauteur du pavé. Cela ne fonctionne que parce que la hauteur du pad prédéfinit l'unité mm utilisée si aucune unité n'est donnée. Il échouera néanmoins si vous utilisez pour la hauteur du pad, par exemple Sketch1.Constraints.Width - Spreadsheet.B1 car Sketch1.Constraints.Width a une unité et Spreadsheet.B1 n'en a pas. euh ce n'est pas clair...

Les unités avec des exposants peuvent être directement entrées. Donc, par exemple mm^3 sera reconnu comme mm³ et m^3 sera reconnu comme m³.

Si vous avez une variable avec le nom d'une unité, vous devez la mettre entre << >>pour éviter qu'elle ne soit reconnue comme une unité. Par exemple, si vous avez la dimension 'Sketch.Constraints.A' , elle sera reconnue comme l'unité Ampère. Dans une expression, vous devez l'écrire sous la forme 'Sketch.Constraints.<<A>>'.

Les unités suivantes sont reconnues par l’analyseur d’expression:

Une quantité de matière:

Unité Description
mol Mole

Angle:

Unité Description
° Degré; alternative à l'unité deg
deg Degré; alternative à l'unité °
rad Radian
gon Gradian
S Seconde d'arc
Seconde d'arc; alternative à l'unité S
M Minute d'arc
Minute d'arc; à l'unité M

Courant:

Unité Description
mA milliAmpère
A Ampère
kA kiloAmpère
MA megaAmpère

Energy / Work:

Unit Description
J Joule
Ws Watt second; alternative to the unit Joule
VAs Volt-ampere-second; alternative to the unit Joule
CV Coulomb·Volt; alternative to the unit Joule

Force:

Unit Description
mN Millinewton
N Newton
kN Kilonewton
MN Meganewton
lbf Pound of force

Length:

Unit Description
nm Nanometer
um Micrometer; alternative to the unit µm
µm Micrometer; alternative to the unit mu
mm Millimeter
cm Centimeter
mm Millimeter
dm Decimeter
m Meter
km Kilometer
mil Thousandth of an inch; alternative to the unit thou
thou Thousandth of an inch; alternative to the unit mil
in Inch
ft Foot; alternative to the unit '
' Foot; alternative to the unit ft
yd Yard
mi Mile

Luminous intensity:

Unit Description
cd Candela

Mass:

Unit Description
ug Microgram; alternative to the unit µg
µg Microgram; alternative to the unit ug
mg Milligram
g Gram
kg Kilogram
t Tonne
oz Ounce
lb Pound; alternative to the unit lbm
lbm Pound; alternative to the unit lb
st Stone
cwt Hundredweight

Expressions conditionnelles

Pressure:

Unit Description
Pa Pascal
kPa Kilopascal
MPa Megapascal
GPa Gigapascal
uTorr Microtorr; alternative to the unit µTorr
µTorr Microtorr; alternative to the unit uTorr
mTorr Millitorr
Torr Torr
psi Pound-force per square inch
ksi Kilopound-force per square inch

Temperature:

Unit Description
uK Microkelvin; alternative to the unit µK
µK Microkelvin; alternative to the unit uK
mK Millikelvin
K Kelvin

Time:

Unit Description
s Second
min Minute
h Hour

Torque:

Unit Description
Nm Newton metre

Volume:

Unit Description
l Liter

The following commonly used units are not yet supported:

Unit Description Alternative
C Coulomb 1 A*s
Hz Hertz 1 /s
V Volt 1 W/A
eV Electronvolt 1.602176634e-19 J
kWh Kilowatt hour 3.6e6 J
bar Bar 100 kPa
T Tesla 1 kg/s^2/A
F Farad 1 s^4*A^2/m^2/kg
H Henry 1 kg*m^2/s^2/A^2
u Atomic mass unit; alternative to the unit 'Da' 1.66053906660e-27 kg
Da Dalton; alternative to the unit 'u' 1.66053906660e-27 kg
cal Calorie 4.184 J
sr Steradian not directly
lm Lumen not directly
lx Lux not directly
Mpsi Megapound-force per square inch 1000 ksi

Références aux données CAD

Il est possible d'utiliser des données provenant de l'objet courant ou d'autres objets du document dans une expression. La syntaxe pour référencer un champ se fait comme ceci : "objet.propriété". Si la propriété est un composé de champs, ils peuvent être accessibles ainsi : "objet.propriété.champs".

Le tableau suivant montre quelques exemples :

Données CAO Appel dans l'expression Résultat
Longueur paramétrique d'un Cube de l'atelier Part Cube.Length Longueur en mm
Volume du Cube Cube.Shape.Volume Volume en mm³ sans unité
Type de la forme Cube Cube.Shape.ShapeType Chaîne de caractère : Solid
Label du Cube Cube.Label Chaîne de caractère : Label
coordonnée x du centre de gravité du Cube Cube.Shape.CenterOfMass.x coordonnée x en mm sans unité
Valeur d'une contrainte dans une esquisse Constraints.Largeur Valeur numérique de la contrainte nommée "Largeur" dans l'esquisse
Valeur d'une contrainte provenant d'une autre esquisse MonEsquisse.Constraints.Largeur Valeur numérique de la contrainte nommée "Largeur" dans l'esquisse nommée "MonEsquisse"
Valeur d'un alias de feuille de calcul MaFeuille.Profondeur Valeur de l'alias nommé "Profondeur" dans la feuille de calcul nommée "MaFeuille"
Valeur d'une propriété locale Length Valeur de la propriété Length, par exemple dans un objet "Pad" on pourrait l'utiliser pour calculer Length2, si celle-ci est utilisé.

Variables globales

Pour le moment il n'y a pas de notion de variables globales dans FreeCAD. Mais des variables arbitraires peuvent être définies comme des cellules dans une feuille de calcul en utilisant l'atelier Spreadsheet, auquelles on aura donné un nom en utilisant l'alias de la propriété pour la cellule utilisée (clic-droit dans la cellule). Ainsi, elles peuvent être accessibles à partir de toute expression comme toute autre propriété de l'objet.

Liaison entre documents

Il est possible de faire référence à une feuille de calcul d'un document depuis d'autres documents.

Note importante : Imaginez que vous utilisiez le nom d'un document pour le référencer depuis d'autres documents. Lorsque vous sauverez ce document pour la première fois, vous allez certainement lui choisir un nom différent de "Unnamed1" (ou sa version traduite), et là, quand vous allez le ré-ouvrir, les liens seront perdus. Il est donc recommandé de créer en premier le document "maître", puis d'y créer immédiatement la feuille de calcul, de sauver le document maître avec un nom had-hoc et de le fermer. Après l'avoir ouvert à nouveau, son nom sera fixé en interne dans FreeCAD. Ensuite vous pourrez toujours faire des modification mais il ne faudra pas le renommer.

Une fois que le document maître contenant la feuille de calcul est créé et enregistré (nommé), vous pouvez sans risque créer des documents dépendants. Supposons que vous avez nommé le document maître "maitre", que la feuille de calcul ait été renommée "Constantes_modele" et que vous ayez défini l'alias "Longueur" pour une cellule donnée, vous pourrez accéder à un alias comme ceci : "master#Constantes_modele.Longueur". Note : un document maître doit toujours être ouvert pour que ses valeurs soient accessibles au document dépendant.

    master#modelConstants.Length  

Note that the master document must be loaded for the values in the master to be available to the dependent document.

Malheureusement, le vérificateur intégré suppose parfois qu’aucun nom valide étendu n’existe. Continuez à taper quand même. Lorsque vous avez terminé la référence complète, le bouton OK devient actif.

Bien sûr, vous pouvez charger les documents correspondants à tout moment pour y faire les modifications que vous voudrez.

Problèmes connus / tâches restantes

  • Le graphe de dépendance est basé sur la relation entre les objets et le document, et non sur les propriétés. Cela signifie que vous ne pouvez pas renseigner et interroger le même objet, par exemple dans une feuille de calcul, même si il n'y a pas de dépendance cyclique si l'on considère seulement les propriétés, vous ne pouvez pas avoir d'objet dont les dimensions proviennent de la feuille de calcul et calculer son volume dans la même feuille de calcul. Pour contourner le problème, utilisez plusieurs feuilles de calcul, par exemple une pour contrôler votre modèle, et une autre pour les rapports.
  • L'analyseur syntaxique d'expressions ne gère pas bien les parenthèses et n'est pas capable d'analyser correctement certaines expressions. Par exemple : "= (A1 > A2) ? 1 : 0" donne une erreur, alors que "= A1 > A2 ? 1 : 0" est accepté. L'expression "= 5 + ((A1>A2) ? 1 : 0)" va contrarier l'analyseur syntaxique dans tous les cas.
  • Il n'y a aucun gestionnaire d'expressions où toutes les expressions d'un document seraient répertoriées et où elles pourraient être créées, supprimées, interrogées, etc.
  • Les noms des contraintes Sketcher ne doivent contenir aucun blanc lorsque la valeur est calculée par une expression, voir la discussion sur le forum.
  • les bogues et tickets ouverts pour les expressions sont référencés sur le Bugtracker de Freecad, catégorie Expressions