Std Part/es: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
{{Docnav
|
|
Line 36: Line 37:
</div>
</div>


The {{Button|[[File:Std_Part.svg|16px]] [[Std_Part|Std Part]]}} tool is not defined by a particular workbench, but by the base system, thus it is found in the {{MenuCommand|structure toolbar}} that is available in all [[Workbenches|workbenches]]. To group objects arbitrarily without considering their position, use {{Button|[[File:Std_Group.svg|16px]] [[Std_Group|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|tree view]] organized.
The {{Button|[[File:Std_Part.svg|16px]] [[Std_Part|Std Part]]}} tool is not defined by a particular workbench, but by the base system, thus it is found in the {{MenuCommand|structure toolbar}} that is available in all [[Workbenches|workbenches]]. To group objects arbitrarily without considering their position, use {{Button|[[File:Std_Group.svg|16px]] [[Std_Group|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|Tree view]] organized.


[[File:Std Part-tree.png]][[File:Std Part example.png]]
[[File:Std Part-tree.png]][[File:Std Part example.png]]


{{Caption|Left: elements inside a Std Part in the [[tree_view|tree view]]. Right: objects positioned in space, referred to the Origin of the Std Part.}}
{{Caption|Left: elements inside a Std Part in the [[Tree_view|Tree view]]. Right: objects positioned in space, referred to the Origin of the Std Part.}}


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
Line 53: Line 54:
</div>
</div>


=== Notes ===
== Notes ==


* As of v0.19, a given object can only belong to a single Part.
* An object can only belong to a single Part.
* 3D operations like [[Part_Boolean|Part Boolean]] cannot be applied to Parts. For example, you cannot select two Parts, and perform a [[Part_Fuse|Part Fuse]] or [[Part_Cut|Part Cut]].
* Double-click the Part in the [[tree view|tree view]] or open the context menu (right-click) and select {{MenuCommand|Toggle active part}} to activate or deactivate the Part. If another Part is active, it will be deactivated. See [[Std_Part#Active_status|active status]] for more information.

<div class="mw-translate-fuzzy">
==Limitaciones==
</div>

<div class="mw-translate-fuzzy">
* Incluso cuando una Part está activa, los objetos recién creados no se colocan dentro de la Part, sino en la parte inferior del árbol. Simplemente arrástrelos y suéltelos sobre la Part.
* Una part no tiene forma. Por lo tanto, no es posible aplicar la mayoría de las operaciones 3D en una Part, como Part Booleans.
* En este momento, [[Draft Snap | Draft Snap]] no funciona en contenedores de Part seleccionados o en objetos dentro de un contenedor de Part.
* '' Nota del Redactor: en este momento, no está claro si el estado activo de la Part cumple un propósito ''.
</div>


==Propiedades==
==Propiedades==


A [[Std_Part|Std Part]] is internally called [[App_Part|App Part]] ({{incode|App::Part}} class), and is derived from an [[App_GeoFeature|App GeoFeature]] ({{incode|App::GeoFeature}} class), therefore it shares most of the latter's properties.
The [[Std_Part|Std Part]], internally called [[App_Part|App Part]] ({{incode|App::Part}} class), is derived from the [[App_GeoFeature|App GeoFeature]] ({{incode|App::GeoFeature}} class) and inherits all its properties. It also has several additional properties. Notably properties that help it manage information in the context of an assembly, for example, {{PropertyData|Type}}, {{PropertyData|Id}}, {{PropertyData|License}}, {{PropertyData|LicenseURL}} and {{PropertyData|Group}}.

In addition to the properties described in [[App_GeoFeature|App GeoFeature]], the App Part class has some properties that help it manage information in the context of an assembly, for example, {{PropertyData|Type}}, {{PropertyData|Id}}, {{PropertyData|License}}, {{PropertyData|LicenseURL}}, {{PropertyData|Color}}, and {{PropertyData|Group}}.


These are the properties available in the [[property editor|property editor]]. Hidden properties can be shown by using the {{MenuCommand|Show all}} command in the context menu of the [[property editor|property editor]].
These are the properties available in the [[Property_editor|property editor]]. Hidden properties can be shown by using the {{MenuCommand|Show all}} command in the context menu of the [[Property_editor|property editor]].


=== Data ===
=== Data ===
Line 89: Line 77:
* {{PropertyData | Group}}: enumera los objetos a los que se hace referencia.
* {{PropertyData | Group}}: enumera los objetos a los que se hace referencia.
</div>
</div>

==== Hidden properties Data ====

* {{PropertyData|Material|Map}}: map with material properties. By default, it is empty <code>{}</code>.
* {{PropertyData|Meta|Map}}: map with additional meta information. By default, it is empty <code>{}</code>.
* {{PropertyData|Uid|UUID}}: the [https://en.wikipedia.org/wiki/Universally_unique_identifier universally unique identifier] (UUID) (128-bit number) of the object. This is assigned at creation time.
* {{PropertyData|Label2|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 {{value|""}}.
* {{PropertyData|Expression Engine|ExpressionEngine}}: a list of expressions. By default, it is empty {{value|[]}}.
* {{PropertyData|Visibility|Bool}}: whether to display the object or not.
* {{PropertyData|Origin|Link}}: the [[App_OriginGroupExtension|App Origin]] object that is the positional reference for all elements listed in {{PropertyData|Group}}.
* {{PropertyData|_ Group Touched|Bool}}: whether the group is touched or not.


=== View ===
=== View ===


{{TitleProperty|Display Options}}
The App Part only has the five properties of the basic [[App_FeaturePython|App FeaturePython]], and it does not have hidden properties.

{{TitleProperty|Base}}


* {{PropertyView|Display Mode|Enumeration}}: {{value|Group}}.
* {{PropertyView|Display Mode|Enumeration}}: {{value|Group}}.
* {{PropertyView|Show In Tree|Bool}}: if it is {{TRUE}}, the object appears in the [[Tree_view|Tree view]]. Otherwise, it is set as invisible.
* {{PropertyView|On Top When Selected|Enumeration}}: {{value|Disabled}} (default), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
* {{PropertyView|Selection Style|Enumeration}}: {{value|Shape}} (default), {{value|BoundBox}}. If the option is {{value|Shape}}, the entire shape (vertices, edges, and faces) will be highlighted in the [[3D view|3D view]]; if it is {{value|BoundBox}} only the bounding box will be highlighted.
* {{PropertyView|Show In Tree|Bool}}: if it is {{TRUE}}, the object appears in the [[tree view|tree view]]. Otherwise, it is set as invisible.
* {{PropertyView|Visibility|Bool}}: if it is {{TRUE}}, the object appears in the [[3D_view|3D view]]; otherwise it is invisible. By default this property can be toggled on and off by pressing the {{KEY|Space}} bar in the keyboard.
* {{PropertyView|Visibility|Bool}}: if it is {{TRUE}}, the object appears in the [[3D_view|3D view]]; otherwise it is invisible. By default this property can be toggled on and off by pressing the {{KEY|Space}} bar in the keyboard.


{{TitleProperty|Selection}}
<div class="mw-translate-fuzzy">
=== Ejemplos de uso ===
* Como un contenedor de ensamblaje que agrupa los objetos que se fabricarán por separado, luego se pegarán o atornillarán, como una mesa de madera.
* Al importar un STEP ensamblado en FreeCAD, el ensamblaje principal y sus subconjuntos son contenedores Part.
* Una Part que se compone de múltiples componentes no fusionados, como un cojinete de bolas.
</div>


* {{PropertyView|On Top When Selected|Enumeration}}: {{value|Disabled}} (default), {{value|Enabled}}, {{value|Object}}, {{value|Element}}.
The Std Part is intended to be the basic building block to create assemblies. Unlike a [[PartDesign_Body|PartDesign Body]], an assembly is meant to be a collection of separate, distinguishable elements which are connected in some way in the physical world, for example, through pressure, screws, or glue.
* {{PropertyView|Selection Style|Enumeration}}: {{value|Shape}} (default), {{value|BoundBox}}. If the option is {{value|Shape}}, the entire shape (vertices, edges, and faces) will be highlighted in the [[3D_view|3D view]]; if it is {{value|BoundBox}} only the bounding box will be highlighted.

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.

[[File:PartDesign_Body_contiguous_separate.png|x200px]] [[File:PartDesign_Body_contiguous_assembly.png|x200px]]
{{Caption|Left: three individual contiguous solids, each of them modelled by a [[PartDesign_Body|PartDesign Body]]. Right: the individual Bodies put together inside a Std Part to create an assembly.}}

In general terms, 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|Part Feature]].


== Detailed explanation ==
== Detailed explanation ==
Line 139: Line 98:
</div>
</div>


An open document can contain multiple Parts. An active Part will be displayed in the [[Tree_view|tree view]] with the background color specified by the {{MenuCommand|Active container}} value in the [[Preferences_Editor#Colors|preferences editor]] (by default, light blue). An active part will also be shown in bold text.
An open document can contain multiple Parts. But only one Part can be active. The active Part is displayed in the [[Tree_view|tree view]] with the background color specified by the {{MenuCommand|Active container}} value in the [[Preferences_Editor#Colors|preferences editor]] (by default, light blue). It will also be shown with bold text.


To activate or de-activate a Part:
To activate or de-activate a Part:
* Double click on it on the [[Tree_view|tree view]], or
* Double click on it on the [[Tree_view|Tree view]], or
* Open the context menu (right click) and select {{MenuCommand|Toggle active part}}.
* Open the context menu (right click) and select {{MenuCommand|Toggle active part}}.

{{Emphasis|Notes:}}
* The {{emphasis|active status}} of Parts was developed in v0.17 in parallel with the {{emphasis|active status}} of [[PartDesign_Body|PartDesign Bodies]]; however, as of v0.19 this status does not serve a real purpose for Parts.
* Even when a Part is active, newly created objects are not placed inside of it automatically. In this case, simply drag these new objects, and drop them onto the desired Part.
* Only a single Part can be active at a time.


[[File:Std_Part_active.png]]
[[File:Std_Part_active.png]]
Line 163: Line 117:
[[File:Part_Origin_tree.png]] [[File:Part_Origin_view.png]]
[[File:Part_Origin_tree.png]] [[File:Part_Origin_view.png]]


{{Caption|Left: Part Origin in the [[tree view|tree view]]. Right: representation of the Origin elements in the [[3D view|3D view]].}}
{{Caption|Left: Part Origin in the [[Tree_view|Tree view]]. Right: representation of the Origin elements in the [[3D_view|3D view]].}}


{{Emphasis|Note:}} the Origin is an [[App_OriginGroupExtension|App Origin]] object ({{incode|App::Origin}} class), while the axes and planes are objects of type {{incode|App::Line}} and {{incode|App::Plane}} respectively. Each of these elements can be hidden and unhidden individually with the {{KEY|Space}} bar; this is useful to choose the correct reference when creating other objects.
{{Emphasis|Note:}} the Origin is an [[App_OriginGroupExtension|App Origin]] object ({{incode|App::Origin}} class), while the axes and planes are objects of type {{incode|App::Line}} and {{incode|App::Plane}} respectively. Each of these elements can be hidden and unhidden individually with the {{KEY|Space}} bar; this is useful to choose the correct reference when creating other objects.
Line 178: Line 132:
[[File:Part_Visibility_off.png]] [[File:Part_Visibility_on.png]]
[[File:Part_Visibility_off.png]] [[File:Part_Visibility_on.png]]
{{Caption|The visibility of the Std Part determines whether the objects grouped under it are shown in the [[3D_view|3D view]] or not. Left: the Part is hidden, so none of the objects will be shown in the [[3D_view|3D view]]. Right: the Part is visible, so each object controls its own visibility.}}
{{Caption|The visibility of the Std Part determines whether the objects grouped under it are shown in the [[3D_view|3D view]] or not. Left: the Part is hidden, so none of the objects will be shown in the [[3D_view|3D view]]. Right: the Part is visible, so each object controls its own visibility.}}

=== Inheritance ===

A [[Std_Part|Std Part]] is formally an instance of the class {{incode|App::Part}}, whose parent is the basic [[App_GeoFeature|App GeoFeature]] ({{incode|App::GeoFeature}} class), and is augmented with an Origin extension.

[[File:FreeCAD_core_objects.svg|800px]]

{{Caption|Simplified diagram of the relationships between the core objects in the program. The {{incode|App::Part}} class is a simple container that has a position in 3D space, and has an Origin to control the placement of the objects grouped under it.}}


== Scripting ==
== Scripting ==


{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]].
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]] and [[Scripted_objects|scripted objects]].


See [[Part_Feature|Part Feature]] for the general information on adding objects to the document.
See [[Part_Feature|Part Feature]] for the general information on adding objects to the document.


A Std Part ([[App_Part|App Part]]) is created with the {{incode|addObject()}} method of the document. Once a Part exists, other objects can be added to it with the {{incode|addObject()}} or {{incode|addObjects()}} methods of this Part.
A Std Part ([[App_Part|App Part]]) is created with the {{incode|addObject()}} method of the document. Once a Part exists, other objects can be added to it with the {{incode|addObject()}} or {{incode|addObjects()}} methods.


{{Code|code=
{{Code|code=
Line 199: Line 145:


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


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


obj.addObjects([bod1, bod2])
part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()
App.ActiveDocument.recompute()
}}
}}


You cannot create a scripted {{incode|App::Part}}. However, you can add {{incode|App::Part}} behaviour to a scripted {{incode|Part::FeaturePython}} object by using the following code:
You cannot create a scripted {{incode|App::Part}}. However, you can add {{incode|App::Part}} behavior to a scripted {{incode|Part::FeaturePython}} object by using the following code:


{{Code|code=
{{Code|code=
Line 224: Line 170:


def attach(self, obj):
def attach(self, obj):
obj.addExtension('App::OriginGroupExtensionPython')
obj.addExtension("App::OriginGroupExtensionPython")
obj.Origin = FreeCAD.ActiveDocument.addObject('App::Origin', 'Origin')
obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")


def onDocumentRestored(self, obj):
def onDocumentRestored(self, obj):
Line 239: Line 185:


def attach(self, vobj):
def attach(self, vobj):
vobj.addExtension('Gui::ViewProviderOriginGroupExtensionPython')
vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
self.ViewObject = vobj
self.ViewObject = vobj


Line 248: Line 194:
return None
return None


App.ActiveDocument.addObject('Part::FeaturePython', 'Group', group.MyGroup(), group.ViewProviderMyGroup(), True)
App.ActiveDocument.addObject("Part::FeaturePython",
"Group",
group.MyGroup(),
group.ViewProviderMyGroup(),
True)
}}
}}


Line 261: Line 211:
}}
}}


{{Std Base navi{{#translation:}}}}
{{Std_Base_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Revision as of 08:06, 22 February 2022

Std Pieza

Ubicación en el Menú
Ninguna
Entornos de trabajo
Todos
Atajo de teclado por defecto
Ninguno
Introducido en versión
0.17
Ver también
Std Grupo, Cuerpo PartDesign

Descripción

Parte es un contenedor de propósito general que mantiene juntos un grupo de objetos para que puedan moverse como una unidad. La parte puede contener la mayoría de los objetos de FreeCAD, como conjuntos de PartDesign, objetos del ambiente de trabajo de Pieza, objetos de malla, etc.

Part proporciona un sistema de coordenadas local al que se pueden adjuntar sketches y otros objetos.

Although it is primarily intended for solid bodies, the Std 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.

Part se encuentra en la barra de herramientas Estructura que se muestra en todos los ambientes de trabajo.

The Std Part tool is not defined by a particular workbench, but by the base system, thus it is found in the structure toolbar that is available in 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.

Left: elements inside a Std Part in the Tree view. Right: objects positioned in space, referred to the Origin of the Std Part.

Como utilizar

  • Presione el botón Create part en la barra de herramientas. La Part se activa automáticamente.
  • Haga doble clic en la Part en el árbol del Modelo para activarlo o desactivarlo.
  • Para agregar objetos a una Part, arrástrelos y suéltelos sobre la Part en el árbol del Modelo.
  • Para eliminar objetos de una Part, arrástrelos y suéltelos de la Part y en la etiqueta del documento en la parte superior del árbol del modelo.

Notes

  • An object can only belong to a single Part.
  • 3D operations like Part Boolean cannot be applied to Parts. For example, you cannot select two Parts, and perform a Part Fuse or Part Cut.

Propiedades

The Std Part, internally called App Part (App::Part class), is derived from the App GeoFeature (App::GeoFeature class) and inherits all its properties. It also has several additional properties. Notably properties that help it manage information in the context of an assembly, for example, DatosType, DatosId, DatosLicense, DatosLicenseURL and DatosGroup.

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

  • Datos Id: ID (Número de pieza) del artículo. Este campo es opcional.
  • Datos License: la licencia bajo la cual se lanza la Part.
  • Datos License URL: la dirección web donde se pueden encontrar los términos de licencia.
  • Datos Placement: especifica la orientación y la posición de la Part en el espacio 3D. Ver Placement.
  • Datos Label: la label/etiqueta es el nombre dado a la operación. Este nombre se puede cambiar a su conveniencia.
  • Datos Group: enumera los objetos a los que se hace referencia.

View

Display Options

  • VistaDisplay Mode (Enumeration): Group.
  • VistaShow In Tree (Bool): if it is true, the object appears in the Tree view. Otherwise, it is set as invisible.
  • VistaVisibility (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.

Selection

  • VistaOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • VistaSelection 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.

Detailed explanation

Estado activo

Un documento de FreeCAD puede contener varias Part. Solo una Part puede estar activa a la vez. Una Part activa se mostrará en el árbol con un color de fondo azul claro.

An open document can contain multiple Parts. But only one Part can be active. The active Part is displayed in the tree view with the background color specified by the Active container value in the preferences editor (by default, light blue). It will also be shown with 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 Toggle active part.

Document with two Std Parts, of which the second one is active.

Origen

The Origin consta de los tres ejes estándar (X, Y, Z) y tres planos estándar (XY, XZ y YZ). Sketches se pueden unir a estos planos. Todos los elementos dentro de la Part están referenciados al Origen de la Part; lo que significa que la Part se puede mover y rotar en referencia al sistema de coordenadas global sin afectar la ubicación de los elementos en su interior.

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.

Left: Part Origin in the Tree view. Right: representation of the Origin elements in the 3D view.

Note: the Origin is an App Origin object (App::Origin class), while the axes and planes are objects of type App::Line and App::Plane respectively. Each of these elements can be hidden and unhidden individually with the Space bar; this is useful to choose the correct reference when creating other objects.

Note 2: 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 the elements inside.

Gestión de visibilidad

La visibilidad de la Part reemplaza la visibilidad de cualquier objeto que contenga. Si la Part está oculta, los objetos que contiene también estarán ocultos, incluso si su visibilidad está establecida en verdadero. Múltiples objetos dentro de una Part pueden ser visibles a la vez.

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 individual VistaVisibility property is set to true. If the Part is visible, then each object's VistaVisibility determines whether the object is shown or not.

The visibility of the Std Part determines whether the objects grouped under it are shown in the 3D view or not. Left: the Part is hidden, so none of the objects will be shown in the 3D view. Right: the Part is visible, so each object controls its own visibility.

Scripting

See also: FreeCAD Scripting Basics and scripted objects.

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

A Std Part (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.

import FreeCAD as App

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

obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")

part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()

You cannot create a scripted App::Part. However, you can add App::Part behavior to a scripted Part::FeaturePython object by using the following code:

class MyGroup(object):
    def __init__(self, obj=None):
        self.Object = obj
        if obj:
            self.attach(obj)

    def __getstate__(self):
        return

    def __setstate__(self, _state):
        return

    def attach(self, obj):
        obj.addExtension("App::OriginGroupExtensionPython")
        obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")

    def onDocumentRestored(self, obj):
        self.Object = obj

class ViewProviderMyGroup(object):
    def __init__(self, vobj=None):
        if vobj:
            vobj.Proxy = self
            self.attach(vobj)
        else:
            self.ViewObject = None

    def attach(self, vobj):
        vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
        self.ViewObject = vobj

    def __getstate__(self):
        return None

    def __setstate__(self, _state):
        return None

App.ActiveDocument.addObject("Part::FeaturePython",
                             "Group",
                             group.MyGroup(),
                             group.ViewProviderMyGroup(),
                             True)