App Part

From FreeCAD Documentation
Revision as of 06:54, 11 January 2020 by Vocx (talk | contribs) (An App Part object, or formally an App::Part, is an element that allows grouping objects in 3D space.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

An App Part object, or formally an App::Part, is an element that allows grouping objects in 3D space.

It was developed to be used in assemblies, as one of its principal characteristic is that it has an Origin which can serve as reference for included objects.

Simplified diagram of the relationships between the core objects in the program. The App::Part class has an origin in order to be able to position object relatively to this object.

How to use

  • Press the Part button in the structure toolbar.

It can also be created from the Python console as described in the Scripting section.

Properties

An App Part (App::Part class) is derived from the basic App GeoFeature (App::GeoFeature class), therefore it shares all the latter's properties.

In addition to the properties described in App GeoFeature, the App Part has some properties that help it manage information, like DataType, DataId, DataLicense, DataLicenseURL, DataColor, and DataGroup.

See Property for all property types that scripted objects can have.

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

  • 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.
  • 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.
  • DataGroup (LinkList): a list of referenced objects. By default, it is empty [].

Hidden properties Data

  • DataExpression Engine (ExpressionEngine): a list of expressions. By default, it is empty [].
  • 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 "".
  • DataMaterial (Map): map with material properties. By default, it is empty {}.
  • DataMeta (Map): map with additional meta information. By default, it is empty {}.
  • DataOrigin (Link): Origin object linked to the group.
  • DataUid (UUID): UUID of the object.
  • DataVisibility (Bool): whether to display the object or not.
  • 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.

Scripting

See also: FreeCAD Scripting Basics, and scripted objects.

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

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::Part", "Part")

bod1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
bod2 = App.ActiveDocument.addObject("Part::Box", "Box")

obj.addObjects([bod1, bod2])
App.ActiveDocument.recompute()