Property/fr: Difference between revisions
(Created page with "Rappelez-vous qu'il s'agit de propriétés {{Emphasis|types}}. Un même objet peut avoir plusieurs propriétés du même type, mais avec des noms différents.") |
(Updating to match new version of source page) |
||
(40 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
== Introduction == |
== Introduction == |
||
Une [[Property/fr|propriété]] est une information, telle qu'un nombre ou une chaîne de texte, attachée à un document FreeCAD ou à un objet d'un document. Les propriétés peuvent être visualisées et modifiées avec l'[[ |
Une [[Property/fr|propriété]] est une information, telle qu'un nombre ou une chaîne de texte, attachée à un document FreeCAD ou à un objet d'un document. Les propriétés peuvent être visualisées et modifiées avec l'[[Property_editor/fr|éditeur de propriétés]]. |
||
Les propriétés jouent un rôle très important dans FreeCAD. Comme les objets dans FreeCAD sont "paramétriques", cela signifie que leur comportement est défini par leurs propriétés et par la manière dont ces propriétés sont utilisées comme entrée pour leurs méthodes de classe. |
Les propriétés jouent un rôle très important dans FreeCAD. Comme les objets dans FreeCAD sont "paramétriques", cela signifie que leur comportement est défini par leurs propriétés et par la manière dont ces propriétés sont utilisées comme entrée pour leurs méthodes de classe. Voir aussi [[FeaturePython_Custom_Properties/fr|Propriétés personnalisées de FeaturePython]] et [[PropertyLink:_InList_and_OutList/fr|PropertyLink: InList et OutList]] |
||
<span id="All_property_types"></span> |
|||
== Tous les types de propriétés == |
== Tous les types de propriétés == |
||
Les [[ |
Les [[Scripted_objects/fr|objets créés par script]] personnalisés dans FreeCAD peuvent avoir des propriétés des types suivants : |
||
{{Code|code= |
|||
{| class="sortable wikitable" |
|||
Bool |
|||
|- |
|||
Float |
|||
! Name !! Unit (if any) !! Remark |
|||
FloatList |
|||
|- |
|||
FloatConstraint |
|||
| Acceleration || style="text-align:center;" | m/s^2 |
|||
Angle |
|||
|- |
|||
Distance |
|||
| AmountOfSubstance || style="text-align:center;" | mol |
|||
ExpressionEngine |
|||
|- |
|||
Integer |
|||
| Angle || style="text-align:center;" | ° |
|||
IntegerConstraint |
|||
|- |
|||
Percent |
|||
| Area || style="text-align:center;" | m^2 |
|||
Enumeration |
|||
|- |
|||
IntegerList |
|||
| Bool || |
|||
String |
|||
|- |
|||
StringList |
|||
| BoolList || |
|||
Length |
|||
|- |
|||
Link |
|||
| Color || |
|||
LinkList |
|||
|- |
|||
LinkSubList |
|||
| ColorList || |
|||
Matrix |
|||
|- |
|||
Vector |
|||
| CurrentDensity || style="text-align:center;" | A/m^2 || {{Version|0.21}} |
|||
VectorList |
|||
|- |
|||
VectorDistance |
|||
| Density || style="text-align:center;" | kg/m^3 |
|||
Placement |
|||
|- |
|||
PlacementLink |
|||
| Direction || |
|||
PythonObject |
|||
|- |
|||
Color |
|||
| DissipationRate || style="text-align:center;" | m^2/s^3 || {{Version|0.21}} |
|||
ColorList |
|||
|- |
|||
Material |
|||
| Distance || style="text-align:center;" | m |
|||
Path |
|||
|- |
|||
File |
|||
| DynamicViscosity || style="text-align:center;" | Pa*s || {{Version|0.21}} |
|||
FileIncluded |
|||
|- |
|||
PartShape |
|||
| ElectricalCapacitance || style="text-align:center;" | F || {{Version|0.21}} |
|||
FilletContour |
|||
|- |
|||
Circle |
|||
| ElectricalConductance || style="text-align:center;" | S || {{Version|0.21}} |
|||
}} |
|||
|- |
|||
| ElectricalConductivity || style="text-align:center;" | S/m || {{Version|0.21}} |
|||
|- |
|||
| ElectricalInductance|| style="text-align:center;" | H || {{Version|0.21}} |
|||
|- |
|||
| ElectricalResistance || style="text-align:center;" | Ohm || {{Version|0.21}} |
|||
|- |
|||
| ElectricCharge || style="text-align:center;" | C || {{Version|0.21}} |
|||
|- |
|||
| ElectricCurrent || style="text-align:center;" | A || {{Version|0.21}} |
|||
|- |
|||
| ElectricPotential || style="text-align:center;" | V || {{Version|0.20}} |
|||
|- |
|||
| Enumeration || |
|||
|- |
|||
| ExpressionEngine || |
|||
|- |
|||
| File || |
|||
|- |
|||
| FileIncluded || |
|||
|- |
|||
| Float || |
|||
|- |
|||
| FloatConstraint || |
|||
|- |
|||
| FloatList || |
|||
|- |
|||
| Font || |
|||
|- |
|||
| Force || style="text-align:center;" | N |
|||
|- |
|||
| Frequency || style="text-align:center;" | Hz |
|||
|- |
|||
| HeatFlux || style="text-align:center;" | W/m^2|| {{Version|0.21}} |
|||
|- |
|||
| Integer || |
|||
|- |
|||
| IntegerConstraint || |
|||
|- |
|||
| IntegerList || |
|||
|- |
|||
| IntegerSet || |
|||
|- |
|||
| InverseArea || style="text-align:center;" | 1/m^2 || {{Version|0.21}} |
|||
|- |
|||
| InverseLength || style="text-align:center;" | 1/m || {{Version|0.21}} |
|||
|- |
|||
| InverseVolume || style="text-align:center;" | 1/m^3 || {{Version|0.21}} |
|||
|- |
|||
| KinematicViscosity || style="text-align:center;" | m^2/s || {{Version|0.21}} |
|||
|- |
|||
| Length || style="text-align:center;" | m |
|||
|- |
|||
| Link || |
|||
|- |
|||
| LinkChild || |
|||
|- |
|||
| LinkGlobal || |
|||
|- |
|||
| LinkHidden || |
|||
|- |
|||
| LinkList || |
|||
|- |
|||
| LinkListChild || |
|||
|- |
|||
| LinkListGlobal || |
|||
|- |
|||
| LinkListHidden || |
|||
|- |
|||
| LinkSub || |
|||
|- |
|||
| LinkSubChild || |
|||
|- |
|||
| LinkSubGlobal || |
|||
|- |
|||
| LinkSubHidden || |
|||
|- |
|||
| LinkSubList || |
|||
|- |
|||
| LinkSubListChild || |
|||
|- |
|||
| LinkSubListGlobal || |
|||
|- |
|||
| LinkSubListHidden || |
|||
|- |
|||
| LuminousIntensity || style="text-align:center;" | cd || {{Version|0.21}} |
|||
|- |
|||
| MagneticFieldStrength || style="text-align:center;" | A/m || {{Version|0.21}} |
|||
|- |
|||
| MagneticFlux || style="text-align:center;" | Wb or V*s || {{Version|0.21}} |
|||
|- |
|||
| MagneticFluxDensity || style="text-align:center;" | T || {{Version|0.21}} |
|||
|- |
|||
| Magnetization || style="text-align:center;" | A/m || {{Version|0.21}} |
|||
|- |
|||
| Map || |
|||
|- |
|||
| Mass || style="text-align:center;" | kg || {{Version|0.21}} |
|||
|- |
|||
| Material || |
|||
|- |
|||
| MaterialList || |
|||
|- |
|||
| Matrix || |
|||
|- |
|||
| PartShape || || a Part property, is accessed as</br>{{incode|Part::PropertyPartShape}} |
|||
|- |
|||
| Path || |
|||
|- |
|||
| Percent || |
|||
|- |
|||
| PersistentObject || |
|||
|- |
|||
| Placement || |
|||
|- |
|||
| PlacementLink || |
|||
|- |
|||
| PlacementList || |
|||
|- |
|||
| Position || |
|||
|- |
|||
| Power || style="text-align:center;" | W || {{Version|0.21}} |
|||
|- |
|||
| Precision || |
|||
|- |
|||
| Pressure || style="text-align:center;" | Pa |
|||
|- |
|||
| PythonObject || |
|||
|- |
|||
| Quantity || |
|||
|- |
|||
| QuantityConstraint || |
|||
|- |
|||
| Rotation || |
|||
|- |
|||
| ShearModulus || style="text-align:center;" | Pa || {{Version|0.21}} |
|||
|- |
|||
| SpecificEnergy || style="text-align:center;" | m^2/s^2 or J/kg || {{Version|0.21}} |
|||
|- |
|||
| SpecificHeat || style="text-align:center;" | J/kg/K || {{Version|0.21}} |
|||
|- |
|||
| Speed || style="text-align:center;" | m/s |
|||
|- |
|||
| Stiffness || style="text-align:center;" | m/s^2 |
|||
|- |
|||
| Stress || style="text-align:center;" | Pa || {{Version|0.21}} |
|||
|- |
|||
| String || |
|||
|- |
|||
| StringList || |
|||
|- |
|||
| Temperature || style="text-align:center;" | K || {{Version|0.21}} |
|||
|- |
|||
| ThermalConductivity || style="text-align:center;" | W/m/K || {{Version|0.21}} |
|||
|- |
|||
| ThermalExpansionCoefficient || style="text-align:center;" | 1/K || {{Version|0.21}} |
|||
|- |
|||
| ThermalTransferCoefficient || style="text-align:center;" | W/m^2/K || {{Version|0.21}} |
|||
|- |
|||
| Time || style="text-align:center;" | s || {{Version|0.21}} |
|||
|- |
|||
| UltimateTensileStrength || style="text-align:center;" | Pa || {{Version|0.21}} |
|||
|- |
|||
| UUID || |
|||
|- |
|||
| VacuumPermittivity || style="text-align:center;" | s^4*A^2 / (m^3*kg) |
|||
|- |
|||
| Vector || |
|||
|- |
|||
| VectorDistance || |
|||
|- |
|||
| VectorList || |
|||
|- |
|||
| Velocity || style="text-align:center;" | m/s || {{Version|0.21}} |
|||
|- |
|||
| Volume || style="text-align:center;" | l or m^3 |
|||
|- |
|||
| VolumeFlowRate || style="text-align:center;" | l/s or m^3/s || {{Version|0.21}} |
|||
|- |
|||
| VolumetricThermalExpansionCoefficient || style="text-align:center;" | 1/K || {{Version|0.21}} |
|||
|- |
|||
| Work || style="text-align:center;" | J || {{Version|0.21}} |
|||
|- |
|||
| XLink || |
|||
|- |
|||
| XLinkList || |
|||
|- |
|||
| XLinkSub || |
|||
|- |
|||
| XLinkSubList || |
|||
|- |
|||
| YieldStrength || style="text-align:center;" | Pa || {{Version|0.21}} |
|||
|- |
|||
| YoungsModulus || style="text-align:center;" | Pa || {{Version|0.21}} |
|||
|} |
|||
En interne, le nom de la propriété est préfixé par {{incode|App::Property}}: |
En interne, le nom de la propriété est préfixé par {{incode|App::Property}} : |
||
{{Code|code= |
{{Code|code= |
||
App::PropertyBool |
App::PropertyBool |
||
Line 57: | Line 253: | ||
Rappelez-vous qu'il s'agit de propriétés {{Emphasis|types}}. Un même objet peut avoir plusieurs propriétés du même type, mais avec des noms différents. |
Rappelez-vous qu'il s'agit de propriétés {{Emphasis|types}}. Un même objet peut avoir plusieurs propriétés du même type, mais avec des noms différents. |
||
Par exemple : |
|||
For example: |
|||
{{Code|code= |
{{Code|code= |
||
obj.addProperty("App::PropertyFloat", "Length") |
obj.addProperty("App::PropertyFloat", "Length") |
||
Line 64: | Line 261: | ||
}} |
}} |
||
Cela indique un objet avec trois propriétés de type "Float", nommées respectivement "Length", "Width" et "Height". |
|||
= |
<span id="Scripting"></span> |
||
== Script == |
|||
{{Emphasis| |
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|FreeCAD Script de base]]. |
||
Un [[Scripted_objects/fr|objet scripté]] est créé en premier, puis les propriétés lui sont attribuées. |
|||
A [[scripted objects|scripted object]] is created first, and then properties are assigned. |
|||
{{Code|code= |
{{Code|code= |
||
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
||
Line 78: | Line 276: | ||
}} |
}} |
||
En général, les propriétés {{Emphasis|Data}} sont affectées à l'aide de la méthode {{incode|addProperty()}} de l'objet. D'autre part, les propriétés {{Emphasis|View}} sont normalement fournies automatiquement par l'objet parent à partir duquel l'objet scripté est dérivé. |
|||
Par exemple : |
|||
For example: |
|||
* |
* Dériver de {{incode|App::FeaturePython}} fournit uniquement 4 propriétés {{Emphasis|View}}: "Display Mode", "On Top When Selected", "Show In Tree" et "Visibility". |
||
* |
* Dériver de {{incode|Part::Feature}} fournit 17 propriétés {{Emphasis|View}} : les quatre précédentes, plus "Angular Deflection", "Zone de sélection", "Deviation", "Draw Style", "Lighting", "Line Color", "Line Width", "Point Color", "Point Size", "Selectable", "Selection Style", "Shape Color", et "Transparency". |
||
Néanmoins, les propriétés {{Emphasis|View}} peuvent également être affectées à l'aide de la méthode {{incode|addProperty()}} de l'objet viewprovider. |
|||
Nevertheless, {{Emphasis|View}} properties can also be assigned using the view provider object's {{incode|addProperty()}} method. |
|||
{{Code|code= |
{{Code|code= |
||
obj.ViewObject.addProperty("App::PropertyBool", " |
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow") |
||
}} |
}} |
||
{{docnav/fr|[[Interface_Customization/fr|Personnalisation de l'interface]]|[[Workbenches/fr|Ateliers]]}} |
|||
<span id="Source_code"></span> |
|||
<div class="mw-translate-fuzzy"> |
|||
== Code source == |
|||
[[Category:User Documentation/fr]] |
|||
</div> |
|||
Dans le code source, les propriétés se trouvent dans divers fichiers {{FileName|src/App/Property*}} . |
|||
Ils sont importés et initialisés dans {{incode|[https://github.com/FreeCAD/FreeCAD/blob/9c27f1078e5ec516fe882aac1a27f5c6c6174554/src/App/Application.cpp#L1681-L1758 src/App/Application.cpp]}}. |
|||
{{Code|lang=cpp|code= |
|||
#include "Property.h" |
|||
#include "PropertyContainer.h" |
|||
#include "PropertyUnits.h" |
|||
#include "PropertyFile.h" |
|||
#include "PropertyLinks.h" |
|||
#include "PropertyPythonObject.h" |
|||
#include "PropertyExpressionEngine.h" |
|||
}} |
|||
[[Category:Base]] |
|||
{{Powerdocnavi{{#translation:}}}} |
|||
{{clear}} |
|||
[[Category:Developer Documentation{{#translation:}}]] |
|||
[[Category:Python Code{{#translation:}}]] |
Latest revision as of 16:26, 20 May 2023
Introduction
Une propriété est une information, telle qu'un nombre ou une chaîne de texte, attachée à un document FreeCAD ou à un objet d'un document. Les propriétés peuvent être visualisées et modifiées avec l'éditeur de propriétés.
Les propriétés jouent un rôle très important dans FreeCAD. Comme les objets dans FreeCAD sont "paramétriques", cela signifie que leur comportement est défini par leurs propriétés et par la manière dont ces propriétés sont utilisées comme entrée pour leurs méthodes de classe. Voir aussi Propriétés personnalisées de FeaturePython et PropertyLink: InList et OutList
Tous les types de propriétés
Les objets créés par script personnalisés dans FreeCAD peuvent avoir des propriétés des types suivants :
Name | Unit (if any) | Remark |
---|---|---|
Acceleration | m/s^2 | |
AmountOfSubstance | mol | |
Angle | ° | |
Area | m^2 | |
Bool | ||
BoolList | ||
Color | ||
ColorList | ||
CurrentDensity | A/m^2 | introduced in version 0.21 |
Density | kg/m^3 | |
Direction | ||
DissipationRate | m^2/s^3 | introduced in version 0.21 |
Distance | m | |
DynamicViscosity | Pa*s | introduced in version 0.21 |
ElectricalCapacitance | F | introduced in version 0.21 |
ElectricalConductance | S | introduced in version 0.21 |
ElectricalConductivity | S/m | introduced in version 0.21 |
ElectricalInductance | H | introduced in version 0.21 |
ElectricalResistance | Ohm | introduced in version 0.21 |
ElectricCharge | C | introduced in version 0.21 |
ElectricCurrent | A | introduced in version 0.21 |
ElectricPotential | V | introduced in version 0.20 |
Enumeration | ||
ExpressionEngine | ||
File | ||
FileIncluded | ||
Float | ||
FloatConstraint | ||
FloatList | ||
Font | ||
Force | N | |
Frequency | Hz | |
HeatFlux | W/m^2 | introduced in version 0.21 |
Integer | ||
IntegerConstraint | ||
IntegerList | ||
IntegerSet | ||
InverseArea | 1/m^2 | introduced in version 0.21 |
InverseLength | 1/m | introduced in version 0.21 |
InverseVolume | 1/m^3 | introduced in version 0.21 |
KinematicViscosity | m^2/s | introduced in version 0.21 |
Length | m | |
Link | ||
LinkChild | ||
LinkGlobal | ||
LinkHidden | ||
LinkList | ||
LinkListChild | ||
LinkListGlobal | ||
LinkListHidden | ||
LinkSub | ||
LinkSubChild | ||
LinkSubGlobal | ||
LinkSubHidden | ||
LinkSubList | ||
LinkSubListChild | ||
LinkSubListGlobal | ||
LinkSubListHidden | ||
LuminousIntensity | cd | introduced in version 0.21 |
MagneticFieldStrength | A/m | introduced in version 0.21 |
MagneticFlux | Wb or V*s | introduced in version 0.21 |
MagneticFluxDensity | T | introduced in version 0.21 |
Magnetization | A/m | introduced in version 0.21 |
Map | ||
Mass | kg | introduced in version 0.21 |
Material | ||
MaterialList | ||
Matrix | ||
PartShape | a Part property, is accessed asPart::PropertyPartShape
| |
Path | ||
Percent | ||
PersistentObject | ||
Placement | ||
PlacementLink | ||
PlacementList | ||
Position | ||
Power | W | introduced in version 0.21 |
Precision | ||
Pressure | Pa | |
PythonObject | ||
Quantity | ||
QuantityConstraint | ||
Rotation | ||
ShearModulus | Pa | introduced in version 0.21 |
SpecificEnergy | m^2/s^2 or J/kg | introduced in version 0.21 |
SpecificHeat | J/kg/K | introduced in version 0.21 |
Speed | m/s | |
Stiffness | m/s^2 | |
Stress | Pa | introduced in version 0.21 |
String | ||
StringList | ||
Temperature | K | introduced in version 0.21 |
ThermalConductivity | W/m/K | introduced in version 0.21 |
ThermalExpansionCoefficient | 1/K | introduced in version 0.21 |
ThermalTransferCoefficient | W/m^2/K | introduced in version 0.21 |
Time | s | introduced in version 0.21 |
UltimateTensileStrength | Pa | introduced in version 0.21 |
UUID | ||
VacuumPermittivity | s^4*A^2 / (m^3*kg) | |
Vector | ||
VectorDistance | ||
VectorList | ||
Velocity | m/s | introduced in version 0.21 |
Volume | l or m^3 | |
VolumeFlowRate | l/s or m^3/s | introduced in version 0.21 |
VolumetricThermalExpansionCoefficient | 1/K | introduced in version 0.21 |
Work | J | introduced in version 0.21 |
XLink | ||
XLinkList | ||
XLinkSub | ||
XLinkSubList | ||
YieldStrength | Pa | introduced in version 0.21 |
YoungsModulus | Pa | introduced in version 0.21 |
En interne, le nom de la propriété est préfixé par App::Property
:
App::PropertyBool
App::PropertyFloat
App::PropertyFloatList
...
Rappelez-vous qu'il s'agit de propriétés types. Un même objet peut avoir plusieurs propriétés du même type, mais avec des noms différents.
Par exemple :
obj.addProperty("App::PropertyFloat", "Length")
obj.addProperty("App::PropertyFloat", "Width")
obj.addProperty("App::PropertyFloat", "Height")
Cela indique un objet avec trois propriétés de type "Float", nommées respectivement "Length", "Width" et "Height".
Script
Voir aussi : FreeCAD Script de base.
Un objet scripté est créé en premier, puis les propriétés lui sont attribuées.
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject")
obj.addProperty("App::PropertyFloat", "Velocity", "Parameter", "Body speed")
obj.addProperty("App::PropertyBool", "VelocityEnabled", "Parameter", "Enable body speed")
En général, les propriétés Data sont affectées à l'aide de la méthode addProperty()
de l'objet. D'autre part, les propriétés View sont normalement fournies automatiquement par l'objet parent à partir duquel l'objet scripté est dérivé.
Par exemple :
- Dériver de
App::FeaturePython
fournit uniquement 4 propriétés View: "Display Mode", "On Top When Selected", "Show In Tree" et "Visibility". - Dériver de
Part::Feature
fournit 17 propriétés View : les quatre précédentes, plus "Angular Deflection", "Zone de sélection", "Deviation", "Draw Style", "Lighting", "Line Color", "Line Width", "Point Color", "Point Size", "Selectable", "Selection Style", "Shape Color", et "Transparency".
Néanmoins, les propriétés View peuvent également être affectées à l'aide de la méthode addProperty()
de l'objet viewprovider.
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow")
Code source
Dans le code source, les propriétés se trouvent dans divers fichiers src/App/Property* .
Ils sont importés et initialisés dans src/App/Application.cpp
.
#include "Property.h"
#include "PropertyContainer.h"
#include "PropertyUnits.h"
#include "PropertyFile.h"
#include "PropertyLinks.h"
#include "PropertyPythonObject.h"
#include "PropertyExpressionEngine.h"
- Scripts FreeCAD : Python, Introduction à Python, Tutoriel sur les scripts Python, Débuter avec les scripts
- Modules : Modules intégrés, Unités, Quantity
- Ateliers : Création d'atelier, Commands Gui, Les commandes, Installer des ateliers supplémentaires
- Maillages et objets Parts : Scripts Mesh, Script de données topologiques, Conversion objet Mesh en Part, PythonOCC
- Objets paramétriques : Objets créés par script, Viewproviders (Icône personnalisée dans l'arborescence)
- Scénographie : Graphe de scène Coin (Inventor), Pivy
- Interface graphique : Création d'interface, Création d'une boite de dialogue (1, 2, 3, 4, 5), PySide, Exemples PySide débutant, intermédiaire, expérimenté
- Macros : Macros, Comment installer des macros
- Intégration : Intégrer FreeCAD, Intégration de FreeCADGui
- Autre : Expressions, Extraits de codes, Fonction - tracer une ligne, Bibliothèque mathématique vectorielle de FreeCAD (déprécié)