diff --git a/doc/pellet-flow-coefficient.md b/doc/pellet-flow-coefficient.md
new file mode 100644
index 000000000..8e91312ad
--- /dev/null
+++ b/doc/pellet-flow-coefficient.md
@@ -0,0 +1,23 @@
+Large format printers with print volumes in the order of 1m^3 generally use pellets for printing.
+The overall tech is very similar to FDM printing.
+It is FDM printing, but instead of filaments, it uses pellets.
+
+The difference here is that where filaments have a filament_diameter that is used to calculate
+the volume of filament ingested, pellets have a particular flow_coefficient that is empirically
+devised for that particular pellet.
+
+pellet_flow_coefficient is basically a measure of the packing density of a particular pellet.
+Shape, material and density of an individual pellet will determine the packing density and
+the only thing that matters for 3d printing is how much of that pellet material is extruded by
+one turn of whatever feeding mehcanism/gear your printer uses. You can emperically derive that
+for your own pellets for a particular printer model.
+
+We are translating the pellet_flow_coefficient into filament_diameter so that everything works just like it
+does already with very minor adjustments.
+
+filament_diameter = sqrt( (4 \* pellet_flow_coefficient) / PI )
+
+sqrt just makes the relationship between flow_coefficient and volume linear.
+
+higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
+All other calculations remain the same for slicing.
diff --git a/resources/images/pellets.svg b/resources/images/pellets.svg
new file mode 100644
index 000000000..047de45df
--- /dev/null
+++ b/resources/images/pellets.svg
@@ -0,0 +1,48 @@
+
+
+
diff --git a/resources/profiles/Ginger Additive.json b/resources/profiles/Ginger Additive.json
new file mode 100644
index 000000000..8a50f2546
--- /dev/null
+++ b/resources/profiles/Ginger Additive.json
@@ -0,0 +1,102 @@
+{
+ "name": "Ginger Additive",
+ "version": "0.1",
+ "force_update": "1",
+ "description": "Ginger configuration",
+ "machine_model_list": [
+ {
+ "name": "ginger G1",
+ "sub_path": "machine/ginger G1.json"
+ }
+ ],
+ "machine_list": [
+ {
+ "name": "fdm_machine_common",
+ "sub_path": "machine/fdm_machine_common.json"
+ },
+ {
+ "name": "ginger_one_common",
+ "sub_path": "machine/ginger_one_common.json"
+ },
+ {
+ "name": "ginger G1 1.2 nozzle",
+ "sub_path": "machine/ginger G1 1.2 nozzle.json"
+ },
+ {
+ "name": "ginger G1 3.0 nozzle",
+ "sub_path": "machine/ginger G1 3.0 nozzle.json"
+ },
+ {
+ "name": "ginger G1 5.0 nozzle",
+ "sub_path": "machine/ginger G1 5.0 nozzle.json"
+ },
+ {
+ "name": "ginger G1 8.0 nozzle",
+ "sub_path": "machine/ginger G1 8.0 nozzle.json"
+ }
+ ],
+ "process_list": [
+ {
+ "name": "fdm_process_common",
+ "sub_path": "process/fdm_process_common.json"
+ },
+ {
+ "name": "0.60mm Standard",
+ "sub_path": "process/0.60mm Standard.json"
+ },
+ {
+ "name": "1.50mm Standard",
+ "sub_path": "process/1.50mm Standard.json"
+ },
+ {
+ "name": "1.80mm Vasemode",
+ "sub_path": "process/1.80mm Vasemode.json"
+ },
+ {
+ "name": "2.50mm Standard",
+ "sub_path": "process/2.50mm Standard.json"
+ },
+ {
+ "name": "4.00mm Standard",
+ "sub_path": "process/4.00mm Standard.json"
+ }
+ ],
+ "filament_list": [
+ {
+ "name": "fdm_filament_common",
+ "sub_path": "filament/fdm_filament_common.json"
+ },
+ {
+ "name": "fdm_filament_petg",
+ "sub_path": "filament/fdm_filament_petg.json"
+ },
+ {
+ "name": "fdm_filament_pla",
+ "sub_path": "filament/fdm_filament_pla.json"
+ },
+ {
+ "name": "fdm_filament_rpetg",
+ "sub_path": "filament/fdm_filament_rpetg.json"
+ },
+ {
+ "name": "fdm_filament_rpla",
+ "sub_path": "filament/fdm_filament_rpla.json"
+ },
+ {
+ "name": "Ginger Generic PETG",
+ "sub_path": "filament/Ginger Generic PETG.json"
+ },
+ {
+ "name": "Ginger Generic PLA",
+ "sub_path": "filament/Ginger Generic PLA.json"
+ },
+ {
+ "name": "Ginger Generic rPETG",
+ "sub_path": "filament/Ginger Generic rPETG.json"
+ },
+ {
+ "name": "Ginger Generic rPLA",
+ "sub_path": "filament/Ginger Generic rPLA.json"
+ }
+ ]
+}
diff --git a/resources/profiles/Ginger Additive/Ginger_One.stl b/resources/profiles/Ginger Additive/Ginger_One.stl
new file mode 100644
index 000000000..ec20e29d3
Binary files /dev/null and b/resources/profiles/Ginger Additive/Ginger_One.stl differ
diff --git a/resources/profiles/Ginger Additive/Ginger_One.svg b/resources/profiles/Ginger Additive/Ginger_One.svg
new file mode 100644
index 000000000..eae220fa9
--- /dev/null
+++ b/resources/profiles/Ginger Additive/Ginger_One.svg
@@ -0,0 +1,4 @@
+
diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json
new file mode 100644
index 000000000..8fd8e3891
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PETG.json
@@ -0,0 +1,29 @@
+{
+ "type": "filament",
+ "enable_overhang_bridge_fan": ["0"],
+ "fan_max_speed": ["0"],
+ "fan_min_speed": ["0"],
+ "filament_diameter": ["1.12838"],
+ "filament_max_volumetric_speed": ["220"],
+ "filament_settings_id": ["PETG"],
+ "filament_type": ["PETG"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["100"],
+ "hot_plate_temp_initial_layer": ["90"],
+ "inherits": "fdm_filament_petg",
+ "is_custom_defined": "0",
+ "name": "Ginger Generic PETG",
+ "pellet_flow_coefficient": ["1"],
+ "pressure_advance": ["0.01"],
+ "slow_down_layer_time": ["30"],
+ "slow_down_min_speed": ["1"],
+ "version": "0.1.0.0",
+ "compatible_printers": [
+ "ginger G1 1.2 nozzle",
+ "ginger G1 3.0 nozzle",
+ "ginger G1 5.0 nozzle",
+ "ginger G1 8.0 nozzle"
+ ],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json
new file mode 100644
index 000000000..8242c91b2
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/Ginger Generic PLA.json
@@ -0,0 +1,30 @@
+{
+ "type": "filament",
+ "fan_cooling_layer_time": ["60"],
+ "fan_max_speed": ["60"],
+ "fan_min_speed": ["20"],
+ "filament_cost": ["6"],
+ "filament_diameter": ["1.12838"],
+ "filament_max_volumetric_speed": ["250"],
+ "filament_settings_id": ["PLA"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "inherits": "fdm_filament_pla",
+ "is_custom_defined": "0",
+ "name": "Ginger Generic PLA",
+ "nozzle_temperature": ["210"],
+ "nozzle_temperature_initial_layer": ["210"],
+ "nozzle_temperature_range_high": ["220"],
+ "pellet_flow_coefficient": ["1"],
+ "required_nozzle_HRC": ["0"],
+ "slow_down_layer_time": ["20"],
+ "slow_down_min_speed": ["3"],
+ "version": "0.1.0.0",
+ "compatible_printers": [
+ "ginger G1 1.2 nozzle",
+ "ginger G1 3.0 nozzle",
+ "ginger G1 5.0 nozzle",
+ "ginger G1 8.0 nozzle"
+ ],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic rPETG.json b/resources/profiles/Ginger Additive/filament/Ginger Generic rPETG.json
new file mode 100644
index 000000000..489744aef
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/Ginger Generic rPETG.json
@@ -0,0 +1,31 @@
+{
+ "type": "filament",
+ "fan_cooling_layer_time": ["50"],
+ "fan_min_speed": ["0"],
+ "filament_density": ["1.27"],
+ "filament_diameter": ["1.12838"],
+ "filament_settings_id": ["rPETG"],
+ "filament_type": ["rPETG"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["90"],
+ "hot_plate_temp_initial_layer": ["80"],
+ "inherits": "fdm_filament_rpetg",
+ "is_custom_defined": "0",
+ "name": "Ginger Generic rPETG",
+ "nozzle_temperature_range_high": ["260"],
+ "nozzle_temperature_range_low": ["230"],
+ "pellet_flow_coefficient": ["1"],
+ "pressure_advance": ["0.01"],
+ "required_nozzle_HRC": ["0"],
+ "slow_down_min_speed": ["2"],
+ "temperature_vitrification": ["85"],
+ "version": "0.1.0.0",
+ "compatible_printers": [
+ "ginger G1 1.2 nozzle",
+ "ginger G1 3.0 nozzle",
+ "ginger G1 5.0 nozzle",
+ "ginger G1 8.0 nozzle"
+ ],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/filament/Ginger Generic rPLA.json b/resources/profiles/Ginger Additive/filament/Ginger Generic rPLA.json
new file mode 100644
index 000000000..65dc0c13b
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/Ginger Generic rPLA.json
@@ -0,0 +1,22 @@
+{
+ "type": "filament",
+ "fan_max_speed": ["0"],
+ "fan_min_speed": ["0"],
+ "filament_diameter": ["1.12838"],
+ "filament_settings_id": ["rPLA"],
+ "filament_type": ["rPLA"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "inherits": "fdm_filament_rpla",
+ "is_custom_defined": "0",
+ "name": "Ginger Generic rPLA",
+ "pellet_flow_coefficient": ["1"],
+ "version": "0.1.0.0",
+ "compatible_printers": [
+ "ginger G1 1.2 nozzle",
+ "ginger G1 3.0 nozzle",
+ "ginger G1 5.0 nozzle",
+ "ginger G1 8.0 nozzle"
+ ],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_common.json b/resources/profiles/Ginger Additive/filament/fdm_filament_common.json
new file mode 100644
index 000000000..ffd1d27d7
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/fdm_filament_common.json
@@ -0,0 +1,95 @@
+{
+ "type": "filament",
+ "activate_air_filtration": ["0"],
+ "activate_chamber_temp_control": ["0"],
+ "additional_cooling_fan_speed": ["70"],
+ "chamber_temperature": ["0"],
+ "close_fan_the_first_x_layers": ["1"],
+ "compatible_printers": ["Ginger Additive ginger G1 1.0 nozzle"],
+ "compatible_printers_condition": "",
+ "compatible_prints": [],
+ "compatible_prints_condition": "",
+ "complete_print_exhaust_fan_speed": ["70"],
+ "cool_plate_temp": ["35"],
+ "cool_plate_temp_initial_layer": ["35"],
+ "default_filament_colour": [""],
+ "during_print_exhaust_fan_speed": ["70"],
+ "enable_overhang_bridge_fan": ["1"],
+ "enable_pressure_advance": ["1"],
+ "eng_plate_temp": ["0"],
+ "eng_plate_temp_initial_layer": ["0"],
+ "fan_cooling_layer_time": ["60"],
+ "fan_max_speed": ["0"],
+ "fan_min_speed": ["0"],
+ "filament_cooling_final_speed": ["3.4"],
+ "filament_cooling_initial_speed": ["2.2"],
+ "filament_cooling_moves": ["4"],
+ "filament_cost": ["5"],
+ "filament_density": ["1.24"],
+ "filament_deretraction_speed": ["nil"],
+ "filament_diameter": ["2.8"],
+ "filament_end_gcode": ["; filament end gcode \nM106 P3 S0\n"],
+ "filament_flow_ratio": ["1"],
+ "filament_id": "P510eff9",
+ "filament_is_support": ["0"],
+ "filament_load_time": ["0"],
+ "filament_loading_speed": ["28"],
+ "filament_loading_speed_start": ["3"],
+ "filament_max_volumetric_speed": ["300"],
+ "filament_minimal_purge_on_wipe_tower": ["15"],
+ "filament_multitool_ramming": ["0"],
+ "filament_multitool_ramming_flow": ["10"],
+ "filament_multitool_ramming_volume": ["10"],
+ "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_retract_before_wipe": ["nil"],
+ "filament_retract_lift_above": ["nil"],
+ "filament_retract_lift_below": ["nil"],
+ "filament_retract_lift_enforce": ["nil"],
+ "filament_retract_restart_extra": ["nil"],
+ "filament_retract_when_changing_layer": ["nil"],
+ "filament_retraction_length": ["nil"],
+ "filament_retraction_minimum_travel": ["nil"],
+ "filament_retraction_speed": ["nil"],
+ "filament_settings_id": ["Ginger Filaments Common"],
+ "filament_shrink": ["100%"],
+ "filament_soluble": ["0"],
+ "filament_start_gcode": [
+ "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}"
+ ],
+ "filament_toolchange_delay": ["0"],
+ "filament_unload_time": ["0"],
+ "filament_unloading_speed": ["90"],
+ "filament_unloading_speed_start": ["100"],
+ "filament_vendor": ["Generic"],
+ "filament_wipe": ["nil"],
+ "filament_wipe_distance": ["nil"],
+ "filament_z_hop": ["nil"],
+ "filament_z_hop_types": ["nil"],
+ "from": "system",
+ "full_fan_speed_layer": ["0"],
+ "hot_plate_temp": ["1"],
+ "hot_plate_temp_initial_layer": ["60"],
+ "is_custom_defined": "0",
+ "name": "fdm_filament_common",
+ "nozzle_temperature": ["220"],
+ "nozzle_temperature_initial_layer": ["220"],
+ "nozzle_temperature_range_high": ["240"],
+ "nozzle_temperature_range_low": ["190"],
+ "overhang_fan_speed": ["100"],
+ "overhang_fan_threshold": ["50%"],
+ "pressure_advance": ["0.4"],
+ "reduce_fan_stop_start_freq": ["0"],
+ "required_nozzle_HRC": ["3"],
+ "slow_down_for_layer_cooling": ["1"],
+ "slow_down_layer_time": ["30"],
+ "slow_down_min_speed": ["20"],
+ "support_material_interface_fan_speed": ["-1"],
+ "temperature_vitrification": ["55"],
+ "textured_plate_temp": ["55"],
+ "textured_plate_temp_initial_layer": ["55"],
+ "version": "1.7.0.2",
+ "instantiation": "false"
+}
diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_petg.json b/resources/profiles/Ginger Additive/filament/fdm_filament_petg.json
new file mode 100644
index 000000000..3046df8a8
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/fdm_filament_petg.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "filament_type": ["PETG"],
+ "close_fan_the_first_x_layers": ["4"],
+ "fan_cooling_layer_time": ["100"],
+ "fan_max_speed": ["50"],
+ "fan_min_speed": ["5"],
+ "filament_diameter": ["2.4"],
+ "filament_settings_id": ["PETG"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["50"],
+ "hot_plate_temp_initial_layer": ["50"],
+ "inherits": "fdm_filament_common",
+ "name": "fdm_filament_petg",
+ "pressure_advance": ["0"],
+ "slow_down_layer_time": ["25"],
+ "version": "1.7.0.2",
+ "instantiation": "false"
+}
diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_pla.json b/resources/profiles/Ginger Additive/filament/fdm_filament_pla.json
new file mode 100644
index 000000000..d10da9b05
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/fdm_filament_pla.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "filament_type": ["PLA"],
+ "close_fan_the_first_x_layers": ["4"],
+ "fan_cooling_layer_time": ["100"],
+ "fan_max_speed": ["50"],
+ "fan_min_speed": ["5"],
+ "filament_diameter": ["2.4"],
+ "filament_settings_id": ["PLA"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["50"],
+ "hot_plate_temp_initial_layer": ["50"],
+ "inherits": "fdm_filament_common",
+ "name": "fdm_filament_pla",
+ "pressure_advance": ["0"],
+ "slow_down_layer_time": ["25"],
+ "version": "1.7.0.2",
+ "instantiation": "false"
+}
diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_rpetg.json b/resources/profiles/Ginger Additive/filament/fdm_filament_rpetg.json
new file mode 100644
index 000000000..826d04bab
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/fdm_filament_rpetg.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "filament_type": ["rPETG"],
+ "close_fan_the_first_x_layers": ["4"],
+ "fan_cooling_layer_time": ["100"],
+ "fan_max_speed": ["50"],
+ "fan_min_speed": ["5"],
+ "filament_diameter": ["2.4"],
+ "filament_settings_id": ["rPETG"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["50"],
+ "hot_plate_temp_initial_layer": ["50"],
+ "inherits": "fdm_filament_common",
+ "name": "fdm_filament_rpetg",
+ "pressure_advance": ["0"],
+ "slow_down_layer_time": ["25"],
+ "version": "1.7.0.2",
+ "instantiation": "false"
+}
diff --git a/resources/profiles/Ginger Additive/filament/fdm_filament_rpla.json b/resources/profiles/Ginger Additive/filament/fdm_filament_rpla.json
new file mode 100644
index 000000000..05a73700c
--- /dev/null
+++ b/resources/profiles/Ginger Additive/filament/fdm_filament_rpla.json
@@ -0,0 +1,20 @@
+{
+ "type": "filament",
+ "filament_type": ["rPLA"],
+ "close_fan_the_first_x_layers": ["4"],
+ "fan_cooling_layer_time": ["100"],
+ "fan_max_speed": ["50"],
+ "fan_min_speed": ["5"],
+ "filament_diameter": ["2.4"],
+ "filament_settings_id": ["rPLA"],
+ "filament_vendor": ["Generic"],
+ "from": "system",
+ "hot_plate_temp": ["50"],
+ "hot_plate_temp_initial_layer": ["50"],
+ "inherits": "fdm_filament_common",
+ "name": "fdm_filament_rpla",
+ "pressure_advance": ["0"],
+ "slow_down_layer_time": ["25"],
+ "version": "1.7.0.2",
+ "instantiation": "false"
+}
diff --git a/resources/profiles/Ginger Additive/ginger G1_cover.png b/resources/profiles/Ginger Additive/ginger G1_cover.png
new file mode 100644
index 000000000..f072f4693
Binary files /dev/null and b/resources/profiles/Ginger Additive/ginger G1_cover.png differ
diff --git a/resources/profiles/Ginger Additive/machine/fdm_machine_common.json b/resources/profiles/Ginger Additive/machine/fdm_machine_common.json
new file mode 100644
index 000000000..c1e54edfb
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/fdm_machine_common.json
@@ -0,0 +1,121 @@
+{
+ "type": "machine",
+ "instantiation": "false",
+ "adaptive_bed_mesh_margin": "0",
+ "auxiliary_fan": "0",
+ "bed_custom_texture": "",
+ "bed_exclude_area": ["0x0"],
+ "bed_mesh_max": "99999,99999",
+ "bed_mesh_min": "-99999,-99999",
+ "bed_mesh_probe_distance": "50,50",
+ "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
+ "best_object_pos": "0.5,0.5",
+ "change_extrusion_role_gcode": "",
+ "change_filament_gcode": "",
+ "cooling_tube_length": "5",
+ "cooling_tube_retraction": "91.5",
+ "default_filament_profile": ["My Generic ABS"],
+ "default_print_profile": "0.20mm Standard @MyKlipper",
+ "deretraction_speed": ["30"],
+ "disable_m73": "0",
+ "emit_machine_limits_to_gcode": "1",
+ "enable_filament_ramming": "1",
+ "extra_loading_move": "-2",
+ "extruder_clearance_height_to_lid": "140",
+ "extruder_clearance_height_to_rod": "36",
+ "extruder_clearance_radius": "65",
+ "extruder_colour": ["#FCE94F"],
+ "extruder_offset": ["0x0"],
+ "fan_kickstart": "0",
+ "fan_speedup_overhangs": "1",
+ "fan_speedup_time": "0",
+ "from": "system",
+ "gcode_flavor": "klipper",
+ "head_wrap_detect_zone": [],
+ "high_current_on_filament_swap": "0",
+ "host_type": "octoprint",
+ "is_custom_defined": "0",
+ "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
+ "machine_end_gcode": "PRINT_END",
+ "machine_load_filament_time": "0",
+ "machine_max_acceleration_e": ["5000", "5000"],
+ "machine_max_acceleration_extruding": ["20000", "20000"],
+ "machine_max_acceleration_retracting": ["5000", "5000"],
+ "machine_max_acceleration_travel": ["20000", "20000"],
+ "machine_max_acceleration_x": ["2000", "20000"],
+ "machine_max_acceleration_y": ["2000", "20000"],
+ "machine_max_acceleration_z": ["500", "200"],
+ "machine_max_jerk_e": ["2.5", "2.5"],
+ "machine_max_jerk_x": ["5", "9"],
+ "machine_max_jerk_y": ["5", "9"],
+ "machine_max_jerk_z": ["0.2", "0.4"],
+ "machine_max_speed_e": ["80", "25"],
+ "machine_max_speed_x": ["200", "200"],
+ "machine_max_speed_y": ["200", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_min_extruding_rate": ["0", "0"],
+ "machine_min_travel_rate": ["0", "0"],
+ "machine_pause_gcode": "PAUSE",
+ "machine_start_gcode": "PRINT_START MATERIAL=[filament_type]\n",
+ "machine_unload_filament_time": "0",
+ "manual_filament_change": "0",
+ "max_layer_height": ["2"],
+ "min_layer_height": ["0.1"],
+ "name": "fdm_machine_common",
+ "nozzle_diameter": ["1.0"],
+ "nozzle_hrc": "0",
+ "nozzle_type": "undefine",
+ "nozzle_volume": "0",
+ "parking_pos_retraction": "92",
+ "pellet_modded_printer": "1",
+ "preferred_orientation": "0",
+ "print_host": "http://10.0.1.200/",
+ "print_host_webui": "",
+ "printable_area": ["0x0", "1000x0", "1000x1000", "0x1000"],
+ "printable_height": "1000",
+ "printer_notes": "",
+ "printer_settings_id": "fdm_machine_common",
+ "printer_structure": "undefine",
+ "printer_technology": "FFF",
+ "printer_variant": "1.0",
+ "printhost_apikey": "",
+ "printhost_authorization_type": "key",
+ "printhost_cafile": "",
+ "printhost_password": "",
+ "printhost_port": "",
+ "printhost_ssl_ignore_revoke": "0",
+ "printhost_user": "",
+ "printing_by_object_gcode": "",
+ "purge_in_prime_tower": "1",
+ "retract_before_wipe": ["70%"],
+ "retract_length_toolchange": ["2"],
+ "retract_lift_above": ["0"],
+ "retract_lift_below": ["0"],
+ "retract_lift_enforce": ["All Surfaces"],
+ "retract_restart_extra": ["0"],
+ "retract_restart_extra_toolchange": ["0"],
+ "retract_when_changing_layer": ["1"],
+ "retraction_length": ["0.8"],
+ "retraction_minimum_travel": ["1"],
+ "retraction_speed": ["30"],
+ "scan_first_layer": "0",
+ "silent_mode": "0",
+ "single_extruder_multi_material": "1",
+ "support_air_filtration": "1",
+ "support_chamber_temp_control": "1",
+ "support_multi_bed_types": "0",
+ "template_custom_gcode": "",
+ "thumbnails": ["50x50"],
+ "thumbnails_format": "PNG",
+ "time_cost": "0",
+ "time_lapse_gcode": "",
+ "upward_compatible_machine": [],
+ "use_firmware_retraction": "0",
+ "use_relative_e_distances": "1",
+ "version": "1.9.0.2",
+ "wipe": ["1"],
+ "wipe_distance": ["1"],
+ "z_hop": ["0.4"],
+ "z_hop_types": ["Normal Lift"],
+ "z_offset": "0"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger G1 1.2 nozzle.json b/resources/profiles/Ginger Additive/machine/ginger G1 1.2 nozzle.json
new file mode 100644
index 000000000..76a80a20d
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger G1 1.2 nozzle.json
@@ -0,0 +1,33 @@
+{
+ "type": "machine",
+ "deretraction_speed": ["300"],
+ "extruder_clearance_height_to_lid": "200",
+ "extruder_clearance_height_to_rod": "200",
+ "extruder_clearance_radius": "180",
+ "from": "system",
+ "inherits": "ginger_one_common",
+ "is_custom_defined": "0",
+ "machine_max_speed_e": ["250", "25"],
+ "machine_max_speed_x": ["250", "200"],
+ "machine_max_speed_y": ["250", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_start_gcode": "START_PRINT BED_TEMPERATURE=[bed_temperature_initial_layer] MATERIAL=[filament_type] KAMP_LEVELING=1 PURGE_LAYER_HEIGHT=2 PURGE_PARKING_SPEED=10000 PURGE_LENGHT=300 PURGE_SPEED=500 PURGE_MATERIAL_QUANTITY=3000 EXTRUDER_TEMPERATURE=[nozzle_temperature] EXTRUDER_TEMPERATURE_INITIAL_LAYER=[nozzle_temperature_initial_layer]",
+ "max_layer_height": ["1"],
+ "name": "ginger G1 1.2 nozzle",
+ "nozzle_diameter": ["1.2"],
+ "printer_variant": "1.2",
+ "printer_model": "ginger G1",
+ "print_host": "192.168.1.97",
+ "printer_settings_id": "ginger G1 1.2 nozzle",
+ "retract_before_wipe": ["20%"],
+ "retract_restart_extra": ["12"],
+ "retraction_length": ["20"],
+ "retraction_speed": ["250"],
+ "support_air_filtration": "0",
+ "support_chamber_temp_control": "0",
+ "version": "0.1.0.0",
+ "wipe_distance": ["20"],
+ "z_hop": ["0.8"],
+ "z_hop_types": ["Slope Lift"],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger G1 3.0 nozzle.json b/resources/profiles/Ginger Additive/machine/ginger G1 3.0 nozzle.json
new file mode 100644
index 000000000..8976a3ce3
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger G1 3.0 nozzle.json
@@ -0,0 +1,33 @@
+{
+ "type": "machine",
+ "deretraction_speed": ["250"],
+ "extruder_clearance_height_to_lid": "200",
+ "extruder_clearance_height_to_rod": "200",
+ "extruder_clearance_radius": "180",
+ "from": "system",
+ "inherits": "ginger_one_common",
+ "is_custom_defined": "0",
+ "machine_max_speed_e": ["300", "25"],
+ "machine_max_speed_x": ["250", "200"],
+ "machine_max_speed_y": ["250", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_start_gcode": "START_PRINT BED_TEMPERATURE=[bed_temperature_initial_layer] MATERIAL=[filament_type] KAMP_LEVELING=1 PURGE_LAYER_HEIGHT=2 PURGE_PARKING_SPEED=10000 PURGE_LENGHT=300 PURGE_SPEED=500 PURGE_MATERIAL_QUANTITY=3000 EXTRUDER_TEMPERATURE=[nozzle_temperature] EXTRUDER_TEMPERATURE_INITIAL_LAYER=[nozzle_temperature_initial_layer]",
+ "max_layer_height": ["2.2"],
+ "nozzle_diameter": ["3.0"],
+ "printer_variant": "3.0",
+ "printer_model": "ginger G1",
+ "name": "ginger G1 3.0 nozzle",
+ "print_host": "192.168.1.39",
+ "printer_settings_id": "ginger G1 3.0 nozzle",
+ "retract_before_wipe": ["20%"],
+ "retract_restart_extra": ["5"],
+ "retraction_length": ["15"],
+ "retraction_speed": ["250"],
+ "support_air_filtration": "0",
+ "support_chamber_temp_control": "0",
+ "version": "0.1.0.0",
+ "wipe_distance": ["15"],
+ "z_hop": ["1.2"],
+ "z_hop_types": ["Normal Lift"],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger G1 5.0 nozzle.json b/resources/profiles/Ginger Additive/machine/ginger G1 5.0 nozzle.json
new file mode 100644
index 000000000..02231c1ad
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger G1 5.0 nozzle.json
@@ -0,0 +1,33 @@
+{
+ "type": "machine",
+ "deretraction_speed": ["300"],
+ "extruder_clearance_height_to_lid": "200",
+ "extruder_clearance_height_to_rod": "200",
+ "extruder_clearance_radius": "180",
+ "from": "system",
+ "inherits": "ginger_one_common",
+ "is_custom_defined": "0",
+ "machine_max_speed_e": ["300", "25"],
+ "machine_max_speed_x": ["250", "200"],
+ "machine_max_speed_y": ["250", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_start_gcode": "START_PRINT BED_TEMPERATURE=[bed_temperature_initial_layer] MATERIAL=[filament_type] KAMP_LEVELING=1 PURGE_LAYER_HEIGHT=2 PURGE_PARKING_SPEED=10000 PURGE_LENGHT=300 PURGE_SPEED=500 PURGE_MATERIAL_QUANTITY=3000 EXTRUDER_TEMPERATURE=[nozzle_temperature] EXTRUDER_TEMPERATURE_INITIAL_LAYER=[nozzle_temperature_initial_layer]",
+ "max_layer_height": ["3.5"],
+ "name": "ginger G1 5.0 nozzle",
+ "nozzle_diameter": ["5.0"],
+ "printer_variant": "5.0",
+ "printer_model": "ginger G1",
+ "print_host": "192.168.1.97",
+ "printer_settings_id": "ginger G1 5.0 nozzle",
+ "retract_before_wipe": ["20%"],
+ "retract_restart_extra": ["15"],
+ "retraction_length": ["25"],
+ "retraction_speed": ["300"],
+ "support_air_filtration": "0",
+ "support_chamber_temp_control": "0",
+ "version": "0.1.0.0",
+ "wipe_distance": ["20"],
+ "z_hop": ["2"],
+ "z_hop_types": ["Normal Lift"],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger G1 8.0 nozzle.json b/resources/profiles/Ginger Additive/machine/ginger G1 8.0 nozzle.json
new file mode 100644
index 000000000..b9a1e9b5d
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger G1 8.0 nozzle.json
@@ -0,0 +1,34 @@
+{
+ "type": "machine",
+ "deretraction_speed": ["300"],
+ "extruder_clearance_height_to_lid": "200",
+ "extruder_clearance_height_to_rod": "200",
+ "extruder_clearance_radius": "180",
+ "from": "system",
+ "inherits": "ginger_one_common",
+ "is_custom_defined": "0",
+ "machine_max_speed_e": ["300", "25"],
+ "machine_max_speed_x": ["250", "200"],
+ "machine_max_speed_y": ["250", "200"],
+ "machine_max_speed_z": ["12", "12"],
+ "machine_start_gcode": "START_PRINT BED_TEMPERATURE=[bed_temperature_initial_layer] MATERIAL=[filament_type] KAMP_LEVELING=1 PURGE_LAYER_HEIGHT=2 PURGE_PARKING_SPEED=10000 PURGE_LENGHT=300 PURGE_SPEED=500 PURGE_MATERIAL_QUANTITY=3000 EXTRUDER_TEMPERATURE=[nozzle_temperature] EXTRUDER_TEMPERATURE_INITIAL_LAYER=[nozzle_temperature_initial_layer]",
+ "max_layer_height": ["6"],
+ "name": "ginger G1 8.0 nozzle",
+ "nozzle_diameter": ["8.0"],
+ "printer_variant": "8.0",
+ "printer_model": "ginger G1",
+ "print_host": "192.168.1.39",
+ "printer_settings_id": "ginger G1 8.0 nozzle",
+ "retract_before_wipe": ["20%"],
+ "retract_length_toolchange": ["4"],
+ "retract_restart_extra": ["30"],
+ "retraction_length": ["40"],
+ "retraction_speed": ["300"],
+ "support_air_filtration": "0",
+ "support_chamber_temp_control": "0",
+ "version": "0.1.0.0",
+ "wipe_distance": ["30"],
+ "z_hop": ["2"],
+ "z_hop_types": ["Normal Lift"],
+ "instantiation": "true"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger G1.json b/resources/profiles/Ginger Additive/machine/ginger G1.json
new file mode 100644
index 000000000..bf1032021
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger G1.json
@@ -0,0 +1,10 @@
+{
+ "type": "machine_model",
+ "name": "ginger G1",
+ "model_id": "Ginger_One",
+ "nozzle_diameter": "1.2;3.0;5.0;8.0",
+ "machine_tech": "FFF",
+ "family": "Ginger",
+ "bed_model": "Ginger_One.stl",
+ "default_materials": "Ginger Generic PETG;Ginger Generic PLA;Ginger Generic rPETG;Ginger Generic rPLA"
+}
diff --git a/resources/profiles/Ginger Additive/machine/ginger_one_common.json b/resources/profiles/Ginger Additive/machine/ginger_one_common.json
new file mode 100644
index 000000000..1917e0c17
--- /dev/null
+++ b/resources/profiles/Ginger Additive/machine/ginger_one_common.json
@@ -0,0 +1,33 @@
+{
+ "type": "machine",
+ "instantiation": "false",
+ "deretraction_speed": ["60"],
+ "from": "system",
+ "inherits": "fdm_machine_common",
+ "machine_end_gcode": "END_PRINT",
+ "machine_max_acceleration_e": ["1000", "5000"],
+ "machine_max_acceleration_extruding": ["2500", "20000"],
+ "machine_max_acceleration_retracting": ["2500", "5000"],
+ "machine_max_acceleration_x": ["2500", "20000"],
+ "machine_max_acceleration_y": ["2500", "20000"],
+ "machine_max_jerk_e": ["30", "2.5"],
+ "machine_max_jerk_x": ["7", "9"],
+ "machine_max_jerk_y": ["7", "9"],
+ "machine_max_jerk_z": ["7", "0.4"],
+ "machine_max_speed_e": ["100", "25"],
+ "machine_max_speed_x": ["350", "200"],
+ "machine_max_speed_y": ["300", "200"],
+ "machine_max_speed_z": ["5", "12"],
+ "machine_start_gcode": "START_PRINT MATERIAL=[filament_type] BED=[bed_temperature_initial_layer]\n",
+ "name": "ginger_one_common",
+ "print_host": "192.168.0.167",
+ "printer_settings_id": "ginger_one_common",
+ "retract_restart_extra": ["0.5"],
+ "retraction_length": ["3"],
+ "retraction_minimum_travel": ["10"],
+ "retraction_speed": ["60"],
+ "version": "1.9.0.2",
+ "wipe_distance": ["10"],
+ "z_hop": ["0.1"],
+ "z_hop_types": ["Auto Lift"]
+}
diff --git a/resources/profiles/Ginger Additive/process/0.60mm Standard.json b/resources/profiles/Ginger Additive/process/0.60mm Standard.json
new file mode 100644
index 000000000..7fa0561e5
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/0.60mm Standard.json
@@ -0,0 +1,80 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "0",
+ "bottom_shell_layers": "0",
+ "bottom_solid_infill_flow_ratio": "0.98",
+ "bridge_flow": "0.95",
+ "brim_object_gap": "0.05",
+ "brim_type": "no_brim",
+ "brim_width": "10",
+ "default_acceleration": "2500",
+ "default_jerk": "5",
+ "elefant_foot_compensation": "0.15",
+ "exclude_object": "1",
+ "extra_perimeters_on_overhangs": "1",
+ "from": "User",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "100",
+ "infill_anchor_max": "30",
+ "infill_jerk": "5",
+ "infill_wall_overlap": "30%",
+ "inherits": "fdm_process_common",
+ "initial_layer_acceleration": "1000",
+ "initial_layer_infill_speed": "70",
+ "initial_layer_jerk": "5",
+ "initial_layer_line_width": "1.26",
+ "initial_layer_print_height": "0.6",
+ "initial_layer_speed": "50",
+ "inner_wall_acceleration": "2500",
+ "inner_wall_jerk": "5",
+ "inner_wall_line_width": "1.26",
+ "inner_wall_speed": "100",
+ "internal_bridge_speed": "70%",
+ "internal_solid_infill_line_width": "1.26",
+ "internal_solid_infill_speed": "200",
+ "is_custom_defined": "0",
+ "layer_height": "0.6",
+ "line_width": "1.26",
+ "max_volumetric_extrusion_rate_slope": "100",
+ "name": "0.60mm Standard",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_jerk": "5",
+ "outer_wall_line_width": "1.26",
+ "outer_wall_speed": "100",
+ "overhang_1_4_speed": "80%",
+ "overhang_2_4_speed": "50",
+ "overhang_3_4_speed": "30",
+ "overhang_4_4_speed": "10",
+ "overhang_reverse": "1",
+ "overhang_reverse_internal_only": "1",
+ "overhang_reverse_threshold": "0%",
+ "print_settings_id": "0.60mm Standard",
+ "reduce_infill_retraction": "1",
+ "role_based_wipe_speed": "0",
+ "skirt_distance": "10",
+ "skirt_loops": "3",
+ "sparse_infill_density": "0%",
+ "sparse_infill_line_width": "1.26",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "200",
+ "spiral_mode_max_xy_smoothing": "1e+07",
+ "spiral_mode_smooth": "1",
+ "support_line_width": "1.26",
+ "support_speed": "100",
+ "thick_internal_bridges": "0",
+ "top_shell_layers": "0",
+ "top_solid_infill_flow_ratio": "0.92",
+ "top_surface_acceleration": "2500",
+ "top_surface_jerk": "5",
+ "top_surface_line_width": "1.26",
+ "travel_acceleration": "2500",
+ "travel_jerk": "7",
+ "travel_speed": "250",
+ "version": "0.0.0.0",
+ "wipe_on_loops": "1",
+ "wipe_speed": "30",
+ "xy_contour_compensation": "-0.05",
+ "xy_hole_compensation": "0.1",
+ "instantiation": "true",
+ "compatible_printers": ["ginger G1 1.2 nozzle"]
+}
diff --git a/resources/profiles/Ginger Additive/process/1.50mm Standard.json b/resources/profiles/Ginger Additive/process/1.50mm Standard.json
new file mode 100644
index 000000000..1d5cc86e0
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/1.50mm Standard.json
@@ -0,0 +1,71 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "0",
+ "bottom_solid_infill_flow_ratio": "0.8",
+ "brim_type": "outer_only",
+ "brim_width": "20",
+ "default_acceleration": "2500",
+ "default_jerk": "5",
+ "elefant_foot_compensation": "0.2",
+ "enable_overhang_speed": "0",
+ "ensure_vertical_shell_thickness": "none",
+ "exclude_object": "1",
+ "extra_perimeters_on_overhangs": "1",
+ "from": "User",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "120",
+ "infill_anchor_max": "30",
+ "infill_jerk": "5",
+ "infill_wall_overlap": "30%",
+ "inherits": "fdm_process_common",
+ "initial_layer_acceleration": "2500",
+ "initial_layer_jerk": "5",
+ "initial_layer_print_height": "1",
+ "initial_layer_speed": "40",
+ "inner_wall_acceleration": "2500",
+ "inner_wall_jerk": "5",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_line_width": "3.2",
+ "internal_solid_infill_speed": "120",
+ "is_custom_defined": "0",
+ "name": "1.50mm Standard",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_jerk": "5",
+ "outer_wall_speed": "120",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "30",
+ "overhang_3_4_speed": "40",
+ "overhang_4_4_speed": "40",
+ "overhang_reverse": "1",
+ "overhang_reverse_internal_only": "1",
+ "overhang_reverse_threshold": "0%",
+ "print_settings_id": "1.50mm Standard",
+ "role_based_wipe_speed": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "10",
+ "sparse_infill_density": "10%",
+ "sparse_infill_line_width": "3.2",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "120",
+ "spiral_mode_max_xy_smoothing": "1e+07",
+ "spiral_mode_smooth": "1",
+ "support_speed": "120",
+ "thick_internal_bridges": "0",
+ "top_shell_layers": "0",
+ "top_solid_infill_flow_ratio": "0.9",
+ "top_surface_acceleration": "2500",
+ "top_surface_jerk": "5",
+ "top_surface_speed": "120",
+ "travel_acceleration": "2500",
+ "travel_jerk": "7",
+ "travel_speed": "250",
+ "version": "0.0.0.0",
+ "wall_generator": "classic",
+ "wall_loops": "1",
+ "wipe_on_loops": "1",
+ "wipe_speed": "40",
+ "xy_contour_compensation": "-0.15",
+ "xy_hole_compensation": "0.2",
+ "instantiation": "true",
+ "compatible_printers": ["ginger G1 3.0 nozzle"]
+}
diff --git a/resources/profiles/Ginger Additive/process/1.80mm Vasemode.json b/resources/profiles/Ginger Additive/process/1.80mm Vasemode.json
new file mode 100644
index 000000000..06f80fb61
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/1.80mm Vasemode.json
@@ -0,0 +1,77 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "0",
+ "bottom_solid_infill_flow_ratio": "0.8",
+ "brim_type": "no_brim",
+ "brim_width": "20",
+ "default_acceleration": "2500",
+ "default_jerk": "5",
+ "elefant_foot_compensation": "0.2",
+ "enable_overhang_speed": "0",
+ "ensure_vertical_shell_thickness": "none",
+ "exclude_object": "1",
+ "extra_perimeters_on_overhangs": "1",
+ "from": "User",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "120",
+ "infill_anchor_max": "30",
+ "infill_jerk": "5",
+ "infill_wall_overlap": "30%",
+ "inherits": "fdm_process_common",
+ "initial_layer_acceleration": "2500",
+ "initial_layer_jerk": "5",
+ "initial_layer_line_width": "4.2",
+ "initial_layer_print_height": "1",
+ "initial_layer_speed": "40",
+ "inner_wall_acceleration": "2500",
+ "inner_wall_jerk": "5",
+ "inner_wall_line_width": "4.2",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_line_width": "4.2",
+ "internal_solid_infill_speed": "120",
+ "is_custom_defined": "0",
+ "layer_height": "1.8",
+ "line_width": "4.2",
+ "name": "1.80mm Vasemode",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_jerk": "5",
+ "outer_wall_line_width": "4.2",
+ "outer_wall_speed": "120",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "30",
+ "overhang_3_4_speed": "40",
+ "overhang_4_4_speed": "40",
+ "overhang_reverse_internal_only": "1",
+ "overhang_reverse_threshold": "0%",
+ "print_settings_id": "1.80mm Vasemode",
+ "role_based_wipe_speed": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "10",
+ "sparse_infill_density": "0%",
+ "sparse_infill_line_width": "4.2",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "120",
+ "spiral_mode": "1",
+ "spiral_mode_max_xy_smoothing": "1e+07",
+ "spiral_mode_smooth": "1",
+ "support_line_width": "4.2",
+ "support_speed": "120",
+ "thick_internal_bridges": "0",
+ "top_shell_layers": "0",
+ "top_solid_infill_flow_ratio": "0.9",
+ "top_surface_acceleration": "2500",
+ "top_surface_jerk": "5",
+ "top_surface_line_width": "4.2",
+ "top_surface_speed": "120",
+ "travel_acceleration": "2500",
+ "travel_jerk": "7",
+ "travel_speed": "250",
+ "version": "0.0.0.0",
+ "wall_loops": "1",
+ "wipe_on_loops": "1",
+ "wipe_speed": "40",
+ "xy_contour_compensation": "-0.15",
+ "xy_hole_compensation": "0.2",
+ "instantiation": "true",
+ "compatible_printers": ["ginger G1 3.0 nozzle"]
+}
diff --git a/resources/profiles/Ginger Additive/process/2.50mm Standard.json b/resources/profiles/Ginger Additive/process/2.50mm Standard.json
new file mode 100644
index 000000000..136cf7dbc
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/2.50mm Standard.json
@@ -0,0 +1,78 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "0",
+ "bottom_solid_infill_flow_ratio": "0.8",
+ "brim_type": "outer_only",
+ "brim_width": "20",
+ "default_acceleration": "2500",
+ "default_jerk": "5",
+ "elefant_foot_compensation": "0.2",
+ "enable_overhang_speed": "0",
+ "ensure_vertical_shell_thickness": "none",
+ "exclude_object": "1",
+ "extra_perimeters_on_overhangs": "1",
+ "from": "User",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "120",
+ "infill_anchor_max": "30",
+ "infill_jerk": "5",
+ "infill_wall_overlap": "30%",
+ "inherits": "fdm_process_common",
+ "initial_layer_acceleration": "2500",
+ "initial_layer_jerk": "5",
+ "initial_layer_line_width": "5.5",
+ "initial_layer_print_height": "1",
+ "initial_layer_speed": "40",
+ "inner_wall_acceleration": "2500",
+ "inner_wall_jerk": "5",
+ "inner_wall_line_width": "5.5",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_line_width": "5.5",
+ "internal_solid_infill_speed": "120",
+ "is_custom_defined": "0",
+ "layer_height": "2.5",
+ "line_width": "5.5",
+ "name": "2.50mm Standard",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_jerk": "5",
+ "outer_wall_line_width": "5.5",
+ "outer_wall_speed": "120",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "30",
+ "overhang_3_4_speed": "40",
+ "overhang_4_4_speed": "40",
+ "overhang_reverse": "1",
+ "overhang_reverse_internal_only": "1",
+ "overhang_reverse_threshold": "0%",
+ "print_settings_id": "2.50mm Standard",
+ "role_based_wipe_speed": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "10",
+ "sparse_infill_density": "10%",
+ "sparse_infill_line_width": "5.5",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "120",
+ "spiral_mode_max_xy_smoothing": "1e+07",
+ "spiral_mode_smooth": "1",
+ "support_line_width": "5.5",
+ "support_speed": "120",
+ "thick_internal_bridges": "0",
+ "top_shell_layers": "0",
+ "top_solid_infill_flow_ratio": "0.9",
+ "top_surface_acceleration": "2500",
+ "top_surface_jerk": "5",
+ "top_surface_line_width": "5.5",
+ "top_surface_speed": "120",
+ "travel_acceleration": "2500",
+ "travel_jerk": "7",
+ "travel_speed": "250",
+ "version": "0.0.0.0",
+ "wall_generator": "classic",
+ "wall_loops": "1",
+ "wipe_on_loops": "1",
+ "wipe_speed": "40",
+ "xy_contour_compensation": "-0.15",
+ "xy_hole_compensation": "0.2",
+ "instantiation": "true",
+ "compatible_printers": ["ginger G1 5.0 nozzle"]
+}
diff --git a/resources/profiles/Ginger Additive/process/4.00mm Standard.json b/resources/profiles/Ginger Additive/process/4.00mm Standard.json
new file mode 100644
index 000000000..0b4c95e64
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/4.00mm Standard.json
@@ -0,0 +1,76 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "0",
+ "brim_type": "outer_only",
+ "brim_width": "40",
+ "default_acceleration": "2500",
+ "default_jerk": "5",
+ "elefant_foot_compensation": "0.2",
+ "enable_overhang_speed": "0",
+ "ensure_vertical_shell_thickness": "none",
+ "exclude_object": "1",
+ "extra_perimeters_on_overhangs": "1",
+ "from": "User",
+ "gap_fill_target": "nowhere",
+ "gap_infill_speed": "120",
+ "infill_anchor_max": "30",
+ "infill_jerk": "5",
+ "infill_wall_overlap": "30%",
+ "inherits": "fdm_process_common",
+ "initial_layer_acceleration": "2500",
+ "initial_layer_jerk": "5",
+ "initial_layer_line_width": "9.5",
+ "initial_layer_print_height": "1",
+ "initial_layer_speed": "40",
+ "inner_wall_acceleration": "2500",
+ "inner_wall_jerk": "5",
+ "inner_wall_line_width": "9.5",
+ "inner_wall_speed": "120",
+ "internal_solid_infill_line_width": "9.5",
+ "internal_solid_infill_speed": "120",
+ "is_custom_defined": "0",
+ "layer_height": "4",
+ "line_width": "9.5",
+ "name": "4.00mm Standard",
+ "outer_wall_acceleration": "2500",
+ "outer_wall_jerk": "5",
+ "outer_wall_line_width": "9.5",
+ "outer_wall_speed": "120",
+ "overhang_1_4_speed": "20",
+ "overhang_2_4_speed": "30",
+ "overhang_3_4_speed": "40",
+ "overhang_4_4_speed": "40",
+ "overhang_reverse": "1",
+ "overhang_reverse_internal_only": "1",
+ "overhang_reverse_threshold": "0%",
+ "print_settings_id": "4.00mm Standard",
+ "role_based_wipe_speed": "0",
+ "seam_position": "aligned",
+ "skirt_distance": "10",
+ "sparse_infill_density": "10%",
+ "sparse_infill_line_width": "9.5",
+ "sparse_infill_pattern": "grid",
+ "sparse_infill_speed": "120",
+ "spiral_mode_max_xy_smoothing": "1e+07",
+ "spiral_mode_smooth": "1",
+ "support_line_width": "9.5",
+ "support_speed": "120",
+ "thick_internal_bridges": "0",
+ "top_shell_layers": "0",
+ "top_surface_acceleration": "2500",
+ "top_surface_jerk": "5",
+ "top_surface_line_width": "9.5",
+ "top_surface_speed": "120",
+ "travel_acceleration": "2500",
+ "travel_jerk": "7",
+ "travel_speed": "250",
+ "version": "0.0.0.0",
+ "wall_generator": "classic",
+ "wall_loops": "1",
+ "wipe_on_loops": "1",
+ "wipe_speed": "40",
+ "xy_contour_compensation": "-0.15",
+ "xy_hole_compensation": "0.2",
+ "instantiation": "true",
+ "compatible_printers": ["ginger G1 8.0 nozzle"]
+}
diff --git a/resources/profiles/Ginger Additive/process/fdm_process_common.json b/resources/profiles/Ginger Additive/process/fdm_process_common.json
new file mode 100644
index 000000000..11b16c139
--- /dev/null
+++ b/resources/profiles/Ginger Additive/process/fdm_process_common.json
@@ -0,0 +1,282 @@
+{
+ "type": "process",
+ "accel_to_decel_enable": "1",
+ "accel_to_decel_factor": "50%",
+ "alternate_extra_wall": "0",
+ "bottom_shell_layers": "3",
+ "bottom_shell_thickness": "0",
+ "bottom_solid_infill_flow_ratio": "1",
+ "bottom_surface_pattern": "monotonic",
+ "bridge_acceleration": "50%",
+ "bridge_angle": "0",
+ "bridge_density": "100%",
+ "bridge_flow": "1",
+ "bridge_no_support": "0",
+ "bridge_speed": "25",
+ "brim_ears_detection_length": "1",
+ "brim_ears_max_angle": "125",
+ "brim_object_gap": "0",
+ "brim_type": "auto_brim",
+ "brim_width": "0",
+ "compatible_printers": [],
+ "compatible_printers_condition": "",
+ "counterbore_hole_bridging": "none",
+ "default_acceleration": "500",
+ "default_jerk": "0",
+ "detect_narrow_internal_solid_infill": "1",
+ "detect_overhang_wall": "1",
+ "detect_thin_wall": "0",
+ "dont_filter_internal_bridges": "disabled",
+ "draft_shield": "disabled",
+ "elefant_foot_compensation": "0",
+ "elefant_foot_compensation_layers": "1",
+ "enable_arc_fitting": "0",
+ "enable_overhang_speed": "1",
+ "enable_prime_tower": "0",
+ "enable_support": "0",
+ "enforce_support_layers": "0",
+ "ensure_vertical_shell_thickness": "ensure_all",
+ "exclude_object": "0",
+ "extra_perimeters_on_overhangs": "0",
+ "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
+ "filter_out_gap_fill": "0",
+ "flush_into_infill": "0",
+ "flush_into_objects": "0",
+ "flush_into_support": "1",
+ "from": "User",
+ "fuzzy_skin": "none",
+ "fuzzy_skin_first_layer": "0",
+ "fuzzy_skin_point_distance": "0.8",
+ "fuzzy_skin_thickness": "0.3",
+ "gap_fill_target": "everywhere",
+ "gap_infill_speed": "30",
+ "gcode_add_line_number": "0",
+ "gcode_comments": "0",
+ "gcode_label_objects": "1",
+ "hole_to_polyhole": "0",
+ "hole_to_polyhole_threshold": "0.01",
+ "hole_to_polyhole_twisted": "1",
+ "independent_support_layer_height": "1",
+ "infill_anchor": "400%",
+ "infill_anchor_max": "20",
+ "infill_combination": "0",
+ "infill_direction": "45",
+ "infill_jerk": "9",
+ "infill_wall_overlap": "15%",
+ "initial_layer_acceleration": "300",
+ "initial_layer_infill_speed": "60",
+ "initial_layer_jerk": "9",
+ "initial_layer_line_width": "3.2",
+ "initial_layer_min_bead_width": "85%",
+ "initial_layer_print_height": "1.5",
+ "initial_layer_speed": "30",
+ "initial_layer_travel_speed": "100%",
+ "inner_wall_acceleration": "10000",
+ "inner_wall_jerk": "9",
+ "inner_wall_line_width": "3.2",
+ "inner_wall_speed": "60",
+ "interface_shells": "0",
+ "internal_bridge_flow": "1",
+ "internal_bridge_speed": "150%",
+ "internal_solid_infill_acceleration": "100%",
+ "internal_solid_infill_line_width": "3",
+ "internal_solid_infill_pattern": "monotonic",
+ "internal_solid_infill_speed": "100",
+ "ironing_angle": "-1",
+ "ironing_flow": "10%",
+ "ironing_pattern": "zig-zag",
+ "ironing_spacing": "0.1",
+ "ironing_speed": "20",
+ "ironing_type": "no ironing",
+ "is_custom_defined": "0",
+ "is_infill_first": "0",
+ "layer_height": "1.5",
+ "line_width": "3.2",
+ "make_overhang_printable": "0",
+ "make_overhang_printable_angle": "55",
+ "make_overhang_printable_hole_size": "0",
+ "max_bridge_length": "10",
+ "max_travel_detour_distance": "0",
+ "max_volumetric_extrusion_rate_slope": "0",
+ "max_volumetric_extrusion_rate_slope_segment_length": "3",
+ "min_bead_width": "85%",
+ "min_feature_size": "25%",
+ "min_length_factor": "0.5",
+ "min_width_top_surface": "300%",
+ "minimum_sparse_infill_area": "15",
+ "mmu_segmented_region_interlocking_depth": "0",
+ "mmu_segmented_region_max_width": "0",
+ "name": "fdm_process_common",
+ "notes": "",
+ "only_one_wall_first_layer": "0",
+ "only_one_wall_top": "0",
+ "ooze_prevention": "0",
+ "outer_wall_acceleration": "500",
+ "outer_wall_jerk": "9",
+ "outer_wall_line_width": "3.2",
+ "outer_wall_speed": "60",
+ "overhang_1_4_speed": "0",
+ "overhang_2_4_speed": "0",
+ "overhang_3_4_speed": "0",
+ "overhang_4_4_speed": "0",
+ "overhang_reverse": "0",
+ "overhang_reverse_internal_only": "0",
+ "overhang_reverse_threshold": "50%",
+ "overhang_speed_classic": "0",
+ "post_process": [],
+ "precise_outer_wall": "0",
+ "prime_tower_brim_width": "3",
+ "prime_tower_width": "60",
+ "prime_volume": "45",
+ "print_flow_ratio": "1",
+ "print_order": "default",
+ "print_sequence": "by layer",
+ "print_settings_id": "fdm_process_common",
+ "raft_contact_distance": "0.1",
+ "raft_expansion": "1.5",
+ "raft_first_layer_density": "90%",
+ "raft_first_layer_expansion": "2",
+ "raft_layers": "0",
+ "reduce_crossing_wall": "0",
+ "reduce_infill_retraction": "0",
+ "resolution": "0.01",
+ "role_based_wipe_speed": "1",
+ "scarf_angle_threshold": "155",
+ "scarf_joint_flow_ratio": "1",
+ "scarf_joint_speed": "100%",
+ "scarf_overhang_threshold": "40%",
+ "seam_gap": "10%",
+ "seam_position": "nearest",
+ "seam_slope_conditional": "0",
+ "seam_slope_entire_loop": "0",
+ "seam_slope_inner_walls": "0",
+ "seam_slope_min_length": "20",
+ "seam_slope_start_height": "0",
+ "seam_slope_steps": "10",
+ "seam_slope_type": "external",
+ "single_extruder_multi_material_priming": "1",
+ "skirt_distance": "2",
+ "skirt_height": "1",
+ "skirt_loops": "1",
+ "skirt_speed": "50",
+ "slice_closing_radius": "0.049",
+ "slicing_mode": "regular",
+ "slow_down_layers": "0",
+ "slowdown_for_curled_perimeters": "0",
+ "small_area_infill_flow_compensation": "0",
+ "small_area_infill_flow_compensation_model": [
+ "0,0",
+ "\n0.2,0.4444",
+ "\n0.4,0.6145",
+ "\n0.6,0.7059",
+ "\n0.8,0.7619",
+ "\n1.5,0.8571",
+ "\n2,0.8889",
+ "\n3,0.9231",
+ "\n5,0.9520",
+ "\n10,1"
+ ],
+ "small_perimeter_speed": "50%",
+ "small_perimeter_threshold": "0",
+ "solid_infill_filament": "1",
+ "sparse_infill_acceleration": "100%",
+ "sparse_infill_density": "20%",
+ "sparse_infill_filament": "1",
+ "sparse_infill_line_width": "3",
+ "sparse_infill_pattern": "cubic",
+ "sparse_infill_speed": "100",
+ "spiral_mode": "0",
+ "spiral_mode_max_xy_smoothing": "200%",
+ "spiral_mode_smooth": "0",
+ "staggered_inner_seams": "0",
+ "standby_temperature_delta": "-5",
+ "support_angle": "0",
+ "support_base_pattern": "default",
+ "support_base_pattern_spacing": "2.5",
+ "support_bottom_interface_spacing": "0.5",
+ "support_bottom_z_distance": "0.2",
+ "support_critical_regions_only": "0",
+ "support_expansion": "0",
+ "support_filament": "0",
+ "support_interface_bottom_layers": "0",
+ "support_interface_filament": "0",
+ "support_interface_loop_pattern": "0",
+ "support_interface_not_for_body": "1",
+ "support_interface_pattern": "auto",
+ "support_interface_spacing": "0.5",
+ "support_interface_speed": "80",
+ "support_interface_top_layers": "3",
+ "support_line_width": "3.2",
+ "support_object_xy_distance": "0.35",
+ "support_on_build_plate_only": "0",
+ "support_remove_small_overhang": "1",
+ "support_speed": "80",
+ "support_style": "default",
+ "support_threshold_angle": "30",
+ "support_top_z_distance": "0.2",
+ "support_type": "normal(auto)",
+ "thick_bridges": "0",
+ "thick_internal_bridges": "1",
+ "timelapse_type": "0",
+ "top_shell_layers": "4",
+ "top_shell_thickness": "0.6",
+ "top_solid_infill_flow_ratio": "1",
+ "top_surface_acceleration": "500",
+ "top_surface_jerk": "9",
+ "top_surface_line_width": "3.2",
+ "top_surface_pattern": "monotonic",
+ "top_surface_speed": "100",
+ "travel_acceleration": "10000",
+ "travel_jerk": "12",
+ "travel_speed": "120",
+ "travel_speed_z": "0",
+ "tree_support_adaptive_layer_height": "1",
+ "tree_support_angle_slow": "25",
+ "tree_support_auto_brim": "1",
+ "tree_support_branch_angle": "40",
+ "tree_support_branch_angle_organic": "40",
+ "tree_support_branch_diameter": "5",
+ "tree_support_branch_diameter_angle": "5",
+ "tree_support_branch_diameter_double_wall": "3",
+ "tree_support_branch_diameter_organic": "2",
+ "tree_support_branch_distance": "5",
+ "tree_support_branch_distance_organic": "1",
+ "tree_support_brim_width": "3",
+ "tree_support_tip_diameter": "0.8",
+ "tree_support_top_rate": "30%",
+ "tree_support_wall_count": "0",
+ "version": "0.0.0.0",
+ "wall_direction": "auto",
+ "wall_distribution_count": "1",
+ "wall_filament": "1",
+ "wall_generator": "arachne",
+ "wall_loops": "2",
+ "wall_sequence": "inner wall/outer wall",
+ "wall_transition_angle": "10",
+ "wall_transition_filter_deviation": "25%",
+ "wall_transition_length": "100%",
+ "wipe_before_external_loop": "0",
+ "wipe_on_loops": "0",
+ "wipe_speed": "80%",
+ "wipe_tower_bridging": "10",
+ "wipe_tower_cone_angle": "0",
+ "wipe_tower_extra_spacing": "100%",
+ "wipe_tower_extruder": "0",
+ "wipe_tower_no_sparse_layers": "0",
+ "wipe_tower_rotation_angle": "0",
+ "wiping_volumes_extruders": [
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70",
+ "70"
+ ],
+ "xy_contour_compensation": "0",
+ "xy_hole_compensation": "0",
+ "instantiation": "false"
+}
diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
index ff53665f2..7b033f11e 100644
--- a/src/libslic3r/Preset.cpp
+++ b/src/libslic3r/Preset.cpp
@@ -817,7 +817,7 @@ static std::vector s_Preset_print_options {
};
static std::vector s_Preset_filament_options {
- /*"filament_colour", */ "default_filament_colour","required_nozzle_HRC","filament_diameter", "filament_type", "filament_soluble", "filament_is_support",
+ /*"filament_colour", */ "default_filament_colour","required_nozzle_HRC","filament_diameter", "pellet_flow_coefficient", "filament_type", "filament_soluble", "filament_is_support",
"filament_max_volumetric_speed",
"filament_flow_ratio", "filament_density", "filament_cost", "filament_minimal_purge_on_wipe_tower",
"nozzle_temperature", "nozzle_temperature_initial_layer",
@@ -877,7 +877,7 @@ static std::vector s_Preset_printer_options {
"cooling_tube_retraction",
"cooling_tube_length", "high_current_on_filament_swap", "parking_pos_retraction", "extra_loading_move", "purge_in_prime_tower", "enable_filament_ramming",
"z_offset",
- "disable_m73", "preferred_orientation", "emit_machine_limits_to_gcode", "support_multi_bed_types","bed_mesh_min","bed_mesh_max","bed_mesh_probe_distance", "adaptive_bed_mesh_margin", "enable_long_retraction_when_cut","long_retractions_when_cut","retraction_distances_when_cut"
+ "disable_m73", "preferred_orientation", "emit_machine_limits_to_gcode", "pellet_modded_printer", "support_multi_bed_types","bed_mesh_min","bed_mesh_max","bed_mesh_probe_distance", "adaptive_bed_mesh_margin", "enable_long_retraction_when_cut","long_retractions_when_cut","retraction_distances_when_cut"
};
static std::vector s_Preset_sla_print_options {
diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp
index 659fc0bf9..145ae5b6f 100644
--- a/src/libslic3r/Preset.hpp
+++ b/src/libslic3r/Preset.hpp
@@ -320,6 +320,15 @@ public:
bool has_cali_lines(PresetBundle* preset_bundle);
+ static double convert_pellet_flow_to_filament_diameter(double pellet_flow_coefficient)
+ {
+ return sqrt(4 / (PI * pellet_flow_coefficient));
+ }
+
+ static double convert_filament_diameter_to_pellet_flow(double filament_diameter)
+ {
+ return 4 / (pow(filament_diameter, 2) * PI);
+ }
static const std::vector& print_options();
static const std::vector& filament_options();
diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp
index c4f58e327..b53ec6e35 100644
--- a/src/libslic3r/PresetBundle.cpp
+++ b/src/libslic3r/PresetBundle.cpp
@@ -1547,6 +1547,7 @@ void PresetBundle::load_installed_filaments(AppConfig &config)
Preset* filament = filaments.find_preset(filament_iter.first, false, true);
if (filament && is_compatible_with_printer(PresetWithVendorProfile(*filament, filament->vendor), PresetWithVendorProfile(printer, printer.vendor)))
{
+
//already has compatible filament
add_default_materials = false;
break;
diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp
index 3caabccf3..7379abd4e 100644
--- a/src/libslic3r/PrintConfig.cpp
+++ b/src/libslic3r/PrintConfig.cpp
@@ -1786,6 +1786,38 @@ void PrintConfigDef::init_fff_params()
def->min = 0;
def->set_default_value(new ConfigOptionFloats { 1.75 });
+ /*
+ Large format printers with print volumes in the order of 1m^3 generally use pellets for printing.
+ The overall tech is very similar to FDM printing.
+ It is FDM printing, but instead of filaments, it uses pellets.
+
+ The difference here is that where filaments have a filament_diameter that is used to calculate
+ the volume of filament ingested, pellets have a particular flow_coefficient that is empirically
+ devised for that particular pellet.
+
+ pellet_flow_coefficient is basically a measure of the packing density of a particular pellet.
+ Shape, material and density of an individual pellet will determine the packing density and
+ the only thing that matters for 3d printing is how much of that pellet material is extruded by
+ one turn of whatever feeding mehcanism/gear your printer uses. You can emperically derive that
+ for your own pellets for a particular printer model.
+
+ We are translating the pellet_flow_coefficient into filament_diameter so that everything works just like it
+ does already with very minor adjustments.
+
+ filament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )
+
+ sqrt just makes the relationship between flow_coefficient and volume linear.
+
+ higher packing density -> more material extruded by single turn -> higher pellet_flow_coefficient -> treated as if a filament of larger diameter is being used
+ All other calculations remain the same for slicing.
+ */
+
+ def = this->add("pellet_flow_coefficient", coFloats);
+ def->label = L("Pellet flow coefficient");
+ def->tooltip = L("Pellet flow coefficient is emperically derived and allows for volume calculation for pellet printers.\n\nInternally it is converted to filament_diameter. All other volume calculations remain the same.\n\nfilament_diameter = sqrt( (4 * pellet_flow_coefficient) / PI )");
+ def->min = 0;
+ def->set_default_value(new ConfigOptionFloats{ 0.4157 });
+
def = this->add("filament_shrink", coPercents);
def->label = L("Shrinkage");
// xgettext:no-c-format, no-boost-format
@@ -2639,6 +2671,12 @@ void PrintConfigDef::init_fff_params()
def->readonly = false;
def->set_default_value(new ConfigOptionEnum(gcfMarlinLegacy));
+ def = this->add("pellet_modded_printer", coBool);
+ def->label = L("Pellet Modded Printer");
+ def->tooltip = L("Enable this option if your printer uses pellets instead of filaments");
+ def->mode = comSimple;
+ def->set_default_value(new ConfigOptionBool(false));
+
def = this->add("support_multi_bed_types", coBool);
def->label = L("Support multi bed types");
def->tooltip = L("Enable this option if you want to use multiple bed types");
diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp
index 44b28636b..9c18c06b3 100644
--- a/src/slic3r/GUI/ParamsPanel.cpp
+++ b/src/slic3r/GUI/ParamsPanel.cpp
@@ -596,7 +596,7 @@ void ParamsPanel::set_active_tab(wxPanel* tab)
}
m_left_sizer->Layout();
if (auto dialog = dynamic_cast(GetParent())) {
- wxString title = cur_tab->type() == Preset::TYPE_FILAMENT ? _L("Filament settings") : _L("Printer settings");
+ wxString title = cur_tab->type() == Preset::TYPE_FILAMENT ? _L("Material settings") : _L("Printer settings");
dialog->SetTitle(title);
}
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index a89bc36f9..b3bcfb2f7 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -1216,6 +1216,17 @@ void Sidebar::update_all_preset_comboboxes()
}
+ if (cfg.opt_bool("pellet_modded_printer")) {
+ p->m_staticText_filament_settings->SetLabel(_L("Pellets"));
+ p->m_filament_icon->SetBitmap_("pellets");
+ } else {
+ p->m_staticText_filament_settings->SetLabel(_L("Filament"));
+ p->m_filament_icon->SetBitmap_("filament");
+ }
+
+ //p->m_staticText_filament_settings->Update();
+
+
if (is_bbl_vendor || cfg.opt_bool("support_multi_bed_types")) {
m_bed_type_list->Enable();
auto str_bed_type = wxGetApp().app_config->get_printer_setting(wxGetApp().preset_bundle->printers.get_selected_preset_name(),
diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
index 1415ad6e6..bdb993837 100644
--- a/src/slic3r/GUI/Tab.cpp
+++ b/src/slic3r/GUI/Tab.cpp
@@ -1418,6 +1418,19 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
}
}
+
+ if (opt_key == "pellet_flow_coefficient")
+ {
+ double double_value = Preset::convert_pellet_flow_to_filament_diameter(boost::any_cast(value));
+ m_config->set_key_value("filament_diameter", new ConfigOptionFloats{double_value});
+ }
+
+ if (opt_key == "filament_diameter") {
+ double double_value = Preset::convert_filament_diameter_to_pellet_flow(boost::any_cast(value));
+ m_config->set_key_value("pellet_flow_coefficient", new ConfigOptionFloats{double_value});
+ }
+
+
if (opt_key == "single_extruder_multi_material" || opt_key == "extruders_count" )
update_wiping_button_visibility();
@@ -3204,6 +3217,7 @@ void TabFilament::build()
optgroup->append_single_option_line("required_nozzle_HRC");
optgroup->append_single_option_line("default_filament_colour");
optgroup->append_single_option_line("filament_diameter");
+ optgroup->append_single_option_line("pellet_flow_coefficient");
optgroup->append_single_option_line("filament_flow_ratio");
optgroup->append_single_option_line("enable_pressure_advance");
@@ -3519,6 +3533,10 @@ void TabFilament::toggle_options()
toggle_line("eng_plate_temp_initial_layer", support_multi_bed_types);
toggle_line("textured_plate_temp_initial_layer", support_multi_bed_types);
+ bool is_pellet_printer = cfg.opt_bool("pellet_modded_printer");
+
+ toggle_line("pellet_flow_coefficient", is_pellet_printer);
+ toggle_line("filament_diameter", !is_pellet_printer);
}
if (m_active_page->title() == L("Setting Overrides"))
update_filament_overrides_page();
@@ -3630,6 +3648,7 @@ void TabPrinter::build_fff()
optgroup->append_single_option_line(option);
// optgroup->append_single_option_line("printable_area");
optgroup->append_single_option_line("printable_height");
+ optgroup->append_single_option_line("pellet_modded_printer");
optgroup->append_single_option_line("support_multi_bed_types","bed-types");
optgroup->append_single_option_line("nozzle_volume");
optgroup->append_single_option_line("best_object_pos");