Macro Copy3DViewToClipboard
{{Macro
|Name=Macro Copy3DViewToClipboard
|Icon=Macro_Copy3DViewToClipboard.png
|Description=Macro will copy the contents of the 3D view to the clipboard in bitmap (BMP) image.
Copying in Gimp is not possible. Gimp uses its own method for the copy function.
|Author=Mario52
|Version=00.01
|Date=2016-09-14
|FCVersion= <=0.17
|Download=[https://www.freecadweb.org/wiki/https://raw.githubusercontent.com/FreeCAD/FreeCAD-documentation/master/wiki/images/8/84/Macro_Copy3DViewToClipboard.png ToolBar Icon]
|Shortcut=G, Q
|SeeAlso=Macro Snip
Macro Screen Wiki
}}
Description
Macro will copy the contents of the 3D view to the clipboard in bitmap (BMP) image. Copying in Gimp is not possible. Gimp uses its own method for the copy function.
How To Use
- Run once to activate macro (the macro is loaded resident into the memory of the PC).
- Press G to grab the contents of the 3d view and copy them to the clipboard.
- Press Q to quit.
PS: if you want other formats, modify the values of the line number 33 ex:
line 33 : glw.resize(640, 480) # reduce the SubWindow
to
line 33 : glw.resize(800, 600) # reduce the SubWindow
Discussion
See forum-thread here.
Code
The icon for you toolbar
Macro_Copy3DViewToClipboard.FCMacro
{{MacroCode|code=
-- coding: utf-8 --
import PySide from PySide.QtGui import * from PySide import QtGui ,QtCore from PySide import QtOpenGL
from gimpfu import *
title = "Macro_Copy3DViewToClipboard" author = "Mario52" url = "http://www.freecadweb.org/index-fr.html" version = "00.01" date = "14/09/2016"
class ViewObserver: print "run FCGrab .."
def logPosition(self, info):
import tempfile
import os
from PySide import QtGui
pos = info["Key"]
if pos.upper() == "G":
pos = ""
mw=Gui.getMainWindow()
gl=mw.findChildren(QtOpenGL.QGLWidget)
glw=gl[0] # just use the first element
originalsize = glw.size() # originalsize SubWindow
print "originalsize : ",originalsize.width(),", ", originalsize.height()
glw.resize(640, 480) # reduce the SubWindow
glw.show()
Gui.SendMsgToActiveView("ViewFit")
print "resize in : ",glw.frameGeometry().width()," ",glw.frameGeometry().height()
i=glw.grabFrameBuffer()
cb=QtGui.qApp.clipboard()
cb.setImage(i)
glw.resize(originalsize.width(), originalsize.height()) # restore originalsize SubWindow
print "Grab"
if (pos.upper() == "Q"):
v.removeEventCallback("SoKeyboardEvent",c)
print "End FCGrab"
v=Gui.activeDocument().activeView() o = ViewObserver() c = v.addEventCallback("SoKeyboardEvent",o.logPosition)
}}
⏵ documentation index > Macro Copy3DViewToClipboard
This page is retrieved from https://github.com/FreeCAD/FreeCAD-documentation/blob/main/wiki/Macro_Copy3DViewToClipboard.md