Spindle speed for G-code from geometry and excellon. Solves #124.
This commit is contained in:
parent
40e8445f2d
commit
f503dabc7e
|
@ -195,12 +195,14 @@ class App(QtCore.QObject):
|
|||
"excellon_drillz": self.defaults_form.excellon_group.cutz_entry,
|
||||
"excellon_travelz": self.defaults_form.excellon_group.travelz_entry,
|
||||
"excellon_feedrate": self.defaults_form.excellon_group.feedrate_entry,
|
||||
"excellon_spindlespeed": self.defaults_form.excellon_group.spindlespeed_entry,
|
||||
"geometry_plot": self.defaults_form.geometry_group.plot_cb,
|
||||
"geometry_cutz": self.defaults_form.geometry_group.cutz_entry,
|
||||
"geometry_travelz": self.defaults_form.geometry_group.travelz_entry,
|
||||
"geometry_feedrate": self.defaults_form.geometry_group.cncfeedrate_entry,
|
||||
"geometry_cnctooldia": self.defaults_form.geometry_group.cnctooldia_entry,
|
||||
"geometry_painttooldia": self.defaults_form.geometry_group.painttooldia_entry,
|
||||
"geometry_spindlespeed": self.defaults_form.geometry_group.cncspindlespeed_entry,
|
||||
"geometry_paintoverlap": self.defaults_form.geometry_group.paintoverlap_entry,
|
||||
"geometry_paintmargin": self.defaults_form.geometry_group.paintmargin_entry,
|
||||
"cncjob_plot": self.defaults_form.cncjob_group.plot_cb,
|
||||
|
@ -234,11 +236,13 @@ class App(QtCore.QObject):
|
|||
"excellon_drillz": -0.1,
|
||||
"excellon_travelz": 0.1,
|
||||
"excellon_feedrate": 3.0,
|
||||
"excellon_spindlespeed": None,
|
||||
"geometry_plot": True,
|
||||
"geometry_cutz": -0.002,
|
||||
"geometry_travelz": 0.1,
|
||||
"geometry_feedrate": 3.0,
|
||||
"geometry_cnctooldia": 0.016,
|
||||
"geometry_spindlespeed": None,
|
||||
"geometry_painttooldia": 0.07,
|
||||
"geometry_paintoverlap": 0.15,
|
||||
"geometry_paintmargin": 0.0,
|
||||
|
@ -268,8 +272,7 @@ class App(QtCore.QObject):
|
|||
"zdownrate": None,
|
||||
"excellon_zeros": "L",
|
||||
"gerber_use_buffer_for_union": True,
|
||||
"cncjob_coordinate_format": "X%.4fY%.4f",
|
||||
"spindlespeed": None
|
||||
"cncjob_coordinate_format": "X%.4fY%.4f"
|
||||
})
|
||||
|
||||
###############################
|
||||
|
@ -315,10 +318,12 @@ class App(QtCore.QObject):
|
|||
"excellon_drillz": self.options_form.excellon_group.cutz_entry,
|
||||
"excellon_travelz": self.options_form.excellon_group.travelz_entry,
|
||||
"excellon_feedrate": self.options_form.excellon_group.feedrate_entry,
|
||||
"excellon_spindlespeed": self.options_form.excellon_group.spindlespeed_entry,
|
||||
"geometry_plot": self.options_form.geometry_group.plot_cb,
|
||||
"geometry_cutz": self.options_form.geometry_group.cutz_entry,
|
||||
"geometry_travelz": self.options_form.geometry_group.travelz_entry,
|
||||
"geometry_feedrate": self.options_form.geometry_group.cncfeedrate_entry,
|
||||
"geometry_spindlespeed": self.options_form.geometry_group.cncspindlespeed_entry,
|
||||
"geometry_cnctooldia": self.options_form.geometry_group.cnctooldia_entry,
|
||||
"geometry_painttooldia": self.options_form.geometry_group.painttooldia_entry,
|
||||
"geometry_paintoverlap": self.options_form.geometry_group.paintoverlap_entry,
|
||||
|
@ -353,10 +358,12 @@ class App(QtCore.QObject):
|
|||
"excellon_drillz": -0.1,
|
||||
"excellon_travelz": 0.1,
|
||||
"excellon_feedrate": 3.0,
|
||||
"excellon_spindlespeed": None,
|
||||
"geometry_plot": True,
|
||||
"geometry_cutz": -0.002,
|
||||
"geometry_travelz": 0.1,
|
||||
"geometry_feedrate": 3.0,
|
||||
"geometry_spindlespeed": None,
|
||||
"geometry_cnctooldia": 0.016,
|
||||
"geometry_painttooldia": 0.07,
|
||||
"geometry_paintoverlap": 0.15,
|
||||
|
|
|
@ -586,7 +586,7 @@ class ExcellonOptionsGroupUI(OptionsGroupUI):
|
|||
"in RPM (optional)"
|
||||
)
|
||||
grid1.addWidget(spdlabel, 3, 0)
|
||||
self.spindlespeed_entry = LengthEntry()
|
||||
self.spindlespeed_entry = IntEntry(allow_empty=True)
|
||||
grid1.addWidget(self.spindlespeed_entry, 3, 1)
|
||||
|
||||
|
||||
|
@ -662,7 +662,7 @@ class GeometryOptionsGroupUI(OptionsGroupUI):
|
|||
"in RPM (optional)"
|
||||
)
|
||||
grid1.addWidget(spdlabel, 4, 0)
|
||||
self.cncspindlespeed_entry = LengthEntry()
|
||||
self.cncspindlespeed_entry = IntEntry(allow_empty=True)
|
||||
grid1.addWidget(self.cncspindlespeed_entry, 4, 1)
|
||||
|
||||
## Paint area
|
||||
|
|
|
@ -609,7 +609,7 @@ class FlatCAMExcellon(FlatCAMObj, Excellon):
|
|||
"tooldia": 0.1,
|
||||
"toolchange": False,
|
||||
"toolchangez": 1.0,
|
||||
"spindlespeed": ""
|
||||
"spindlespeed": None
|
||||
})
|
||||
|
||||
# TODO: Document this.
|
||||
|
@ -834,12 +834,14 @@ class FlatCAMCNCjob(FlatCAMObj, CNCjob):
|
|||
ui_type = CNCObjectUI
|
||||
|
||||
def __init__(self, name, units="in", kind="generic", z_move=0.1,
|
||||
feedrate=3.0, z_cut=-0.002, tooldia=0.0,spindlespeed=None):
|
||||
feedrate=3.0, z_cut=-0.002, tooldia=0.0,
|
||||
spindlespeed=None):
|
||||
|
||||
FlatCAMApp.App.log.debug("Creating CNCJob object...")
|
||||
|
||||
CNCjob.__init__(self, units=units, kind=kind, z_move=z_move,
|
||||
feedrate=feedrate, z_cut=z_cut, tooldia=tooldia, spindlespeed=spindlespeed)
|
||||
feedrate=feedrate, z_cut=z_cut, tooldia=tooldia,
|
||||
spindlespeed=spindlespeed)
|
||||
|
||||
FlatCAMObj.__init__(self, name)
|
||||
|
||||
|
@ -980,7 +982,7 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
|
|||
"cutz": -0.002,
|
||||
"travelz": 0.1,
|
||||
"feedrate": 5.0,
|
||||
"spindlespeed": "",
|
||||
"spindlespeed": None,
|
||||
"cnctooldia": 0.4 / 25.4,
|
||||
"painttooldia": 0.0625,
|
||||
"paintoverlap": 0.15,
|
||||
|
@ -1095,7 +1097,8 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
|
|||
self.generatecncjob()
|
||||
|
||||
def generatecncjob(self, z_cut=None, z_move=None,
|
||||
feedrate=None, tooldia=None, outname=None, spindlespeed=None):
|
||||
feedrate=None, tooldia=None, outname=None,
|
||||
spindlespeed=None):
|
||||
"""
|
||||
Creates a CNCJob out of this Geometry object.
|
||||
|
||||
|
@ -1115,11 +1118,16 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
|
|||
tooldia = tooldia if tooldia is not None else self.options["cnctooldia"]
|
||||
|
||||
# To allow default value to be "" (optional in gui) and translate to None
|
||||
if not isinstance(spindlespeed, int):
|
||||
if isinstance(self.options["spindlespeed"], int):
|
||||
spindlespeed = self.options["spindlespeed"]
|
||||
else:
|
||||
spindlespeed = None
|
||||
# if not isinstance(spindlespeed, int):
|
||||
# if isinstance(self.options["spindlespeed"], int) or \
|
||||
# isinstance(self.options["spindlespeed"], float):
|
||||
# spindlespeed = int(self.options["spindlespeed"])
|
||||
# else:
|
||||
# spindlespeed = None
|
||||
|
||||
if spindlespeed is None:
|
||||
# int or None.
|
||||
spindlespeed = self.options['spindlespeed']
|
||||
|
||||
# Object initialization function for app.new_object()
|
||||
# RUNNING ON SEPARATE THREAD!
|
||||
|
|
|
@ -121,17 +121,30 @@ class FloatEntry(QtGui.QLineEdit):
|
|||
return float(evaled)
|
||||
|
||||
def set_value(self, val):
|
||||
self.setText("%.6f"%val)
|
||||
self.setText("%.6f" % val)
|
||||
|
||||
|
||||
class IntEntry(QtGui.QLineEdit):
|
||||
def __init__(self, parent=None):
|
||||
|
||||
def __init__(self, parent=None, allow_empty=False, empty_val=None):
|
||||
super(IntEntry, self).__init__(parent)
|
||||
self.allow_empty = allow_empty
|
||||
self.empty_val = empty_val
|
||||
|
||||
def get_value(self):
|
||||
|
||||
if self.allow_empty:
|
||||
if str(self.text()) == "":
|
||||
return self.empty_val
|
||||
|
||||
return int(self.text())
|
||||
|
||||
def set_value(self, val):
|
||||
|
||||
if val == self.empty_val and self.allow_empty:
|
||||
self.setText(QtCore.QString(""))
|
||||
return
|
||||
|
||||
self.setText(QtCore.QString(str(val)))
|
||||
|
||||
|
||||
|
|
|
@ -278,7 +278,7 @@ class GeometryObjectUI(ObjectUI):
|
|||
"in RPM (optional)"
|
||||
)
|
||||
grid1.addWidget(spdlabel, 4, 0)
|
||||
self.cncspindlespeed_entry = LengthEntry()
|
||||
self.cncspindlespeed_entry = IntEntry(allow_empty=True)
|
||||
grid1.addWidget(self.cncspindlespeed_entry, 4, 1)
|
||||
|
||||
self.generate_cnc_button = QtGui.QPushButton('Generate')
|
||||
|
@ -365,7 +365,9 @@ class ExcellonObjectUI(ObjectUI):
|
|||
"""
|
||||
|
||||
def __init__(self, parent=None):
|
||||
ObjectUI.__init__(self, title='Excellon Object', icon_file='share/drill32.png', parent=parent)
|
||||
ObjectUI.__init__(self, title='Excellon Object',
|
||||
icon_file='share/drill32.png',
|
||||
parent=parent)
|
||||
|
||||
#### Plot options ####
|
||||
|
||||
|
@ -463,7 +465,7 @@ class ExcellonObjectUI(ObjectUI):
|
|||
"in RPM (optional)"
|
||||
)
|
||||
grid1.addWidget(spdlabel, 5, 0)
|
||||
self.spindlespeed_entry = LengthEntry()
|
||||
self.spindlespeed_entry = IntEntry(allow_empty=True)
|
||||
grid1.addWidget(self.spindlespeed_entry, 5, 1)
|
||||
|
||||
choose_tools_label = QtGui.QLabel(
|
||||
|
|
Loading…
Reference in New Issue