- Fri Sep 01, 2017 1:15 pm
#395286
i added other buttons ; the problem with check button assigned to output images always give error than the error disappear
i don't figure why this error
i don't figure why this error
Code: Select all
################################################################
# Launch Maxwell Render with the given parameters.
################################################################
import sys
from pymaxwell import *
import sys
import pymaxwell as mw
#import qdarkstyle
from PyQt4 import QtGui, QtCore
class RenderScene(QtGui.QWidget):
# RenderScene init method
def __init__(self):
super(RenderScene, self).__init__()
self.initUI()
# User interface initialization method
def initUI(self):
# Create labels
label_input_file = QtGui.QLabel('Input mxs')
label_mxi_file = QtGui.QLabel('MXI')
label_mxi_file.setFixedWidth(30)
label_img_file = QtGui.QLabel('IMG')
label_img_file.setFixedWidth(30)
label_cam_res = QtGui.QLabel('Resolution')
label_sl = QtGui.QLabel('SL')
# Create lineedits
self.edit_input_file = QtGui.QLineEdit()
self.edit_mxi_file = QtGui.QLineEdit()
self.edit_img_file = QtGui.QLineEdit()
self.sl_file = QtGui.QLineEdit()
# spin box
self.spinw = QtGui.QSpinBox()
self.spinw.setMaximum(50000)
self.spinh = QtGui.QSpinBox()
self.spinh.setMaximum(50000)
self.spinsl = QtGui.QSpinBox()
# check box
self.c_mxi = QtGui.QCheckBox()
self.c_img = QtGui.QCheckBox()
# Spaces
space1 = QtGui.QWidget()
space1.setFixedWidth(200)
# Create buttons
button_in_path = QtGui.QPushButton('Open', self);
button_mxi_path = QtGui.QPushButton('Save', self);
button_img_path = QtGui.QPushButton('Save', self);
button_rend = QtGui.QPushButton('Render', self);
# Create grid layout
grid1 = QtGui.QGridLayout()
grid2 = QtGui.QGridLayout()
grid3 = QtGui.QGridLayout()
grid4 = QtGui.QGridLayout()
# Populate grid with the labels, lineedits and buttons
# grid3
grid3.addWidget(self.c_mxi, 0, 0)
grid3.addWidget(label_mxi_file, 0, 1)
# grid4
grid4.addWidget(self.c_img, 0, 0)
grid4.addWidget(label_img_file, 0, 1)
# grid2
grid2.addWidget(self.spinw, 0, 0)
grid2.addWidget(self.spinh, 0, 1)
grid2.addWidget(space1, 0, 2)
grid2.addWidget(label_sl, 0, 7)
grid2.addWidget(self.spinsl, 0, 8)
# grid1
grid1.addWidget(label_input_file, 1, 0)
grid1.addLayout(grid3, 2, 0)
grid1.addLayout(grid4, 3, 0)
grid1.addWidget(label_cam_res, 4, 0)
grid1.addWidget(self.edit_input_file, 1, 1)
grid1.addWidget(self.edit_mxi_file, 2, 1)
grid1.addWidget(self.edit_img_file, 3, 1)
grid1.addLayout(grid2, 4, 1)
grid1.addWidget(button_in_path, 1, 2)
grid1.addWidget(button_mxi_path, 2, 2)
grid1.addWidget(button_img_path, 3, 2)
grid1.addWidget(button_rend, 4, 2)
# Set main layout with grid above and resize window
self.setLayout(grid1)
#self.resize(680, 240)
self.setFixedSize(540, 150)
self.setWindowTitle('Render Scene Views')
# Connect buttons to methods to be called
self.connect(button_in_path, QtCore.SIGNAL('clicked()'), self.open);
self.connect(button_mxi_path, QtCore.SIGNAL('clicked()'), self.save1);
self.connect(button_img_path, QtCore.SIGNAL('clicked()'), self.save2);
self.connect(button_rend, QtCore.SIGNAL('clicked()'), self.rendering);
self.connect(self.c_mxi, QtCore.SIGNAL('clicked()'), self.check_mxi);
self.connect(self.c_img, QtCore.SIGNAL('clicked()'), self.check_img);
# open scene
def open(self):
inPath = QtGui.QFileDialog.getOpenFileName(self, 'Open file', 'C:/', filter='*.mxs');
self.edit_input_file.setText(inPath);
# save scene
def save1(self):
outmxi = QtGui.QFileDialog.getSaveFileName(self, 'saveFlle', 'C:/', filter='Maxwell Image File (*.mxi)');
#dirname = os.path.dirname(outmxi.toAscii().data())
#filename = os.path.basename(outmxi.toAscii().data())
filepath = os.path.splitext(outmxi.toAscii().data()) [0]
file_ext = os.path.splitext(outmxi.toAscii().data())[1]
outmxi_new = filepath + '_%camera%' + file_ext
self.edit_mxi_file.setText(outmxi_new);
# save scene
def save2(self):
outimg = QtGui.QFileDialog.getSaveFileName(self, 'saveFlle', 'C:/', filter='Image File (*.png *.jpg *.tga *.tif *.jp2 *.hdr *.exr *.bmp *.psd *.ppm *.pbm *.pgm)');
filepath = os.path.splitext(outimg.toAscii().data())[0]
file_ext = os.path.splitext(outimg.toAscii().data())[1]
outimg_new = filepath + '_%camera%' + file_ext
self.edit_img_file.setText(outimg_new);
# check mxi
def check_mxi(self):
if self.c_mxi.isChecked():
self.checker1 = 0
else :
self.checker1 = 1
# check img
def check_img(self):
if self.c_img.isChecked():
self.checker2 = 0
else:
self.checker2 = 1
# render
def rendering(self):
scene = Cmaxwell(mwcallback);
ok = scene.readMXS(self.edit_input_file.text().toAscii().data());
cameraNames = scene.getCameraNames();
for name in cameraNames:
outPath = self.edit_input_file.text().toAscii().data()
outMxi = self.edit_mxi_file.text().toAscii().data()
outImg = self.edit_img_file.text().toAscii().data()
camera = scene.getCamera(name)
x = int(self.spinw.value())
y = int(self.spinh.value())
sl = int(self.spinsl.value())
scene.setRenderParameter('SAMPLING LEVEL', sl)
scene.setRenderParameter('DO NOT SAVE MXI FILE', self.checker1)
scene.setRenderParameter('DO NOT SAVE IMAGE FILE', self.checker2)
camera.setResolution(x, y)
camera.setActive()
ok = scene.writeMXS(outPath)
parameters = []
parameters.append('-mxs:' + outPath);
parameters.append('-nowait');
parameters.append('-nogui');
#parameters.append('-s:SL');
parameters.append('-o:' + outImg);
parameters.append('-mxi:' + outMxi);
parameters.append('-time:10');
runMaxwell(parameters)
if __name__ == "__main__":
# Create and show application
app = QtGui.QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('C:/Users/archi/Desktop/script.ico'))
window = RenderScene()
#app.setStyleSheet(qdarkstyle.load_stylesheet(pyside=False))
window.show()
sys.exit(app.exec_())