| Описание |
|---|
| Макрос скопирует содержимое 3D-вида в буфер обмена в виде растрового изображения (BMP). Копирование в Gimp невозможно. Gimp использует свой собственный метод для функции копирования. Макрос версии : 00.01 Дата последней модификации : 2016-09-14 FreeCAD версия : <=0.17 Скачать : ToolBar Icon автор : Mario52 |
| Автор |
| Mario52 |
| Скачать |
| ToolBar Icon |
| Ссылки |
| Макросы рецепты Как установить макросы Как настроить панели инструментов |
| Версия |
| 00.01 |
| Дата последней модификации |
| 2016-09-14 |
| Версии FreeCAD |
| <=0.17 |
| Сочетание клавиш |
| G, Q |
| Смотрите также |
| Макрос Snip (Обрезать) Макрос Screen Wiki (Снимок для Вики) |
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.
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro
# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.
from PySide import QtGui, QtCore
diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
"Information",
"This macro must be downloaded from this link\n"
"\n"
"https://gist.githubusercontent.com/mario52a/f5c3738f858f7b058897c6c235232cbe/raw/a10bc3b8789badc1e405541d4697d7286d9f0fd3/Macro_Copy3DViewToClipboard.FCMacro" + "\n"
"\n"
"Quit this window to access the download page")
diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()
import webbrowser
webbrowser.open("https://gist.githubusercontent.com/mario52a/f5c3738f858f7b058897c6c235232cbe/raw/a10bc3b8789badc1e405541d4697d7286d9f0fd3/Macro_Copy3DViewToClipboard.FCMacro")
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
See forum-thread here.
Macro_Copy3DViewToClipboard.FCMacro
# -*- 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__ = "https://freecad.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)