|
@@ -90,11 +90,12 @@ class SimulationView(CuraView):
|
|
|
|
|
|
self._max_feedrate = sys.float_info.min
|
|
|
self._min_feedrate = sys.float_info.max
|
|
|
- self._max_feedrate_with_extrusion = sys.float_info.min
|
|
|
self._max_thickness = sys.float_info.min
|
|
|
self._min_thickness = sys.float_info.max
|
|
|
self._max_line_width = sys.float_info.min
|
|
|
self._min_line_width = sys.float_info.max
|
|
|
+ self._min_flow_rate = sys.float_info.max
|
|
|
+ self._max_flow_rate = sys.float_info.min
|
|
|
|
|
|
self._global_container_stack = None # type: Optional[ContainerStack]
|
|
|
self._proxy = None
|
|
@@ -413,13 +414,12 @@ class SimulationView(CuraView):
|
|
|
return self._min_line_width
|
|
|
|
|
|
def getMaxFlowRate(self) -> float:
|
|
|
- return self._max_line_width * self._max_thickness * self._max_feedrate_with_extrusion
|
|
|
+ return self._max_flow_rate
|
|
|
|
|
|
def getMinFlowRate(self) -> float:
|
|
|
- min_flow_rate = self._min_line_width * self._min_thickness * self._min_feedrate
|
|
|
- if abs(min_flow_rate - sys.float_info.max) < 10: # Some lenience due to floating point rounding.
|
|
|
+ if abs(self._min_flow_rate - sys.float_info.max) < 10: # Some lenience due to floating point rounding.
|
|
|
return 0.0 # If it's still max-float, there are no measurements. Use 0 then.
|
|
|
- return min_flow_rate
|
|
|
+ return self._min_flow_rate
|
|
|
|
|
|
def calculateMaxLayers(self) -> None:
|
|
|
"""
|
|
@@ -474,19 +474,21 @@ class SimulationView(CuraView):
|
|
|
# Before we start, save the old values so that we can tell if any of the spectrums need to change.
|
|
|
old_min_feedrate = self._min_feedrate
|
|
|
old_max_feedrate = self._max_feedrate
|
|
|
- old_max_feedrate_with_extrusion = self._max_feedrate_with_extrusion
|
|
|
old_min_linewidth = self._min_line_width
|
|
|
old_max_linewidth = self._max_line_width
|
|
|
old_min_thickness = self._min_thickness
|
|
|
old_max_thickness = self._max_thickness
|
|
|
+ old_min_flow_rate = self._min_flow_rate
|
|
|
+ old_max_flow_rate = self._max_flow_rate
|
|
|
|
|
|
self._min_feedrate = sys.float_info.max
|
|
|
self._max_feedrate = sys.float_info.min
|
|
|
- self._max_feedrate_with_extrusion = sys.float_info.min
|
|
|
self._min_line_width = sys.float_info.max
|
|
|
self._max_line_width = sys.float_info.min
|
|
|
self._min_thickness = sys.float_info.max
|
|
|
self._max_thickness = sys.float_info.min
|
|
|
+ self._min_flow_rate = sys.float_info.max
|
|
|
+ self._max_flow_rate = sys.float_info.min
|
|
|
|
|
|
# The colour scheme is only influenced by the visible lines, so filter the lines by if they should be visible.
|
|
|
visible_line_types = []
|
|
@@ -522,10 +524,14 @@ class SimulationView(CuraView):
|
|
|
visible_feedrates = numpy.take(polyline.lineFeedrates, visible_indices)
|
|
|
visible_feedrates_with_extrusion = numpy.take(polyline.lineFeedrates, visible_indicies_with_extrusion)
|
|
|
visible_linewidths = numpy.take(polyline.lineWidths, visible_indices)
|
|
|
+ visible_linewidths_with_extrusion = numpy.take(polyline.lineWidths, visible_indicies_with_extrusion)
|
|
|
visible_thicknesses = numpy.take(polyline.lineThicknesses, visible_indices)
|
|
|
+ visible_thicknesses_with_extrusion = numpy.take(polyline.lineThicknesses, visible_indicies_with_extrusion)
|
|
|
self._max_feedrate = max(float(visible_feedrates.max()), self._max_feedrate)
|
|
|
if visible_feedrates_with_extrusion.size != 0:
|
|
|
- self._max_feedrate_with_extrusion = max(float(visible_feedrates_with_extrusion.max()), self._max_feedrate_with_extrusion)
|
|
|
+ flow_rates = visible_feedrates_with_extrusion * visible_linewidths_with_extrusion * visible_thicknesses_with_extrusion
|
|
|
+ self._min_flow_rate = min(float(flow_rates.min()), self._min_flow_rate)
|
|
|
+ self._max_flow_rate = max(float(flow_rates.max()), self._max_flow_rate)
|
|
|
self._min_feedrate = min(float(visible_feedrates.min()), self._min_feedrate)
|
|
|
self._max_line_width = max(float(visible_linewidths.max()), self._max_line_width)
|
|
|
self._min_line_width = min(float(visible_linewidths.min()), self._min_line_width)
|
|
@@ -539,7 +545,7 @@ class SimulationView(CuraView):
|
|
|
if old_min_feedrate != self._min_feedrate or old_max_feedrate != self._max_feedrate \
|
|
|
or old_min_linewidth != self._min_line_width or old_max_linewidth != self._max_line_width \
|
|
|
or old_min_thickness != self._min_thickness or old_max_thickness != self._max_thickness \
|
|
|
- or old_max_feedrate_with_extrusion != self._max_feedrate_with_extrusion:
|
|
|
+ or old_min_flow_rate != self._min_flow_rate or old_max_flow_rate != self._max_flow_rate:
|
|
|
self.colorSchemeLimitsChanged.emit()
|
|
|
|
|
|
def calculateMaxPathsOnLayer(self, layer_num: int) -> None:
|