Add extrusion volume calculation for Slic3r gcode files
parent
33731464e5
commit
e32afe147a
|
@ -63,6 +63,8 @@ class GcodeManager:
|
||||||
dirty = True
|
dirty = True
|
||||||
if gcode.extrusionAmount:
|
if gcode.extrusionAmount:
|
||||||
analysisResult["filament"] = "%.2fm" % (gcode.extrusionAmount / 1000)
|
analysisResult["filament"] = "%.2fm" % (gcode.extrusionAmount / 1000)
|
||||||
|
if gcode.extrusionVolume:
|
||||||
|
analysisResult["filament"] += " / %.2fcc" % gcode.extrusionVolume
|
||||||
dirty = True
|
dirty = True
|
||||||
|
|
||||||
if dirty:
|
if dirty:
|
||||||
|
|
|
@ -37,6 +37,7 @@ class gcode(object):
|
||||||
self.regMatch = {}
|
self.regMatch = {}
|
||||||
self.layerList = []
|
self.layerList = []
|
||||||
self.extrusionAmount = 0
|
self.extrusionAmount = 0
|
||||||
|
self.extrusionVolume = 0
|
||||||
self.totalMoveTimeMinute = 0
|
self.totalMoveTimeMinute = 0
|
||||||
self.progressCallback = None
|
self.progressCallback = None
|
||||||
self._abort = False
|
self._abort = False
|
||||||
|
@ -61,6 +62,7 @@ class gcode(object):
|
||||||
currentE = 0.0
|
currentE = 0.0
|
||||||
totalExtrusion = 0.0
|
totalExtrusion = 0.0
|
||||||
maxExtrusion = 0.0
|
maxExtrusion = 0.0
|
||||||
|
extrusionDiameter = 0
|
||||||
currentExtruder = 0
|
currentExtruder = 0
|
||||||
extrudeAmountMultiply = 1.0
|
extrudeAmountMultiply = 1.0
|
||||||
totalMoveTimeMinute = 0.0
|
totalMoveTimeMinute = 0.0
|
||||||
|
@ -105,6 +107,8 @@ class gcode(object):
|
||||||
pathType = 'WALL-INNER'
|
pathType = 'WALL-INNER'
|
||||||
elif comment == 'skirt':
|
elif comment == 'skirt':
|
||||||
pathType = 'SKIRT'
|
pathType = 'SKIRT'
|
||||||
|
elif comment.startswith('filament_diameter = '):
|
||||||
|
filamentDiameter = int(line[line.find('=')+1:])
|
||||||
if comment.startswith('LAYER:'):
|
if comment.startswith('LAYER:'):
|
||||||
self.layerList.append(currentLayer)
|
self.layerList.append(currentLayer)
|
||||||
currentLayer = []
|
currentLayer = []
|
||||||
|
@ -276,6 +280,7 @@ class gcode(object):
|
||||||
unknownMcodes[M] = True
|
unknownMcodes[M] = True
|
||||||
self.layerList.append(currentLayer)
|
self.layerList.append(currentLayer)
|
||||||
self.extrusionAmount = maxExtrusion
|
self.extrusionAmount = maxExtrusion
|
||||||
|
self.extrusionVolume = math.pi * math.pow(filamentDiameter / 2.0, 2) * maxExtrusion / 1000.0
|
||||||
self.totalMoveTimeMinute = totalMoveTimeMinute
|
self.totalMoveTimeMinute = totalMoveTimeMinute
|
||||||
|
|
||||||
def getCodeInt(self, line, code):
|
def getCodeInt(self, line, code):
|
||||||
|
|
Loading…
Reference in New Issue