From d2390cda0e357652ad849cf596527fedf3e3cb0f Mon Sep 17 00:00:00 2001 From: daid303 Date: Mon, 10 Jun 2013 09:43:27 +0200 Subject: [PATCH] Fix plugin support, fix the pauzeAtZ plugin. --- Cura/gui/mainWindow.py | 5 +++-- Cura/gui/pluginPanel.py | 2 ++ Cura/plugins/pauseAtZ.py | 9 +++++---- Cura/util/profile.py | 7 +++++-- Cura/util/sliceEngine.py | 2 +- Cura/util/validators.py | 2 ++ 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index a2829b2a..47f94967 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -261,8 +261,9 @@ class mainWindow(wx.Frame): prefDialog.Show() def OnDropFiles(self, files): - profile.setPluginConfig([]) - self.updateProfileToControls() + if len(files) > 0: + profile.setPluginConfig([]) + self.updateProfileToControls() self.scene.loadScene(files) def OnModelMRU(self, e): diff --git a/Cura/gui/pluginPanel.py b/Cura/gui/pluginPanel.py index 83a50d68..abf89c71 100644 --- a/Cura/gui/pluginPanel.py +++ b/Cura/gui/pluginPanel.py @@ -59,6 +59,7 @@ class pluginPanel(wx.Panel): def updateProfileToControls(self): self.pluginConfig = profile.getPluginConfig() + print 'pluginPanel::updateProfileToControls', self.pluginConfig for p in self.panelList: p.Show(False) self.pluginEnabledPanel.GetSizer().Detach(p) @@ -121,6 +122,7 @@ class pluginPanel(wx.Panel): return True def OnSettingChange(self, e): + print 'pluginPanel::OnSettingChange' for panel in self.panelList: idx = self.panelList.index(panel) for k in panel.paramCtrls.keys(): diff --git a/Cura/plugins/pauseAtZ.py b/Cura/plugins/pauseAtZ.py index ec13b130..119bfcb5 100644 --- a/Cura/plugins/pauseAtZ.py +++ b/Cura/plugins/pauseAtZ.py @@ -25,10 +25,11 @@ def getValue(line, key, default = None): with open(filename, "r") as f: lines = f.readlines() -z = 0 -x = 0 -y = 0 +z = 0. +x = 0. +y = 0. pauseState = 0 +currentSectionType = 'CUSTOM' with open(filename, "w") as f: for line in lines: if line.startswith(';'): @@ -36,7 +37,7 @@ with open(filename, "w") as f: currentSectionType = line[6:].strip() f.write(line) continue - if getValue(line, 'G', None) == 1: + if getValue(line, 'G', None) == 1 or getValue(line, 'G', None) == 0: newZ = getValue(line, 'Z', z) x = getValue(line, 'X', x) y = getValue(line, 'Y', y) diff --git a/Cura/util/profile.py b/Cura/util/profile.py index 831f7d53..0fa25541 100644 --- a/Cura/util/profile.py +++ b/Cura/util/profile.py @@ -781,12 +781,15 @@ def getAlterationFileContents(filename, extruderCount = 1): def getPluginConfig(): try: - return pickle.loads(getProfileSetting('plugin_config')) + return pickle.loads(str(getProfileSetting('plugin_config'))) except: return [] def setPluginConfig(config): putProfileSetting('plugin_config', pickle.dumps(config)) + print 'setPluginConfig:', config + locationInfo = traceback.extract_tb(sys.exc_info()[2])[-1] + print "%s: '%s' @ %s:%s:%d" % (str(sys.exc_info()[0].__name__), str(sys.exc_info()[1]), os.path.basename(locationInfo[0]), locationInfo[2], locationInfo[1]) def getPluginBasePaths(): ret = [] @@ -835,7 +838,7 @@ def getPluginList(): def runPostProcessingPlugins(gcodefilename): pluginConfigList = getPluginConfig() pluginList = getPluginList() - + for pluginConfig in pluginConfigList: plugin = None for pluginTest in pluginList: diff --git a/Cura/util/sliceEngine.py b/Cura/util/sliceEngine.py index d7d6255f..87a986e8 100644 --- a/Cura/util/sliceEngine.py +++ b/Cura/util/sliceEngine.py @@ -188,7 +188,7 @@ class Slicer(object): returnCode = self._process.wait() try: if returnCode == 0: - profile.runPostProcessingPlugins(self._exportFilename) + print profile.runPostProcessingPlugins(self._exportFilename) self._callback(1.0, True) else: for line in self._sliceLog: diff --git a/Cura/util/validators.py b/Cura/util/validators.py index 90145010..4a072905 100644 --- a/Cura/util/validators.py +++ b/Cura/util/validators.py @@ -82,6 +82,8 @@ class wallThicknessValidator(object): return WARNING, 'Trying to print walls thinner then the 0.8 * nozzle size. Small chance that this will produce usable results' if wallThickness < nozzleSize: return SUCCESS, '' + if nozzleSize <= 0: + return ERROR, 'Incorrect nozzle size' lineCount = int(wallThickness / nozzleSize) lineWidth = wallThickness / lineCount -- 2.30.2