Std SendToPythonConsole: Difference between revisions

From FreeCAD Documentation
(Moved the description of the new features to the usage section.)
(update for 0.20)
Line 24: Line 24:


<!--T:4-->
<!--T:4-->
The '''Std SendToPythonConsole''' command creates a variable in the [[Python_console|Python console]] referencing a selected object. If a subshape of the object is selected two additional variables are created, one referencing the shape of the object and the other referencing the subshape itself. The variables and the code involved can be used to development Python code.
The '''Std SendToPythonConsole''' command creates variables in the [[Python_console|Python console]] referencing the selected object and its subshapes, along with some other useful references. The variable '''doc''' references the document containing the selected object. The variable '''obj''' references the selected object unless it is a Link, in which case '''obj''' references the Linked object. If the selected object is a Link, then a variable named '''lnk''' is produced that references the Link object itself. The variable '''shp''' references the Shape property of the object if it is derived from Part::Feature (as all object's with Shape property are), but for Mesh objects '''shp''' = obj.Mesh, and for Points objects, '''shp''' = obj.Points. If a subshape of the object is selected an additional variable '''sub''' is created, referencing the subshape of the object. Note: '''sub''' has been renamed from '''elt''' used in previous versions. If more than one subshape has been selected, then '''sub''' references the first selected subshape and all of the selected subshapes are in a list variable '''subs'''. The variables and the code involved can be used to development Python code. Note: all previously created variables are deleted each time the command is run, so you would need to save any variables you wish to use after a subsequent use of the command by assigning to a new variable Although you may select multiple subshapes of a single object, only one single object is supported.


</translate>
</translate>
>>> ### Begin command Std_SendToPythonConsole
>>> ### Begin command Std_SendToPythonConsole
>>> try:
>>> obj = App.getDocument("Unnamed").getObject("Box")
>>> del(doc,lnk,obj,shp,sub,subs)
>>> shp = App.getDocument("Unnamed").getObject("Box").Shape
>>> except Exception:
>>> elt = App.getDocument("Unnamed").getObject("Box").Shape.Edge8
>>> pass
>>>
>>> doc = App.getDocument("Unnamed")
>>> lnk = doc.getObject("Link")
>>> obj = lnk.getLinkedObject() #in this case a Cube
>>> shp = obj.Shape
>>> sub = obj.getSubObject("Edge10")
>>> subs = [obj.getSubObject("Edge10"),obj.getSubObject("Face3"),obj.getSubObject("Vertex5"),]
>>> ### End command Std_SendToPythonConsole
>>> ### End command Std_SendToPythonConsole
<translate>
<translate>
<!--T:12-->
<!--T:12-->
{{Caption|Example output: an edge of a [[Part_Box|Part Box]] was selected}}
{{Caption|Example output: an edge, a face, and a vertex of a Link to a [[Part_Box|Part Box]] was selected}}


==Usage== <!--T:5-->
==Usage== <!--T:5-->

Revision as of 02:18, 1 March 2022

Std SendToPythonConsole

Menu location
Edit → Send to Python Console
Workbenches
All
Default shortcut
Ctrl+Shift+P
Introduced in version
0.19
See also
None

Description

The Std SendToPythonConsole command creates variables in the Python console referencing the selected object and its subshapes, along with some other useful references. The variable doc references the document containing the selected object. The variable obj references the selected object unless it is a Link, in which case obj references the Linked object. If the selected object is a Link, then a variable named lnk is produced that references the Link object itself. The variable shp references the Shape property of the object if it is derived from Part::Feature (as all object's with Shape property are), but for Mesh objects shp = obj.Mesh, and for Points objects, shp = obj.Points. If a subshape of the object is selected an additional variable sub is created, referencing the subshape of the object. Note: sub has been renamed from elt used in previous versions. If more than one subshape has been selected, then sub references the first selected subshape and all of the selected subshapes are in a list variable subs. The variables and the code involved can be used to development Python code. Note: all previously created variables are deleted each time the command is run, so you would need to save any variables you wish to use after a subsequent use of the command by assigning to a new variable Although you may select multiple subshapes of a single object, only one single object is supported.

>>> ### Begin command Std_SendToPythonConsole
>>> try:
>>>     del(doc,lnk,obj,shp,sub,subs)
>>> except Exception:
>>>     pass
>>> 
>>> doc = App.getDocument("Unnamed")
>>> lnk = doc.getObject("Link")
>>> obj = lnk.getLinkedObject() #in this case a Cube
>>> shp = obj.Shape
>>> sub = obj.getSubObject("Edge10")
>>> subs = [obj.getSubObject("Edge10"),obj.getSubObject("Face3"),obj.getSubObject("Vertex5"),]
>>> ### End command Std_SendToPythonConsole

Example output: an edge, a face, and a vertex of a Link to a Part Box was selected

Usage

  1. Select a single object.
  2. There are several ways to invoke the command:
    • Select the Edit → Send to Python Console option from the menu.
    • Select the Send to Python Console option from the Tree view context menu or 3D view context menu.
    • Use the keyboard shortcut: Ctrl+Shift+P.
  3. If required the Python console opens. introduced in version 0.20
  4. The Python console receives the keyboard focus. introduced in version 0.20