2016-09-14 09:22:41 +00:00
# The config wizard is executed when the Slic3r is first started.
# The wizard helps the user to specify the 3D printer properties.
2012-06-26 15:42:29 +00:00
package Slic3r::GUI::ConfigWizard ;
use strict ;
use warnings ;
use utf8 ;
2012-07-03 15:21:32 +00:00
use Wx ;
2012-06-26 15:42:29 +00:00
use base 'Wx::Wizard' ;
2012-07-16 16:34:44 +00:00
# adhere to various human interface guidelines
our $ wizard = 'Wizard' ;
$ wizard = 'Assistant' if & Wx:: wxMAC || & Wx:: wxGTK ;
2012-06-26 15:42:29 +00:00
sub new {
2017-12-19 18:51:22 +00:00
my ( $ class , $ parent , $ presets , $ fresh_start ) = @ _ ;
2012-07-16 16:34:44 +00:00
my $ self = $ class - > SUPER:: new ( $ parent , - 1 , "Configuration $wizard" ) ;
2012-06-26 15:42:29 +00:00
2012-07-28 09:34:12 +00:00
# initialize an empty repository
$ self - > { config } = Slic3r::Config - > new ;
2012-06-30 21:56:11 +00:00
2017-12-19 18:51:22 +00:00
my $ welcome_page = Slic3r::GUI::ConfigWizard::Page::Welcome - > new ( $ self , $ fresh_start ) ;
2017-12-10 12:19:44 +00:00
$ self - > add_page ( $ welcome_page ) ;
2012-06-26 15:42:29 +00:00
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Firmware - > new ( $ self ) ) ;
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Bed - > new ( $ self ) ) ;
2012-06-27 15:59:29 +00:00
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Nozzle - > new ( $ self ) ) ;
2012-06-26 15:42:29 +00:00
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Filament - > new ( $ self ) ) ;
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Temperature - > new ( $ self ) ) ;
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::BedTemperature - > new ( $ self ) ) ;
$ self - > add_page ( Slic3r::GUI::ConfigWizard::Page::Finished - > new ( $ self ) ) ;
2012-07-03 15:21:32 +00:00
$ _ - > build_index for @ { $ self - > { pages } } ;
2017-12-10 12:19:44 +00:00
$ welcome_page - > set_selection_presets ( [ @ { $ presets } , 'Other' ] ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
sub add_page {
2017-12-10 12:19:44 +00:00
my ( $ self , $ page ) = @ _ ;
2012-06-26 15:42:29 +00:00
my $ n = push @ { $ self - > { pages } } , $ page ;
# add first page to the page area sizer
$ self - > GetPageAreaSizer - > Add ( $ page ) if $ n == 1 ;
# link pages
$ self - > { pages } [ $ n - 2 ] - > set_next_page ( $ page ) if $ n >= 2 ;
$ page - > set_previous_page ( $ self - > { pages } [ $ n - 2 ] ) if $ n >= 2 ;
}
sub run {
2017-12-10 12:19:44 +00:00
my ( $ self ) = @ _ ;
2017-12-19 18:51:22 +00:00
my $ result ;
2012-06-30 22:10:48 +00:00
if ( Wx::Wizard:: RunWizard ( $ self , $ self - > { pages } [ 0 ] ) ) {
2017-12-10 12:19:44 +00:00
my $ preset_name = $ self - > { pages } [ 0 ] - > { preset_name } ;
2017-12-19 18:51:22 +00:00
$ result = {
preset_name = > $ preset_name ,
reset_user_profile = > $ self - > { pages } [ 0 ] - > { reset_user_profile }
} ;
2017-12-10 12:19:44 +00:00
if ( $ preset_name eq 'Other' ) {
# it would be cleaner to have these defined inside each page class,
# in some event getting called before leaving the page
2012-07-28 09:34:12 +00:00
# set first_layer_height + layer_height based on nozzle_diameter
my $ nozzle = $ self - > { config } - > nozzle_diameter ;
$ self - > { config } - > set ( 'first_layer_height' , $ nozzle - > [ 0 ] ) ;
$ self - > { config } - > set ( 'layer_height' , $ nozzle - > [ 0 ] - 0.1 ) ;
# set first_layer_temperature to temperature + 5
$ self - > { config } - > set ( 'first_layer_temperature' , [ $ self - > { config } - > temperature - > [ 0 ] + 5 ] ) ;
# set first_layer_bed_temperature to temperature + 5
2013-09-21 18:14:17 +00:00
$ self - > { config } - > set ( 'first_layer_bed_temperature' ,
2017-06-21 14:15:39 +00:00
[ ( $ self - > { config } - > bed_temperature - > [ 0 ] > 0 ) ? ( $ self - > { config } - > bed_temperature - > [ 0 ] + 5 ) : 0 ] ) ;
2017-12-19 18:51:22 +00:00
$ result - > { config } = $ self - > { config } ;
2012-06-26 15:42:29 +00:00
}
}
2017-12-10 12:19:44 +00:00
$ self - > Destroy ;
return $ result ;
2012-06-26 15:42:29 +00:00
}
2012-07-03 15:21:32 +00:00
package Slic3r::GUI::ConfigWizard::Index ;
2012-07-08 17:41:13 +00:00
use Wx qw( :bitmap :dc :font :misc :sizer :systemsettings :window ) ;
use Wx::Event qw( EVT_ERASE_BACKGROUND EVT_PAINT ) ;
2012-07-03 15:21:32 +00:00
use base 'Wx::Panel' ;
sub new {
my $ class = shift ;
my ( $ parent , $ title ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent ) ;
2012-07-08 17:41:13 +00:00
push @ { $ self - > { titles } } , $ title ;
$ self - > { own_index } = 0 ;
2012-07-03 15:21:32 +00:00
2017-10-25 10:53:31 +00:00
$ self - > { bullets } - > { before } = Wx::Bitmap - > new ( Slic3r:: var ( "bullet_black.png" ) , wxBITMAP_TYPE_PNG ) ;
$ self - > { bullets } - > { own } = Wx::Bitmap - > new ( Slic3r:: var ( "bullet_blue.png" ) , wxBITMAP_TYPE_PNG ) ;
$ self - > { bullets } - > { after } = Wx::Bitmap - > new ( Slic3r:: var ( "bullet_white.png" ) , wxBITMAP_TYPE_PNG ) ;
2012-07-03 15:21:32 +00:00
2017-10-25 10:53:31 +00:00
$ self - > { background } = Wx::Bitmap - > new ( Slic3r:: var ( "Slic3r_192px_transparent.png" ) , wxBITMAP_TYPE_PNG ) ;
2012-07-03 22:03:05 +00:00
$ self - > SetMinSize ( Wx::Size - > new ( $ self - > { background } - > GetWidth , $ self - > { background } - > GetHeight ) ) ;
2012-07-08 17:41:13 +00:00
EVT_PAINT ( $ self , \ & repaint ) ;
2012-07-03 22:03:05 +00:00
2012-07-03 15:21:32 +00:00
return $ self ;
}
2012-07-08 17:41:13 +00:00
sub repaint {
2012-07-03 22:03:05 +00:00
my ( $ self , $ event ) = @ _ ;
2012-07-08 17:41:13 +00:00
my $ size = $ self - > GetClientSize ;
2012-07-22 13:06:56 +00:00
my $ gap = 5 ;
2012-07-08 17:41:13 +00:00
my $ dc = Wx::PaintDC - > new ( $ self ) ;
$ dc - > SetBackgroundMode ( wxTRANSPARENT ) ;
$ dc - > SetFont ( $ self - > GetFont ) ;
$ dc - > SetTextForeground ( $ self - > GetForegroundColour ) ;
my $ background_h = $ self - > { background } - > GetHeight ;
my $ background_w = $ self - > { background } - > GetWidth ;
$ dc - > DrawBitmap ( $ self - > { background } , ( $ size - > GetWidth - $ background_w ) / 2, ($size->GetHeight - $background_h) / 2 , 1 ) ;
my $ label_h = $ self - > { bullets } - > { own } - > GetHeight ;
$ label_h = $ dc - > GetCharHeight if $ dc - > GetCharHeight > $ label_h ;
my $ label_w = $ size - > GetWidth ;
my $ i = 0 ;
foreach ( @ { $ self - > { titles } } ) {
my $ bullet = $ self - > { bullets } - > { own } ;
$ bullet = $ self - > { bullets } - > { before } if $ i < $ self - > { own_index } ;
$ bullet = $ self - > { bullets } - > { after } if $ i > $ self - > { own_index } ;
$ dc - > SetTextForeground ( Wx::Colour - > new ( 128 , 128 , 128 ) ) if $ i > $ self - > { own_index } ;
2012-07-22 13:06:56 +00:00
$ dc - > DrawLabel ( $ _ , $ bullet , Wx::Rect - > new ( 0 , $ i * ( $ label_h + $ gap ) , $ label_w , $ label_h ) ) ;
2017-12-10 12:19:44 +00:00
# Only show the first bullet if this is the only wizard page to be displayed.
last if $ i == 0 && $ self - > { just_welcome } ;
2012-07-08 17:41:13 +00:00
$ i + + ;
2012-07-03 22:03:05 +00:00
}
2012-07-08 17:41:13 +00:00
$ event - > Skip ;
2012-07-03 22:03:05 +00:00
}
2012-07-03 15:21:32 +00:00
sub prepend_title {
my $ self = shift ;
my ( $ title ) = @ _ ;
2012-07-08 17:41:13 +00:00
unshift @ { $ self - > { titles } } , $ title ;
$ self - > { own_index } + + ;
$ self - > Refresh ;
2012-07-03 15:21:32 +00:00
}
sub append_title {
my $ self = shift ;
my ( $ title ) = @ _ ;
2012-07-08 17:41:13 +00:00
push @ { $ self - > { titles } } , $ title ;
$ self - > Refresh ;
2012-07-03 15:21:32 +00:00
}
2012-06-26 15:42:29 +00:00
package Slic3r::GUI::ConfigWizard::Page ;
2012-06-30 21:28:07 +00:00
use Wx qw( :font :misc :sizer :staticline :systemsettings ) ;
2012-06-26 15:42:29 +00:00
use base 'Wx::WizardPage' ;
sub new {
my $ class = shift ;
2012-07-03 15:21:32 +00:00
my ( $ parent , $ title , $ short_title ) = @ _ ;
2012-06-26 15:42:29 +00:00
my $ self = $ class - > SUPER:: new ( $ parent ) ;
2012-07-03 15:21:32 +00:00
my $ sizer = Wx::FlexGridSizer - > new ( 0 , 2 , 10 , 10 ) ;
2012-07-03 22:03:05 +00:00
$ sizer - > AddGrowableCol ( 1 , 1 ) ;
$ sizer - > AddGrowableRow ( 1 , 1 ) ;
2012-07-03 15:21:32 +00:00
$ sizer - > AddStretchSpacer ( 0 ) ;
$ self - > SetSizer ( $ sizer ) ;
2012-06-26 15:42:29 +00:00
# title
2012-06-30 21:28:07 +00:00
my $ text = Wx::StaticText - > new ( $ self , - 1 , $ title , wxDefaultPosition , wxDefaultSize , wxALIGN_LEFT ) ;
my $ bold_font = Wx::SystemSettings:: GetFont ( wxSYS_DEFAULT_GUI_FONT ) ;
$ bold_font - > SetWeight ( wxFONTWEIGHT_BOLD ) ;
2012-06-26 15:42:29 +00:00
$ bold_font - > SetPointSize ( 14 ) ;
$ text - > SetFont ( $ bold_font ) ;
2012-07-03 15:21:32 +00:00
$ sizer - > Add ( $ text , 0 , wxALIGN_LEFT , 0 ) ;
# index
$ self - > { short_title } = $ short_title ? $ short_title : $ title ;
$ self - > { index } = Slic3r::GUI::ConfigWizard::Index - > new ( $ self , $ self - > { short_title } ) ;
2012-07-03 22:03:05 +00:00
$ sizer - > Add ( $ self - > { index } , 1 , wxEXPAND | wxTOP | wxRIGHT , 10 ) ;
2012-07-03 15:21:32 +00:00
# contents
2012-08-02 21:08:40 +00:00
$ self - > { width } = 430 ;
2012-07-03 15:21:32 +00:00
$ self - > { vsizer } = Wx::BoxSizer - > new ( wxVERTICAL ) ;
2012-08-02 21:07:42 +00:00
$ sizer - > Add ( $ self - > { vsizer } , 1 ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
sub append_text {
my $ self = shift ;
my ( $ text ) = @ _ ;
2012-06-30 21:28:07 +00:00
my $ para = Wx::StaticText - > new ( $ self , - 1 , $ text , wxDefaultPosition , wxDefaultSize , wxALIGN_LEFT ) ;
2012-06-26 15:42:29 +00:00
$ para - > Wrap ( $ self - > { width } ) ;
2012-07-03 15:21:32 +00:00
$ para - > SetMinSize ( [ $ self - > { width } , - 1 ] ) ;
$ self - > { vsizer } - > Add ( $ para , 0 , wxALIGN_LEFT | wxTOP | wxBOTTOM , 10 ) ;
2012-06-26 15:42:29 +00:00
}
sub append_option {
my $ self = shift ;
2012-07-28 09:34:12 +00:00
my ( $ full_key ) = @ _ ;
# populate repository with the factory default
2014-09-23 18:00:51 +00:00
my ( $ opt_key , $ opt_index ) = split /#/ , $ full_key , 2 ;
2017-10-27 20:49:59 +00:00
$ self - > config - > apply ( Slic3r::Config:: new_from_defaults_keys ( [ $ opt_key ] ) ) ;
2012-07-28 09:34:12 +00:00
# draw the control
my $ optgroup = Slic3r::GUI::ConfigOptionsGroup - > new (
parent = > $ self ,
title = > '' ,
2014-06-16 18:11:52 +00:00
config = > $ self - > config ,
2013-09-21 18:25:34 +00:00
full_labels = > 1 ,
2012-07-28 09:34:12 +00:00
) ;
2014-09-23 18:00:51 +00:00
$ optgroup - > append_single_option_line ( $ opt_key , $ opt_index ) ;
2012-07-28 09:34:12 +00:00
$ self - > { vsizer } - > Add ( $ optgroup - > sizer , 0 , wxEXPAND | wxTOP | wxBOTTOM , 10 ) ;
2012-06-26 15:42:29 +00:00
}
2014-06-16 18:11:52 +00:00
sub append_panel {
my ( $ self , $ panel ) = @ _ ;
$ self - > { vsizer } - > Add ( $ panel , 0 , wxEXPAND | wxTOP | wxBOTTOM , 10 ) ;
}
2012-06-26 15:42:29 +00:00
sub set_previous_page {
my $ self = shift ;
my ( $ previous_page ) = @ _ ;
$ self - > { previous_page } = $ previous_page ;
}
sub GetPrev {
my $ self = shift ;
return $ self - > { previous_page } ;
}
sub set_next_page {
my $ self = shift ;
my ( $ next_page ) = @ _ ;
$ self - > { next_page } = $ next_page ;
}
sub GetNext {
my $ self = shift ;
return $ self - > { next_page } ;
}
2012-07-03 15:21:32 +00:00
sub get_short_title {
my $ self = shift ;
return $ self - > { short_title } ;
}
sub build_index {
my $ self = shift ;
my $ page = $ self ;
$ self - > { index } - > prepend_title ( $ page - > get_short_title ) while ( $ page = $ page - > GetPrev ) ;
$ page = $ self ;
$ self - > { index } - > append_title ( $ page - > get_short_title ) while ( $ page = $ page - > GetNext ) ;
}
2014-06-16 18:11:52 +00:00
sub config {
my ( $ self ) = @ _ ;
return $ self - > GetParent - > { config } ;
}
2012-06-26 15:42:29 +00:00
package Slic3r::GUI::ConfigWizard::Page::Welcome ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
2017-12-10 12:19:44 +00:00
use Wx qw( :misc :sizer wxID_FORWARD ) ;
2017-12-19 18:51:22 +00:00
use Wx::Event qw( EVT_ACTIVATE EVT_CHOICE EVT_CHECKBOX ) ;
2012-06-26 15:42:29 +00:00
sub new {
2017-12-19 18:51:22 +00:00
my ( $ class , $ parent , $ fresh_start ) = @ _ ;
2012-07-16 16:34:44 +00:00
my $ self = $ class - > SUPER:: new ( $ parent , "Welcome to the Slic3r Configuration $wizard" , 'Welcome' ) ;
2017-12-10 12:19:44 +00:00
$ self - > { full_wizard_workflow } = 1 ;
2017-12-19 18:51:22 +00:00
$ self - > { reset_user_profile } = 0 ;
2017-12-10 12:19:44 +00:00
2017-12-14 12:47:22 +00:00
# Test for the existence of the old config path.
my $ message_has_legacy ;
{
my $ datadir = Slic3r:: data_dir ;
if ( $ datadir =~ /Slic3rPE/ ) {
# Check for existence of the legacy Slic3r directory.
my $ datadir_legacy = substr $ datadir , 0 , - 2 ;
my $ dir_enc = Slic3r:: encode_path ( $ datadir_legacy ) ;
if ( - e $ dir_enc && - d $ dir_enc &&
- e ( $ dir_enc . '/print' ) && - d ( $ dir_enc . '/print' ) &&
- e ( $ dir_enc . '/filament' ) && - d ( $ dir_enc . '/filament' ) &&
- e ( $ dir_enc . '/printer' ) && - d ( $ dir_enc . '/printer' ) &&
- e ( $ dir_enc . '/slic3r.ini' ) ) {
$ message_has_legacy = "Starting with Slic3r 1.38.4, the user profile directory has been renamed to $datadir. You may consider closing Slic3r and renaming $datadir_legacy to $datadir." ;
}
}
}
2017-12-10 12:19:44 +00:00
$ self - > append_text ( 'Hello, welcome to Slic3r Prusa Edition! This ' . lc ( $ wizard ) . ' helps you with the initial configuration; just a few settings and you will be ready to print.' ) ;
$ self - > append_text ( 'Please select your printer vendor and printer type. If your printer is not listed, you may try your luck and select a similar one. If you select "Other", this ' . lc ( $ wizard ) . ' will let you set the basic 3D printer parameters.' ) ;
2017-12-14 12:47:22 +00:00
$ self - > append_text ( $ message_has_legacy ) if defined $ message_has_legacy ;
2017-12-10 12:19:44 +00:00
# To import an existing configuration instead, cancel this '.lc($wizard).' and use the Open Config menu item found in the File menu.');
$ self - > append_text ( 'If you received a configuration file or a config bundle from your 3D printer vendor, cancel this ' . lc ( $ wizard ) . ' and use the "File->Load Config" or "File->Load Config Bundle" menu.' ) ;
$ self - > { choice } = my $ choice = Wx::Choice - > new ( $ self , - 1 , wxDefaultPosition , wxDefaultSize , [] ) ;
$ self - > { vsizer } - > Add ( $ choice , 0 , wxEXPAND | wxTOP | wxBOTTOM , 10 ) ;
2017-12-19 18:51:22 +00:00
if ( ! $ fresh_start ) {
$ self - > { reset_checkbox } = Wx::CheckBox - > new ( $ self , - 1 , "Reset user profile, install from scratch" ) ;
$ self - > { vsizer } - > Add ( $ self - > { reset_checkbox } , 0 , wxEXPAND | wxTOP | wxBOTTOM , 10 ) ;
}
2012-06-26 15:42:29 +00:00
2017-12-10 12:19:44 +00:00
EVT_CHOICE ( $ parent , $ choice , sub {
my $ sel = $ self - > { choice } - > GetStringSelection ;
$ self - > { preset_name } = $ sel ;
$ self - > set_full_wizard_workflow ( ( $ sel eq 'Other' ) || ( $ sel eq '' ) ) ;
} ) ;
2017-12-19 18:51:22 +00:00
if ( ! $ fresh_start ) {
EVT_CHECKBOX ( $ self , $ self - > { reset_checkbox } , sub {
$ self - > { reset_user_profile } = $ self - > { reset_checkbox } - > GetValue ( ) ;
} ) ;
}
2017-12-10 12:19:44 +00:00
EVT_ACTIVATE ( $ parent , sub {
$ self - > set_full_wizard_workflow ( $ self - > { preset_name } eq 'Other' ) ;
} ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
2017-12-10 12:19:44 +00:00
sub set_full_wizard_workflow {
my ( $ self , $ full_workflow ) = @ _ ;
$ self - > { full_wizard_workflow } = $ full_workflow ;
$ self - > { index } - > { just_welcome } = ! $ full_workflow ;
$ self - > { index } - > Refresh ;
my $ next_button = $ self - > GetParent - > FindWindow ( wxID_FORWARD ) ;
$ next_button - > SetLabel ( $ full_workflow ? "&Next >" : "&Finish" ) ;
}
# Set the preset names, select the first item.
sub set_selection_presets {
my ( $ self , $ names ) = @ _ ;
$ self - > { choice } - > Append ( $ names ) ;
$ self - > { choice } - > SetSelection ( 0 ) ;
$ self - > { preset_name } = $ names - > [ 0 ] ;
}
sub GetNext {
my $ self = shift ;
return $ self - > { full_wizard_workflow } ? $ self - > { next_page } : undef ;
}
2012-06-26 15:42:29 +00:00
package Slic3r::GUI::ConfigWizard::Page::Firmware ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Firmware Type' ) ;
2012-06-27 17:41:37 +00:00
$ self - > append_text ( 'Choose the type of firmware used by your printer, then click Next.' ) ;
2012-06-26 15:42:29 +00:00
$ self - > append_option ( 'gcode_flavor' ) ;
return $ self ;
}
package Slic3r::GUI::ConfigWizard::Page::Bed ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Bed Size' ) ;
2014-06-16 18:11:52 +00:00
$ self - > append_text ( 'Set the shape of your printer\'s bed, then click Next.' ) ;
2017-10-27 20:49:59 +00:00
$ self - > config - > apply ( Slic3r::Config:: new_from_defaults_keys ( [ 'bed_shape' ] ) ) ;
2014-06-16 18:11:52 +00:00
$ self - > { bed_shape_panel } = my $ panel = Slic3r::GUI::BedShapePanel - > new ( $ self , $ self - > config - > bed_shape ) ;
$ self - > { bed_shape_panel } - > on_change ( sub {
$ self - > config - > set ( 'bed_shape' , $ self - > { bed_shape_panel } - > GetValue ) ;
} ) ;
$ self - > append_panel ( $ self - > { bed_shape_panel } ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
2012-06-27 15:59:29 +00:00
package Slic3r::GUI::ConfigWizard::Page::Nozzle ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Nozzle Diameter' ) ;
2014-06-16 18:11:52 +00:00
$ self - > append_text ( 'Enter the diameter of your printer\'s hot end nozzle, then click Next.' ) ;
2012-07-19 20:56:38 +00:00
$ self - > append_option ( 'nozzle_diameter#0' ) ;
2012-06-27 15:59:29 +00:00
return $ self ;
}
2012-06-26 15:42:29 +00:00
package Slic3r::GUI::ConfigWizard::Page::Filament ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Filament Diameter' ) ;
2012-06-27 17:41:37 +00:00
$ self - > append_text ( 'Enter the diameter of your filament, then click Next.' ) ;
$ self - > append_text ( 'Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average.' ) ;
2012-07-19 20:56:38 +00:00
$ self - > append_option ( 'filament_diameter#0' ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
package Slic3r::GUI::ConfigWizard::Page::Temperature ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Extrusion Temperature' ) ;
2012-06-27 17:41:37 +00:00
$ self - > append_text ( 'Enter the temperature needed for extruding your filament, then click Next.' ) ;
2012-07-16 16:34:44 +00:00
$ self - > append_text ( 'A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS.' ) ;
2012-07-19 20:56:38 +00:00
$ self - > append_option ( 'temperature#0' ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
package Slic3r::GUI::ConfigWizard::Page::BedTemperature ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
my $ self = $ class - > SUPER:: new ( $ parent , 'Bed Temperature' ) ;
2012-06-27 17:41:37 +00:00
$ self - > append_text ( 'Enter the bed temperature needed for getting your filament to stick to your heated bed, then click Next.' ) ;
2013-09-21 18:14:17 +00:00
$ self - > append_text ( 'A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have no heated bed.' ) ;
2017-06-21 14:15:39 +00:00
$ self - > append_option ( 'bed_temperature#0' ) ;
2013-09-21 18:25:34 +00:00
2012-06-26 15:42:29 +00:00
return $ self ;
}
package Slic3r::GUI::ConfigWizard::Page::Finished ;
use base 'Slic3r::GUI::ConfigWizard::Page' ;
sub new {
my $ class = shift ;
my ( $ parent ) = @ _ ;
2012-07-03 15:21:32 +00:00
my $ self = $ class - > SUPER:: new ( $ parent , 'Congratulations!' , 'Finish' ) ;
2012-06-26 15:42:29 +00:00
2012-07-16 16:34:44 +00:00
$ self - > append_text ( "You have successfully completed the Slic3r Configuration $wizard. " .
2012-06-27 21:20:29 +00:00
'Slic3r is now configured for your printer and filament.' ) ;
2012-07-16 16:34:44 +00:00
$ self - > append_text ( 'To close this ' . lc ( $ wizard ) . ' and apply the newly created configuration, click Finish.' ) ;
2012-06-26 15:42:29 +00:00
return $ self ;
}
1 ;