From: daid Date: Fri, 16 Mar 2012 11:07:43 +0000 (+0100) Subject: Added multiply settings X-Git-Tag: RC1~80 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bb0b36cc079cac28ee72a8d91c0ae4012113c652;p=cura.git Added multiply settings --- diff --git a/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py b/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py index 951f8b62..f9729162 100644 --- a/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py +++ b/SkeinPyPy_NewUI/fabmetheus_utilities/settings.py @@ -154,8 +154,8 @@ def getSkeinPyPyProfileInformation(): 'Activate_Multiply': "True", 'Center_X_mm': storedSetting("machine_center_x"), 'Center_Y_mm': storedSetting("machine_center_y"), - 'Number_of_Columns_integer': "1", - 'Number_of_Rows_integer': "1", + 'Number_of_Columns_integer': storedSetting('model_multiply_x', '1'), + 'Number_of_Rows_integer': storedSetting('model_multiply_y', '1'), 'Reverse_Sequence_every_Odd_Layer': DEFSET, 'Separation_over_Perimeter_Width_ratio': DEFSET, },'speed': { diff --git a/SkeinPyPy_NewUI/newui/mainWindow.py b/SkeinPyPy_NewUI/newui/mainWindow.py index b2561808..ab42129b 100644 --- a/SkeinPyPy_NewUI/newui/mainWindow.py +++ b/SkeinPyPy_NewUI/newui/mainWindow.py @@ -171,6 +171,13 @@ class mainWindow(configBase.configWindowBase): c = configBase.SettingRow(right, "Rotate (deg)", 'model_rotate_base', '0', '') validators.validFloat(c) configBase.settingNotify(c, self.preview3d.updateModelTransform) + configBase.TitleRow(right, "Multiply") + c = configBase.SettingRow(right, "Multiple X", 'model_multiply_x', '1', '') + validators.validInt(c) + configBase.settingNotify(c, self.preview3d.updateModelTransform) + c = configBase.SettingRow(right, "Multiple Y", 'model_multiply_y', '1', '') + validators.validInt(c) + configBase.settingNotify(c, self.preview3d.updateModelTransform) # load and slice buttons. loadButton = wx.Button(self, -1, 'Load Model') diff --git a/SkeinPyPy_NewUI/newui/preview3d.py b/SkeinPyPy_NewUI/newui/preview3d.py index 1bc41bc5..b7afb4f4 100644 --- a/SkeinPyPy_NewUI/newui/preview3d.py +++ b/SkeinPyPy_NewUI/newui/preview3d.py @@ -381,21 +381,32 @@ class PreviewGLCanvas(glcanvas.GLCanvas): self.modelDisplayList = glGenLists(1); if self.parent.modelDirty: self.parent.modelDirty = False + multiX = int(settings.getProfileSetting('model_multiply_x', '1')) + multiY = int(settings.getProfileSetting('model_multiply_y', '1')) + modelSize = self.parent.triangleMesh.getCarveCornerMaximum() - self.parent.triangleMesh.getCarveCornerMinimum() glNewList(self.modelDisplayList, GL_COMPILE) - glBegin(GL_TRIANGLES) - for face in self.parent.triangleMesh.faces: - v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]] - v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]] - v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]] - glNormal3f(face.normal.x, face.normal.y, face.normal.z) - glVertex3f(v1.x, v1.y, v1.z) - glVertex3f(v2.x, v2.y, v2.z) - glVertex3f(v3.x, v3.y, v3.z) - glNormal3f(-face.normal.x, -face.normal.y, -face.normal.z) - glVertex3f(v1.x, v1.y, v1.z) - glVertex3f(v3.x, v3.y, v3.z) - glVertex3f(v2.x, v2.y, v2.z) - glEnd() + glPushMatrix() + glTranslate(-(modelSize.x+self.lineWidth*15)*(multiX-1)/2,-(modelSize.y+self.lineWidth*15)*(multiY-1)/2, 0) + for mx in xrange(0, multiX): + for my in xrange(0, multiY): + for face in self.parent.triangleMesh.faces: + glPushMatrix() + glTranslate((modelSize.x+self.lineWidth*15)*mx,(modelSize.y+self.lineWidth*15)*my, 0) + glBegin(GL_TRIANGLES) + v1 = self.parent.triangleMesh.vertexes[face.vertexIndexes[0]] + v2 = self.parent.triangleMesh.vertexes[face.vertexIndexes[1]] + v3 = self.parent.triangleMesh.vertexes[face.vertexIndexes[2]] + glNormal3f(face.normal.x, face.normal.y, face.normal.z) + glVertex3f(v1.x, v1.y, v1.z) + glVertex3f(v2.x, v2.y, v2.z) + glVertex3f(v3.x, v3.y, v3.z) + glNormal3f(-face.normal.x, -face.normal.y, -face.normal.z) + glVertex3f(v1.x, v1.y, v1.z) + glVertex3f(v3.x, v3.y, v3.z) + glVertex3f(v2.x, v2.y, v2.z) + glEnd() + glPopMatrix() + glPopMatrix() glEndList() if self.renderTransparent: #If we want transparent, then first render a solid black model to remove the printer size lines.