예제 #1
0
 def __init_username_jobname_widget__(self, parent=None):
     self.__username_jobname_widget = QFrame(parent)
     self.__username_jobname_widget.setSizePolicy(QSizePolicy.Maximum,
                                                  QSizePolicy.Maximum)
     username_label = QLabel("Username",
                             parent=self.__username_jobname_widget)
     username_edit = QLineEdit(parent=self.__username_jobname_widget)
     username_edit.setText(self.dlp_controller.username)
     username_edit.textChanged.connect(self.dlp_controller.set_username)
     jobname_label = QLabel("Print Job Name",
                            parent=self.__username_jobname_widget)
     jobname_edit = QLineEdit(parent=self.__username_jobname_widget)
     jobname_edit.setText(self.dlp_controller.print_job_name)
     jobname_edit.textChanged.connect(self.dlp_controller.set_printjob_name)
     etc = self.dlp_controller.evaluate_time_estimate()
     self.etc_label = QLabel(
         "ETC: " +
         QDateTime.fromTime_t(etc / 1000.0).toUTC().toString('hh:mm:ss'),
         self.__username_jobname_widget)
     self.dlp_controller.etc_updated_signal.connect(
         self.update_time_estimate)
     username_jobname_layout = QHBoxLayout(self.__username_jobname_widget)
     username_jobname_layout.addWidget(self.etc_label)
     username_jobname_layout.addWidget(username_label)
     username_jobname_layout.addWidget(username_edit)
     username_jobname_layout.addWidget(jobname_label)
     username_jobname_layout.addWidget(jobname_edit)
     self.__username_jobname_widget.setLayout(username_jobname_layout)
예제 #2
0
 def update_time_estimate(self, etc_ms):
     self.etc_label.setText(
         "ETC: " +
         QDateTime.fromTime_t(etc_ms / 1000.0).toUTC().toString('hh:mm:ss'))
예제 #3
0
    def prepare_next_layer(self):
        try:
            estimated_time_ms = self.evaluate_time_estimate(self.current_layer)
            self.print_text_signal.emit("ETC: " + QDateTime.fromTime_t(
                estimated_time_ms / 1000.0).toUTC().toString('hh:mm:ss'))
            self.__projector_controller.clear_image()
            if not DEBUG_MODE_ON:
                if not self.__projector_controller.set_amplitude(0):
                    self.stop_printing_process()
                    return
            # self.__projector_controller.set_projector_amplitude(0)
            move_building_plate = True
            if self.current_layer < len(self.support_file_names):
                self.current_file_name = self.support_file_names[
                    self.current_layer]
                self.current_thickness = self.support_thickness
                is_burning_layer = self.current_layer < self.support_burn_layers
                if is_burning_layer:
                    self.current_amplitude = self.support_burn_amplitude
                    self.current_exposure = self.support_burn_exposure
                else:
                    self.current_amplitude = self.support_amplitude
                    self.current_exposure = self.support_exposure

            elif self.current_layer < self.number_of_layers:
                self.current_file_name = self.features_file_names[
                    self.current_layer - len(self.support_file_names)]
                self.current_thickness = self.features_thickness
                burning_layers_threshold = len(
                    self.support_file_names) + self.features_burn_layers
                is_burning_layer = self.current_layer < burning_layers_threshold

                if is_burning_layer:
                    self.current_amplitude = self.features_burn_amplitude
                    self.current_exposure = self.features_burn_exposure
                elif self.incremental_exposure:
                    if self.fixed_layer and self.current_layer > burning_layers_threshold:
                        move_building_plate = False
                    self.current_amplitude = self.features_amplitude
                    self.current_exposure = self.starting_incremental_exposure + \
                                        (self.current_layer - burning_layers_threshold) * self.incremental_step_exposure
                elif self.incremental_thickness:
                    self.current_thickness = self.starting_incremental_thickness + \
                                         (self.current_layer - burning_layers_threshold) * self.incremental_step_thickness
                    self.current_amplitude = self.features_amplitude
                    self.current_exposure = self.features_exposure
                elif self.incremental_amplitude:
                    if self.fixed_layer and self.current_layer > burning_layers_threshold:
                        move_building_plate = False
                    self.current_amplitude = self.starting_incremental_amplitude + \
                                         (self.current_layer - burning_layers_threshold) * self.incremental_step_amplitude
                    print(self.current_amplitude)
                    self.current_exposure = self.features_exposure
                else:
                    self.current_amplitude = self.features_amplitude
                    self.current_exposure = self.features_exposure
            else:
                self.print_text_signal.emit("...printing process ended!")
                self.print_status = "SUCCESS"
                self.save_current_parameters()
                if not DEBUG_MODE_ON:
                    self.__motor_controller.home_building_plate()
                self.is_printing = False
                self.reactivate_parameters_signal.emit()
                return
            # self.print_text_signal.emit("Preparing next layer")

            if move_building_plate:
                if DEBUG_MODE_ON:
                    self.__motor_controller.reposition_next_layer(0)
                else:
                    self.__motor_controller.reposition_next_layer(
                        self.current_thickness)
            else:
                self.project_next_layer()
        except Exception as e:
            self.print_status = "FAILED"
            self.error_message = str(e)
            self.save_current_parameters()
            self.print_text_signal.emit("PRINTING PROCESS FAILED!")
            self.stop_printing_process(save_parameters=False)
            print(e)