Std Part

Description
(Std_Part), internally called App_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.

The Part element was developed to be the basic building block to create mechanical assemblies. In particular, it is meant to arrange objects that have a Part TopoShape, such as Primitives, Bodies, and other Features. The Part provides an Origin object with local X, Y, and Z axes, and their corresponding standard planes. These are used to reference the position the contained objects. In addition, Parts may be nested within another Part to create a larger assembly from smaller sub-assemblies.

Although it is primarily intended for solid bodies, the Part can be used to manage any object that has a Placement property, so it can also contain Mesh Features, Sketches, and other objects derived from the App_GeoFeature class.

Do not confuse the (PartDesign_Body) with the  (Std_Part). The first one is a specific object used in the Part Design Workbench, intended to model a single contiguous solid by means of Part Design Features.

By contrast, Part is not used for modelling. It's solely used to arrange its contained objects in space relative to a common Origin to facilitate the creation of assemblies.

The (Std_Part) tool is not defined by a particular workbench, but by the base system. Thus it is found in the that is available to all Workbenches. To group objects arbitrarily without considering their position, use (Std_Group); this object does not affect the placements of the elements that it contains, it is essentially just a folder that is used to keep the Tree View organized.



Usage

 * 1) Pressing the  (Std_Part) button, creates an empty Part container and automatically sets its status to active.
 * 2) To add objects to a Part: select them in the Tree View, then drag and drop them over the Part label.
 * 3) To remove objects from a Part: select them in the Tree View, drag them out of the Part, and drop them on their Document label within the Tree View.

Limitations

 * At this time, Draft Snap methods do not work on selected Part containers nor on the objects inside of them.
 * A Part has no Topological Shape, therefore 3D operations like Part Boolean cannot be used on Part itself (e.g. you cannot select two Parts, and perform a Part Fuse or Part Cut with them). These boolean operations only work on the contained objects as long as these are derived from Part Feature and have a Topological Shape.

Properties
A Part (Std_Part) is internally called App_Part ( class), and is derived from an 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 (e.g., , , , , and ).

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

Data

 * : a description for this object. By default, it is an empty string.
 * : an identification or part number for this object. By default, it is an empty string.
 * : a field to specify the license for this object. By default, it is an empty string.
 * : a field to specify the web address to the license or contract for this object. By default, it is an empty string.
 * : a tuple of four floating point RGBA values to define the color of the object; by default it is, which is displayed as  on base 255, white color.
 * : the position of the object in the 3D view. The placement is defined by a point (vector), and a  (axis and angle). See Placement.
 * : the angle of rotation around the . By default, it is (zero degrees).
 * : the unit vector that defines the axis of rotation for the placement. Each component is a floating point value between and . If any value is above, the vector is normalized so that the magnitude of the vector is . By default, it is the positive Z axis,.
 * : a vector with the 3D coordinates of the base point. By default, it is the origin.
 * : the user editable name of this object, it is an arbitrary UTF8 string.
 * : a list of referenced objects. By default, it is empty.

Hidden properties Data

 * : map with material properties. By default, it is empty.
 * : map with additional meta information. By default, it is empty.
 * : the universally unique identifier (UUID) (128-bit number) of the object. This is assigned at creation time.
 * : 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.
 * : a list of expressions. By default, it is empty.
 * : whether to display the object or not.
 * : the App Origin object that is the positional reference for all elements listed in.
 * : whether the group is touched or not.

View
The App_Part only has the five basic properties of App_FeaturePython. It does not have any hidden properties.


 * : (default),, ,.
 * : (default), . If the option is, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it is  only the bounding box will be highlighted.
 * : if it is, the object appears in the tree view. Otherwise, it is set as invisible.
 * : if it is, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the bar in the keyboard.
 * : if it is, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the bar in the keyboard.

Assembly concept
The Part (Std_Part) is intended to be the basic building block to create assemblies. Unlike a Body (PartDesign_Body) -- a single element, an assembly is meant to be a collection of unique, distinguishable elements which are also physically connected in some way (e.g. friction, fasteners, glue, etc.).

Examples that could be Parts:
 * A wooden table that consists of individual wooden pieces (legs, top), which are put together by glue or metal screws.
 * A ball bearing that is composed of multiple steel balls, an inner ring, a retainer, a seal, and an outer ring.
 * An assembly of a screw with a washer, and a matching nut.



In general, when importing a STEP file into the program, the main assembly and its sub-assemblies will be imported as Part containers, each of them containing a simple Part Feature.

Active status
A Document can contain multiple Parts (Std_Part). An active Part will be displayed in the Tree View with the background color specified by the value in the Preferences Editor  (light blue by default). The active Part will also be shown in bold text.

To activate or de-activate a Part:
 * Double click on it on the Tree View, or
 * Open the context menu (right click) and select.


 * The of Part was developed in v0.17 in parallel with the  of Body (PartDesign_Body); however, as of v0.19 this status no longer serves a functional purpose for Part.
 * Even if a Part is active, newly created objects might not be placed inside of it automatically. In this case, simply drag and drop the Tree View instance of these new objects onto the desired Part label.
 * Only a single Part can be active at a time.



Origin
The Origin consists of the three standard axes (X, Y, Z) and three standard planes (XY, XZ and YZ). Sketches and other objects can be attached to these elements when creating them.



The Origin is an App_Origin object ( class), while the axes and planes are objects of type and  respectively. Each of these elements can be hidden and displayed individually with the bar; this is useful to choose the correct reference when creating other objects.

All elements inside the Part are referenced to the Part's Origin. This means the Part as a whole can be moved and rotated in reference to the global coordinate system without affecting the relative spacial relationships of its components.

Visibility Management
The Part's (Std_Part) 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 individual property is set to. If the Part is visible, only then does each object's property determines whether the object is shown or not.



Inheritance
Formally, a Part (Std_Part) is an instance of the class, whose parent is the basic App_GeoFeature ( class), and is augmented with an Origin extension.



Scripting
FreeCAD Scripting Basics, and scripted objects.

See Part Feature for the general information on adding objects to the document.

A Part (App Part) is created with the method of the document. Once a Part exists, other objects can be added to it with the or  methods of this Part.

You cannot create a scripted. However, you can add behaviour to a scripted  object by using the following code: