Property/tr: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 17: Line 17:
</div>
</div>
{{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:46, 3 August 2022

Introduction

Property bir FreeCAD belgesine veya belgedeki bir nesneye eklenmiş bir sayı veya metin dizesi gibi bir bilgi parçasıdır. Özellikler Özellik düzenleyici ile görüntülenebilir ve değiştirilebilir.

Özellikler FreeCAD'de çok önemli bir rol oynar, çünkü sadece özellikleri tarafından tanımlanan nesneler olan parametrik nesnelerle çalışmak üzere tasarlanmıştır.

All property types

FreeCAD'deki Özel Betik nesneleri aşağıdaki tür özelliklere sahip olabilir:

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

Internally, the property name is prefixed with App::Property:

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

Remember that these are property types. A single object may have many properties of the same type, but with different names.

For example:

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

This indicates an object with three properties of type "Float", named "Length", "Width", and "Height", respectively.

Scripting

See also: FreeCAD scripting basics

A scripted object is created first, and then properties are assigned.

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

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"