Std SendToPythonConsole: Difference between revisions

From FreeCAD Documentation
No edit summary
(Marked this version for translation)
 
(15 intermediate revisions by 2 users not shown)
Line 26: Line 26:
The '''Std SendToPythonConsole''' command creates variables in the [[Python_console|Python console]] referencing a selected object and its selected subshapes, along with some other useful references. The variables and the code involved can be used in the development of Python code.
The '''Std SendToPythonConsole''' command creates variables in the [[Python_console|Python console]] referencing a selected object and its selected subshapes, along with some other useful references. The variables and the code involved can be used in the development of Python code.


<!--T:14-->
Depending on the selected object and its selected subshapes, if any, the following variables are created:

<!--T:15-->
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 32: Line 36:
| {{Incode|doc}} || The document containing the selected object
| {{Incode|doc}} || The document containing the selected object
|-
|-
| {{Incode|obj}} || The selected object unless it is a Link, in which case it references the Linked object
| {{Incode|lnk}} || The selected Link object (only created if the selected object is a Link)
|-
|-
| {{Incode|lnk}} || The Link object (only created if the selected object is a Link)
| {{Incode|obj}} || Depending on the selected object:<br>
The selected object itself (if the selected object is not a Link)<br>
The Linked object (if the selected object is a Link)<br>
|-
|-
| {{Incode|shp}} || Depending on the type of the selected object:<br>
| {{Incode|shp}} || Depending on the type of {{Incode|obj}}:<br>
The Shape property of the object (for objects derived from the Part::Feature class)<br>
The {{Incode|Shape}} property of {{Incode|obj}} (for objects derived from the {{Incode|Part::Feature}} class)<br>
The Mesh property of the object (for Mesh objects)<br>
The {{Incode|Mesh}} property of {{Incode|obj}} (for Mesh objects)<br>
The Points property of the object (for Points objects)
The {{Incode|Points}} property of {{Incode|obj}} (for Points objects)
|-
|-
| {{Incode|sub}} || The first selected subshape of the object (only created if at least one subshape is selected)
| {{Incode|sub}} || The first selected subshape (only created if at least one subshape is selected)
|-
|-
| {{Incode|subs}} || A list containing all subshapes (only created if two or more subshapes is selected)
| {{Incode|subs}} || A list containing all subshapes (only created if two or more subshapes are selected)
|}
|}


Line 55: Line 61:
>>> doc = App.getDocument("Unnamed")
>>> doc = App.getDocument("Unnamed")
>>> lnk = doc.getObject("Link")
>>> lnk = doc.getObject("Link")
>>> obj = lnk.getLinkedObject() #in this case a Cube
>>> obj = lnk.getLinkedObject()
>>> shp = obj.Shape
>>> shp = obj.Shape
>>> sub = obj.getSubObject("Edge10")
>>> sub = obj.getSubObject("Edge10")
Line 62: Line 68:
<translate>
<translate>
<!--T:12-->
<!--T:12-->
{{Caption|Example output: an edge, a face, and a vertex of a Link to a [[Part_Box|Part Box]] was selected}}
{{Caption|Example output: an edge, a face, and a vertex of a [[Std_LinkMake|Link]] to a [[Part_Box|Part Box]] were selected}}


==Usage== <!--T:5-->
==Usage== <!--T:5-->
Line 72: Line 78:
#* Select the {{MenuCommand|[[Image:Std_SendToPythonConsole.svg|16px]] Send to Python Console}} option from the [[Tree_view|Tree view]] context menu or [[3D_view|3D view]] context menu.
#* Select the {{MenuCommand|[[Image:Std_SendToPythonConsole.svg|16px]] Send to Python Console}} option from the [[Tree_view|Tree view]] context menu or [[3D_view|3D view]] context menu.
#* Use the keyboard shortcut: {{KEY|Ctrl}}+{{KEY|Shift}}+{{KEY|P}}.
#* Use the keyboard shortcut: {{KEY|Ctrl}}+{{KEY|Shift}}+{{KEY|P}}.
# If required the [[Python_console|Python console]] opens. {{Version|0.20}}
# If required the [[Python_console|Python console]] opens.
# The [[Python_console|Python console]] receives the keyboard focus. {{Version|0.20}}
# The [[Python_console|Python console]] receives the keyboard focus.


==Notes==
==Notes== <!--T:16-->


<!--T:17-->
* All previously created variables are deleted each time the command is run.
* All previously created variables are deleted each time the command is run.

<!--T:18-->
* If the selected object is a Link ({{Incode|App::Link}}) and the Linked object is derived from the {{Incode|Part::Feature}} class, the {{Incode|shp}} variable will be the shape of the Linked object. If the Link has been transformed or scaled and you want to access the scaled/transformed shape, you can do so with this code:

</translate>
: {{Code|code=lnk_shp = Part.getShape(lnk)}}
<translate>





Latest revision as of 09:17, 17 April 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 a selected object and its selected subshapes, along with some other useful references. The variables and the code involved can be used in the development of Python code.

Depending on the selected object and its selected subshapes, if any, the following variables are created:

Variable name Referenced object(s)
doc The document containing the selected object
lnk The selected Link object (only created if the selected object is a Link)
obj Depending on the selected object:

The selected object itself (if the selected object is not a Link)
The Linked object (if the selected object is a Link)

shp Depending on the type of obj:

The Shape property of obj (for objects derived from the Part::Feature class)
The Mesh property of obj (for Mesh objects)
The Points property of obj (for Points objects)

sub The first selected subshape (only created if at least one subshape is selected)
subs A list containing all subshapes (only created if two or more subshapes are selected)
>>> ### 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()
>>> 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 were selected

Usage

  1. Select a single object or one or more subshapes belonging to 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.
  4. The Python console receives the keyboard focus.

Notes

  • All previously created variables are deleted each time the command is run.
  • If the selected object is a Link (App::Link) and the Linked object is derived from the Part::Feature class, the shp variable will be the shape of the Linked object. If the Link has been transformed or scaled and you want to access the scaled/transformed shape, you can do so with this code:
lnk_shp = Part.getShape(lnk)