netgen/python/gui.py
2019-12-10 12:21:29 +01:00

40 lines
1.1 KiB
Python

import netgen
def StartGUI():
from tkinter import Tk
global win
win = Tk()
win.tk.eval('lappend ::auto_path ' + netgen._netgen_lib_dir)
win.tk.eval('lappend ::auto_path ' + netgen._netgen_bin_dir)
# load with absolute path to avoid issues on MacOS
win.tk.eval('load "'+netgen._netgen_lib_dir.replace('\\','/')+'/libgui[info sharedlibextension]" gui')
win.tk.eval( netgen.libngpy._meshing._ngscript)
try:
from IPython import get_ipython
ipython = get_ipython()
ipython.magic('gui tk')
except:
pass
if not netgen.libngpy._meshing._netgen_executable_started:
# catch exception for building html docu on server without display
try:
StartGUI()
except:
pass
def Snapshot(w,h, filename=None):
import ngsolve
ngsolve.Redraw(blocking=True)
import numpy
image = netgen.libngpy.Snapshot(w, h)
image = numpy.array(image, dtype=numpy.uint8).reshape(h, w, 3)
image = image[::-1,:,:]
if filename:
import PIL.Image
im = PIL.Image.fromarray(image)
im.save(filename)
return image