- added ability to create new scripts and open scripts in FlatCAM Script Editor
This commit is contained in:
parent
b79c26ec4b
commit
74d1765a95
|
@ -90,8 +90,8 @@ class App(QtCore.QObject):
|
|||
log.addHandler(handler)
|
||||
|
||||
# Version
|
||||
version = 8.912
|
||||
version_date = "2019/03/17"
|
||||
version = 8.913
|
||||
version_date = "2019/03/23"
|
||||
beta = True
|
||||
|
||||
# current date now
|
||||
|
@ -1240,6 +1240,9 @@ class App(QtCore.QObject):
|
|||
self.ui.menufileopenproject.triggered.connect(self.on_file_openproject)
|
||||
self.ui.menufileopenconfig.triggered.connect(self.on_file_openconfig)
|
||||
|
||||
self.ui.menufilenewscript.triggered.connect(self.on_filenewscript)
|
||||
self.ui.menufileopenscript.triggered.connect(self.on_fileopenscript)
|
||||
|
||||
self.ui.menufilerunscript.triggered.connect(self.on_filerunscript)
|
||||
|
||||
self.ui.menufileimportsvg.triggered.connect(lambda: self.on_file_importsvg("geometry"))
|
||||
|
@ -1422,6 +1425,7 @@ class App(QtCore.QObject):
|
|||
|
||||
self.ui.cncjob_defaults_form.cncjob_adv_opt_group.tc_variable_combo.currentIndexChanged[str].connect(
|
||||
self.on_cnc_custom_parameters)
|
||||
|
||||
# Modify G-CODE Plot Area TAB
|
||||
self.ui.code_editor.textChanged.connect(self.handleTextChanged)
|
||||
self.ui.buttonOpen.clicked.connect(self.handleOpen)
|
||||
|
@ -3374,7 +3378,7 @@ class App(QtCore.QObject):
|
|||
|
||||
if self.toggle_codeeditor is False:
|
||||
# add the tab if it was closed
|
||||
self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, "Code Editor")
|
||||
self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Code Editor"))
|
||||
self.ui.cncjob_tab.setObjectName('cncjob_tab')
|
||||
# first clear previous text in text editor (if any)
|
||||
self.ui.code_editor.clear()
|
||||
|
@ -3863,7 +3867,7 @@ class App(QtCore.QObject):
|
|||
|
||||
filter_group = " G-Code Files (*.nc);; G-Code Files (*.txt);; G-Code Files (*.tap);; G-Code Files (*.cnc);; " \
|
||||
"All Files (*.*)"
|
||||
path, _ = QtWidgets.QFileDialog.getOpenFileName(
|
||||
path, _f = QtWidgets.QFileDialog.getOpenFileName(
|
||||
caption=_('Open file'), directory=self.get_last_folder(), filter=filter_group)
|
||||
if path:
|
||||
file = QtCore.QFile(path)
|
||||
|
@ -5299,9 +5303,11 @@ class App(QtCore.QObject):
|
|||
return 'fail'
|
||||
|
||||
# add the tab if it was closed
|
||||
self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Code Editor"))
|
||||
self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Source Editor"))
|
||||
self.ui.cncjob_tab.setObjectName('cncjob_tab')
|
||||
# first clear previous text in text editor (if any)
|
||||
self.ui.code_editor.clear()
|
||||
self.toggle_codeeditor = True
|
||||
|
||||
# Switch plot_area to CNCJob tab
|
||||
self.ui.plot_tab_area.setCurrentWidget(self.ui.cncjob_tab)
|
||||
|
@ -5783,19 +5789,23 @@ class App(QtCore.QObject):
|
|||
self.worker_task.emit({'fcn': self.import_dxf,
|
||||
'params': [filename, type_of_obj]})
|
||||
|
||||
def on_filerunscript(self):
|
||||
"""
|
||||
File menu callback for loading and running a TCL script.
|
||||
def on_filenewscript(self):
|
||||
# add the tab if it was closed
|
||||
self.ui.plot_tab_area.addTab(self.ui.cncjob_tab, _("Script Editor"))
|
||||
self.ui.cncjob_tab.setObjectName('cncjob_tab')
|
||||
# first clear previous text in text editor (if any)
|
||||
self.ui.code_editor.clear()
|
||||
|
||||
:return: None
|
||||
"""
|
||||
# Switch plot_area to CNCJob tab
|
||||
self.ui.plot_tab_area.setCurrentWidget(self.ui.cncjob_tab)
|
||||
|
||||
self.report_usage("on_filerunscript")
|
||||
App.log.debug("on_file_runscript()")
|
||||
_filter_ = "TCL script (*.TCL);;TCL script (*.TXT);;All Files (*.*)"
|
||||
self.toggle_codeeditor = True
|
||||
|
||||
def on_fileopenscript(self):
|
||||
_filter_ = "TCL script (*.FlatScript);;TCL script (*.TCL);;TCL script (*.TXT);;All Files (*.*)"
|
||||
try:
|
||||
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open TCL script"),
|
||||
directory=self.get_last_folder(), filter=_filter_)
|
||||
directory=self.get_last_folder(), filter=_filter_)
|
||||
except TypeError:
|
||||
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Open TCL script"), filter=_filter_)
|
||||
|
||||
|
@ -5806,13 +5816,58 @@ class App(QtCore.QObject):
|
|||
|
||||
if filename == "":
|
||||
self.inform.emit(_("[WARNING_NOTCL]Open TCL script cancelled."))
|
||||
else:
|
||||
self.on_filenewscript()
|
||||
try:
|
||||
with open(filename, "r") as opened_script:
|
||||
try:
|
||||
for line in opened_script:
|
||||
proc_line = str(line).strip('\n')
|
||||
self.ui.code_editor.append(proc_line)
|
||||
except Exception as e:
|
||||
log.debug('App.on_fileopenscript() -->%s' % str(e))
|
||||
self.inform.emit(_('[ERROR]App.on_fileopenscript() -->%s') % str(e))
|
||||
return
|
||||
|
||||
self.ui.code_editor.moveCursor(QtGui.QTextCursor.Start)
|
||||
|
||||
self.handleTextChanged()
|
||||
self.ui.show()
|
||||
|
||||
except Exception as e:
|
||||
log.debug("App.on_fileopenscript() -> %s" % str(e))
|
||||
|
||||
|
||||
def on_filerunscript(self):
|
||||
"""
|
||||
File menu callback for loading and running a TCL script.
|
||||
|
||||
:return: None
|
||||
"""
|
||||
|
||||
self.report_usage("on_filerunscript")
|
||||
App.log.debug("on_file_runscript()")
|
||||
_filter_ = "TCL script (*.FlatScript);;TCL script (*.TCL);;TCL script (*.TXT);;All Files (*.*)"
|
||||
try:
|
||||
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"),
|
||||
directory=self.get_last_folder(), filter=_filter_)
|
||||
except TypeError:
|
||||
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Run TCL script"), filter=_filter_)
|
||||
|
||||
# The Qt methods above will return a QString which can cause problems later.
|
||||
# So far json.dump() will fail to serialize it.
|
||||
# TODO: Improve the serialization methods and remove this fix.
|
||||
filename = str(filename)
|
||||
|
||||
if filename == "":
|
||||
self.inform.emit(_("[WARNING_NOTCL]Run TCL script cancelled."))
|
||||
else:
|
||||
try:
|
||||
with open(filename, "r") as tcl_script:
|
||||
cmd_line_shellfile_content = tcl_script.read()
|
||||
self.shell._sysShell.exec_command(cmd_line_shellfile_content)
|
||||
except Exception as ext:
|
||||
print("ERROR: ", ext)
|
||||
except Exception as e:
|
||||
log.debug("App.on_filerunscript() -> %s" % str(e))
|
||||
sys.exit(2)
|
||||
|
||||
def on_file_saveproject(self):
|
||||
|
|
|
@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing.
|
|||
|
||||
=================================================
|
||||
|
||||
18.03.2019
|
||||
|
||||
- added ability to create new scripts and open scripts in FlatCAM Script Editor
|
||||
|
||||
|
||||
17.03.2019
|
||||
|
||||
- remade the layout in 2Sided Tool
|
||||
|
|
|
@ -107,7 +107,14 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
|||
# Separator
|
||||
self.menufile.addSeparator()
|
||||
|
||||
# Run Scripts
|
||||
# Scripting
|
||||
self.menufile_scripting = self.menufile.addMenu(QtGui.QIcon('share/script16.png'), _('Scripting'))
|
||||
self.menufile_scripting.setToolTipsVisible(True)
|
||||
|
||||
self.menufilenewscript = QtWidgets.QAction(QtGui.QIcon('share/script_new16.png'), _('New Script ...'),
|
||||
self)
|
||||
self.menufileopenscript = QtWidgets.QAction(QtGui.QIcon('share/script_open16.png'), _('Open Script ...'),
|
||||
self)
|
||||
self.menufilerunscript = QtWidgets.QAction(QtGui.QIcon('share/script16.png'), _('Run Script ...\tSHIFT+S'),
|
||||
self)
|
||||
self.menufilerunscript.setToolTip(
|
||||
|
@ -115,7 +122,10 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
|||
"enabling the automation of certain\n"
|
||||
"functions of FlatCAM.")
|
||||
)
|
||||
self.menufile.addAction(self.menufilerunscript)
|
||||
self.menufile_scripting.addAction(self.menufilenewscript)
|
||||
self.menufile_scripting.addAction(self.menufileopenscript)
|
||||
self.menufile_scripting.addSeparator()
|
||||
self.menufile_scripting.addAction(self.menufilerunscript)
|
||||
|
||||
# Separator
|
||||
self.menufile.addSeparator()
|
||||
|
|
|
@ -190,7 +190,7 @@ class DblSidedTool(FlatCAMTool):
|
|||
|
||||
|
||||
## Alignment holes
|
||||
self.ah_label = QtWidgets.QLabel("<b%s</b>" % _('Alignment Drill Coordinates:'))
|
||||
self.ah_label = QtWidgets.QLabel("<b>%s</b>" % _('Alignment Drill Coordinates:'))
|
||||
self.ah_label.setToolTip(
|
||||
_( "Alignment holes (x1, y1), (x2, y2), ... "
|
||||
"on one side of the mirror axis. For each set of (x, y) coordinates\n"
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 300 B |
Binary file not shown.
After Width: | Height: | Size: 341 B |
Loading…
Reference in New Issue