diff --git a/CMakeLists.txt b/CMakeLists.txt index e19d3147b..66b9a777b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,6 +406,7 @@ endif() set(TBB_DEBUG 1) find_package(TBB REQUIRED) slic3r_remap_configs(TBB::tbb RelWithDebInfo Release) +slic3r_remap_configs(TBB::tbbmalloc RelWithDebInfo Release) # include_directories(${TBB_INCLUDE_DIRS}) # add_definitions(${TBB_DEFINITIONS}) # if(MSVC) diff --git a/resources/profiles/Anycubic.idx b/resources/profiles/Anycubic.idx index e2cf7b087..a941cef9c 100644 --- a/resources/profiles/Anycubic.idx +++ b/resources/profiles/Anycubic.idx @@ -1,3 +1,7 @@ +min_slic3r_version = 2.6.0-alpha4 +0.2.4 Enable pad for Anycubic SLA profiles +0.2.3 Added Photon Mono printer. +0.2.2 Added Photon Mono SE printer. min_slic3r_version = 2.6.0-alpha2 0.2.1 Added Eolas Prints filaments. 0.2.0 Added Photon Mono X printer. diff --git a/resources/profiles/Anycubic.ini b/resources/profiles/Anycubic.ini index 9bebbbe76..771b38d01 100644 --- a/resources/profiles/Anycubic.ini +++ b/resources/profiles/Anycubic.ini @@ -73,6 +73,13 @@ technology = FFF family = PREDATOR default_materials = Generic PLA @PREDATOR; Generic PETG @PREDATOR; Generic ABS @PREDATOR +[printer_model:PHOTON MONO] +name = Photon Mono +variants = default +technology = SLA +family = PHOTON MONO +default_materials = Generic Blue Resin @MONO 0.05 + [printer_model:PHOTON MONO X] name = Photon Mono X variants = default @@ -80,6 +87,13 @@ technology = SLA family = PHOTON MONO default_materials = Generic Blue Resin @MONO 0.05 +[printer_model:PHOTON MONO SE] +name = Photon Mono SE +variants = default +technology = SLA +family = PHOTON MONO +default_materials = Generic Blue Resin @MONO 0.05 + # All presets starting with asterisk, for example *common*, are intermediate and they will # not make it into the user interface. @@ -2327,11 +2341,10 @@ z_offset = 0 ## SLA printers [sla_print:*common print ANYCUBIC SLA*] -compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/ +compatible_printers_condition = printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/ layer_height = 0.05 -output_filename_format = [input_filename_base].pwmx pad_edge_radius = 0.5 -pad_enable = 0 +pad_enable = 1 pad_max_merge_distance = 50 pad_wall_height = 0 pad_wall_thickness = 1 @@ -2355,20 +2368,38 @@ support_pillar_widening_factor = 0 supports_enable = 1 support_small_pillar_diameter_percent = 60% -[sla_print:0.05 Normal @ANYCUBIC] +[sla_print:0.05 Normal @ANYCUBIC ABSTRACT] inherits = *common print ANYCUBIC SLA* +compatible_printers_condition = printer_notes=~/.*ABSTRACT_ONLY.*/ layer_height = 0.05 +[sla_print:0.05 Normal @ANYCUBIC MONO] +inherits = 0.05 Normal @ANYCUBIC ABSTRACT +compatible_printers_condition = printer_notes=~/.*PHOTONMONO\n.*/ +output_filename_format = [input_filename_base].pwmo + +[sla_print:0.05 Normal @ANYCUBIC MONO X] +inherits = 0.05 Normal @ANYCUBIC ABSTRACT +compatible_printers_condition = printer_notes=~/.*PHOTONMONOX\n.*/ +output_filename_format = [input_filename_base].pwmx + +[sla_print:0.05 Normal @ANYCUBIC MONO SE] +inherits = 0.05 Normal @ANYCUBIC ABSTRACT +compatible_printers_condition = printer_notes=~/.*PHOTONMONOSE\n.*/ +output_filename_format = [input_filename_base].pwma + + ## SLA materials +#MONO series printer need a significantly reduced exposure time but are otherwise compatible [sla_material:*common ANYCUBIC SLA*] -compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/ +compatible_printers_condition = printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/ compatible_prints_condition = layer_height == 0.05 exposure_time = 7 initial_exposure_time = 40 initial_layer_height = 0.05 material_correction = 1,1,1 -material_notes = LIFT_DISTANCE=8.0\nLIFT_SPEED=2.5\nRETRACT_SPEED=3.0\nBOTTOM_LIFT_SPEED=2.0\nBOTTOM_LIFT_DISTANCE=9.0\nDELAY_BEFORE_EXPOSURE=0.5 +material_notes = #Distances are defined in mm, speeds are defined in mm/s.\n#Delay is defined in s.\nLIFT_DISTANCE=8.0\nLIFT_SPEED=2.5\nRETRACT_SPEED=3.0\nBOTTOM_LIFT_SPEED=2.0\nBOTTOM_LIFT_DISTANCE=9.0\nDELAY_BEFORE_EXPOSURE=0.5\nANTIALIASING=1 [sla_material:*common 0.05 ANYCUBIC SLA*] inherits = *common ANYCUBIC SLA* @@ -2380,10 +2411,66 @@ initial_exposure_time = 40 material_type = Tough material_vendor = Generic material_colour = #6080EC -compatible_printers_condition = printer_notes=~/.*PHOTONMONOX.*/ +compatible_printers_condition = printer_notes=~/.*MONO.*/ and printer_notes=~/.*VENDOR_ANYCUBIC.*/ and printer_notes=~/.*SLA.*/ ## Printers +[printer:Anycubic Photon Mono] +printer_technology = SLA +printer_model = PHOTON MONO +printer_variant = default +default_sla_material_profile = Generic Blue Resin @MONO 0.05 +default_sla_print_profile = 0.05 Normal @ANYCUBIC +thumbnails = 224x168 +sla_archive_format = pwmo +bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 +display_orientation = landscape +display_mirror_x = 1 +display_mirror_y = 0 +display_pixels_x = 1620 +display_pixels_y = 2560 +display_width = 82.62 +display_height = 130.56 +max_print_height = 165 +elefant_foot_compensation = 0.2 +elefant_foot_min_width = 0.2 +min_exposure_time = 0.8 +max_exposure_time = 120 +min_initial_exposure_time = 0.8 +max_initial_exposure_time = 300 +printer_correction = 1,1,1 +gamma_correction = 1 +area_fill = 50 +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONO\nPRINTER_TECHNOLOGY_SLA\n + +[printer:Anycubic Photon Mono SE] +printer_technology = SLA +printer_model = PHOTON MONO SE +printer_variant = default +default_sla_material_profile = Generic Blue Resin @MONO 0.05 +default_sla_print_profile = 0.05 Normal @ANYCUBIC +thumbnails = 224x168 +sla_archive_format = pwms +bed_shape = 0x0,82.62x0,82.62x130.56,0x130.56 +display_orientation = landscape +display_mirror_x = 1 +display_mirror_y = 0 +display_pixels_x = 1620 +display_pixels_y = 2560 +display_width = 82.62 +display_height = 130.56 +max_print_height = 160 +elefant_foot_compensation = 0.2 +elefant_foot_min_width = 0.2 +min_exposure_time = 0.8 +max_exposure_time = 120 +min_initial_exposure_time = 0.8 +max_initial_exposure_time = 300 +printer_correction = 1,1,1 +gamma_correction = 1 +area_fill = 45 +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOSE\nPRINTER_TECHNOLOGY_SLA\n + [printer:Anycubic Photon Mono X] printer_technology = SLA printer_model = PHOTON MONO X @@ -2410,4 +2497,4 @@ max_initial_exposure_time = 300 printer_correction = 1,1,1 gamma_correction = 1 area_fill = 45 -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\n \ No newline at end of file +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\nPRINTER_TECHNOLOGY_SLA\n \ No newline at end of file diff --git a/resources/profiles/Anycubic/PHOTON MONO SE_thumbnail.png b/resources/profiles/Anycubic/PHOTON MONO SE_thumbnail.png new file mode 100644 index 000000000..9fa39cb4f Binary files /dev/null and b/resources/profiles/Anycubic/PHOTON MONO SE_thumbnail.png differ diff --git a/resources/profiles/Anycubic/PHOTON MONO_thumbnail.png b/resources/profiles/Anycubic/PHOTON MONO_thumbnail.png new file mode 100644 index 000000000..0aaf5c4cd Binary files /dev/null and b/resources/profiles/Anycubic/PHOTON MONO_thumbnail.png differ diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index a108d837f..3a3e2b333 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,7 @@ min_slic3r_version = 2.6.0-alpha5 +1.9.0-alpha4 Updated XL and MK4 profiles. Updated PC Blend Carbon Fiber density. +1.9.0-alpha3 Updated compatibility condition for MMU1 filaments. +1.9.0-alpha2 Added profiles for Spectrum filaments. 1.9.0-alpha1 Added profiles for Original Prusa MK4. 1.9.0-alpha0 Updated output filename format. 1.7.0-alpha2 Updated compatibility condition in some filament profiles (Prusa XL). @@ -8,7 +11,13 @@ min_slic3r_version = 2.6.0-alpha1 1.6.0-alpha2 Added profile for Prusament PETG Carbon Fiber and Fiberthree F3 PA-GF30 Pro. Updated acceleration settings for Prusa MINI. 1.6.0-alpha1 Updated FW version notification. Decreased min layer time for PLA. 1.6.0-alpha0 Default top fill set to monotonic lines. Updated infill/perimeter overlap values. Updated output filename format. Enabled dynamic overhang speeds. +min_slic3r_version = 2.5.2-rc0 +1.7.3 Updated XL and MK4 profiles. Updated PC Blend Carbon Fiber density. +1.7.2 Updated compatibility condition for MMU1 filaments. +1.7.1 Added SLA materials. Updated MK4 and XL profiles. +1.7.0 Added profiles for Original Prusa MK4. min_slic3r_version = 2.5.1-rc0 +1.6.4 Fixed compatibility condition for MMU1 filaments. 1.6.3 Added SLA materials. 1.6.2 Updated compatibility condition in some filament profiles (Prusa XL). 1.6.1 Added filament profile for Prusament PETG Tungsten 75%. Updated Prusa XL profiles. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 019465797..d2528a70a 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.9.0-alpha1 +config_version = 1.9.0-alpha4 # 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% @@ -2130,6 +2130,7 @@ default_acceleration = 1250 max_print_speed = 200 first_layer_extrusion_width = 0.5 support_material_extrusion_width = 0.37 +top_infill_extrusion_width = 0.4 gcode_resolution = 0.008 compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]==0.4 @@ -2162,6 +2163,7 @@ max_print_speed = 200 first_layer_extrusion_width = 0.5 gcode_resolution = 0.008 support_material_extrusion_width = 0.37 +top_infill_extrusion_width = 0.4 compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]==0.4 [print:0.20mm SPEED @XL 0.4] @@ -2192,6 +2194,7 @@ default_acceleration = 1250 max_print_speed = 200 first_layer_extrusion_width = 0.5 support_material_extrusion_width = 0.37 +top_infill_extrusion_width = 0.42 compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]==0.4 [print:0.30mm DRAFT @XL 0.4] @@ -3036,7 +3039,7 @@ inherits = *0.15mm*; *MK4* perimeter_speed = 45 external_perimeter_speed = 25 small_perimeter_speed = 25 -infill_speed = 90 +infill_speed = 120 solid_infill_speed = 90 top_solid_infill_speed = 40 support_material_contact_distance = 0.2 @@ -3059,6 +3062,7 @@ max_print_speed = 200 first_layer_extrusion_width = 0.5 support_material_extrusion_width = 0.37 gcode_resolution = 0.008 +top_infill_extrusion_width = 0.4 compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.4 [print:0.15mm SPEED @MK4 0.4] @@ -3089,6 +3093,7 @@ max_print_speed = 200 first_layer_extrusion_width = 0.5 support_material_extrusion_width = 0.37 gcode_resolution = 0.008 +top_infill_extrusion_width = 0.42 compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.4 [print:0.20mm QUALITY @MK4 0.4] @@ -3096,7 +3101,7 @@ inherits = *0.20mm*; *MK4* perimeter_speed = 45 external_perimeter_speed = 25 small_perimeter_speed = 25 -infill_speed = 90 +infill_speed = 120 solid_infill_speed = 90 top_solid_infill_speed = 40 support_material_contact_distance = 0.2 @@ -3119,6 +3124,7 @@ max_print_speed = 200 first_layer_extrusion_width = 0.5 gcode_resolution = 0.008 support_material_extrusion_width = 0.37 +top_infill_extrusion_width = 0.4 compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.4 [print:0.20mm SPEED @MK4 0.4] @@ -3149,6 +3155,7 @@ default_acceleration = 1000 max_print_speed = 200 first_layer_extrusion_width = 0.5 support_material_extrusion_width = 0.37 +top_infill_extrusion_width = 0.42 compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.4 [print:0.30mm DRAFT @MK4 0.4] @@ -3565,7 +3572,7 @@ compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.8 cooling = 1 compatible_printers = # For now, all but selected filaments are disabled for the MMU 2.0 -compatible_printers_condition = ! single_extruder_multi_material and printer_notes!~/.*PG.*/ +compatible_printers_condition = ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) and printer_notes!~/.*PG.*/ end_filament_gcode = "; Filament-specific end gcode" extrusion_multiplier = 1 filament_loading_speed = 28 @@ -3608,7 +3615,7 @@ min_fan_speed = 100 temperature = 210 slowdown_below_layer_time = 10 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.04{else}0.05{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K18{elsif nozzle_diameter[0]==0.8};{else}M900 K30{endif} ; Filament gcode LA 1.0" -compatible_printers_condition = ! single_extruder_multi_material and printer_notes!~/.*PG.*/ +compatible_printers_condition = ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) and printer_notes!~/.*PG.*/ [filament:*PLAPG*] start_filament_gcode = "M900 K{if nozzle_diameter[0]==0.4}0.06{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.08{elsif nozzle_diameter[0]==0.35}0.07{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" @@ -3658,7 +3665,7 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and no temperature = 240 filament_retract_length = 1 filament_retract_lift = 0.2 -compatible_printers_condition = printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:*PET06*] inherits = *PET* @@ -3700,7 +3707,7 @@ slowdown_below_layer_time = 18 filament_retract_length = 0.8 [filament:*04PLUS*] -compatible_printers_condition = nozzle_diameter[0]>=0.4 and ! single_extruder_multi_material and printer_notes!~/.*PG.*/ +compatible_printers_condition = nozzle_diameter[0]>=0.4 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) and printer_notes!~/.*PG.*/ [filament:*04PLUSPG*] compatible_printers_condition = nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_notes=~/.*PG.*/ @@ -3815,7 +3822,7 @@ compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.* [filament:*ABSPG*] compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 -filament_max_volumetric_speed = 14 +filament_max_volumetric_speed = 12 start_filament_gcode = "M900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp" filament_cooling_final_speed = 50 filament_cooling_initial_speed = 10 @@ -3869,7 +3876,7 @@ compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]==0.6 [filament:*PC08PG*] inherits = *PCPG* -filament_max_volumetric_speed = 20 +filament_max_volumetric_speed = 18 compatible_printers_condition = printer_model=="XL" and nozzle_diameter[0]==0.8 [filament:*PCMK4*] @@ -3885,7 +3892,7 @@ compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.6 [filament:*PC08MK4*] inherits = *PCMK4* -filament_max_volumetric_speed = 20 +filament_max_volumetric_speed = 18 compatible_printers_condition = printer_model=="MK4" and nozzle_diameter[0]==0.8 [filament:*PAPG*] @@ -4196,7 +4203,7 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and no temperature = 260 filament_retract_length = nil filament_retract_lift = 0.4 -compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:ColorFabb XT-CF20 @PG] inherits = ColorFabb XT-CF20; *PETPG*; *04PLUSPG* @@ -4317,7 +4324,7 @@ filament_colour = #804040 filament_max_volumetric_speed = 6 first_layer_temperature = 260 temperature = 260 -compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Kimya ABS Carbon @PG] inherits = Kimya ABS Carbon; *ABSPG*; *04PLUSPG* @@ -4577,7 +4584,7 @@ filament_type = PC filament_colour = #DEE0E6 filament_max_volumetric_speed = 8 filament_retract_lift = 0.2 -compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.07{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" [filament:Prusament PC Blend @PG] @@ -4609,12 +4616,12 @@ inherits = Prusament PC Blend first_layer_bed_temperature = 105 bed_temperature = 110 disable_fan_first_layers = 6 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusament PC Blend Carbon Fiber] inherits = Prusament PC Blend filament_cost = 90.73 -filament_density = 1.16 +filament_density = 1.22 extrusion_multiplier = 1.04 first_layer_temperature = 285 temperature = 285 @@ -4623,7 +4630,7 @@ fan_below_layer_time = 10 filament_colour = #BBBBBB filament_retract_length = nil filament_retract_lift = nil -compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusament PC Blend Carbon Fiber @PG] inherits = Prusament PC Blend Carbon Fiber; *PCPG* @@ -4667,7 +4674,7 @@ temperature = 285 first_layer_bed_temperature = 90 bed_temperature = 115 fan_below_layer_time = 10 -compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusament PA11 Carbon Fiber @PG] inherits = Prusament PA11 Carbon Fiber; *PCPG* @@ -4786,7 +4793,7 @@ inherits = *ABSC* filament_vendor = Generic filament_cost = 27.82 filament_density = 1.04 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Generic ABS @PG] inherits = Generic ABS; *ABSPG* @@ -4923,7 +4930,7 @@ renamed_from = "Generic PET" filament_vendor = Generic filament_cost = 27.82 filament_density = 1.27 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Generic PETG @PG] inherits = Generic PETG; *PETPG* @@ -5393,7 +5400,7 @@ filament_retract_lift = 0.4 filament_max_volumetric_speed = 4 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.08{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" filament_spool_weight = 0 -compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and printer_model!="MK2SMM" and ! single_extruder_multi_material +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:addnorth Adura X @PG] inherits = addnorth Adura X; *PETPG* @@ -5647,7 +5654,7 @@ filament_retract_length = 1.4 filament_max_volumetric_speed = 5 filament_spool_weight = 0 filament_notes = "Please use a nozzle that is resistant to abrasive filaments, like hardened steel." -compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and printer_model!="MK2SMM" and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:addnorth Rigid X @PG] inherits = addnorth Rigid X; *PETPG*; *04PLUSPG* @@ -5693,7 +5700,7 @@ slowdown_below_layer_time = 15 min_print_speed = 20 filament_spool_weight = 0 filament_retract_length = 1 -compatible_printers_condition = printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:addnorth Textura @PG] inherits = addnorth Textura; *PLAPG* @@ -5730,7 +5737,7 @@ disable_fan_first_layers = 3 fan_below_layer_time = 60 slowdown_below_layer_time = 15 bridge_fan_speed = 20 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Filamentworld ABS @PG] inherits = Filamentworld ABS; *ABSPG* @@ -5827,7 +5834,7 @@ filament_vendor = Filament PM filament_cost = 27.82 filament_density = 1.27 filament_spool_weight = 230 -compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Filament PM PETG @PG] inherits = Filament PM PETG; *PETPG* @@ -5843,7 +5850,7 @@ inherits = *PLA* filament_vendor = Generic filament_cost = 25.4 filament_density = 1.24 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Generic PLA @PG] inherits = Generic PLA; *PLAPG* @@ -6092,6 +6099,220 @@ inherits = Spectrum PLA; *PLA06PG* [filament:Spectrum PLA @PG 0.8] inherits = Spectrum PLA; *PLA08PG* +[filament:Spectrum PETG Matt] +inherits = *PET* +filament_vendor = Spectrum +bed_temperature = 90 +bridge_fan_speed = 50 +extrusion_multiplier = 1.1 +disable_fan_first_layers = 1 +full_fan_speed_layer = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_max_volumetric_speed = 8 +filament_type = PETG +first_layer_bed_temperature = 85 +first_layer_temperature = 230 +max_fan_speed = 100 +min_fan_speed = 30 +temperature = 240 +filament_density = 1.35 + +[filament:Spectrum PETG Matt @PG] +inherits = Spectrum PETG Matt; *PETPG* + +[filament:Spectrum PETG Matt @PG 0.6] +inherits = Spectrum PETG Matt @PG; *PET06PG* + +[filament:Spectrum PETG Matt @PG 0.8] +inherits = Spectrum PETG Matt @PG; *PET08PG* + +[filament:Spectrum PETG Matt @MINI] +inherits = Spectrum PETG Matt; *PETMINI* + +[filament:Spectrum PETG HT100] +inherits = *PET* +filament_vendor = Spectrum +bed_temperature = 105 +bridge_fan_speed = 50 +extrusion_multiplier = 1 +disable_fan_first_layers = 1 +full_fan_speed_layer = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_max_volumetric_speed = 8 +filament_type = PETG +first_layer_bed_temperature = 105 +first_layer_temperature = 250 +max_fan_speed = 100 +min_fan_speed = 30 +temperature = 250 +filament_density = 1.24 + +[filament:Spectrum PETG HT100 @PG] +inherits = Spectrum PETG HT100; *PETPG* + +[filament:Spectrum PETG HT100 @PG 0.6] +inherits = Spectrum PETG HT100 @PG; *PET06PG* + +[filament:Spectrum PETG HT100 @PG 0.8] +inherits = Spectrum PETG HT100 @PG; *PET08PG* + +[filament:Spectrum PETG HT100 @MINI] +inherits = Spectrum PETG HT100; *PETMINI* +bed_temperature = 100 +first_layer_bed_temperature = 100 + +[filament:Spectrum GreenyHT] +inherits = *PLA* +filament_vendor = Spectrum +first_layer_temperature = 205 +first_layer_bed_temperature = 45 +temperature = 205 +bed_temperature = 45 +bridge_fan_speed = 50 +extrusion_multiplier = 1.0 +disable_fan_first_layers = 1 +full_fan_speed_layer = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_colour = #FF8000 +filament_max_volumetric_speed = 8 +filament_type = PLA +max_fan_speed = 100 +min_fan_speed = 30 +filament_density = 1.54 + +[filament:Spectrum GreenyHT @PG] +inherits = Spectrum GreenyHT; *PLAPG* + +[filament:Spectrum GreenyHT @PG 0.6] +inherits = Spectrum GreenyHT @PG; *PLA06PG* + +[filament:Spectrum GreenyHT @PG 0.8] +inherits = Spectrum GreenyHT @PG; *PLA08PG* + +[filament:Spectrum ASA 275] +inherits = *ABSC* +filament_vendor = Spectrum +first_layer_temperature = 237 +first_layer_bed_temperature = 80 +temperature = 237 +bed_temperature = 80 +extrusion_multiplier = 0.98 +filament_type = ASA +filament_density = 1.24 + +[filament:Spectrum ASA 275 @PG] +inherits = Spectrum ASA 275; *ABSPG* +compatible_printers_condition = nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_notes=~/.*PG.*/ and ! single_extruder_multi_material + +[filament:Spectrum ASA 275 @PG 0.6] +inherits = Spectrum ASA 275 @PG; *ABS06PG* +compatible_printers_condition = nozzle_diameter[0]==0.6 and printer_notes=~/.*PG.*/ and ! single_extruder_multi_material + +[filament:Spectrum ASA 275 @PG 0.8] +inherits = Spectrum ASA 275 @PG; *ABS08PG* +compatible_printers_condition = nozzle_diameter[0]==0.8 and printer_notes=~/.*PG.*/ and ! single_extruder_multi_material + +[filament:Spectrum ASA 275 @MINI] +inherits = Spectrum ASA 275; *ABSMINI* +temperature = 235 +bed_temperature = 80 +extrusion_multiplier = 1 + +[filament:Spectrum ASA Kevlar] +inherits = *ABSC* +filament_vendor = Spectrum +temperature = 250 +bed_temperature = 105 +extrusion_multiplier = 1.04 +filament_type = ASA +filament_density = 1.24 +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) + +[filament:Spectrum ASA Kevlar @PG] +inherits = Spectrum ASA Kevlar; *ABSPG* +compatible_printers_condition = nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_model=="XL" + +[filament:Spectrum ASA Kevlar @PG 0.6] +inherits = Spectrum ASA Kevlar @PG; *ABS06PG* + +[filament:Spectrum ASA Kevlar @PG 0.8] +inherits = Spectrum ASA Kevlar @PG; *ABS08PG* + +[filament:Spectrum ASA Kevlar @MK4] +inherits = Spectrum ASA Kevlar; *ABSMK4* +compatible_printers_condition = nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_model=="MK4" + +[filament:Spectrum ASA Kevlar @MK4 0.6] +inherits = Spectrum ASA Kevlar @MK4; *ABS06MK4* + +[filament:Spectrum ASA Kevlar @MK4 0.8] +inherits = Spectrum ASA Kevlar @MK4; *ABS08MK4* + +[filament:Spectrum ASA Kevlar @MINI] +inherits = Spectrum ASA Kevlar; *ABSMINI* +temperature = 250 +bed_temperature = 100 +extrusion_multiplier = 1.03 +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MINI" + +[filament:Spectrum Tough PLA] +inherits = *PLA* +filament_vendor = Spectrum +temperature = 235 +bed_temperature = 45 +extrusion_multiplier = 0.95 +filament_type = PLA Tough +filament_density = 1.24 + +[filament:Spectrum Tough PLA @PG] +inherits = Spectrum Tough PLA; *PLAPG* + +[filament:Spectrum Tough PLA @PG 0.6] +inherits = Spectrum Tough PLA @PG; *PLA06PG* + +[filament:Spectrum Tough PLA @PG 0.8] +inherits = Spectrum Tough PLA @PG; *PLA08PG* + +[filament:Spectrum PLA PRO] +inherits = *PLA* +filament_vendor = Spectrum +filament_type = PLA +filament_density = 1.22 + +[filament:Spectrum PLA PRO @PG] +inherits = Spectrum PLA PRO; *PLAPG* + +[filament:Spectrum PLA PRO @PG 0.6] +inherits = Spectrum PLA PRO @PG; *PLA06PG* + +[filament:Spectrum PLA PRO @PG 0.8] +inherits = Spectrum PLA PRO @PG; *PLA08PG* + +[filament:Spectrum PCTG] +inherits = *PET* +filament_vendor = Spectrum +filament_type = PCTG +temperature = 240 +bed_temperature = 90 +filament_density = 1.27 + +[filament:Spectrum PCTG @PG] +inherits = Spectrum PCTG; *PETPG* + +[filament:Spectrum PCTG @PG 0.6] +inherits = Spectrum PCTG @PG; *PET06PG* + +[filament:Spectrum PCTG @PG 0.8] +inherits = Spectrum PCTG @PG; *PET08PG* + +[filament:Spectrum PCTG @MINI] +inherits = Spectrum PCTG; *PETMINI* + [filament:Generic FLEX] inherits = *FLEX* filament_vendor = Generic @@ -6596,7 +6817,7 @@ extrusion_multiplier = 0.95 filament_density = 1.1 first_layer_bed_temperature = 105 bed_temperature = 100 -compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Filatech FilaCarbon @PG] inherits = Filatech FilaCarbon; *ABSPG*; *04PLUSPG* @@ -6698,7 +6919,7 @@ first_layer_temperature = 230 first_layer_bed_temperature = 100 temperature = 225 bed_temperature = 110 -compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Filatech HIPS @PG] inherits = Filatech HIPS; *ABSPG* @@ -6755,7 +6976,7 @@ cooling = 0 bridge_fan_speed = 25 filament_type = PA filament_max_volumetric_speed = 8 -compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Filatech PA @PG] inherits = Filatech PA; *ABSPG* @@ -7235,7 +7456,7 @@ min_fan_speed = 20 max_fan_speed = 20 bridge_fan_speed = 30 disable_fan_first_layers = 4 -compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) filament_notes = "Material Description\nUltrafuse® PC/ABS FR Black is a V-0 flame retardant blend of Polycarbonate and ABS – two of the most used thermoplastics for engineering & electrical applications. The combination of these two materials results in a premium material with a mix of the excellent mechanical properties of PC and the comparably low printing temperature of ABS. Combined with a halogen free flame retardant, parts printed with Ultrafuse® PC/ABS FR Black feature great tensile and impact strength, higher thermal resistance than ABS and can fulfill the requirements of the UL94 V-0 standard.\n\nPrinting Recommendations:\nApply Magigoo PC to a clean build plate to improve adhesion." start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.07{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" @@ -7670,7 +7891,7 @@ filament_vendor = Made for Prusa filament_cost = 27.82 filament_density = 1.08 filament_spool_weight = 230 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusa ABS @PG] inherits = Prusa ABS; *ABSPG* @@ -7881,7 +8102,7 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and no [filament:Prusament PC Blend Carbon Fiber @MMU2] inherits = Prusament PC Blend @MMU2 filament_cost = 90.73 -filament_density = 1.16 +filament_density = 1.22 extrusion_multiplier = 1.04 fan_below_layer_time = 10 first_layer_temperature = 280 @@ -7925,7 +8146,7 @@ max_fan_speed = 20 min_fan_speed = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.03{else}0.04{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K12{elsif nozzle_diameter[0]==0.8};{else}M900 K20{endif} ; Filament gcode LA 1.0" temperature = 220 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Generic HIPS] inherits = *ABS* @@ -7945,7 +8166,7 @@ max_fan_speed = 20 min_fan_speed = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.03{else}0.04{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K12{elsif nozzle_diameter[0]==0.8};{else}M900 K20{endif} ; Filament gcode LA 1.0" temperature = 230 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Generic HIPS @PG] inherits = Generic HIPS; *ABSPG* @@ -7973,7 +8194,7 @@ filament_vendor = Made for Prusa filament_cost = 27.82 filament_density = 1.27 filament_spool_weight = 230 -compatible_printers_condition = nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.6 and nozzle_diameter[0]!=0.8 and printer_model!="MK2SMM" and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusa PETG @PG] inherits = Prusa PETG; *PETPG* @@ -8239,7 +8460,7 @@ filament_vendor = Made for Prusa filament_cost = 27.82 filament_density = 1.24 filament_spool_weight = 230 -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusa PLA @PG] inherits = Prusa PLA; *PLAPG* @@ -9350,7 +9571,7 @@ filament_cost = 36.29 filament_density = 1.24 filament_spool_weight = 201 filament_notes = "Affordable filament for everyday printing in premium quality manufactured in-house by Josef Prusa" -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Prusament PLA @PG] inherits = Prusament PLA; *PLAPG* @@ -9377,7 +9598,7 @@ filament_max_volumetric_speed = 8 filament_type = PVB filament_soluble = 1 filament_colour = #FFFF6F -compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]!=0.8 and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) slowdown_below_layer_time = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.05{else}0.08{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" @@ -9557,7 +9778,7 @@ temperature = 260 max_fan_speed = 0 min_fan_speed = 0 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.08{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" -compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:Taulman Bridge @PG] inherits = Taulman Bridge; *ABSPG* @@ -9779,7 +10000,7 @@ temperature = 285 first_layer_bed_temperature = 90 bed_temperature = 90 fan_below_layer_time = 10 -compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) max_fan_speed = 15 min_fan_speed = 15 filament_type = PA @@ -10009,7 +10230,7 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and no temperature = 235 filament_wipe = 0 filament_retract_lift = 0 -compatible_printers_condition = nozzle_diameter[0]>=0.35 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! single_extruder_multi_material +compatible_printers_condition = nozzle_diameter[0]>=0.35 and printer_model!="MINI" and printer_notes!~/.*PG.*/ and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:FormFutura Centaur PP @PG] inherits = FormFutura Centaur PP; *PETPG* @@ -10468,7 +10689,7 @@ compatible_printers_condition = printer_model=="MINI" and nozzle_diameter[0]!=0. [filament:Prusament PC Blend Carbon Fiber @MINI] inherits = Prusament PC Blend @MINI filament_cost = 90.73 -filament_density = 1.16 +filament_density = 1.22 extrusion_multiplier = 1.04 first_layer_temperature = 280 temperature = 280 diff --git a/resources/profiles/Voron.idx b/resources/profiles/Voron.idx index a169eb751..e59766e7f 100644 --- a/resources/profiles/Voron.idx +++ b/resources/profiles/Voron.idx @@ -1,3 +1,6 @@ +min_slic3r_version = 2.6.0-alpha6 +1.0.3 Added Voron Switchwire. +1.0.2 Updated g-code flavor and travel accelerations. min_slic3r_version = 2.4.2 1.0.1 Added 350mm Voron v1 variant. Updated max print heights. Removed redundant v1 volcano nozzle variants. min_slic3r_version = 2.4.0-beta0 diff --git a/resources/profiles/Voron.ini b/resources/profiles/Voron.ini index e34da5010..26dfcaab3 100644 --- a/resources/profiles/Voron.ini +++ b/resources/profiles/Voron.ini @@ -7,7 +7,7 @@ name = Voron # 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.0.1 +config_version = 1.0.3 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Voron/ @@ -106,6 +106,28 @@ bed_model = printbed-v0-120.stl bed_texture = bedtexture-v0-120.png default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON +[printer_model:Voron_SW_afterburner] +name = Voron Switchwire +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron Switchwire Afterburner +bed_model = printbed-SW-MK52.stl +bed_texture = bedtexture-SW-250x210.png +bed_with_grid = 1 +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON +thumbnail = Voron_SW_thumbnail.png + +[printer_model:Voron_SW] +name = Voron Switchwire +variants = 0.4; 0.25; 0.3; 0.5; 0.6; 0.8; volcano 0.6; volcano 0.8; volcano 1.0; volcano 1.2 +technology = FFF +family = Voron Switchwire Mobius +bed_model = printbed-SW-MK52.stl +bed_texture = bedtexture-SW-250x210.png +bed_with_grid = 1 +default_materials = Basic PLA @VORON; Basic PLA VOLCANO @VORON; Basic PET @VORON; Basic PET VOLCANO @VORON; Basic ABS @VORON; Basic ABS VOLCANO @VORON +thumbnail = Voron_SW_thumbnail.png + # All presets starting with asterisk, for example *common*, are intermediate and they will # not make it into the user interface @@ -183,7 +205,8 @@ deretract_speed = 25 end_gcode = print_end ;end script from macro extruder_colour = #FFE3CA extruder_offset = 0x0 -gcode_flavor = marlin +gcode_flavor = klipper +autoemit_temperature_commands = 1 layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] machine_max_acceleration_e = 10000 machine_max_acceleration_extruding = 1500 @@ -309,6 +332,18 @@ max_print_height = 120 printer_model = Voron_v0_120 printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nE3DV6 +[printer:*Voron_Switchwire*] +inherits = *common* +bed_shape = 0x0,250x0,250x210,0x210 +max_print_height = 240 +printer_model = Voron_SW +printer_notes = PRINTER_HAS_BOWDEN\nSTU\nE3DV6 + +[printer:*Voron_Switchwire_afterburner*] +inherits = *Voron_Switchwire*; *afterburner* +printer_model = Voron_SW_afterburner +printer_notes = STU\nE3DV6 + [printer:Voron_v2_250 0.25 nozzle] inherits = *Voron_v2_250*; *0.25nozzle* @@ -657,6 +692,89 @@ printer_variant = volcano 1.2 printer_notes = Unoffical profile.\nPRINTER_HAS_BOWDEN\nVOLCANO default_filament_profile = Basic PLA VOLCANO @VORON +[printer:Voron_Switchwire 0.25 nozzle] +inherits = *Voron_Switchwire*; *0.25nozzle* + +[printer:Voron_Switchwire 0.3 nozzle] +inherits = *Voron_Switchwire*; *0.3nozzle* + +[printer:Voron_Switchwire 0.4 nozzle] +inherits = *Voron_Switchwire*; *0.4nozzle* + +[printer:Voron_Switchwire 0.5 nozzle] +inherits = *Voron_Switchwire*; *0.5nozzle* + +[printer:Voron_Switchwire 0.6 nozzle] +inherits = *Voron_Switchwire*; *0.6nozzle* + +[printer:Voron_Switchwire 0.8 nozzle] +inherits = *Voron_Switchwire*; *0.8nozzle* + +[printer:Voron_Switchwire 0.6 volcano] +inherits = *Voron_Switchwire*; *0.6nozzle*; *volcano* +printer_variant = volcano 0.6 +printer_notes = PRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire 0.8 volcano] +inherits = *Voron_Switchwire*; *0.8nozzle*; *volcano* +printer_variant = volcano 0.8 +printer_notes = PRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire 1.0 volcano] +inherits = *Voron_Switchwire*; *1.0nozzle*; *volcano* +printer_variant = volcano 1.0 +printer_notes = PRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire 1.2 volcano] +inherits = *Voron_Switchwire*; *1.2nozzle*; *volcano* +printer_variant = volcano 1.2 +printer_notes = PRINTER_HAS_BOWDEN\nVOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire_afterburner 0.25 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.25nozzle* + +[printer:Voron_Switchwire_afterburner 0.3 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.3nozzle* + +[printer:Voron_Switchwire_afterburner 0.4 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.4nozzle* + +[printer:Voron_Switchwire_afterburner 0.5 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.5nozzle* + +[printer:Voron_Switchwire_afterburner 0.6 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.6nozzle* + +[printer:Voron_Switchwire_afterburner 0.8 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.8nozzle* + +[printer:Voron_Switchwire_afterburner volcano 0.6 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.6nozzle*; *volcano_afterburner* +printer_variant = volcano 0.6 +printer_notes = VOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire_afterburner volcano 0.8 nozzle] +inherits = *Voron_Switchwire_afterburner*; *0.8nozzle*; *volcano_afterburner* +printer_variant = volcano 0.8 +printer_notes = VOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire_afterburner volcano 1.0 nozzle] +inherits = *Voron_Switchwire_afterburner*; *1.0nozzle*; *volcano_afterburner* +printer_variant = volcano 1.0 +printer_notes = VOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON + +[printer:Voron_Switchwire_afterburner volcano 1.2 nozzle] +inherits = *Voron_Switchwire_afterburner*; *1.2nozzle*; *volcano_afterburner* +printer_variant = volcano 1.2 +printer_notes = VOLCANO +default_filament_profile = Basic PLA VOLCANO @VORON # Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. # All other print presets will derive from the *common* print preset. @@ -672,7 +790,8 @@ brim_width = 0 clip_multipart_objects = 1 compatible_printers = complete_objects = 0 -default_acceleration = 3000 +default_acceleration = 2000 +travel_acceleration = 3000 dont_support_bridges = 1 ensure_vertical_shell_thickness = 1 external_perimeters_first = 0 @@ -1020,6 +1139,22 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.05mm*; *0.5nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.5 +[print:0.05mm 0.25nozzle SW] +inherits = *0.05mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.05mm 0.3nozzle SW] +inherits = *0.05mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.05mm 0.4nozzle SW] +inherits = *0.05mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.05mm 0.5nozzle SW] +inherits = *0.05mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + [print:0.10mm 0.25nozzle V2] inherits = *0.10mm*; *0.25nozzle* compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 @@ -1092,6 +1227,30 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.10mm*; *0.8nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==0.8 +[print:0.10mm 0.25nozzle SW] +inherits = *0.10mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.10mm 0.3nozzle SW] +inherits = *0.10mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.10mm 0.4nozzle SW] +inherits = *0.10mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.10mm 0.5nozzle SW] +inherits = *0.10mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + +[print:0.10mm 0.6nozzle SW] +inherits = *0.10mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.6 + +[print:0.10mm 0.8nozzle SW] +inherits = *0.10mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + [print:0.15mm 0.25nozzle V2] inherits = *0.15mm*; *0.25nozzle* compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.25 @@ -1180,6 +1339,37 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.15mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.15mm 0.25nozzle SW] +inherits = *0.15mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.15mm 0.3nozzle SW] +inherits = *0.15mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.15mm 0.4nozzle SW] +inherits = *0.15mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.15mm 0.5nozzle SW] +inherits = *0.15mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + +[print:0.15mm 0.6nozzle SW] +inherits = *0.15mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.6 + +[print:0.15mm 0.8nozzle SW] +inherits = *0.15mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + +[print:0.15mm 1.0nozzle SW] +inherits = *0.15mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.0 + +[print:0.15mm 1.2nozzle SW] +inherits = *0.15mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 [print:0.2mm 0.3nozzle V2] inherits = *0.2mm*; *0.3nozzle* @@ -1261,6 +1451,37 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.2mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.2mm 0.25nozzle SW] +inherits = *0.2mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.2mm 0.3nozzle SW] +inherits = *0.2mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.2mm 0.4nozzle SW] +inherits = *0.2mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.2mm 0.5nozzle SW] +inherits = *0.2mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + +[print:0.2mm 0.6nozzle SW] +inherits = *0.2mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.6 + +[print:0.2mm 0.8nozzle SW] +inherits = *0.2mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + +[print:0.2mm 1.0nozzle SW] +inherits = *0.2mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.0 + +[print:0.2mm 1.2nozzle SW] +inherits = *0.2mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 [print:0.3mm 0.4nozzle V2] inherits = *0.3mm*; *0.4nozzle* @@ -1334,6 +1555,37 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.3mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.3mm 0.25nozzle SW] +inherits = *0.3mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.3mm 0.3nozzle SW] +inherits = *0.3mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.3mm 0.4nozzle SW] +inherits = *0.3mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.3mm 0.5nozzle SW] +inherits = *0.3mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + +[print:0.3mm 0.6nozzle SW] +inherits = *0.3mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.6 + +[print:0.3mm 0.8nozzle SW] +inherits = *0.3mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + +[print:0.3mm 1.0nozzle SW] +inherits = *0.3mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.0 + +[print:0.3mm 1.2nozzle SW] +inherits = *0.3mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 [print:0.4mm 0.6nozzle V2] inherits = *0.4mm*; *0.6nozzle* @@ -1391,6 +1643,38 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.4mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.4mm 0.25nozzle SW] +inherits = *0.4mm*; *0.25nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.25 + +[print:0.4mm 0.3nozzle SW] +inherits = *0.4mm*; *0.3nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.3 + +[print:0.4mm 0.4nozzle SW] +inherits = *0.4mm*; *0.4nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.4 + +[print:0.4mm 0.5nozzle SW] +inherits = *0.4mm*; *0.5nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.5 + +[print:0.4mm 0.6nozzle SW] +inherits = *0.4mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.6 + +[print:0.4mm 0.8nozzle SW] +inherits = *0.4mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + +[print:0.4mm 1.0nozzle SW] +inherits = *0.4mm*; *1.0nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.0 + +[print:0.4mm 1.2nozzle SW] +inherits = *0.4mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 + [print:0.6mm 0.8nozzle V2] inherits = *0.6mm*; *0.8nozzle* compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.8 @@ -1427,6 +1711,18 @@ compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diamete inherits = *0.6mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.6mm 0.8nozzle SW] +inherits = *0.6mm*; *0.6nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==0.8 + +[print:0.6mm 1.0nozzle SW] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.0 + +[print:0.6mm 1.2nozzle SW] +inherits = *0.6mm*; *0.8nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 + [print:0.8mm 1.2nozzle V2] inherits = *0.8mm*; *1.2nozzle* compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==1.2 @@ -1439,6 +1735,10 @@ compatible_printers_condition = printer_model=~/.*Voron_v1.*/ and nozzle_diamete inherits = *0.8mm*; *1.2nozzle*; *zero_toolhead* compatible_printers_condition = printer_model=~/.*Voron_v0.*/ and nozzle_diameter[0]==1.2 +[print:0.8mm 1.2nozzle SW] +inherits = *0.8mm*; *1.2nozzle* +compatible_printers_condition = printer_model=~/.*Voron_SW.*/ and nozzle_diameter[0]==1.2 + [filament:*common*] cooling = 1 diff --git a/resources/profiles/Voron/Voron_SW_thumbnail.png b/resources/profiles/Voron/Voron_SW_thumbnail.png new file mode 100644 index 000000000..4585c0162 Binary files /dev/null and b/resources/profiles/Voron/Voron_SW_thumbnail.png differ diff --git a/resources/profiles/Voron/bedtexture-SW-250x210.png b/resources/profiles/Voron/bedtexture-SW-250x210.png new file mode 100644 index 000000000..e027c30ad Binary files /dev/null and b/resources/profiles/Voron/bedtexture-SW-250x210.png differ diff --git a/resources/profiles/Voron/printbed-SW-MK52.stl b/resources/profiles/Voron/printbed-SW-MK52.stl new file mode 100644 index 000000000..6aff36f0b Binary files /dev/null and b/resources/profiles/Voron/printbed-SW-MK52.stl differ diff --git a/src/ankerl/README.txt b/src/ankerl/README.txt new file mode 100644 index 000000000..0996bc28c --- /dev/null +++ b/src/ankerl/README.txt @@ -0,0 +1,7 @@ +THIS DIRECTORY CONTAINS PIECES OF THE +ankerl::unordered_dense::{map, set} +https://github.com/martinus/unordered_dense +unordered_dense 3.1.1 10782bfc651c2bb75b11bf90491f50da122e5432 +SOURCE DISTRIBUTION. + +THIS IS NOT THE COMPLETE unordered_dense DISTRIBUTION. ONLY FILES NEEDED FOR COMPILING PRUSASLICER WERE PUT INTO THE PRUSASLICER SOURCE DISTRIBUTION. diff --git a/src/ankerl/unordered_dense.h b/src/ankerl/unordered_dense.h new file mode 100644 index 000000000..e294bdb4e --- /dev/null +++ b/src/ankerl/unordered_dense.h @@ -0,0 +1,1584 @@ +///////////////////////// ankerl::unordered_dense::{map, set} ///////////////////////// + +// A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion. +// Version 3.1.1 +// https://github.com/martinus/unordered_dense +// +// Licensed under the MIT License . +// SPDX-License-Identifier: MIT +// Copyright (c) 2022-2023 Martin Leitner-Ankerl +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +#ifndef ANKERL_UNORDERED_DENSE_H +#define ANKERL_UNORDERED_DENSE_H + +// see https://semver.org/spec/v2.0.0.html +#define ANKERL_UNORDERED_DENSE_VERSION_MAJOR 3 // NOLINT(cppcoreguidelines-macro-usage) incompatible API changes +#define ANKERL_UNORDERED_DENSE_VERSION_MINOR 1 // NOLINT(cppcoreguidelines-macro-usage) backwards compatible functionality +#define ANKERL_UNORDERED_DENSE_VERSION_PATCH 1 // NOLINT(cppcoreguidelines-macro-usage) backwards compatible bug fixes + +// API versioning with inline namespace, see https://www.foonathan.net/2018/11/inline-namespaces/ +#define ANKERL_UNORDERED_DENSE_VERSION_CONCAT1(major, minor, patch) v##major##_##minor##_##patch +#define ANKERL_UNORDERED_DENSE_VERSION_CONCAT(major, minor, patch) ANKERL_UNORDERED_DENSE_VERSION_CONCAT1(major, minor, patch) +#define ANKERL_UNORDERED_DENSE_NAMESPACE \ + ANKERL_UNORDERED_DENSE_VERSION_CONCAT( \ + ANKERL_UNORDERED_DENSE_VERSION_MAJOR, ANKERL_UNORDERED_DENSE_VERSION_MINOR, ANKERL_UNORDERED_DENSE_VERSION_PATCH) + +#if defined(_MSVC_LANG) +# define ANKERL_UNORDERED_DENSE_CPP_VERSION _MSVC_LANG +#else +# define ANKERL_UNORDERED_DENSE_CPP_VERSION __cplusplus +#endif + +#if defined(__GNUC__) +// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_PACK(decl) decl __attribute__((__packed__)) +#elif defined(_MSC_VER) +// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_PACK(decl) __pragma(pack(push, 1)) decl __pragma(pack(pop)) +#endif + +// exceptions +#if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) +# define ANKERL_UNORDERED_DENSE_HAS_EXCEPTIONS() 1 +#else +# define ANKERL_UNORDERED_DENSE_HAS_EXCEPTIONS() 0 +#endif +#ifdef _MSC_VER +# define ANKERL_UNORDERED_DENSE_NOINLINE __declspec(noinline) +#else +# define ANKERL_UNORDERED_DENSE_NOINLINE __attribute__((noinline)) +#endif + +#if ANKERL_UNORDERED_DENSE_CPP_VERSION < 201703L +# error ankerl::unordered_dense requires C++17 or higher +#else +# include // for array +# include // for uint64_t, uint32_t, uint8_t, UINT64_C +# include // for size_t, memcpy, memset +# include // for equal_to, hash +# include // for initializer_list +# include // for pair, distance +# include // for numeric_limits +# include // for allocator, allocator_traits, shared_ptr +# include // for out_of_range +# include // for basic_string +# include // for basic_string_view, hash +# include // for forward_as_tuple +# include // for enable_if_t, declval, conditional_t, ena... +# include // for forward, exchange, pair, as_const, piece... +# include // for vector +# if ANKERL_UNORDERED_DENSE_HAS_EXCEPTIONS() == 0 +# include // for abort +# endif + +# define ANKERL_UNORDERED_DENSE_PMR 0 // NOLINT(cppcoreguidelines-macro-usage) +# if defined(__has_include) +# if __has_include() +# undef ANKERL_UNORDERED_DENSE_PMR +# define ANKERL_UNORDERED_DENSE_PMR 1 // NOLINT(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_PMR_ALLOCATOR \ + std::pmr::polymorphic_allocator // NOLINT(cppcoreguidelines-macro-usage) +# include // for polymorphic_allocator +# elif __has_include() +# undef ANKERL_UNORDERED_DENSE_PMR +# define ANKERL_UNORDERED_DENSE_PMR 1 // NOLINT(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_PMR_ALLOCATOR \ + std::experimental::pmr::polymorphic_allocator // NOLINT(cppcoreguidelines-macro-usage) +# include // for polymorphic_allocator +# endif +# endif + +# if defined(_MSC_VER) && defined(_M_X64) +# include +# pragma intrinsic(_umul128) +# endif + +# if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__) +# define ANKERL_UNORDERED_DENSE_LIKELY(x) __builtin_expect(x, 1) // NOLINT(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_UNLIKELY(x) __builtin_expect(x, 0) // NOLINT(cppcoreguidelines-macro-usage) +# else +# define ANKERL_UNORDERED_DENSE_LIKELY(x) (x) // NOLINT(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_UNLIKELY(x) (x) // NOLINT(cppcoreguidelines-macro-usage) +# endif + +namespace ankerl::unordered_dense { +inline namespace ANKERL_UNORDERED_DENSE_NAMESPACE { + +namespace detail { + +# if ANKERL_UNORDERED_DENSE_HAS_EXCEPTIONS() + +// make sure this is not inlined as it is slow and dramatically enlarges code, thus making other +// inlinings more difficult. Throws are also generally the slow path. +[[noreturn]] inline ANKERL_UNORDERED_DENSE_NOINLINE void on_error_key_not_found() { + throw std::out_of_range("ankerl::unordered_dense::map::at(): key not found"); +} +[[noreturn]] inline ANKERL_UNORDERED_DENSE_NOINLINE void on_error_bucket_overflow() { + throw std::overflow_error("ankerl::unordered_dense: reached max bucket size, cannot increase size"); +} +[[noreturn]] inline ANKERL_UNORDERED_DENSE_NOINLINE void on_error_too_many_elements() { + throw std::out_of_range("ankerl::unordered_dense::map::replace(): too many elements"); +} + +# else + +[[noreturn]] inline void on_error_key_not_found() { + abort(); +} +[[noreturn]] inline void on_error_bucket_overflow() { + abort(); +} +[[noreturn]] inline void on_error_too_many_elements() { + abort(); +} + +# endif + +} // namespace detail + +// hash /////////////////////////////////////////////////////////////////////// + +// This is a stripped-down implementation of wyhash: https://github.com/wangyi-fudan/wyhash +// No big-endian support (because different values on different machines don't matter), +// hardcodes seed and the secret, reformattes the code, and clang-tidy fixes. +namespace detail::wyhash { + +static inline void mum(uint64_t* a, uint64_t* b) { +# if defined(__SIZEOF_INT128__) + __uint128_t r = *a; + r *= *b; + *a = static_cast(r); + *b = static_cast(r >> 64U); +# elif defined(_MSC_VER) && defined(_M_X64) + *a = _umul128(*a, *b, b); +# else + uint64_t ha = *a >> 32U; + uint64_t hb = *b >> 32U; + uint64_t la = static_cast(*a); + uint64_t lb = static_cast(*b); + uint64_t hi{}; + uint64_t lo{}; + uint64_t rh = ha * hb; + uint64_t rm0 = ha * lb; + uint64_t rm1 = hb * la; + uint64_t rl = la * lb; + uint64_t t = rl + (rm0 << 32U); + auto c = static_cast(t < rl); + lo = t + (rm1 << 32U); + c += static_cast(lo < t); + hi = rh + (rm0 >> 32U) + (rm1 >> 32U) + c; + *a = lo; + *b = hi; +# endif +} + +// multiply and xor mix function, aka MUM +[[nodiscard]] static inline auto mix(uint64_t a, uint64_t b) -> uint64_t { + mum(&a, &b); + return a ^ b; +} + +// read functions. WARNING: we don't care about endianness, so results are different on big endian! +[[nodiscard]] static inline auto r8(const uint8_t* p) -> uint64_t { + uint64_t v{}; + std::memcpy(&v, p, 8U); + return v; +} + +[[nodiscard]] static inline auto r4(const uint8_t* p) -> uint64_t { + uint32_t v{}; + std::memcpy(&v, p, 4); + return v; +} + +// reads 1, 2, or 3 bytes +[[nodiscard]] static inline auto r3(const uint8_t* p, size_t k) -> uint64_t { + return (static_cast(p[0]) << 16U) | (static_cast(p[k >> 1U]) << 8U) | p[k - 1]; +} + +[[maybe_unused]] [[nodiscard]] static inline auto hash(void const* key, size_t len) -> uint64_t { + static constexpr auto secret = std::array{UINT64_C(0xa0761d6478bd642f), + UINT64_C(0xe7037ed1a0b428db), + UINT64_C(0x8ebc6af09c88c6e3), + UINT64_C(0x589965cc75374cc3)}; + + auto const* p = static_cast(key); + uint64_t seed = secret[0]; + uint64_t a{}; + uint64_t b{}; + if (ANKERL_UNORDERED_DENSE_LIKELY(len <= 16)) { + if (ANKERL_UNORDERED_DENSE_LIKELY(len >= 4)) { + a = (r4(p) << 32U) | r4(p + ((len >> 3U) << 2U)); + b = (r4(p + len - 4) << 32U) | r4(p + len - 4 - ((len >> 3U) << 2U)); + } else if (ANKERL_UNORDERED_DENSE_LIKELY(len > 0)) { + a = r3(p, len); + b = 0; + } else { + a = 0; + b = 0; + } + } else { + size_t i = len; + if (ANKERL_UNORDERED_DENSE_UNLIKELY(i > 48)) { + uint64_t see1 = seed; + uint64_t see2 = seed; + do { + seed = mix(r8(p) ^ secret[1], r8(p + 8) ^ seed); + see1 = mix(r8(p + 16) ^ secret[2], r8(p + 24) ^ see1); + see2 = mix(r8(p + 32) ^ secret[3], r8(p + 40) ^ see2); + p += 48; + i -= 48; + } while (ANKERL_UNORDERED_DENSE_LIKELY(i > 48)); + seed ^= see1 ^ see2; + } + while (ANKERL_UNORDERED_DENSE_UNLIKELY(i > 16)) { + seed = mix(r8(p) ^ secret[1], r8(p + 8) ^ seed); + i -= 16; + p += 16; + } + a = r8(p + i - 16); + b = r8(p + i - 8); + } + + return mix(secret[1] ^ len, mix(a ^ secret[1], b ^ seed)); +} + +[[nodiscard]] static inline auto hash(uint64_t x) -> uint64_t { + return detail::wyhash::mix(x, UINT64_C(0x9E3779B97F4A7C15)); +} + +} // namespace detail::wyhash + +template +struct hash { + auto operator()(T const& obj) const noexcept(noexcept(std::declval>().operator()(std::declval()))) + -> uint64_t { + return std::hash{}(obj); + } +}; + +template +struct hash> { + using is_avalanching = void; + auto operator()(std::basic_string const& str) const noexcept -> uint64_t { + return detail::wyhash::hash(str.data(), sizeof(CharT) * str.size()); + } +}; + +template +struct hash> { + using is_avalanching = void; + auto operator()(std::basic_string_view const& sv) const noexcept -> uint64_t { + return detail::wyhash::hash(sv.data(), sizeof(CharT) * sv.size()); + } +}; + +template +struct hash { + using is_avalanching = void; + auto operator()(T* ptr) const noexcept -> uint64_t { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) + return detail::wyhash::hash(reinterpret_cast(ptr)); + } +}; + +template +struct hash> { + using is_avalanching = void; + auto operator()(std::unique_ptr const& ptr) const noexcept -> uint64_t { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) + return detail::wyhash::hash(reinterpret_cast(ptr.get())); + } +}; + +template +struct hash> { + using is_avalanching = void; + auto operator()(std::shared_ptr const& ptr) const noexcept -> uint64_t { + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast) + return detail::wyhash::hash(reinterpret_cast(ptr.get())); + } +}; + +template +struct hash::value>::type> { + using is_avalanching = void; + auto operator()(Enum e) const noexcept -> uint64_t { + using underlying = typename std::underlying_type_t; + return detail::wyhash::hash(static_cast(e)); + } +}; + +// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) +# define ANKERL_UNORDERED_DENSE_HASH_STATICCAST(T) \ + template <> \ + struct hash { \ + using is_avalanching = void; \ + auto operator()(T const& obj) const noexcept -> uint64_t { \ + return detail::wyhash::hash(static_cast(obj)); \ + } \ + } + +# if defined(__GNUC__) && !defined(__clang__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wuseless-cast" +# endif +// see https://en.cppreference.com/w/cpp/utility/hash +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(bool); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(char); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(signed char); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(unsigned char); +# if ANKERL_UNORDERED_DENSE_CPP_VERSION >= 202002L +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(char8_t); +# endif +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(char16_t); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(char32_t); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(wchar_t); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(short); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(unsigned short); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(int); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(unsigned int); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(long); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(long long); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(unsigned long); +ANKERL_UNORDERED_DENSE_HASH_STATICCAST(unsigned long long); + +# if defined(__GNUC__) && !defined(__clang__) +# pragma GCC diagnostic pop +# endif + +// bucket_type ////////////////////////////////////////////////////////// + +namespace bucket_type { + +struct standard { + static constexpr uint32_t dist_inc = 1U << 8U; // skip 1 byte fingerprint + static constexpr uint32_t fingerprint_mask = dist_inc - 1; // mask for 1 byte of fingerprint + + uint32_t m_dist_and_fingerprint; // upper 3 byte: distance to original bucket. lower byte: fingerprint from hash + uint32_t m_value_idx; // index into the m_values vector. +}; + +ANKERL_UNORDERED_DENSE_PACK(struct big { + static constexpr uint32_t dist_inc = 1U << 8U; // skip 1 byte fingerprint + static constexpr uint32_t fingerprint_mask = dist_inc - 1; // mask for 1 byte of fingerprint + + uint32_t m_dist_and_fingerprint; // upper 3 byte: distance to original bucket. lower byte: fingerprint from hash + size_t m_value_idx; // index into the m_values vector. +}); + +} // namespace bucket_type + +namespace detail { + +struct nonesuch {}; + +template class Op, class... Args> +struct detector { + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> { + using value_t = std::true_type; + using type = Op; +}; + +template