gui integration, overhang angle hack
This commit is contained in:
parent
14f109e703
commit
62c3ca5e99
4 changed files with 13 additions and 11 deletions
|
@ -424,7 +424,9 @@ void PrintObject::generate_support_spots()
|
|||
std::all_of(this->model_object()->volumes.begin(), this->model_object()->volumes.end(),
|
||||
[](const ModelVolume* mv){return mv->supported_facets.empty();})
|
||||
) {
|
||||
SupportSpotsGenerator::Issues issues = SupportSpotsGenerator::full_search(this);
|
||||
SupportSpotsGenerator::Params params{};
|
||||
params.overhang_angle_deg = 90.001f - this->m_config.support_material_threshold;
|
||||
SupportSpotsGenerator::Issues issues = SupportSpotsGenerator::full_search(this, params);
|
||||
auto obj_transform = this->trafo_centered();
|
||||
for (ModelVolume *model_volume : this->model_object()->volumes) {
|
||||
if (model_volume->is_model_part()) {
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
#include "libslic3r/ClipperUtils.hpp"
|
||||
#include "Geometry/ConvexHull.hpp"
|
||||
|
||||
#define DETAILED_DEBUG_LOGS
|
||||
#define DEBUG_FILES
|
||||
//#define DETAILED_DEBUG_LOGS
|
||||
//#define DEBUG_FILES
|
||||
|
||||
#ifdef DEBUG_FILES
|
||||
#include <boost/nowide/cstdio.hpp>
|
||||
|
@ -406,8 +406,8 @@ void check_extrusion_entity_stability(const ExtrusionEntity *entity,
|
|||
bool in_layer_dist_condition = bridging_acc.distance
|
||||
> params.bridge_distance / (1.0f + (bridging_acc.max_curvature
|
||||
* params.bridge_distance_decrease_by_curvature_factor / PI));
|
||||
bool between_layers_condition = fabs(dist_from_prev_layer) > 5.0f*overhang_dist ||
|
||||
prev_layer_lines.get_line(nearest_line_idx).malformation > 0.3f;
|
||||
bool between_layers_condition = fabs(dist_from_prev_layer) > 3.0f*flow_width ||
|
||||
prev_layer_lines.get_line(nearest_line_idx).malformation > 0.6f;
|
||||
|
||||
if (in_layer_dist_condition && between_layers_condition) {
|
||||
issues.support_points.emplace_back(to_vec3f(current_line.b), 0.0f, Vec3f(0.f, 0.0f, -1.0f));
|
||||
|
@ -417,13 +417,13 @@ void check_extrusion_entity_stability(const ExtrusionEntity *entity,
|
|||
}
|
||||
|
||||
//malformation
|
||||
if (fabs(dist_from_prev_layer) < overhang_dist * 5.0f) {
|
||||
if (fabs(dist_from_prev_layer) < 3.0f*flow_width) {
|
||||
const ExtrusionLine &nearest_line = prev_layer_lines.get_line(nearest_line_idx);
|
||||
current_line.malformation += 0.9 * nearest_line.malformation;
|
||||
}
|
||||
if (dist_from_prev_layer > overhang_dist) {
|
||||
malformation_acc.add_distance(current_line.len);
|
||||
current_line.malformation += 0.1f
|
||||
current_line.malformation += 0.3f
|
||||
* (0.8f + 0.2f * malformation_acc.max_curvature / (1.0f + 0.5f * malformation_acc.distance));
|
||||
} else {
|
||||
malformation_acc.reset();
|
||||
|
|
|
@ -11,7 +11,7 @@ struct Params {
|
|||
// the algorithm should use the following units for all computations: distance [mm], mass [g], time [s], force [g*mm/s^2]
|
||||
const float bridge_distance = 12.0f; //mm
|
||||
const float bridge_distance_decrease_by_curvature_factor = 5.0f; // allowed bridge distance = bridge_distance / (this factor * (curvature / PI) )
|
||||
const float overhang_angle_deg = 55.0f;
|
||||
float overhang_angle_deg = 50.0f;
|
||||
|
||||
const float min_distance_between_support_points = 3.0f; //mm
|
||||
const float support_points_interface_radius = 0.6f; // mm
|
||||
|
@ -21,8 +21,8 @@ struct Params {
|
|||
const float filament_density = 1.25e-3f ; // g/mm^3 ; Common filaments are very lightweight, so precise number is not that important
|
||||
const float bed_adhesion_yield_strength = 0.128f * 1e6f; //MPa * 1e^6 = (g*mm/s^2)/mm^2 = g/(mm*s^2); yield strength of the bed surface
|
||||
const float material_yield_strength = 33.0f * 1e6f; // (g*mm/s^2)/mm^2; 33 MPa is yield strength of ABS, which has the lowest yield strength from common materials.
|
||||
const float standard_extruder_conflict_force = 20.0f * gravity_constant; // force that can occasionally push the model due to various factors (filament leaks, small curling, ... );
|
||||
const float malformations_additive_conflict_extruder_force = 150.0f * gravity_constant; // for areas with possible high layered curled filaments
|
||||
const float standard_extruder_conflict_force = 50.0f * gravity_constant; // force that can occasionally push the model due to various factors (filament leaks, small curling, ... );
|
||||
const float malformations_additive_conflict_extruder_force = 200.0f * gravity_constant; // for areas with possible high layered curled filaments
|
||||
};
|
||||
|
||||
struct SupportPoint {
|
||||
|
|
|
@ -282,7 +282,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig* config)
|
|||
"dont_support_bridges", "support_material_extrusion_width", "support_material_contact_distance",
|
||||
"support_material_xy_spacing" })
|
||||
toggle_field(el, have_support_material);
|
||||
toggle_field("support_material_threshold", have_support_material_auto);
|
||||
// toggle_field("support_material_threshold", have_support_material_auto);
|
||||
toggle_field("support_material_bottom_contact_distance", have_support_material && ! have_support_soluble);
|
||||
toggle_field("support_material_closing_radius", have_support_material && support_material_style == smsSnug);
|
||||
|
||||
|
|
Loading…
Reference in a new issue