diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index 3a56d52a8f..ca37795489 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -93,6 +93,9 @@ void Camera::select_view(const std::string& direction) look_at(m_target + m_distance * Vec3d::UnitY(), m_target, Vec3d::UnitZ()); else if (direction == "topfront") look_at(m_target - 0.707 * m_distance * Vec3d::UnitY() + 0.707 * m_distance * Vec3d::UnitZ(), m_target, Vec3d::UnitY() + Vec3d::UnitZ()); + else if (direction == "plate") { + look_at(m_target - 0.707 * m_distance * Vec3d::UnitY() + 0.707 * m_distance * Vec3d::UnitZ(), m_target, Vec3d::UnitY() + Vec3d::UnitZ()); + } } double Camera::get_fov() const diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e1f13aee50..6334d6edb1 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2369,7 +2369,10 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) break; // BBS - case '0': { select_view("topfront"); break; } + case '0': { + select_view("plate"); + zoom_to_bed(); + break; } case '1': { select_view("top"); break; } case '2': { select_view("bottom"); break; } case '3': { select_view("front"); break; } @@ -2712,7 +2715,10 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) switch (keyCode) { case '0': case WXK_NUMPAD0: //0 on numpad - { select_view("topfront"); break; } + { select_view("plate"); + zoom_to_bed(); + break; + } case '1': case WXK_NUMPAD1: //1 on numpad { select_view("top"); break; } diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 8cd7452011..fb1173e18b 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1647,7 +1647,10 @@ static wxMenu* generate_help_menu() static void add_common_view_menu_items(wxMenu* view_menu, MainFrame* mainFrame, std::function can_change_view) { // The camera control accelerators are captured by GLCanvas3D::on_char(). - append_menu_item(view_menu, wxID_ANY, _L("Default View") + "\tCtrl+0", _L("Default View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("topfront"); }, + append_menu_item(view_menu, wxID_ANY, _L("Default View") + "\tCtrl+0", _L("Default View"), [mainFrame](wxCommandEvent&) { + mainFrame->select_view("plate"); + mainFrame->plater()->get_current_canvas3D()->zoom_to_bed(); + }, "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); //view_menu->AppendSeparator(); //TRN To be shown in the main menu View->Top