Cleanup. And fixes #148.

This commit is contained in:
Juan Pablo Caram 2015-09-11 14:45:08 -04:00
parent 71aca80603
commit 22119072d3
6 changed files with 49 additions and 32 deletions

View File

@ -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

View File

@ -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

View File

@ -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.")
# FlatCAMApp.App.log.debug("Task ignored.")
self.app.log.debug("Task ignored.")

View File

@ -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)

View File

@ -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):

View File

@ -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: