- added an automatic name on each save operation based on the object name and/or the current date
- added more information's for the statistics
This commit is contained in:
175
FlatCAMApp.py
175
FlatCAMApp.py
@@ -96,6 +96,9 @@ class App(QtCore.QObject):
|
|||||||
version_date = "2019/02/3"
|
version_date = "2019/02/3"
|
||||||
beta = True
|
beta = True
|
||||||
|
|
||||||
|
# current date now
|
||||||
|
date = str(datetime.today()).rpartition(' ')[0]
|
||||||
|
|
||||||
# URL for update checks and statistics
|
# URL for update checks and statistics
|
||||||
version_url = "http://flatcam.org/version"
|
version_url = "http://flatcam.org/version"
|
||||||
|
|
||||||
@@ -1499,6 +1502,7 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("object2editor()")
|
||||||
|
|
||||||
# adjust the visibility of some of the canvas context menu
|
# adjust the visibility of some of the canvas context menu
|
||||||
self.ui.popmenu_edit.setVisible(False)
|
self.ui.popmenu_edit.setVisible(False)
|
||||||
@@ -1541,6 +1545,7 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("editor2object()")
|
||||||
|
|
||||||
# adjust the visibility of some of the canvas context menu
|
# adjust the visibility of some of the canvas context menu
|
||||||
self.ui.popmenu_edit.setVisible(True)
|
self.ui.popmenu_edit.setVisible(True)
|
||||||
@@ -1966,8 +1971,10 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
filter = "Config File (*.FlatConfig);;All Files (*.*)"
|
filter = "Config File (*.FlatConfig);;All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export FlatCAM Preferences",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.data_path, filter=filter)
|
caption="Export FlatCAM Preferences",
|
||||||
|
directory=self.data_path + '/preferences_' + self.date.replace('-', ''), filter=filter
|
||||||
|
)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export FlatCAM Preferences", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export FlatCAM Preferences", filter=filter)
|
||||||
|
|
||||||
@@ -2015,6 +2022,8 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit("[success]Exported Defaults to %s" % filename)
|
self.inform.emit("[success]Exported Defaults to %s" % filename)
|
||||||
|
|
||||||
def on_preferences_open_folder(self):
|
def on_preferences_open_folder(self):
|
||||||
|
self.report_usage("on_preferences_open_folder()")
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
subprocess.Popen('explorer %s' % self.data_path)
|
subprocess.Popen('explorer %s' % self.data_path)
|
||||||
elif sys.platform == 'darwin':
|
elif sys.platform == 'darwin':
|
||||||
@@ -2190,6 +2199,8 @@ class App(QtCore.QObject):
|
|||||||
return obj
|
return obj
|
||||||
|
|
||||||
def new_excellon_object(self):
|
def new_excellon_object(self):
|
||||||
|
self.report_usage("new_excellon_object()")
|
||||||
|
|
||||||
self.new_object('excellon', 'new_e', lambda x, y: None)
|
self.new_object('excellon', 'new_e', lambda x, y: None)
|
||||||
|
|
||||||
def on_object_created(self, obj, plot, autoselect):
|
def on_object_created(self, obj, plot, autoselect):
|
||||||
@@ -2342,6 +2353,8 @@ class App(QtCore.QObject):
|
|||||||
self.save_defaults()
|
self.save_defaults()
|
||||||
|
|
||||||
def on_app_exit(self):
|
def on_app_exit(self):
|
||||||
|
self.report_usage("on_app_exit()")
|
||||||
|
|
||||||
if self.collection.get_list():
|
if self.collection.get_list():
|
||||||
msgbox = QtWidgets.QMessageBox()
|
msgbox = QtWidgets.QMessageBox()
|
||||||
# msgbox.setText("<B>Save changes ...</B>")
|
# msgbox.setText("<B>Save changes ...</B>")
|
||||||
@@ -2514,6 +2527,7 @@ class App(QtCore.QObject):
|
|||||||
toggle shell if is visible close it if closed open it
|
toggle shell if is visible close it if closed open it
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_toggle_shell()")
|
||||||
|
|
||||||
if self.ui.shell_dock.isVisible():
|
if self.ui.shell_dock.isVisible():
|
||||||
self.ui.shell_dock.hide()
|
self.ui.shell_dock.hide()
|
||||||
@@ -2527,6 +2541,7 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_edit_join()")
|
||||||
|
|
||||||
obj_name_single = str(name) if name else "Combo_SingleGeo"
|
obj_name_single = str(name) if name else "Combo_SingleGeo"
|
||||||
obj_name_multi = str(name) if name else "Combo_MultiGeo"
|
obj_name_multi = str(name) if name else "Combo_MultiGeo"
|
||||||
@@ -2573,6 +2588,8 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_edit_join_exc()")
|
||||||
|
|
||||||
objs = self.collection.get_selected()
|
objs = self.collection.get_selected()
|
||||||
|
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
@@ -2592,6 +2609,8 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_edit_join_grb()")
|
||||||
|
|
||||||
objs = self.collection.get_selected()
|
objs = self.collection.get_selected()
|
||||||
|
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
@@ -2605,6 +2624,8 @@ class App(QtCore.QObject):
|
|||||||
self.new_object("gerber", 'Combo_Gerber', initialize)
|
self.new_object("gerber", 'Combo_Gerber', initialize)
|
||||||
|
|
||||||
def on_convert_singlegeo_to_multigeo(self):
|
def on_convert_singlegeo_to_multigeo(self):
|
||||||
|
self.report_usage("on_convert_singlegeo_to_multigeo()")
|
||||||
|
|
||||||
obj = self.collection.get_active()
|
obj = self.collection.get_active()
|
||||||
|
|
||||||
if obj is None:
|
if obj is None:
|
||||||
@@ -2626,6 +2647,8 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit("[success] A Geometry object was converted to MultiGeo type.")
|
self.inform.emit("[success] A Geometry object was converted to MultiGeo type.")
|
||||||
|
|
||||||
def on_convert_multigeo_to_singlegeo(self):
|
def on_convert_multigeo_to_singlegeo(self):
|
||||||
|
self.report_usage("on_convert_multigeo_to_singlegeo()")
|
||||||
|
|
||||||
obj = self.collection.get_active()
|
obj = self.collection.get_active()
|
||||||
|
|
||||||
if obj is None:
|
if obj is None:
|
||||||
@@ -2773,11 +2796,15 @@ class App(QtCore.QObject):
|
|||||||
self.on_toggle_units()
|
self.on_toggle_units()
|
||||||
|
|
||||||
def on_language_apply(self):
|
def on_language_apply(self):
|
||||||
|
self.report_usage("on_language_apply()")
|
||||||
|
|
||||||
# TODO: apply the language
|
# TODO: apply the language
|
||||||
# app restart section
|
# app restart section
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def on_fullscreen(self):
|
def on_fullscreen(self):
|
||||||
|
self.report_usage("on_fullscreen()")
|
||||||
|
|
||||||
if self.toggle_fscreen is False:
|
if self.toggle_fscreen is False:
|
||||||
for tb in self.ui.findChildren(QtWidgets.QToolBar):
|
for tb in self.ui.findChildren(QtWidgets.QToolBar):
|
||||||
tb.setVisible(False)
|
tb.setVisible(False)
|
||||||
@@ -2789,6 +2816,8 @@ class App(QtCore.QObject):
|
|||||||
self.toggle_fscreen = False
|
self.toggle_fscreen = False
|
||||||
|
|
||||||
def on_toggle_plotarea(self):
|
def on_toggle_plotarea(self):
|
||||||
|
self.report_usage("on_toggle_plotarea()")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
name = self.ui.plot_tab_area.widget(0).objectName()
|
name = self.ui.plot_tab_area.widget(0).objectName()
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@@ -2805,6 +2834,8 @@ class App(QtCore.QObject):
|
|||||||
self.ui.plot_tab_area.closeTab(0)
|
self.ui.plot_tab_area.closeTab(0)
|
||||||
|
|
||||||
def on_toggle_axis(self):
|
def on_toggle_axis(self):
|
||||||
|
self.report_usage("on_toggle_axis()")
|
||||||
|
|
||||||
if self.toggle_axis is False:
|
if self.toggle_axis is False:
|
||||||
self.plotcanvas.v_line.set_data(color=(0.70, 0.3, 0.3, 1.0))
|
self.plotcanvas.v_line.set_data(color=(0.70, 0.3, 0.3, 1.0))
|
||||||
self.plotcanvas.h_line.set_data(color=(0.70, 0.3, 0.3, 1.0))
|
self.plotcanvas.h_line.set_data(color=(0.70, 0.3, 0.3, 1.0))
|
||||||
@@ -2818,6 +2849,8 @@ class App(QtCore.QObject):
|
|||||||
self.toggle_axis = False
|
self.toggle_axis = False
|
||||||
|
|
||||||
def on_toggle_grid(self):
|
def on_toggle_grid(self):
|
||||||
|
self.report_usage("on_toggle_grid()")
|
||||||
|
|
||||||
self.ui.grid_snap_btn.trigger()
|
self.ui.grid_snap_btn.trigger()
|
||||||
|
|
||||||
def on_options_combo_change(self, sel):
|
def on_options_combo_change(self, sel):
|
||||||
@@ -3140,6 +3173,8 @@ class App(QtCore.QObject):
|
|||||||
self.plotcanvas.draw_workspace()
|
self.plotcanvas.draw_workspace()
|
||||||
|
|
||||||
def on_workspace(self):
|
def on_workspace(self):
|
||||||
|
self.report_usage("on_workspace()")
|
||||||
|
|
||||||
if self.general_defaults_form.general_gui_group.workspace_cb.isChecked():
|
if self.general_defaults_form.general_gui_group.workspace_cb.isChecked():
|
||||||
self.plotcanvas.restore_workspace()
|
self.plotcanvas.restore_workspace()
|
||||||
else:
|
else:
|
||||||
@@ -3155,6 +3190,8 @@ class App(QtCore.QObject):
|
|||||||
self.on_workspace()
|
self.on_workspace()
|
||||||
|
|
||||||
def on_theme(self):
|
def on_theme(self):
|
||||||
|
self.report_usage("on_theme()")
|
||||||
|
|
||||||
current_theme= self.general_defaults_form.general_gui_group.theme_combo.get_value().lower()
|
current_theme= self.general_defaults_form.general_gui_group.theme_combo.get_value().lower()
|
||||||
|
|
||||||
settings = QSettings("Open Source", "FlatCAM")
|
settings = QSettings("Open Source", "FlatCAM")
|
||||||
@@ -3252,6 +3289,8 @@ class App(QtCore.QObject):
|
|||||||
self.on_options_app2project()
|
self.on_options_app2project()
|
||||||
|
|
||||||
def handleOpen(self):
|
def handleOpen(self):
|
||||||
|
self.report_usage("handleOpen()")
|
||||||
|
|
||||||
filter_group = " G-Code Files (*.nc);; G-Code Files (*.txt);; G-Code Files (*.tap);; G-Code Files (*.cnc);; " \
|
filter_group = " G-Code Files (*.nc);; G-Code Files (*.txt);; G-Code Files (*.tap);; G-Code Files (*.cnc);; " \
|
||||||
"All Files (*.*)"
|
"All Files (*.*)"
|
||||||
path, _ = QtWidgets.QFileDialog.getOpenFileName(
|
path, _ = QtWidgets.QFileDialog.getOpenFileName(
|
||||||
@@ -3265,39 +3304,56 @@ class App(QtCore.QObject):
|
|||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
def handlePrint(self):
|
def handlePrint(self):
|
||||||
|
self.report_usage("handlePrint()")
|
||||||
|
|
||||||
dialog = QtPrintSupport.QPrintDialog()
|
dialog = QtPrintSupport.QPrintDialog()
|
||||||
if dialog.exec_() == QtWidgets.QDialog.Accepted:
|
if dialog.exec_() == QtWidgets.QDialog.Accepted:
|
||||||
self.ui.code_editor.document().print_(dialog.printer())
|
self.ui.code_editor.document().print_(dialog.printer())
|
||||||
|
|
||||||
def handlePreview(self):
|
def handlePreview(self):
|
||||||
|
self.report_usage("handlePreview()")
|
||||||
|
|
||||||
dialog = QtPrintSupport.QPrintPreviewDialog()
|
dialog = QtPrintSupport.QPrintPreviewDialog()
|
||||||
dialog.paintRequested.connect(self.ui.code_editor.print_)
|
dialog.paintRequested.connect(self.ui.code_editor.print_)
|
||||||
dialog.exec_()
|
dialog.exec_()
|
||||||
|
|
||||||
def handleTextChanged(self):
|
def handleTextChanged(self):
|
||||||
|
self.report_usage("handleTextChanged()")
|
||||||
|
|
||||||
# enable = not self.ui.code_editor.document().isEmpty()
|
# enable = not self.ui.code_editor.document().isEmpty()
|
||||||
# self.ui.buttonPrint.setEnabled(enable)
|
# self.ui.buttonPrint.setEnabled(enable)
|
||||||
# self.ui.buttonPreview.setEnabled(enable)
|
# self.ui.buttonPreview.setEnabled(enable)
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def handleSaveGCode(self):
|
def handleSaveGCode(self):
|
||||||
|
self.report_usage("handleSaveGCode()")
|
||||||
|
|
||||||
|
obj_name = self.collection.get_active().options['name']
|
||||||
|
|
||||||
_filter_ = " G-Code Files (*.nc);; G-Code Files (*.txt);; G-Code Files (*.tap);; G-Code Files (*.cnc);; " \
|
_filter_ = " G-Code Files (*.nc);; G-Code Files (*.txt);; G-Code Files (*.tap);; G-Code Files (*.cnc);; " \
|
||||||
"All Files (*.*)"
|
"All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename = str(QtWidgets.QFileDialog.getSaveFileName(
|
filename = str(QtWidgets.QFileDialog.getSaveFileName(
|
||||||
caption="Export G-Code ...", directory=self.defaults["global_last_folder"], filter=_filter_)[0])
|
caption="Export G-Code ...",
|
||||||
|
directory=self.defaults["global_last_folder"] + '/' + str(obj_name),
|
||||||
|
filter=_filter_
|
||||||
|
)[0])
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename = str(QtWidgets.QFileDialog.getSaveFileName(caption="Export G-Code ...", filter=_filter_)[0])
|
filename = str(QtWidgets.QFileDialog.getSaveFileName(caption="Export G-Code ...", filter=_filter_)[0])
|
||||||
|
|
||||||
try:
|
if filename == "":
|
||||||
my_gcode = self.ui.code_editor.toPlainText()
|
self.inform.emit("[WARNING_NOTCL]Export CNC Code cancelled.")
|
||||||
with open(filename, 'w') as f:
|
|
||||||
for line in my_gcode:
|
|
||||||
f.write(line)
|
|
||||||
|
|
||||||
except FileNotFoundError:
|
|
||||||
self.inform.emit("[WARNING] No such file or directory")
|
|
||||||
return
|
return
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
my_gcode = self.ui.code_editor.toPlainText()
|
||||||
|
with open(filename, 'w') as f:
|
||||||
|
for line in my_gcode:
|
||||||
|
f.write(line)
|
||||||
|
|
||||||
|
except FileNotFoundError:
|
||||||
|
self.inform.emit("[WARNING] No such file or directory")
|
||||||
|
return
|
||||||
|
|
||||||
# Just for adding it to the recent files list.
|
# Just for adding it to the recent files list.
|
||||||
self.file_opened.emit("cncjob", filename)
|
self.file_opened.emit("cncjob", filename)
|
||||||
@@ -3306,6 +3362,8 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit("Saved to: " + filename)
|
self.inform.emit("Saved to: " + filename)
|
||||||
|
|
||||||
def handleFindGCode(self):
|
def handleFindGCode(self):
|
||||||
|
self.report_usage("handleFindGCode()")
|
||||||
|
|
||||||
flags = QtGui.QTextDocument.FindCaseSensitively
|
flags = QtGui.QTextDocument.FindCaseSensitively
|
||||||
text_to_be_found = self.ui.entryFind.get_value()
|
text_to_be_found = self.ui.entryFind.get_value()
|
||||||
|
|
||||||
@@ -3313,8 +3371,9 @@ class App(QtCore.QObject):
|
|||||||
if r is False:
|
if r is False:
|
||||||
self.ui.code_editor.moveCursor(QtGui.QTextCursor.Start)
|
self.ui.code_editor.moveCursor(QtGui.QTextCursor.Start)
|
||||||
|
|
||||||
|
|
||||||
def handleReplaceGCode(self):
|
def handleReplaceGCode(self):
|
||||||
|
self.report_usage("handleReplaceGCode()")
|
||||||
|
|
||||||
old = self.ui.entryFind.get_value()
|
old = self.ui.entryFind.get_value()
|
||||||
new = self.ui.entryReplace.get_value()
|
new = self.ui.entryReplace.get_value()
|
||||||
|
|
||||||
@@ -3343,8 +3402,9 @@ class App(QtCore.QObject):
|
|||||||
# Mark end of undo block
|
# Mark end of undo block
|
||||||
cursor.endEditBlock()
|
cursor.endEditBlock()
|
||||||
|
|
||||||
|
|
||||||
def on_new_geometry(self):
|
def on_new_geometry(self):
|
||||||
|
self.report_usage("on_new_geometry()")
|
||||||
|
|
||||||
def initialize(obj, self):
|
def initialize(obj, self):
|
||||||
obj.multitool = False
|
obj.multitool = False
|
||||||
|
|
||||||
@@ -3357,6 +3417,7 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_delete()")
|
||||||
|
|
||||||
# Make sure that the deletion will happen only after the Editor is no longer active otherwise we might delete
|
# Make sure that the deletion will happen only after the Editor is no longer active otherwise we might delete
|
||||||
# a geometry object before we update it.
|
# a geometry object before we update it.
|
||||||
@@ -3385,6 +3446,8 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
#display the message for the user
|
#display the message for the user
|
||||||
#and ask him to click on the desired position
|
#and ask him to click on the desired position
|
||||||
|
self.report_usage("on_set_origin()")
|
||||||
|
|
||||||
self.inform.emit('Click to set the origin ...')
|
self.inform.emit('Click to set the origin ...')
|
||||||
|
|
||||||
self.plotcanvas.vis_connect('mouse_press', self.on_set_zero_click)
|
self.plotcanvas.vis_connect('mouse_press', self.on_set_zero_click)
|
||||||
@@ -3395,6 +3458,7 @@ class App(QtCore.QObject):
|
|||||||
:return:
|
:return:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("on_jump_to()")
|
||||||
|
|
||||||
dia_box = Dialog_box(title="Jump to Coordinates", label="Enter the coordinates in format X,Y:")
|
dia_box = Dialog_box(title="Jump to Coordinates", label="Enter the coordinates in format X,Y:")
|
||||||
|
|
||||||
@@ -3420,6 +3484,7 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit("Done.")
|
self.inform.emit("Done.")
|
||||||
|
|
||||||
def on_copy_object(self):
|
def on_copy_object(self):
|
||||||
|
self.report_usage("on_copy_object()")
|
||||||
|
|
||||||
def initialize(obj_init, app):
|
def initialize(obj_init, app):
|
||||||
obj_init.solid_geometry = obj.solid_geometry
|
obj_init.solid_geometry = obj.solid_geometry
|
||||||
@@ -3488,6 +3553,8 @@ class App(QtCore.QObject):
|
|||||||
return "Operation failed: %s" % str(e)
|
return "Operation failed: %s" % str(e)
|
||||||
|
|
||||||
def on_rename_object(self, text):
|
def on_rename_object(self, text):
|
||||||
|
self.report_usage("on_rename_object()")
|
||||||
|
|
||||||
named_obj = self.collection.get_active()
|
named_obj = self.collection.get_active()
|
||||||
for obj in named_obj:
|
for obj in named_obj:
|
||||||
if obj is list:
|
if obj is list:
|
||||||
@@ -3499,6 +3566,7 @@ class App(QtCore.QObject):
|
|||||||
log.warning("Could not rename the object in the list")
|
log.warning("Could not rename the object in the list")
|
||||||
|
|
||||||
def on_copy_object_as_geometry(self):
|
def on_copy_object_as_geometry(self):
|
||||||
|
self.report_usage("on_copy_object_as_geometry()")
|
||||||
|
|
||||||
def initialize(obj_init, app):
|
def initialize(obj_init, app):
|
||||||
obj_init.solid_geometry = obj.solid_geometry
|
obj_init.solid_geometry = obj.solid_geometry
|
||||||
@@ -3543,6 +3611,8 @@ class App(QtCore.QObject):
|
|||||||
self.plotcanvas.vis_disconnect('mouse_press', self.on_set_zero_click)
|
self.plotcanvas.vis_disconnect('mouse_press', self.on_set_zero_click)
|
||||||
|
|
||||||
def on_selectall(self):
|
def on_selectall(self):
|
||||||
|
self.report_usage("on_selectall()")
|
||||||
|
|
||||||
# delete the possible selection box around a possible selected object
|
# delete the possible selection box around a possible selected object
|
||||||
self.delete_selection_shape()
|
self.delete_selection_shape()
|
||||||
for name in self.collection.get_names():
|
for name in self.collection.get_names():
|
||||||
@@ -3565,6 +3635,8 @@ class App(QtCore.QObject):
|
|||||||
self.ui.show()
|
self.ui.show()
|
||||||
|
|
||||||
def on_flipy(self):
|
def on_flipy(self):
|
||||||
|
self.report_usage("on_flipy()")
|
||||||
|
|
||||||
obj_list = self.collection.get_selected()
|
obj_list = self.collection.get_selected()
|
||||||
xminlist = []
|
xminlist = []
|
||||||
yminlist = []
|
yminlist = []
|
||||||
@@ -3602,6 +3674,8 @@ class App(QtCore.QObject):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def on_flipx(self):
|
def on_flipx(self):
|
||||||
|
self.report_usage("on_flipx()")
|
||||||
|
|
||||||
obj_list = self.collection.get_selected()
|
obj_list = self.collection.get_selected()
|
||||||
xminlist = []
|
xminlist = []
|
||||||
yminlist = []
|
yminlist = []
|
||||||
@@ -3639,6 +3713,8 @@ class App(QtCore.QObject):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def on_rotate(self, silent=False, preset=None):
|
def on_rotate(self, silent=False, preset=None):
|
||||||
|
self.report_usage("on_rotate()")
|
||||||
|
|
||||||
obj_list = self.collection.get_selected()
|
obj_list = self.collection.get_selected()
|
||||||
xminlist = []
|
xminlist = []
|
||||||
yminlist = []
|
yminlist = []
|
||||||
@@ -3683,6 +3759,8 @@ class App(QtCore.QObject):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def on_skewx(self):
|
def on_skewx(self):
|
||||||
|
self.report_usage("on_skewx()")
|
||||||
|
|
||||||
obj_list = self.collection.get_selected()
|
obj_list = self.collection.get_selected()
|
||||||
xminlist = []
|
xminlist = []
|
||||||
yminlist = []
|
yminlist = []
|
||||||
@@ -3710,6 +3788,8 @@ class App(QtCore.QObject):
|
|||||||
self.object_changed.emit(obj)
|
self.object_changed.emit(obj)
|
||||||
|
|
||||||
def on_skewy(self):
|
def on_skewy(self):
|
||||||
|
self.report_usage("on_skewy()")
|
||||||
|
|
||||||
obj_list = self.collection.get_selected()
|
obj_list = self.collection.get_selected()
|
||||||
xminlist = []
|
xminlist = []
|
||||||
yminlist = []
|
yminlist = []
|
||||||
@@ -4013,6 +4093,8 @@ class App(QtCore.QObject):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def on_shortcut_list(self):
|
def on_shortcut_list(self):
|
||||||
|
self.report_usage("on_shortcut_list()")
|
||||||
|
|
||||||
# add the tab if it was closed
|
# add the tab if it was closed
|
||||||
self.ui.plot_tab_area.addTab(self.ui.shortcuts_tab, "Key Shortcut List")
|
self.ui.plot_tab_area.addTab(self.ui.shortcuts_tab, "Key Shortcut List")
|
||||||
|
|
||||||
@@ -4025,6 +4107,8 @@ class App(QtCore.QObject):
|
|||||||
self.ui.show()
|
self.ui.show()
|
||||||
|
|
||||||
def on_copy_name(self):
|
def on_copy_name(self):
|
||||||
|
self.report_usage("on_copy_name()")
|
||||||
|
|
||||||
obj = self.collection.get_active()
|
obj = self.collection.get_active()
|
||||||
try:
|
try:
|
||||||
name = obj.options["name"]
|
name = obj.options["name"]
|
||||||
@@ -4441,9 +4525,13 @@ class App(QtCore.QObject):
|
|||||||
self.ui.notebook.setCurrentWidget(self.ui.project_tab)
|
self.ui.notebook.setCurrentWidget(self.ui.project_tab)
|
||||||
|
|
||||||
def obj_properties(self):
|
def obj_properties(self):
|
||||||
|
self.report_usage("obj_properties()")
|
||||||
|
|
||||||
self.properties_tool.run()
|
self.properties_tool.run()
|
||||||
|
|
||||||
def obj_move(self):
|
def obj_move(self):
|
||||||
|
self.report_usage("obj_move()")
|
||||||
|
|
||||||
self.move_tool.run()
|
self.move_tool.run()
|
||||||
|
|
||||||
def on_fileopengerber(self):
|
def on_fileopengerber(self):
|
||||||
@@ -4642,8 +4730,10 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
filter = "SVG File (*.svg);;All Files (*.*)"
|
filter = "SVG File (*.svg);;All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.get_last_save_folder(), filter=filter)
|
caption="Export SVG",
|
||||||
|
directory=self.get_last_save_folder() + '/' + str(name),
|
||||||
|
filter=filter)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG", filter=filter)
|
||||||
|
|
||||||
@@ -4667,12 +4757,14 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit('[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4')
|
self.inform.emit('[[WARNING_NOTCL]] Data must be a 3D array with last dimension 3 or 4')
|
||||||
return
|
return
|
||||||
|
|
||||||
filter = "PNG File (*.png);;All Files (*.*)"
|
filter_ = "PNG File (*.png);;All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export PNG Image",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.get_last_save_folder(), filter=filter)
|
caption="Export PNG Image",
|
||||||
|
directory=self.get_last_save_folder() + '/png_' + str(self.date).replace('-', ''),
|
||||||
|
filter=filter_)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export PNG Image", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export PNG Image", filter=filter_)
|
||||||
|
|
||||||
filename = str(filename)
|
filename = str(filename)
|
||||||
|
|
||||||
@@ -4717,8 +4809,10 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
filter = "Excellon File (*.drl);;Excellon File (*.txt);;All Files (*.*)"
|
filter = "Excellon File (*.drl);;Excellon File (*.txt);;All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export Excellon",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.get_last_save_folder(), filter=filter)
|
caption="Export Excellon",
|
||||||
|
directory=self.get_last_save_folder() + '/' + name,
|
||||||
|
filter=filter)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export Excellon", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export Excellon", filter=filter)
|
||||||
|
|
||||||
@@ -4728,7 +4822,7 @@ class App(QtCore.QObject):
|
|||||||
self.inform.emit("[WARNING_NOTCL]Export Excellon cancelled.")
|
self.inform.emit("[WARNING_NOTCL]Export Excellon cancelled.")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
if altium_format == None:
|
if altium_format is None:
|
||||||
self.export_excellon(name, filename)
|
self.export_excellon(name, filename)
|
||||||
self.file_saved.emit("Excellon", filename)
|
self.file_saved.emit("Excellon", filename)
|
||||||
else:
|
else:
|
||||||
@@ -4769,8 +4863,10 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
filter = "DXF File (*.DXF);;All Files (*.*)"
|
filter = "DXF File (*.DXF);;All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export DXF",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.get_last_save_folder(), filter=filter)
|
caption="Export DXF",
|
||||||
|
directory=self.get_last_save_folder() + '/' + name,
|
||||||
|
filter=filter)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export DXF", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export DXF", filter=filter)
|
||||||
|
|
||||||
@@ -4908,12 +5004,14 @@ class App(QtCore.QObject):
|
|||||||
|
|
||||||
self.report_usage("on_file_saveprojectas")
|
self.report_usage("on_file_saveprojectas")
|
||||||
|
|
||||||
filter = "FlatCAM Project (*.FlatPrj);; All Files (*.*)"
|
filter_ = "FlatCAM Project (*.FlatPrj);; All Files (*.*)"
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Save Project As ...",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.get_last_save_folder(), filter=filter)
|
caption="Save Project As ...",
|
||||||
|
directory=self.get_last_save_folder() + '/Project_' + self.date.replace('-', ''),
|
||||||
|
filter=filter_)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Save Project As ...", filter=filter)
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Save Project As ...", filter=filter_)
|
||||||
|
|
||||||
filename = str(filename)
|
filename = str(filename)
|
||||||
|
|
||||||
@@ -4958,6 +5056,8 @@ class App(QtCore.QObject):
|
|||||||
:param filename: Path to the SVG file to save to.
|
:param filename: Path to the SVG file to save to.
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("export_svg()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"]
|
||||||
|
|
||||||
@@ -5013,6 +5113,7 @@ class App(QtCore.QObject):
|
|||||||
:type: Bool
|
:type: Bool
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("export_negative()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"]
|
||||||
@@ -5132,6 +5233,7 @@ class App(QtCore.QObject):
|
|||||||
:type: Bool
|
:type: Bool
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("export_svg_black()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"]
|
||||||
@@ -5243,6 +5345,8 @@ class App(QtCore.QObject):
|
|||||||
:param filename: Path to the Excellon file to save to.
|
:param filename: Path to the Excellon file to save to.
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("export_excellon()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"]
|
||||||
|
|
||||||
@@ -5336,6 +5440,8 @@ class App(QtCore.QObject):
|
|||||||
:param filename: Path to the DXF file to save to.
|
:param filename: Path to the DXF file to save to.
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("export_dxf()")
|
||||||
|
|
||||||
if filename is None:
|
if filename is None:
|
||||||
filename = self.defaults["global_last_save_folder"]
|
filename = self.defaults["global_last_save_folder"]
|
||||||
|
|
||||||
@@ -5394,6 +5500,8 @@ class App(QtCore.QObject):
|
|||||||
:param outname:
|
:param outname:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("import_svg()")
|
||||||
|
|
||||||
obj_type = ""
|
obj_type = ""
|
||||||
if geo_type is None or geo_type == "geometry":
|
if geo_type is None or geo_type == "geometry":
|
||||||
obj_type = "geometry"
|
obj_type = "geometry"
|
||||||
@@ -5434,6 +5542,7 @@ class App(QtCore.QObject):
|
|||||||
:type putname: str
|
:type putname: str
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("import_dxf()")
|
||||||
|
|
||||||
obj_type = ""
|
obj_type = ""
|
||||||
if geo_type is None or geo_type == "geometry":
|
if geo_type is None or geo_type == "geometry":
|
||||||
@@ -5474,6 +5583,8 @@ class App(QtCore.QObject):
|
|||||||
:param outname:
|
:param outname:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
self.report_usage("import_image()")
|
||||||
|
|
||||||
obj_type = ""
|
obj_type = ""
|
||||||
if type is None or type == "geometry":
|
if type is None or type == "geometry":
|
||||||
obj_type = "geometry"
|
obj_type = "geometry"
|
||||||
@@ -6247,14 +6358,20 @@ class App(QtCore.QObject):
|
|||||||
self.plotcanvas.fit_view()
|
self.plotcanvas.fit_view()
|
||||||
|
|
||||||
def disable_all_plots(self):
|
def disable_all_plots(self):
|
||||||
|
self.report_usage("disable_all_plots()")
|
||||||
|
|
||||||
self.disable_plots(self.collection.get_list())
|
self.disable_plots(self.collection.get_list())
|
||||||
self.inform.emit("[success]All plots disabled.")
|
self.inform.emit("[success]All plots disabled.")
|
||||||
|
|
||||||
def disable_other_plots(self):
|
def disable_other_plots(self):
|
||||||
|
self.report_usage("disable_other_plots()")
|
||||||
|
|
||||||
self.disable_plots(self.collection.get_non_selected())
|
self.disable_plots(self.collection.get_non_selected())
|
||||||
self.inform.emit("[success]All non selected plots disabled.")
|
self.inform.emit("[success]All non selected plots disabled.")
|
||||||
|
|
||||||
def enable_all_plots(self):
|
def enable_all_plots(self):
|
||||||
|
self.report_usage("enable_all_plots()")
|
||||||
|
|
||||||
self.enable_plots(self.collection.get_list())
|
self.enable_plots(self.collection.get_list())
|
||||||
self.inform.emit("[success]All plots enabled.")
|
self.inform.emit("[success]All plots enabled.")
|
||||||
|
|
||||||
@@ -6349,6 +6466,8 @@ class App(QtCore.QObject):
|
|||||||
self.clear_pool()
|
self.clear_pool()
|
||||||
|
|
||||||
def generate_cnc_job(self, objects):
|
def generate_cnc_job(self, objects):
|
||||||
|
self.report_usage("generate_cnc_job()")
|
||||||
|
|
||||||
for obj in objects:
|
for obj in objects:
|
||||||
obj.generatecncjob()
|
obj.generatecncjob()
|
||||||
|
|
||||||
|
|||||||
@@ -4126,6 +4126,7 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
|
|||||||
self.app.report_usage("cncjob_on_exportgcode_button")
|
self.app.report_usage("cncjob_on_exportgcode_button")
|
||||||
|
|
||||||
self.read_form()
|
self.read_form()
|
||||||
|
name = self.app.collection.get_active().options['name']
|
||||||
|
|
||||||
if 'Roland' in self.pp_excellon_name or 'Roland' in self.pp_geometry_name:
|
if 'Roland' in self.pp_excellon_name or 'Roland' in self.pp_geometry_name:
|
||||||
_filter_ = "RML1 Files (*.rol);;" \
|
_filter_ = "RML1 Files (*.rol);;" \
|
||||||
@@ -4136,12 +4137,20 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
|
|||||||
else:
|
else:
|
||||||
_filter_ = "G-Code Files (*.nc);;G-Code Files (*.txt);;G-Code Files (*.tap);;G-Code Files (*.cnc);;" \
|
_filter_ = "G-Code Files (*.nc);;G-Code Files (*.txt);;G-Code Files (*.tap);;G-Code Files (*.cnc);;" \
|
||||||
"G-Code Files (*.g-code);;All Files (*.*)"
|
"G-Code Files (*.g-code);;All Files (*.*)"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
filename = str(QtWidgets.QFileDialog.getSaveFileName(
|
filename = str(QtWidgets.QFileDialog.getSaveFileName(
|
||||||
caption="Export Machine Code ...", directory=self.app.get_last_save_folder(), filter=_filter_)[0])
|
caption="Export Machine Code ...",
|
||||||
|
directory=self.app.get_last_save_folder() + '/' + name,
|
||||||
|
filter=_filter_
|
||||||
|
)[0])
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename = str(QtWidgets.QFileDialog.getSaveFileName(caption="Export Machine Code ...", filter=_filter_)[0])
|
filename = str(QtWidgets.QFileDialog.getSaveFileName(caption="Export Machine Code ...", filter=_filter_)[0])
|
||||||
|
|
||||||
|
if filename == '':
|
||||||
|
self.app.inform.emit("[WARNING_NOTCL]Export Machine Code cancelled ...")
|
||||||
|
return
|
||||||
|
|
||||||
preamble = str(self.ui.prepend_text.get_value())
|
preamble = str(self.ui.prepend_text.get_value())
|
||||||
postamble = str(self.ui.append_text.get_value())
|
postamble = str(self.ui.append_text.get_value())
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ CAD program, and create G-Code for Isolation routing.
|
|||||||
- now the '`' shortcut key that shows the 'shortcut key list' in Editors points to the same window which is created in a tab no longer as a pop-up window. This tab can be detached if needed.
|
- now the '`' shortcut key that shows the 'shortcut key list' in Editors points to the same window which is created in a tab no longer as a pop-up window. This tab can be detached if needed.
|
||||||
- added a remove_tools() function before install_tools() in the init_tools() that is called when creating a new project. Should solve the issue with having double menu entry's in the TOOLS menu
|
- added a remove_tools() function before install_tools() in the init_tools() that is called when creating a new project. Should solve the issue with having double menu entry's in the TOOLS menu
|
||||||
- fixed remove_tools() so the Tcl Shell action is readded to the Tools menu and reconnected to it's slot function
|
- fixed remove_tools() so the Tcl Shell action is readded to the Tools menu and reconnected to it's slot function
|
||||||
|
- added an automatic name on each save operation based on the object name and/or the current date
|
||||||
|
- added more information's for the statistics
|
||||||
|
|
||||||
2.2.2019
|
2.2.2019
|
||||||
|
|
||||||
|
|||||||
@@ -214,6 +214,8 @@ class ToolCalculator(FlatCAMTool):
|
|||||||
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolCalculators()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Calc. Tool")
|
self.app.ui.notebook.setTabText(2, "Calc. Tool")
|
||||||
|
|||||||
@@ -190,6 +190,8 @@ class ToolCutOut(FlatCAMTool):
|
|||||||
self.obj_combo.setCurrentIndex(0)
|
self.obj_combo.setCurrentIndex(0)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolCutOut()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Cutout Tool")
|
self.app.ui.notebook.setTabText(2, "Cutout Tool")
|
||||||
|
|||||||
@@ -253,6 +253,8 @@ class DblSidedTool(FlatCAMTool):
|
|||||||
FlatCAMTool.install(self, icon, separator, shortcut='ALT+D', **kwargs)
|
FlatCAMTool.install(self, icon, separator, shortcut='ALT+D', **kwargs)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("Tool2Sided()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "2-Sided Tool")
|
self.app.ui.notebook.setTabText(2, "2-Sided Tool")
|
||||||
|
|||||||
@@ -145,6 +145,8 @@ class Film(FlatCAMTool):
|
|||||||
self.tf_box_combo.setCurrentIndex(0)
|
self.tf_box_combo.setCurrentIndex(0)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolFilm()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Film Tool")
|
self.app.ui.notebook.setTabText(2, "Film Tool")
|
||||||
@@ -190,29 +192,33 @@ class Film(FlatCAMTool):
|
|||||||
|
|
||||||
if self.film_type.get_value() == "pos":
|
if self.film_type.get_value() == "pos":
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG positive",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.app.get_last_save_folder(), filter="*.svg")
|
caption="Export SVG positive",
|
||||||
|
directory=self.app.get_last_save_folder() + '/' + name,
|
||||||
|
filter="*.svg")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG positive")
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG positive")
|
||||||
|
|
||||||
filename = str(filename)
|
filename = str(filename)
|
||||||
|
|
||||||
if str(filename) == "":
|
if str(filename) == "":
|
||||||
self.app.inform.emit("Export SVG positive cancelled.")
|
self.app.inform.emit("[WARNING_NOTCL]Export SVG positive cancelled.")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self.app.export_svg_black(name, boxname, filename)
|
self.app.export_svg_black(name, boxname, filename)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG negative",
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
|
||||||
directory=self.app.get_last_save_folder(), filter="*.svg")
|
caption="Export SVG negative",
|
||||||
|
directory=self.app.get_last_save_folder() + '/' + name,
|
||||||
|
filter="*.svg")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG negative")
|
filename, _ = QtWidgets.QFileDialog.getSaveFileName(caption="Export SVG negative")
|
||||||
|
|
||||||
filename = str(filename)
|
filename = str(filename)
|
||||||
|
|
||||||
if str(filename) == "":
|
if str(filename) == "":
|
||||||
self.app.inform.emit("Export SVG negative cancelled.")
|
self.app.inform.emit("[WARNING_NOTCL]Export SVG negative cancelled.")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
self.app.export_svg_negative(name, boxname, filename, border)
|
self.app.export_svg_negative(name, boxname, filename, border)
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ class ToolImage(FlatCAMTool):
|
|||||||
self.import_button.clicked.connect(self.on_file_importimage)
|
self.import_button.clicked.connect(self.on_file_importimage)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolImage()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Image Tool")
|
self.app.ui.notebook.setTabText(2, "Image Tool")
|
||||||
|
|||||||
@@ -152,6 +152,8 @@ class Measurement(FlatCAMTool):
|
|||||||
self.measure_btn.clicked.connect(self.toggle)
|
self.measure_btn.clicked.connect(self.toggle)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolMeasurement()")
|
||||||
|
|
||||||
if self.app.tool_tab_locked is True:
|
if self.app.tool_tab_locked is True:
|
||||||
return
|
return
|
||||||
self.toggle()
|
self.toggle()
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ class ToolMove(FlatCAMTool):
|
|||||||
FlatCAMTool.install(self, icon, separator, shortcut='M', **kwargs)
|
FlatCAMTool.install(self, icon, separator, shortcut='M', **kwargs)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolMove()")
|
||||||
|
|
||||||
if self.app.tool_tab_locked is True:
|
if self.app.tool_tab_locked is True:
|
||||||
return
|
return
|
||||||
self.toggle()
|
self.toggle()
|
||||||
|
|||||||
@@ -236,6 +236,8 @@ class NonCopperClear(FlatCAMTool, Gerber):
|
|||||||
FlatCAMTool.install(self, icon, separator, shortcut='ALT+N', **kwargs)
|
FlatCAMTool.install(self, icon, separator, shortcut='ALT+N', **kwargs)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolNonCopperClear()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.build_ui()
|
self.build_ui()
|
||||||
|
|||||||
@@ -293,6 +293,8 @@ class ToolPaint(FlatCAMTool, Gerber):
|
|||||||
FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
|
FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolPaint()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Paint Tool")
|
self.app.ui.notebook.setTabText(2, "Paint Tool")
|
||||||
|
|||||||
@@ -176,6 +176,8 @@ class Panelize(FlatCAMTool):
|
|||||||
self.constrain_flag = False
|
self.constrain_flag = False
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolPanelize()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Panel. Tool")
|
self.app.ui.notebook.setTabText(2, "Panel. Tool")
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ class Properties(FlatCAMTool):
|
|||||||
self.vlay.setStretch(0,0)
|
self.vlay.setStretch(0,0)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolProperties()")
|
||||||
|
|
||||||
if self.app.tool_tab_locked is True:
|
if self.app.tool_tab_locked is True:
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -356,6 +356,8 @@ class ToolTransform(FlatCAMTool):
|
|||||||
self.offy_entry.returnPressed.connect(self.on_offy)
|
self.offy_entry.returnPressed.connect(self.on_offy)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
self.app.report_usage("ToolTransform()")
|
||||||
|
|
||||||
FlatCAMTool.run(self)
|
FlatCAMTool.run(self)
|
||||||
self.set_tool_ui()
|
self.set_tool_ui()
|
||||||
self.app.ui.notebook.setTabText(2, "Transform Tool")
|
self.app.ui.notebook.setTabText(2, "Transform Tool")
|
||||||
|
|||||||
Reference in New Issue
Block a user