mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 12:11:15 -06:00 
			
		
		
		
	Out of bed detection - Disabled GUI buttons when object outside bed
This commit is contained in:
		
							parent
							
								
									85d158525f
								
							
						
					
					
						commit
						ebb2d45761
					
				
					 2 changed files with 19 additions and 1 deletions
				
			
		|  | @ -98,6 +98,16 @@ sub new { | |||
|         $self->update; | ||||
|     }; | ||||
|      | ||||
|     # callback to enable/disable action buttons | ||||
|     my $enable_action_buttons = sub { | ||||
|         my ($enable) = @_; | ||||
|         $self->{btn_export_gcode}->Enable($enable); | ||||
|         $self->{btn_reslice}->Enable($enable); | ||||
|         $self->{btn_print}->Enable($enable); | ||||
|         $self->{btn_send_gcode}->Enable($enable); | ||||
|         $self->{btn_export_stl}->Enable($enable);     | ||||
|     }; | ||||
|      | ||||
|     # Initialize 3D plater | ||||
|     if ($Slic3r::GUI::have_OpenGL) { | ||||
|         $self->{canvas3D} = Slic3r::GUI::Plater::3D->new($self->{preview_notebook}, $self->{objects}, $self->{model}, $self->{print}, $self->{config}); | ||||
|  | @ -113,6 +123,7 @@ sub new { | |||
|         $self->{canvas3D}->set_on_decrease_objects(sub { $self->decrease() }); | ||||
|         $self->{canvas3D}->set_on_remove_object(sub { $self->remove() }); | ||||
|         $self->{canvas3D}->set_on_instances_moved($on_instances_moved); | ||||
|         $self->{canvas3D}->set_on_enable_action_buttons($enable_action_buttons); | ||||
|         $self->{canvas3D}->use_plain_shader(1); | ||||
|         $self->{canvas3D}->set_on_wipe_tower_moved(sub { | ||||
|             my ($new_pos_3f) = @_; | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ use Wx::Locale gettext => 'L'; | |||
| 
 | ||||
| __PACKAGE__->mk_accessors(qw( | ||||
|     on_arrange on_rotate_object_left on_rotate_object_right on_scale_object_uniformly | ||||
|     on_remove_object on_increase_objects on_decrease_objects)); | ||||
|     on_remove_object on_increase_objects on_decrease_objects on_enable_action_buttons)); | ||||
| 
 | ||||
| sub new { | ||||
|     my $class = shift; | ||||
|  | @ -176,6 +176,11 @@ sub set_on_model_update { | |||
|     $self->on_model_update($cb); | ||||
| } | ||||
| 
 | ||||
| sub set_on_enable_action_buttons { | ||||
|     my ($self, $cb) = @_; | ||||
|     $self->on_enable_action_buttons($cb); | ||||
| } | ||||
| 
 | ||||
| sub reload_scene { | ||||
|     my ($self, $force) = @_; | ||||
| 
 | ||||
|  | @ -217,10 +222,12 @@ sub reload_scene { | |||
|         if (!$self->{model}->fits_print_volume($self->{config})) { | ||||
|             $self->set_warning_enabled(1); | ||||
|             Slic3r::GUI::_3DScene::generate_warning_texture(L("Detected object outside print volume")); | ||||
|             $self->on_enable_action_buttons->(0) if ($self->on_enable_action_buttons); | ||||
|         } else { | ||||
|             $self->set_warning_enabled(0); | ||||
|             $self->volumes->update_outside_state($self->{config}, 1); | ||||
|             Slic3r::GUI::_3DScene::reset_warning_texture(); | ||||
|             $self->on_enable_action_buttons->(1) if ($self->on_enable_action_buttons); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri