Std Part

From FreeCAD Documentation
Revision as of 00:16, 12 January 2020 by Vocx (talk | contribs) (A Std Part is internally called App Part (App::Part class), and is derived from an App GeoFeature (App::GeoFeature class), therefore it shares most of the latter's properties.)

Std Part

Menu location
None
Workbenches
All
Default shortcut
None
Introduced in version
0.17
See also
Std Group, PartDesign Body

Description

Std Part is a general purpose container that keeps together a group of objects so that they can be moved together as a unit in the 3D view.

A Std Part was developed to be used in assemblies, as one of its principal characteristics is that it has an Origin object which includes local X, Y, and Z axes, and standard planes. This Origin can serve as the reference to position and attach other objects inside the Std Part. The Std Part is principally envisioned to contain objects with a solid Part TopoShape, like Part Primitives and PartDesign Bodies, and other Std Parts in order to create complex arrangements of sub-assemblies. Nevertheless, it can also contain other objects like Mesh objects and Sketches.

The Std Part tool is not defined by a particular workbench, but by the base system. It is found in the structure toolbar.

Left: elements inside a Std Part in the tree view. Right: objects arranged in space, referred to the Origin defined by a Part.

Example uses

  • As an assembly container that groups objects to be manufactured separately then glued or screwed together, like a wooden table.
  • When importing a STEP assembly in FreeCAD, the main assembly and its sub-assemblies are Part containers.
  • A part that is composed of multiple non-fused components, like a ball bearing.

Active Status

A FreeCAD document can contain multiple Parts. Only one Part can be active at a time. An active Part will be displayed in the tree with a light blue background color.

File:Std Part-tree-active.png

Origin

The Origin consists of the three standard axes (X, Y, Z) and three standard planes (XY, XZ and YZ). Sketches can be attached to these planes. All elements inside the Part are referenced to the Part's Origin; which means that the Part can be moved and rotated in reference to the global coordinate system without affecting the placement of elements inside it.

File:PartDesign Body tree-02.png

Visibility Management

The Part's visibility supersedes the visibility of any object it contains. If the Part is hidden, the objects it contains will be hidden as well, even if their visibility is set to true. Multiple objects inside a Part can be visible at a time.

How to use

  1. Press the Std Part button. An empty Part is created and automatically becomes active.
  2. To add objects to a Part, drag and drop them over the Part in the tree view.
  3. To remove objects from a Part, drag them out of the Part, and onto the document label at the top of the tree view.

Notes

  • As of v0.19, a given object can only belong to a single Part.
  • Double-click the Part in the tree view or open the context menu (right-click) and select Toggle active part to activate or deactivate the Part. If another Part is active, it will be deactivated. See active status for more information.

Properties

A Std Part is internally called App Part (App::Part class), and is derived from an App GeoFeature (App::GeoFeature class), therefore it shares most of the latter's properties.

In addition to the properties described in App GeoFeature, the App Part class has some properties that help it manage information in the context of an assembly, for example, DataType, DataId, DataLicense, DataLicenseURL, DataColor, and DataGroup.

These are the properties available in the property editor. Hidden properties can be shown by using the Show all command in the context menu of the property editor.

Data

Base

  • DataType (String): a description for this object. By default, it is an empty string "".
  • DataId (String): and ID or part number of this object. By default, it is an empty string "".
  • DataLicense (String): a field to specify the license for this object. By default, it is an empty string "".
  • DataLicenseURL (String): a field to specify the web address to the license or contract for this object. By default, it is an empty string "".
  • DataColor (Color): a tuple of three floating point RGBA values (r,g,b,a) to define the color of the object; by default it is (1.0, 1.0, 1.0, 1.0), which is displayed as [255,255,255] on base 255, white.
  • DataPlacement (Placement): the position of the object in the 3D view. The placement is defined by a Base point (vector), and a Rotation (axis and angle). See Placement.
    • DataAngle: the angle of rotation around the DataAxis. By default, it is (zero degrees).
    • DataAxis: the unit vector that defines the axis of rotation for the placement. Each component is a floating point value between 0 and 1. If any value is above 1, the vector is normalized so that the magnitude of the vector is 1. By default, it is the positive Z axis, (0, 0, 1).
    • DataPosition: a vector with the 3D coordinates of the base point. By default, it is the origin (0, 0, 0).
  • DataLabel (String): the user editable name of this object, it is an arbitrary UTF8 string.
  • DataGroup (LinkList): a list of referenced objects. By default, it is empty [].

Hidden properties Data

  • DataMaterial (Map): map with material properties. By default, it is empty {}.
  • DataMeta (Map): map with additional meta information. By default, it is empty {}.
  • DataUid (UUID): UUID of the object.
  • DataLabel2 (String): a longer, user editable description of this object, it is an arbitrary UTF8 string that may include newlines. By default, it is an empty string "".
  • DataExpression Engine (ExpressionEngine): a list of expressions. By default, it is empty [].
  • DataVisibility (Bool): whether to display the object or not.
  • DataOrigin (Link): Origin object linked to the group.
  • Data_ Group Touched (Bool): whether the group is touched or not.

View

The App Part only has five of the properties of the basic App GeoFeature, and it does not have hidden properties.

Base

  • ViewDisplay Mode (Enumeration): Group.
  • ViewOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • ViewSelection Style (Enumeration): Shape (default), BoundBox. If the option is Shape, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it is BoundBox only the bounding box will be highlighted.
  • ViewShow In Tree (Bool): if it is true, the object appears in the tree view. Otherwise, it is set as invisible.
  • ViewVisibility (Bool): if it is true, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the Space bar in the keyboard.

Limitations

  • Even when a Part is active, newly created objects are not placed inside the Part, but at the bottom of the tree. Simply drag and drop them over the Part.
  • A Part has no shape. It is therefore not possible to apply most 3D operations on a Part, such as Part Booleans.
  • At this time, Draft Snaps do not work on selected Part containers or on objects inside a Part container.
  • Redactor's note: at this time, it is unclear whether the Part's active status serves a purpose.

Inheritance

A Std Part is formally an instance of the class App::Part, whose parent is the basic App GeoFeature (App::GeoFeature class).

Simplified diagram of the relationships between the core objects in the program. The App::Part class is a simple group that has a position in 3D space, and controls the placement of other objects it contains.

Scripting

Following command adds new group to the active document:

App.ActiveDocument.addObject("App::Part", "Part")