def getCraftedText(fileName, text='', repository=None):
'Alteration a gcode linear move text.'
- return getCraftedTextFromText(archive.getTextIfEmpty(fileName, text), repository)
+ return getCraftedTextFromText(archive.getTextIfEmpty(fileName, text), repository, fileName)
-def getCraftedTextFromText(gcodeText, repository=None):
+def getCraftedTextFromText(gcodeText, repository=None, fileName=''):
'Alteration a gcode linear move text.'
if gcodec.isProcedureDoneOrFileIsEmpty(gcodeText, 'alteration'):
return gcodeText
repository = settings.getReadRepository(AlterationRepository())
if not repository.activateAlteration.value:
return gcodeText
- return AlterationSkein().getCraftedGcode(gcodeText, repository)
+ return AlterationSkein().getCraftedGcode(gcodeText, repository, fileName)
def getGcodeTextWithoutRedundantMcode(gcodeText):
'Get gcode text without redundant M104 and M108.'
def addFromUpperLowerFile(self, fileName):
"Add lines of text from the fileName or the lowercase fileName, if there is no file by the original fileName in the directory."
- alterationFileLines = settings.getAlterationFileLines(fileName)
+ alterationFileLines = map(lambda l: l.replace('?filename?', self.fileName), settings.getAlterationFileLines(fileName))
self.distanceFeedRate.addLinesSetAbsoluteDistanceMode(alterationFileLines)
- def getCraftedGcode(self, gcodeText, repository):
+ def getCraftedGcode(self, gcodeText, repository, fileName):
"Parse gcode text and store the bevel gcode."
+ self.fileName = fileName
self.lines = archive.getTextLines(gcodeText)
if repository.replaceVariableWithSetting.value:
self.setSettingDictionary()
}\r
alterationDefault = {\r
#######################################################################################\r
- 'start.gcode': """;Sliced at: {day} {date} {time}\r
+ 'start.gcode': """;Sliced {filename} at: {day} {date} {time}\r
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}\r
;Print time: {print_time}\r
;Filament used: {filament_amount}m {filament_weight}g\r
## Alteration file functions\r
#########################################################\r
def replaceTagMatch(m):\r
- tag = m.group(0)[1:-1]\r
+ tag = m.group(1)\r
if tag == 'time':\r
return time.strftime('%H:%M:%S')\r
if tag == 'date':\r
elif isPreference(tag):\r
f = getProfileSettingFloat(tag)\r
else:\r
- return tag\r
+ return '?%s?' % (tag)\r
if (f % 1) == 0:\r
return str(int(f))\r
return str(f)\r
#Always remove the extruder on/off M codes. These are no longer needed in 5D printing.\r
prefix = 'M101\nM103\n'\r
\r
- return unicode(prefix + re.sub("\{[^\}]*\}", replaceTagMatch, alterationContents).rstrip() + '\n' + postfix).encode('utf-8')\r
+ return unicode(prefix + re.sub("\{([^\}]*)\}", replaceTagMatch, alterationContents).rstrip() + '\n' + postfix).encode('utf-8')\r
\r