diff --git a/src/Mod/Path/Gui/Resources/preferences/PathJob.ui b/src/Mod/Path/Gui/Resources/preferences/PathJob.ui index f7ab52128..17e82cab4 100644 --- a/src/Mod/Path/Gui/Resources/preferences/PathJob.ui +++ b/src/Mod/Path/Gui/Resources/preferences/PathJob.ui @@ -70,6 +70,9 @@ + + <html><head/><body><p>Select one of the post processors as the default.</p></body></html> + DefaultPostProcessor @@ -106,7 +109,14 @@ - + + + true + + + <html><head/><body><p>It doesn't seem there are any post processor scripts installed. Pleas add some into your macro directory and make sure the file name ends with &quot;_post.py&quot;.</p></body></html> + + diff --git a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py index fd423c4dc..d9581de29 100644 --- a/src/Mod/Path/PathScripts/PathPreferencesPathJob.py +++ b/src/Mod/Path/PathScripts/PathPreferencesPathJob.py @@ -34,10 +34,9 @@ class Page: self.postProcessorDefaultTooltip = self.form.defaultPostProcessor.toolTip() self.postProcessorArgsDefaultTooltip = self.form.defaultPostProcessorArgs.toolTip() - self.tooltip = { } + self.processor = { } def saveSettings(self): - print("saveSettings") processor = str(self.form.defaultPostProcessor.currentText()) args = str(self.form.defaultPostProcessorArgs.text()) blacklist = [] @@ -48,7 +47,6 @@ class Page: PostProcessor.saveDefaults(processor, args, blacklist) def loadSettings(self): - print("loadSettings") self.form.defaultPostProcessor.addItem("") blacklist = PostProcessor.blacklist() for processor in PostProcessor.all(): @@ -71,12 +69,34 @@ class Page: self.form.defaultPostProcessorArgs.setText(PostProcessor.defaultArgs()) self.form.postProcessorList.itemEntered.connect(self.setProcessorListTooltip) + self.form.defaultPostProcessor.currentIndexChanged.connect(self.updateDefaultPostProcessorToolTip) + + def getPostProcessor(self, name): + if not name in self.processor.keys(): + processor = PostProcessor.load(name) + self.processor[name] = processor + return processor + return self.processor[name] + + def setPostProcessorTooltip(self, widget, name, default): + processor = self.getPostProcessor(name) + if processor.tooltip: + widget.setToolTip(processor.tooltip) + else: + widget.setToolTip(default) def setProcessorListTooltip(self, item): - if not item.text() in self.tooltip.keys(): - processor = PostProcessor.load(item.text()) - if processor.tooltip: - self.form.postProcessorList.setToolTip(processor.tooltip) - else: - self.form.postProcessorList.setToolTip('') + self.setPostProcessorTooltip(self.form.postProcessorList, item.text(), '') + def updateDefaultPostProcessorToolTip(self): + name = str(self.form.defaultPostProcessor.currentText()) + if name: + self.setPostProcessorTooltip(self.form.defaultPostProcessor, name, self.postProcessorDefaultTooltip) + processor = self.getPostProcessor(name) + if processor.tooltipArgs: + self.form.defaultPostProcessorArgs.setToolTip(processor.tooltipArgs) + else: + self.form.defaultPostProcessorArgs.setToolTip(self.postProcessorArgsDefaultTooltip) + else: + self.form.defaultPostProcessor.setToolTip(self.postProcessorDefaultTooltip) + self.form.defaultPostProcessorArgs.setToolTip(self.postProcessorArgsDefaultTooltip) diff --git a/src/Mod/Path/PathScripts/centroid_post.py b/src/Mod/Path/PathScripts/centroid_post.py index f95ca1a69..dbae475d9 100644 --- a/src/Mod/Path/PathScripts/centroid_post.py +++ b/src/Mod/Path/PathScripts/centroid_post.py @@ -26,7 +26,6 @@ TOOLTIP=''' example post for Centroid CNC mill''' import FreeCAD import datetime now = datetime.datetime.now() -originfile = FreeCAD.ActiveDocument.FileName import Path, PathScripts from PathScripts import PostUtils @@ -46,7 +45,7 @@ COMMENT= ';' #centroid control comment symbol HEADER = "" HEADER += ";Exported by FreeCAD\n" HEADER += ";Post Processor: " + __name__ +"\n" -HEADER += ";CAM file: "+originfile+"\n" +HEADER += ";CAM file: %s\n" HEADER += ";Output Time:"+str(now)+"\n" TOOLRETURN = '''M5 M25 @@ -89,7 +88,7 @@ def export(selection,filename,argstring): print "No machine found in this selection" gcode ='' - gcode+= HEADER + gcode+= HEADER % (FreeCAD.ActiveDocument.FileName) gcode+= SAFETYBLOCK gcode+= UNITS+'\n'