Property/pl: Difference between revisions

From FreeCAD Documentation
(Created page with "Pamiętajcie, że to są właściwości {{Emphasis|typów}}. Pojedynczy obiekt może mieć wiele właściwości tego samego typu, ale o różnych nazwach.")
(Updating to match new version of source page)
 
(39 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


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


[[Property|Właściwości]] to informacje takie jak liczba lub łańcuch tekstowy, który jest dołączony do dokumentu FreeCAD, lub obiektu w dokumencie. Właściwości ogólnodostępne można przeglądać i modyfikować w [[Property editor|Edytorze właściwości]].
[[Property|Właściwości]] to informacje takie jak liczba lub łańcuch tekstowy, który jest dołączony do dokumentu FreeCAD, lub obiektu w dokumencie. Właściwości ogólnodostępne można przeglądać i modyfikować w [[Property editor|Edytorze właściwości]].


Właściwości odgrywają bardzo ważną rolę w FreeCAD. Ponieważ obiekty w FreeCAD są '''parametryczne''', oznacza to, że ich zachowanie jest definiowane przez ich właściwości, i jak te właściwości są wykorzystywane jako dane wejściowe dla ich metod klasowych.
Właściwości odgrywają bardzo ważną rolę w FreeCAD. Ponieważ obiekty w FreeCAD są '''parametryczne''', oznacza to, że ich zachowanie jest definiowane przez ich właściwości, i jak te właściwości są wykorzystywane jako dane wejściowe dla ich metod klasowych. Zobacz również [[FeaturePython_Custom_Properties/pl|Właściwości niestandardowe funkcji Python]] oraz [[PropertyLink:_InList_and_OutList/pl|wskaźnik właściwości: InList oraz OutList]].


<span id="All_property_types"></span>
==Wszystkie rodzaje właściwości==
==Wszystkie rodzaje właściwości==


Niestandardowe [[scripted objects|obiekty skryptowe]] mogą używać dowolnych typów właściwości zdefiniowanych w systemie bazowym:
Niestandardowe [[Scripted_objects/pl|obiekty tworzone skryptami]] mogą używać dowolnych typów właściwości zdefiniowanych w systemie bazowym:

{{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}}
|}


Wewnętrzne, nazwa właściwości jest poprzedzona przez {{incode|App::Property}}:
Wewnętrzne, nazwa właściwości jest poprzedzona przez {{incode|App::Property}}:
Line 57: Line 254:
Pamiętajcie, że to są właściwości {{Emphasis|typów}}. Pojedynczy obiekt może mieć wiele właściwości tego samego typu, ale o różnych nazwach.
Pamiętajcie, że to są właściwości {{Emphasis|typów}}. Pojedynczy obiekt może mieć wiele właściwości tego samego typu, ale o różnych nazwach.


Dla przykładu:
For example:


{{Code|code=
{{Code|code=
Line 65: Line 262:
}}
}}


Wskazuje to obiekt o trzech właściwościach typu '''Float''', nazwanych odpowiednio Długość, Szerokość i Wysokość.
This indicates an object with three properties of type "Float", named "Length", "Width", and "Height", respectively.


== Scripting ==
<span id="Scripting"></span>
==Tworzenie skryptów==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD scripting basics]]
{{Emphasis|Zobacz również:}} [[FreeCAD_Scripting_Basics/pl|FreeCAD podstawy tworzenia skryptów]].


[[Scripted_objects/pl|Obiekty tworzone skryptami]] jest generowany w pierwszej kolejności, a następnie przypisywane są mu właściwości.
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 79: Line 277:
}}
}}


In general, {{Emphasis|Data}} properties are assigned by using the object's {{incode|addProperty()}} method. On the other hand, {{Emphasis|View}} properties are normally provided automatically by the parent object from which the scripted object is derived.
Ogólnie rzecz biorąc, właściwości {{Emphasis|Dane}} przypisywane za pomocą metody obiektu {{incode|addProperty()}}. Z drugiej strony, właściwości {{Emphasis|Widok}} zazwyczaj dostarczane automatycznie przez obiekt nadrzędny, z którego pochodzi skrypt.


Na przykład:
For example:
* Deriving from {{incode|App::FeaturePython}} provides only 4 {{Emphasis|View}} properties: "Display Mode", "On Top When Selected", "Show In Tree", and "Visibility".
*Pochodzący z {{incode|App::FeaturePython}} dostarcza tylko 4 właściwości {{Emphasis|widoku}}: Tryb wyświetlania, Na górze po wybraniu, Pokaż w drzewie, i Widoczność.
* Deriving from {{incode|Part::Feature}} provides 17 {{Emphasis|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".
*Pochodzący z {{incode|Part::Feature}} dostarcza 17 właściwości {{Emphasis|widoku}}: poprzednie cztery, plus Odchylenie kątowe, Ramka wiążąca, Odchylenie, Styl rysowania, Oświetlenie, Kolor linii, Szerokość linii, Kolor punktu, Rozmiar punktu, Wybór, Styl wyboru, Kolor kształtu i Przezroczystość.

Niemniej jednak, właściwości {{Emphasis|widoku}} można również przypisać za pomocą metody obiektu dostawcy widoku {{incode|addProperty()}}.


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/pl|Interface Customization/pl|Workbenches/pl}}


<span id="Source_code"></span>
{{Userdocnavi/pl}}
==Kod źródłowy==

W kodzie źródłowym właściwości znajdują się w różnych plikach {{FileName|src/App/Property*}}.

Są one importowane i inicjowane w {{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:27, 20 May 2023

Wprowadzenie

Właściwości to informacje takie jak liczba lub łańcuch tekstowy, który jest dołączony do dokumentu FreeCAD, lub obiektu w dokumencie. Właściwości ogólnodostępne można przeglądać i modyfikować w Edytorze właściwości.

Właściwości odgrywają bardzo ważną rolę w FreeCAD. Ponieważ obiekty w FreeCAD są parametryczne, oznacza to, że ich zachowanie jest definiowane przez ich właściwości, i jak te właściwości są wykorzystywane jako dane wejściowe dla ich metod klasowych. Zobacz również Właściwości niestandardowe funkcji Python oraz wskaźnik właściwości: InList oraz OutList.

Wszystkie rodzaje właściwości

Niestandardowe obiekty tworzone skryptami mogą używać dowolnych typów właściwości zdefiniowanych w systemie bazowym:

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

Wewnętrzne, nazwa właściwości jest poprzedzona przez App::Property:

App::PropertyBool
App::PropertyFloat
App::PropertyFloatList
...

Pamiętajcie, że to są właściwości typów. Pojedynczy obiekt może mieć wiele właściwości tego samego typu, ale o różnych nazwach.

Dla przykładu:

obj.addProperty("App::PropertyFloat", "Length")
obj.addProperty("App::PropertyFloat", "Width")
obj.addProperty("App::PropertyFloat", "Height")

Wskazuje to obiekt o trzech właściwościach typu Float, nazwanych odpowiednio Długość, Szerokość i Wysokość.

Tworzenie skryptów

Zobacz również: FreeCAD podstawy tworzenia skryptów.

Obiekty tworzone skryptami jest generowany w pierwszej kolejności, a następnie przypisywane są mu właściwości.

obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject")

obj.addProperty("App::PropertyFloat", "Velocity", "Parameter", "Body speed")
obj.addProperty("App::PropertyBool", "VelocityEnabled", "Parameter", "Enable body speed")

Ogólnie rzecz biorąc, właściwości Dane są przypisywane za pomocą metody obiektu addProperty(). Z drugiej strony, właściwości Widok są zazwyczaj dostarczane automatycznie przez obiekt nadrzędny, z którego pochodzi skrypt.

Na przykład:

  • Pochodzący z App::FeaturePython dostarcza tylko 4 właściwości widoku: Tryb wyświetlania, Na górze po wybraniu, Pokaż w drzewie, i Widoczność.
  • Pochodzący z Part::Feature dostarcza 17 właściwości widoku: poprzednie cztery, plus Odchylenie kątowe, Ramka wiążąca, Odchylenie, Styl rysowania, Oświetlenie, Kolor linii, Szerokość linii, Kolor punktu, Rozmiar punktu, Wybór, Styl wyboru, Kolor kształtu i Przezroczystość.

Niemniej jednak, właściwości widoku można również przypisać za pomocą metody obiektu dostawcy widoku addProperty().

obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow")

Kod źródłowy

W kodzie źródłowym właściwości znajdują się w różnych plikach src/App/Property*.

Są one importowane i inicjowane w 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"