mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-07 22:14:00 -06:00
Initial partial implementation of presets in C++.
This commit is contained in:
parent
b58756f38b
commit
473233019c
12 changed files with 602 additions and 84 deletions
|
@ -21,7 +21,7 @@ use File::Basename qw(basename);
|
|||
use List::Util qw(first);
|
||||
use Wx qw(:bookctrl :dialog :keycode :icon :id :misc :panel :sizer :treectrl :window
|
||||
:button wxTheApp);
|
||||
use Wx::Event qw(EVT_BUTTON EVT_CHOICE EVT_KEY_DOWN EVT_TREE_SEL_CHANGED);
|
||||
use Wx::Event qw(EVT_BUTTON EVT_CHOICE EVT_KEY_DOWN EVT_CHECKBOX EVT_TREE_SEL_CHANGED);
|
||||
use base qw(Wx::Panel Class::Accessor);
|
||||
|
||||
# Index of the currently active preset.
|
||||
|
@ -522,7 +522,7 @@ package Slic3r::GUI::Tab::Print;
|
|||
use base 'Slic3r::GUI::Tab';
|
||||
|
||||
use List::Util qw(first);
|
||||
use Wx qw(:icon :dialog :id);
|
||||
use Wx qw(:icon :dialog :id wxTheApp);
|
||||
|
||||
sub name { 'print' }
|
||||
sub title { 'Print Settings' }
|
||||
|
@ -530,49 +530,7 @@ sub title { 'Print Settings' }
|
|||
sub build {
|
||||
my $self = shift;
|
||||
|
||||
$self->init_config_options(qw(
|
||||
layer_height first_layer_height
|
||||
perimeters spiral_vase
|
||||
top_solid_layers bottom_solid_layers
|
||||
extra_perimeters ensure_vertical_shell_thickness avoid_crossing_perimeters thin_walls overhangs
|
||||
seam_position external_perimeters_first
|
||||
fill_density fill_pattern external_fill_pattern
|
||||
infill_every_layers infill_only_where_needed
|
||||
solid_infill_every_layers fill_angle bridge_angle solid_infill_below_area
|
||||
only_retract_when_crossing_perimeters infill_first
|
||||
max_print_speed max_volumetric_speed
|
||||
max_volumetric_extrusion_rate_slope_positive max_volumetric_extrusion_rate_slope_negative
|
||||
perimeter_speed small_perimeter_speed external_perimeter_speed infill_speed
|
||||
solid_infill_speed top_solid_infill_speed support_material_speed
|
||||
support_material_xy_spacing
|
||||
support_material_interface_speed bridge_speed gap_fill_speed
|
||||
travel_speed
|
||||
first_layer_speed
|
||||
perimeter_acceleration infill_acceleration bridge_acceleration
|
||||
first_layer_acceleration default_acceleration
|
||||
skirts skirt_distance skirt_height min_skirt_length
|
||||
brim_width
|
||||
support_material support_material_threshold support_material_enforce_layers
|
||||
raft_layers
|
||||
support_material_pattern support_material_with_sheath support_material_spacing support_material_synchronize_layers support_material_angle
|
||||
support_material_interface_layers support_material_interface_spacing support_material_interface_contact_loops
|
||||
support_material_contact_distance support_material_buildplate_only dont_support_bridges
|
||||
notes
|
||||
complete_objects extruder_clearance_radius extruder_clearance_height
|
||||
gcode_comments output_filename_format
|
||||
post_process
|
||||
perimeter_extruder infill_extruder solid_infill_extruder
|
||||
support_material_extruder support_material_interface_extruder
|
||||
ooze_prevention standby_temperature_delta
|
||||
interface_shells
|
||||
extrusion_width first_layer_extrusion_width perimeter_extrusion_width
|
||||
external_perimeter_extrusion_width infill_extrusion_width solid_infill_extrusion_width
|
||||
top_infill_extrusion_width support_material_extrusion_width
|
||||
infill_overlap bridge_flow_ratio
|
||||
clip_multipart_objects elefant_foot_compensation xy_size_compensation threads resolution
|
||||
wipe_tower wipe_tower_x wipe_tower_y wipe_tower_width wipe_tower_per_color_wipe
|
||||
));
|
||||
$self->{config}->set('print_settings_id', '');
|
||||
$self->{config}->apply(wxTheApp->{preset_bundle}->prints->preset(0)->config);
|
||||
|
||||
{
|
||||
my $page = $self->add_options_page('Layers and perimeters', 'layers.png');
|
||||
|
@ -776,7 +734,7 @@ sub build {
|
|||
$optgroup->append_single_option_line('clip_multipart_objects');
|
||||
$optgroup->append_single_option_line('elefant_foot_compensation');
|
||||
$optgroup->append_single_option_line('xy_size_compensation');
|
||||
$optgroup->append_single_option_line('threads') if $Slic3r::have_threads;
|
||||
# $optgroup->append_single_option_line('threads') if $Slic3r::have_threads;
|
||||
$optgroup->append_single_option_line('resolution');
|
||||
}
|
||||
}
|
||||
|
@ -831,6 +789,12 @@ sub build {
|
|||
}
|
||||
}
|
||||
|
||||
sub reload_config {
|
||||
my ($self) = @_;
|
||||
# $self->_reload_compatible_printers_widget;
|
||||
$self->SUPER::reload_config;
|
||||
}
|
||||
|
||||
# Slic3r::GUI::Tab::Print::_update is called after a configuration preset is loaded or switched, or when a single option is modifed by the user.
|
||||
sub _update {
|
||||
# $keys_modified is a reference to hash with modified keys set to 1, unmodified keys missing.
|
||||
|
@ -1035,10 +999,11 @@ sub _update {
|
|||
for qw(wipe_tower_x wipe_tower_y wipe_tower_width wipe_tower_per_color_wipe);
|
||||
}
|
||||
|
||||
sub hidden_options { !$Slic3r::have_threads ? qw(threads) : () }
|
||||
#sub hidden_options { !$Slic3r::have_threads ? qw(threads) : () }
|
||||
|
||||
package Slic3r::GUI::Tab::Filament;
|
||||
use base 'Slic3r::GUI::Tab';
|
||||
use Wx qw(wxTheApp);
|
||||
|
||||
sub name { 'filament' }
|
||||
sub title { 'Filament Settings' }
|
||||
|
@ -1046,15 +1011,7 @@ sub title { 'Filament Settings' }
|
|||
sub build {
|
||||
my $self = shift;
|
||||
|
||||
$self->init_config_options(qw(
|
||||
filament_colour filament_diameter filament_type filament_soluble filament_notes filament_max_volumetric_speed extrusion_multiplier filament_density filament_cost
|
||||
temperature first_layer_temperature bed_temperature first_layer_bed_temperature
|
||||
fan_always_on cooling
|
||||
min_fan_speed max_fan_speed bridge_fan_speed disable_fan_first_layers
|
||||
fan_below_layer_time slowdown_below_layer_time min_print_speed
|
||||
start_filament_gcode end_filament_gcode
|
||||
));
|
||||
$self->{config}->set('filament_settings_id', '');
|
||||
$self->{config}->apply(wxTheApp->{preset_bundle}->filaments->preset(0)->config);
|
||||
|
||||
{
|
||||
my $page = $self->add_options_page('Filament', 'spool.png');
|
||||
|
@ -1236,20 +1193,7 @@ sub build {
|
|||
my $self = shift;
|
||||
my (%params) = @_;
|
||||
|
||||
$self->init_config_options(qw(
|
||||
bed_shape z_offset
|
||||
gcode_flavor use_relative_e_distances
|
||||
serial_port serial_speed
|
||||
octoprint_host octoprint_apikey
|
||||
use_firmware_retraction
|
||||
use_volumetric_e variable_layer_height
|
||||
single_extruder_multi_material start_gcode end_gcode before_layer_gcode layer_gcode toolchange_gcode
|
||||
nozzle_diameter extruder_offset
|
||||
retract_length retract_lift retract_speed deretract_speed retract_before_wipe retract_restart_extra retract_before_travel retract_layer_change wipe
|
||||
retract_length_toolchange retract_restart_extra_toolchange
|
||||
extruder_colour printer_notes
|
||||
));
|
||||
$self->{config}->set('printer_settings_id', '');
|
||||
$self->{config}->apply(wxTheApp->{preset_bundle}->printers->preset(0)->config);
|
||||
|
||||
my $bed_shape_widget = sub {
|
||||
my ($parent) = @_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue