From 22119072d352c1e066221a85fb148f2c9b6c417a Mon Sep 17 00:00:00 2001 From: Juan Pablo Caram Date: Fri, 11 Sep 2015 14:45:08 -0400 Subject: [PATCH] Cleanup. And fixes #148. --- DblSidedTool.py | 3 ++- FlatCAMApp.py | 19 +++++++++++++------ FlatCAMWorker.py | 11 +++++++---- GUIElements.py | 33 ++++++++++++++++++--------------- ObjectUI.py | 4 +++- camlib.py | 11 ++++++----- 6 files changed, 49 insertions(+), 32 deletions(-) diff --git a/DblSidedTool.py b/DblSidedTool.py index eb18f08d..85ab4d12 100644 --- a/DblSidedTool.py +++ b/DblSidedTool.py @@ -1,7 +1,8 @@ from PyQt4 import QtGui from GUIElements import RadioSet, EvalEntry, LengthEntry from FlatCAMTool import FlatCAMTool -from FlatCAMObj import FlatCAMGerber, FlatCAMExcellon +#from FlatCAMObj import FlatCAMGerber, FlatCAMExcellon +from FlatCAMObj import * from shapely.geometry import Point from shapely import affinity diff --git a/FlatCAMApp.py b/FlatCAMApp.py index e7719d09..b05ffb48 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -1814,6 +1814,13 @@ class App(QtCore.QObject): App.log.debug("Project loaded") def propagate_defaults(self): + """ + This method is used to set default values in classes. It's + an alternative to project options but allows the use + of values invisible to the user. + + :return: None + """ self.log.debug("propagate_defaults()") @@ -1822,17 +1829,17 @@ class App(QtCore.QObject): "zdownrate": CNCjob, "excellon_zeros": Excellon, "gerber_use_buffer_for_union": Gerber, - "cncjob_coordinate_format": CNCjob, - "spindlespeed": CNCjob + "cncjob_coordinate_format": CNCjob + # "spindlespeed": CNCjob } for param in routes: if param in routes[param].defaults: try: - routes[param].defaults[param] = self.defaults[param] - self.log.debug(" " + param + " OK") - except KeyError: - pass + routes[param].defaults[param] = self.defaults[param] + self.log.debug(" " + param + " OK") + except KeyError: + self.log.debug(" ERROR: " + param + " not in defaults.") else: # Try extracting the name: # classname_param here is param in the object diff --git a/FlatCAMWorker.py b/FlatCAMWorker.py index 6625769a..528171b6 100644 --- a/FlatCAMWorker.py +++ b/FlatCAMWorker.py @@ -1,5 +1,5 @@ from PyQt4 import QtCore -import FlatCAMApp +#import FlatCAMApp class Worker(QtCore.QObject): @@ -14,13 +14,15 @@ class Worker(QtCore.QObject): self.name = name def run(self): - FlatCAMApp.App.log.debug("Worker Started!") + # FlatCAMApp.App.log.debug("Worker Started!") + self.app.log.debug("Worker Started!") # Tasks are queued in the event listener. self.app.worker_task.connect(self.do_worker_task) def do_worker_task(self, task): - FlatCAMApp.App.log.debug("Running task: %s" % str(task)) + # FlatCAMApp.App.log.debug("Running task: %s" % str(task)) + self.app.log.debug("Running task: %s" % str(task)) # 'worker_name' property of task allows to target # specific worker. @@ -32,4 +34,5 @@ class Worker(QtCore.QObject): task['fcn'](*task['params']) return - FlatCAMApp.App.log.debug("Task ignored.") \ No newline at end of file + # FlatCAMApp.App.log.debug("Task ignored.") + self.app.log.debug("Task ignored.") \ No newline at end of file diff --git a/GUIElements.py b/GUIElements.py index a16b3ce3..fef19ee4 100644 --- a/GUIElements.py +++ b/GUIElements.py @@ -1,7 +1,10 @@ from PyQt4 import QtGui, QtCore from copy import copy -import FlatCAMApp +#import FlatCAMApp import re +import logging + +log = logging.getLogger('base') class RadioSet(QtGui.QWidget): @@ -37,7 +40,7 @@ class RadioSet(QtGui.QWidget): self.group_toggle_fn = lambda: None def on_toggle(self): - FlatCAMApp.App.log.debug("Radio toggled") + log.debug("Radio toggled") radio = self.sender() if radio.isChecked(): self.group_toggle_fn() @@ -47,7 +50,7 @@ class RadioSet(QtGui.QWidget): for choice in self.choices: if choice['radio'].isChecked(): return choice['value'] - FlatCAMApp.App.log.error("No button was toggled in RadioSet.") + log.error("No button was toggled in RadioSet.") return None def set_value(self, val): @@ -55,7 +58,7 @@ class RadioSet(QtGui.QWidget): if choice['value'] == val: choice['radio'].setChecked(True) return - FlatCAMApp.App.log.error("Value given is not part of this RadioSet: %s" % str(val)) + log.error("Value given is not part of this RadioSet: %s" % str(val)) class LengthEntry(QtGui.QLineEdit): @@ -78,7 +81,7 @@ class LengthEntry(QtGui.QLineEdit): if val is not None: self.set_text(QtCore.QString(str(val))) else: - FlatCAMApp.App.log.warning("Could not interpret entry: %s" % self.get_text()) + log.warning("Could not interpret entry: %s" % self.get_text()) def get_value(self): raw = str(self.text()).strip(' ') @@ -92,7 +95,7 @@ class LengthEntry(QtGui.QLineEdit): else: return float(eval(match.group(1))) except: - FlatCAMApp.App.log.warning("Could not parse value in entry: %s" % str(raw)) + log.warning("Could not parse value in entry: %s" % str(raw)) return None def set_value(self, val): @@ -108,14 +111,14 @@ class FloatEntry(QtGui.QLineEdit): if val is not None: self.set_text(QtCore.QString(str(val))) else: - FlatCAMApp.App.log.warning("Could not interpret entry: %s" % self.text()) + log.warning("Could not interpret entry: %s" % self.text()) def get_value(self): raw = str(self.text()).strip(' ') try: evaled = eval(raw) except: - FlatCAMApp.App.log.error("Could not evaluate: %s" % str(raw)) + log.error("Could not evaluate: %s" % str(raw)) return None return float(evaled) @@ -168,14 +171,14 @@ class EvalEntry(QtGui.QLineEdit): if val is not None: self.setText(QtCore.QString(str(val))) else: - FlatCAMApp.App.log.warning("Could not interpret entry: %s" % self.get_text()) + log.warning("Could not interpret entry: %s" % self.get_text()) def get_value(self): raw = str(self.text()).strip(' ') try: return eval(raw) except: - FlatCAMApp.App.log.error("Could not evaluate: %s" % str(raw)) + log.error("Could not evaluate: %s" % str(raw)) return None def set_value(self, val): @@ -226,19 +229,19 @@ class VerticalScrollArea(QtGui.QScrollArea): :return: """ if event.type() == QtCore.QEvent.Resize and source == self.widget(): - # FlatCAMApp.App.log.debug("VerticalScrollArea: Widget resized:") - # FlatCAMApp.App.log.debug(" minimumSizeHint().width() = %d" % self.widget().minimumSizeHint().width()) - # FlatCAMApp.App.log.debug(" verticalScrollBar().width() = %d" % self.verticalScrollBar().width()) + # log.debug("VerticalScrollArea: Widget resized:") + # log.debug(" minimumSizeHint().width() = %d" % self.widget().minimumSizeHint().width()) + # log.debug(" verticalScrollBar().width() = %d" % self.verticalScrollBar().width()) self.setMinimumWidth(self.widget().sizeHint().width() + self.verticalScrollBar().sizeHint().width()) # if self.verticalScrollBar().isVisible(): - # FlatCAMApp.App.log.debug(" Scroll bar visible") + # log.debug(" Scroll bar visible") # self.setMinimumWidth(self.widget().minimumSizeHint().width() + # self.verticalScrollBar().width()) # else: - # FlatCAMApp.App.log.debug(" Scroll bar hidden") + # log.debug(" Scroll bar hidden") # self.setMinimumWidth(self.widget().minimumSizeHint().width()) return QtGui.QWidget.eventFilter(self, source, event) diff --git a/ObjectUI.py b/ObjectUI.py index 8bddb12c..ebb4ea17 100644 --- a/ObjectUI.py +++ b/ObjectUI.py @@ -1,6 +1,8 @@ import sys from PyQt4 import QtGui, QtCore -from GUIElements import * +#from GUIElements import * +from GUIElements import FCEntry, FloatEntry, EvalEntry, FCCheckBox, \ + LengthEntry, FCTextArea, IntEntry, RadioSet, OptionalInputSection class ObjectUI(QtGui.QWidget): diff --git a/camlib.py b/camlib.py index 99265b1d..4e8480c3 100644 --- a/camlib.py +++ b/camlib.py @@ -2415,7 +2415,7 @@ class Excellon(Geometry): self.solid_geometry = [] for drill in self.drills: - #poly = drill['point'].buffer(self.tools[drill['tool']]["C"]/2.0) + # poly = drill['point'].buffer(self.tools[drill['tool']]["C"]/2.0) tooldia = self.tools[drill['tool']]['C'] poly = drill['point'].buffer(tooldia / 2.0) self.solid_geometry.append(poly) @@ -2506,8 +2506,7 @@ class CNCjob(Geometry): defaults = { "zdownrate": None, - "coordinate_format": "X%.4fY%.4f", - "spindlespeed": None + "coordinate_format": "X%.4fY%.4f" } def __init__(self, @@ -2535,6 +2534,7 @@ class CNCjob(Geometry): self.input_geometry_bounds = None self.gcode_parsed = None self.steps_per_circ = 20 # Used when parsing G-code arcs + if zdownrate is not None: self.zdownrate = float(zdownrate) elif CNCjob.defaults["zdownrate"] is not None: @@ -2544,7 +2544,6 @@ class CNCjob(Geometry): self.spindlespeed = spindlespeed - # Attributes to be included in serialization # Always append to it because it carries contents # from Geometry. @@ -2610,10 +2609,12 @@ class CNCjob(Geometry): gcode += self.feedminutecode + "\n" gcode += "F%.2f\n" % self.feedrate gcode += "G00 Z%.4f\n" % self.z_move # Move to travel height - if(self.spindlespeed != None): + + if self.spindlespeed is not None: gcode += "M03 S%d\n" % int(self.spindlespeed) # Spindle start with configured speed else: gcode += "M03\n" # Spindle start + gcode += self.pausecode + "\n" for tool in points: