- fixed the preprocessors with 'laser' in the name to use the spindle direction set in the Preferences
- increased the upper limit for feedrates by an order of magnitude
This commit is contained in:
parent
10d4ed512b
commit
23a1495c32
|
@ -12,6 +12,8 @@ CAD program, and create G-Code for Isolation routing.
|
||||||
3.02.2020
|
3.02.2020
|
||||||
|
|
||||||
- modified Spinbox and DoubleSpinbox Custom UI elements such that they issue a warning status message when the typed value is out of range
|
- modified Spinbox and DoubleSpinbox Custom UI elements such that they issue a warning status message when the typed value is out of range
|
||||||
|
- fixed the preprocessors with 'laser' in the name to use the spindle direction set in the Preferences
|
||||||
|
- increased the upper limit for feedrates by an order of magnitude
|
||||||
|
|
||||||
2.02.2020
|
2.02.2020
|
||||||
|
|
||||||
|
|
10
camlib.py
10
camlib.py
|
@ -3105,7 +3105,9 @@ class CNCjob(Geometry):
|
||||||
:param feedrate_z:
|
:param feedrate_z:
|
||||||
:param feedrate_rapid:
|
:param feedrate_rapid:
|
||||||
:param spindlespeed:
|
:param spindlespeed:
|
||||||
:param spindledir:
|
:param spindledir: Direction of rotation for the spindle. If using GRBL laser mode will
|
||||||
|
adjust the laser mode
|
||||||
|
|
||||||
:param dwell:
|
:param dwell:
|
||||||
:param dwelltime:
|
:param dwelltime:
|
||||||
:param multidepth: If True, use multiple passes to reach the desired depth.
|
:param multidepth: If True, use multiple passes to reach the desired depth.
|
||||||
|
@ -4055,14 +4057,14 @@ class CNCjob(Geometry):
|
||||||
else:
|
else:
|
||||||
command['Z'] = 0
|
command['Z'] = 0
|
||||||
|
|
||||||
elif 'grbl_laser' in self.pp_excellon_name or 'grbl_laser' in self.pp_geometry_name or \
|
elif 'laser' in self.pp_excellon_name.lower() or 'laser' in self.pp_geometry_name.lower() or \
|
||||||
(self.pp_solderpaste_name is not None and 'Paste' in self.pp_solderpaste_name):
|
(self.pp_solderpaste_name is not None and 'paste' in self.pp_solderpaste_name.lower()):
|
||||||
match_lsr = re.search(r"X([\+-]?\d+.[\+-]?\d+)\s*Y([\+-]?\d+.[\+-]?\d+)", gline)
|
match_lsr = re.search(r"X([\+-]?\d+.[\+-]?\d+)\s*Y([\+-]?\d+.[\+-]?\d+)", gline)
|
||||||
if match_lsr:
|
if match_lsr:
|
||||||
command['X'] = float(match_lsr.group(1).replace(" ", ""))
|
command['X'] = float(match_lsr.group(1).replace(" ", ""))
|
||||||
command['Y'] = float(match_lsr.group(2).replace(" ", ""))
|
command['Y'] = float(match_lsr.group(2).replace(" ", ""))
|
||||||
|
|
||||||
match_lsr_pos = re.search(r"^(M0[3|5])", gline)
|
match_lsr_pos = re.search(r"^(M0[3-5])", gline)
|
||||||
if match_lsr_pos:
|
if match_lsr_pos:
|
||||||
if 'M05' in match_lsr_pos.group(1):
|
if 'M05' in match_lsr_pos.group(1):
|
||||||
# the value does not matter, only that it is positive so the gcode_parse() know it is > 0,
|
# the value does not matter, only that it is positive so the gcode_parse() know it is > 0,
|
||||||
|
|
|
@ -1038,7 +1038,7 @@ class ExcellonObjectUI(ObjectUI):
|
||||||
)
|
)
|
||||||
self.feedrate_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
self.feedrate_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||||
self.feedrate_entry.set_precision(self.decimals)
|
self.feedrate_entry.set_precision(self.decimals)
|
||||||
self.feedrate_entry.set_range(0.0, 9999.9999)
|
self.feedrate_entry.set_range(0.0, 99999.9999)
|
||||||
self.feedrate_entry.setSingleStep(0.1)
|
self.feedrate_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.grid3.addWidget(frlabel, 14, 0)
|
self.grid3.addWidget(frlabel, 14, 0)
|
||||||
|
@ -1055,7 +1055,7 @@ class ExcellonObjectUI(ObjectUI):
|
||||||
)
|
)
|
||||||
self.feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
self.feedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||||
self.feedrate_rapid_entry.set_precision(self.decimals)
|
self.feedrate_rapid_entry.set_precision(self.decimals)
|
||||||
self.feedrate_rapid_entry.set_range(0.0, 9999.9999)
|
self.feedrate_rapid_entry.set_range(0.0, 99999.9999)
|
||||||
self.feedrate_rapid_entry.setSingleStep(0.1)
|
self.feedrate_rapid_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.grid3.addWidget(self.feedrate_rapid_label, 16, 0)
|
self.grid3.addWidget(self.feedrate_rapid_label, 16, 0)
|
||||||
|
@ -1778,7 +1778,7 @@ class GeometryObjectUI(ObjectUI):
|
||||||
)
|
)
|
||||||
self.cncfeedrate_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
self.cncfeedrate_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||||
self.cncfeedrate_entry.set_precision(self.decimals)
|
self.cncfeedrate_entry.set_precision(self.decimals)
|
||||||
self.cncfeedrate_entry.set_range(0, 9999.9999)
|
self.cncfeedrate_entry.set_range(0, 99999.9999)
|
||||||
self.cncfeedrate_entry.setSingleStep(0.1)
|
self.cncfeedrate_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.grid3.addWidget(frlabel, 10, 0)
|
self.grid3.addWidget(frlabel, 10, 0)
|
||||||
|
@ -1793,7 +1793,7 @@ class GeometryObjectUI(ObjectUI):
|
||||||
)
|
)
|
||||||
self.cncplunge_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
self.cncplunge_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||||
self.cncplunge_entry.set_precision(self.decimals)
|
self.cncplunge_entry.set_precision(self.decimals)
|
||||||
self.cncplunge_entry.set_range(0, 9999.9999)
|
self.cncplunge_entry.set_range(0, 99999.9999)
|
||||||
self.cncplunge_entry.setSingleStep(0.1)
|
self.cncplunge_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.grid3.addWidget(frzlabel, 11, 0)
|
self.grid3.addWidget(frzlabel, 11, 0)
|
||||||
|
@ -1810,7 +1810,7 @@ class GeometryObjectUI(ObjectUI):
|
||||||
)
|
)
|
||||||
self.cncfeedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
self.cncfeedrate_rapid_entry = FCDoubleSpinner(callback=self.confirmation_message)
|
||||||
self.cncfeedrate_rapid_entry.set_precision(self.decimals)
|
self.cncfeedrate_rapid_entry.set_precision(self.decimals)
|
||||||
self.cncfeedrate_rapid_entry.set_range(0, 9999.9999)
|
self.cncfeedrate_rapid_entry.set_range(0, 99999.9999)
|
||||||
self.cncfeedrate_rapid_entry.setSingleStep(0.1)
|
self.cncfeedrate_rapid_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.grid3.addWidget(self.fr_rapidlabel, 12, 0)
|
self.grid3.addWidget(self.fr_rapidlabel, 12, 0)
|
||||||
|
|
|
@ -3154,7 +3154,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI):
|
||||||
)
|
)
|
||||||
self.feedrate_entry = FCDoubleSpinner()
|
self.feedrate_entry = FCDoubleSpinner()
|
||||||
self.feedrate_entry.set_precision(self.decimals)
|
self.feedrate_entry.set_precision(self.decimals)
|
||||||
self.feedrate_entry.set_range(0, 999)
|
self.feedrate_entry.set_range(0, 99999.9999)
|
||||||
|
|
||||||
grid2.addWidget(frlabel, 5, 0)
|
grid2.addWidget(frlabel, 5, 0)
|
||||||
grid2.addWidget(self.feedrate_entry, 5, 1)
|
grid2.addWidget(self.feedrate_entry, 5, 1)
|
||||||
|
@ -3316,7 +3316,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
|
||||||
)
|
)
|
||||||
self.feedrate_rapid_entry = FCDoubleSpinner()
|
self.feedrate_rapid_entry = FCDoubleSpinner()
|
||||||
self.feedrate_rapid_entry.set_precision(self.decimals)
|
self.feedrate_rapid_entry.set_precision(self.decimals)
|
||||||
self.feedrate_rapid_entry.set_range(0, 9999999.9999)
|
self.feedrate_rapid_entry.set_range(0, 99999.9999)
|
||||||
|
|
||||||
grid1.addWidget(fr_rapid_label, 3, 0)
|
grid1.addWidget(fr_rapid_label, 3, 0)
|
||||||
grid1.addWidget(self.feedrate_rapid_entry, 3, 1)
|
grid1.addWidget(self.feedrate_rapid_entry, 3, 1)
|
||||||
|
@ -3341,7 +3341,7 @@ class ExcellonAdvOptPrefGroupUI(OptionsGroupUI):
|
||||||
)
|
)
|
||||||
self.feedrate_probe_entry = FCDoubleSpinner()
|
self.feedrate_probe_entry = FCDoubleSpinner()
|
||||||
self.feedrate_probe_entry.set_precision(self.decimals)
|
self.feedrate_probe_entry.set_precision(self.decimals)
|
||||||
self.feedrate_probe_entry.set_range(0, 9999999.9999)
|
self.feedrate_probe_entry.set_range(0, 99999.9999)
|
||||||
|
|
||||||
grid1.addWidget(self.feedrate_probe_label, 5, 0)
|
grid1.addWidget(self.feedrate_probe_label, 5, 0)
|
||||||
grid1.addWidget(self.feedrate_probe_entry, 5, 1)
|
grid1.addWidget(self.feedrate_probe_entry, 5, 1)
|
||||||
|
@ -4081,7 +4081,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
|
||||||
"plane in units per minute")
|
"plane in units per minute")
|
||||||
)
|
)
|
||||||
self.cncfeedrate_entry = FCDoubleSpinner()
|
self.cncfeedrate_entry = FCDoubleSpinner()
|
||||||
self.cncfeedrate_entry.set_range(0, 99999)
|
self.cncfeedrate_entry.set_range(0, 99999.9999)
|
||||||
self.cncfeedrate_entry.set_precision(self.decimals)
|
self.cncfeedrate_entry.set_precision(self.decimals)
|
||||||
self.cncfeedrate_entry.setSingleStep(0.1)
|
self.cncfeedrate_entry.setSingleStep(0.1)
|
||||||
self.cncfeedrate_entry.setWrapping(True)
|
self.cncfeedrate_entry.setWrapping(True)
|
||||||
|
@ -4097,7 +4097,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI):
|
||||||
"It is called also Plunge.")
|
"It is called also Plunge.")
|
||||||
)
|
)
|
||||||
self.cncplunge_entry = FCDoubleSpinner()
|
self.cncplunge_entry = FCDoubleSpinner()
|
||||||
self.cncplunge_entry.set_range(0, 99999)
|
self.cncplunge_entry.set_range(0, 99999.9999)
|
||||||
self.cncplunge_entry.set_precision(self.decimals)
|
self.cncplunge_entry.set_precision(self.decimals)
|
||||||
self.cncplunge_entry.setSingleStep(0.1)
|
self.cncplunge_entry.setSingleStep(0.1)
|
||||||
self.cncplunge_entry.setWrapping(True)
|
self.cncplunge_entry.setWrapping(True)
|
||||||
|
@ -4208,7 +4208,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
|
||||||
"ignore for any other cases.")
|
"ignore for any other cases.")
|
||||||
)
|
)
|
||||||
self.cncfeedrate_rapid_entry = FCDoubleSpinner()
|
self.cncfeedrate_rapid_entry = FCDoubleSpinner()
|
||||||
self.cncfeedrate_rapid_entry.set_range(0, 99999)
|
self.cncfeedrate_rapid_entry.set_range(0, 99999.9999)
|
||||||
self.cncfeedrate_rapid_entry.set_precision(self.decimals)
|
self.cncfeedrate_rapid_entry.set_precision(self.decimals)
|
||||||
self.cncfeedrate_rapid_entry.setSingleStep(0.1)
|
self.cncfeedrate_rapid_entry.setSingleStep(0.1)
|
||||||
self.cncfeedrate_rapid_entry.setWrapping(True)
|
self.cncfeedrate_rapid_entry.setWrapping(True)
|
||||||
|
@ -4260,7 +4260,7 @@ class GeometryAdvOptPrefGroupUI(OptionsGroupUI):
|
||||||
_("The feedrate used while the probe is probing.")
|
_("The feedrate used while the probe is probing.")
|
||||||
)
|
)
|
||||||
self.feedrate_probe_entry = FCDoubleSpinner()
|
self.feedrate_probe_entry = FCDoubleSpinner()
|
||||||
self.feedrate_probe_entry.set_range(0, 99999)
|
self.feedrate_probe_entry.set_range(0, 99999.9999)
|
||||||
self.feedrate_probe_entry.set_precision(self.decimals)
|
self.feedrate_probe_entry.set_precision(self.decimals)
|
||||||
self.feedrate_probe_entry.setSingleStep(0.1)
|
self.feedrate_probe_entry.setSingleStep(0.1)
|
||||||
self.feedrate_probe_entry.setWrapping(True)
|
self.feedrate_probe_entry.setWrapping(True)
|
||||||
|
@ -6709,7 +6709,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
|
||||||
# Feedrate X-Y
|
# Feedrate X-Y
|
||||||
self.frxy_entry = FCDoubleSpinner()
|
self.frxy_entry = FCDoubleSpinner()
|
||||||
self.frxy_entry.set_precision(self.decimals)
|
self.frxy_entry.set_precision(self.decimals)
|
||||||
self.frxy_entry.set_range(0.0000001, 9999.9999)
|
self.frxy_entry.set_range(0.0000001, 99999.9999)
|
||||||
self.frxy_entry.setSingleStep(0.1)
|
self.frxy_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.frxy_label = QtWidgets.QLabel('%s:' % _("Feedrate X-Y"))
|
self.frxy_label = QtWidgets.QLabel('%s:' % _("Feedrate X-Y"))
|
||||||
|
@ -6722,7 +6722,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
|
||||||
# Feedrate Z
|
# Feedrate Z
|
||||||
self.frz_entry = FCDoubleSpinner()
|
self.frz_entry = FCDoubleSpinner()
|
||||||
self.frz_entry.set_precision(self.decimals)
|
self.frz_entry.set_precision(self.decimals)
|
||||||
self.frz_entry.set_range(0.0000001, 9999.9999)
|
self.frz_entry.set_range(0.0000001, 99999.9999)
|
||||||
self.frz_entry.setSingleStep(0.1)
|
self.frz_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.frz_label = QtWidgets.QLabel('%s:' % _("Feedrate Z"))
|
self.frz_label = QtWidgets.QLabel('%s:' % _("Feedrate Z"))
|
||||||
|
@ -6736,7 +6736,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
|
||||||
# Feedrate Z Dispense
|
# Feedrate Z Dispense
|
||||||
self.frz_dispense_entry = FCDoubleSpinner()
|
self.frz_dispense_entry = FCDoubleSpinner()
|
||||||
self.frz_dispense_entry.set_precision(self.decimals)
|
self.frz_dispense_entry.set_precision(self.decimals)
|
||||||
self.frz_dispense_entry.set_range(0.0000001, 9999.9999)
|
self.frz_dispense_entry.set_range(0.0000001, 99999.9999)
|
||||||
self.frz_dispense_entry.setSingleStep(0.1)
|
self.frz_dispense_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
self.frz_dispense_label = QtWidgets.QLabel('%s:' % _("Feedrate Z Dispense"))
|
self.frz_dispense_label = QtWidgets.QLabel('%s:' % _("Feedrate Z Dispense"))
|
||||||
|
@ -6749,7 +6749,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
|
||||||
|
|
||||||
# Spindle Speed Forward
|
# Spindle Speed Forward
|
||||||
self.speedfwd_entry = FCSpinner()
|
self.speedfwd_entry = FCSpinner()
|
||||||
self.speedfwd_entry.set_range(0, 999999)
|
self.speedfwd_entry.set_range(0, 99999)
|
||||||
self.speedfwd_entry.setSingleStep(1000)
|
self.speedfwd_entry.setSingleStep(1000)
|
||||||
|
|
||||||
self.speedfwd_label = QtWidgets.QLabel('%s:' % _("Spindle Speed FWD"))
|
self.speedfwd_label = QtWidgets.QLabel('%s:' % _("Spindle Speed FWD"))
|
||||||
|
|
|
@ -245,7 +245,7 @@ class SolderPaste(FlatCAMTool):
|
||||||
|
|
||||||
# Feedrate X-Y
|
# Feedrate X-Y
|
||||||
self.frxy_entry = FCDoubleSpinner()
|
self.frxy_entry = FCDoubleSpinner()
|
||||||
self.frxy_entry.set_range(0.0000001, 9999.9999)
|
self.frxy_entry.set_range(0.0000, 99999.9999)
|
||||||
self.frxy_entry.set_precision(self.decimals)
|
self.frxy_entry.set_precision(self.decimals)
|
||||||
self.frxy_entry.setSingleStep(0.1)
|
self.frxy_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ class SolderPaste(FlatCAMTool):
|
||||||
|
|
||||||
# Feedrate Z
|
# Feedrate Z
|
||||||
self.frz_entry = FCDoubleSpinner()
|
self.frz_entry = FCDoubleSpinner()
|
||||||
self.frz_entry.set_range(0.0000001, 9999.9999)
|
self.frz_entry.set_range(0.0000, 99999.9999)
|
||||||
self.frz_entry.set_precision(self.decimals)
|
self.frz_entry.set_precision(self.decimals)
|
||||||
self.frz_entry.setSingleStep(0.1)
|
self.frz_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ class SolderPaste(FlatCAMTool):
|
||||||
|
|
||||||
# Feedrate Z Dispense
|
# Feedrate Z Dispense
|
||||||
self.frz_dispense_entry = FCDoubleSpinner()
|
self.frz_dispense_entry = FCDoubleSpinner()
|
||||||
self.frz_dispense_entry.set_range(0.0000001, 9999.9999)
|
self.frz_dispense_entry.set_range(0.0000, 99999.9999)
|
||||||
self.frz_dispense_entry.set_precision(self.decimals)
|
self.frz_dispense_entry.set_precision(self.decimals)
|
||||||
self.frz_dispense_entry.setSingleStep(0.1)
|
self.frz_dispense_entry.setSingleStep(0.1)
|
||||||
|
|
||||||
|
@ -491,6 +491,8 @@ class SolderPaste(FlatCAMTool):
|
||||||
self.units = ''
|
self.units = ''
|
||||||
self.name = ""
|
self.name = ""
|
||||||
|
|
||||||
|
self.obj = None
|
||||||
|
|
||||||
self.text_editor_tab = None
|
self.text_editor_tab = None
|
||||||
|
|
||||||
# this will be used in the combobox context menu, for delete entry
|
# this will be used in the combobox context menu, for delete entry
|
||||||
|
@ -652,10 +654,10 @@ class SolderPaste(FlatCAMTool):
|
||||||
for tooluid_key, tooluid_value in self.tooltable_tools.items():
|
for tooluid_key, tooluid_value in self.tooltable_tools.items():
|
||||||
if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted:
|
if float('%.*f' % (self.decimals, tooluid_value['tooldia'])) == tool_sorted:
|
||||||
tool_id += 1
|
tool_id += 1
|
||||||
id = QtWidgets.QTableWidgetItem('%d' % int(tool_id))
|
id_item = QtWidgets.QTableWidgetItem('%d' % int(tool_id))
|
||||||
id.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
|
id_item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
|
||||||
row_no = tool_id - 1
|
row_no = tool_id - 1
|
||||||
self.tools_table.setItem(row_no, 0, id) # Tool name/id
|
self.tools_table.setItem(row_no, 0, id_item) # Tool name/id
|
||||||
|
|
||||||
# Make sure that the drill diameter when in MM is with no more than 2 decimals
|
# Make sure that the drill diameter when in MM is with no more than 2 decimals
|
||||||
# There are no drill bits in MM with more than 2 decimals diameter
|
# There are no drill bits in MM with more than 2 decimals diameter
|
||||||
|
@ -1295,7 +1297,7 @@ class SolderPaste(FlatCAMTool):
|
||||||
if obj.tools[tooluid_key]['solid_geometry'] is None:
|
if obj.tools[tooluid_key]['solid_geometry'] is None:
|
||||||
a += 1
|
a += 1
|
||||||
if a == len(obj.tools):
|
if a == len(obj.tools):
|
||||||
self.app.inform.emit('[ERROR_NOTCL] %s...' % _('Cancelled. Empty file, it has no geometry'))
|
self.app.inform.emit('[ERROR_NOTCL] %s...' % _('Cancelled. Empty file, it has no geometry'))
|
||||||
return 'fail'
|
return 'fail'
|
||||||
|
|
||||||
# use the name of the first tool selected in self.geo_tools_table which has the diameter passed as tool_dia
|
# use the name of the first tool selected in self.geo_tools_table which has the diameter passed as tool_dia
|
||||||
|
@ -1334,8 +1336,6 @@ class SolderPaste(FlatCAMTool):
|
||||||
assert isinstance(job_obj, FlatCAMCNCjob), \
|
assert isinstance(job_obj, FlatCAMCNCjob), \
|
||||||
"Initializer expected a FlatCAMCNCjob, got %s" % type(job_obj)
|
"Initializer expected a FlatCAMCNCjob, got %s" % type(job_obj)
|
||||||
|
|
||||||
tool_cnc_dict = {}
|
|
||||||
|
|
||||||
# this turn on the FlatCAMCNCJob plot for multiple tools
|
# this turn on the FlatCAMCNCJob plot for multiple tools
|
||||||
job_obj.multitool = True
|
job_obj.multitool = True
|
||||||
job_obj.multigeo = True
|
job_obj.multigeo = True
|
||||||
|
|
|
@ -117,11 +117,11 @@ M6
|
||||||
M0
|
M0
|
||||||
G00 Z{z_toolchange}
|
G00 Z{z_toolchange}
|
||||||
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
|
""".format(x_toolchange=self.coordinate_format % (p.coords_decimals, x_toolchange),
|
||||||
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
|
y_toolchange=self.coordinate_format % (p.coords_decimals, y_toolchange),
|
||||||
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
|
z_toolchange=self.coordinate_format % (p.coords_decimals, z_toolchange),
|
||||||
tool=int(p.tool),
|
tool=int(p.tool),
|
||||||
t_drills=no_drills,
|
t_drills=no_drills,
|
||||||
toolC=toolC_formatted)
|
toolC=toolC_formatted)
|
||||||
else:
|
else:
|
||||||
gcode = """
|
gcode = """
|
||||||
M5
|
M5
|
||||||
|
|
|
@ -54,10 +54,11 @@ class grbl_laser(FlatCAMPostProc):
|
||||||
return 'M05 S0'
|
return 'M05 S0'
|
||||||
|
|
||||||
def down_code(self, p):
|
def down_code(self, p):
|
||||||
|
sdir = {'CW': 'M03', 'CCW': 'M04'}[p.spindledir]
|
||||||
if p.spindlespeed:
|
if p.spindlespeed:
|
||||||
return 'M03 S%d' % p.spindlespeed
|
return '%s S%s' % (sdir, str(p.spindlespeed))
|
||||||
else:
|
else:
|
||||||
return 'M03'
|
return sdir
|
||||||
|
|
||||||
def toolchange_code(self, p):
|
def toolchange_code(self, p):
|
||||||
return ''
|
return ''
|
||||||
|
|
Loading…
Reference in New Issue