|
@@ -10,7 +10,6 @@ import webbrowser
|
|
|
import os
|
|
import os
|
|
|
import Tkinter
|
|
import Tkinter
|
|
|
import re
|
|
import re
|
|
|
-
|
|
|
|
|
from PyQt4 import QtCore
|
|
from PyQt4 import QtCore
|
|
|
|
|
|
|
|
########################################
|
|
########################################
|
|
@@ -23,7 +22,6 @@ from PlotCanvas import *
|
|
|
from FlatCAMGUI import *
|
|
from FlatCAMGUI import *
|
|
|
from FlatCAMCommon import LoudDict
|
|
from FlatCAMCommon import LoudDict
|
|
|
from FlatCAMTool import *
|
|
from FlatCAMTool import *
|
|
|
-
|
|
|
|
|
from FlatCAMShell import FCShell
|
|
from FlatCAMShell import FCShell
|
|
|
from FlatCAMDraw import FlatCAMDraw
|
|
from FlatCAMDraw import FlatCAMDraw
|
|
|
|
|
|
|
@@ -142,8 +140,6 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
self.project_filename = None
|
|
self.project_filename = None
|
|
|
|
|
|
|
|
- self.last_folder = None
|
|
|
|
|
-
|
|
|
|
|
self.toggle_units_ignore = False
|
|
self.toggle_units_ignore = False
|
|
|
|
|
|
|
|
self.defaults_form = GlobalOptionsUI()
|
|
self.defaults_form = GlobalOptionsUI()
|
|
@@ -218,6 +214,9 @@ class App(QtCore.QObject):
|
|
|
"cncjob_tooldia": 0.016,
|
|
"cncjob_tooldia": 0.016,
|
|
|
"cncjob_append": "",
|
|
"cncjob_append": "",
|
|
|
|
|
|
|
|
|
|
+ # Persistence
|
|
|
|
|
+ "last_folder": None,
|
|
|
|
|
+
|
|
|
# Constants...
|
|
# Constants...
|
|
|
"defaults_save_period_ms": 20000, # Time between default saves.
|
|
"defaults_save_period_ms": 20000, # Time between default saves.
|
|
|
"shell_shape": [500, 300], # Shape of the shell in pixels.
|
|
"shell_shape": [500, 300], # Shape of the shell in pixels.
|
|
@@ -521,6 +520,9 @@ class App(QtCore.QObject):
|
|
|
self.draw.drawing_toolbar.setDisabled(True)
|
|
self.draw.drawing_toolbar.setDisabled(True)
|
|
|
geo.plot()
|
|
geo.plot()
|
|
|
|
|
|
|
|
|
|
+ def get_last_folder(self):
|
|
|
|
|
+ return self.defaults["last_folder"]
|
|
|
|
|
+
|
|
|
def report_usage(self, resource):
|
|
def report_usage(self, resource):
|
|
|
"""
|
|
"""
|
|
|
Increments usage counter for the given resource
|
|
Increments usage counter for the given resource
|
|
@@ -1323,7 +1325,7 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber",
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber",
|
|
|
- directory=self.last_folder)
|
|
|
|
|
|
|
+ directory=self.get_last_folder())
|
|
|
except TypeError:
|
|
except TypeError:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber")
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Gerber")
|
|
|
|
|
|
|
@@ -1350,7 +1352,7 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon",
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon",
|
|
|
- directory=self.last_folder)
|
|
|
|
|
|
|
+ directory=self.get_last_folder())
|
|
|
except TypeError:
|
|
except TypeError:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon")
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Excellon")
|
|
|
|
|
|
|
@@ -1377,7 +1379,7 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code",
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code",
|
|
|
- directory=self.last_folder)
|
|
|
|
|
|
|
+ directory=self.get_last_folder())
|
|
|
except TypeError:
|
|
except TypeError:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code")
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open G-Code")
|
|
|
|
|
|
|
@@ -1404,7 +1406,7 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project",
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project",
|
|
|
- directory=self.last_folder)
|
|
|
|
|
|
|
+ directory=self.get_last_folder())
|
|
|
except TypeError:
|
|
except TypeError:
|
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project")
|
|
filename = QtGui.QFileDialog.getOpenFileName(caption="Open Project")
|
|
|
|
|
|
|
@@ -1453,7 +1455,7 @@ class App(QtCore.QObject):
|
|
|
|
|
|
|
|
try:
|
|
try:
|
|
|
filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...",
|
|
filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...",
|
|
|
- directory=self.last_folder)
|
|
|
|
|
|
|
+ directory=self.get_last_folder())
|
|
|
except TypeError:
|
|
except TypeError:
|
|
|
filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...")
|
|
filename = QtGui.QFileDialog.getSaveFileName(caption="Save Project As ...")
|
|
|
|
|
|
|
@@ -1511,6 +1513,7 @@ class App(QtCore.QObject):
|
|
|
except IOError:
|
|
except IOError:
|
|
|
app_obj.inform.emit("[error] Failed to open file: " + filename)
|
|
app_obj.inform.emit("[error] Failed to open file: " + filename)
|
|
|
app_obj.progress.emit(0)
|
|
app_obj.progress.emit(0)
|
|
|
|
|
+ raise IOError('Failed to open file: ' + filename)
|
|
|
|
|
|
|
|
# Further parsing
|
|
# Further parsing
|
|
|
self.progress.emit(70) # TODO: Note the mixture of self and app_obj used here
|
|
self.progress.emit(70) # TODO: Note the mixture of self and app_obj used here
|
|
@@ -1566,7 +1569,7 @@ class App(QtCore.QObject):
|
|
|
except IOError:
|
|
except IOError:
|
|
|
app_obj.inform.emit("[error] Cannot open file: " + filename)
|
|
app_obj.inform.emit("[error] Cannot open file: " + filename)
|
|
|
self.progress.emit(0) # TODO: self and app_bjj mixed
|
|
self.progress.emit(0) # TODO: self and app_bjj mixed
|
|
|
- raise IOError
|
|
|
|
|
|
|
+ raise IOError("Cannot open file: " + filename)
|
|
|
|
|
|
|
|
excellon_obj.create_geometry()
|
|
excellon_obj.create_geometry()
|
|
|
self.progress.emit(70)
|
|
self.progress.emit(70)
|
|
@@ -1616,9 +1619,14 @@ class App(QtCore.QObject):
|
|
|
assert isinstance(app_obj_, App)
|
|
assert isinstance(app_obj_, App)
|
|
|
self.progress.emit(10)
|
|
self.progress.emit(10)
|
|
|
|
|
|
|
|
- f = open(filename)
|
|
|
|
|
- gcode = f.read()
|
|
|
|
|
- f.close()
|
|
|
|
|
|
|
+ try:
|
|
|
|
|
+ f = open(filename)
|
|
|
|
|
+ gcode = f.read()
|
|
|
|
|
+ f.close()
|
|
|
|
|
+ except IOError:
|
|
|
|
|
+ app_obj_.inform.emit("[error] Failed to open " + filename)
|
|
|
|
|
+ self.progress.emit(0)
|
|
|
|
|
+ raise IOError("Failed to open " + filename)
|
|
|
|
|
|
|
|
job_obj.gcode = gcode
|
|
job_obj.gcode = gcode
|
|
|
|
|
|
|
@@ -1750,7 +1758,7 @@ class App(QtCore.QObject):
|
|
|
self.worker_task.emit({'fcn': worker_task, 'params': [self]})
|
|
self.worker_task.emit({'fcn': worker_task, 'params': [self]})
|
|
|
|
|
|
|
|
def register_folder(self, filename):
|
|
def register_folder(self, filename):
|
|
|
- self.last_folder = os.path.split(str(filename))[0]
|
|
|
|
|
|
|
+ self.defaults["last_folder"] = os.path.split(str(filename))[0]
|
|
|
|
|
|
|
|
def set_progress_bar(self, percentage, text=""):
|
|
def set_progress_bar(self, percentage, text=""):
|
|
|
self.ui.progress_bar.setValue(int(percentage))
|
|
self.ui.progress_bar.setValue(int(percentage))
|