status = ""\r
if self.gcode != None:\r
status += "Filament: %.2fm %.2fg\n" % (self.gcode.extrusionAmount / 1000, self.gcode.calculateWeight() * 1000)\r
- cost_kg = float(profile.getPreference('filament_cost_kg'))\r
- cost_meter = float(profile.getPreference('filament_cost_meter'))\r
- if cost_kg > 0.0 and cost_meter > 0.0:\r
- status += "Filament cost: %.2f / %.2f\n" % (self.gcode.calculateWeight() * cost_kg, self.gcode.extrusionAmount / 1000 * cost_meter)\r
- elif cost_kg > 0.0:\r
- status += "Filament cost: %.2f\n" % (self.gcode.calculateWeight() * cost_kg)\r
- elif cost_meter > 0.0:\r
- status += "Filament cost: %.2f\n" % (self.gcode.extrusionAmount / 1000 * cost_meter)\r
+ cost = self.gcode.calculateCost()\r
+ if cost != False:\r
+ status += "Filament cost: %s\n" % (cost)\r
status += "Print time: %02d:%02d\n" % (int(self.gcode.totalMoveTimeMinute / 60), int(self.gcode.totalMoveTimeMinute % 60))\r
if self.printIdx == None:\r
self.progress.SetValue(0)\r
from util import profile
from util import sliceRun
from util import exporer
+from util import gcodeInterpreter
class sliceProgessPanel(wx.Panel):
def __init__(self, mainWindow, parent, filelist):
self.Bind(wx.EVT_BUTTON, self.OnAbort, self.abortButton)
self.sizer.Add(self.logButton, 0)
if result.returnCode == 0:
- self.statusText.SetLabel("Ready.")
+ status = "Ready: Filament: %.2fm %.2fg" % (result.gcode.extrusionAmount / 1000, result.gcode.calculateWeight() * 1000)
+ status += " Print time: %02d:%02d\n" % (int(result.gcode.totalMoveTimeMinute / 60), int(result.gcode.totalMoveTimeMinute % 60))
+ cost = result.gcode.calculateCost()
+ if cost != False:
+ status += "Cost: %s\n" % (cost)
+ self.statusText.SetLabel(status)
if exporer.hasExporer():
self.openFileLocationButton = wx.Button(self, -1, "Open file location")
self.Bind(wx.EVT_BUTTON, self.OnOpenFileLocation, self.openFileLocationButton)
if self.fileIdx == len(self.cmdList):
if len(self.filelist) > 1:
self._stitchMultiExtruder()
+ self.gcode = gcodeInterpreter.gcode()
+ self.gcode.load(self.filelist[0][:self.filelist[0].rfind('.')]+'_export.gcode')
wx.CallAfter(self.notifyWindow.OnSliceDone, self)
else:
self.run()
volumeM3 = (self.extrusionAmount * (math.pi * radius * radius)) / (1000*1000*1000)
return volumeM3 * float(profile.getPreference('filament_density'))
+ def calculateCost(self):
+ cost_kg = float(profile.getPreference('filament_cost_kg'))
+ cost_meter = float(profile.getPreference('filament_cost_meter'))
+ if cost_kg > 0.0 and cost_meter > 0.0:
+ return "%.2f / %.2f" % (self.calculateWeight() * cost_kg, self.extrusionAmount / 1000 * cost_meter)
+ elif cost_kg > 0.0:
+ return "%.2f" % (self.calculateWeight() * cost_kg)
+ elif cost_meter > 0.0:
+ return "%.2f" % (self.extrusionAmount / 1000 * cost_meter)
+ return False
+
def _load(self, gcodeFile):
filePos = 0
pos = util3d.Vector3()
self.layerList.append(currentLayer)
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)
+ #print "Extruded a total of: %d mm of filament" % (self.extrusionAmount)
+ #print "Estimated print duration: %.2f minutes" % (self.totalMoveTimeMinute)
def getCodeInt(self, line, code):
if code not in self.regMatch: