Tools2RulesCheckPrefGroupUI.py 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. from PyQt5 import QtWidgets
  2. from flatcamGUI.GUIElements import FCCheckBox, FCDoubleSpinner
  3. from flatcamGUI.preferences.OptionsGroupUI import OptionsGroupUI
  4. class Tools2RulesCheckPrefGroupUI(OptionsGroupUI):
  5. def __init__(self, decimals=4, parent=None):
  6. super(Tools2RulesCheckPrefGroupUI, self).__init__(self)
  7. self.setTitle(str(_("Check Rules Tool Options")))
  8. self.decimals = decimals
  9. self.crlabel = QtWidgets.QLabel("<b>%s:</b>" % _("Parameters"))
  10. self.crlabel.setToolTip(
  11. _("A tool to check if Gerber files are within a set\n"
  12. "of Manufacturing Rules.")
  13. )
  14. self.layout.addWidget(self.crlabel)
  15. # Form Layout
  16. self.form_layout_1 = QtWidgets.QFormLayout()
  17. self.layout.addLayout(self.form_layout_1)
  18. # Trace size
  19. self.trace_size_cb = FCCheckBox('%s:' % _("Trace Size"))
  20. self.trace_size_cb.setToolTip(
  21. _("This checks if the minimum size for traces is met.")
  22. )
  23. self.form_layout_1.addRow(self.trace_size_cb)
  24. # Trace size value
  25. self.trace_size_entry = FCDoubleSpinner()
  26. self.trace_size_entry.set_range(0.00001, 999.99999)
  27. self.trace_size_entry.set_precision(self.decimals)
  28. self.trace_size_entry.setSingleStep(0.1)
  29. self.trace_size_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  30. self.trace_size_lbl.setToolTip(
  31. _("Minimum acceptable trace size.")
  32. )
  33. self.form_layout_1.addRow(self.trace_size_lbl, self.trace_size_entry)
  34. # Copper2copper clearance
  35. self.clearance_copper2copper_cb = FCCheckBox('%s:' % _("Copper to Copper clearance"))
  36. self.clearance_copper2copper_cb.setToolTip(
  37. _("This checks if the minimum clearance between copper\n"
  38. "features is met.")
  39. )
  40. self.form_layout_1.addRow(self.clearance_copper2copper_cb)
  41. # Copper2copper clearance value
  42. self.clearance_copper2copper_entry = FCDoubleSpinner()
  43. self.clearance_copper2copper_entry.set_range(0.00001, 999.99999)
  44. self.clearance_copper2copper_entry.set_precision(self.decimals)
  45. self.clearance_copper2copper_entry.setSingleStep(0.1)
  46. self.clearance_copper2copper_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  47. self.clearance_copper2copper_lbl.setToolTip(
  48. _("Minimum acceptable clearance value.")
  49. )
  50. self.form_layout_1.addRow(self.clearance_copper2copper_lbl, self.clearance_copper2copper_entry)
  51. # Copper2outline clearance
  52. self.clearance_copper2ol_cb = FCCheckBox('%s:' % _("Copper to Outline clearance"))
  53. self.clearance_copper2ol_cb.setToolTip(
  54. _("This checks if the minimum clearance between copper\n"
  55. "features and the outline is met.")
  56. )
  57. self.form_layout_1.addRow(self.clearance_copper2ol_cb)
  58. # Copper2outline clearance value
  59. self.clearance_copper2ol_entry = FCDoubleSpinner()
  60. self.clearance_copper2ol_entry.set_range(0.00001, 999.99999)
  61. self.clearance_copper2ol_entry.set_precision(self.decimals)
  62. self.clearance_copper2ol_entry.setSingleStep(0.1)
  63. self.clearance_copper2ol_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  64. self.clearance_copper2ol_lbl.setToolTip(
  65. _("Minimum acceptable clearance value.")
  66. )
  67. self.form_layout_1.addRow(self.clearance_copper2ol_lbl, self.clearance_copper2ol_entry)
  68. # Silkscreen2silkscreen clearance
  69. self.clearance_silk2silk_cb = FCCheckBox('%s:' % _("Silk to Silk Clearance"))
  70. self.clearance_silk2silk_cb.setToolTip(
  71. _("This checks if the minimum clearance between silkscreen\n"
  72. "features and silkscreen features is met.")
  73. )
  74. self.form_layout_1.addRow(self.clearance_silk2silk_cb)
  75. # Copper2silkscreen clearance value
  76. self.clearance_silk2silk_entry = FCDoubleSpinner()
  77. self.clearance_silk2silk_entry.set_range(0.00001, 999.99999)
  78. self.clearance_silk2silk_entry.set_precision(self.decimals)
  79. self.clearance_silk2silk_entry.setSingleStep(0.1)
  80. self.clearance_silk2silk_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  81. self.clearance_silk2silk_lbl.setToolTip(
  82. _("Minimum acceptable clearance value.")
  83. )
  84. self.form_layout_1.addRow(self.clearance_silk2silk_lbl, self.clearance_silk2silk_entry)
  85. # Silkscreen2soldermask clearance
  86. self.clearance_silk2sm_cb = FCCheckBox('%s:' % _("Silk to Solder Mask Clearance"))
  87. self.clearance_silk2sm_cb.setToolTip(
  88. _("This checks if the minimum clearance between silkscreen\n"
  89. "features and soldermask features is met.")
  90. )
  91. self.form_layout_1.addRow(self.clearance_silk2sm_cb)
  92. # Silkscreen2soldermask clearance value
  93. self.clearance_silk2sm_entry = FCDoubleSpinner()
  94. self.clearance_silk2sm_entry.set_range(0.00001, 999.99999)
  95. self.clearance_silk2sm_entry.set_precision(self.decimals)
  96. self.clearance_silk2sm_entry.setSingleStep(0.1)
  97. self.clearance_silk2sm_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  98. self.clearance_silk2sm_lbl.setToolTip(
  99. _("Minimum acceptable clearance value.")
  100. )
  101. self.form_layout_1.addRow(self.clearance_silk2sm_lbl, self.clearance_silk2sm_entry)
  102. # Silk2outline clearance
  103. self.clearance_silk2ol_cb = FCCheckBox('%s:' % _("Silk to Outline Clearance"))
  104. self.clearance_silk2ol_cb.setToolTip(
  105. _("This checks if the minimum clearance between silk\n"
  106. "features and the outline is met.")
  107. )
  108. self.form_layout_1.addRow(self.clearance_silk2ol_cb)
  109. # Silk2outline clearance value
  110. self.clearance_silk2ol_entry = FCDoubleSpinner()
  111. self.clearance_silk2ol_entry.set_range(0.00001, 999.99999)
  112. self.clearance_silk2ol_entry.set_precision(self.decimals)
  113. self.clearance_silk2ol_entry.setSingleStep(0.1)
  114. self.clearance_silk2ol_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  115. self.clearance_silk2ol_lbl.setToolTip(
  116. _("Minimum acceptable clearance value.")
  117. )
  118. self.form_layout_1.addRow(self.clearance_silk2ol_lbl, self.clearance_silk2ol_entry)
  119. # Soldermask2soldermask clearance
  120. self.clearance_sm2sm_cb = FCCheckBox('%s:' % _("Minimum Solder Mask Sliver"))
  121. self.clearance_sm2sm_cb.setToolTip(
  122. _("This checks if the minimum clearance between soldermask\n"
  123. "features and soldermask features is met.")
  124. )
  125. self.form_layout_1.addRow(self.clearance_sm2sm_cb)
  126. # Soldermask2soldermask clearance value
  127. self.clearance_sm2sm_entry = FCDoubleSpinner()
  128. self.clearance_sm2sm_entry.set_range(0.00001, 999.99999)
  129. self.clearance_sm2sm_entry.set_precision(self.decimals)
  130. self.clearance_sm2sm_entry.setSingleStep(0.1)
  131. self.clearance_sm2sm_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  132. self.clearance_sm2sm_lbl.setToolTip(
  133. _("Minimum acceptable clearance value.")
  134. )
  135. self.form_layout_1.addRow(self.clearance_sm2sm_lbl, self.clearance_sm2sm_entry)
  136. # Ring integrity check
  137. self.ring_integrity_cb = FCCheckBox('%s:' % _("Minimum Annular Ring"))
  138. self.ring_integrity_cb.setToolTip(
  139. _("This checks if the minimum copper ring left by drilling\n"
  140. "a hole into a pad is met.")
  141. )
  142. self.form_layout_1.addRow(self.ring_integrity_cb)
  143. # Ring integrity value
  144. self.ring_integrity_entry = FCDoubleSpinner()
  145. self.ring_integrity_entry.set_range(0.00001, 999.99999)
  146. self.ring_integrity_entry.set_precision(self.decimals)
  147. self.ring_integrity_entry.setSingleStep(0.1)
  148. self.ring_integrity_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  149. self.ring_integrity_lbl.setToolTip(
  150. _("Minimum acceptable ring value.")
  151. )
  152. self.form_layout_1.addRow(self.ring_integrity_lbl, self.ring_integrity_entry)
  153. self.form_layout_1.addRow(QtWidgets.QLabel(""))
  154. # Hole2Hole clearance
  155. self.clearance_d2d_cb = FCCheckBox('%s:' % _("Hole to Hole Clearance"))
  156. self.clearance_d2d_cb.setToolTip(
  157. _("This checks if the minimum clearance between a drill hole\n"
  158. "and another drill hole is met.")
  159. )
  160. self.form_layout_1.addRow(self.clearance_d2d_cb)
  161. # Hole2Hole clearance value
  162. self.clearance_d2d_entry = FCDoubleSpinner()
  163. self.clearance_d2d_entry.set_range(0.00001, 999.99999)
  164. self.clearance_d2d_entry.set_precision(self.decimals)
  165. self.clearance_d2d_entry.setSingleStep(0.1)
  166. self.clearance_d2d_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  167. self.clearance_d2d_lbl.setToolTip(
  168. _("Minimum acceptable drill size.")
  169. )
  170. self.form_layout_1.addRow(self.clearance_d2d_lbl, self.clearance_d2d_entry)
  171. # Drill holes size check
  172. self.drill_size_cb = FCCheckBox('%s:' % _("Hole Size"))
  173. self.drill_size_cb.setToolTip(
  174. _("This checks if the drill holes\n"
  175. "sizes are above the threshold.")
  176. )
  177. self.form_layout_1.addRow(self.drill_size_cb)
  178. # Drile holes value
  179. self.drill_size_entry = FCDoubleSpinner()
  180. self.drill_size_entry.set_range(0.00001, 999.99999)
  181. self.drill_size_entry.set_precision(self.decimals)
  182. self.drill_size_entry.setSingleStep(0.1)
  183. self.drill_size_lbl = QtWidgets.QLabel('%s:' % _("Min value"))
  184. self.drill_size_lbl.setToolTip(
  185. _("Minimum acceptable clearance value.")
  186. )
  187. self.form_layout_1.addRow(self.drill_size_lbl, self.drill_size_entry)
  188. self.layout.addStretch()