From ebdcbcb1bf127ba85b5889ccb3807caadb710f99 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 3 Dec 2020 15:31:07 +0200 Subject: [PATCH] - in Gerber Editor - modified the UI - in Gerber Editor - added new parameters for selected polygons: is_valid and area --- CHANGELOG.md | 5 +++ appEditors/AppGerberEditor.py | 73 +++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98112ab8..61bc948d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ CHANGELOG for FlatCAM beta ================================================= +3.12.2020 + +- in Gerber Editor - modified the UI +- in Gerber Editor - added new parameters for selected polygons: is_valid and area + 2.12.2020 - Subtraction Tool - minor changes diff --git a/appEditors/AppGerberEditor.py b/appEditors/AppGerberEditor.py index 7cb84b9b..161f1987 100644 --- a/appEditors/AppGerberEditor.py +++ b/appEditors/AppGerberEditor.py @@ -2800,8 +2800,8 @@ class AppGerberEditor(QtCore.QObject): # ############################################################################################################# # ######################### Init appGUI ####################################################################### # ############################################################################################################# - self.ui.apdim_lbl.hide() - self.ui.apdim_entry.hide() + self.ui.apdim_lbl.setDisabled(True) + self.ui.apdim_entry.setDisabled(True) self.gerber_obj = None self.gerber_obj_options = {} @@ -3594,6 +3594,8 @@ class AppGerberEditor(QtCore.QObject): if not self.selected: self.ui.geo_coords_entry.setText('') self.ui.geo_vertex_entry.set_value(0) + self.ui.area_entry.set_value(0) + self.ui.is_valid_entry.setText('None') return last_sel_geo = self.selected[-1].geo @@ -3641,12 +3643,17 @@ class AppGerberEditor(QtCore.QObject): if last_sel_geo_solid.geom_type == 'Polygon': coords = list(last_sel_geo_solid.exterior.coords) vertex_nr = len(coords) + area_val = last_sel_geo_solid.area + self.ui.area_entry.set_value(area_val) elif last_sel_geo_solid.geom_type in ['LinearRing', 'LineString']: coords = list(last_sel_geo_solid.coords) vertex_nr = len(coords) else: return + validity = last_sel_geo_solid.is_valid + + self.ui.is_valid_entry.setText(str(validity)) self.ui.geo_coords_entry.setText(str(coords)) self.ui.geo_vertex_entry.set_value(vertex_nr) @@ -3656,12 +3663,12 @@ class AppGerberEditor(QtCore.QObject): def on_aptype_changed(self, current_text): # 'O' is letter O not zero. if current_text == 'R' or current_text == 'O': - self.ui.apdim_lbl.show() - self.ui.apdim_entry.show() + self.ui.apdim_lbl.setDisabled(False) + self.ui.apdim_entry.setDisabled(False) self.ui.apsize_entry.setDisabled(True) else: - self.ui.apdim_lbl.hide() - self.ui.apdim_entry.hide() + self.ui.apdim_lbl.setDisabled(True) + self.ui.apdim_entry.setDisabled(True) self.ui.apsize_entry.setDisabled(False) def activate_grb_editor(self): @@ -5417,7 +5424,7 @@ class AppGerberEditorUI: grid1.addWidget(apadd_del_lbl, 0, 0, 1, 2) # Aperture Code - apcode_lbl = FCLabel('%s:' % _('Aperture Code')) + apcode_lbl = FCLabel('%s:' % _('Code')) apcode_lbl.setToolTip(_("Code for the new aperture")) self.apcode_entry = FCSpinner() @@ -5428,7 +5435,7 @@ class AppGerberEditorUI: grid1.addWidget(self.apcode_entry, 1, 1) # Aperture Size - apsize_lbl = FCLabel('%s' % _('Aperture Size:')) + apsize_lbl = FCLabel('%s' % _('Size:')) apsize_lbl.setToolTip( _("Size for the new aperture.\n" "If aperture type is 'R' or 'O' then\n" @@ -5445,7 +5452,7 @@ class AppGerberEditorUI: grid1.addWidget(self.apsize_entry, 2, 1) # Aperture Type - aptype_lbl = FCLabel('%s:' % _('Aperture Type')) + aptype_lbl = FCLabel('%s:' % _('Type')) aptype_lbl.setToolTip( _("Select the type of new aperture. Can be:\n" "C = circular\n" @@ -5460,10 +5467,9 @@ class AppGerberEditorUI: grid1.addWidget(self.aptype_cb, 3, 1) # Aperture Dimensions - self.apdim_lbl = FCLabel('%s:' % _('Aperture Dim')) + self.apdim_lbl = FCLabel('%s:' % _('Dims')) self.apdim_lbl.setToolTip( _("Dimensions for the new aperture.\n" - "Active only for rectangular apertures (type R).\n" "The format is (width, height)") ) @@ -5475,25 +5481,28 @@ class AppGerberEditorUI: separator_line = QtWidgets.QFrame() separator_line.setFrameShape(QtWidgets.QFrame.HLine) separator_line.setFrameShadow(QtWidgets.QFrame.Sunken) - grid1.addWidget(separator_line, 6, 0, 1, 2) + grid1.addWidget(separator_line, 5, 0, 1, 3) # Aperture Buttons - hlay_ad = QtWidgets.QHBoxLayout() - grid1.addLayout(hlay_ad, 8, 0, 1, 2) + vlay_buttons = QtWidgets.QVBoxLayout() + grid1.addLayout(vlay_buttons, 1, 2, 4, 1) self.addaperture_btn = FCButton(_('Add')) + self.addaperture_btn.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.addaperture_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/plus16.png')) self.addaperture_btn.setToolTip( _("Add a new aperture to the aperture list.") ) self.delaperture_btn = FCButton(_('Delete')) + # self.delaperture_btn.setSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) + self.delaperture_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/trash32.png')) self.delaperture_btn.setToolTip( _("Delete a aperture in the aperture list") ) - hlay_ad.addWidget(self.addaperture_btn) - hlay_ad.addWidget(self.delaperture_btn) + vlay_buttons.addWidget(self.addaperture_btn) + vlay_buttons.addWidget(self.delaperture_btn) # ############################################################################################################# # ############################################ Shape Properties ############################################### @@ -5524,6 +5533,38 @@ class AppGerberEditorUI: ) self.shape_grid.addWidget(param_title, 4, 0, 1, 3) + p_grid = QtWidgets.QGridLayout() + p_grid.setColumnStretch(0, 0) + p_grid.setColumnStretch(1, 0) + p_grid.setColumnStretch(2, 0) + p_grid.setColumnStretch(3, 1) + p_grid.setColumnStretch(4, 0) + + # Is Valid + valid_lbl = FCLabel('%s:' % _("Valid")) + valid_lbl.setToolTip( + _("Show if the selected polygon is valid.") + ) + self.is_valid_entry = FCLabel("False") + p_grid.addWidget(valid_lbl, 0, 0) + p_grid.addWidget(self.is_valid_entry, 0, 1) + + # Area + area_lbl = FCLabel('%s:' % _("Area")) + area_lbl.setToolTip( + _("Show the area of the selected polygon.") + ) + self.area_entry = FCEntry(decimals=self.decimals) + self.area_entry.set_value(0.0) + a_units = _("cm") if self.units == 'MM' else _("in") + area_units_lbl = FCLabel('%s2' % a_units) + + p_grid.addWidget(area_lbl, 0, 2) + p_grid.addWidget(self.area_entry, 0, 3) + p_grid.addWidget(area_units_lbl, 0, 4) + + self.shape_grid.addLayout(p_grid, 5, 0, 1, 3) + # Coordinates coords_lbl = FCLabel('%s:' % _("Coordinates")) coords_lbl.setToolTip(