Property/it: Difference between revisions

From FreeCAD Documentation
(Created page with "Internamente, il nome della proprietà ha il prefisso {{incode|App::Property}}:")
(Updating to match new version of source page)
 
(27 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 [[scripted objects/it|script personalizzati]] possono utilizzare uno qualsiasi dei tipi di proprietà definiti nel sistema di base:
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 55: Line 252:
}}
}}


Remember that these are property {{Emphasis|types}}. A single object may have many properties of the same type, but with different names.
Ricordare che queste sono della proprietà {{Emphasis|types}}. Un singolo oggetto può avere molte proprietà dello stesso tipo, ma con nomi diversi.


Per esempio:
For example:


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


This indicates an object with three properties of type "Float", named "Length", "Width", and "Height", respectively.
Ciò indica un oggetto con tre proprietà di tipo "Float", denominate rispettivamente "Length", "Width", e "Height".


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


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD scripting basics]]
{{Emphasis|Vedere anche:}} [[FreeCAD_Scripting_Basics/it|Script di base per FreeCAD]]


Prima viene creato un [[Scripted_objects/it|oggetto script]], quindi gli vengono assegnate le proprietà.
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.
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:
* Deriving from {{incode|App::FeaturePython}} provides only 4 {{Emphasis|View}} properties: "Display Mode", "On Top When Selected", "Show In Tree", and "Visibility".
* Derivato da {{incode|App::FeaturePython}} fornisce solo 4 proprietà {{Emphasis|View}}: "Display Mode", "On Top When Selected", "Show In Tree", e "Visibility".
* 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".
* 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", "SupeVisibility", "Base", "Make the object glow")
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 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

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"