Browse Source

Merge pull request #5961 from Ultimaker/trouch-fix/creawsomemod

Import CreawsomeMod profiles and implement version upgrade
Lipu Fei 5 years ago
parent
commit
e8c08b77e5

+ 231 - 0
plugins/VersionUpgrade/VersionUpgrade41to42/VersionUpgrade41to42.py

@@ -3,6 +3,7 @@
 
 import configparser
 import io
+import os.path #To get the file ID.
 from typing import Dict, List, Tuple
 
 from UM.VersionUpgrade import VersionUpgrade
@@ -11,7 +12,205 @@ _renamed_settings = {
     "support_minimal_diameter": "support_tower_maximum_supported_diameter"
 } #type: Dict[str, str]
 _removed_settings = ["prime_tower_circular"]  # type: List[str]
+_renamed_profiles = {
+    #Include CreawsomeMod profiles here as well for the people who installed that.
+    #Definitions.
+    "creawsome_base": "creality_base",
+    "creawsome_cr10": "creality_cr10",
+    "creawsome_cr10mini": "creality_cr10mini",
+    "creawsome_cr10s": "creality_cr10s",
+    "creawsome_cr10s4": "creality_cr10s4",
+    "creawsome_cr10s5": "creality_cr10s5",
+    "creawsome_cr10spro": "creality_cr10spro",
+    "creawsome_cr20": "creality_cr20",
+    "creawsome_cr20pro": "creality_cr20pro",
+    "creawsome_ender2": "creality_ender2",
+    "creawsome_ender3": "creality_ender3",
+    "creawsome_ender4": "creality_ender4",
+    "creawsome_ender5": "creality_ender5",
 
+    #Extruder definitions.
+    "creawsome_base_extruder_0": "creality_base_extruder_0",
+
+    #Variants.
+    "creawsome_base_0.2": "creality_base_0.2",
+    "creawsome_base_0.3": "creality_base_0.3",
+    "creawsome_base_0.4": "creality_base_0.4",
+    "creawsome_base_0.5": "creality_base_0.5",
+    "creawsome_base_0.6": "creality_base_0.6",
+    "creawsome_base_0.8": "creality_base_0.8",
+    "creawsome_base_1.0": "creality_base_1.0",
+    "creawsome_cr10_0.2": "creality_cr10_0.2",
+    "creawsome_cr10_0.3": "creality_cr10_0.3",
+    "creawsome_cr10_0.4": "creality_cr10_0.4",
+    "creawsome_cr10_0.5": "creality_cr10_0.5",
+    "creawsome_cr10_0.6": "creality_cr10_0.6",
+    "creawsome_cr10_0.8": "creality_cr10_0.8",
+    "creawsome_cr10_1.0": "creality_cr10_1.0",
+    "creawsome_cr10mini_0.2": "creality_cr10mini_0.2",
+    "creawsome_cr10mini_0.3": "creality_cr10mini_0.3",
+    "creawsome_cr10mini_0.4": "creality_cr10mini_0.4",
+    "creawsome_cr10mini_0.5": "creality_cr10mini_0.5",
+    "creawsome_cr10mini_0.6": "creality_cr10mini_0.6",
+    "creawsome_cr10mini_0.8": "creality_cr10mini_0.8",
+    "creawsome_cr10mini_1.0": "creality_cr10mini_1.0",
+    "creawsome_cr10s4_0.2": "creality_cr10s4_0.2",
+    "creawsome_cr10s4_0.3": "creality_cr10s4_0.3",
+    "creawsome_cr10s4_0.4": "creality_cr10s4_0.4",
+    "creawsome_cr10s4_0.5": "creality_cr10s4_0.5",
+    "creawsome_cr10s4_0.6": "creality_cr10s4_0.6",
+    "creawsome_cr10s4_0.8": "creality_cr10s4_0.8",
+    "creawsome_cr10s4_1.0": "creality_cr10s4_1.0",
+    "creawsome_cr10s5_0.2": "creality_cr10s5_0.2",
+    "creawsome_cr10s5_0.3": "creality_cr10s5_0.3",
+    "creawsome_cr10s5_0.4": "creality_cr10s5_0.4",
+    "creawsome_cr10s5_0.5": "creality_cr10s5_0.5",
+    "creawsome_cr10s5_0.6": "creality_cr10s5_0.6",
+    "creawsome_cr10s5_0.8": "creality_cr10s5_0.8",
+    "creawsome_cr10s5_1.0": "creality_cr10s5_1.0",
+    "creawsome_cr10s_0.2": "creality_cr10s_0.2",
+    "creawsome_cr10s_0.3": "creality_cr10s_0.3",
+    "creawsome_cr10s_0.4": "creality_cr10s_0.4",
+    "creawsome_cr10s_0.5": "creality_cr10s_0.5",
+    "creawsome_cr10s_0.6": "creality_cr10s_0.6",
+    "creawsome_cr10s_0.8": "creality_cr10s_0.8",
+    "creawsome_cr10s_1.0": "creality_cr10s_1.0",
+    "creawsome_cr10spro_0.2": "creality_cr10spro_0.2",
+    "creawsome_cr10spro_0.3": "creality_cr10spro_0.3",
+    "creawsome_cr10spro_0.4": "creality_cr10spro_0.4",
+    "creawsome_cr10spro_0.5": "creality_cr10spro_0.5",
+    "creawsome_cr10spro_0.6": "creality_cr10spro_0.6",
+    "creawsome_cr10spro_0.8": "creality_cr10spro_0.8",
+    "creawsome_cr10spro_1.0": "creality_cr10spro_1.0",
+    "creawsome_cr20_0.2": "creality_cr20_0.2",
+    "creawsome_cr20_0.3": "creality_cr20_0.3",
+    "creawsome_cr20_0.4": "creality_cr20_0.4",
+    "creawsome_cr20_0.5": "creality_cr20_0.5",
+    "creawsome_cr20_0.6": "creality_cr20_0.6",
+    "creawsome_cr20_0.8": "creality_cr20_0.8",
+    "creawsome_cr20_1.0": "creality_cr20_1.0",
+    "creawsome_cr20pro_0.2": "creality_cr20pro_0.2",
+    "creawsome_cr20pro_0.3": "creality_cr20pro_0.3",
+    "creawsome_cr20pro_0.4": "creality_cr20pro_0.4",
+    "creawsome_cr20pro_0.5": "creality_cr20pro_0.5",
+    "creawsome_cr20pro_0.6": "creality_cr20pro_0.6",
+    "creawsome_cr20pro_0.8": "creality_cr20pro_0.8",
+    "creawsome_cr20pro_1.0": "creality_cr20pro_1.0",
+    "creawsome_ender2_0.2": "creality_ender2_0.2",
+    "creawsome_ender2_0.3": "creality_ender2_0.3",
+    "creawsome_ender2_0.4": "creality_ender2_0.4",
+    "creawsome_ender2_0.5": "creality_ender2_0.5",
+    "creawsome_ender2_0.6": "creality_ender2_0.6",
+    "creawsome_ender2_0.8": "creality_ender2_0.8",
+    "creawsome_ender2_1.0": "creality_ender2_1.0",
+    "creawsome_ender3_0.2": "creality_ender3_0.2",
+    "creawsome_ender3_0.3": "creality_ender3_0.3",
+    "creawsome_ender3_0.4": "creality_ender3_0.4",
+    "creawsome_ender3_0.5": "creality_ender3_0.5",
+    "creawsome_ender3_0.6": "creality_ender3_0.6",
+    "creawsome_ender3_0.8": "creality_ender3_0.8",
+    "creawsome_ender3_1.0": "creality_ender3_1.0",
+    "creawsome_ender4_0.2": "creality_ender4_0.2",
+    "creawsome_ender4_0.3": "creality_ender4_0.3",
+    "creawsome_ender4_0.4": "creality_ender4_0.4",
+    "creawsome_ender4_0.5": "creality_ender4_0.5",
+    "creawsome_ender4_0.6": "creality_ender4_0.6",
+    "creawsome_ender4_0.8": "creality_ender4_0.8",
+    "creawsome_ender4_1.0": "creality_ender4_1.0",
+    "creawsome_ender5_0.2": "creality_ender5_0.2",
+    "creawsome_ender5_0.3": "creality_ender5_0.3",
+    "creawsome_ender5_0.4": "creality_ender5_0.4",
+    "creawsome_ender5_0.5": "creality_ender5_0.5",
+    "creawsome_ender5_0.6": "creality_ender5_0.6",
+    "creawsome_ender5_0.8": "creality_ender5_0.8",
+    "creawsome_ender5_1.0": "creality_ender5_1.0",
+
+    #Upgrade for people who had the original Creality profiles from 4.1 and earlier.
+    "creality_cr10_extruder_0": "creality_base_extruder_0",
+    "creality_cr10s4_extruder_0": "creality_base_extruder_0",
+    "creality_cr10s5_extruder_0": "creality_base_extruder_0",
+    "creality_ender3_extruder_0": "creality_base_extruder_0"
+}
+
+#For legacy Creality printers, select the correct quality profile depending on the material.
+_creality_quality_per_material = {
+    #Since legacy Creality printers didn't have different variants, we always pick the 0.4mm variant.
+    "generic_abs_175": {
+        "high": "base_0.4_ABS_super",
+        "normal": "base_0.4_ABS_super",
+        "fast": "base_0.4_ABS_super",
+        "draft": "base_0.4_ABS_standard",
+        "extra_fast": "base_0.4_ABS_low",
+        "coarse": "base_0.4_ABS_low",
+        "extra_coarse": "base_0.4_ABS_low"
+    },
+    "generic_petg_175": {
+        "high": "base_0.4_PETG_super",
+        "normal": "base_0.4_PETG_super",
+        "fast": "base_0.4_PETG_super",
+        "draft": "base_0.4_PETG_standard",
+        "extra_fast": "base_0.4_PETG_low",
+        "coarse": "base_0.4_PETG_low",
+        "extra_coarse": "base_0.4_PETG_low"
+    },
+    "generic_pla_175": {
+        "high": "base_0.4_PLA_super",
+        "normal": "base_0.4_PLA_super",
+        "fast": "base_0.4_PLA_super",
+        "draft": "base_0.4_PLA_standard",
+        "extra_fast": "base_0.4_PLA_low",
+        "coarse": "base_0.4_PLA_low",
+        "extra_coarse": "base_0.4_PLA_low"
+    },
+    "generic_tpu_175": {
+        "high": "base_0.4_TPU_super",
+        "normal": "base_0.4_TPU_super",
+        "fast": "base_0.4_TPU_super",
+        "draft": "base_0.4_TPU_standard",
+        "extra_fast": "base_0.4_TPU_standard",
+        "coarse": "base_0.4_TPU_standard",
+        "extra_coarse": "base_0.4_TPU_standard"
+    },
+    "empty_material": { #For the global stack.
+        "high": "base_global_super",
+        "normal": "base_global_super",
+        "fast": "base_global_super",
+        "draft": "base_global_standard",
+        "extra_fast": "base_global_low",
+        "coarse": "base_global_low",
+        "extra_coarse": "base_global_low"
+    }
+}
+
+#Default variant to select for legacy Creality printers, now that we have variants.
+_default_variants = {
+    "creality_cr10_extruder_0": "creality_cr10_0.4",
+    "creality_cr10s4_extruder_0": "creality_cr10s4_0.4",
+    "creality_cr10s5_extruder_0": "creality_cr10s5_0.4",
+    "creality_ender3_extruder_0": "creality_ender3_0.4"
+}
+
+#Whether the quality changes profile belongs to one of the upgraded printers can only be recognised by how they start.
+#If they are, they must use the creality base definition so that they still belong to those printers.
+_quality_changes_to_creality_base = {
+    "creality_cr10_extruder_0",
+    "creality_cr10s4_extruder_0",
+    "creality_cr10s5_extruder_0",
+    "creality_ender3_extruder_0"
+    "creality_cr10",
+    "creality_cr10s4",
+    "creality_cr10s5",
+    "creality_ender3",
+}
+_creality_limited_quality_type = {
+    "high": "super",
+    "normal": "super",
+    "fast": "super",
+    "draft": "draft",
+    "extra_fast": "draft",
+    "coarse": "draft",
+    "extra_coarse": "draft"
+}
 
 ##  Upgrades configurations from the state they were in at version 4.1 to the
 #   state they should be in at version 4.2.
@@ -56,6 +255,14 @@ class VersionUpgrade41to42(VersionUpgrade):
                 if key in parser["values"]:
                     del parser["values"][key]
 
+        #For quality-changes profiles made for Creality printers, change the definition to the creality_base and make sure that the quality is something we have a profile for.
+        if parser["metadata"].get("type", "") == "quality_changes":
+            for possible_printer in _quality_changes_to_creality_base:
+                if os.path.basename(filename).startswith(possible_printer + "_"):
+                    parser["general"]["definition"] = "creality_base"
+                    parser["metadata"]["quality_type"] = _creality_limited_quality_type.get(parser["metadata"]["quality_type"], "draft")
+                    break
+
         result = io.StringIO()
         parser.write(result)
         return [filename], [result.getvalue()]
@@ -95,6 +302,30 @@ class VersionUpgrade41to42(VersionUpgrade):
         #Update version number.
         parser["metadata"]["setting_version"] = "8"
 
+        #Change renamed profiles.
+        if "containers" in parser:
+            #For legacy Creality printers, change the variant to 0.4.
+            definition_id = parser["containers"]["6"]
+            if parser["metadata"].get("type", "machine") == "extruder_train":
+                if parser["containers"]["4"] == "empty_variant": #Necessary for people entering from CreawsomeMod who already had a variant.
+                    if definition_id in _default_variants:
+                        parser["containers"]["4"] = _default_variants[definition_id]
+                        if definition_id == "creality_cr10_extruder_0": #We can't disambiguate between Creality CR-10 and Creality-CR10S since they share the same extruder definition. Have to go by the name.
+                            if "cr-10s" in parser["metadata"].get("machine", "Creality CR-10").lower(): #Not perfect, since the user can change this name :(
+                                parser["containers"]["4"] = "creality_cr10s_0.4"
+
+            #Also change the quality to go along with it.
+            material_id = parser["containers"]["3"]
+            old_quality_id = parser["containers"]["2"]
+            if material_id in _creality_quality_per_material and old_quality_id in _creality_quality_per_material[material_id]:
+                parser["containers"]["2"] = _creality_quality_per_material[material_id][old_quality_id]
+
+            stack_copy = {}  # type: Dict[str, str] #Make a copy so that we don't modify the dict we're iterating over.
+            stack_copy.update(parser["containers"])
+            for position, profile_id in stack_copy.items():
+                if profile_id in _renamed_profiles:
+                    parser["containers"][position] = _renamed_profiles[profile_id]
+
         result = io.StringIO()
         parser.write(result)
         return [filename], [result.getvalue()]

+ 263 - 0
resources/definitions/creality_base.def.json

@@ -0,0 +1,263 @@
+{
+    "name": "Creawsome Base Printer",
+    "version": 2,
+    "inherits": "fdmprinter",
+    "overrides": {
+        "machine_name": { "default_value": "Creawsome Base Printer" },
+        "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
+        "machine_end_gcode": { "default_value": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y{machine_depth} ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
+
+        "machine_max_feedrate_x": { "value": 500 },
+        "machine_max_feedrate_y": { "value": 500 },
+        "machine_max_feedrate_z": { "value": 5 },
+        "machine_max_feedrate_e": { "value": 50 },
+
+        "machine_max_acceleration_x": { "value": 500 },
+        "machine_max_acceleration_y": { "value": 500 },
+        "machine_max_acceleration_z": { "value": 100 },
+        "machine_max_acceleration_e": { "value": 5000 },
+        "machine_acceleration": { "value": 500 },
+
+        "machine_max_jerk_xy": { "value": 10 },
+        "machine_max_jerk_z": { "value": 0.4 },
+        "machine_max_jerk_e": { "value": 5 },
+
+        "machine_heated_bed": { "default_value": true },
+
+        "material_diameter": { "default_value": 1.75 },
+
+        "acceleration_print": { "value": 500 },
+        "acceleration_travel": { "value": 500 },
+        "acceleration_travel_layer_0": { "value": "acceleration_travel" },
+        "acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
+
+        "jerk_print": { "value": 8 },
+        "jerk_travel": { "value": "jerk_print" },
+        "jerk_travel_layer_0": { "value": "jerk_travel" },
+
+        "acceleration_enabled": { "value": false },
+        "jerk_enabled": { "value": false },
+
+        "speed_print": { "value": 50.0 } ,
+        "speed_infill": { "value": "speed_print" },
+        "speed_wall": { "value": "speed_print / 2" },
+        "speed_wall_0": { "value": "speed_wall" },
+        "speed_wall_x": { "value": "speed_wall" },
+        "speed_topbottom": { "value": "speed_print / 2" },
+        "speed_roofing": { "value": "speed_topbottom" },
+        "speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" },
+        "speed_layer_0": { "value": 20.0 },
+        "speed_print_layer_0": { "value": "speed_layer_0" },
+        "speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" },
+        "speed_prime_tower": { "value": "speed_topbottom" },
+        "speed_support": { "value": "speed_wall_0" },
+        "speed_support_interface": { "value": "speed_topbottom" },
+
+        "skirt_brim_speed": { "value": "speed_layer_0" },
+
+        "line_width": { "value": "machine_nozzle_size * 1.1"},
+
+        "material_initial_print_temperature": { "value": "material_print_temperature"},
+        "material_final_print_temperature": { "value": "material_print_temperature"},
+        "material_flow": { "value": 100},
+
+        "z_seam_type": { "value": "'back'"},
+        "z_seam_corner": { "value": "'z_seam_corner_none'"},
+        
+        "infill_sparse_density": { "value": "20"},
+        "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'"},
+        "infill_before_walls": { "value": false },
+        "infill_overlap": { "value": 30.0 },
+        "skin_overlap": { "value": 10.0 },
+        "infill_wipe_dist": { "value": 0.0 },
+        "wall_0_wipe_dist": { "value": 0.0 },
+
+        "fill_perimeter_gaps": { "value": "'everywhere'" },
+        "fill_outline_gaps": { "value": false },
+        "filter_out_tiny_gaps": { "value": false },
+
+        "retraction_speed": {
+            "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
+            "maximum_value": 200
+        },
+        "retraction_retract_speed": {
+            "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
+            "maximum_value": 200
+        },
+        "retraction_prime_speed": {
+            "maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
+            "maximum_value": 200
+        },
+        
+        "retraction_hop_enabled": { "value": "support_enable" },
+        "retraction_hop": { "value": 0.2 },
+        "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'"},
+        "retraction_combing_max_distance": { "value": 30},
+        "travel_avoid_other_parts": { "value": true },
+        "travel_avoid_supports": { "value": true },
+        "travel_retract_before_outer_wall": { "value": true },
+        
+        "retraction_enable": { "value": true },
+        "retraction_count_max": { "value": 100 },
+        "retraction_extrusion_window": { "value": 10 },
+        "retraction_min_travel": { "value": 1.5 },
+
+        "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
+        "cool_fan_enabled": { "value": true },
+        "cool_min_layer_time": { "value": 10 },
+
+        "adhesion_type": { "value": "'none' if support_enable else 'skirt'" },
+        "brim_replaces_support": { "value": false},
+        "skirt_gap": { "value": 10.0 },
+        "skirt_line_count": { "value": 4 },
+
+        "adaptive_layer_height_variation": { "value": 0.04},
+        "adaptive_layer_height_variation_step": { "value": 0.04 },
+
+        "meshfix_maximum_resolution": { "value": "0.05" },
+        "meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" },
+
+        "support_type": { "value": "'buildplate'"},
+        "support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" },
+        "support_pattern": { "value": "'zigzag'" },
+        "support_infill_rate": { "value": "0 if support_tree_enable else 20" },
+        "support_use_towers": { "value": false },
+        "support_xy_distance": { "value": "wall_line_width_0 * 2" },
+        "support_xy_distance_overhang": { "value": "wall_line_width_0" },
+        "support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
+        "support_xy_overrides_z": { "value": "'xy_overrides_z'" },
+        "support_wall_count": { "value": 1},
+        "support_brim_enable": { "value": true},
+        "support_brim_width": { "value": 4},
+
+        "support_interface_enable": { "value": true },
+        "support_interface_height": { "value": "layer_height * 4" },
+        "support_interface_density": { "value": 33.333 },
+        "support_interface_pattern": { "value": "'grid'" },
+        "support_interface_skip_height": { "value": 0.2},
+        "minimum_support_area": { "value": 10},
+        "minimum_interface_area": { "value": 10}
+
+    },
+    "metadata": {
+        "visible": false,
+        "author": "trouch.com",
+        "manufacturer": "CreawsomeMod",
+        "file_formats": "text/x-gcode",
+        "first_start_actions": ["MachineSettingsAction"],
+
+        "machine_extruder_trains": {
+            "0": "creality_base_extruder_0"
+        },
+
+        "has_materials": true,
+        "has_variants": true,
+        "has_machine_quality": true,
+        "has_machine_materials": true,
+        "variants_name": "Nozzle Size",
+
+        "preferred_variant_name": "0.4mm Nozzle",
+        "preferred_quality_type": "standard",
+        "preferred_material": "generic_pla",
+        "exclude_materials": [
+            "Vertex_Delta_ABS",
+            "Vertex_Delta_PET",
+            "Vertex_Delta_PLA",
+            "Vertex_Delta_TPU",
+            "chromatik_pla",
+            "dsm_arnitel2045_175",
+            "dsm_novamid1070_175",
+            "fabtotum_abs",
+            "fabtotum_nylon",
+            "fabtotum_pla",
+            "fabtotum_tpu",
+            "fiberlogy_hd_pla",
+            "filo3d_pla",
+            "filo3d_pla_green",
+            "filo3d_pla_red",
+            "generic_abs",
+            "generic_bam",
+            "generic_cffcpe",
+            "generic_cffpa",
+            "generic_cpe",
+            "generic_cpe_plus",
+            "generic_gffcpe",
+            "generic_gffpa",
+            "generic_hips",
+            "generic_nylon",
+            "generic_pc",
+            "generic_petg",
+            "generic_pla",
+            "generic_pp",
+            "generic_pva",
+            "generic_tough_pla",
+            "generic_tpu",
+            "imade3d_petg_green",
+            "imade3d_petg_pink",
+            "imade3d_pla_green",
+            "imade3d_pla_pink",
+            "innofill_innoflex60_175",
+            "octofiber_pla",
+            "polyflex_pla",
+            "polymax_pla",
+            "polyplus_pla",
+            "polywood_pla",
+            "structur3d_dap100silicone",
+            "tizyx_abs",
+            "tizyx_pla",
+            "tizyx_pla_bois",
+            "ultimaker_abs_black",
+            "ultimaker_abs_blue",
+            "ultimaker_abs_green",
+            "ultimaker_abs_grey",
+            "ultimaker_abs_orange",
+            "ultimaker_abs_pearl-gold",
+            "ultimaker_abs_red",
+            "ultimaker_abs_silver-metallic",
+            "ultimaker_abs_white",
+            "ultimaker_abs_yellow",
+            "ultimaker_bam",
+            "ultimaker_cpe_black",
+            "ultimaker_cpe_blue",
+            "ultimaker_cpe_dark-grey",
+            "ultimaker_cpe_green",
+            "ultimaker_cpe_light-grey",
+            "ultimaker_cpe_plus_black",
+            "ultimaker_cpe_plus_transparent",
+            "ultimaker_cpe_plus_white",
+            "ultimaker_cpe_red",
+            "ultimaker_cpe_transparent",
+            "ultimaker_cpe_white",
+            "ultimaker_cpe_yellow",
+            "ultimaker_nylon_black",
+            "ultimaker_nylon_transparent",
+            "ultimaker_pc_black",
+            "ultimaker_pc_transparent",
+            "ultimaker_pc_white",
+            "ultimaker_pla_black",
+            "ultimaker_pla_blue",
+            "ultimaker_pla_green",
+            "ultimaker_pla_magenta",
+            "ultimaker_pla_orange",
+            "ultimaker_pla_pearl-white",
+            "ultimaker_pla_red",
+            "ultimaker_pla_silver-metallic",
+            "ultimaker_pla_transparent",
+            "ultimaker_pla_white",
+            "ultimaker_pla_yellow",
+            "ultimaker_pp_transparent",
+            "ultimaker_pva",
+            "ultimaker_tough_pla_black",
+            "ultimaker_tough_pla_green",
+            "ultimaker_tough_pla_red",
+            "ultimaker_tough_pla_white",
+            "ultimaker_tpu_black",
+            "ultimaker_tpu_blue",
+            "ultimaker_tpu_red",
+            "ultimaker_tpu_white",
+            "verbatim_bvoh_175",
+            "zyyx_pro_flex",
+            "zyyx_pro_pla"
+        ]
+    }
+}

+ 23 - 86
resources/definitions/creality_cr10.def.json

@@ -1,95 +1,32 @@
 {
     "name": "Creality CR-10",
     "version": 2,
-    "inherits": "fdmprinter",
-    "metadata": {
-        "visible": true,
-        "author": "Michael Wildermuth",
-        "manufacturer": "Creality3D",
-        "file_formats": "text/x-gcode",
-        "preferred_quality_type": "draft",
-        "machine_extruder_trains":
-        {
-            "0": "creality_cr10_extruder_0"
-        }
-    },
+    "inherits": "creality_base",
     "overrides": {
-        "machine_width": {
-            "default_value": 300
-        },
-        "machine_height": {
-            "default_value": 400
-        },
-        "machine_depth": {
-            "default_value": 300
-        },
-        "machine_head_polygon": {
-            "default_value": [
-                [-30, 34],
-                [-30, -32],
-                [30, -32],
-                [30, 34]
+        "machine_name": { "default_value": "Creality CR-10" },
+        "machine_width": { "default_value": 300 },
+        "machine_depth": { "default_value": 300 },
+        "machine_height": { "default_value": 400 },
+        "machine_head_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [22, -32],
+                [22, 34]
             ]
         },
-        "layer_height_0": {
-            "default_value": 0.2
-        },
-        "top_bottom_thickness": {
-            "default_value": 0.6
-        },
-        "top_bottom_pattern_0": {
-            "default_value": "concentric"
-        },
-        "infill_pattern": {
-            "value": "'triangles'"
-        },
-        "retraction_enable": {
-            "default_value": true
-        },
-        "retraction_amount": {
-            "default_value": 5
-        },
-        "retraction_speed": {
-            "default_value": 40
-        },
-        "cool_min_layer_time": {
-            "default_value": 10
-        },
-        "adhesion_type": {
-            "default_value": "skirt"
-        },
-        "skirt_line_count": {
-            "default_value": 4
-        },
-        "skirt_gap": {
-            "default_value": 5
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 F1800 E-3\nG1 F3000 Z10\nG90\nG28 X0 Y0 ; home x and y axis\nM106 S0 ; turn off cooling fan\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors"
-        },
-        "machine_heated_bed": {
-            "default_value": true
-        },
-        "gantry_height": {
-            "value": "30"
-        },
-        "acceleration_enabled": {
-            "default_value": true
-        },
-        "acceleration_print": {
-            "default_value": 500
-        },
-        "acceleration_travel": {
-            "default_value": 500
-        },
-        "jerk_enabled": {
-            "default_value": true
-        },
-        "jerk_print": {
-            "default_value": 8
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [32, -32],
+                [32, 34]
+            ]
         },
-        "jerk_travel": {
-            "default_value": 8
-        }
+
+        "gantry_height": { "value": 25 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "visible": true
     }
 }

+ 32 - 0
resources/definitions/creality_cr10mini.def.json

@@ -0,0 +1,32 @@
+{
+    "name": "Creality CR-10 Mini",
+    "version": 2,
+    "inherits": "creality_base",
+    "overrides": {
+        "machine_name": { "default_value": "Creality CR-10 Mini" },
+        "machine_width": { "default_value": 300 },
+        "machine_depth": { "default_value": 220 },
+        "machine_height": { "default_value": 300 },
+        "machine_head_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [22, -32],
+                [22, 34]
+            ]
+        },
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [32, -32],
+                [32, 34]
+            ]
+        },
+
+        "gantry_height": { "value": 25 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "visible": true
+    }
+}

+ 7 - 1
resources/definitions/creality_cr10s.def.json

@@ -1,5 +1,11 @@
 {
     "name": "Creality CR-10S",
     "version": 2,
-    "inherits": "creality_cr10"
+    "inherits": "creality_cr10",
+    "overrides": {
+        "machine_name": { "default_value": "Creality CR-10S" }
+    },
+    "metadata": {
+        "quality_definition": "creality_base"
+    }
 }

+ 25 - 19
resources/definitions/creality_cr10s4.def.json

@@ -1,26 +1,32 @@
 {
-    "name": "Creality CR-10 S4",
+    "name": "Creality CR-10S4",
     "version": 2,
-    "inherits": "creality_cr10",
-    "metadata": {
-        "visible": true,
-        "author": "Michael Wildermuth",
-        "manufacturer": "Creality3D",
-        "file_formats": "text/x-gcode",
-        "machine_extruder_trains":
-        {
-            "0": "creality_cr10s4_extruder_0"
-        }
-    },
+    "inherits": "creality_base",
     "overrides": {
-        "machine_width": {
-            "default_value": 400
+        "machine_name": { "default_value": "Creality CR-10S4" },
+        "machine_width": { "default_value": 400 },
+        "machine_depth": { "default_value": 400 },
+        "machine_height": { "default_value": 400 },
+        "machine_head_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [22, -32],
+                [22, 34]
+            ]
         },
-        "machine_height": {
-            "default_value": 400
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [32, -32],
+                [32, 34]
+            ]
         },
-        "machine_depth": {
-            "default_value": 400
-        }
+
+        "gantry_height": { "value": 25 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "visible": true
     }
 }

+ 25 - 19
resources/definitions/creality_cr10s5.def.json

@@ -1,26 +1,32 @@
 {
-    "name": "Creality CR-10 S5",
+    "name": "Creality CR-10S5",
     "version": 2,
-    "inherits": "creality_cr10",
-    "metadata": {
-        "visible": true,
-        "author": "Michael Wildermuth",
-        "manufacturer": "Creality3D",
-        "file_formats": "text/x-gcode",
-        "machine_extruder_trains":
-        {
-            "0": "creality_cr10s5_extruder_0"
-        }
-    },
+    "inherits": "creality_base",
     "overrides": {
-        "machine_width": {
-            "default_value": 500
+        "machine_name": { "default_value": "Creality CR-10S5" },
+        "machine_width": { "default_value": 500 },
+        "machine_depth": { "default_value": 500 },
+        "machine_height": { "default_value": 500 },
+        "machine_head_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [22, -32],
+                [22, 34]
+            ]
         },
-        "machine_height": {
-            "default_value": 500
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [32, -32],
+                [32, 34]
+            ]
         },
-        "machine_depth": {
-            "default_value": 500
-        }
+
+        "gantry_height": { "value": 25 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "visible": true
     }
 }

+ 31 - 0
resources/definitions/creality_cr10spro.def.json

@@ -0,0 +1,31 @@
+{
+    "name": "Creality CR-10S Pro",
+    "version": 2,
+    "inherits": "creality_cr10",
+    "overrides": {
+        "machine_name": { "default_value": "Creality CR-10S Pro" },
+        "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\nM420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
+        "machine_head_polygon": { "default_value": [
+                [-44, 34],
+                [-44, -34],
+                [18, -34],
+                [18, 34]
+            ]
+        },
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-44, 34],
+                [-44, -34],
+                [38, -34],
+                [38, 34]
+            ]
+        },
+
+        "gantry_height": { "value": 30 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "platform": "creality_cr10spro.stl",
+        "platform_offset": [ -150, 0, 150]
+    }
+}

+ 32 - 0
resources/definitions/creality_cr20.def.json

@@ -0,0 +1,32 @@
+{
+    "name": "Creality CR-20",
+    "version": 2,
+    "inherits": "creality_base",
+    "overrides": {
+        "machine_name": { "default_value": "Creality CR-20" },
+        "machine_width": { "default_value": 220 },
+        "machine_depth": { "default_value": 220 },
+        "machine_height": { "default_value": 250 },
+        "machine_head_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [22, -32],
+                [22, 34]
+            ]
+        },
+        "machine_head_with_fans_polygon": { "default_value": [
+                [-26, 34],
+                [-26, -32],
+                [32, -32],
+                [32, 34]
+            ]
+        },
+
+        "gantry_height": { "value": 25 }
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base",
+        "visible": true
+    }
+}

+ 13 - 0
resources/definitions/creality_cr20pro.def.json

@@ -0,0 +1,13 @@
+{
+    "name": "Creality CR-20 Pro",
+    "version": 2,
+    "inherits": "creality_cr20",
+    "overrides": {
+        "machine_name": { "default_value": "Creality CR-20 Pro" },
+        "machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\nM420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"}
+
+    },
+    "metadata": {
+        "quality_definition": "creality_base"
+    }
+}

Some files were not shown because too many files changed in this diff