Property/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


== Introduction ==
<span id="Introduction"></span>
==Einleitung==


Eine [[Property/de|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 [[Property editor/de|Eigenschaftseditor]] angezeigt und geändert werden.
<div class="mw-translate-fuzzy">
Eine '''Eigenschaft''' ist ein Stück Information wie eine Zahl oder eine Zeichenkette, das mit einem FreeCAD-Dokument oder einem Objekt eines Dokuments verbunden ist. Eigenschaften können mit dem [[Property editor/de|Eigenschaftseditor]] angezeigt und geändert werden.
</div>


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/de|FeaturePython Custom Properties]] and [[PropertyLink:_InList_and_OutList/de|PropertyLink: InList and OutList]]
<div class="mw-translate-fuzzy">
Eigenschaften spielen in FreeCAD eine sehr wichtige Rolle, da es konstruiert wurde, um mit parametrischen Objekten zu arbeiten, die nur durch ihre Eigenschaften definiert werden.
</div>


<span id="All_property_types"></span>
== All property types ==
==Alle Arten von Eigenschaften==


Benutzerdefinierte [[scripted_objects/de|skriptgenerierte Objekte]] können jede Art der Eigenschaften verwenden, die im Basis-System definiert ist:
<div class="mw-translate-fuzzy">

Benutzerdefinierte [[scripted objects/de|geskriptete Objekte]] in FreeCAD können Eigenschaften der folgenden Typen besitzen:
{| class="sortable wikitable"
</div>
|-
{{Code|code=
! Name !! Unit (if any) !! Remark
Bool
|-
Float
| Acceleration || style="text-align:center;" | m/s^2
FloatList
|-
FloatConstraint
| AmountOfSubstance || style="text-align:center;" | mol
Angle
|-
Distance
| Angle || style="text-align:center;" | °
ExpressionEngine
|-
Integer
| Area || style="text-align:center;" | m^2
IntegerConstraint
|-
Percent
| Bool ||
Enumeration
|-
IntegerList
| BoolList ||
String
|-
StringList
| Color ||
Length
|-
Link
| ColorList ||
LinkList
|-
LinkSubList
| CurrentDensity || style="text-align:center;" | A/m^2 || {{Version|0.21}}
Matrix
|-
Vector
| Density || style="text-align:center;" | kg/m^3
VectorList
|-
VectorDistance
| Direction ||
Placement
|-
PlacementLink
| DissipationRate || style="text-align:center;" | m^2/s^3 || {{Version|0.21}}
PythonObject
|-
Color
| Distance || style="text-align:center;" | m
ColorList
|-
Material
| DynamicViscosity || style="text-align:center;" | Pa*s || {{Version|0.21}}
Path
|-
File
| ElectricalCapacitance || style="text-align:center;" | F || {{Version|0.21}}
FileIncluded
|-
PartShape
| ElectricalConductance || style="text-align:center;" | S || {{Version|0.21}}
FilletContour
|-
Circle
| 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}}
|}


Internally, the property name is prefixed with {{incode|App::Property}}:
Intern wird den Eigenschaften das Präfix App:: vorangestellt {{incode|App::Property}}:
{{Code|code=
{{Code|code=
App::PropertyBool
App::PropertyBool
Line 61: Line 252:
}}
}}


Remember that these are property {{Emphasis|types}}. A single object may have many properties of the same type, but with different names.
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 71: Line 262:
}}
}}


This indicates an object with three properties of type "Float", named "Length", "Width", and "Height", respectively.
Dies stellt ein Objekt mit drei Eigenschaften der Art "Float" (Fließkommawert)dar, die "Length", "Width" und "Height" heißen.


== Scripting ==
<span id="Scripting"></span>
==Skripten==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD scripting basics]]
{{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 92: 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")
}}
}}
{{docnav/de|[[Interface Customization/de|Benutzeroberfläche anpassen]]|[[Workbenches/de|Arbeiten mit Arbeitsbereichen]]}}


<span id="Source_code"></span>
<div class="mw-translate-fuzzy">
==Quellcode==
[[Category:User Documentation/de]]

</div>
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]}}.

{{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/de]]


{{Powerdocnavi{{#translation:}}}}
{{clear}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]

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 as
Part::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"