diff --git a/FlatCAMApp.py b/FlatCAMApp.py
index 92ffde68..49420f69 100644
--- a/FlatCAMApp.py
+++ b/FlatCAMApp.py
@@ -409,7 +409,11 @@ class App(QtCore.QObject):
"tools_paintmethod": self.tools_defaults_form.tools_paint_group.paintmethod_combo,
"tools_selectmethod": self.tools_defaults_form.tools_paint_group.selectmethod_combo,
"tools_pathconnect": self.tools_defaults_form.tools_paint_group.pathconnect_cb,
- "tools_paintcontour": self.tools_defaults_form.tools_paint_group.contour_cb
+ "tools_paintcontour": self.tools_defaults_form.tools_paint_group.contour_cb,
+
+ "tools_2sided_mirror_axis": self.tools_defaults_form.tools_2sided_group.mirror_axis_radio,
+ "tools_2sided_axis_loc": self.tools_defaults_form.tools_2sided_group.axis_location_radio,
+ "tools_2sided_drilldia": self.tools_defaults_form.tools_2sided_group.drill_dia_entry,
}
# loads postprocessors
self.postprocessors = load_postprocessors(self)
@@ -570,7 +574,11 @@ class App(QtCore.QObject):
"tools_paintmethod": "seed",
"tools_selectmethod": "single",
"tools_pathconnect": True,
- "tools_paintcontour": True
+ "tools_paintcontour": True,
+
+ "tools_2sided_mirror_axis": "X",
+ "tools_2sided_axis_loc": "point",
+ "tools_2sided_drilldia": 1,
})
@@ -686,7 +694,7 @@ class App(QtCore.QObject):
"tools_cutoutmargin": self.tools_options_form.tools_cutout_group.cutout_margin_entry,
"tools_cutoutgapsize": self.tools_options_form.tools_cutout_group.cutout_gap_entry,
"tools_gaps_rect": self.tools_options_form.tools_cutout_group.gaps_radio,
- "tools_gaps_rect": self.tools_options_form.tools_cutout_group.gaps_combo,
+ "tools_gaps_ff": self.tools_options_form.tools_cutout_group.gaps_combo,
"tools_painttooldia": self.tools_options_form.tools_paint_group.painttooldia_entry,
"tools_paintoverlap": self.tools_options_form.tools_paint_group.paintoverlap_entry,
@@ -694,7 +702,11 @@ class App(QtCore.QObject):
"tools_paintmethod": self.tools_options_form.tools_paint_group.paintmethod_combo,
"tools_selectmethod": self.tools_options_form.tools_paint_group.selectmethod_combo,
"tools_pathconnect": self.tools_options_form.tools_paint_group.pathconnect_cb,
- "tools_paintcontour": self.tools_options_form.tools_paint_group.contour_cb
+ "tools_paintcontour": self.tools_options_form.tools_paint_group.contour_cb,
+
+ "tools_2sided_mirror_axis": self.tools_options_form.tools_2sided_group.mirror_axis_radio,
+ "tools_2sided_axis_loc": self.tools_options_form.tools_2sided_group.axis_location_radio,
+ "tools_2sided_drilldia": self.tools_options_form.tools_2sided_group.drill_dia_entry
}
for name in list(self.postprocessors.keys()):
@@ -792,7 +804,11 @@ class App(QtCore.QObject):
"tools_paintmethod": "seed",
"tools_selectmethod": "single",
"tools_pathconnect": True,
- "tools_paintcontour": True
+ "tools_paintcontour": True,
+
+ "tools_2sided_mirror_axis": "X",
+ "tools_2sided_axis_loc": 'point',
+ "tools_2sided_drilldia": 1
})
diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py
index caf03ac2..edd31a4d 100644
--- a/FlatCAMGUI.py
+++ b/FlatCAMGUI.py
@@ -978,13 +978,20 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.tools_cutout_group = ToolsCutoutPrefGroupUI()
self.tools_cutout_group.setFixedWidth(260)
+ self.tools_2sided_group = Tools2sidedPrefGroupUI()
+ self.tools_2sided_group.setFixedWidth(260)
+
self.vlay = QtWidgets.QVBoxLayout()
self.vlay.addWidget(self.tools_ncc_group)
self.vlay.addWidget(self.tools_paint_group)
- self.layout.addLayout(self.vlay)
+ self.vlay1 = QtWidgets.QVBoxLayout()
+ self.vlay1.addWidget(self.tools_cutout_group)
+ self.vlay1.addWidget(self.tools_2sided_group)
+
+ self.layout.addLayout(self.vlay)
+ self.layout.addLayout(self.vlay1)
- self.layout.addWidget(self.tools_cutout_group)
self.layout.addStretch()
class CNCJobPreferencesUI(QtWidgets.QWidget):
@@ -2556,6 +2563,63 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI):
self.layout.addStretch()
+class Tools2sidedPrefGroupUI(OptionsGroupUI):
+ def __init__(self, parent=None):
+ # OptionsGroupUI.__init__(self, "2sided Tool Options", parent=parent)
+ super(Tools2sidedPrefGroupUI, self).__init__(self)
+
+ self.setTitle(str("2Sided Tool Options"))
+
+ ## Board cuttout
+ self.dblsided_label = QtWidgets.QLabel("Double Sided:")
+ self.dblsided_label.setToolTip(
+ "A tool to help in creating a double sided\n"
+ "PCB using alignment holes."
+ )
+ self.layout.addWidget(self.dblsided_label)
+
+ grid0 = QtWidgets.QGridLayout()
+ self.layout.addLayout(grid0)
+
+ ## Drill diameter for alignment holes
+ self.drill_dia_entry = LengthEntry()
+ self.dd_label = QtWidgets.QLabel("Drill diam.:")
+ self.dd_label.setToolTip(
+ "Diameter of the drill for the "
+ "alignment holes."
+ )
+ grid0.addWidget(self.dd_label, 0, 0)
+ grid0.addWidget(self.drill_dia_entry, 0, 1)
+
+ ## Axis
+ self.mirror_axis_radio = RadioSet([{'label': 'X', 'value': 'X'},
+ {'label': 'Y', 'value': 'Y'}])
+ self.mirax_label = QtWidgets.QLabel("Mirror Axis:")
+ self.mirax_label.setToolTip(
+ "Mirror vertically (X) or horizontally (Y)."
+ )
+ # grid_lay.addRow("Mirror Axis:", self.mirror_axis)
+ self.empty_lb1 = QtWidgets.QLabel("")
+ grid0.addWidget(self.empty_lb1, 1, 0)
+ grid0.addWidget(self.mirax_label, 2, 0)
+ grid0.addWidget(self.mirror_axis_radio, 2, 1)
+
+ ## Axis Location
+ self.axis_location_radio = RadioSet([{'label': 'Point', 'value': 'point'},
+ {'label': 'Box', 'value': 'box'}])
+ self.axloc_label = QtWidgets.QLabel("Axis Ref:")
+ self.axloc_label.setToolTip(
+ "The axis should pass through a point or cut\n "
+ "a specified box (in a Geometry object) in \n"
+ "the middle."
+ )
+ # grid_lay.addRow("Axis Location:", self.axis_location)
+ grid0.addWidget(self.axloc_label, 3, 0)
+ grid0.addWidget(self.axis_location_radio, 3, 1)
+
+ self.layout.addStretch()
+
+
class ToolsPaintPrefGroupUI(OptionsGroupUI):
def __init__(self, parent=None):
# OptionsGroupUI.__init__(self, "Paint Area Tool Options", parent=parent)
diff --git a/README.md b/README.md
index deee786d..487303f1 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,7 @@ CAD program, and create G-Code for Isolation routing.
- added new option for Cutout Tool Freeform Gaps in Edit -> Preferences -> Tools
- fixed Freeform Cutout gaps issue (it was double than the value set)
- added protection so the Cutout (either Freeform or Rectangular) cannot be done on a multigeo Geometry
+- added 2Sided Tool default values in Edit -> Preferences -> Tools
28.01.2018
diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py
index 783b14a1..475c3db3 100644
--- a/flatcamTools/ToolDblSided.py
+++ b/flatcamTools/ToolDblSided.py
@@ -249,14 +249,27 @@ class DblSidedTool(FlatCAMTool):
self.drill_values = ""
- ## Initialize form
- self.mirror_axis.set_value('X')
- self.axis_location.set_value('point')
- self.drill_dia.set_value(1)
+ self.set_ui()
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+D', **kwargs)
+ def run(self):
+ FlatCAMTool.run(self)
+
+ self.app.ui.notebook.setTabText(2, "2-Sided Tool")
+ self.reset_fields()
+ self.set_ui()
+
+ def set_ui(self):
+ ## Initialize form
+ self.point_entry.set_value("")
+ self.alignment_holes.set_value("")
+
+ self.mirror_axis.set_value(self.app.defaults["tools_2sided_mirror_axis"])
+ self.axis_location.set_value(self.app.defaults["tools_2sided_axis_loc"])
+ self.drill_dia.set_value(self.app.defaults["tools_2sided_drilldia"])
+
def on_combo_box_type(self):
obj_type = self.box_combo_type.currentIndex()
self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
@@ -457,14 +470,6 @@ class DblSidedTool(FlatCAMTool):
self.drill_values = ""
- self.point_entry.set_value("")
- self.alignment_holes.set_value("")
- ## Initialize form
- self.mirror_axis.set_value('X')
- self.axis_location.set_value('point')
- self.drill_dia.set_value(1)
- def run(self):
- FlatCAMTool.run(self)
- self.app.ui.notebook.setTabText(2, "2-Sided Tool")
- self.reset_fields()
+
+