mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	First take on restoring the old 3D path preview before the G-code preview is ready
This commit is contained in:
		
							parent
							
								
									ff3ae40aeb
								
							
						
					
					
						commit
						7f51b07f69
					
				
					 1 changed files with 40 additions and 31 deletions
				
			
		| 
						 | 
					@ -17,6 +17,8 @@ sub new {
 | 
				
			||||||
    my $self = $class->SUPER::new($parent, -1, wxDefaultPosition);
 | 
					    my $self = $class->SUPER::new($parent, -1, wxDefaultPosition);
 | 
				
			||||||
    $self->{config} = $config;
 | 
					    $self->{config} = $config;
 | 
				
			||||||
    $self->{number_extruders} = 1;
 | 
					    $self->{number_extruders} = 1;
 | 
				
			||||||
 | 
					    # Show by feature type by default.
 | 
				
			||||||
 | 
					    $self->{preferred_color_mode} = 0;
 | 
				
			||||||
    $self->auto_zoom(1);
 | 
					    $self->auto_zoom(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # init GUI elements
 | 
					    # init GUI elements
 | 
				
			||||||
| 
						 | 
					@ -60,7 +62,7 @@ sub new {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    my $label_view_type = $self->{label_view_type} = Wx::StaticText->new($self, -1, "View");
 | 
					    my $label_view_type = $self->{label_view_type} = Wx::StaticText->new($self, -1, "View");
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    my $choice_view_type = Wx::Choice->new($self, -1);
 | 
					    my $choice_view_type = $self->{choice_view_type} = Wx::Choice->new($self, -1);
 | 
				
			||||||
    $choice_view_type->Append("Feature type");
 | 
					    $choice_view_type->Append("Feature type");
 | 
				
			||||||
    $choice_view_type->Append("Height");
 | 
					    $choice_view_type->Append("Height");
 | 
				
			||||||
    $choice_view_type->Append("Width");
 | 
					    $choice_view_type->Append("Width");
 | 
				
			||||||
| 
						 | 
					@ -192,6 +194,7 @@ sub new {
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    EVT_CHOICE($self, $choice_view_type, sub {
 | 
					    EVT_CHOICE($self, $choice_view_type, sub {
 | 
				
			||||||
        my $selection = $choice_view_type->GetCurrentSelection();
 | 
					        my $selection = $choice_view_type->GetCurrentSelection();
 | 
				
			||||||
 | 
					        $self->{preferred_color_mode} = $selection;
 | 
				
			||||||
        $self->gcode_preview_data->set_type($selection);
 | 
					        $self->gcode_preview_data->set_type($selection);
 | 
				
			||||||
        $self->auto_zoom(0);
 | 
					        $self->auto_zoom(0);
 | 
				
			||||||
        $self->reload_print;
 | 
					        $self->reload_print;
 | 
				
			||||||
| 
						 | 
					@ -240,17 +243,17 @@ sub new {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    # sets colors for gcode preview extrusion roles
 | 
					    # sets colors for gcode preview extrusion roles
 | 
				
			||||||
    my @extrusion_roles_colors = (
 | 
					    my @extrusion_roles_colors = (
 | 
				
			||||||
                                    'Perimeter'                  => 'FF0000',
 | 
					                                    'Perimeter'                  => 'FFA500',
 | 
				
			||||||
                                    'External perimeter'         => '00FF00',
 | 
					                                    'External perimeter'         => 'FFFF66',
 | 
				
			||||||
                                    'Overhang perimeter'         => '0000FF',
 | 
					                                    'Overhang perimeter'         => '0000FF',
 | 
				
			||||||
                                    'Internal infill'            => 'FFFF00',
 | 
					                                    'Internal infill'            => 'FF0000',
 | 
				
			||||||
                                    'Solid infill'               => 'FF00FF',
 | 
					                                    'Solid infill'               => 'CD00CD',
 | 
				
			||||||
                                    'Top solid infill'           => '00FFFF',
 | 
					                                    'Top solid infill'           => 'FF3333',
 | 
				
			||||||
                                    'Bridge infill'              => '7F7F7F',
 | 
					                                    'Bridge infill'              => '9999FF',
 | 
				
			||||||
                                    'Gap fill'                   => 'FFFFFF',
 | 
					                                    'Gap fill'                   => 'FFFFFF',
 | 
				
			||||||
                                    'Skirt'                      => '7F0000',
 | 
					                                    'Skirt'                      => '7F0000',
 | 
				
			||||||
                                    'Support material'           => '007F00',
 | 
					                                    'Support material'           => '00FF00',
 | 
				
			||||||
                                    'Support material interface' => '00007F',
 | 
					                                    'Support material interface' => '008000',
 | 
				
			||||||
                                    'Wipe tower'                 => 'B3E3AB',
 | 
					                                    'Wipe tower'                 => 'B3E3AB',
 | 
				
			||||||
                                 );
 | 
					                                 );
 | 
				
			||||||
    $self->gcode_preview_data->set_extrusion_paths_colors(\@extrusion_roles_colors);
 | 
					    $self->gcode_preview_data->set_extrusion_paths_colors(\@extrusion_roles_colors);
 | 
				
			||||||
| 
						 | 
					@ -345,31 +348,32 @@ sub load_print {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Collect colors per extruder.
 | 
					    # Collect colors per extruder.
 | 
				
			||||||
    my @colors = ();
 | 
					    my @colors = ();
 | 
				
			||||||
    my @extruder_colors = @{$self->{config}->extruder_colour};
 | 
					    if (! $self->gcode_preview_data->empty() || $self->gcode_preview_data->type == 4) {
 | 
				
			||||||
    my @filament_colors = @{$self->{config}->filament_colour};
 | 
					        my @extruder_colors = @{$self->{config}->extruder_colour};
 | 
				
			||||||
    for (my $i = 0; $i <= $#extruder_colors; $i += 1) {
 | 
					        my @filament_colors = @{$self->{config}->filament_colour};
 | 
				
			||||||
        my $color = $extruder_colors[$i];
 | 
					        for (my $i = 0; $i <= $#extruder_colors; $i += 1) {
 | 
				
			||||||
        $color = $filament_colors[$i] if (! defined($color) || $color !~ m/^#[[:xdigit:]]{6}/);
 | 
					            my $color = $extruder_colors[$i];
 | 
				
			||||||
        $color = '#FFFFFF' if (! defined($color) || $color !~ m/^#[[:xdigit:]]{6}/);
 | 
					            $color = $filament_colors[$i] if (! defined($color) || $color !~ m/^#[[:xdigit:]]{6}/);
 | 
				
			||||||
        push @colors, $color;
 | 
					            $color = '#FFFFFF' if (! defined($color) || $color !~ m/^#[[:xdigit:]]{6}/);
 | 
				
			||||||
 | 
					            push @colors, $color;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ($self->IsShown) {
 | 
					    if ($self->IsShown) {
 | 
				
			||||||
        $self->canvas->load_gcode_preview($self->print, $self->gcode_preview_data, \@colors);
 | 
					        if ($self->gcode_preview_data->empty) {
 | 
				
			||||||
 | 
					            # load skirt and brim
 | 
				
			||||||
#        # load skirt and brim
 | 
					            $self->canvas->load_print_toolpaths($self->print, \@colors);
 | 
				
			||||||
#        $self->canvas->load_print_toolpaths($self->print, \@colors);
 | 
					            $self->canvas->load_wipe_tower_toolpaths($self->print, \@colors);        
 | 
				
			||||||
#        $self->canvas->load_wipe_tower_toolpaths($self->print, \@colors);
 | 
					            foreach my $object (@{$self->print->objects}) {
 | 
				
			||||||
#        
 | 
					                $self->canvas->load_print_object_toolpaths($object, \@colors);            
 | 
				
			||||||
#        foreach my $object (@{$self->print->objects}) {
 | 
					                # Show the objects in very transparent color.
 | 
				
			||||||
#            $self->canvas->load_print_object_toolpaths($object, \@colors);
 | 
					                #my @volume_ids = $self->canvas->load_object($object->model_object);
 | 
				
			||||||
#            
 | 
					                #$self->canvas->volumes->[$_]->color->[3] = 0.2 for @volume_ids;
 | 
				
			||||||
#            # Show the objects in very transparent color.
 | 
					            }
 | 
				
			||||||
#            #my @volume_ids = $self->canvas->load_object($object->model_object);
 | 
					        } else {
 | 
				
			||||||
#            #$self->canvas->volumes->[$_]->color->[3] = 0.2 for @volume_ids;
 | 
					            $self->canvas->load_gcode_preview($self->print, $self->gcode_preview_data, \@colors);
 | 
				
			||||||
#        }
 | 
					        }
 | 
				
			||||||
        if ($self->auto_zoom)
 | 
					        if ($self->auto_zoom) {
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            $self->canvas->zoom_to_volumes;
 | 
					            $self->canvas->zoom_to_volumes;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        $self->_loaded(1);
 | 
					        $self->_loaded(1);
 | 
				
			||||||
| 
						 | 
					@ -424,6 +428,11 @@ sub set_number_extruders {
 | 
				
			||||||
    my ($self, $number_extruders) = @_;
 | 
					    my ($self, $number_extruders) = @_;
 | 
				
			||||||
    if ($self->{number_extruders} != $number_extruders) {
 | 
					    if ($self->{number_extruders} != $number_extruders) {
 | 
				
			||||||
        $self->{number_extruders} = $number_extruders;
 | 
					        $self->{number_extruders} = $number_extruders;
 | 
				
			||||||
 | 
					        $self->{preferred_color_mode} = ($number_extruders > 1) ?
 | 
				
			||||||
 | 
					              4  # color by a tool number
 | 
				
			||||||
 | 
					            : 0; # color by a feature type
 | 
				
			||||||
 | 
					        $self->{choice_view_type}->SetSelection($self->{preferred_color_mode});
 | 
				
			||||||
 | 
					        $self->gcode_preview_data->set_type($self->{preferred_color_mode});
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue