ret = self.activeRead(size)\r
return ret\r
\r
- def replaceAtStart(self, key, value):\r
+ def replaceAtStart(self, dictionary):\r
data = self._list[0].getvalue()\r
block0 = data[0:2048]\r
- value = (value + ' ' * len(key))[:len(key)]\r
- block0 = block0.replace(key, value)\r
+ block1 = StringIO.StringIO()\r
+ block1.write(data[2048:])\r
+ self._list.insert(1, block1)\r
+ for key, value in dictionary.items():\r
+ block0 = block0.replace(key, str(value))\r
self._list[0] = StringIO.StringIO()\r
self._list[0].write(block0)\r
- self._list[0].write(data[2048:])\r
\r
def __len__(self):\r
ret = 0\r
return None
return _('%0.2f meter %0.0f gram') % (float(self._filamentMM[e]) / 1000.0, self.getFilamentWeight(e) * 1000.0)
+ def getFilamentAmountMeters(self, e=0):
+ return float(self._filamentMM[e]) / 1000.0
+
def getLog(self):
return self._engineLog
def setHash(self, hash):
self._modelHash = hash
+ def addReplaceTag(self, key, value):
+ self._replaceInfo[key] = value
+
+ def applyReplaceTags(self):
+ self._gcodeData.replaceAtStart(self._replaceInfo)
+
def setFinished(self, result):
- if result:
- for k, v in self._replaceInfo.items():
- self._gcodeData.replaceAtStart(k, v)
self._finished = result
def isFinished(self):
returnCode = self._process.wait()
logThread.join()
if returnCode == 0:
+ self._result.addReplaceTag('#P_TIME#', self._result.getPrintTime())
+ self._result.addReplaceTag('#F_AMNT#', self._result.getFilamentAmountMeters(0))
+ self._result.addReplaceTag('#F_WGHT#', math.round(self._result.getFilamentWeight(0) * 1000.0))
+ self._result.addReplaceTag('#F_COST#', self._result.getFilamentCost(0))
+ self._result.applyReplaceTags()
plugin_error = pluginInfo.runPostProcessingPlugins(self._result)
if plugin_error is not None:
print plugin_error
radius = profile.getProfileSettingFloat('filament_diameter') / 2.0
self._result._filamentMM[1] /= (math.pi * radius * radius)
elif line.startswith('Replace:'):
- self._result._replaceInfo[line.split(':')[1].strip()] = line.split(':')[2].strip()
+ self._result.addReplaceTag(line.split(':')[1].strip(), line.split(':')[2].strip())
else:
self._result.addLog(line)
line = stderr.readline()