From 8c46a570366a47e7c40d129c4d3092a7669c7d93 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 22 Dec 2022 16:09:03 +0800 Subject: [PATCH] wip --- build_release.bat | 4 +-- resources/calib/sf_placeholder.stl | Bin 0 -> 222284 bytes src/libslic3r/GCode.cpp | 8 ++---- src/libslic3r/calib.cpp | 2 +- src/slic3r/GUI/BBLTopbar.cpp | 29 +++++++++++++++++++- src/slic3r/GUI/BBLTopbar.hpp | 3 ++ src/slic3r/GUI/BackgroundSlicingProcess.hpp | 1 + src/slic3r/GUI/Plater.cpp | 22 +++++++++------ src/slic3r/GUI/Plater.hpp | 2 +- 9 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 resources/calib/sf_placeholder.stl diff --git a/build_release.bat b/build_release.bat index f7e12a4875..fc608ab3a1 100644 --- a/build_release.bat +++ b/build_release.bat @@ -10,5 +10,5 @@ cd %WP% mkdir build cd build cmake .. -G "Visual Studio 16 2019" -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0" -cmake --build . --config Release --target ALL_BUILD -- -m -cmake --build . --target install --config Release \ No newline at end of file +@REM cmake --build . --config Release --target ALL_BUILD -- -m +@REM cmake --build . --target install --config Release \ No newline at end of file diff --git a/resources/calib/sf_placeholder.stl b/resources/calib/sf_placeholder.stl new file mode 100644 index 0000000000000000000000000000000000000000..e0ed7cbbbb4eceed675c611470de653160f4e460 GIT binary patch literal 222284 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
C&9&ce93 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 0) { - double acceleration = std::max(m_config.inner_wall_acceleration.value, m_config.outer_wall_acceleration.value); - gcode += m_writer.set_acceleration((unsigned int)floor(acceleration + 0.5)); - } + gcode += m_writer.set_acceleration((unsigned int)floor(m_config.outer_wall_acceleration.value + 0.5)); if (m_config.default_jerk.value > 0) { - double jerk = m_config.default_jerk.value; + double jerk = m_config.outer_wall_jerk.value; gcode += m_writer.set_jerk_xy((unsigned int)floor(jerk + 0.5)); } m_config.outer_wall_speed = print.default_region_config().outer_wall_speed; @@ -1650,6 +1647,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato calib_pressure_advance pa_test(this); gcode = pa_test.generate_test(); file.write(gcode); + print.is_calib_mode() = false; } else { //BBS: open spaghetti detector diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index ba30202d82..26ee72e5e6 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -32,7 +32,7 @@ namespace Slic3r { const double e = 0.04; // filament_mm/extrusion_mm const double y_offset = 5; - const double fast = std::max(mp_gcodegen->config().get_abs_value("inner_wall_speed"), mp_gcodegen->config().get_abs_value("outer_wall_speed")) * 60.0; + const double fast = mp_gcodegen->config().get_abs_value("outer_wall_speed") * 60.0; const double slow = std::max(1200.0, fast * 0.1); std::stringstream gcode; gcode << mp_gcodegen->writer().travel_to_z(0.2); diff --git a/src/slic3r/GUI/BBLTopbar.cpp b/src/slic3r/GUI/BBLTopbar.cpp index 9505e1d95d..9daca4895f 100644 --- a/src/slic3r/GUI/BBLTopbar.cpp +++ b/src/slic3r/GUI/BBLTopbar.cpp @@ -24,6 +24,7 @@ enum CUSTOM_ID ID_TITLE, ID_MODEL_STORE, ID_PUBLISH, + ID_CALIB, ID_TOOL_BAR = 3200, ID_AMS_NOTEBOOK, }; @@ -194,7 +195,7 @@ void BBLTopbar::Init(wxFrame* parent) m_frame = parent; m_skip_popup_file_menu = false; m_skip_popup_dropdown_menu = false; - + m_skip_popup_calib_menu = false; wxInitAllImageHandlers(); this->AddSpacer(5); @@ -241,6 +242,11 @@ void BBLTopbar::Init(wxFrame* parent) wxBitmap redo_inactive_bitmap = create_scaled_bitmap("topbar_redo_inactive", nullptr, TOPBAR_ICON_SIZE); m_redo_item->SetDisabledBitmap(redo_inactive_bitmap); + this->AddSpacer(FromDIP(10)); + + wxBitmap calib_bitmap = create_scaled_bitmap("ams_readonly", nullptr, TOPBAR_ICON_SIZE); + m_redo_item = this->AddTool(ID_CALIB, "", calib_bitmap); + this->AddSpacer(FromDIP(10)); this->AddStretchSpacer(1); @@ -298,6 +304,7 @@ void BBLTopbar::Init(wxFrame* parent) this->Bind(wxEVT_MENU_CLOSE, &BBLTopbar::OnMenuClose, this); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnFileToolItem, this, ID_TOP_FILE_MENU); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnDropdownToolItem, this, ID_TOP_DROPDOWN_MENU); + this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnDropdownToolItem, this, ID_CALIB); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnIconize, this, wxID_ICONIZE_FRAME); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnFullScreen, this, wxID_MAXIMIZE_FRAME); this->Bind(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, &BBLTopbar::OnCloseFrame, this, wxID_CLOSE_FRAME); @@ -468,6 +475,9 @@ void BBLTopbar::Rescale() { item->SetBitmap(create_scaled_bitmap("topbar_redo", this, TOPBAR_ICON_SIZE)); item->SetDisabledBitmap(create_scaled_bitmap("topbar_redo_inactive", nullptr, TOPBAR_ICON_SIZE)); + item = this->FindTool(ID_CALIB); + item->SetBitmap(create_scaled_bitmap("ams_readonly", this, TOPBAR_ICON_SIZE)); + item = this->FindTool(ID_TITLE); /*item = this->FindTool(ID_PUBLISH); @@ -581,6 +591,23 @@ void BBLTopbar::OnDropdownToolItem(wxAuiToolBarEvent& evt) tb->SetToolSticky(evt.GetId(), false); } +void BBLTopbar::OnCalibToolItem(wxAuiToolBarEvent& evt) +{ + wxAuiToolBar* tb = static_cast(evt.GetEventObject()); + + tb->SetToolSticky(evt.GetId(), true); + + if (!m_skip_popup_calib_menu) { + PopupMenu(&m_calib_menu, wxPoint(FromDIP(1), this->GetSize().GetHeight() - 2)); + } + else { + m_skip_popup_calib_menu = false; + } + + // make sure the button is "un-stuck" + tb->SetToolSticky(evt.GetId(), false); +} + void BBLTopbar::OnMouseLeftDown(wxMouseEvent& event) { wxPoint mouse_pos = ::wxGetMousePosition(); diff --git a/src/slic3r/GUI/BBLTopbar.hpp b/src/slic3r/GUI/BBLTopbar.hpp index c825c79132..df05ef6db0 100644 --- a/src/slic3r/GUI/BBLTopbar.hpp +++ b/src/slic3r/GUI/BBLTopbar.hpp @@ -24,6 +24,7 @@ public: void OnCloseFrame(wxAuiToolBarEvent& event); void OnFileToolItem(wxAuiToolBarEvent& evt); void OnDropdownToolItem(wxAuiToolBarEvent& evt); + void OnCalibToolItem(wxAuiToolBarEvent& evt); void OnMouseLeftDClock(wxMouseEvent& mouse); void OnMouseLeftDown(wxMouseEvent& event); void OnMouseLeftUp(wxMouseEvent& event); @@ -60,6 +61,7 @@ private: wxPoint m_delta; wxMenu m_top_menu; wxMenu* m_file_menu; + wxMenu* m_calib_menu; wxAuiToolBarItem* m_title_item; wxAuiToolBarItem* m_account_item; wxAuiToolBarItem* m_model_store_item; @@ -78,4 +80,5 @@ private: int m_toolbar_h; bool m_skip_popup_file_menu; bool m_skip_popup_dropdown_menu; + bool m_skip_popup_calib_menu; }; diff --git a/src/slic3r/GUI/BackgroundSlicingProcess.hpp b/src/slic3r/GUI/BackgroundSlicingProcess.hpp index c2a1cf280c..90eebbbba8 100644 --- a/src/slic3r/GUI/BackgroundSlicingProcess.hpp +++ b/src/slic3r/GUI/BackgroundSlicingProcess.hpp @@ -120,6 +120,7 @@ public: // Get the current print. It is either m_fff_print or m_sla_print. const PrintBase* current_print() const { return m_print; } const Print* fff_print() const { return m_fff_print; } + Print* fff_print() { return m_fff_print; } const SLAPrint* sla_print() const { return m_sla_print; } // Take the project path (if provided), extract the name of the project, run it through the macro processor and save it next to the project file. // If the project_path is empty, just run output_filepath(). diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 9ba58fa4df..d2b5cf3c24 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2442,7 +2442,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) q->Bind(EVT_GLVIEWTOOLBAR_PREVIEW, [q](SimpleEvent&) { q->select_view_3D("Preview", false); }); q->Bind(EVT_GLTOOLBAR_SLICE_PLATE, &priv::on_action_slice_plate, this); q->Bind(EVT_GLTOOLBAR_SLICE_ALL, &priv::on_action_slice_all, this); - q->Bind(EVT_GLTOOLBAR_SLICE_ALL, &priv::on_action_calib_pa, this); + q->Bind(EVT_GLTOOLBAR_PA_CALIB, &priv::on_action_calib_pa, this); q->Bind(EVT_GLTOOLBAR_PRINT_PLATE, &priv::on_action_print_plate, this); q->Bind(EVT_GLTOOLBAR_SELECT_SLICED_PLATE, &priv::on_action_select_sliced_plate, this); q->Bind(EVT_GLTOOLBAR_PRINT_ALL, &priv::on_action_print_all, this); @@ -6001,11 +6001,14 @@ void Plater::priv::on_action_calib_pa(SimpleEvent&) { if (q != nullptr) { BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << ":received calib pa event\n" ; - if(fff_print.model().objects.empty()) - //add model - q->add_model(false,Slic3r::resources_dir()+"/calib/sf_placeholder.stl"); - - fff_print.is_calib_mode() = true; + const auto calib_pa_name = "PressureAdvanceTest-SF"; + if (get_project_name() != calib_pa_name) { + q->new_project(false,false,calib_pa_name); + q->add_model(false, Slic3r::resources_dir() + "/calib/sf_placeholder.stl"); + q->select_view_3D("3D"); + } + + background_process.fff_print()->is_calib_mode() = true; //BBS update extruder params and speed table before slicing Plater::setExtruderParams(Slic3r::Model::extruderParamsMap); Plater::setPrintSpeedTable(Slic3r::Model::printSpeedMap); @@ -7419,7 +7422,7 @@ Print& Plater::fff_print() { return p->fff_print; } const SLAPrint& Plater::sla_print() const { return p->sla_print; } SLAPrint& Plater::sla_print() { return p->sla_print; } -int Plater::new_project(bool skip_confirm, bool silent) +int Plater::new_project(bool skip_confirm, bool silent, const wxString& project_name) { bool transfer_preset_changes = false; // BBS: save confirm @@ -7459,7 +7462,10 @@ int Plater::new_project(bool skip_confirm, bool silent) //reset project p->project.reset(); //set project name - p->set_project_name(_L("Untitled")); + if (project_name.empty()) + p->set_project_name(_L("Untitled")); + else + p->set_project_name(project_name); Plater::TakeSnapshot snapshot(this, "New Project", UndoRedo::SnapshotType::ProjectSeparator); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index a081c30683..d81c080473 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -202,7 +202,7 @@ public: const SLAPrint& sla_print() const; SLAPrint& sla_print(); - int new_project(bool skip_confirm = false, bool silent = false); + int new_project(bool skip_confirm = false, bool silent = false, const wxString& project_name = wxString()); // BBS: save & backup void load_project(wxString const & filename = "", wxString const & originfile = "-"); int save_project(bool saveAs = false);