From 28de7f5504181b6898c403264fda175a9b90ff24 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Tue, 26 Oct 2021 12:09:46 +0200 Subject: [PATCH 1/2] Support generator: Merging of bottom contacts with top contacts and interface layers if possible. This should always be possible with soluble supports and it should have been done long time ago. For non-soluble supports, it may or may not be possible to merge these layers: They will only be merged if they are extruded without bridging and with the same layer height. Fixes Support enforcer interfaces not generated as needed. #6784 or at least some of the issues reported. Experimental: Added experimental filtering of propagated support columns to two extrusions, overlapping by maximum 20%. This filtering step will remove spurious columns that do not support anything, but the filtering step may remove supports supporting tiny islands. Those supports would likely not be printable anyways without the user intervention (extending the supported area by painting). --- src/libslic3r/SupportMaterial.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index a668a385b..9e1eb3e75 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -945,6 +945,8 @@ public: { { union_ex(*m_support_polygons) }, { "src", "green", 0.5f } }, }); #endif /* SLIC3R_DEBUG */ + //FIXME do we want to trim with the object here? On one side the columns will be thinner, on the other side support interfaces may disappear for snug supports. + // return diff(smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance), *m_trimming_polygons); return smooth_outward(closing(*m_support_polygons, closing_distance, SUPPORT_SURFACES_OFFSET_PARAMETERS), smoothing_distance); } assert(false); @@ -2346,7 +2348,9 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta Polygons &layer_support_area = layer_support_areas[layer_id]; Polygons *layer_buildplate_covered = buildplate_covered.empty() ? nullptr : &buildplate_covered[layer_id]; - task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered + // Filtering the propagated support columns to two extrusions, overlapping by maximum 20%. + float column_propagation_filtering_radius = scaled(0.8 * 0.5 * (m_support_params.support_material_flow.spacing() + m_support_params.support_material_flow.width())); + task_group.run([&grid_params, &overhangs_projection, &overhangs_projection_raw, &layer, &layer_support_area, layer_buildplate_covered, column_propagation_filtering_radius #ifdef SLIC3R_DEBUG , iRun, layer_id #endif /* SLIC3R_DEBUG */ @@ -2357,6 +2361,8 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::bottom_conta , iRun, layer_id, "general" #endif /* SLIC3R_DEBUG */ ); + // When propagating support areas downwards, stop propagating the support column if it becomes too thin to be printable. + //overhangs_projection = opening(overhangs_projection, column_propagation_filtering_radius); }); Polygons layer_support_area_enforcers; @@ -4115,7 +4121,10 @@ void PrintObjectSupportMaterial::generate_toolpaths( base_layer.merge(std::move(bottom_contact_layer)); else if (base_layer.empty() && ! bottom_contact_layer.empty() && ! bottom_contact_layer.layer->bridging) base_layer = std::move(bottom_contact_layer); - } + } else if (bottom_contact_layer.could_merge(top_contact_layer)) + top_contact_layer.merge(std::move(bottom_contact_layer)); + else if (bottom_contact_layer.could_merge(interface_layer)) + bottom_contact_layer.merge(std::move(interface_layer)); #if 0 if ( ! interface_layer.empty() && ! base_layer.empty()) { From fe748ca43bdf40f0852d7f659bd024f30853579f Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Tue, 26 Oct 2021 13:38:49 +0200 Subject: [PATCH 2/2] 1.4.0-beta1 Sync with PrusaSlicer-settings --- resources/profiles/PrusaResearch.idx | 3 +++ resources/profiles/PrusaResearch.ini | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index cef8c654d..f73bedebf 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.4.0-beta0 +1.4.0-beta1 Updated pad wall slope angle for SLA printers. Updated Filatech Filacarbon profile for Prusa MINI. 1.4.0-beta0 Added multiple Filatech and BASF filament profiles. Added material profiles for SL1S. min_slic3r_version = 2.4.0-alpha0 1.4.0-alpha8 Added material profiles for Prusament Resin. Detect bridging perimeters enabled by default. @@ -14,10 +15,12 @@ min_slic3r_version = 2.4.0-alpha0 1.3.0-alpha1 Added Prusament PCCF. Increased travel acceleration for Prusa MINI. Updated start g-code for Prusa MINI. Added multiple add:north and Extrudr filament profiles. Updated Z travel speed values. 1.3.0-alpha0 Disabled thick bridges, updated support settings. min_slic3r_version = 2.3.2-alpha0 +1.3.3 Added multiple profiles for Filatech filaments. Added material profiles for SL1S SPEED. Updated SLA print settings. 1.3.2 Added material profiles for Prusament Resin. 1.3.1 Added multiple add:north and Extrudr filament profiles. Updated support head settings (SL1S). 1.3.0 Added SL1S SPEED profiles. min_slic3r_version = 2.3.0-rc1 +1.2.10 Added multiple profiles for Filatech filaments. Updated SLA print settings (pad wall slope angle). 1.2.9 Added material profiles for Prusament Resin. 1.2.8 Added multiple add:north and Extrudr filament profiles. 1.2.7 Updated "Prusament PC Blend Carbon Fiber" profile for Prusa MINI. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index e243963ce..25ce1c270 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.4.0-beta0 +config_version = 1.4.0-beta1 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2775,6 +2775,7 @@ compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI [filament:Filatech FilaCarbon @MINI] inherits = Filatech FilaCarbon; *ABSMINI* +first_layer_bed_temperature = 100 compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MINI" [filament:Filatech FilaPLA] @@ -4475,7 +4476,7 @@ pad_enable = 1 pad_max_merge_distance = 50 pad_wall_height = 0 pad_wall_thickness = 1 -pad_wall_slope = 90 +pad_wall_slope = 45 slice_closing_radius = 0.005 support_base_diameter = 3 support_base_height = 1