ToolsSolderpastePrefGroupUI.py 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. from PyQt5 import QtWidgets
  2. from flatcamGUI.GUIElements import FCEntry, FCDoubleSpinner, FCSpinner, FCComboBox
  3. from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
  4. class ToolsSolderpastePrefGroupUI(OptionsGroupUI):
  5. def __init__(self, decimals=4, parent=None):
  6. super(ToolsSolderpastePrefGroupUI, self).__init__(self)
  7. self.setTitle(str(_("SolderPaste Tool Options")))
  8. self.decimals = decimals
  9. # ## Solder Paste Dispensing
  10. self.solderpastelabel = QtWidgets.QLabel("<b>%s:</b>" % _("Parameters"))
  11. self.solderpastelabel.setToolTip(
  12. _("A tool to create GCode for dispensing\n"
  13. "solder paste onto a PCB.")
  14. )
  15. self.layout.addWidget(self.solderpastelabel)
  16. grid0 = QtWidgets.QGridLayout()
  17. self.layout.addLayout(grid0)
  18. # Nozzle Tool Diameters
  19. nozzletdlabel = QtWidgets.QLabel('<b><font color="green">%s:</font></b>' % _('Tools Dia'))
  20. nozzletdlabel.setToolTip(
  21. _("Diameters of the tools, separated by comma.\n"
  22. "The value of the diameter has to use the dot decimals separator.\n"
  23. "Valid values: 0.3, 1.0")
  24. )
  25. self.nozzle_tool_dia_entry = FCEntry()
  26. grid0.addWidget(nozzletdlabel, 0, 0)
  27. grid0.addWidget(self.nozzle_tool_dia_entry, 0, 1)
  28. # New Nozzle Tool Dia
  29. self.addtool_entry_lbl = QtWidgets.QLabel('<b>%s:</b>' % _('New Nozzle Dia'))
  30. self.addtool_entry_lbl.setToolTip(
  31. _("Diameter for the new Nozzle tool to add in the Tool Table")
  32. )
  33. self.addtool_entry = FCDoubleSpinner()
  34. self.addtool_entry.set_precision(self.decimals)
  35. self.addtool_entry.set_range(0.0000001, 9999.9999)
  36. self.addtool_entry.setSingleStep(0.1)
  37. grid0.addWidget(self.addtool_entry_lbl, 1, 0)
  38. grid0.addWidget(self.addtool_entry, 1, 1)
  39. # Z dispense start
  40. self.z_start_entry = FCDoubleSpinner()
  41. self.z_start_entry.set_precision(self.decimals)
  42. self.z_start_entry.set_range(0.0000001, 9999.9999)
  43. self.z_start_entry.setSingleStep(0.1)
  44. self.z_start_label = QtWidgets.QLabel('%s:' % _("Z Dispense Start"))
  45. self.z_start_label.setToolTip(
  46. _("The height (Z) when solder paste dispensing starts.")
  47. )
  48. grid0.addWidget(self.z_start_label, 2, 0)
  49. grid0.addWidget(self.z_start_entry, 2, 1)
  50. # Z dispense
  51. self.z_dispense_entry = FCDoubleSpinner()
  52. self.z_dispense_entry.set_precision(self.decimals)
  53. self.z_dispense_entry.set_range(0.0000001, 9999.9999)
  54. self.z_dispense_entry.setSingleStep(0.1)
  55. self.z_dispense_label = QtWidgets.QLabel('%s:' % _("Z Dispense"))
  56. self.z_dispense_label.setToolTip(
  57. _("The height (Z) when doing solder paste dispensing.")
  58. )
  59. grid0.addWidget(self.z_dispense_label, 3, 0)
  60. grid0.addWidget(self.z_dispense_entry, 3, 1)
  61. # Z dispense stop
  62. self.z_stop_entry = FCDoubleSpinner()
  63. self.z_stop_entry.set_precision(self.decimals)
  64. self.z_stop_entry.set_range(0.0000001, 9999.9999)
  65. self.z_stop_entry.setSingleStep(0.1)
  66. self.z_stop_label = QtWidgets.QLabel('%s:' % _("Z Dispense Stop"))
  67. self.z_stop_label.setToolTip(
  68. _("The height (Z) when solder paste dispensing stops.")
  69. )
  70. grid0.addWidget(self.z_stop_label, 4, 0)
  71. grid0.addWidget(self.z_stop_entry, 4, 1)
  72. # Z travel
  73. self.z_travel_entry = FCDoubleSpinner()
  74. self.z_travel_entry.set_precision(self.decimals)
  75. self.z_travel_entry.set_range(0.0000001, 9999.9999)
  76. self.z_travel_entry.setSingleStep(0.1)
  77. self.z_travel_label = QtWidgets.QLabel('%s:' % _("Z Travel"))
  78. self.z_travel_label.setToolTip(
  79. _("The height (Z) for travel between pads\n"
  80. "(without dispensing solder paste).")
  81. )
  82. grid0.addWidget(self.z_travel_label, 5, 0)
  83. grid0.addWidget(self.z_travel_entry, 5, 1)
  84. # Z toolchange location
  85. self.z_toolchange_entry = FCDoubleSpinner()
  86. self.z_toolchange_entry.set_precision(self.decimals)
  87. self.z_toolchange_entry.set_range(0.0000001, 9999.9999)
  88. self.z_toolchange_entry.setSingleStep(0.1)
  89. self.z_toolchange_label = QtWidgets.QLabel('%s:' % _("Z Toolchange"))
  90. self.z_toolchange_label.setToolTip(
  91. _("The height (Z) for tool (nozzle) change.")
  92. )
  93. grid0.addWidget(self.z_toolchange_label, 6, 0)
  94. grid0.addWidget(self.z_toolchange_entry, 6, 1)
  95. # X,Y Toolchange location
  96. self.xy_toolchange_entry = FCEntry()
  97. self.xy_toolchange_label = QtWidgets.QLabel('%s:' % _("Toolchange X-Y"))
  98. self.xy_toolchange_label.setToolTip(
  99. _("The X,Y location for tool (nozzle) change.\n"
  100. "The format is (x, y) where x and y are real numbers.")
  101. )
  102. grid0.addWidget(self.xy_toolchange_label, 7, 0)
  103. grid0.addWidget(self.xy_toolchange_entry, 7, 1)
  104. # Feedrate X-Y
  105. self.frxy_entry = FCDoubleSpinner()
  106. self.frxy_entry.set_precision(self.decimals)
  107. self.frxy_entry.set_range(0.0000001, 99999.9999)
  108. self.frxy_entry.setSingleStep(0.1)
  109. self.frxy_label = QtWidgets.QLabel('%s:' % _("Feedrate X-Y"))
  110. self.frxy_label.setToolTip(
  111. _("Feedrate (speed) while moving on the X-Y plane.")
  112. )
  113. grid0.addWidget(self.frxy_label, 8, 0)
  114. grid0.addWidget(self.frxy_entry, 8, 1)
  115. # Feedrate Z
  116. self.frz_entry = FCDoubleSpinner()
  117. self.frz_entry.set_precision(self.decimals)
  118. self.frz_entry.set_range(0.0000001, 99999.9999)
  119. self.frz_entry.setSingleStep(0.1)
  120. self.frz_label = QtWidgets.QLabel('%s:' % _("Feedrate Z"))
  121. self.frz_label.setToolTip(
  122. _("Feedrate (speed) while moving vertically\n"
  123. "(on Z plane).")
  124. )
  125. grid0.addWidget(self.frz_label, 9, 0)
  126. grid0.addWidget(self.frz_entry, 9, 1)
  127. # Feedrate Z Dispense
  128. self.frz_dispense_entry = FCDoubleSpinner()
  129. self.frz_dispense_entry.set_precision(self.decimals)
  130. self.frz_dispense_entry.set_range(0.0000001, 99999.9999)
  131. self.frz_dispense_entry.setSingleStep(0.1)
  132. self.frz_dispense_label = QtWidgets.QLabel('%s:' % _("Feedrate Z Dispense"))
  133. self.frz_dispense_label.setToolTip(
  134. _("Feedrate (speed) while moving up vertically\n"
  135. "to Dispense position (on Z plane).")
  136. )
  137. grid0.addWidget(self.frz_dispense_label, 10, 0)
  138. grid0.addWidget(self.frz_dispense_entry, 10, 1)
  139. # Spindle Speed Forward
  140. self.speedfwd_entry = FCSpinner()
  141. self.speedfwd_entry.set_range(0, 99999)
  142. self.speedfwd_entry.set_step(1000)
  143. self.speedfwd_label = QtWidgets.QLabel('%s:' % _("Spindle Speed FWD"))
  144. self.speedfwd_label.setToolTip(
  145. _("The dispenser speed while pushing solder paste\n"
  146. "through the dispenser nozzle.")
  147. )
  148. grid0.addWidget(self.speedfwd_label, 11, 0)
  149. grid0.addWidget(self.speedfwd_entry, 11, 1)
  150. # Dwell Forward
  151. self.dwellfwd_entry = FCDoubleSpinner()
  152. self.dwellfwd_entry.set_precision(self.decimals)
  153. self.dwellfwd_entry.set_range(0.0000001, 9999.9999)
  154. self.dwellfwd_entry.setSingleStep(0.1)
  155. self.dwellfwd_label = QtWidgets.QLabel('%s:' % _("Dwell FWD"))
  156. self.dwellfwd_label.setToolTip(
  157. _("Pause after solder dispensing.")
  158. )
  159. grid0.addWidget(self.dwellfwd_label, 12, 0)
  160. grid0.addWidget(self.dwellfwd_entry, 12, 1)
  161. # Spindle Speed Reverse
  162. self.speedrev_entry = FCSpinner()
  163. self.speedrev_entry.set_range(0, 999999)
  164. self.speedrev_entry.set_step(1000)
  165. self.speedrev_label = QtWidgets.QLabel('%s:' % _("Spindle Speed REV"))
  166. self.speedrev_label.setToolTip(
  167. _("The dispenser speed while retracting solder paste\n"
  168. "through the dispenser nozzle.")
  169. )
  170. grid0.addWidget(self.speedrev_label, 13, 0)
  171. grid0.addWidget(self.speedrev_entry, 13, 1)
  172. # Dwell Reverse
  173. self.dwellrev_entry = FCDoubleSpinner()
  174. self.dwellrev_entry.set_precision(self.decimals)
  175. self.dwellrev_entry.set_range(0.0000001, 9999.9999)
  176. self.dwellrev_entry.setSingleStep(0.1)
  177. self.dwellrev_label = QtWidgets.QLabel('%s:' % _("Dwell REV"))
  178. self.dwellrev_label.setToolTip(
  179. _("Pause after solder paste dispenser retracted,\n"
  180. "to allow pressure equilibrium.")
  181. )
  182. grid0.addWidget(self.dwellrev_label, 14, 0)
  183. grid0.addWidget(self.dwellrev_entry, 14, 1)
  184. # Preprocessors
  185. pp_label = QtWidgets.QLabel('%s:' % _('Preprocessor'))
  186. pp_label.setToolTip(
  187. _("Files that control the GCode generation.")
  188. )
  189. self.pp_combo = FCComboBox()
  190. grid0.addWidget(pp_label, 15, 0)
  191. grid0.addWidget(self.pp_combo, 15, 1)
  192. self.layout.addStretch()