mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-18 11:02:08 +00: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:
committed by
GitHub
parent
506fde8f86
commit
2a0cfdb356
@@ -1448,6 +1448,17 @@ static std::vector<CubeProperties> make_cubes_properties(double max_cube_edge_le
|
|||||||
if (edge_length > max_cube_edge_length)
|
if (edge_length > max_cube_edge_length)
|
||||||
break;
|
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;
|
return cubes_properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -936,10 +936,13 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
|||||||
for (auto el : { "lateral_lattice_angle_1", "lateral_lattice_angle_2"})
|
for (auto el : { "lateral_lattice_angle_1", "lateral_lattice_angle_2"})
|
||||||
toggle_line(el, lattice_options);
|
toggle_line(el, lattice_options);
|
||||||
|
|
||||||
//Orca: disable infill_direction/solid_infill_direction if sparse_infill_rotate_template/solid_infill_rotate_template is not empty value
|
// Adaptative Cubic and support cubic infill patterns do not support infill rotation.
|
||||||
toggle_field("infill_direction", config->opt_string("sparse_infill_rotate_template") == "");
|
bool FillAdaptive = (pattern == InfillPattern::ipAdaptiveCubic || pattern == InfillPattern::ipSupportCubic);
|
||||||
toggle_field("solid_infill_direction", config->opt_string("solid_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);
|
toggle_line("infill_overhang_angle", config->opt_enum<InfillPattern>("sparse_infill_pattern") == InfillPattern::ipLateralHoneycomb);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user