From cc89ddf5f76433f2a9b363018cfe43f6e910034c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 17 Jan 2018 11:39:38 +0100 Subject: [PATCH 1/3] Revert "Avoid zero thickness to be shown in layer view." I saw that with these changes, Cura crashes when loading a GCode. This reverts commit 8dd21892d33277bec88895393f992b612b7af526. --- plugins/SimulationView/SimulationView.py | 4 ++-- plugins/SimulationView/SimulationViewProxy.py | 4 ++-- plugins/SimulationView/__init__.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index 9249cd4a54..f667aff998 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import sys @@ -344,7 +344,7 @@ class SimulationView(View): self._max_feedrate = max(float(p.lineFeedrates.max()), self._max_feedrate) self._min_feedrate = min(float(p.lineFeedrates.min()), self._min_feedrate) self._max_thickness = max(float(p.lineThicknesses.max()), self._max_thickness) - self._min_thickness = min(float(p.lineThicknesses[numpy.nonzero(p.lineThicknesses)].min()), self._min_thickness) + self._min_thickness = min(float(p.lineThicknesses.min()), self._min_thickness) if max_layer_number < layer_id: max_layer_number = layer_id if min_layer_number > layer_id: diff --git a/plugins/SimulationView/SimulationViewProxy.py b/plugins/SimulationView/SimulationViewProxy.py index a84b151983..e144b841e6 100644 --- a/plugins/SimulationView/SimulationViewProxy.py +++ b/plugins/SimulationView/SimulationViewProxy.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty @@ -117,7 +117,7 @@ class SimulationViewProxy(QObject): def setSimulationViewType(self, layer_view_type): active_view = self._controller.getActiveView() if isinstance(active_view, SimulationView.SimulationView.SimulationView): - active_view.setSimulationViewType(layer_view_type) + active_view.setSimulationViewisinstance(layer_view_type) @pyqtSlot(result=int) def getSimulationViewType(self): diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index 360fdc1de9..15e113bd8e 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtQml import qmlRegisterSingletonType @@ -18,7 +18,7 @@ def getMetaData(): } def createSimulationViewProxy(engine, script_engine): - return SimulationViewProxy.SimulationViewProxy() + return SimulationViewProxy.SimulatorViewProxy() def register(app): simulation_view = SimulationView.SimulationView() From e6169a7c618ecfd0aa3fc3360a3cd6e9e26b6bfb Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 17 Jan 2018 11:53:31 +0100 Subject: [PATCH 2/3] Fix some typos --- plugins/SimulationView/SimulationViewProxy.py | 4 ++-- plugins/SimulationView/__init__.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/SimulationView/SimulationViewProxy.py b/plugins/SimulationView/SimulationViewProxy.py index e144b841e6..a84b151983 100644 --- a/plugins/SimulationView/SimulationViewProxy.py +++ b/plugins/SimulationView/SimulationViewProxy.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty @@ -117,7 +117,7 @@ class SimulationViewProxy(QObject): def setSimulationViewType(self, layer_view_type): active_view = self._controller.getActiveView() if isinstance(active_view, SimulationView.SimulationView.SimulationView): - active_view.setSimulationViewisinstance(layer_view_type) + active_view.setSimulationViewType(layer_view_type) @pyqtSlot(result=int) def getSimulationViewType(self): diff --git a/plugins/SimulationView/__init__.py b/plugins/SimulationView/__init__.py index 15e113bd8e..360fdc1de9 100644 --- a/plugins/SimulationView/__init__.py +++ b/plugins/SimulationView/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtQml import qmlRegisterSingletonType @@ -18,7 +18,7 @@ def getMetaData(): } def createSimulationViewProxy(engine, script_engine): - return SimulationViewProxy.SimulatorViewProxy() + return SimulationViewProxy.SimulationViewProxy() def register(app): simulation_view = SimulationView.SimulationView() From 5c0e2d39a366d2daf78262f16826c27bf853a406 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 17 Jan 2018 11:54:22 +0100 Subject: [PATCH 3/3] Avoid zero thickness to be shown in layer view. --- plugins/SimulationView/SimulationView.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/SimulationView/SimulationView.py b/plugins/SimulationView/SimulationView.py index f667aff998..dfecda06bb 100644 --- a/plugins/SimulationView/SimulationView.py +++ b/plugins/SimulationView/SimulationView.py @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Ultimaker B.V. +# Copyright (c) 2018 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import sys @@ -344,7 +344,12 @@ class SimulationView(View): self._max_feedrate = max(float(p.lineFeedrates.max()), self._max_feedrate) self._min_feedrate = min(float(p.lineFeedrates.min()), self._min_feedrate) self._max_thickness = max(float(p.lineThicknesses.max()), self._max_thickness) - self._min_thickness = min(float(p.lineThicknesses.min()), self._min_thickness) + try: + self._min_thickness = min(float(p.lineThicknesses[numpy.nonzero(p.lineThicknesses)].min()), self._min_thickness) + except: + # Sometimes, when importing a GCode the line thicknesses are zero and so the minimum (avoiding + # the zero) can't be calculated + Logger.log("i", "Min thickness can't be calculated because all the values are zero") if max_layer_number < layer_id: max_layer_number = layer_id if min_layer_number > layer_id: