diff --git a/resources/handy_models/OrcaCube_v2.3mf b/resources/handy_models/OrcaCube_v2.3mf deleted file mode 100644 index ede7d884b9..0000000000 Binary files a/resources/handy_models/OrcaCube_v2.3mf and /dev/null differ diff --git a/resources/handy_models/OrcaCube_v2.drc b/resources/handy_models/OrcaCube_v2.drc new file mode 100644 index 0000000000..799dd8a9fa Binary files /dev/null and b/resources/handy_models/OrcaCube_v2.drc differ diff --git a/resources/handy_models/OrcaPlug_v2.drc b/resources/handy_models/OrcaPlug_v2.drc new file mode 100644 index 0000000000..c887aba046 Binary files /dev/null and b/resources/handy_models/OrcaPlug_v2.drc differ diff --git a/resources/handy_models/OrcaSliced.3mf b/resources/handy_models/OrcaSliced.3mf new file mode 100644 index 0000000000..d60a6d31e3 Binary files /dev/null and b/resources/handy_models/OrcaSliced.3mf differ diff --git a/resources/handy_models/OrcaSliced.drc b/resources/handy_models/OrcaSliced.drc new file mode 100644 index 0000000000..1dc9072b35 Binary files /dev/null and b/resources/handy_models/OrcaSliced.drc differ diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 90359cc456..2b128eb85a 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -573,35 +573,51 @@ wxMenu* MenuFactory::append_submenu_add_generic(wxMenu* menu, ModelVolumeType ty wxMenu* MenuFactory::append_submenu_add_handy_model(wxMenu* menu, ModelVolumeType type) { auto sub_menu = new wxMenu; - for (auto &item : {L("Orca Cube"), L("Orca Tolerance Test"), L("3DBenchy"), L("Cali Cat"), L("Autodesk FDM Test"), + for (auto &item : {L("Orca Cube"), L("OrcaSliced Combo"), L("Orca Tolerance Test"), L("3DBenchy"), L("Cali Cat"), L("Autodesk FDM Test"), L("Voron Cube"), L("Stanford Bunny"), L("Orca String Hell") }) { append_menu_item( sub_menu, wxID_ANY, _(item), "", [type, item](wxCommandEvent&) { std::vector input_files; bool is_stringhell = false; - std::string file_name = item; - if (file_name == L("Orca Cube")) - file_name = "OrcaCube_v2.3mf"; - else if (file_name == L("Orca Tolerance Test")) - file_name = "OrcaToleranceTest.drc"; - else if (file_name == L("3DBenchy")) - file_name = "3DBenchy.drc"; - else if (file_name == L("Cali Cat")) - file_name = "calicat.drc"; - else if (file_name == L("Autodesk FDM Test")) - file_name = "ksr_fdmtest_v4.drc"; - else if (file_name == L("Voron Cube")) - file_name = "Voron_Design_Cube_v7.drc"; - else if (file_name == L("Stanford Bunny")) - file_name = "Stanford_Bunny.drc"; - else if (file_name == L("Orca String Hell")) { - file_name = "Orca_stringhell.drc"; + std::vector file_names; + bool arrange_after_import = false; + if (item == L("Orca Cube")){ + file_names = { "OrcaCube_v2.drc", "OrcaPlug_v2.drc"}; + arrange_after_import = true; + } + else if (item == L("OrcaSliced Combo")) + { + file_names = { "OrcaSliced.3mf", "OrcaCube_v2.drc", "OrcaPlug_v2.drc" }; + arrange_after_import = true; + } + else if (item == L("Orca Tolerance Test")) + file_names = { "OrcaToleranceTest.drc" }; + else if (item == L("3DBenchy")) + file_names = { "3DBenchy.drc" }; + else if (item == L("Cali Cat")) + file_names = { "calicat.drc" }; + else if (item == L("Autodesk FDM Test")) + file_names = { "ksr_fdmtest_v4.drc" }; + else if (item == L("Voron Cube")) + file_names = { "Voron_Design_Cube_v7.drc" }; + else if (item == L("Stanford Bunny")) + file_names = { "Stanford_Bunny.drc" }; + else if (item == L("Orca String Hell")) { + file_names = { "Orca_stringhell.drc" }; is_stringhell = true; } else return; - input_files.push_back((boost::filesystem::path(Slic3r::resources_dir()) / "handy_models" / file_name)); + + input_files.reserve(file_names.size()); + for (const auto& file_name : file_names) + input_files.push_back((boost::filesystem::path(Slic3r::resources_dir()) / "handy_models" / file_name)); + plater()->load_files(input_files, LoadStrategy::LoadModel); + if (arrange_after_import) { + plater()->set_prepare_state(Job::PREPARE_STATE_MENU); + plater()->arrange(); + } // Suggest to change settings for stringhell // This serves as mini tutorial for new users