diff --git a/settings.yaml b/settings.yaml index 3bfa7b4..c0ec33a 100644 --- a/settings.yaml +++ b/settings.yaml @@ -109,6 +109,7 @@ slicing: originz: 0.0 overlapping_infill_percentage: 100.0 overlapping_infill_lid_percentage: 60.0 + random_layer_start: false planes_contact_with_nozzle: "" print_speed: 50 print_speed_layer1: 50 diff --git a/src/locales.py b/src/locales.py index 23908f7..41f3f61 100644 --- a/src/locales.py +++ b/src/locales.py @@ -91,6 +91,7 @@ class Locale: GCodeLoadingProgress = "GCode loading is in progress..." SupportsSettings = "Supports settings" MaterialShrinkage = "Material shrinkage, %:" + RandomLayerStart = "Random layer start" FlowRate = "Flow rate, %:" PressureAdvance = "Pressure advance" PressureAdvanceValue = "Pressure advance value" @@ -255,6 +256,7 @@ def __init__(self, **entries): GCodeLoadingProgress="Загрузка GCode в прогрессе...", SupportsSettings="Настройки поддержек", MaterialShrinkage="Величина усадки материала, %:", + RandomLayerStart="Спрятать шов", FlowRate="Коэффициент потока расплава, %:", PressureAdvance="Управление давлением расплава", PressureAdvanceValue="Коэффициент управления давлением", diff --git a/src/settings_widget.py b/src/settings_widget.py index b4010e6..a048846 100644 --- a/src/settings_widget.py +++ b/src/settings_widget.py @@ -62,6 +62,7 @@ class SettingsWidget(QWidget): "flow_rate", # Коэффициент потока расплава "pressure_advance_on", "pressure_advance_rate", + "random_layer_start", # TODO: add separate dummy setting to mark the beginning of supports settings "supports_on", "support_density", @@ -127,6 +128,7 @@ def __init__(self, parent=None, settings_provider: callable = None): "retraction_speed": self.locale.RetractionSpeed, "retraction_compensation": self.locale.RetractCompensationAmount, "material_shrinkage": self.locale.MaterialShrinkage, + "random_layer_start": self.locale.RandomLayerStart, # TODO: add separate dummy setting to mark the beginning of supports settings "supports_on": self.locale.SupportsOn, "support_density": self.locale.SupportDensity, @@ -888,21 +890,21 @@ def on_change(): elif name == "retraction_on": self.ensure_sett("slicing.retraction_on") - retraction_on_label = QLabel(self.locale.Retraction) - retraction_on_box = QCheckBox() + rls_on_label = QLabel(self.locale.Retraction) + rls_on_box = QCheckBox() if self.sett().slicing.retraction_on: - retraction_on_box.setCheckState(QtCore.Qt.Checked) - self.panel.addWidget(retraction_on_label, self.next_row, 1) - self.panel.addWidget(retraction_on_box, self.cur_row, 2, 1, self.col2_cells) + rls_on_box.setCheckState(QtCore.Qt.Checked) + self.panel.addWidget(rls_on_label, self.next_row, 1) + self.panel.addWidget(rls_on_box, self.cur_row, 2, 1, self.col2_cells) def on_change(): - self.sett().slicing.retraction_on = retraction_on_box.isChecked() + self.sett().slicing.retraction_on = rls_on_box.isChecked() - retraction_on_box.stateChanged.connect(on_change) + rls_on_box.stateChanged.connect(on_change) self.__elements[name] = { - "label": retraction_on_label, - "checkbox": retraction_on_box, + "label": rls_on_label, + "checkbox": rls_on_box, } elif name == "retraction_distance": @@ -1005,6 +1007,25 @@ def on_change(): "edit": material_shrinkage_value, } + elif name == "random_layer_start": + self.ensure_sett("slicing.random_layer_start") + + rls_on_label = QLabel(self.locale.RandomLayerStart) + rls_on_box = QCheckBox() + if self.sett().slicing.random_layer_start: + rls_on_box.setCheckState(QtCore.Qt.Checked) + self.panel.addWidget(rls_on_label, self.next_row, 1) + self.panel.addWidget(rls_on_box, self.cur_row, 2, 1, self.col2_cells) + + def on_change(): + self.sett().slicing.random_layer_start = rls_on_box.isChecked() + + rls_on_box.stateChanged.connect(on_change) + + self.__elements[name] = { + "label": rls_on_label, + "checkbox": rls_on_box, + } elif name == "flow_rate": self.ensure_sett("slicing.flow_rate")