self._objColors[3] = profile.getPreferenceColour('model_colour4')
self._scene.setMachineSize(self._machineSize)
self._scene.setSizeOffsets(numpy.array(profile.calculateObjectSizeOffsets(), numpy.float32))
+ self._scene.setHeadSize(profile.getPreferenceFloat('extruder_head_size_min_x'), profile.getPreferenceFloat('extruder_head_size_max_x'), profile.getPreferenceFloat('extruder_head_size_min_y'), profile.getPreferenceFloat('extruder_head_size_max_y'), profile.getPreferenceFloat('extruder_head_size_height'))
if self._selectedObj is not None:
scale = self._selectedObj.getScale()
self.applyMatrix(numpy.matrix([[x,0,0],[0,y,0],[0,0,z]], numpy.float64))
def resetRotation(self):
- x = numpy.linalg.norm(self.matrix[::,0].getA().flatten())
- y = numpy.linalg.norm(self.matrix[::,1].getA().flatten())
- z = numpy.linalg.norm(self.matrix[::,2].getA().flatten())
- self.applyMatrix(numpy.matrix([[x,0,0],[0,y,0],[0,0,z]], numpy.float64))
+ x = numpy.linalg.norm(self._matrix[::,0].getA().flatten())
+ y = numpy.linalg.norm(self._matrix[::,1].getA().flatten())
+ z = numpy.linalg.norm(self._matrix[::,2].getA().flatten())
+ self._matrix = numpy.matrix([[x,0,0],[0,y,0],[0,0,z]], numpy.float64)
+ self.processMatrix()
def layFlat(self):
transformedVertexes = (numpy.matrix(self._meshList[0].vertexes, copy = False) * self._matrix).getA()
self.todo = todo
class _objectOrderFinder(object):
- def __init__(self, scene, offset):
+ def __init__(self, scene, offset, leftToRight, frontToBack, gantryHeight):
self._scene = scene
self._offset = offset - numpy.array([0.1,0.1])
self._objs = scene.objects()
- self._leftToRight = True
- self._frontToBack = True
+ self._leftToRight = leftToRight
+ self._frontToBack = frontToBack
initialList = []
for n in xrange(0, len(self._objs)):
if scene.checkPlatform(self._objs[n]):
size = self._scene._objectList[idx].getSize()
if self._leftToRight:
- if addPos[0] + addSize[0] / 2 + self._offset[0] <= pos[0] - size[0] / 2:
+ if addPos[0] - addSize[0] / 2 - self._offset[0] <= pos[0] + size[0] / 2:
return False
else:
- if addPos[0] - addSize[0] / 2 - self._offset[0] <= pos[0] + size[0] / 2:
+ if addPos[0] + addSize[0] / 2 + self._offset[0] <= pos[0] - size[0] / 2:
return False
if self._frontToBack:
self._sizeOffsets = numpy.array([0.0,0.0], numpy.float32)
self._machineSize = numpy.array([100,100,100], numpy.float32)
self._headOffsets = numpy.array([18.0,18.0], numpy.float32)
+ self._leftToRight = False
+ self._frontToBack = True
+ self._gantryHeight = 60
def setMachineSize(self, machineSize):
self._machineSize = machineSize
def setSizeOffsets(self, sizeOffsets):
self._sizeOffsets = sizeOffsets
+ def setHeadSize(self, xMin, xMax, yMin, yMax, gantryHeight):
+ self._leftToRight = xMin < xMax
+ self._frontToBack = yMin < yMax
+ self._headOffsets[0] = min(xMin, xMax)
+ self._headOffsets[1] = min(yMin, yMax)
+ self._gantryHeight = gantryHeight
+
def getObjectExtend(self):
return self._sizeOffsets + self._headOffsets
obj.setPosition(obj.getPosition() + offset)
def printOrder(self):
- order = _objectOrderFinder(self, self._headOffsets + self._sizeOffsets).order
+ order = _objectOrderFinder(self, self._headOffsets + self._sizeOffsets, self._leftToRight, self._frontToBack, self._gantryHeight).order
if order is None:
print "ODD! Cannot find out proper printing order!!!"
for obj in self._objectList: