Reduce Orca weight: Resources to Draco (#12194)

# Description

Transforming internal 3D Files to DRC to reduce orca size

## Calibs

(Not counting temperature_tower)
Original 6,01 MB
Converted 1,57 MB

- Mesh (STL/3MF) to LossLess DRC
	- SCV-V2 116kb -> 15kb
	- fast_tower_test 66kb -> 9kb
	- ringing_tower 172kb -> 22kb
	- pressure_advance_test 124kb -> 16kb
	- tower_with_seam 2kb -> 1kb
	- retraction_tower 1.726kb -> 97kb (done at 25, if 0 = 212kb)
	- ~~temperature_tower~~ Updated, fixed, wider range and Draco in: #12103 5.075kb -> 485kb
	- vfa 1.453kb -> 179kb
- Step
	- SpeedTestStructure 1.312kb -> 86kb
		- Imported:
			- Linear Deflection: 0.002
			- Angle Deflection: 0.25
		- Exported as LossLess DRC

## Handy Models

Original 4,66 MB
Converted 1,53 MB

- STL/3MF to LossLess DRC (Maybe reduce the bit depth???)
	- 3DBenchy 2.417kb -> 570kb (done at 25, if 0 = 1.340kb)
	- calicat 43kb -> 6kb
	- ksr_fdmtest_v4 128kb -> 74kb
	- Orca_stringhell 63kb -> 37kb
	- OrcaToleranceTest 758kb -> 94kb
	- Stanford_Bunny 755kb -> 187kb (done at 25, if 0 = 316kb)
	- Voron_Design_Cube_v7 34kb -> 21kb

## Bit used

After some test with a lot of models and all possible combinations it's safe to say that >20 is BondingBox and mm3 volume the best it can.
So i used 25 just as a safe value in:

- Stanford_Bunny
- 3DBenchy
- retraction_tower

<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/bb5000cf-c1fa-4153-af2f-691ea59bc254" />
<img width="324" height="499" alt="imagen" src="https://github.com/user-attachments/assets/f38e3528-0d05-4621-984e-f107a0eec91e" />

## MultiPart 3MF

Didint change them, too much trouble for small changes.
This commit is contained in:
Ian Bassi
2026-02-08 23:48:29 -03:00
committed by GitHub
parent 2f2f0df6af
commit ed1b03fe6d
33 changed files with 20 additions and 20915 deletions

View File

@@ -544,19 +544,19 @@ wxMenu* MenuFactory::append_submenu_add_handy_model(wxMenu* menu, ModelVolumeTyp
if (file_name == L("Orca Cube"))
file_name = "OrcaCube_v2.3mf";
else if (file_name == L("Orca Tolerance Test"))
file_name = "OrcaToleranceTest.stl";
file_name = "OrcaToleranceTest.drc";
else if (file_name == L("3DBenchy"))
file_name = "3DBenchy.3mf";
file_name = "3DBenchy.drc";
else if (file_name == L("Cali Cat"))
file_name = "calicat.stl";
file_name = "calicat.drc";
else if (file_name == L("Autodesk FDM Test"))
file_name = "ksr_fdmtest_v4.3mf";
file_name = "ksr_fdmtest_v4.drc";
else if (file_name == L("Voron Cube"))
file_name = "Voron_Design_Cube_v7.3mf";
file_name = "Voron_Design_Cube_v7.drc";
else if (file_name == L("Stanford Bunny"))
file_name = "Stanford_Bunny.3mf";
file_name = "Stanford_Bunny.drc";
else if (file_name == L("Orca String Hell")) {
file_name = "Orca_stringhell.3mf";
file_name = "Orca_stringhell.drc";
is_stringhell = true;
} else
return;

View File

@@ -12170,7 +12170,7 @@ void Plater::calib_pa(const Calib_Params& params)
printer_config->set_key_value("resonance_avoidance", new ConfigOptionBool{false});
switch (params.mode) {
case CalibMode::Calib_PA_Line:
add_model(false, Slic3r::resources_dir() + "/calib/pressure_advance/pressure_advance_test.stl");
add_model(false, Slic3r::resources_dir() + "/calib/pressure_advance/pressure_advance_test.drc");
break;
case CalibMode::Calib_PA_Pattern:
_calib_pa_pattern(params);
@@ -12444,7 +12444,7 @@ void Plater::cut_horizontal(size_t obj_idx, size_t instance_idx, double z, Model
}
void Plater::_calib_pa_tower(const Calib_Params& params) {
add_model(false, Slic3r::resources_dir() + "/calib/pressure_advance/tower_with_seam.stl");
add_model(false, Slic3r::resources_dir() + "/calib/pressure_advance/tower_with_seam.drc");
auto& print_config = wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
@@ -12731,7 +12731,7 @@ void Plater::calib_max_vol_speed(const Calib_Params& params)
wxGetApp().mainframe->select_tab(size_t(MainFrame::tp3DEditor));
if (params.mode != CalibMode::Calib_Vol_speed_Tower)
return;
add_model(false, Slic3r::resources_dir() + "/calib/volumetric_speed/SpeedTestStructure.step");
add_model(false, Slic3r::resources_dir() + "/calib/volumetric_speed/SpeedTestStructure.drc");
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
@@ -12806,7 +12806,7 @@ void Plater::calib_retraction(const Calib_Params& params)
if (params.mode != CalibMode::Calib_Retraction_tower)
return;
add_model(false, Slic3r::resources_dir() + "/calib/retraction/retraction_tower.stl");
add_model(false, Slic3r::resources_dir() + "/calib/retraction/retraction_tower.drc");
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
@@ -12863,7 +12863,7 @@ void Plater::calib_VFA(const Calib_Params& params)
if (params.mode != CalibMode::Calib_VFA_Tower)
return;
add_model(false, Slic3r::resources_dir() + "/calib/vfa/VFA.stl");
add_model(false, Slic3r::resources_dir() + "/calib/vfa/vfa.drc");
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
@@ -12907,7 +12907,7 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
if (params.mode != CalibMode::Calib_Input_shaping_freq)
return;
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.drc" : "/calib/input_shaping/fast_tower_test.drc"));
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
@@ -12967,7 +12967,7 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
if (params.mode != CalibMode::Calib_Input_shaping_damp)
return;
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.drc" : "/calib/input_shaping/fast_tower_test.drc"));
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
@@ -13028,8 +13028,8 @@ void Plater::Calib_Cornering(const Calib_Params& params)
return;
const std::string cornering_model_path = params.test_model == 0
? "/calib/input_shaping/ringing_tower.stl"
: (params.test_model == 1 ? "/calib/input_shaping/fast_tower_test.stl" : "/calib/cornering/SCV-V2.stl");
? "/calib/input_shaping/ringing_tower.drc"
: (params.test_model == 1 ? "/calib/input_shaping/fast_tower_test.drc" : "/calib/cornering/SCV-V2.drc");
add_model(false, Slic3r::resources_dir() + cornering_model_path);
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;

View File

@@ -1037,7 +1037,7 @@ bool CalibUtils::calib_generic_PA(const CalibInfo &calib_info, wxString &error_m
Model model;
std::string input_file;
if (params.mode == CalibMode::Calib_PA_Line)
input_file = Slic3r::resources_dir() + "/calib/pressure_advance/pressure_advance_test.stl";
input_file = Slic3r::resources_dir() + "/calib/pressure_advance/pressure_advance_test.drc";
else if (params.mode == CalibMode::Calib_PA_Pattern)
input_file = Slic3r::resources_dir() + "/calib/pressure_advance/pa_pattern.3mf";
@@ -1139,7 +1139,7 @@ void CalibUtils::calib_max_vol_speed(const CalibInfo &calib_info, wxString &erro
return;
Model model;
std::string input_file = Slic3r::resources_dir() + "/calib/volumetric_speed/SpeedTestStructure.step";
std::string input_file = Slic3r::resources_dir() + "/calib/volumetric_speed/SpeedTestStructure.drc";
read_model_from_file(input_file, model);
DynamicPrintConfig print_config = calib_info.print_prest->config;
@@ -1217,7 +1217,7 @@ void CalibUtils::calib_VFA(const CalibInfo &calib_info, wxString &error_message)
return;
Model model;
std::string input_file = Slic3r::resources_dir() + "/calib/vfa/VFA.stl";
std::string input_file = Slic3r::resources_dir() + "/calib/vfa/vfa.drc";
read_model_from_file(input_file, model);
DynamicPrintConfig print_config = calib_info.print_prest->config;
@@ -1276,7 +1276,7 @@ void CalibUtils::calib_retraction(const CalibInfo &calib_info, wxString &error_m
return;
Model model;
std::string input_file = Slic3r::resources_dir() + "/calib/retraction/retraction_tower.stl";
std::string input_file = Slic3r::resources_dir() + "/calib/retraction/retraction_tower.drc";
read_model_from_file(input_file, model);
DynamicPrintConfig print_config = calib_info.print_prest->config;