- Calibration Tool - more work on it
This commit is contained in:
@@ -558,50 +558,49 @@ class ToolCalibration(FlatCAMTool):
|
||||
# STEP 5 #
|
||||
step_5 = QtWidgets.QLabel('<b>%s</b>' % _("STEP 5: Calibrate FlatCAM Objects"))
|
||||
step_5.setToolTip(
|
||||
_("Adjust the Excellon and Cutout Geometry objects\n"
|
||||
"with the factors determined, and verified, above.")
|
||||
_("Adjust the FlatCAM objects\n"
|
||||
"with the factors determined and verified above.")
|
||||
)
|
||||
grid_lay.addWidget(step_5, 38, 0, 1, 3)
|
||||
|
||||
self.adj_exc_object_combo = QtWidgets.QComboBox()
|
||||
self.adj_exc_object_combo.setModel(self.app.collection)
|
||||
self.adj_exc_object_combo.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
|
||||
self.adj_exc_object_combo.setCurrentIndex(1)
|
||||
self.adj_object_type_combo = QtWidgets.QComboBox()
|
||||
self.adj_object_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
|
||||
self.adj_object_type_combo.setCurrentIndex(0)
|
||||
|
||||
self.adj_excobj_label = QtWidgets.QLabel("%s:" % _("EXCELLON"))
|
||||
self.adj_excobj_label.setToolTip(
|
||||
_("Excellon Object to be adjusted.")
|
||||
self.adj_object_type_label = QtWidgets.QLabel("%s:" % _("Adjusted object type"))
|
||||
self.adj_object_type_label.setToolTip(
|
||||
_("Type of the FlatCAM Object to be adjusted.")
|
||||
)
|
||||
|
||||
grid_lay.addWidget(self.adj_excobj_label, 39, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_exc_object_combo, 40, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_object_type_label, 39, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_object_type_combo, 40, 0, 1, 3)
|
||||
|
||||
self.adj_geo_object_combo = QtWidgets.QComboBox()
|
||||
self.adj_geo_object_combo.setModel(self.app.collection)
|
||||
self.adj_geo_object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
|
||||
self.adj_geo_object_combo.setCurrentIndex(1)
|
||||
self.adj_object_combo = FCComboBox()
|
||||
self.adj_object_combo.setModel(self.app.collection)
|
||||
self.adj_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
|
||||
self.adj_object_combo.setCurrentIndex(0)
|
||||
|
||||
self.adj_geoobj_label = QtWidgets.QLabel("%s:" % _("GEOMETRY"))
|
||||
self.adj_geoobj_label.setToolTip(
|
||||
_("Geometry Object to be adjusted.")
|
||||
self.adj_object_label = QtWidgets.QLabel("%s:" % _("Adjusted object selection"))
|
||||
self.adj_object_label.setToolTip(
|
||||
_("The FlatCAM Object to be adjusted.")
|
||||
)
|
||||
|
||||
grid_lay.addWidget(self.adj_geoobj_label, 41, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_geo_object_combo, 42, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_object_label, 41, 0, 1, 3)
|
||||
grid_lay.addWidget(self.adj_object_combo, 42, 0, 1, 3)
|
||||
|
||||
# ## Adjust Objects Button
|
||||
self.adj_obj_button = QtWidgets.QPushButton(_("Calibrate"))
|
||||
self.adj_obj_button.setToolTip(
|
||||
self.cal_button = QtWidgets.QPushButton(_("Calibrate"))
|
||||
self.cal_button.setToolTip(
|
||||
_("Adjust (scale and/or skew) the objects\n"
|
||||
"with the factors determined above.")
|
||||
)
|
||||
self.adj_obj_button.setStyleSheet("""
|
||||
self.cal_button.setStyleSheet("""
|
||||
QPushButton
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
""")
|
||||
grid_lay.addWidget(self.adj_obj_button, 43, 0, 1, 3)
|
||||
grid_lay.addWidget(self.cal_button, 43, 0, 1, 3)
|
||||
|
||||
separator_line2 = QtWidgets.QFrame()
|
||||
separator_line2.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -639,6 +638,12 @@ class ToolCalibration(FlatCAMTool):
|
||||
# if the mouse events are connected to a local method set this True
|
||||
self.local_connected = False
|
||||
|
||||
# reference for the tab where to open and view the verification GCode
|
||||
self.gcode_editor_tab = None
|
||||
|
||||
# calibrated object
|
||||
self.cal_object = None
|
||||
|
||||
# ## Signals
|
||||
self.start_button.clicked.connect(self.on_start_collect_points)
|
||||
self.gcode_button.clicked.connect(self.generate_verification_gcode)
|
||||
@@ -648,6 +653,9 @@ class ToolCalibration(FlatCAMTool):
|
||||
self.cal_source_radio.activated_custom.connect(self.on_cal_source_radio)
|
||||
|
||||
self.obj_type_combo.currentIndexChanged.connect(self.on_obj_type_combo)
|
||||
self.adj_object_type_combo.currentIndexChanged.connect(self.on_adj_obj_type_combo)
|
||||
|
||||
self.cal_button.clicked.connect(self.on_cal_button_click)
|
||||
|
||||
def run(self, toggle=True):
|
||||
self.app.report_usage("ToolCalibration()")
|
||||
@@ -699,6 +707,9 @@ class ToolCalibration(FlatCAMTool):
|
||||
self.skewx_entry.set_value(0.0)
|
||||
self.skewy_entry.set_value(0.0)
|
||||
|
||||
# calibrated object
|
||||
self.cal_object = None
|
||||
|
||||
self.app.inform.emit('%s...' % _("Tool initialized"))
|
||||
|
||||
def on_obj_type_combo(self):
|
||||
@@ -706,6 +717,11 @@ class ToolCalibration(FlatCAMTool):
|
||||
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
|
||||
self.object_combo.setCurrentIndex(0)
|
||||
|
||||
def on_adj_obj_type_combo(self):
|
||||
obj_type = self.adj_object_type_combo.currentIndex()
|
||||
self.adj_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
|
||||
self.adj_object_combo.setCurrentIndex(0)
|
||||
|
||||
def on_cal_source_radio(self, val):
|
||||
if val == 'object':
|
||||
self.obj_type_label.setDisabled(False)
|
||||
@@ -937,25 +953,6 @@ class ToolCalibration(FlatCAMTool):
|
||||
self.gcode_editor_tab.buttonSave.clicked.disconnect()
|
||||
self.gcode_editor_tab.buttonSave.clicked.connect(
|
||||
lambda: self.gcode_editor_tab.handleSaveGCode(name='fc_ver_gcode', filt=_filter_, callback=self.close_tab))
|
||||
#
|
||||
# try:
|
||||
# dir_file_to_save = self.app.get_last_save_folder() + '/' + 'ver_gcode'
|
||||
# filename, _f = QtWidgets.QFileDialog.getSaveFileName(
|
||||
# caption=_("Export Machine Code ..."),
|
||||
# directory=dir_file_to_save,
|
||||
# filter=_filter_
|
||||
# )
|
||||
# except TypeError:
|
||||
# filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Machine Code ..."), filter=_filter_)
|
||||
#
|
||||
# filename = str(filename)
|
||||
#
|
||||
# if filename == '':
|
||||
# self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export Machine Code cancelled ..."))
|
||||
# return
|
||||
#
|
||||
# with open(filename, 'w') as f:
|
||||
# f.write(gcode)
|
||||
|
||||
def calculate_factors(self):
|
||||
origin_x = self.click_points[0][0]
|
||||
@@ -1029,6 +1026,21 @@ class ToolCalibration(FlatCAMTool):
|
||||
|
||||
self.skewy_entry.set_value(skew_angle_y)
|
||||
|
||||
def on_cal_button_click(self):
|
||||
# get the FlatCAM object to calibrate
|
||||
selection_index = self.adj_object_combo.currentIndex()
|
||||
model_index = self.app.collection.index(selection_index, 0, self.adj_object_combo.rootModelIndex())
|
||||
|
||||
try:
|
||||
self.cal_object = model_index.internalPointer().obj
|
||||
except Exception as e:
|
||||
log.debug("ToolCalibration.on_cal_button_click() --> %s" % str(e))
|
||||
self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no FlatCAM object selected..."))
|
||||
return 'fail'
|
||||
|
||||
# create a new object adjusted (calibrated)
|
||||
# TODO
|
||||
|
||||
def disconnect_cal_events(self):
|
||||
# restore the Grid snapping if it was active before
|
||||
if self.grid_status_memory is True:
|
||||
|
||||
Reference in New Issue
Block a user