Propriétés des objets
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é)