Added multiply settings

master
daid 2012-03-16 12:07:43 +01:00
parent 7954a951a6
commit bb0b36cc07
3 changed files with 34 additions and 16 deletions

View File

@ -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': {

View File

@ -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')

View File

@ -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.