Property/fr: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
Line 10: | Line 10: | ||
== Tous les types de propriétés == |
== Tous les types de propriétés == |
||
<div class="mw-translate-fuzzy"> |
|||
Les [[Scripted_objects/fr|objets créés par script]] personnalisés dans FreeCAD peuvent avoir des propriétés des types suivants : |
Les [[Scripted_objects/fr|objets créés par script]] personnalisés dans FreeCAD peuvent avoir des propriétés des types suivants : |
||
</div> |
|||
{| class="sortable wikitable" |
|||
{{Code|code= |
|||
|- |
|||
Acceleration |
|||
! Name !! Unit (if any) !! Remark |
|||
Angle |
|||
|- |
|||
Area |
|||
| Acceleration || style="text-align:center;" | m/s^2 |
|||
Bool |
|||
|- |
|||
BoolList |
|||
| AmountOfSubstance || style="text-align:center;" | mol |
|||
Color |
|||
|- |
|||
ColorList |
|||
| Angle || style="text-align:center;" | ° |
|||
Direction |
|||
|- |
|||
Distance |
|||
| Area || style="text-align:center;" | m^2 |
|||
ElectricPotential |
|||
|- |
|||
Enumeration |
|||
| Bool || |
|||
ExpressionContainer |
|||
|- |
|||
ExpressionEngine |
|||
| BoolList || |
|||
File |
|||
|- |
|||
FileIncluded |
|||
| Color || |
|||
Float |
|||
|- |
|||
FloatConstraint |
|||
| ColorList || |
|||
FloatList |
|||
|- |
|||
Font |
|||
| CurrentDensity || style="text-align:center;" | A/m^2 || {{Version|1.0}} |
|||
Force |
|||
|- |
|||
Frequency |
|||
| Density || style="text-align:center;" | kg/m^3 |
|||
Geometry |
|||
|- |
|||
Integer |
|||
| Direction || |
|||
IntegerConstraint |
|||
|- |
|||
IntegerList |
|||
| DissipationRate || style="text-align:center;" | m^2/s^3 || {{Version|1.0}} |
|||
IntegerSet |
|||
|- |
|||
Length |
|||
| Distance || style="text-align:center;" | m |
|||
Link |
|||
|- |
|||
LinkList |
|||
| DynamicViscosity || style="text-align:center;" | Pa*s || {{Version|1.0}} |
|||
LinkSubList |
|||
|- |
|||
Lists |
|||
| ElectricalCapacitance || style="text-align:center;" | F || {{Version|1.0}} |
|||
Map |
|||
|- |
|||
Material |
|||
| ElectricalConductance || style="text-align:center;" | S || {{Version|1.0}} |
|||
MaterialList |
|||
|- |
|||
Matrix |
|||
| ElectricalConductivity || style="text-align:center;" | S/m || {{Version|1.0}} |
|||
PartShape |
|||
|- |
|||
Path |
|||
| ElectricalInductance|| style="text-align:center;" | H || {{Version|1.0}} |
|||
Percent |
|||
|- |
|||
Placement |
|||
| ElectricalResistance || style="text-align:center;" | Ohm || {{Version|1.0}} |
|||
PlacementLink |
|||
|- |
|||
PlacementList |
|||
| ElectricCharge || style="text-align:center;" | C || {{Version|1.0}} |
|||
Position |
|||
|- |
|||
Precision |
|||
| ElectricCurrent || style="text-align:center;" | A || {{Version|1.0}} |
|||
Pressure |
|||
|- |
|||
PythonObject |
|||
| ElectricPotential || style="text-align:center;" | V || {{Version|0.20}} |
|||
Quantity |
|||
|- |
|||
QuantityConstraint |
|||
| Enumeration || |
|||
Rotation |
|||
|- |
|||
Speed |
|||
| ExpressionContainer || |
|||
Stiffness |
|||
|- |
|||
String |
|||
| ExpressionEngine || |
|||
StringList |
|||
|- |
|||
VacuumPermittivity |
|||
| File || |
|||
Vector |
|||
|- |
|||
VectorDistance |
|||
| FileIncluded || |
|||
VectorList |
|||
|- |
|||
Volume |
|||
| Float || |
|||
}} |
|||
|- |
|||
| FloatConstraint || |
|||
|- |
|||
| FloatList || |
|||
|- |
|||
| Font || |
|||
|- |
|||
| Force || style="text-align:center;" | N |
|||
|- |
|||
| Frequency || style="text-align:center;" | Hz |
|||
|- |
|||
| Geometry || |
|||
|- |
|||
| HeatFlux || style="text-align:center;" | W/m^2|| {{Version|1.0}} |
|||
|- |
|||
| Integer || |
|||
|- |
|||
| IntegerConstraint || |
|||
|- |
|||
| IntegerList || |
|||
|- |
|||
| IntegerSet || |
|||
|- |
|||
| InverseArea || style="text-align:center;" | 1/m^2 || {{Version|1.0}} |
|||
|- |
|||
| InverseLength || style="text-align:center;" | 1/m || {{Version|1.0}} |
|||
|- |
|||
| InverseVolume || style="text-align:center;" | 1/m^3 || {{Version|1.0}} |
|||
|- |
|||
| KinematicViscosity || style="text-align:center;" | m^2/s || {{Version|1.0}} |
|||
|- |
|||
| Length || style="text-align:center;" | m |
|||
|- |
|||
| Link || |
|||
|- |
|||
| LinkChild || |
|||
|- |
|||
| LinkGlobal || |
|||
|- |
|||
| LinkHidden || |
|||
|- |
|||
| LinkList || |
|||
|- |
|||
| LinkListChild || |
|||
|- |
|||
| LinkListGlobal || |
|||
|- |
|||
| LinkListHidden || |
|||
|- |
|||
| LinkSub || |
|||
|- |
|||
| LinkSubChild || |
|||
|- |
|||
| LinkSubGlobal || |
|||
|- |
|||
| LinkSubHidden || |
|||
|- |
|||
| LinkSubList || |
|||
|- |
|||
| LinkSubListChild || |
|||
|- |
|||
| LinkSubListGlobal || |
|||
|- |
|||
| LinkSubListHidden || |
|||
|- |
|||
| Lists || |
|||
|- |
|||
| LuminousIntensity || style="text-align:center;" | cd || {{Version|1.0}} |
|||
|- |
|||
| MagneticFieldStrength || style="text-align:center;" | A/m || {{Version|1.0}} |
|||
|- |
|||
| MagneticFlux || style="text-align:center;" | Wb or V*s || {{Version|1.0}} |
|||
|- |
|||
| MagneticFluxDensity || style="text-align:center;" | T || {{Version|1.0}} |
|||
|- |
|||
| Magnetization || style="text-align:center;" | A/m || {{Version|1.0}} |
|||
|- |
|||
| Map || |
|||
|- |
|||
| Mass || style="text-align:center;" | kg || {{Version|1.0}} |
|||
|- |
|||
| Material || |
|||
|- |
|||
| MaterialList || |
|||
|- |
|||
| Matrix || |
|||
|- |
|||
| PartShape || |
|||
|- |
|||
| Path || |
|||
|- |
|||
| Percent || |
|||
|- |
|||
| PersistentObject || |
|||
|- |
|||
| Placement || |
|||
|- |
|||
| PlacementLink || |
|||
|- |
|||
| PlacementList || |
|||
|- |
|||
| Position || |
|||
|- |
|||
| Power || style="text-align:center;" | W || {{Version|1.0}} |
|||
|- |
|||
| Precision || |
|||
|- |
|||
| Pressure || style="text-align:center;" | Pa |
|||
|- |
|||
| PythonObject || |
|||
|- |
|||
| Quantity || |
|||
|- |
|||
| QuantityConstraint || |
|||
|- |
|||
| Rotation || |
|||
|- |
|||
| ShearModulus || style="text-align:center;" | Pa || {{Version|1.0}} |
|||
|- |
|||
| SpecificEnergy || style="text-align:center;" | m^2/s^2 or J/kg || {{Version|1.0}} |
|||
|- |
|||
| SpecificHeat || style="text-align:center;" | J/kg/K || {{Version|1.0}} |
|||
|- |
|||
| Speed || style="text-align:center;" | m/s |
|||
|- |
|||
| Stiffness || style="text-align:center;" | m/s^2 || {{Version|0.19}} |
|||
|- |
|||
| Stress || style="text-align:center;" | Pa || {{Version|1.0}} |
|||
|- |
|||
| String || |
|||
|- |
|||
| StringList || |
|||
|- |
|||
| Temperature || style="text-align:center;" | K || {{Version|1.0}} |
|||
|- |
|||
| ThermalConductivity || style="text-align:center;" | W/m/K || {{Version|1.0}} |
|||
|- |
|||
| ThermalExpansionCoefficient || style="text-align:center;" | 1/K || {{Version|1.0}} |
|||
|- |
|||
| ThermalTransferCoefficient || style="text-align:center;" | W/m^2/K || {{Version|1.0}} |
|||
|- |
|||
| TimeSpan || style="text-align:center;" | s || {{Version|1.0}} |
|||
|- |
|||
| UltimateTensileStrength || style="text-align:center;" | Pa || {{Version|1.0}} |
|||
|- |
|||
| UUID || |
|||
|- |
|||
| VacuumPermittivity || style="text-align:center;" | s^4*A^2 / (m^3*kg) |
|||
|- |
|||
| Vector || |
|||
|- |
|||
| VectorDistance || |
|||
|- |
|||
| VectorList || |
|||
|- |
|||
| Velocity|| style="text-align:center;" | m/s || {{Version|1.0}} |
|||
|- |
|||
| Volume || style="text-align:center;" | l or m^3 |
|||
|- |
|||
| VolumeFlowRate || style="text-align:center;" | l/s or m^3/s || {{Version|1.0}} |
|||
|- |
|||
| VolumetricThermalExpansionCoefficient || style="text-align:center;" | 1/K || {{Version|1.0}} |
|||
|- |
|||
| XLink || |
|||
|- |
|||
| XLinkList || |
|||
|- |
|||
| XLinkSub || |
|||
|- |
|||
| XLinkSubList || |
|||
|} |
|||
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}} : |
||
Line 95: | Line 268: | ||
== Script == |
== Script == |
||
<div class="mw-translate-fuzzy"> |
|||
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|FreeCAD Script de base]]. |
{{Emphasis|Voir aussi :}} [[FreeCAD_Scripting_Basics/fr|FreeCAD Script de base]]. |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
Un [[Scripted_objects/fr|objet scripté]] est créé en premier, puis les propriétés lui sont attribuées. |
Un [[Scripted_objects/fr|objet scripté]] est créé en premier, puis les propriétés lui sont attribuées. |
||
</div> |
|||
{{Code|code= |
{{Code|code= |
||
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
||
Line 112: | Line 289: | ||
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. |
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. |
||
{{Code|code= |
{{Code|code= |
||
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow") |
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow") |
||
Line 122: | Line 300: | ||
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]}}. |
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= |
{{Code|lang=cpp|code= |
||
#include "Property.h" |
#include "Property.h" |
||
Line 131: | Line 310: | ||
#include "PropertyExpressionEngine.h" |
#include "PropertyExpressionEngine.h" |
||
}} |
}} |
||
{{Powerdocnavi{{#translation:}}}} |
{{Powerdocnavi{{#translation:}}}} |
||
[[Category:Developer Documentation{{#translation:}}]] |
[[Category:Developer Documentation{{#translation:}}]] |
||
[[Category:Python Code{{#translation:}}]] |
[[Category:Python Code{{#translation:}}]] |
||
{{clear}} |
Revision as of 17:29, 17 March 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 1.0 |
Density | kg/m^3 | |
Direction | ||
DissipationRate | m^2/s^3 | introduced in version 1.0 |
Distance | m | |
DynamicViscosity | Pa*s | introduced in version 1.0 |
ElectricalCapacitance | F | introduced in version 1.0 |
ElectricalConductance | S | introduced in version 1.0 |
ElectricalConductivity | S/m | introduced in version 1.0 |
ElectricalInductance | H | introduced in version 1.0 |
ElectricalResistance | Ohm | introduced in version 1.0 |
ElectricCharge | C | introduced in version 1.0 |
ElectricCurrent | A | introduced in version 1.0 |
ElectricPotential | V | introduced in version 0.20 |
Enumeration | ||
ExpressionContainer | ||
ExpressionEngine | ||
File | ||
FileIncluded | ||
Float | ||
FloatConstraint | ||
FloatList | ||
Font | ||
Force | N | |
Frequency | Hz | |
Geometry | ||
HeatFlux | W/m^2 | introduced in version 1.0 |
Integer | ||
IntegerConstraint | ||
IntegerList | ||
IntegerSet | ||
InverseArea | 1/m^2 | introduced in version 1.0 |
InverseLength | 1/m | introduced in version 1.0 |
InverseVolume | 1/m^3 | introduced in version 1.0 |
KinematicViscosity | m^2/s | introduced in version 1.0 |
Length | m | |
Link | ||
LinkChild | ||
LinkGlobal | ||
LinkHidden | ||
LinkList | ||
LinkListChild | ||
LinkListGlobal | ||
LinkListHidden | ||
LinkSub | ||
LinkSubChild | ||
LinkSubGlobal | ||
LinkSubHidden | ||
LinkSubList | ||
LinkSubListChild | ||
LinkSubListGlobal | ||
LinkSubListHidden | ||
Lists | ||
LuminousIntensity | cd | introduced in version 1.0 |
MagneticFieldStrength | A/m | introduced in version 1.0 |
MagneticFlux | Wb or V*s | introduced in version 1.0 |
MagneticFluxDensity | T | introduced in version 1.0 |
Magnetization | A/m | introduced in version 1.0 |
Map | ||
Mass | kg | introduced in version 1.0 |
Material | ||
MaterialList | ||
Matrix | ||
PartShape | ||
Path | ||
Percent | ||
PersistentObject | ||
Placement | ||
PlacementLink | ||
PlacementList | ||
Position | ||
Power | W | introduced in version 1.0 |
Precision | ||
Pressure | Pa | |
PythonObject | ||
Quantity | ||
QuantityConstraint | ||
Rotation | ||
ShearModulus | Pa | introduced in version 1.0 |
SpecificEnergy | m^2/s^2 or J/kg | introduced in version 1.0 |
SpecificHeat | J/kg/K | introduced in version 1.0 |
Speed | m/s | |
Stiffness | m/s^2 | introduced in version 0.19 |
Stress | Pa | introduced in version 1.0 |
String | ||
StringList | ||
Temperature | K | introduced in version 1.0 |
ThermalConductivity | W/m/K | introduced in version 1.0 |
ThermalExpansionCoefficient | 1/K | introduced in version 1.0 |
ThermalTransferCoefficient | W/m^2/K | introduced in version 1.0 |
TimeSpan | s | introduced in version 1.0 |
UltimateTensileStrength | Pa | introduced in version 1.0 |
UUID | ||
VacuumPermittivity | s^4*A^2 / (m^3*kg) | |
Vector | ||
VectorDistance | ||
VectorList | ||
Velocity | m/s | introduced in version 1.0 |
Volume | l or m^3 | |
VolumeFlowRate | l/s or m^3/s | introduced in version 1.0 |
VolumetricThermalExpansionCoefficient | 1/K | introduced in version 1.0 |
XLink | ||
XLinkList | ||
XLinkSub | ||
XLinkSubList |
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é)