mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	ENH: add slice_closing_radius back
For github issue #182 Signed-off-by: salt.wei <salt.wei@bambulab.com> Change-Id: I38c69bed03b6d70cb21d58b5f724b4dc3a8992a4
This commit is contained in:
		
							parent
							
								
									1a3a01a39f
								
							
						
					
					
						commit
						72221d2760
					
				
					 8 changed files with 24 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -643,7 +643,7 @@ std::string Preset::get_filament_type(std::string &display_filament_type)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static std::vector<std::string> s_Preset_print_options {
 | 
			
		||||
    "layer_height", "initial_layer_print_height", "wall_loops", "spiral_mode",
 | 
			
		||||
    "layer_height", "initial_layer_print_height", "wall_loops", "slice_closing_radius", "spiral_mode",
 | 
			
		||||
    "top_shell_layers", "top_shell_thickness", "bottom_shell_layers", "bottom_shell_thickness",
 | 
			
		||||
    "reduce_crossing_wall", "detect_thin_wall", "detect_overhang_wall",
 | 
			
		||||
    "seam_position", "wall_infill_order", "sparse_infill_density", "sparse_infill_pattern", "top_surface_pattern", "bottom_surface_pattern",
 | 
			
		||||
| 
						 | 
				
			
			@ -749,6 +749,7 @@ static std::vector<std::string> s_Preset_sla_print_options {
 | 
			
		|||
    "support_object_elevation",
 | 
			
		||||
    "support_points_density_relative",
 | 
			
		||||
    "support_points_minimal_distance",
 | 
			
		||||
    "slice_closing_radius",
 | 
			
		||||
    "pad_enable",
 | 
			
		||||
    "pad_wall_thickness",
 | 
			
		||||
    "pad_wall_height",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2059,6 +2059,16 @@ void PrintConfigDef::init_fff_params()
 | 
			
		|||
    def->mode = comDevelop;
 | 
			
		||||
    def->set_default_value(new ConfigOptionBool(false));
 | 
			
		||||
 | 
			
		||||
    def = this->add("slice_closing_radius", coFloat);
 | 
			
		||||
    def->label = L("Slice gap closing radius");
 | 
			
		||||
    def->category = L("Quality");
 | 
			
		||||
    def->tooltip = L("Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. "
 | 
			
		||||
        "The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low.");
 | 
			
		||||
    def->sidetext = L("mm");
 | 
			
		||||
    def->min = 0;
 | 
			
		||||
    def->mode = comAdvanced;
 | 
			
		||||
    def->set_default_value(new ConfigOptionFloat(0.049));
 | 
			
		||||
 | 
			
		||||
    def = this->add("enable_support", coBool);
 | 
			
		||||
    //BBS: remove material behind support
 | 
			
		||||
    def->label = L("Enable support");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -580,6 +580,7 @@ PRINT_CONFIG_CLASS_DEFINE(
 | 
			
		|||
    ((ConfigOptionFloat,               raft_first_layer_expansion))
 | 
			
		||||
    ((ConfigOptionInt,                 raft_layers))
 | 
			
		||||
    ((ConfigOptionEnum<SeamPosition>,  seam_position))
 | 
			
		||||
    ((ConfigOptionFloat,               slice_closing_radius))
 | 
			
		||||
    ((ConfigOptionBool,                enable_support))
 | 
			
		||||
    // Automatic supports (generated based on support_threshold_angle).
 | 
			
		||||
    ((ConfigOptionEnum<SupportType>,   support_type))
 | 
			
		||||
| 
						 | 
				
			
			@ -887,6 +888,8 @@ PRINT_CONFIG_CLASS_DEFINE(
 | 
			
		|||
    //Number of the layers needed for the exposure time fade [3;20]
 | 
			
		||||
    ((ConfigOptionInt,  faded_layers))/*= 10*/
 | 
			
		||||
 | 
			
		||||
    ((ConfigOptionFloat, slice_closing_radius))
 | 
			
		||||
 | 
			
		||||
    // Enabling or disabling support creation
 | 
			
		||||
    ((ConfigOptionBool,  supports_enable))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -679,7 +679,8 @@ bool PrintObject::invalidate_state_by_config_options(
 | 
			
		|||
            //BBS
 | 
			
		||||
            || opt_key == "adaptive_layer_height"
 | 
			
		||||
            || opt_key == "raft_layers"
 | 
			
		||||
            || opt_key == "raft_contact_distance") {
 | 
			
		||||
            || opt_key == "raft_contact_distance"
 | 
			
		||||
            || opt_key == "slice_closing_radius") {
 | 
			
		||||
            steps.emplace_back(posSlice);
 | 
			
		||||
		} else if (
 | 
			
		||||
               opt_key == "elefant_foot_compensation"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -136,7 +136,7 @@ static std::vector<VolumeSlices> slice_volumes_inner(
 | 
			
		|||
        slicing_ranges.reserve(layer_ranges.size());
 | 
			
		||||
 | 
			
		||||
    MeshSlicingParamsEx params_base;
 | 
			
		||||
    params_base.closing_radius = g_config_slice_closing_radius;
 | 
			
		||||
    params_base.closing_radius = print_object_config.slice_closing_radius.value;
 | 
			
		||||
    params_base.extra_offset   = 0;
 | 
			
		||||
    params_base.trafo          = object_trafo;
 | 
			
		||||
    //BBS: 0.0025mm is safe enough to simplify the data to speed slicing up for high-resolution model.
 | 
			
		||||
| 
						 | 
				
			
			@ -1040,7 +1040,7 @@ void PrintObject::slice_volumes()
 | 
			
		|||
                        if (min_growth < 0.f || elfoot > 0.f) {
 | 
			
		||||
                            // Apply the negative XY compensation. (the ones that is <0)
 | 
			
		||||
                            ExPolygons trimming;
 | 
			
		||||
                            static const float eps = float(scale_(g_config_slice_closing_radius) * 1.5);
 | 
			
		||||
                            static const float eps = float(scale_(m_config.slice_closing_radius.value) * 1.5);
 | 
			
		||||
                            if (elfoot > 0.f) {
 | 
			
		||||
                                lslices_1st_layer = offset_ex(layer->merged(eps), -eps);
 | 
			
		||||
                                trimming = Slic3r::elephant_foot_compensation(lslices_1st_layer,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -930,7 +930,8 @@ bool SLAPrintObject::invalidate_state_by_config_options(const std::vector<t_conf
 | 
			
		|||
            || opt_key == "supports_enable"
 | 
			
		||||
            || opt_key == "support_object_elevation"
 | 
			
		||||
            || opt_key == "pad_around_object"
 | 
			
		||||
            || opt_key == "pad_around_object_everywhere") {
 | 
			
		||||
            || opt_key == "pad_around_object_everywhere"
 | 
			
		||||
            || opt_key == "slice_closing_radius") {
 | 
			
		||||
            steps.emplace_back(slaposObjectSlice);
 | 
			
		||||
        } else if (
 | 
			
		||||
               opt_key == "support_points_density_relative"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -518,7 +518,7 @@ void SLAPrint::Steps::slice_model(SLAPrintObject &po)
 | 
			
		|||
 | 
			
		||||
    po.m_model_slices.clear();
 | 
			
		||||
    MeshSlicingParamsEx params;
 | 
			
		||||
    params.closing_radius = float(g_config_slice_closing_radius);
 | 
			
		||||
    params.closing_radius = float(po.config().slice_closing_radius.value);
 | 
			
		||||
    //BBS: always regular mode
 | 
			
		||||
    //switch (po.config().slicing_mode.value) {
 | 
			
		||||
    //case SlicingMode::Regular:    params.mode = MeshSlicingParams::SlicingMode::Regular; break;
 | 
			
		||||
| 
						 | 
				
			
			@ -749,7 +749,7 @@ void SLAPrint::Steps::slice_supports(SLAPrintObject &po) {
 | 
			
		|||
        for(auto& rec : po.m_slice_index) heights.emplace_back(rec.slice_level());
 | 
			
		||||
 | 
			
		||||
        sd->support_slices = sd->support_tree_ptr->slice(
 | 
			
		||||
            heights, float(g_config_slice_closing_radius));
 | 
			
		||||
            heights, float(po.config().slice_closing_radius.value));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (size_t i = 0; i < sd->support_slices.size() && i < po.m_slice_index.size(); ++i)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue