From 28e84b49de3aef1e2b0ec060c3ab3af8b9082db2 Mon Sep 17 00:00:00 2001 From: Denvi Date: Mon, 7 Dec 2015 22:40:30 +0500 Subject: [PATCH] Check "matplotlib" performance. --- FlatCAMApp.py | 1 - FlatCAMObj.py | 7 ++++--- PlotCanvas.py | 3 ++- camlib.py | 15 ++++++++------- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 704331d..164f751 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -25,7 +25,6 @@ from FlatCAMDraw import FlatCAMDraw from FlatCAMProcess import * from MeasurementTool import Measurement from DblSidedTool import DblSidedTool -import re ######################################## diff --git a/FlatCAMObj.py b/FlatCAMObj.py index 748ce54..9c2dae9 100644 --- a/FlatCAMObj.py +++ b/FlatCAMObj.py @@ -8,6 +8,7 @@ from FlatCAMCommon import LoudDict from FlatCAMDraw import FlatCAMDraw from shapely.geometry.base import CAP_STYLE, JOIN_STYLE +TOLERANCE = 0.01 ######################################## ## FlatCAMObj ## @@ -1062,7 +1063,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob): if not FlatCAMObj.plot(self): return - self.plot2(self.axes, tooldia=self.options["tooldia"]) + self.plot2(self.axes, tooldia=self.options["tooldia"], tool_tolerance=TOLERANCE) self.app.plotcanvas.auto_adjust_axes() @@ -1391,7 +1392,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): except TypeError: # Element is not iterable... if type(element) == Polygon: - x, y = element.exterior.coords.xy + x, y = element.simplify(TOLERANCE).exterior.coords.xy self.axes.plot(x, y, 'r-') for ints in element.interiors: x, y = ints.coords.xy @@ -1399,7 +1400,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry): return if type(element) == LineString or type(element) == LinearRing: - x, y = element.coords.xy + x, y = element.simplify(TOLERANCE).coords.xy self.axes.plot(x, y, 'r-') return diff --git a/PlotCanvas.py b/PlotCanvas.py index 0fdef5c..07cf899 100644 --- a/PlotCanvas.py +++ b/PlotCanvas.py @@ -343,7 +343,8 @@ class PlotCanvas: self.pan_axes.append(a) # Set pan view flag - if len(self.pan_axes) > 0: self.panning = True; + if len(self.pan_axes) > 0: + self.panning = True; def on_mouse_release(self, event): diff --git a/camlib.py b/camlib.py index ae85dda..a9aa693 100644 --- a/camlib.py +++ b/camlib.py @@ -3099,15 +3099,16 @@ class CNCjob(Geometry): else: for geo in self.gcode_parsed: path_num += 1 - axes.annotate(str(path_num), xy=geo['geom'].coords[0], - xycoords='data') + # axes.annotate(str(path_num), xy=geo['geom'].coords[0], + # xycoords='data') poly = geo['geom'].buffer(tooldia / 2.0).simplify(tool_tolerance) - patch = PolygonPatch(poly, facecolor=color[geo['kind'][0]][0], - edgecolor=color[geo['kind'][0]][1], - alpha=alpha[geo['kind'][0]], zorder=2) - axes.add_patch(patch) - + if "C" in geo['kind']: + patch = PolygonPatch(poly, facecolor=color[geo['kind'][0]][0], + edgecolor=color[geo['kind'][0]][1], + alpha=alpha[geo['kind'][0]], zorder=2) + axes.add_patch(patch) + def create_geometry(self): # TODO: This takes forever. Too much data? self.solid_geometry = cascaded_union([geo['geom'] for geo in self.gcode_parsed])