Add print time estimate

master
daid 2012-03-16 15:41:39 +01:00
parent dd79a4c140
commit 982ad9d829
1 changed files with 7 additions and 2 deletions

View File

@ -13,6 +13,7 @@ class gcode():
currentE = 0.0
totalExtrusion = 0.0
maxExtrusion = 0.0
totalMoveTimeMinute = 0.0
pathList = []
scale = 1.0
posAbs = True
@ -34,6 +35,7 @@ class gcode():
z = self.getCodeFloat(line, 'Z')
e = self.getCodeFloat(line, 'E')
f = self.getCodeFloat(line, 'F')
oldPos = pos.copy()
if x is not None:
if posAbs:
pos.x = x * scale
@ -45,15 +47,16 @@ class gcode():
else:
pos.y += y * scale
if z is not None:
oldZ = pos.z
if posAbs:
pos.z = z * scale
else:
pos.z += z * scale
if oldZ != pos.z and startCodeDone:
if oldPos.z != pos.z and startCodeDone:
layerNr += 1
if f is not None:
feedRate = f
if x is not None or y is not None or z is not None:
totalMoveTimeMinute += (oldPos - pos).vsize() / feedRate
moveType = 'move'
if e is not None:
if posAbs:
@ -138,7 +141,9 @@ class gcode():
self.layerCount = layerNr
self.pathList = pathList
self.extrusionAmount = maxExtrusion
self.totalMoveTimeMinute = totalMoveTimeMinute
print "Extruded a total of: %d mm of filament" % (self.extrusionAmount)
print "Estimated print duration: %.2f minutes" % (self.totalMoveTimeMinute)
def getCodeInt(self, str, id):
m = re.search(id + '([^\s]+)', str)