Property/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 13: Line 13:
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=
{{Code|code=
Acceleration
Bool
Float
FloatList
FloatConstraint
Angle
Angle
Area
Bool
BoolList
Color
ColorList
Direction
Distance
Distance
ElectricPotential
Enumeration
ExpressionContainer
ExpressionEngine
ExpressionEngine
File
FileIncluded
Float
FloatConstraint
FloatList
Font
Force
Frequency
Geometry
Integer
Integer
IntegerConstraint
IntegerConstraint
Percent
Enumeration
IntegerList
IntegerList
IntegerSet
String
StringList
Length
Length
Link
Link
LinkList
LinkList
LinkSubList
LinkSubList
Lists
Map
Material
MaterialList
Matrix
Matrix
PartShape
Vector
Path
VectorList
Percent
VectorDistance
Placement
Placement
PlacementLink
PlacementLink
PlacementList
Position
Precision
Pressure
PythonObject
PythonObject
Quantity
Color
QuantityConstraint
ColorList
Rotation
Material
Speed
Path
Stiffness
File
String
FileIncluded
StringList
PartShape
VacuumPermittivity
FilletContour
Vector
Circle
VectorDistance
VectorList
Volume
}}
}}



Revision as of 14:45, 3 August 2022

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.

Tutti i tipi di proprietà

In FreeCAD gli oggetti script personalizzati possono utilizzare uno qualsiasi dei tipi di proprietà definiti nel sistema di base:

Acceleration
Angle
Area
Bool
BoolList
Color
ColorList
Direction
Distance
ElectricPotential
Enumeration
ExpressionContainer
ExpressionEngine
File
FileIncluded
Float
FloatConstraint
FloatList
Font
Force
Frequency
Geometry
Integer
IntegerConstraint
IntegerList
IntegerSet
Length
Link
LinkList
LinkSubList
Lists
Map
Material
MaterialList
Matrix
PartShape
Path
Percent
Placement
PlacementLink
PlacementList
Position
Precision
Pressure
PythonObject
Quantity
QuantityConstraint
Rotation
Speed
Stiffness
String
StringList
VacuumPermittivity
Vector
VectorDistance
VectorList
Volume

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")

Source code

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"