- PEP8 correction in flatcamTools

- merged the Brazilian-portuguese language from a pull request made by Carlos Stein
This commit is contained in:
Marius Stanciu 2019-07-16 16:22:20 +03:00 committed by Marius
parent d34a17a81d
commit e6153298bc
9 changed files with 283 additions and 261 deletions

View File

@ -9,6 +9,11 @@ CAD program, and create G-Code for Isolation routing.
=================================================
16.07.2019
- PEP8 correction in flatcamTools
- merged the Brazilian-portuguese language from a pull request made by Carlos Stein
15.07.2019
- some PEP8 corrections

View File

@ -207,8 +207,8 @@ class ToolPDF(FlatCAMTool):
while True:
self.parsing_promises.remove(short_name)
time.sleep(0.1)
except:
pass
except Exception as e:
log.debug("ToolPDF.open_pdf() --> %s" % str(e))
self.app.inform.emit(_("[success] Opened: %s") % filename)
def layer_rendering_as_excellon(self, filename, ap_dict, layer_nr):
@ -264,8 +264,8 @@ class ToolPDF(FlatCAMTool):
with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)):
ret = self.app.new_object("excellon", outname, obj_init, autoselected=False)
if ret == 'fail':
ret_val = self.app.new_object("excellon", outname, obj_init, autoselected=False)
if ret_val == 'fail':
self.app.inform.emit(_('[ERROR_NOTCL] Open PDF file failed.'))
return
# Register recent file
@ -300,7 +300,7 @@ class ToolPDF(FlatCAMTool):
global_clear_geo.append(geo_el['clear'])
if global_clear_geo:
solid= []
solid = []
for apid in grb_obj.apertures:
if 'geometry' in grb_obj.apertures[apid]:
for elem in grb_obj.apertures[apid]['geometry']:
@ -360,7 +360,7 @@ class ToolPDF(FlatCAMTool):
try:
self.check_thread.stop()
except:
except Exception as e:
pass
self.check_thread.setInterval(check_period)
@ -458,7 +458,7 @@ class ToolPDF(FlatCAMTool):
# on stroke color change we create a new apertures dictionary and store the old one in a storage from where
# it will be transformed into Gerber object
old_color = [None, None ,None]
old_color = [None, None, None]
# signal that we have clear geometry and the geometry will be added to a special layer_nr = 0
flag_clear_geo = False
@ -681,10 +681,8 @@ class ToolPDF(FlatCAMTool):
current_subpath = 'rectangle'
x = (float(match.group(1)) + offset_geo[0]) * self.point_to_unit_factor * scale_geo[0]
y = (float(match.group(2)) + offset_geo[1]) * self.point_to_unit_factor * scale_geo[1]
width = (float(match.group(3)) + offset_geo[0]) * \
self.point_to_unit_factor * scale_geo[0]
height = (float(match.group(4)) + offset_geo[1]) * \
self.point_to_unit_factor * scale_geo[1]
width = (float(match.group(3)) + offset_geo[0]) * self.point_to_unit_factor * scale_geo[0]
height = (float(match.group(4)) + offset_geo[1]) * self.point_to_unit_factor * scale_geo[1]
pt1 = (x, y)
pt2 = (x+width, y)
pt3 = (x+width, y+height)
@ -758,7 +756,8 @@ class ToolPDF(FlatCAMTool):
for subp in path['lines']:
geo = copy(subp)
try:
geo = LineString(geo).buffer((float(applied_size) / 2), resolution=self.step_per_circles)
geo = LineString(geo).buffer((float(applied_size) / 2),
resolution=self.step_per_circles)
path_geo.append(geo)
except ValueError:
pass

View File

@ -7,14 +7,14 @@
# ########################################################## ##
from FlatCAMTool import FlatCAMTool
from copy import copy,deepcopy
from copy import copy, deepcopy
from ObjectCollection import *
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext
@ -65,7 +65,7 @@ class ToolPaint(FlatCAMTool, Gerber):
form_layout.addRow(self.object_label, self.object_combo)
form_layout.addRow(e_lab_0)
#### Tools ## ##
# ### Tools ## ##
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('Tools Table'))
self.tools_table_label.setToolTip(
_("Tools pool from which the algorithm\n"
@ -110,7 +110,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.empty_label = QtWidgets.QLabel('')
self.tools_box.addWidget(self.empty_label)
#### Add a new Tool ## ##
# ### Add a new Tool ## ##
hlay = QtWidgets.QHBoxLayout()
self.tools_box.addLayout(hlay)
@ -148,7 +148,7 @@ class ToolPaint(FlatCAMTool, Gerber):
grid2.addWidget(self.addtool_btn, 0, 0)
# grid2.addWidget(self.copytool_btn, 0, 1)
grid2.addWidget(self.deltool_btn, 0,2)
grid2.addWidget(self.deltool_btn, 0, 2)
self.empty_label_0 = QtWidgets.QLabel('')
self.tools_box.addWidget(self.empty_label_0)
@ -314,7 +314,6 @@ class ToolPaint(FlatCAMTool, Gerber):
self.generate_paint_button.clicked.connect(self.on_paint_button_click)
self.selectmethod_combo.activated_custom.connect(self.on_radio_selection)
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
@ -522,8 +521,8 @@ class ToolPaint(FlatCAMTool, Gerber):
try:
self.tools_table.itemChanged.disconnect()
except:
pass
except Exception as e:
log.debug("ToolPaint.on_tool_add() --> %s" % str(e))
if dia:
tool_dia = dia
@ -586,10 +585,12 @@ class ToolPaint(FlatCAMTool, Gerber):
self.build_ui()
def on_tool_edit(self):
old_tool_dia = ''
try:
self.tools_table.itemChanged.disconnect()
except:
pass
except Exception as e:
log.debug("ToolPaint.on_tool_edit() --> %s" % str(e))
tool_dias = []
for k, v in self.paint_tools.items():
@ -624,7 +625,8 @@ class ToolPaint(FlatCAMTool, Gerber):
break
restore_dia_item = self.tools_table.item(row, 1)
restore_dia_item.setText(str(old_tool_dia))
self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table."))
self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. "
"New diameter value is already in the Tool Table."))
self.build_ui()
# def on_tool_copy(self, all=None):
@ -685,7 +687,8 @@ class ToolPaint(FlatCAMTool, Gerber):
def on_tool_delete(self, rows_to_delete=None, all=None):
try:
self.tools_table.itemChanged.disconnect()
except:
except Exception as e:
log.debug("ToolPaint.on_tool_delete() --> %s" % str(e))
pass
deleted_tools_list = []
@ -760,7 +763,8 @@ class ToolPaint(FlatCAMTool, Gerber):
# Get source object.
try:
self.paint_obj = self.app.collection.get_by_name(str(self.obj_name))
except:
except Exception as e:
log.debug("ToolPaint.on_paint_button_click() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name)
return
@ -774,7 +778,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.app.inform.emit(_("[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ..."))
return 'Fail'
o_name = '%s_multitool_paint' % (self.obj_name)
o_name = '%s_multitool_paint' % self.obj_name
if select_method == "all":
self.paint_poly_all(self.paint_obj,
@ -811,15 +815,13 @@ class ToolPaint(FlatCAMTool, Gerber):
self.app.plotcanvas.vis_disconnect('mouse_press', self.app.on_mouse_click_over_plot)
self.app.plotcanvas.vis_connect('mouse_press', doit)
def paint_poly(self, obj, inside_pt, tooldia, overlap,
outname=None, connect=True,
contour=True):
def paint_poly(self, obj, inside_pt, tooldia, overlap, outname=None, connect=True, contour=True):
"""
Paints a polygon selected by clicking on its interior.
Note:
* The margin is taken directly from the form.
:param obj: painted object
:param inside_pt: [x, y]
:param tooldia: Diameter of the painting tool
:param overlap: Overlap of the tool between passes.
@ -864,7 +866,7 @@ class ToolPaint(FlatCAMTool, Gerber):
def paint_p(polyg):
if paint_method == "seed":
# Type(cp) == FlatCAMRTreeStorage | None
cp = self.clear_polygon2(polyg,
cpoly = self.clear_polygon2(polyg,
tooldia=tooldia,
steps_per_circle=self.app.defaults["geometry_circle_steps"],
overlap=overlap,
@ -873,7 +875,7 @@ class ToolPaint(FlatCAMTool, Gerber):
elif paint_method == "lines":
# Type(cp) == FlatCAMRTreeStorage | None
cp = self.clear_polygon3(polyg,
cpoly = self.clear_polygon3(polyg,
tooldia=tooldia,
steps_per_circle=self.app.defaults["geometry_circle_steps"],
overlap=overlap,
@ -882,16 +884,16 @@ class ToolPaint(FlatCAMTool, Gerber):
else:
# Type(cp) == FlatCAMRTreeStorage | None
cp = self.clear_polygon(polyg,
cpoly = self.clear_polygon(polyg,
tooldia=tooldia,
steps_per_circle=self.app.defaults["geometry_circle_steps"],
overlap=overlap,
contour=contour,
connect=connect)
if cp is not None:
geo_obj.solid_geometry += list(cp.get_objects())
return cp
if cpoly is not None:
geo_obj.solid_geometry += list(cpoly.get_objects())
return cpoly
else:
self.app.inform.emit(_('[ERROR_NOTCL] Geometry could not be painted completely'))
return None
@ -975,12 +977,11 @@ class ToolPaint(FlatCAMTool, Gerber):
# Background
self.app.worker_task.emit({'fcn': job_thread, 'params': [self.app]})
def paint_poly_all(self, obj, overlap, outname=None,
connect=True, contour=True):
def paint_poly_all(self, obj, overlap, outname=None, connect=True, contour=True):
"""
Paints all polygons in this object.
:param tooldia:
:param obj: painted object
:param overlap:
:param outname:
:param connect: Connect lines to avoid tool lifts.
@ -1055,6 +1056,7 @@ class ToolPaint(FlatCAMTool, Gerber):
def gen_paintarea(geo_obj, app_obj):
assert isinstance(geo_obj, FlatCAMGeometry), \
"Initializer expected a FlatCAMGeometry, got %s" % type(geo_obj)
tool_dia = None
sorted_tools = []
for row in range(self.tools_table.rowCount()):
@ -1083,7 +1085,7 @@ class ToolPaint(FlatCAMTool, Gerber):
for geo in recurse(obj.solid_geometry):
try:
#Polygons are the only really paintable geometries, lines in theory have no area to be painted
# Polygons are the only really paintable geometries, lines in theory have no area to be painted
if not isinstance(geo, Polygon):
continue
poly_buf = geo.buffer(-paint_margin)
@ -1160,6 +1162,7 @@ class ToolPaint(FlatCAMTool, Gerber):
assert isinstance(geo_obj, FlatCAMGeometry), \
"Initializer expected a FlatCAMGeometry, got %s" % type(geo_obj)
tool_dia = None
sorted_tools = []
for row in range(self.tools_table.rowCount()):
sorted_tools.append(float(self.tools_table.item(row, 1).text()))
@ -1184,6 +1187,7 @@ class ToolPaint(FlatCAMTool, Gerber):
try:
geo = Polygon(geo) if not isinstance(geo, Polygon) else geo
poly_buf = geo.buffer(-paint_margin)
cp = None
if paint_method == "standard":
# Type(cp) == FlatCAMRTreeStorage | None

View File

@ -18,9 +18,9 @@ from io import StringIO
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext
@ -56,9 +56,8 @@ class PcbWizard(FlatCAMTool):
self.excellon_label = QtWidgets.QLabel(_("Excellon file:"))
self.excellon_label.setToolTip(
_( "Load the Excellon file.\n"
_("Load the Excellon file.\n"
"Usually it has a .DRL extension")
)
self.excellon_brn = FCButton(_("Open"))
form_layout.addRow(self.excellon_label, self.excellon_brn)
@ -66,7 +65,6 @@ class PcbWizard(FlatCAMTool):
self.inf_label = QtWidgets.QLabel(_("INF file:"))
self.inf_label.setToolTip(
_("Load the INF file.")
)
self.inf_btn = FCButton(_("Open"))
form_layout.addRow(self.inf_label, self.inf_btn)
@ -96,7 +94,7 @@ class PcbWizard(FlatCAMTool):
self.int_entry.set_range(1, 10)
self.int_label = QtWidgets.QLabel(_("Int. digits:"))
self.int_label.setToolTip(
_( "The number of digits for the integral part of the coordinates.")
_("The number of digits for the integral part of the coordinates.")
)
form_layout1.addRow(self.int_label, self.int_entry)
@ -283,18 +281,17 @@ class PcbWizard(FlatCAMTool):
"""
self.app.log.debug("on_load_excellon_click()")
filter = "Excellon Files(*.DRL *.DRD *.TXT);;All Files (*.*)"
_filter = "Excellon Files(*.DRL *.DRD *.TXT);;All Files (*.*)"
try:
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Load PcbWizard Excellon file"),
directory=self.app.get_last_folder(),
filter=filter)
filter=_filter)
except TypeError:
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Load PcbWizard Excellon file"),
filter=filter)
filter=_filter)
filename = str(filename)
if filename == "":
self.app.inform.emit(_("Open cancelled."))
else:
@ -307,14 +304,14 @@ class PcbWizard(FlatCAMTool):
"""
self.app.log.debug("on_load_inf_click()")
filter = "INF Files(*.INF);;All Files (*.*)"
_filter = "INF Files(*.INF);;All Files (*.*)"
try:
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Load PcbWizard INF file"),
directory=self.app.get_last_folder(),
filter=filter)
filter=_filter)
except TypeError:
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Load PcbWizard INF file"),
filter=filter)
filter=_filter)
filename = str(filename)
@ -338,7 +335,7 @@ class PcbWizard(FlatCAMTool):
match = tool_re.search(eline)
if match:
tool =int( match.group(1))
tool = int(match.group(1))
dia = float(match.group(2))
# if dia < 0.1:
# # most likely the file is in INCH
@ -425,7 +422,8 @@ class PcbWizard(FlatCAMTool):
app_obj.log.debug("Could not import Excellon object.")
app_obj.progress.emit(0)
return "fail"
except:
except Exception as e:
app_obj.log.debug("PcbWizard.on_import_excellon().obj_init() %s" % str(e))
msg = _("[ERROR_NOTCL] An internal error has occurred. See shell.\n")
msg += app_obj.traceback.format_exc()
app_obj.inform.emit(msg)
@ -449,8 +447,8 @@ class PcbWizard(FlatCAMTool):
# Object name
name = self.outname
ret = self.app.new_object("excellon", name, obj_init, autoselected=False)
if ret == 'fail':
ret_val = self.app.new_object("excellon", name, obj_init, autoselected=False)
if ret_val == 'fail':
self.app.inform.emit(_('[ERROR_NOTCL] Import Excellon file failed.'))
return

View File

@ -13,9 +13,9 @@ from FlatCAMObj import *
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext
@ -62,7 +62,7 @@ class Properties(FlatCAMTool):
self.treeWidget.setSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Expanding)
self.vlay.addWidget(self.treeWidget)
self.vlay.setStretch(0,0)
self.vlay.setStretch(0, 0)
def run(self, toggle=True):
self.app.report_usage("ToolProperties()")
@ -130,9 +130,14 @@ class Properties(FlatCAMTool):
self.addChild(obj_type, ['Object Type:', ('%s' % (obj.kind.capitalize()))], True)
try:
self.addChild(obj_type, ['Geo Type:', ('%s' % ({False: "Single-Geo", True: "Multi-Geo"}[obj.multigeo]))], True)
self.addChild(obj_type,
['Geo Type:',
('%s' % ({False: "Single-Geo", True: "Multi-Geo"}[obj.multigeo]))
],
True
)
except Exception as e:
pass
log.debug("Properties.addItems() --> %s" % str(e))
self.addChild(obj_name, [obj.options['name']])
@ -163,7 +168,10 @@ class Properties(FlatCAMTool):
'in': 'Inch',
'mm': 'Metric'
}
[str(self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().lower())]], True)
[str(self.app.ui.general_defaults_form.general_app_group.units_radio.get_value().lower())]
],
True
)
for option in obj.options:
if option is 'name':

View File

@ -15,9 +15,9 @@ import html
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext

View File

@ -26,9 +26,9 @@ from io import StringIO
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext
@ -66,7 +66,7 @@ class SolderPaste(FlatCAMTool):
)
obj_form_layout.addRow(self.object_label, self.obj_combo)
#### Tools ## ##
# ### Tools ## ##
self.tools_table_label = QtWidgets.QLabel('<b>%s</b>' % _('Tools Table'))
self.tools_table_label.setToolTip(
_("Tools pool from which the algorithm\n"
@ -91,10 +91,10 @@ class SolderPaste(FlatCAMTool):
"with solder paste, the app will issue a warning message box.")
)
self.tools_table.horizontalHeaderItem(1).setToolTip(
_( "Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
_("Nozzle tool Diameter. It's value (in current FlatCAM units)\n"
"is the width of the solder paste dispensed."))
#### Add a new Tool ## ##
# ### Add a new Tool ## ##
hlay_tools = QtWidgets.QHBoxLayout()
self.layout.addLayout(hlay_tools)
@ -120,7 +120,7 @@ class SolderPaste(FlatCAMTool):
self.deltool_btn = QtWidgets.QPushButton(_('Delete'))
self.deltool_btn.setToolTip(
_( "Delete a selection of tools in the Tool Table\n"
_("Delete a selection of tools in the Tool Table\n"
"by first selecting a row(s) in the Tool Table.")
)
@ -174,7 +174,6 @@ class SolderPaste(FlatCAMTool):
self.z_dispense_label = QtWidgets.QLabel(_("Z Dispense:"))
self.z_dispense_label.setToolTip(
_("The height (Z) when doing solder paste dispensing.")
)
self.gcode_form_layout.addRow(self.z_dispense_label, self.z_dispense_entry)
@ -190,7 +189,7 @@ class SolderPaste(FlatCAMTool):
self.z_travel_entry = FCEntry()
self.z_travel_label = QtWidgets.QLabel(_("Z Travel:"))
self.z_travel_label.setToolTip(
_( "The height (Z) for travel between pads\n"
_("The height (Z) for travel between pads\n"
"(without dispensing solder paste).")
)
self.gcode_form_layout.addRow(self.z_travel_label, self.z_travel_entry)
@ -199,7 +198,7 @@ class SolderPaste(FlatCAMTool):
self.z_toolchange_entry = FCEntry()
self.z_toolchange_label = QtWidgets.QLabel(_("Z Toolchange:"))
self.z_toolchange_label.setToolTip(
_( "The height (Z) for tool (nozzle) change.")
_("The height (Z) for tool (nozzle) change.")
)
self.gcode_form_layout.addRow(self.z_toolchange_label, self.z_toolchange_entry)
@ -216,7 +215,7 @@ class SolderPaste(FlatCAMTool):
self.frxy_entry = FCEntry()
self.frxy_label = QtWidgets.QLabel(_("Feedrate X-Y:"))
self.frxy_label.setToolTip(
_( "Feedrate (speed) while moving on the X-Y plane.")
_("Feedrate (speed) while moving on the X-Y plane.")
)
self.gcode_form_layout.addRow(self.frxy_label, self.frxy_entry)
@ -233,7 +232,7 @@ class SolderPaste(FlatCAMTool):
self.frz_dispense_entry = FCEntry()
self.frz_dispense_label = QtWidgets.QLabel(_("Feedrate Z Dispense:"))
self.frz_dispense_label.setToolTip(
_( "Feedrate (speed) while moving up vertically\n"
_("Feedrate (speed) while moving up vertically\n"
" to Dispense position (on Z plane).")
)
self.gcode_form_layout.addRow(self.frz_dispense_label, self.frz_dispense_entry)
@ -242,7 +241,7 @@ class SolderPaste(FlatCAMTool):
self.speedfwd_entry = FCEntry()
self.speedfwd_label = QtWidgets.QLabel(_("Spindle Speed FWD:"))
self.speedfwd_label.setToolTip(
_( "The dispenser speed while pushing solder paste\n"
_("The dispenser speed while pushing solder paste\n"
"through the dispenser nozzle.")
)
self.gcode_form_layout.addRow(self.speedfwd_label, self.speedfwd_entry)
@ -259,7 +258,7 @@ class SolderPaste(FlatCAMTool):
self.speedrev_entry = FCEntry()
self.speedrev_label = QtWidgets.QLabel(_("Spindle Speed REV:"))
self.speedrev_label.setToolTip(
_( "The dispenser speed while retracting solder paste\n"
_("The dispenser speed while retracting solder paste\n"
"through the dispenser nozzle.")
)
self.gcode_form_layout.addRow(self.speedrev_label, self.speedrev_entry)
@ -289,7 +288,7 @@ class SolderPaste(FlatCAMTool):
self.solder_gcode_btn = QtWidgets.QPushButton(_("Generate GCode"))
self.solder_gcode_btn.setToolTip(
_( "Generate GCode for Solder Paste dispensing\n"
_("Generate GCode for Solder Paste dispensing\n"
"on PCB pads.")
)
@ -300,7 +299,6 @@ class SolderPaste(FlatCAMTool):
self.generation_box.setContentsMargins(0, 0, 0, 0)
self.generation_frame.setLayout(self.generation_box)
# ## Buttons
grid2 = QtWidgets.QGridLayout()
self.generation_box.addLayout(grid2)
@ -325,7 +323,7 @@ class SolderPaste(FlatCAMTool):
self.geo_object_label = QtWidgets.QLabel(_("Geo Result:"))
self.geo_object_label.setToolTip(
_( "Geometry Solder Paste object.\n"
_("Geometry Solder Paste object.\n"
"The name of the object has to end in:\n"
"'_solderpaste' as a protection.")
)
@ -336,7 +334,7 @@ class SolderPaste(FlatCAMTool):
step3_lbl = QtWidgets.QLabel("<b>%s</b>" % _('STEP 3:'))
step3_lbl.setToolTip(
_( "Third step is to select a solder paste dispensing geometry,\n"
_("Third step is to select a solder paste dispensing geometry,\n"
"and then generate a CNCJob object.\n\n"
"REMEMBER: if you want to create a CNCJob with new parameters,\n"
"first you need to generate a geometry with those new params,\n"
@ -358,7 +356,7 @@ class SolderPaste(FlatCAMTool):
self.cnc_object_label = QtWidgets.QLabel(_("CNC Result:"))
self.cnc_object_label.setToolTip(
_( "CNCJob Solder paste object.\n"
_("CNCJob Solder paste object.\n"
"In order to enable the GCode save section,\n"
"the name of the object has to end in:\n"
"'_solderpaste' as a protection.")
@ -376,13 +374,13 @@ class SolderPaste(FlatCAMTool):
self.solder_gcode_save_btn = QtWidgets.QPushButton(_("Save GCode"))
self.solder_gcode_save_btn.setToolTip(
_( "Save the generated GCode for Solder Paste dispensing\n"
_("Save the generated GCode for Solder Paste dispensing\n"
"on PCB pads, to a file.")
)
step4_lbl = QtWidgets.QLabel("<b>%s</b>" % _('STEP 4:'))
step4_lbl.setToolTip(
_( "Fourth step (and last) is to select a CNCJob made from \n"
_("Fourth step (and last) is to select a CNCJob made from \n"
"a solder paste dispensing geometry, and then view/save it's GCode.")
)
@ -402,6 +400,7 @@ class SolderPaste(FlatCAMTool):
self.form_fields = {}
self.units = ''
self.name = ""
# this will be used in the combobox context menu, for delete entry
self.obj_to_be_deleted_name = ''
@ -607,7 +606,6 @@ class SolderPaste(FlatCAMTool):
if current_row < 0:
current_row = 0
# populate the form with the data from the tool associated with the row parameter
try:
tooluid = int(self.tools_table.item(current_row, 2).text())
@ -762,7 +760,8 @@ class SolderPaste(FlatCAMTool):
return
if tool_dia == 0:
self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float format."))
self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, "
"in Float format."))
return
# construct a list of all 'tooluid' in the self.tooltable_tools
@ -844,7 +843,8 @@ class SolderPaste(FlatCAMTool):
break
restore_dia_item = self.tools_table.item(row, 1)
restore_dia_item.setText(str(old_tool_dia))
self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool Table."))
self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. "
"New diameter value is already in the Tool Table."))
self.build_ui()
def on_tool_delete(self, rows_to_delete=None, all=None):
@ -964,6 +964,7 @@ class SolderPaste(FlatCAMTool):
:param name: the outname for the resulting geometry object
:param work_object: the source Gerber object from which the geometry is created
:param use_thread: use thread, True or False
:return: a Geometry type object
"""
proc = self.app.proc_container.new(_("Creating Solder Paste dispensing geometry."))
@ -1030,8 +1031,8 @@ class SolderPaste(FlatCAMTool):
for tool in sorted_tools:
offset = tool / 2
for uid, v in self.tooltable_tools.items():
if float('%.4f' % float(v['tooldia'])) == tool:
for uid, vl in self.tooltable_tools.items():
if float('%.4f' % float(vl['tooldia'])) == tool:
tooluid = int(uid)
break
@ -1064,19 +1065,19 @@ class SolderPaste(FlatCAMTool):
round_diag_2 = round(diag_2_intersect.length, 2)
if round_diag_1 == round_diag_2:
l = distance((x_min, y_min), (x_max, y_min))
length = distance((x_min, y_min), (x_max, y_min))
h = distance((x_min, y_min), (x_min, y_max))
if offset >= l / 2 or offset >= h / 2:
if offset >= length / 2 or offset >= h / 2:
pass
else:
if l > h:
if length > h:
h_half = h / 2
start = [x_min, (y_min + h_half)]
stop = [(x_min + l), (y_min + h_half)]
stop = [(x_min + length), (y_min + h_half)]
geo = LineString([start, stop])
else:
l_half = l / 2
l_half = length / 2
start = [(x_min + l_half), y_min]
stop = [(x_min + l_half), (y_min + h)]
geo = LineString([start, stop])
@ -1151,7 +1152,8 @@ class SolderPaste(FlatCAMTool):
return 'fail'
if obj.special_group != 'solder_paste_tool':
self.app.inform.emit(_("[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool geometry."))
self.app.inform.emit(_("[WARNING_NOTCL] This Geometry can't be processed. "
"NOT a solder_paste_tool geometry."))
return 'fail'
a = 0
@ -1314,7 +1316,8 @@ class SolderPaste(FlatCAMTool):
# then append the text from GCode to the text editor
try:
lines = StringIO(gcode)
except:
except Exception as e:
log.debug("ToolSolderpaste.on_view_gcode() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] No Gcode in the object..."))
return

View File

@ -155,7 +155,6 @@ class ToolSub(FlatCAMTool):
self.sub_follow_union = None
self.sub_clear_union = None
self.sub_grb_obj = None
self.sub_grb_obj_name = None
self.target_grb_obj = None
@ -172,16 +171,18 @@ class ToolSub(FlatCAMTool):
# store here the options from target_obj
self.target_options = {}
self.sub_union = []
try:
self.intersect_btn.clicked.disconnect(self.on_grb_intersection_click)
except:
pass
except Exception as e:
log.debug("ToolSub.__init__() --> %s" % str(e))
self.intersect_btn.clicked.connect(self.on_grb_intersection_click)
try:
self.intersect_geo_btn.clicked.disconnect()
except:
pass
except Exception as e:
log.debug("ToolSub.__init__() --> %s" % str(e))
self.intersect_geo_btn.clicked.connect(self.on_geo_intersection_click)
def install(self, icon=None, separator=None, **kwargs):
@ -233,7 +234,8 @@ class ToolSub(FlatCAMTool):
# Get source object.
try:
self.target_grb_obj = self.app.collection.get_by_name(self.target_grb_obj_name)
except:
except Exception as e:
log.debug("ToolSub.on_grb_intersection_click() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name)
return "Could not retrieve object: %s" % self.target_grb_obj_name
@ -245,7 +247,8 @@ class ToolSub(FlatCAMTool):
# Get source object.
try:
self.sub_grb_obj = self.app.collection.get_by_name(self.sub_grb_obj_name)
except:
except Exception as e:
log.debug("ToolSub.on_grb_intersection_click() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name)
return "Could not retrieve object: %s" % self.sub_grb_obj_name
@ -424,7 +427,8 @@ class ToolSub(FlatCAMTool):
# Get source object.
try:
self.target_geo_obj = self.app.collection.get_by_name(self.target_geo_obj_name)
except:
except Exception as e:
log.debug("ToolSub.on_geo_intersection_click() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.target_geo_obj_name)
return "Could not retrieve object: %s" % self.target_grb_obj_name
@ -436,7 +440,8 @@ class ToolSub(FlatCAMTool):
# Get source object.
try:
self.sub_geo_obj = self.app.collection.get_by_name(self.sub_geo_obj_name)
except:
except Exception as e:
log.debug("ToolSub.on_geo_intersection_click() --> %s" % str(e))
self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.sub_geo_obj_name)
return "Could not retrieve object: %s" % self.sub_geo_obj_name
@ -533,8 +538,8 @@ class ToolSub(FlatCAMTool):
geo_obj.tools = deepcopy(self.new_tools)
for tool in geo_obj.tools:
geo_obj.tools[tool]['solid_geometry'] = deepcopy(self.new_solid_geometry)
except:
pass
except Exception as e:
log.debug("ToolSub.new_geo_object() --> %s" % str(e))
with self.app.proc_container.new(_("Generating new object ...")):
ret = self.app.new_object('geometry', outname, obj_init, autoselected=False)
@ -584,7 +589,6 @@ class ToolSub(FlatCAMTool):
"""
# log.debug("checking parsing --> %s" % str(self.parsing_promises))
try:
if not self.promises:
self.check_thread.stop()
@ -615,3 +619,5 @@ class ToolSub(FlatCAMTool):
self.target_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
self.sub_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
# end of file

View File

@ -11,9 +11,9 @@ from FlatCAMObj import *
import gettext
import FlatCAMTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
import builtins
if '_' not in builtins.__dict__:
_ = gettext.gettext
@ -350,8 +350,7 @@ class ToolTransform(FlatCAMTool):
form4_layout.addRow(self.flip_ref_cb)
form4_layout.addRow(self.flip_ref_label, form4_child_1)
self.ois_flip = OptionalInputSection(self.flip_ref_cb,
[self.flip_ref_entry, self.flip_ref_button], logic=True)
self.ois_flip = OptionalInputSection(self.flip_ref_cb, [self.flip_ref_entry, self.flip_ref_button], logic=True)
self.transform_lay.addStretch()
@ -455,7 +454,7 @@ class ToolTransform(FlatCAMTool):
if self.app.defaults["tools_transform_mirror_point"]:
self.flip_ref_entry.set_value(self.app.defaults["tools_transform_mirror_point"])
else:
self.flip_ref_entry.set_value((0,0))
self.flip_ref_entry.set_value((0, 0))
def on_rotate(self):
try: