Property/it: Difference between revisions
Renatorivo (talk | contribs) (Created page with "Prima viene creato un oggetto script, quindi gli vengono assegnate le proprietà.") |
(Updating to match new version of source page) |
||
(21 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
<span id="Introduction"></span> |
|||
== Introduzione == |
== Introduzione == |
||
Una [[Property/it|proprietà]] è una parte di informazione sotto forma di numero o di stringa di testo che viene allegata a un documento di FreeCAD oppure a un oggetto di un documento. Le proprietà pubbliche possono essere visualizzate e, se consentito, modificate nell'[[Property editor/it|editore delle proprietà]]. |
Una [[Property/it|proprietà]] è una parte di informazione sotto forma di numero o di stringa di testo che viene allegata a un documento di FreeCAD oppure a un oggetto di un documento. Le proprietà pubbliche possono essere visualizzate e, se consentito, modificate nell'[[Property editor/it|editore delle proprietà]]. |
||
In FreeCAD le proprietà svolgono un ruolo molto importante. Dato che gli oggetti in FreeCAD sono "parametrici", ciò significa che il loro comportamento è definito dalle loro proprietà e dal modo in cui queste proprietà vengono utilizzate come input per i loro metodi delle classi. |
In FreeCAD le proprietà svolgono un ruolo molto importante. Dato che gli oggetti in FreeCAD sono "parametrici", ciò significa che il loro comportamento è definito dalle loro proprietà e dal modo in cui queste proprietà vengono utilizzate come input per i loro metodi delle classi. Vedere anche [[FeaturePython_Custom_Properties/it|FeaturePython Custom Properties]] e [[PropertyLink:_InList_and_OutList/it|PropertyLink: InList e OutList]] |
||
<span id="All_property_types"></span> |
|||
== Tutti i tipi di proprietà == |
== Tutti i tipi di proprietà == |
||
In FreeCAD gli oggetti [[ |
In FreeCAD gli oggetti [[Scripted_objects/it|script personalizzati]] possono utilizzare uno qualsiasi dei tipi di proprietà definiti nel sistema di base: |
||
{{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}} |
|||
|} |
|||
Internamente, il nome della proprietà ha il prefisso {{incode|App::Property}}: |
Internamente, il nome della proprietà ha il prefisso {{incode|App::Property}}: |
||
Line 67: | Line 264: | ||
Ciò indica un oggetto con tre proprietà di tipo "Float", denominate rispettivamente "Length", "Width", e "Height". |
Ciò indica un oggetto con tre proprietà di tipo "Float", denominate rispettivamente "Length", "Width", e "Height". |
||
<span id="Scripting"></span> |
|||
== Script == |
== Script == |
||
{{Emphasis|Vedere anche:}} [[ |
{{Emphasis|Vedere anche:}} [[FreeCAD_Scripting_Basics/it|Script di base per FreeCAD]] |
||
Prima viene creato un [[ |
Prima viene creato un [[Scripted_objects/it|oggetto script]], quindi gli vengono assegnate le proprietà. |
||
{{Code|code= |
{{Code|code= |
||
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
obj = App.ActiveDocument.addObject("Part::Feature", "CustomObject") |
||
Line 79: | Line 277: | ||
}} |
}} |
||
In |
In generale, le proprietà {{Emphasis|Data}} sono assegnate usando il metodo {{incode|addProperty()}} dell'oggetto. D'altra parte, le proprietà {{Emphasis|View}} sono normalmente fornite automaticamente dall'oggetto genitore da cui deriva l'oggetto script. |
||
Per esempio: |
|||
For example: |
|||
* |
* Derivato da {{incode|App::FeaturePython}} fornisce solo 4 proprietà {{Emphasis|View}}: "Display Mode", "On Top When Selected", "Show In Tree", e "Visibility". |
||
* |
* Derivato da {{incode|Part::Feature}} fornisce 17 proprietà {{Emphasis|View}}: le quattro precedenti più "Angular Deflection", "Bounding Box", "Deviation", "Draw Style", "Lighting", "Line Color", "Line Width", "Point Color", "Point Size", "Selectable", "Selection Style", "Shape Color", e "Transparency". |
||
Tuttavia, le proprietà {{Emphasis|View}} possono anche essere assegnate usando il metodo {{incode|addProperty()}} dell'oggetto fornitore della vista. |
|||
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", " |
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow") |
||
}} |
}} |
||
{{Docnav/it|[[Interface Customization/it|Personalizzare l'interfaccia]]|[[Workbenches/it|Ambienti di lavoro]]}} |
|||
<span id="Source_code"></span> |
|||
{{Userdocnavi/it}} |
|||
== Codice sorgente == |
|||
Nel codice sorgente, le proprietà si trovano in vari file {{FileName|src/App/Property*}}. |
|||
Vengono importati e inizializzati 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/it]] |
|||
{{Powerdocnavi{{#translation:}}}} |
|||
{{clear}} |
|||
[[Category:Developer Documentation{{#translation:}}]] |
|||
[[Category:Python Code{{#translation:}}]] |
Latest revision as of 16:26, 20 May 2023
Introduzione
Una proprietà è una parte di informazione sotto forma di numero o di stringa di testo che viene allegata a un documento di FreeCAD oppure a un oggetto di un documento. Le proprietà pubbliche possono essere visualizzate e, se consentito, modificate nell'editore delle proprietà.
In FreeCAD le proprietà svolgono un ruolo molto importante. Dato che gli oggetti in FreeCAD sono "parametrici", ciò significa che il loro comportamento è definito dalle loro proprietà e dal modo in cui queste proprietà vengono utilizzate come input per i loro metodi delle classi. Vedere anche FeaturePython Custom Properties e PropertyLink: InList e OutList
Tutti i tipi di proprietà
In FreeCAD gli oggetti script personalizzati possono utilizzare uno qualsiasi dei tipi di proprietà definiti nel sistema di base:
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 |
Internamente, il nome della proprietà ha il prefisso App::Property
:
App::PropertyBool
App::PropertyFloat
App::PropertyFloatList
...
Ricordare che queste sono della proprietà types. Un singolo oggetto può avere molte proprietà dello stesso tipo, ma con nomi diversi.
Per esempio:
obj.addProperty("App::PropertyFloat", "Length")
obj.addProperty("App::PropertyFloat", "Width")
obj.addProperty("App::PropertyFloat", "Height")
Ciò indica un oggetto con tre proprietà di tipo "Float", denominate rispettivamente "Length", "Width", e "Height".
Script
Vedere anche: Script di base per FreeCAD
Prima viene creato un oggetto script, quindi gli vengono assegnate le proprietà.
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 generale, le proprietà Data sono assegnate usando il metodo addProperty()
dell'oggetto. D'altra parte, le proprietà View sono normalmente fornite automaticamente dall'oggetto genitore da cui deriva l'oggetto script.
Per esempio:
- Derivato da
App::FeaturePython
fornisce solo 4 proprietà View: "Display Mode", "On Top When Selected", "Show In Tree", e "Visibility". - Derivato da
Part::Feature
fornisce 17 proprietà View: le quattro precedenti più "Angular Deflection", "Bounding Box", "Deviation", "Draw Style", "Lighting", "Line Color", "Line Width", "Point Color", "Point Size", "Selectable", "Selection Style", "Shape Color", e "Transparency".
Tuttavia, le proprietà View possono anche essere assegnate usando il metodo addProperty()
dell'oggetto fornitore della vista.
obj.ViewObject.addProperty("App::PropertyBool", "SuperVisibility", "Base", "Make the object glow")
Codice sorgente
Nel codice sorgente, le proprietà si trovano in vari file src/App/Property*.
Vengono importati e inizializzati 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