Add manual control to DLP projector too
This commit is contained in:
parent
128b2623cc
commit
2efc759a74
3 changed files with 31 additions and 5 deletions
|
@ -14,11 +14,11 @@ __PACKAGE__->mk_accessors(qw(sender));
|
||||||
use constant TRAVEL_SPEED => 130*60; # TODO: make customizable?
|
use constant TRAVEL_SPEED => 130*60; # TODO: make customizable?
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ($class, $printer_panel) = @_;
|
my ($class, $parent, $config, $sender) = @_;
|
||||||
|
|
||||||
my $self = $class->SUPER::new($printer_panel, -1, "Manual Control", wxDefaultPosition,
|
my $self = $class->SUPER::new($parent, -1, "Manual Control", wxDefaultPosition,
|
||||||
[430,380], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
|
[430,380], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
|
||||||
$self->sender($printer_panel->sender);
|
$self->sender($sender);
|
||||||
|
|
||||||
my $bed_sizer = Wx::FlexGridSizer->new(2, 3, 1, 1);
|
my $bed_sizer = Wx::FlexGridSizer->new(2, 3, 1, 1);
|
||||||
$bed_sizer->AddGrowableCol(1, 1);
|
$bed_sizer->AddGrowableCol(1, 1);
|
||||||
|
@ -53,7 +53,7 @@ sub new {
|
||||||
|
|
||||||
# Bed canvas
|
# Bed canvas
|
||||||
{
|
{
|
||||||
my $bed_shape = $printer_panel->config->bed_shape;
|
my $bed_shape = $config->bed_shape;
|
||||||
$self->{canvas} = my $canvas = Slic3r::GUI::2DBed->new($self, $bed_shape);
|
$self->{canvas} = my $canvas = Slic3r::GUI::2DBed->new($self, $bed_shape);
|
||||||
$canvas->interactive(1);
|
$canvas->interactive(1);
|
||||||
$canvas->on_move(sub {
|
$canvas->on_move(sub {
|
||||||
|
|
|
@ -170,7 +170,8 @@ sub new {
|
||||||
$btn->Hide;
|
$btn->Hide;
|
||||||
$left_sizer->Add($btn, 0, wxTOP, 15);
|
$left_sizer->Add($btn, 0, wxTOP, 15);
|
||||||
EVT_BUTTON($self, $btn, sub {
|
EVT_BUTTON($self, $btn, sub {
|
||||||
my $dlg = Slic3r::GUI::Controller::ManualControlDialog->new($self);
|
my $dlg = Slic3r::GUI::Controller::ManualControlDialog->new
|
||||||
|
($self, $self->config, $self->sender);
|
||||||
$dlg->ShowModal;
|
$dlg->ShowModal;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,6 +267,30 @@ sub new {
|
||||||
my $buttons = Wx::BoxSizer->new(wxHORIZONTAL);
|
my $buttons = Wx::BoxSizer->new(wxHORIZONTAL);
|
||||||
$sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10);
|
$sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10);
|
||||||
|
|
||||||
|
{
|
||||||
|
my $btn = $self->{btn_manual_control} = Wx::Button->new($self, -1, 'Manual Control', wxDefaultPosition, wxDefaultSize);
|
||||||
|
if ($Slic3r::GUI::have_button_icons) {
|
||||||
|
$btn->SetBitmap(Wx::Bitmap->new("$Slic3r::var/cog.png", wxBITMAP_TYPE_PNG));
|
||||||
|
}
|
||||||
|
$buttons->Add($btn, 0);
|
||||||
|
EVT_BUTTON($self, $btn, sub {
|
||||||
|
my $sender = Slic3r::GCode::Sender->new;
|
||||||
|
my $res = $sender->connect(
|
||||||
|
$self->config->serial_port,
|
||||||
|
$self->config->serial_speed,
|
||||||
|
);
|
||||||
|
if (!$res || !$sender->wait_connected) {
|
||||||
|
Slic3r::GUI::show_error(undef, "Connection failed. Check serial port and speed.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
my $dlg = Slic3r::GUI::Controller::ManualControlDialog->new
|
||||||
|
($self, $self->config, $sender);
|
||||||
|
$dlg->ShowModal;
|
||||||
|
$sender->disconnect;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
{
|
{
|
||||||
my $btn = $self->{btn_print} = Wx::Button->new($self, -1, 'Print', wxDefaultPosition, wxDefaultSize);
|
my $btn = $self->{btn_print} = Wx::Button->new($self, -1, 'Print', wxDefaultPosition, wxDefaultSize);
|
||||||
if ($Slic3r::GUI::have_button_icons) {
|
if ($Slic3r::GUI::have_button_icons) {
|
||||||
|
@ -346,6 +370,7 @@ sub _update_buttons {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
|
|
||||||
my $is_printing = $self->controller->is_printing;
|
my $is_printing = $self->controller->is_printing;
|
||||||
|
$self->{btn_manual_control}->Show(!$is_printing);
|
||||||
$self->{btn_print}->Show(!$is_printing);
|
$self->{btn_print}->Show(!$is_printing);
|
||||||
$self->{btn_stop}->Show($is_printing);
|
$self->{btn_stop}->Show($is_printing);
|
||||||
$self->Layout;
|
$self->Layout;
|
||||||
|
|
Loading…
Reference in a new issue