mirror of
https://github.com/QIDITECH/QIDISlicer.git
synced 2026-02-03 09:28:44 +03:00
Add filament shrink
This commit is contained in:
@@ -64,6 +64,7 @@ compatible_printers =
|
|||||||
compatible_printers_condition =
|
compatible_printers_condition =
|
||||||
complete_objects = 0
|
complete_objects = 0
|
||||||
default_acceleration = 10000
|
default_acceleration = 10000
|
||||||
|
detect_narrow_internal_solid_infill = 1
|
||||||
dont_support_bridges = 0
|
dont_support_bridges = 0
|
||||||
draft_shield = disabled
|
draft_shield = disabled
|
||||||
elefant_foot_compensation = 0
|
elefant_foot_compensation = 0
|
||||||
@@ -121,6 +122,7 @@ max_volumetric_speed = 0
|
|||||||
min_bead_width = 85%
|
min_bead_width = 85%
|
||||||
min_feature_size = 25%
|
min_feature_size = 25%
|
||||||
min_skirt_length = 5
|
min_skirt_length = 5
|
||||||
|
mmu_segmented_region_interlocking_depth = 0
|
||||||
mmu_segmented_region_max_width = 0
|
mmu_segmented_region_max_width = 0
|
||||||
notes =
|
notes =
|
||||||
only_retract_when_crossing_perimeters = 0
|
only_retract_when_crossing_perimeters = 0
|
||||||
@@ -145,7 +147,7 @@ raft_first_layer_density = 90%
|
|||||||
raft_first_layer_expansion = 3
|
raft_first_layer_expansion = 3
|
||||||
raft_layers = 0
|
raft_layers = 0
|
||||||
resolution = 0
|
resolution = 0
|
||||||
seam_gap = 15
|
seam_gap = 15%
|
||||||
seam_position = aligned
|
seam_position = aligned
|
||||||
single_extruder_multi_material_priming = 1
|
single_extruder_multi_material_priming = 1
|
||||||
skirt_distance = 6
|
skirt_distance = 6
|
||||||
@@ -198,7 +200,7 @@ support_tree_tip_diameter = 0.8
|
|||||||
support_tree_top_rate = 15%
|
support_tree_top_rate = 15%
|
||||||
thick_bridges = 0
|
thick_bridges = 0
|
||||||
thin_walls = 0
|
thin_walls = 0
|
||||||
top_area_threshold = 100
|
top_area_threshold = 100%
|
||||||
top_fill_pattern = monotoniclines
|
top_fill_pattern = monotoniclines
|
||||||
top_infill_extrusion_width = 0.42
|
top_infill_extrusion_width = 0.42
|
||||||
top_one_wall_type = all_top
|
top_one_wall_type = all_top
|
||||||
@@ -224,8 +226,10 @@ wipe_tower_rotation_angle = 0
|
|||||||
wipe_tower_width = 40
|
wipe_tower_width = 40
|
||||||
wipe_tower_x = 180
|
wipe_tower_x = 180
|
||||||
wipe_tower_y = 140
|
wipe_tower_y = 140
|
||||||
xy_size_compensation = 0
|
xy_contour_compensation = 0
|
||||||
|
xy_hole_compensation = 0
|
||||||
|
|
||||||
|
# Machine Print preset
|
||||||
[print:*X-MAX 3*]
|
[print:*X-MAX 3*]
|
||||||
inherits = *common*
|
inherits = *common*
|
||||||
|
|
||||||
@@ -589,6 +593,9 @@ filament_loading_speed = 28
|
|||||||
filament_loading_speed_start = 3
|
filament_loading_speed_start = 3
|
||||||
filament_max_volumetric_speed = 20
|
filament_max_volumetric_speed = 20
|
||||||
filament_minimal_purge_on_wipe_tower = 15
|
filament_minimal_purge_on_wipe_tower = 15
|
||||||
|
filament_multitool_ramming = 0
|
||||||
|
filament_multitool_ramming_flow = 10
|
||||||
|
filament_multitool_ramming_volume = 10
|
||||||
filament_notes = ""
|
filament_notes = ""
|
||||||
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||||
filament_retract_before_travel = nil
|
filament_retract_before_travel = nil
|
||||||
@@ -601,15 +608,20 @@ filament_retract_lift_below = nil
|
|||||||
filament_retract_restart_extra = nil
|
filament_retract_restart_extra = nil
|
||||||
filament_retract_speed = nil
|
filament_retract_speed = nil
|
||||||
filament_settings_id =
|
filament_settings_id =
|
||||||
|
filament_shrink = 100
|
||||||
filament_soluble = 0
|
filament_soluble = 0
|
||||||
filament_spool_weight = 0
|
filament_spool_weight = 0
|
||||||
filament_toolchange_delay = 0
|
filament_toolchange_delay = 0
|
||||||
|
filament_travel_max_lift = nil
|
||||||
|
filament_travel_ramping_lift = nil
|
||||||
|
filament_travel_slope = nil
|
||||||
filament_type = PLA
|
filament_type = PLA
|
||||||
filament_unload_time = 0
|
filament_unload_time = 0
|
||||||
filament_unloading_speed = 90
|
filament_unloading_speed = 90
|
||||||
filament_unloading_speed_start = 100
|
filament_unloading_speed_start = 100
|
||||||
filament_vendor = QIDI
|
filament_vendor = QIDI
|
||||||
filament_wipe = nil
|
filament_wipe = nil
|
||||||
|
filament_wipe_distance = nil
|
||||||
first_layer_bed_temperature = 60
|
first_layer_bed_temperature = 60
|
||||||
first_layer_temperature = 210
|
first_layer_temperature = 210
|
||||||
full_fan_speed_layer = 0
|
full_fan_speed_layer = 0
|
||||||
@@ -760,6 +772,7 @@ fan_below_layer_time = 10
|
|||||||
filament_colour = #696969
|
filament_colour = #696969
|
||||||
filament_density = 1.09
|
filament_density = 1.09
|
||||||
filament_max_volumetric_speed = 10
|
filament_max_volumetric_speed = 10
|
||||||
|
filament_travel_ramping_lift = 0
|
||||||
filament_type = PA12-CF
|
filament_type = PA12-CF
|
||||||
first_layer_bed_temperature = 80
|
first_layer_bed_temperature = 80
|
||||||
first_layer_temperature = 290
|
first_layer_temperature = 290
|
||||||
@@ -783,6 +796,7 @@ fan_below_layer_time = 10
|
|||||||
filament_colour = #4F4F4F
|
filament_colour = #4F4F4F
|
||||||
filament_density = 1.20
|
filament_density = 1.20
|
||||||
filament_max_volumetric_speed = 14
|
filament_max_volumetric_speed = 14
|
||||||
|
filament_travel_ramping_lift = 0
|
||||||
filament_type = PAHT-CF
|
filament_type = PAHT-CF
|
||||||
first_layer_bed_temperature = 80
|
first_layer_bed_temperature = 80
|
||||||
first_layer_temperature = 310
|
first_layer_temperature = 310
|
||||||
@@ -828,6 +842,7 @@ fan_below_layer_time = 10
|
|||||||
filament_colour = #323232
|
filament_colour = #323232
|
||||||
filament_density = 1.30
|
filament_density = 1.30
|
||||||
filament_max_volumetric_speed = 12
|
filament_max_volumetric_speed = 12
|
||||||
|
filament_travel_ramping_lift = 0
|
||||||
filament_type = PET-CF
|
filament_type = PET-CF
|
||||||
first_layer_bed_temperature = 80
|
first_layer_bed_temperature = 80
|
||||||
first_layer_temperature = 320
|
first_layer_temperature = 320
|
||||||
@@ -1884,7 +1899,7 @@ bed_custom_texture =
|
|||||||
bed_exclude_area_0 =
|
bed_exclude_area_0 =
|
||||||
bed_exclude_area_1 =
|
bed_exclude_area_1 =
|
||||||
bed_shape = 0x0,325x0,325x325,0x325
|
bed_shape = 0x0,325x0,325x325,0x325
|
||||||
before_layer_gcode = G92 E0
|
before_layer_gcode =
|
||||||
between_objects_gcode =
|
between_objects_gcode =
|
||||||
binary_gcode = 0
|
binary_gcode = 0
|
||||||
chamber_fan = 1
|
chamber_fan = 1
|
||||||
@@ -1903,7 +1918,7 @@ gcode_flavor = klipper
|
|||||||
high_current_on_filament_swap = 0
|
high_current_on_filament_swap = 0
|
||||||
host_type = moonraker
|
host_type = moonraker
|
||||||
inherits =
|
inherits =
|
||||||
layer_gcode =
|
layer_gcode = G92 E0
|
||||||
machine_limits_usage = time_estimate_only
|
machine_limits_usage = time_estimate_only
|
||||||
machine_max_acceleration_e = 5000
|
machine_max_acceleration_e = 5000
|
||||||
machine_max_acceleration_extruding = 20000
|
machine_max_acceleration_extruding = 20000
|
||||||
@@ -1951,7 +1966,7 @@ retract_restart_extra_toolchange = 0
|
|||||||
retract_speed = 30
|
retract_speed = 30
|
||||||
silent_mode = 0
|
silent_mode = 0
|
||||||
single_extruder_multi_material = 0
|
single_extruder_multi_material = 0
|
||||||
start_gcode = PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000
|
start_gcode = PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\n
|
||||||
template_custom_gcode =
|
template_custom_gcode =
|
||||||
thumbnails =
|
thumbnails =
|
||||||
thumbnails_format = PNG
|
thumbnails_format = PNG
|
||||||
@@ -1976,6 +1991,7 @@ auxiliary_fan = 1
|
|||||||
bed_shape = 0x0,325x0,325x325,0x325
|
bed_shape = 0x0,325x0,325x325,0x325
|
||||||
chamber_temperature = 1
|
chamber_temperature = 1
|
||||||
max_print_height = 315
|
max_print_height = 315
|
||||||
|
retract_lift_below = 314
|
||||||
thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG
|
thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG
|
||||||
|
|
||||||
[printer:X-MAX 3 0.2 nozzle]
|
[printer:X-MAX 3 0.2 nozzle]
|
||||||
@@ -2022,6 +2038,7 @@ auxiliary_fan = 1
|
|||||||
bed_shape = 0x0,280x0,280x280,0x280
|
bed_shape = 0x0,280x0,280x280,0x280
|
||||||
chamber_temperature = 1
|
chamber_temperature = 1
|
||||||
max_print_height = 270
|
max_print_height = 270
|
||||||
|
retract_lift_below = 269
|
||||||
thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG
|
thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG
|
||||||
|
|
||||||
[printer:X-Plus 3 0.2 nozzle]
|
[printer:X-Plus 3 0.2 nozzle]
|
||||||
@@ -2066,6 +2083,7 @@ inherits = *common*
|
|||||||
printer_model = X-smart 3
|
printer_model = X-smart 3
|
||||||
bed_shape = 0x0,175x0,175x180,0x180
|
bed_shape = 0x0,175x0,175x180,0x180
|
||||||
max_print_height = 170
|
max_print_height = 170
|
||||||
|
retract_lift_below = 169
|
||||||
thumbnails = 205x205/QIDI, 140x140/QIDI, 110x110/PNG
|
thumbnails = 205x205/QIDI, 140x140/QIDI, 110x110/PNG
|
||||||
|
|
||||||
[printer:X-smart 3 0.2 nozzle]
|
[printer:X-smart 3 0.2 nozzle]
|
||||||
|
|||||||
@@ -190,6 +190,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||||||
} else if (
|
} else if (
|
||||||
opt_key == "first_layer_height"
|
opt_key == "first_layer_height"
|
||||||
|| opt_key == "nozzle_diameter"
|
|| opt_key == "nozzle_diameter"
|
||||||
|
//Y23
|
||||||
|
|| opt_key == "filament_shrink"
|
||||||
|| opt_key == "resolution"
|
|| opt_key == "resolution"
|
||||||
// Spiral Vase forces different kind of slicing than the normal model:
|
// Spiral Vase forces different kind of slicing than the normal model:
|
||||||
// In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
|
// In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
|
||||||
|
|||||||
@@ -1205,6 +1205,19 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->min = 0;
|
def->min = 0;
|
||||||
def->set_default_value(new ConfigOptionFloats { 1.75 });
|
def->set_default_value(new ConfigOptionFloats { 1.75 });
|
||||||
|
|
||||||
|
//Y23
|
||||||
|
def = this->add("filament_shrink", coPercents);
|
||||||
|
def->label = L("Shrinkage");
|
||||||
|
def->tooltip = L("Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm)."
|
||||||
|
" The part will be scaled in xy to compensate."
|
||||||
|
" Only the filament used for the perimeter is taken into account."
|
||||||
|
"\nBe sure to allow enough space between objects, as this compensation is done after the checks.");
|
||||||
|
def->sidetext = L("%");
|
||||||
|
def->ratio_over = "";
|
||||||
|
def->min = 10;
|
||||||
|
def->mode = comExpert;
|
||||||
|
def->set_default_value(new ConfigOptionPercents{ 100 });
|
||||||
|
|
||||||
def = this->add("filament_density", coFloats);
|
def = this->add("filament_density", coFloats);
|
||||||
def->label = L("Density");
|
def->label = L("Density");
|
||||||
def->tooltip = L("Enter your filament density here. This is only for statistical information. "
|
def->tooltip = L("Enter your filament density here. This is only for statistical information. "
|
||||||
|
|||||||
@@ -839,6 +839,8 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||||||
((ConfigOptionInts, fan_below_layer_time))
|
((ConfigOptionInts, fan_below_layer_time))
|
||||||
((ConfigOptionStrings, filament_colour))
|
((ConfigOptionStrings, filament_colour))
|
||||||
((ConfigOptionStrings, filament_notes))
|
((ConfigOptionStrings, filament_notes))
|
||||||
|
//Y23
|
||||||
|
((ConfigOptionPercents, filament_shrink))
|
||||||
((ConfigOptionFloat, first_layer_acceleration))
|
((ConfigOptionFloat, first_layer_acceleration))
|
||||||
((ConfigOptionInts, first_layer_bed_temperature))
|
((ConfigOptionInts, first_layer_bed_temperature))
|
||||||
((ConfigOptionFloatOrPercent, first_layer_extrusion_width))
|
((ConfigOptionFloatOrPercent, first_layer_extrusion_width))
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ static std::vector<PrintObjectRegions::LayerRangeRegions>::const_iterator layer_
|
|||||||
}
|
}
|
||||||
|
|
||||||
static std::vector<std::vector<ExPolygons>> slices_to_regions(
|
static std::vector<std::vector<ExPolygons>> slices_to_regions(
|
||||||
|
const PrintConfig &print_config,
|
||||||
ModelVolumePtrs model_volumes,
|
ModelVolumePtrs model_volumes,
|
||||||
const PrintObjectRegions &print_object_regions,
|
const PrintObjectRegions &print_object_regions,
|
||||||
const std::vector<float> &zs,
|
const std::vector<float> &zs,
|
||||||
@@ -396,6 +397,21 @@ static std::vector<std::vector<ExPolygons>> slices_to_regions(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Y23
|
||||||
|
for (const std::unique_ptr<PrintRegion>& pr : print_object_regions.all_regions) {
|
||||||
|
if (pr.get()) {
|
||||||
|
std::vector<ExPolygons>& region_polys = slices_by_region[pr->print_object_region_id()];
|
||||||
|
const size_t extruder_id = pr->extruder(FlowRole::frPerimeter) - 1;
|
||||||
|
double scale = print_config.filament_shrink.values[extruder_id] * 0.01;
|
||||||
|
if (scale != 1) {
|
||||||
|
scale = 1 / scale;
|
||||||
|
for (ExPolygons& polys : region_polys)
|
||||||
|
for (ExPolygon& poly : polys)
|
||||||
|
poly.scale(scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return slices_by_region;
|
return slices_by_region;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -698,7 +714,7 @@ void PrintObject::slice_volumes()
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<float> slice_zs = zs_from_layers(m_layers);
|
std::vector<float> slice_zs = zs_from_layers(m_layers);
|
||||||
std::vector<std::vector<ExPolygons>> region_slices = slices_to_regions(this->model_object()->volumes, *m_shared_regions, slice_zs,
|
std::vector<std::vector<ExPolygons>> region_slices = slices_to_regions(print->config(), this->model_object()->volumes, *m_shared_regions, slice_zs,
|
||||||
slice_volumes_inner(
|
slice_volumes_inner(
|
||||||
print->config(), this->config(), this->trafo_centered(),
|
print->config(), this->config(), this->trafo_centered(),
|
||||||
this->model_object()->volumes, m_shared_regions->layer_ranges, slice_zs, throw_on_cancel_callback),
|
this->model_object()->volumes, m_shared_regions->layer_ranges, slice_zs, throw_on_cancel_callback),
|
||||||
|
|||||||
@@ -2165,6 +2165,8 @@ void TabFilament::build()
|
|||||||
optgroup->append_single_option_line("filament_diameter");
|
optgroup->append_single_option_line("filament_diameter");
|
||||||
optgroup->append_single_option_line("extrusion_multiplier");
|
optgroup->append_single_option_line("extrusion_multiplier");
|
||||||
optgroup->append_single_option_line("filament_density");
|
optgroup->append_single_option_line("filament_density");
|
||||||
|
//Y23
|
||||||
|
optgroup->append_single_option_line("filament_shrink");
|
||||||
optgroup->append_single_option_line("filament_cost");
|
optgroup->append_single_option_line("filament_cost");
|
||||||
optgroup->append_single_option_line("filament_spool_weight");
|
optgroup->append_single_option_line("filament_spool_weight");
|
||||||
//B
|
//B
|
||||||
|
|||||||
Reference in New Issue
Block a user