Property/de: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
==Alle Arten von Eigenschaften== |
==Alle Arten von Eigenschaften== |
||
Benutzerdefinierte [[ |
Benutzerdefinierte [[scripted_objects/de|skriptgenerierte Objekte]] können jede Art der Eigenschaften verwenden, die im Basis-System definiert ist: |
||
{| 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|0.21}} |
|||
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|0.21}} |
|||
IntegerSet |
|||
|- |
|||
Length |
|||
| Distance || style="text-align:center;" | m |
|||
Link |
|||
|- |
|||
LinkList |
|||
| DynamicViscosity || style="text-align:center;" | Pa*s || {{Version|0.21}} |
|||
LinkSubList |
|||
|- |
|||
Lists |
|||
| ElectricalCapacitance || style="text-align:center;" | F || {{Version|0.21}} |
|||
Map |
|||
|- |
|||
Material |
|||
| ElectricalConductance || style="text-align:center;" | S || {{Version|0.21}} |
|||
MaterialList |
|||
|- |
|||
Matrix |
|||
| ElectricalConductivity || style="text-align:center;" | S/m || {{Version|0.21}} |
|||
PartShape |
|||
|- |
|||
Path |
|||
| ElectricalInductance|| style="text-align:center;" | H || {{Version|0.21}} |
|||
Percent |
|||
|- |
|||
Placement |
|||
| ElectricalResistance || style="text-align:center;" | Ohm || {{Version|0.21}} |
|||
PlacementLink |
|||
|- |
|||
PlacementList |
|||
| ElectricCharge || style="text-align:center;" | C || {{Version|0.21}} |
|||
Position |
|||
|- |
|||
Precision |
|||
| ElectricCurrent || style="text-align:center;" | A || {{Version|0.21}} |
|||
Pressure |
|||
|- |
|||
PythonObject |
|||
| ElectricPotential || style="text-align:center;" | V || {{Version|0.20}} |
|||
Quantity |
|||
|- |
|||
QuantityConstraint |
|||
| Enumeration || |
|||
Rotation |
|||
|- |
|||
Speed |
|||
| ExpressionEngine || |
|||
Stiffness |
|||
|- |
|||
String |
|||
| File || |
|||
StringList |
|||
|- |
|||
VacuumPermittivity |
|||
| FileIncluded || |
|||
Vector |
|||
|- |
|||
VectorDistance |
|||
| Float || |
|||
VectorList |
|||
|- |
|||
Volume |
|||
| 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}} |
|||
|} |
|||
Intern wird den Eigenschaften das Präfix App:: vorangestellt {{incode|App::Property}}: |
Intern wird den Eigenschaften das Präfix App:: vorangestellt {{incode|App::Property}}: |
||
Line 81: | Line 252: | ||
}} |
}} |
||
Nicht vergessen, diese sind {{Emphasis|Arten}} von Eigenschaften (property {{Emphasis|types}}). Ein einzelnes Objekt kann mehrere Eigenschaften derselben Art aber mit unterschiedlichen Namen besitzen. |
|||
Zum Beispiel: |
|||
For example: |
|||
{{Code|code= |
{{Code|code= |
||
Line 91: | Line 262: | ||
}} |
}} |
||
Dies stellt ein Objekt mit drei Eigenschaften der Art "Float" (Fließkommawert)dar, die "Length", "Width" und "Height" heißen. |
|||
= |
<span id="Scripting"></span> |
||
==Skripten== |
|||
{{Emphasis| |
{{Emphasis|Siehe auch:}} [[FreeCAD_Scripting_Basics/de|FreeCAD Grundlagen Skripten]]. |
||
Ein [[Scripted_objects/de|skriptgeneriertes Objekt]] wird zuerst erstellt und danach werden ihm Eigenschaften hinzugefügt. |
|||
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 112: | Line 284: | ||
Nevertheless, {{Emphasis|View}} properties can also be assigned using the view provider object's {{incode|addProperty()}} method. |
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", "SuperVisibility", "Base", "Make the object glow") |
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow") |
||
}} |
}} |
||
<span id="Source_code"></span> |
|||
== Source code == |
|||
==Quellcode== |
|||
In the source code, properties are located in various {{FileName|src/App/Property*}} files. |
In the source code, properties are located in various {{FileName|src/App/Property*}} files. |
||
They are imported and initialized in {{incode|[https://github.com/FreeCAD/FreeCAD/blob/9c27f1078e5ec516fe882aac1a27f5c6c6174554/src/App/Application.cpp#L1681-L1758 src/App/Application.cpp]}}. |
They are imported and initialized in {{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 130: | Line 305: | ||
#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}} |
Latest revision as of 16:26, 20 May 2023
Einleitung
Eine Eigenschaft ist eine Information in Form einer Zahl oder einer Zeichenkette, die mit einem FreeCAD-Dokument oder einem Objekt in einem Dokument verbunden ist. Öffentliche Eigenschaften können mit dem Eigenschaftseditor angezeigt und geändert werden.
Eigenschaften spielen in FreeCAD eine sehr wichtige Rolle. Objekte in FreeCAD sind "parametrisch", d.h. ihr Verhalten wird durch ihre Eigenschaften festgelegt, die als Eingangsgrößen für ihre Klassenmethoden genutzt werden. Siehe auch FeaturePython Custom Properties and PropertyLink: InList and OutList
Alle Arten von Eigenschaften
Benutzerdefinierte skriptgenerierte Objekte können jede Art der Eigenschaften verwenden, die im Basis-System definiert ist:
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 |
Intern wird den Eigenschaften das Präfix App:: vorangestellt App::Property
:
App::PropertyBool
App::PropertyFloat
App::PropertyFloatList
...
Nicht vergessen, diese sind Arten von Eigenschaften (property types). Ein einzelnes Objekt kann mehrere Eigenschaften derselben Art aber mit unterschiedlichen Namen besitzen.
Zum Beispiel:
obj.addProperty("App::PropertyFloat", "Length")
obj.addProperty("App::PropertyFloat", "Width")
obj.addProperty("App::PropertyFloat", "Height")
Dies stellt ein Objekt mit drei Eigenschaften der Art "Float" (Fließkommawert)dar, die "Length", "Width" und "Height" heißen.
Skripten
Siehe auch: FreeCAD Grundlagen Skripten.
Ein skriptgeneriertes Objekt wird zuerst erstellt und danach werden ihm Eigenschaften hinzugefügt.
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject")
obj.addProperty("App::PropertyFloat", "Velocity", "Parameter", "Body speed")
obj.addProperty("App::PropertyBool", "VelocityEnabled", "Parameter", "Enable body speed")
In general, Data properties are assigned by using the object's addProperty()
method. On the other hand, View properties are normally provided automatically by the parent object from which the scripted object is derived.
For example:
- Deriving from
App::FeaturePython
provides only 4 View properties: "Display Mode", "On Top When Selected", "Show In Tree", and "Visibility". - Deriving from
Part::Feature
provides 17 View properties: the previous four, plus "Angular Deflection", "Bounding Box", "Deviation", "Draw Style", "Lighting", "Line Color", "Line Width", "Point Color", "Point Size", "Selectable", "Selection Style", "Shape Color", and "Transparency".
Nevertheless, View properties can also be assigned using the view provider object's addProperty()
method.
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow")
Quellcode
In the source code, properties are located in various src/App/Property* files.
They are imported and initialized in 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"
- FreeCAD scripting: Python, Introduction to Python, Python scripting tutorial, FreeCAD Scripting Basics
- Modules: Builtin modules, Units, Quantity
- Workbenches: Workbench creation, Gui Commands, Commands, Installing more workbenches
- Meshes and Parts: Mesh Scripting, Topological data scripting, Mesh to Part, PythonOCC
- Parametric objects: Scripted objects, Viewproviders (Custom icon in tree view)
- Scenegraph: Coin (Inventor) scenegraph, Pivy
- Graphical interface: Interface creation, Interface creation completely in Python (1, 2, 3, 4, 5), PySide, PySide examples beginner, intermediate, advanced
- Macros: Macros, How to install macros
- Embedding: Embedding FreeCAD, Embedding FreeCADGui
- Other: Expressions, Code snippets, Line drawing function, FreeCAD vector math library (deprecated)
- Hubs: User hub, Power users hub, Developer hub