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