- in Solderpast Plugin fixed the GCode generation; make sure that if no object is selected then the first Gerber object is autoselected

- in Solderpaste Plugin fixed the CNCJob plotting
- in Solderpaste Plugin added a new parameter 'Margin' which allows reducing how much solderpaste is added and therefore adding a space between the solderpaste and the pad boundary
- all CNCJob objects generated by the Solderpaste plugin now have the GCode saved as source_code which can be saved also from the CNCJob object context menu, and edited
This commit is contained in:
Marius Stanciu
2022-04-20 14:35:39 +03:00
committed by Marius
parent a56f794fbc
commit de8fd2cceb
6 changed files with 103 additions and 47 deletions

View File

@@ -575,6 +575,7 @@ class PreferencesUIManager(QtCore.QObject):
# SolderPaste Dispensing Tool
"tools_solderpaste_tools": self.ui.plugin_pref_form.tools_solderpaste_group.nozzle_tool_dia_entry,
"tools_solderpaste_new": self.ui.plugin_pref_form.tools_solderpaste_group.addtool_entry,
"tools_solderpaste_margin": self.ui.plugin_pref_form.tools_solderpaste_group.margin_entry,
"tools_solderpaste_z_start": self.ui.plugin_pref_form.tools_solderpaste_group.z_start_entry,
"tools_solderpaste_z_dispense": self.ui.plugin_pref_form.tools_solderpaste_group.z_dispense_entry,
"tools_solderpaste_z_stop": self.ui.plugin_pref_form.tools_solderpaste_group.z_stop_entry,

View File

@@ -60,8 +60,23 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.addtool_entry.set_range(0.0000001, 10000.0000)
self.addtool_entry.setSingleStep(0.1)
param_grid.addWidget(self.addtool_entry_lbl, 1, 0)
param_grid.addWidget(self.addtool_entry, 1, 1)
param_grid.addWidget(self.addtool_entry_lbl, 2, 0)
param_grid.addWidget(self.addtool_entry, 2, 1)
# Margin
self.margin_label = FCLabel('%s:' % _("Margin"))
self.margin_label.setToolTip('%s %s' % (
_("Offset from the boundary."),
_("Fraction of tool diameter.")
)
)
self.margin_entry = FCDoubleSpinner(suffix='%')
self.margin_entry.set_range(-100.0000, 100.0000)
self.margin_entry.set_precision(self.decimals)
self.margin_entry.setSingleStep(0.1)
param_grid.addWidget(self.margin_label, 4, 0)
param_grid.addWidget(self.margin_entry, 4, 1)
# Z dispense start
self.z_start_entry = FCDoubleSpinner()
@@ -73,8 +88,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.z_start_label.setToolTip(
_("The height (Z) when solder paste dispensing starts.")
)
param_grid.addWidget(self.z_start_label, 2, 0)
param_grid.addWidget(self.z_start_entry, 2, 1)
param_grid.addWidget(self.z_start_label, 6, 0)
param_grid.addWidget(self.z_start_entry, 6, 1)
# Z dispense
self.z_dispense_entry = FCDoubleSpinner()
@@ -86,8 +101,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.z_dispense_label.setToolTip(
_("The height (Z) when doing solder paste dispensing.")
)
param_grid.addWidget(self.z_dispense_label, 3, 0)
param_grid.addWidget(self.z_dispense_entry, 3, 1)
param_grid.addWidget(self.z_dispense_label, 8, 0)
param_grid.addWidget(self.z_dispense_entry, 8, 1)
# Z dispense stop
self.z_stop_entry = FCDoubleSpinner()
@@ -99,8 +114,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.z_stop_label.setToolTip(
_("The height (Z) when solder paste dispensing stops.")
)
param_grid.addWidget(self.z_stop_label, 4, 0)
param_grid.addWidget(self.z_stop_entry, 4, 1)
param_grid.addWidget(self.z_stop_label, 10, 0)
param_grid.addWidget(self.z_stop_entry, 101, 1)
# Z travel
self.z_travel_entry = FCDoubleSpinner()
@@ -113,8 +128,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("The height (Z) for travel between pads\n"
"(without dispensing solder paste).")
)
param_grid.addWidget(self.z_travel_label, 5, 0)
param_grid.addWidget(self.z_travel_entry, 5, 1)
param_grid.addWidget(self.z_travel_label, 12, 0)
param_grid.addWidget(self.z_travel_entry, 12, 1)
# Z toolchange location
self.z_toolchange_entry = FCDoubleSpinner()
@@ -126,8 +141,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.z_toolchange_label.setToolTip(
_("The height (Z) for tool (nozzle) change.")
)
param_grid.addWidget(self.z_toolchange_label, 6, 0)
param_grid.addWidget(self.z_toolchange_entry, 6, 1)
param_grid.addWidget(self.z_toolchange_label, 14, 0)
param_grid.addWidget(self.z_toolchange_entry, 14, 1)
# X,Y Toolchange location
self.xy_toolchange_entry = NumericalEvalTupleEntry(border_color='#0069A9')
@@ -136,8 +151,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("The X,Y location for tool (nozzle) change.\n"
"The format is (x, y) where x and y are real numbers.")
)
param_grid.addWidget(self.xy_toolchange_label, 7, 0)
param_grid.addWidget(self.xy_toolchange_entry, 7, 1)
param_grid.addWidget(self.xy_toolchange_label, 16, 0)
param_grid.addWidget(self.xy_toolchange_entry, 16, 1)
# Feedrate X-Y
self.frxy_entry = FCDoubleSpinner()
@@ -149,8 +164,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
self.frxy_label.setToolTip(
_("Feedrate (speed) while moving on the X-Y plane.")
)
param_grid.addWidget(self.frxy_label, 8, 0)
param_grid.addWidget(self.frxy_entry, 8, 1)
param_grid.addWidget(self.frxy_label, 18, 0)
param_grid.addWidget(self.frxy_entry, 18, 1)
# Feedrate Z
self.frz_entry = FCDoubleSpinner()
@@ -163,8 +178,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("Feedrate (speed) while moving vertically\n"
"(on Z plane).")
)
param_grid.addWidget(self.frz_label, 9, 0)
param_grid.addWidget(self.frz_entry, 9, 1)
param_grid.addWidget(self.frz_label, 20, 0)
param_grid.addWidget(self.frz_entry, 20, 1)
# Feedrate Z Dispense
self.frz_dispense_entry = FCDoubleSpinner()
@@ -177,8 +192,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("Feedrate (speed) while moving up vertically\n"
"to Dispense position (on Z plane).")
)
param_grid.addWidget(self.frz_dispense_label, 10, 0)
param_grid.addWidget(self.frz_dispense_entry, 10, 1)
param_grid.addWidget(self.frz_dispense_label, 22, 0)
param_grid.addWidget(self.frz_dispense_entry, 22, 1)
# Spindle Speed Forward
self.speedfwd_entry = FCSpinner()
@@ -190,25 +205,25 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("The dispenser speed while pushing solder paste\n"
"through the dispenser nozzle.")
)
param_grid.addWidget(self.speedfwd_label, 11, 0)
param_grid.addWidget(self.speedfwd_entry, 11, 1)
param_grid.addWidget(self.speedfwd_label, 24, 0)
param_grid.addWidget(self.speedfwd_entry, 24, 1)
# Dwell Forward
self.dwellfwd_entry = FCDoubleSpinner()
self.dwellfwd_entry.set_precision(self.decimals)
self.dwellfwd_entry.set_range(0.0000001, 10000.0000)
self.dwellfwd_entry.set_range(0.0000, 10000.0000)
self.dwellfwd_entry.setSingleStep(0.1)
self.dwellfwd_label = FCLabel('%s:' % _("Dwell FWD"))
self.dwellfwd_label.setToolTip(
_("Pause after solder dispensing.")
)
param_grid.addWidget(self.dwellfwd_label, 12, 0)
param_grid.addWidget(self.dwellfwd_entry, 12, 1)
param_grid.addWidget(self.dwellfwd_label, 26, 0)
param_grid.addWidget(self.dwellfwd_entry, 26, 1)
# Spindle Speed Reverse
self.speedrev_entry = FCSpinner()
self.speedrev_entry.set_range(0, 999999)
self.speedrev_entry.set_range(0, 1000000)
self.speedrev_entry.set_step(1000)
self.speedrev_label = FCLabel('%s:' % _("Spindle Speed REV"))
@@ -216,13 +231,13 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("The dispenser speed while retracting solder paste\n"
"through the dispenser nozzle.")
)
param_grid.addWidget(self.speedrev_label, 13, 0)
param_grid.addWidget(self.speedrev_entry, 13, 1)
param_grid.addWidget(self.speedrev_label, 28, 0)
param_grid.addWidget(self.speedrev_entry, 28, 1)
# Dwell Reverse
self.dwellrev_entry = FCDoubleSpinner()
self.dwellrev_entry.set_precision(self.decimals)
self.dwellrev_entry.set_range(0.0000001, 10000.0000)
self.dwellrev_entry.set_range(0.0000, 10000.0000)
self.dwellrev_entry.setSingleStep(0.1)
self.dwellrev_label = FCLabel('%s:' % _("Dwell REV"))
@@ -230,8 +245,8 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
_("Pause after solder paste dispenser retracted,\n"
"to allow pressure equilibrium.")
)
param_grid.addWidget(self.dwellrev_label, 14, 0)
param_grid.addWidget(self.dwellrev_entry, 14, 1)
param_grid.addWidget(self.dwellrev_label, 30, 0)
param_grid.addWidget(self.dwellrev_entry, 30, 1)
# Preprocessors
pp_label = FCLabel('%s:' % _('Preprocessor'))
@@ -246,7 +261,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
for it in range(self.pp_combo.count()):
self.pp_combo.setItemData(it, self.pp_combo.itemText(it), QtCore.Qt.ItemDataRole.ToolTipRole)
param_grid.addWidget(pp_label, 15, 0)
param_grid.addWidget(self.pp_combo, 15, 1)
param_grid.addWidget(pp_label, 32, 0)
param_grid.addWidget(self.pp_combo, 32, 1)
self.layout.addStretch()