diff --git a/FlatCAMApp.py b/FlatCAMApp.py
index b39c0e9..e7c0006 100644
--- a/FlatCAMApp.py
+++ b/FlatCAMApp.py
@@ -190,6 +190,9 @@ class App(QtCore.QObject):
"gerber_isotooldia": self.defaults_form.gerber_group.iso_tool_dia_entry,
"gerber_isopasses": self.defaults_form.gerber_group.iso_width_entry,
"gerber_isooverlap": self.defaults_form.gerber_group.iso_overlap_entry,
+ "gerber_ncctools": self.defaults_form.gerber_group.ncc_tool_dia_entry,
+ "gerber_nccoverlap": self.defaults_form.gerber_group.ncc_overlap_entry,
+ "gerber_nccmargin": self.defaults_form.gerber_group.ncc_margin_entry,
"gerber_combine_passes": self.defaults_form.gerber_group.combine_passes_cb,
"gerber_cutouttooldia": self.defaults_form.gerber_group.cutout_tooldia_entry,
"gerber_cutoutmargin": self.defaults_form.gerber_group.cutout_margin_entry,
@@ -232,6 +235,9 @@ class App(QtCore.QObject):
"gerber_isotooldia": 0.016,
"gerber_isopasses": 1,
"gerber_isooverlap": 0.15,
+ "gerber_ncctools": "1.0, 0.5",
+ "gerber_nccoverlap": 0.4,
+ "gerber_nccmargin": 1,
"gerber_cutouttooldia": 0.07,
"gerber_cutoutmargin": 0.1,
"gerber_cutoutgapsize": 0.15,
@@ -316,6 +322,9 @@ class App(QtCore.QObject):
"gerber_isotooldia": self.options_form.gerber_group.iso_tool_dia_entry,
"gerber_isopasses": self.options_form.gerber_group.iso_width_entry,
"gerber_isooverlap": self.options_form.gerber_group.iso_overlap_entry,
+ "gerber_ncctools": self.options_form.gerber_group.ncc_tool_dia_entry,
+ "gerber_nccoverlap": self.options_form.gerber_group.ncc_overlap_entry,
+ "gerber_nccmargin": self.options_form.gerber_group.ncc_margin_entry,
"gerber_combine_passes": self.options_form.gerber_group.combine_passes_cb,
"gerber_cutouttooldia": self.options_form.gerber_group.cutout_tooldia_entry,
"gerber_cutoutmargin": self.options_form.gerber_group.cutout_margin_entry,
@@ -356,6 +365,9 @@ class App(QtCore.QObject):
"gerber_isotooldia": 0.016,
"gerber_isopasses": 1,
"gerber_isooverlap": 0.15,
+ "gerber_ncctools": "1.0, 0.5",
+ "gerber_nccoverlap": 0.4,
+ "gerber_nccmargin": 1,
"gerber_combine_passes": True,
"gerber_cutouttooldia": 0.07,
"gerber_cutoutmargin": 0.1,
diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py
index 9010378..1d39ed4 100644
--- a/FlatCAMGUI.py
+++ b/FlatCAMGUI.py
@@ -412,6 +412,41 @@ class GerberOptionsGroupUI(OptionsGroupUI):
)
grid1.addWidget(self.combine_passes_cb, 3, 0)
+ ## Clear non-copper regions
+ self.clearcopper_label = QtGui.QLabel("Clear non-copper:")
+ self.clearcopper_label.setToolTip(
+ "Create a Geometry object with\n"
+ "toolpaths to cut all non-copper regions."
+ )
+ self.layout.addWidget(self.clearcopper_label)
+
+ grid5 = QtGui.QGridLayout()
+ self.layout.addLayout(grid5)
+ ncctdlabel = QtGui.QLabel('Tools dia:')
+ ncctdlabel.setToolTip(
+ "Diameters of the cutting tools, separated by ','"
+ )
+ grid5.addWidget(ncctdlabel, 0, 0)
+ self.ncc_tool_dia_entry = FCEntry()
+ grid5.addWidget(self.ncc_tool_dia_entry, 0, 1)
+
+ nccoverlabel = QtGui.QLabel('Overlap:')
+ nccoverlabel.setToolTip(
+ "How much (fraction of tool width)\n"
+ "to overlap each pass."
+ )
+ grid5.addWidget(nccoverlabel, 1, 0)
+ self.ncc_overlap_entry = FloatEntry()
+ grid5.addWidget(self.ncc_overlap_entry, 1, 1)
+
+ nccmarginlabel = QtGui.QLabel('Margin:')
+ nccmarginlabel.setToolTip(
+ "Bounding box margin."
+ )
+ grid5.addWidget(nccmarginlabel, 2, 0)
+ self.ncc_margin_entry = FloatEntry()
+ grid5.addWidget(self.ncc_margin_entry, 2, 1)
+
## Board cuttout
self.board_cutout_label = QtGui.QLabel("Board cutout:")
self.board_cutout_label.setToolTip(
diff --git a/FlatCAMObj.py b/FlatCAMObj.py
index 9397dd4..4b597de 100644
--- a/FlatCAMObj.py
+++ b/FlatCAMObj.py
@@ -267,6 +267,9 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
"isotooldia": 0.016,
"isopasses": 1,
"isooverlap": 0.15,
+ "ncctools": "1.0, 0.5",
+ "nccoverlap": 0.4,
+ "nccmargin": 1,
"combine_passes": True,
"cutouttooldia": 0.07,
"cutoutmargin": 0.2,
@@ -312,6 +315,9 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
"isotooldia": self.ui.iso_tool_dia_entry,
"isopasses": self.ui.iso_width_entry,
"isooverlap": self.ui.iso_overlap_entry,
+ "ncctools": self.ui.ncc_tool_dia_entry,
+ "nccoverlap": self.ui.ncc_overlap_entry,
+ "nccmargin": self.ui.ncc_margin_entry,
"combine_passes": self.ui.combine_passes_cb,
"cutouttooldia": self.ui.cutout_tooldia_entry,
"cutoutmargin": self.ui.cutout_margin_entry,
@@ -334,35 +340,6 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
self.ui.generate_noncopper_button.clicked.connect(self.on_generatenoncopper_button_click)
def on_generatenoncopper_button_click(self, *args):
-
- # bounding_box = self.solid_geometry.envelope.buffer(0.05)
-
- # empty = self.get_empty_area(bounding_box)
-
- # if type(empty) is Polygon:
- # polygons = []
- # polygons.append(empty)
- # polygons = MultiPolygon(polygons)
- # else:
- # polygons = empty
-
- # FlatCAMApp.App.log.debug("get_empty_area count: %d", len(polygons))
-
- # name = self.options["name"] + "_clear"
-
- # def noncop_init(geo_obj, app_obj):
-
- # assert isinstance(geo_obj, FlatCAMGeometry), \
- # "Initializer expected a FlatCAMGeometry, got %s" % type(geo_obj)
-
- # geo_obj.solid_geometry = []
- # for p in polygons:
- # FlatCAMApp.App.log.debug(type(p))
- # cp = self.clear_polygon(p, 0.01, 0.15)
- # geo_obj.solid_geometry.append(list(cp.get_objects()))
-
- # self.app.new_object("geometry", name, noncop_init)
-
self.app.report_usage("gerber_on_generatenoncopper_button")
self.read_form()