mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-12-29 02:40:33 -07:00
Fill Adaptive disconnecting from walls at low density. Disable rotation as infill type does not support it (#11728)
Fix adaptive fill issues - Disconnecting from walls at low density - Not supporting rotation Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com>
This commit is contained in:
parent
506fde8f86
commit
2a0cfdb356
2 changed files with 18 additions and 4 deletions
|
|
@ -1448,6 +1448,17 @@ static std::vector<CubeProperties> make_cubes_properties(double max_cube_edge_le
|
|||
if (edge_length > max_cube_edge_length)
|
||||
break;
|
||||
}
|
||||
// Orca: Ensure at least 2 levels so build_octree() will insert triangles.
|
||||
// Fixes scenario where adaptive fill is disconnected from walls on low densities
|
||||
if (cubes_properties.size() == 1) {
|
||||
CubeProperties p = cubes_properties.back();
|
||||
p.edge_length *= 2.0;
|
||||
p.height = p.edge_length * sqrt(3);
|
||||
p.diagonal_length = p.edge_length * sqrt(2);
|
||||
p.line_z_distance = p.edge_length / sqrt(3);
|
||||
p.line_xy_distance = p.edge_length / sqrt(6);
|
||||
cubes_properties.push_back(p);
|
||||
}
|
||||
return cubes_properties;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -935,12 +935,15 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
|||
bool lattice_options = config->opt_enum<InfillPattern>("sparse_infill_pattern") == InfillPattern::ipLateralLattice;
|
||||
for (auto el : { "lateral_lattice_angle_1", "lateral_lattice_angle_2"})
|
||||
toggle_line(el, lattice_options);
|
||||
|
||||
// Adaptative Cubic and support cubic infill patterns do not support infill rotation.
|
||||
bool FillAdaptive = (pattern == InfillPattern::ipAdaptiveCubic || pattern == InfillPattern::ipSupportCubic);
|
||||
|
||||
//Orca: disable infill_direction/solid_infill_direction if sparse_infill_rotate_template/solid_infill_rotate_template is not empty value
|
||||
toggle_field("infill_direction", config->opt_string("sparse_infill_rotate_template") == "");
|
||||
//Orca: disable infill_direction/solid_infill_direction if sparse_infill_rotate_template/solid_infill_rotate_template is not empty value and adaptive cubic/support cubic infill pattern is not selected
|
||||
toggle_field("sparse_infill_rotate_template", !FillAdaptive);
|
||||
toggle_field("infill_direction", config->opt_string("sparse_infill_rotate_template") == "" && !FillAdaptive);
|
||||
toggle_field("solid_infill_direction", config->opt_string("solid_infill_rotate_template") == "");
|
||||
|
||||
|
||||
|
||||
toggle_line("infill_overhang_angle", config->opt_enum<InfillPattern>("sparse_infill_pattern") == InfillPattern::ipLateralHoneycomb);
|
||||
|
||||
std::string printer_type = wxGetApp().preset_bundle->printers.get_edited_preset().get_printer_type(wxGetApp().preset_bundle);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue