GerberExpPrefGroupUI.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. from PyQt5 import QtWidgets, QtCore
  2. from PyQt5.QtCore import QSettings
  3. from appGUI.GUIElements import RadioSet, FCSpinner
  4. from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
  5. import gettext
  6. import appTranslation as fcTranslate
  7. import builtins
  8. fcTranslate.apply_language('strings')
  9. if '_' not in builtins.__dict__:
  10. _ = gettext.gettext
  11. settings = QSettings("Open Source", "FlatCAM")
  12. if settings.contains("machinist"):
  13. machinist_setting = settings.value('machinist', type=int)
  14. else:
  15. machinist_setting = 0
  16. class GerberExpPrefGroupUI(OptionsGroupUI):
  17. def __init__(self, decimals=4, parent=None):
  18. super(GerberExpPrefGroupUI, self).__init__(self, parent=parent)
  19. self.setTitle(str(_("Gerber Export")))
  20. self.decimals = decimals
  21. # Plot options
  22. self.export_options_label = QtWidgets.QLabel("<b>%s:</b>" % _("Export Options"))
  23. self.export_options_label.setToolTip(
  24. _("The parameters set here are used in the file exported\n"
  25. "when using the File -> Export -> Export Gerber menu entry.")
  26. )
  27. self.layout.addWidget(self.export_options_label)
  28. form = QtWidgets.QFormLayout()
  29. self.layout.addLayout(form)
  30. # Gerber Units
  31. self.gerber_units_label = QtWidgets.QLabel('%s:' % _('Units'))
  32. self.gerber_units_label.setToolTip(
  33. _("The units used in the Gerber file.")
  34. )
  35. self.gerber_units_radio = RadioSet([{'label': _('Inch'), 'value': 'IN'},
  36. {'label': _('mm'), 'value': 'MM'}])
  37. self.gerber_units_radio.setToolTip(
  38. _("The units used in the Gerber file.")
  39. )
  40. form.addRow(self.gerber_units_label, self.gerber_units_radio)
  41. # Gerber format
  42. self.digits_label = QtWidgets.QLabel("%s:" % _("Int/Decimals"))
  43. self.digits_label.setToolTip(
  44. _("The number of digits in the whole part of the number\n"
  45. "and in the fractional part of the number.")
  46. )
  47. hlay1 = QtWidgets.QHBoxLayout()
  48. self.format_whole_entry = FCSpinner()
  49. self.format_whole_entry.set_range(0, 9)
  50. self.format_whole_entry.set_step(1)
  51. self.format_whole_entry.setWrapping(True)
  52. self.format_whole_entry.setMinimumWidth(30)
  53. self.format_whole_entry.setToolTip(
  54. _("This numbers signify the number of digits in\n"
  55. "the whole part of Gerber coordinates.")
  56. )
  57. hlay1.addWidget(self.format_whole_entry, QtCore.Qt.AlignLeft)
  58. gerber_separator_label = QtWidgets.QLabel(':')
  59. gerber_separator_label.setFixedWidth(5)
  60. hlay1.addWidget(gerber_separator_label, QtCore.Qt.AlignLeft)
  61. self.format_dec_entry = FCSpinner()
  62. self.format_dec_entry.set_range(0, 9)
  63. self.format_dec_entry.set_step(1)
  64. self.format_dec_entry.setWrapping(True)
  65. self.format_dec_entry.setMinimumWidth(30)
  66. self.format_dec_entry.setToolTip(
  67. _("This numbers signify the number of digits in\n"
  68. "the decimal part of Gerber coordinates.")
  69. )
  70. hlay1.addWidget(self.format_dec_entry, QtCore.Qt.AlignLeft)
  71. hlay1.addStretch()
  72. form.addRow(self.digits_label, hlay1)
  73. # Gerber Zeros
  74. self.zeros_label = QtWidgets.QLabel('%s:' % _('Zeros'))
  75. self.zeros_label.setAlignment(QtCore.Qt.AlignLeft)
  76. self.zeros_label.setToolTip(
  77. _("This sets the type of Gerber zeros.\n"
  78. "If LZ then Leading Zeros are removed and\n"
  79. "Trailing Zeros are kept.\n"
  80. "If TZ is checked then Trailing Zeros are removed\n"
  81. "and Leading Zeros are kept.")
  82. )
  83. self.zeros_radio = RadioSet([{'label': _('LZ'), 'value': 'L'},
  84. {'label': _('TZ'), 'value': 'T'}])
  85. self.zeros_radio.setToolTip(
  86. _("This sets the type of Gerber zeros.\n"
  87. "If LZ then Leading Zeros are removed and\n"
  88. "Trailing Zeros are kept.\n"
  89. "If TZ is checked then Trailing Zeros are removed\n"
  90. "and Leading Zeros are kept.")
  91. )
  92. form.addRow(self.zeros_label, self.zeros_radio)
  93. self.layout.addStretch()