- fixed GUI in 2Sided Tool
- extending the Copper Thieving Tool - wip
This commit is contained in:
parent
70d123306c
commit
8d6df5493c
|
@ -834,6 +834,12 @@ class App(QtCore.QObject):
|
|||
"tools_copper_thieving_box_type": 'rect',
|
||||
"tools_copper_thieving_circle_steps": 128,
|
||||
"tools_copper_thieving_fill_type": 'solid',
|
||||
"tools_copper_thieving_dots_dia": 0.0393701,
|
||||
"tools_copper_thieving_dots_spacing": 0.0787402,
|
||||
"tools_copper_thieving_squares_size": 0.0393701,
|
||||
"tools_copper_thieving_squares_spacing": 0.0787402,
|
||||
"tools_copper_thieving_lines_size": 0.01,
|
||||
"tools_copper_thieving_lines_spacing": 0.0787402,
|
||||
|
||||
# Utilities
|
||||
# file associations
|
||||
|
@ -1371,6 +1377,13 @@ class App(QtCore.QObject):
|
|||
"tools_copper_thieving_box_type": self.ui.tools2_defaults_form.tools2_cfill_group.bbox_type_radio,
|
||||
"tools_copper_thieving_circle_steps": self.ui.tools2_defaults_form.tools2_cfill_group.circlesteps_entry,
|
||||
"tools_copper_thieving_fill_type": self.ui.tools2_defaults_form.tools2_cfill_group.fill_type_radio,
|
||||
"tools_copper_thieving_dots_dia": self.ui.tools2_defaults_form.tools2_cfill_group.dot_dia_entry,
|
||||
"tools_copper_thieving_dots_spacing": self.ui.tools2_defaults_form.tools2_cfill_group.dot_spacing_entry,
|
||||
"tools_copper_thieving_squares_size": self.ui.tools2_defaults_form.tools2_cfill_group.square_size_entry,
|
||||
"tools_copper_thieving_squares_spacing":
|
||||
self.ui.tools2_defaults_form.tools2_cfill_group.squares_spacing_entry,
|
||||
"tools_copper_thieving_lines_size": self.ui.tools2_defaults_form.tools2_cfill_group.line_size_entry,
|
||||
"tools_copper_thieving_lines_spacing": self.ui.tools2_defaults_form.tools2_cfill_group.lines_spacing_entry,
|
||||
|
||||
# Utilities
|
||||
# File associations
|
||||
|
|
|
@ -17,6 +17,8 @@ CAD program, and create G-Code for Isolation routing.
|
|||
- renamed the Copper Fill Tool to Copper Thieving Tool as this is a more appropriate name; started to add ability for more types of copper thieving besides solid
|
||||
- fixed some issues recently introduced in ParseSVG
|
||||
- updated POT file
|
||||
- fixed GUI in 2Sided Tool
|
||||
- extending the Copper Thieving Tool - wip
|
||||
|
||||
9.11.2019
|
||||
|
||||
|
|
|
@ -2515,7 +2515,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
|
|||
|
||||
# Copper Thieving Tool
|
||||
if key == QtCore.Qt.Key_F:
|
||||
self.app.copperfill_tool.run(toggle=True)
|
||||
self.app.copper_thieving_tool.run(toggle=True)
|
||||
return
|
||||
|
||||
# Toggle Grid lines
|
||||
|
|
|
@ -5830,6 +5830,93 @@ class Tools2CFillPrefGroupUI(OptionsGroupUI):
|
|||
grid_lay.addWidget(self.fill_type_label, 7, 0)
|
||||
grid_lay.addWidget(self.fill_type_radio, 7, 1)
|
||||
|
||||
self.dots_label = QtWidgets.QLabel('<b>%s</b>:' % _("Dots Grid Parameters"))
|
||||
grid_lay.addWidget(self.dots_label, 8, 0, 1, 2)
|
||||
|
||||
# Dot diameter #
|
||||
self.dotdia_label = QtWidgets.QLabel('%s:' % _("Dia"))
|
||||
self.dotdia_label.setToolTip(
|
||||
_("Dot diameter in Dots Grid.")
|
||||
)
|
||||
self.dot_dia_entry = FCDoubleSpinner()
|
||||
self.dot_dia_entry.set_range(0.0, 9999.9999)
|
||||
self.dot_dia_entry.set_precision(self.decimals)
|
||||
self.dot_dia_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.dotdia_label, 9, 0)
|
||||
grid_lay.addWidget(self.dot_dia_entry, 9, 1)
|
||||
|
||||
# Dot spacing #
|
||||
self.dotspacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.dotspacing_label.setToolTip(
|
||||
_("Distance between each two dots in Dots Grid.")
|
||||
)
|
||||
self.dot_spacing_entry = FCDoubleSpinner()
|
||||
self.dot_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.dot_spacing_entry.set_precision(self.decimals)
|
||||
self.dot_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.dotspacing_label, 10, 0)
|
||||
grid_lay.addWidget(self.dot_spacing_entry, 10, 1)
|
||||
|
||||
self.squares_label = QtWidgets.QLabel('<b>%s</b>:' % _("Squares Grid Parameters"))
|
||||
grid_lay.addWidget(self.squares_label, 11, 0, 1, 2)
|
||||
|
||||
# Square Size #
|
||||
self.square_size_label = QtWidgets.QLabel('%s:' % _("Size"))
|
||||
self.square_size_label.setToolTip(
|
||||
_("Square side size in Squares Grid.")
|
||||
)
|
||||
self.square_size_entry = FCDoubleSpinner()
|
||||
self.square_size_entry.set_range(0.0, 9999.9999)
|
||||
self.square_size_entry.set_precision(self.decimals)
|
||||
self.square_size_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.square_size_label, 12, 0)
|
||||
grid_lay.addWidget(self.square_size_entry, 12, 1)
|
||||
|
||||
# Squares spacing #
|
||||
self.squares_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.squares_spacing_label.setToolTip(
|
||||
_("Distance between each two squares in Squares Grid.")
|
||||
)
|
||||
self.squares_spacing_entry = FCDoubleSpinner()
|
||||
self.squares_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.squares_spacing_entry.set_precision(self.decimals)
|
||||
self.squares_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.squares_spacing_label, 13, 0)
|
||||
grid_lay.addWidget(self.squares_spacing_entry, 13, 1)
|
||||
|
||||
self.lines_label = QtWidgets.QLabel('<b>%s</b>:' % _("Lines Grid Parameters"))
|
||||
grid_lay.addWidget(self.lines_label, 14, 0, 1, 2)
|
||||
|
||||
# Square Size #
|
||||
self.line_size_label = QtWidgets.QLabel('%s:' % _("Size"))
|
||||
self.line_size_label.setToolTip(
|
||||
_("Line thickness size in Lines Grid.")
|
||||
)
|
||||
self.line_size_entry = FCDoubleSpinner()
|
||||
self.line_size_entry.set_range(0.0, 9999.9999)
|
||||
self.line_size_entry.set_precision(self.decimals)
|
||||
self.line_size_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.line_size_label, 15, 0)
|
||||
grid_lay.addWidget(self.line_size_entry, 15, 1)
|
||||
|
||||
# Lines spacing #
|
||||
self.lines_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.lines_spacing_label.setToolTip(
|
||||
_("Distance between each two lines in Lines Grid.")
|
||||
)
|
||||
self.lines_spacing_entry = FCDoubleSpinner()
|
||||
self.lines_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.lines_spacing_entry.set_precision(self.decimals)
|
||||
self.lines_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
grid_lay.addWidget(self.lines_spacing_label, 16, 0)
|
||||
grid_lay.addWidget(self.lines_spacing_entry, 16, 1)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMExcellon
|
|||
|
||||
import shapely.geometry.base as base
|
||||
from shapely.ops import cascaded_union, unary_union
|
||||
from shapely.geometry import Polygon, MultiPolygon
|
||||
from shapely.geometry import Polygon, MultiPolygon, Point
|
||||
from shapely.geometry import box as box
|
||||
|
||||
import logging
|
||||
|
@ -98,7 +98,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
"and the copper traces in the Gerber file.")
|
||||
)
|
||||
self.clearance_entry = FCDoubleSpinner()
|
||||
self.clearance_entry.setMinimum(0.00001)
|
||||
self.clearance_entry.set_range(0.00001, 9999.9999)
|
||||
self.clearance_entry.set_precision(self.decimals)
|
||||
self.clearance_entry.setSingleStep(0.1)
|
||||
|
||||
|
@ -111,7 +111,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
_("Bounding box margin.")
|
||||
)
|
||||
self.margin_entry = FCDoubleSpinner()
|
||||
self.margin_entry.setMinimum(0.0)
|
||||
self.margin_entry.set_range(0.0, 9999.9999)
|
||||
self.margin_entry.set_precision(self.decimals)
|
||||
self.margin_entry.setSingleStep(0.1)
|
||||
|
||||
|
@ -200,6 +200,126 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
grid_lay.addWidget(self.fill_type_label, 8, 0)
|
||||
grid_lay.addWidget(self.fill_type_radio, 8, 1)
|
||||
|
||||
# DOTS FRAME
|
||||
self.dots_frame = QtWidgets.QFrame()
|
||||
self.dots_frame.setContentsMargins(0, 0, 0, 0)
|
||||
self.layout.addWidget(self.dots_frame)
|
||||
dots_grid = QtWidgets.QGridLayout()
|
||||
dots_grid.setColumnStretch(0, 0)
|
||||
dots_grid.setColumnStretch(1, 1)
|
||||
dots_grid.setContentsMargins(0, 0, 0, 0)
|
||||
self.dots_frame.setLayout(dots_grid)
|
||||
self.dots_frame.hide()
|
||||
|
||||
self.dots_label = QtWidgets.QLabel('<b>%s</b>:' % _("Dots Grid Parameters"))
|
||||
dots_grid.addWidget(self.dots_label, 0, 0, 1, 2)
|
||||
|
||||
# Dot diameter #
|
||||
self.dotdia_label = QtWidgets.QLabel('%s:' % _("Dia"))
|
||||
self.dotdia_label.setToolTip(
|
||||
_("Dot diameter in Dots Grid.")
|
||||
)
|
||||
self.dot_dia_entry = FCDoubleSpinner()
|
||||
self.dot_dia_entry.set_range(0.0, 9999.9999)
|
||||
self.dot_dia_entry.set_precision(self.decimals)
|
||||
self.dot_dia_entry.setSingleStep(0.1)
|
||||
|
||||
dots_grid.addWidget(self.dotdia_label, 1, 0)
|
||||
dots_grid.addWidget(self.dot_dia_entry, 1, 1)
|
||||
|
||||
# Dot spacing #
|
||||
self.dotspacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.dotspacing_label.setToolTip(
|
||||
_("Distance between each two dots in Dots Grid.")
|
||||
)
|
||||
self.dot_spacing_entry = FCDoubleSpinner()
|
||||
self.dot_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.dot_spacing_entry.set_precision(self.decimals)
|
||||
self.dot_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
dots_grid.addWidget(self.dotspacing_label, 2, 0)
|
||||
dots_grid.addWidget(self.dot_spacing_entry, 2, 1)
|
||||
|
||||
# SQUARES FRAME
|
||||
self.squares_frame = QtWidgets.QFrame()
|
||||
self.squares_frame.setContentsMargins(0, 0, 0, 0)
|
||||
self.layout.addWidget(self.squares_frame)
|
||||
squares_grid = QtWidgets.QGridLayout()
|
||||
squares_grid.setColumnStretch(0, 0)
|
||||
squares_grid.setColumnStretch(1, 1)
|
||||
squares_grid.setContentsMargins(0, 0, 0, 0)
|
||||
self.squares_frame.setLayout(squares_grid)
|
||||
self.squares_frame.hide()
|
||||
|
||||
self.squares_label = QtWidgets.QLabel('<b>%s</b>:' % _("Squares Grid Parameters"))
|
||||
squares_grid.addWidget(self.squares_label, 0, 0, 1, 2)
|
||||
|
||||
# Square Size #
|
||||
self.square_size_label = QtWidgets.QLabel('%s:' % _("Size"))
|
||||
self.square_size_label.setToolTip(
|
||||
_("Square side size in Squares Grid.")
|
||||
)
|
||||
self.square_size_entry = FCDoubleSpinner()
|
||||
self.square_size_entry.set_range(0.0, 9999.9999)
|
||||
self.square_size_entry.set_precision(self.decimals)
|
||||
self.square_size_entry.setSingleStep(0.1)
|
||||
|
||||
squares_grid.addWidget(self.square_size_label, 1, 0)
|
||||
squares_grid.addWidget(self.square_size_entry, 1, 1)
|
||||
|
||||
# Squares spacing #
|
||||
self.squares_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.squares_spacing_label.setToolTip(
|
||||
_("Distance between each two squares in Squares Grid.")
|
||||
)
|
||||
self.squares_spacing_entry = FCDoubleSpinner()
|
||||
self.squares_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.squares_spacing_entry.set_precision(self.decimals)
|
||||
self.squares_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
squares_grid.addWidget(self.squares_spacing_label, 2, 0)
|
||||
squares_grid.addWidget(self.squares_spacing_entry, 2, 1)
|
||||
|
||||
# LINES FRAME
|
||||
self.lines_frame = QtWidgets.QFrame()
|
||||
self.lines_frame.setContentsMargins(0, 0, 0, 0)
|
||||
self.layout.addWidget(self.lines_frame)
|
||||
lines_grid = QtWidgets.QGridLayout()
|
||||
lines_grid.setColumnStretch(0, 0)
|
||||
lines_grid.setColumnStretch(1, 1)
|
||||
lines_grid.setContentsMargins(0, 0, 0, 0)
|
||||
self.lines_frame.setLayout(lines_grid)
|
||||
self.lines_frame.hide()
|
||||
|
||||
self.lines_label = QtWidgets.QLabel('<b>%s</b>:' % _("Lines Grid Parameters"))
|
||||
lines_grid.addWidget(self.lines_label, 0, 0, 1, 2)
|
||||
|
||||
# Square Size #
|
||||
self.line_size_label = QtWidgets.QLabel('%s:' % _("Size"))
|
||||
self.line_size_label.setToolTip(
|
||||
_("Line thickness size in Lines Grid.")
|
||||
)
|
||||
self.line_size_entry = FCDoubleSpinner()
|
||||
self.line_size_entry.set_range(0.0, 9999.9999)
|
||||
self.line_size_entry.set_precision(self.decimals)
|
||||
self.line_size_entry.setSingleStep(0.1)
|
||||
|
||||
lines_grid.addWidget(self.line_size_label, 1, 0)
|
||||
lines_grid.addWidget(self.line_size_entry, 1, 1)
|
||||
|
||||
# Lines spacing #
|
||||
self.lines_spacing_label = QtWidgets.QLabel('%s:' % _("Spacing"))
|
||||
self.lines_spacing_label.setToolTip(
|
||||
_("Distance between each two lines in Lines Grid.")
|
||||
)
|
||||
self.lines_spacing_entry = FCDoubleSpinner()
|
||||
self.lines_spacing_entry.set_range(0.0, 9999.9999)
|
||||
self.lines_spacing_entry.set_precision(self.decimals)
|
||||
self.lines_spacing_entry.setSingleStep(0.1)
|
||||
|
||||
lines_grid.addWidget(self.lines_spacing_label, 2, 0)
|
||||
lines_grid.addWidget(self.lines_spacing_entry, 2, 1)
|
||||
|
||||
# ## Insert Copper Thieving
|
||||
self.fill_button = QtWidgets.QPushButton(_("Insert Copper thieving"))
|
||||
self.fill_button.setToolTip(
|
||||
|
@ -235,6 +355,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.fill_button.clicked.connect(self.execute)
|
||||
self.box_combo_type.currentIndexChanged.connect(self.on_combo_box_type)
|
||||
self.reference_radio.group_toggle_fn = self.on_toggle_reference
|
||||
self.fill_type_radio.activated_custom.connect(self.on_thieving_type)
|
||||
|
||||
def run(self, toggle=True):
|
||||
self.app.report_usage("ToolCopperThieving()")
|
||||
|
@ -276,6 +397,13 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.fill_type_radio.set_value(self.app.defaults["tools_copper_thieving_fill_type"])
|
||||
self.geo_steps_per_circle = int(self.app.defaults["tools_copper_thieving_circle_steps"])
|
||||
|
||||
self.dot_dia_entry.set_value(self.app.defaults["tools_copper_thieving_dots_dia"])
|
||||
self.dot_spacing_entry.set_value(self.app.defaults["tools_copper_thieving_dots_spacing"])
|
||||
self.square_size_entry.set_value(self.app.defaults["tools_copper_thieving_squares_size"])
|
||||
self.squares_spacing_entry.set_value(self.app.defaults["tools_copper_thieving_squares_spacing"])
|
||||
self.line_size_entry.set_value(self.app.defaults["tools_copper_thieving_lines_size"])
|
||||
self.lines_spacing_entry.set_value(self.app.defaults["tools_copper_thieving_lines_spacing"])
|
||||
|
||||
self.area_method = False
|
||||
|
||||
def on_combo_box_type(self):
|
||||
|
@ -302,6 +430,24 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.bbox_type_label.hide()
|
||||
self.bbox_type_radio.hide()
|
||||
|
||||
def on_thieving_type(self, choice):
|
||||
if choice == 'solid':
|
||||
self.dots_frame.hide()
|
||||
self.squares_frame.hide()
|
||||
self.lines_frame.hide()
|
||||
elif choice == 'dot':
|
||||
self.dots_frame.show()
|
||||
self.squares_frame.hide()
|
||||
self.lines_frame.hide()
|
||||
elif choice == 'square':
|
||||
self.dots_frame.hide()
|
||||
self.squares_frame.show()
|
||||
self.lines_frame.hide()
|
||||
else:
|
||||
self.dots_frame.hide()
|
||||
self.squares_frame.hide()
|
||||
self.lines_frame.show()
|
||||
|
||||
def execute(self):
|
||||
self.app.call_source = "copper_thieving_tool"
|
||||
|
||||
|
@ -330,8 +476,8 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(e)))
|
||||
return "Could not retrieve object: %s" % self.obj_name
|
||||
|
||||
self.on_copper_fill(
|
||||
fill_obj=self.grb_object,
|
||||
self.on_copper_thieving(
|
||||
thieving_obj=self.grb_object,
|
||||
c_val=self.clearance_val,
|
||||
margin=self.margin_val
|
||||
)
|
||||
|
@ -363,8 +509,8 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), bound_obj_name))
|
||||
return "Could not retrieve object: %s. Error: %s" % (bound_obj_name, str(e))
|
||||
|
||||
self.on_copper_fill(
|
||||
fill_obj=self.grb_object,
|
||||
self.on_copper_thieving(
|
||||
thieving_obj=self.grb_object,
|
||||
ref_obj=self.ref_obj,
|
||||
c_val=self.clearance_val,
|
||||
margin=self.margin_val
|
||||
|
@ -445,8 +591,8 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
if not isinstance(self.sel_rect, Iterable):
|
||||
self.sel_rect = [self.sel_rect]
|
||||
|
||||
self.on_copper_fill(
|
||||
fill_obj=self.grb_object,
|
||||
self.on_copper_thieving(
|
||||
thieving_obj=self.grb_object,
|
||||
ref_obj=self.sel_rect,
|
||||
c_val=self.clearance_val,
|
||||
margin=self.margin_val
|
||||
|
@ -497,10 +643,10 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
self.app.draw_moving_selection_shape(old_coords=(self.cursor_pos[0], self.cursor_pos[1]),
|
||||
coords=(curr_pos[0], curr_pos[1]))
|
||||
|
||||
def on_copper_fill(self, fill_obj, ref_obj=None, c_val=None, margin=None, run_threaded=True):
|
||||
def on_copper_thieving(self, thieving_obj, ref_obj=None, c_val=None, margin=None, run_threaded=True):
|
||||
"""
|
||||
|
||||
:param fill_obj:
|
||||
:param thieving_obj:
|
||||
:param ref_obj:
|
||||
:param c_val:
|
||||
:param margin:
|
||||
|
@ -527,6 +673,14 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
if margin is None:
|
||||
margin = float(self.app.defaults["tools_copperfill_margin"])
|
||||
|
||||
fill_type = self.fill_type_radio.get_value()
|
||||
dot_dia = self.dot_dia_entry.get_value()
|
||||
dot_spacing = self.dot_spacing_entry.get_value()
|
||||
square_size = self.square_size_entry.get_value()
|
||||
square_spacing = self.squares_spacing_entry.get_value()
|
||||
line_size = self.line_size_entry.get_value()
|
||||
line_spacing = self.lines_spacing_entry.get_value()
|
||||
|
||||
# make sure that the source object solid geometry is an Iterable
|
||||
if not isinstance(self.grb_object.solid_geometry, Iterable):
|
||||
self.grb_object.solid_geometry = [self.grb_object.solid_geometry]
|
||||
|
@ -584,11 +738,11 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
|
||||
try:
|
||||
if ref_obj is None or ref_obj == 'itself':
|
||||
working_obj = fill_obj
|
||||
working_obj = thieving_obj
|
||||
else:
|
||||
working_obj = ref_obj
|
||||
except Exception as e:
|
||||
log.debug("ToolCopperThieving.on_copper_fill() --> %s" % str(e))
|
||||
log.debug("ToolCopperThieving.on_copper_thieving() --> %s" % str(e))
|
||||
return 'fail'
|
||||
|
||||
bounding_box = None
|
||||
|
@ -622,7 +776,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
|
||||
bounding_box = env_obj.buffer(distance=margin, join_style=base.JOIN_STYLE.mitre)
|
||||
except Exception as e:
|
||||
log.debug("ToolCopperFIll.on_copper_fill() 'itself' --> %s" % str(e))
|
||||
log.debug("ToolCopperFIll.on_copper_thieving() 'itself' --> %s" % str(e))
|
||||
self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available."))
|
||||
return 'fail'
|
||||
|
||||
|
@ -631,7 +785,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
try:
|
||||
__ = iter(geo_n)
|
||||
except Exception as e:
|
||||
log.debug("ToolCopperFIll.on_copper_fill() 'area' --> %s" % str(e))
|
||||
log.debug("ToolCopperFIll.on_copper_thieving() 'area' --> %s" % str(e))
|
||||
geo_n = [geo_n]
|
||||
|
||||
geo_buff_list = []
|
||||
|
@ -650,7 +804,7 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
try:
|
||||
__ = iter(geo_n)
|
||||
except Exception as e:
|
||||
log.debug("ToolCopperFIll.on_copper_fill() 'box' --> %s" % str(e))
|
||||
log.debug("ToolCopperFIll.on_copper_thieving() 'box' --> %s" % str(e))
|
||||
geo_n = [geo_n]
|
||||
|
||||
geo_buff_list = []
|
||||
|
@ -672,7 +826,20 @@ class ToolCopperThieving(FlatCAMTool):
|
|||
log.debug("Copper Thieving Tool. Finished creating areas to fill with copper.")
|
||||
|
||||
self.app.inform.emit(_("Copper Thieving Tool. Appending new geometry and buffering."))
|
||||
new_solid_geometry = bounding_box.difference(clearance_geometry)
|
||||
|
||||
# #########################################################################################
|
||||
# ########## Generate filling geometry. ###################################################
|
||||
# #########################################################################################
|
||||
|
||||
if fill_type == 'solid':
|
||||
new_solid_geometry = bounding_box.difference(clearance_geometry)
|
||||
elif fill_type == 'dots':
|
||||
dot_geo = Point((0, 0)).buffer(dot_dia / 2.0)
|
||||
try:
|
||||
for bb in bounding_box:
|
||||
pass
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
geo_list = self.grb_object.solid_geometry
|
||||
if isinstance(self.grb_object.solid_geometry, MultiPolygon):
|
||||
|
|
|
@ -45,6 +45,8 @@ class DblSidedTool(FlatCAMTool):
|
|||
# ## Grid Layout
|
||||
grid_lay = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid_lay)
|
||||
grid_lay.setColumnStretch(0, 1)
|
||||
grid_lay.setColumnStretch(1, 0)
|
||||
|
||||
# ## Gerber Object to mirror
|
||||
self.gerber_object_combo = QtWidgets.QComboBox()
|
||||
|
@ -53,9 +55,7 @@ class DblSidedTool(FlatCAMTool):
|
|||
self.gerber_object_combo.setCurrentIndex(1)
|
||||
|
||||
self.botlay_label = QtWidgets.QLabel("<b>%s:</b>" % _("GERBER"))
|
||||
self.botlay_label.setToolTip(
|
||||
"Gerber to be mirrored."
|
||||
)
|
||||
self.botlay_label.setToolTip('%s.' % _("Gerber to be mirrored"))
|
||||
|
||||
self.mirror_gerber_button = QtWidgets.QPushButton(_("Mirror"))
|
||||
self.mirror_gerber_button.setToolTip(
|
||||
|
@ -77,9 +77,7 @@ class DblSidedTool(FlatCAMTool):
|
|||
self.exc_object_combo.setCurrentIndex(1)
|
||||
|
||||
self.excobj_label = QtWidgets.QLabel("<b>%s:</b>" % _("EXCELLON"))
|
||||
self.excobj_label.setToolTip(
|
||||
_("Excellon Object to be mirrored.")
|
||||
)
|
||||
self.excobj_label.setToolTip(_("Excellon Object to be mirrored."))
|
||||
|
||||
self.mirror_exc_button = QtWidgets.QPushButton(_("Mirror"))
|
||||
self.mirror_exc_button.setToolTip(
|
||||
|
@ -126,9 +124,8 @@ class DblSidedTool(FlatCAMTool):
|
|||
self.mirror_axis = 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).")
|
||||
)
|
||||
self.mirax_label.setToolTip(_("Mirror vertically (X) or horizontally (Y)."))
|
||||
|
||||
# grid_lay.addRow("Mirror Axis:", self.mirror_axis)
|
||||
self.empty_lb1 = QtWidgets.QLabel("")
|
||||
grid_lay1.addWidget(self.empty_lb1, 6, 0)
|
||||
|
@ -154,6 +151,8 @@ class DblSidedTool(FlatCAMTool):
|
|||
# ## Grid Layout
|
||||
grid_lay2 = QtWidgets.QGridLayout()
|
||||
self.layout.addLayout(grid_lay2)
|
||||
grid_lay2.setColumnStretch(0, 1)
|
||||
grid_lay2.setColumnStretch(1, 0)
|
||||
|
||||
# ## Point/Box
|
||||
self.point_box_container = QtWidgets.QVBoxLayout()
|
||||
|
|
Loading…
Reference in New Issue