- Calibration Tool - more work on it

This commit is contained in:
Marius Stanciu
2019-12-09 02:23:30 +02:00
committed by Marius
parent 8969c03021
commit f2d7151f93

View File

@@ -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: