Browse Source

add geeetech profiles

whoseyoung 2 years ago
parent
commit
36ac3d7744

+ 143 - 0
resources/definitions/Geeetech_base.def.json

@@ -0,0 +1,143 @@
+{
+    "version": 2,
+    "name": "Geeetech Base Printer",
+    "inherits": "fdmprinter",
+    "metadata": {
+        "visible": false,
+        "author": "Teddy.Hu",
+        "manufacturer": "Geeetech",
+        "file_formats": "text/x-gcode",
+		"first_start_actions": ["MachineSettingsAction"],
+        "has_materials": true,
+        "has_variants": false,
+        "has_machine_quality": true,
+        "variants_name": "Nozzle Size",
+        "preferred_variant_name": "0.4mm Nozzle",
+        "preferred_quality_type": "standard",
+        "preferred_material": "generic_pla",
+        "machine_extruder_trains": { 
+		  "0": "Geeetech_base_extruder_0" 
+		}		 
+     },
+
+    "overrides":{
+        "machine_name": { "default_value": "Geeetech Base Printer" },           
+        "machine_width": { "default_value": 250 },
+        "machine_depth": { "default_value": 250 },
+        "machine_height": {"default_value": 260 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+        "gantry_height": { "value": 30 },
+		"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
+		
+	    "machine_start_gcode": { "default_value": ";Geeetech Custom Start G-code\nM104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nG92 E0 ;Reset Extruder\nG28 ;Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ;ON Light\n;M106 P0 S383 ;ON MainFan 150% if need\n;M106 P1 S255 ;ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ;Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ;Draw the first line\nG92 E0 ;Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ;Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ;Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 1},
+        "machine_heated_bed": { "default_value": true },	
+
+		"machine_max_feedrate_x": { "value": 500 },
+        "machine_max_feedrate_y": { "value": 500 },
+        "machine_max_feedrate_z": { "value": 10 },
+        "machine_max_feedrate_e": { "value": 40 },
+        "machine_max_acceleration_x": { "value": 500 },
+        "machine_max_acceleration_y": { "value": 500 },
+        "machine_max_acceleration_z": { "value": 100 },
+        "machine_max_acceleration_e": { "value": 1000 },
+        "machine_acceleration": { "value": 500 },
+        "machine_max_jerk_xy": { "value": 10 },
+        "machine_max_jerk_z": { "value": 0.3 },
+        "machine_max_jerk_e": { "value": 5 },
+		"acceleration_enabled": { "value": false },
+		"acceleration_travel_enabled":{ "value": false },  
+		"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" },		
+		
+        "line_width": {"default_value":"machine_nozzle_size","value": "1.125*machine_nozzle_size if speed_infill<=100 else machine_nozzle_size"},
+		"fill_outline_gaps": {"label": "Print Thin Walls", "value": true },
+        "retraction_amount": { "default_value": 6.5 },
+        "retraction_enable": { "default_value": true },
+        "retraction_speed": { "default_value": 40 },
+        "infill_sparse_density": {"label": "Infill Density","value": "20" },
+        "infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'grid'" },
+		"small_hole_max_size":{"default_value": 0,"value": "5 if speed_infill>=150  else 0" },
+		"cool_min_layer_time":{"default_value": 5,"value": "1.3 if speed_infill>=200  else 5" },
+        "material_print_temperature": { "default_value": 200,"value":  "200 if speed_infill <=100 else 210 if speed_infill <= 150 else 220 if speed_infill <= 180 else 230", "maximum_value": "250" },
+		"material_print_temperature_layer_0": { "value": "material_print_temperature + 5", "maximum_value_warning": 250 },
+		"material_initial_print_temperature": { "value": "material_print_temperature - 5", "minimum_value_warning": "material_standby_temperature - 10" },
+        "material_final_print_temperature": { "value": "material_print_temperature" },
+        "material_bed_temperature": { "maximum_value_warning": 110 },
+        
+        "speed_print": { "default_value": 60,   "maximum_value_warning": "300" },
+        "speed_infill": {"default_value": 60,   "value":"speed_print", "maximum_value_warning": "300"},
+        "speed_wall":  {"label": " Wall Speed ", "default_value": 30,     "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))", "maximum_value_warning": "300"},
+        "speed_wall_0": {"label": "Outer Wall Speed","default_value": 30, "value": "30 if speed_print==60 else math.ceil(round(speed_print*0.75))", "maximum_value_warning": "300"},   
+        "speed_wall_x": {"label": "Inner Wall Speed","default_value": 60, "value": "60 if speed_print==60 else math.ceil(round(speed_print*0.90))", "maximum_value_warning": "300"},  
+        "speed_roofing":{"default_value": 25, "value": "speed_print", "maximum_value_warning": "300"}, 
+        "speed_topbottom": {"default_value": 30, "value": "speed_print", "maximum_value_warning": "300"},
+        "speed_travel": {"default_value": 120, "value": "200 if 120<=speed_print<=200 else speed_print if speed_print>200 else 120", "maximum_value_warning": "300"}, 
+        "speed_layer_0": {"default_value": 30, "value":"speed_travel_layer_0","maximum_value_warning": "300"},
+        "speed_print_layer_0": {"default_value": 30, "value": "25 if speed_infill <= 150 else 35", "maximum_value_warning": "60"},
+        "speed_travel_layer_0":  {"default_value": 60,"value": "2*speed_print_layer_0", "maximum_value_warning": "300"},
+        "skirt_brim_speed":  {"default_value": 30, "value":"speed_print_layer_0", "maximum_value_warning": "60"},
+ 
+        "speed_support": {"default_value": 60, "value": "speed_print*0.5", "maximum_value_warning": "300"},
+        "speed_support_infill": {"default_value":60, "value": "speed_support", "maximum_value_warning": "300"},
+        "speed_support_interface": {"default_value": 40, "value": "speed_support", "maximum_value_warning": "300"},
+        "speed_support_roof": {"default_value": 40, "value": "speed_support", "maximum_value_warning": "300"},
+        "speed_support_bottom": {"default_value": 40, "value": "speed_support", "maximum_value_warning": "300"},
+
+        "wall_transition_filter_deviation":{"label": "Wall Transitioning Filter Margin","value": 0.15 },
+        "inset_direction":{"label": "Wall Ordering","default_value": "inside_out" },
+        "travel_avoid_other_parts": { "value": true },
+        "travel_avoid_supports": { "value": true },
+        "travel_retract_before_outer_wall": { "value": false },
+        "retraction_hop_enabled": { "value": "False" },
+        "retraction_hop": { "value": 0.2 },
+        "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'all'" },
+        "retraction_combing_max_distance": { "value": 30 },
+        "optimize_wall_printing_order": { "value": "True" },
+        "z_seam_type": { "value": "'sharpest_corner'"},
+        "z_seam_corner": { "value": "'z_seam_corner_inner'"},	
+
+		"support_enable": {"default_value": false    },
+        "support_use_towers": { "value": false },		
+		"support_angle": { "value": 50 },
+		"support_type": {"default_value": "'everywhere'"       },
+        "support_pattern": { "value": "'zigzag'" },
+        "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 25" },
+        "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": 0 },
+        "support_brim_enable": { "value": true },
+        "support_brim_width": { "value": 5 },
+		
+		"support_interface_enable": { "value": false },
+        "support_roof_enable": {"default_value": false   },		
+        "support_interface_height": { "value": "layer_height * 4" },
+        "support_interface_density": { "value": 33.333 },
+        "support_interface_pattern": {"default_value": "zigzag"  },
+        "support_interface_skip_height": { "value": 0.2 },
+        "support_roof_pattern": {"default_value": "zigzag"  },
+        "support_bottom_pattern": {"default_value": "zigzag" },
+	
+        "minimum_support_area": { "value": 2 },
+        "minimum_interface_area": { "value": 10 },
+        "top_bottom_thickness": {"value":  "layer_height_0 + layer_height * 3" },
+        "wall_thickness": {"value": "line_width * 2" },
+
+        "adhesion_type": { "value": "'skirt'" },
+        "brim_replaces_support": { "value": false },
+        "skirt_gap": { "value": 6 },
+        "skirt_line_count": { "value": 1 },
+        "brim_line_count":   {"default_value": 5 },
+		
+		"prime_tower_enable":{ "value": false },
+		"prime_tower_size":  { "value": 30 },
+		"prime_tower_min_volume":{ "value": 85, "maximum_value_warning":150 },
+		"prime_tower_wipe_enabled":{ "value": true },
+		"prime_tower_brim_enable":{ "value": true }
+       }
+}

+ 0 - 59
resources/definitions/geeetech_A10.def.json

@@ -1,59 +0,0 @@
-{
-    "version": 2,
-    "name": "Geeetech A10",
-    "inherits": "fdmprinter",
-    "metadata": {
-        "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
-        "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A10_1"
-        }
-
-    },
-
-    "overrides": {
-        "machine_name": { "default_value": "Geeetech A10" },
-        "machine_width": {
-            "default_value": 220
-        },
-        "machine_height": {
-            "default_value": 260
-        },
-        "machine_depth": {
-            "default_value": 220
-        },        
-        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_heated_bed": { "default_value": true },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": "G28 ; Auto home\nG1 Z15 F300 ;Move up slightly\nM107 ;Off fans\nG90 ;Switch to absolute positioning\nM82 ;Extruder absolute mode\nG92 E0 ;Set position of extruder to 0\nG0 X10 Y20 F1500 ;Move to X10 Y20 at 1500mms\nG1 Z0.8 ;Move Z to 0.8\nG1 F300 X180 E40 ;Extrude a line of filament\nG1 F1200 Z2 ;Raise Z\nG92 E0 ;Set extruder position to zero\nG28 ;Auto home"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91 ;Switch to relative positioning\nG1 E-1 ;Retract filament to lower pressure\nG0 X0 Y200 ;Move hotend to left and bed forward\nM104 S0 ;Cooldown hotend\nG90 ;Switch to absolute mode\nG92 E0 ;Set extruder to zero\nM140 S0 ;Cooldown bed\nM84 ; Disable steppers"
-        },
-        "machine_extruder_count": {
-            "default_value": 1
-        }
-
-    }
-}

+ 22 - 48
resources/definitions/geeetech_A10M.def.json

@@ -1,58 +1,32 @@
 {
     "version": 2,
     "name": "Geeetech A10M",
-    "inherits": "fdmprinter",
+    "inherits": "Geeetech_base",
     "metadata": {
+		"quality_definition": "Geeetech_base",
         "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
         "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A10M_1",
-            "1": "geeetech_A10M_2"
-        }
-
-    },
+        "has_variants": false,
+        "has_machine_quality": true,
+		"preferred_material": "Geeetech_PLA_Cyan",
+		"machine_extruder_trains": { 
+		"0": "Geeetech_Dual_Extruder_0",  "1": "Geeetech_Dual_Extruder_1"
+		}		
+       },
 
     "overrides": {
         "machine_name": { "default_value": "Geeetech A10M" },
-        "machine_width": {
-            "default_value": 220
-        },
-        "machine_height": {
-            "default_value": 260
-        },
-        "machine_depth": {
-            "default_value": 220
-        },        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": ";GeeeTech A10M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
-        },
-        "machine_extruder_count": {
-            "default_value": 2
-        }
-
-    }
+        "machine_width": { "default_value": 220 },
+        "machine_depth": { "default_value": 220 },
+        "machine_height": {"default_value": 260 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 28 },
+		"prime_tower_position_x":{ "value": 190 },
+		"prime_tower_position_y":{ "value": 160 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A10M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 2 },
+		"machine_heated_bed": { "default_value": true }
+	}
 }

+ 26 - 0
resources/definitions/geeetech_A10Pro.def.json

@@ -0,0 +1,26 @@
+{
+    "version": 2,
+    "name": "Geeetech A10Pro",
+    "inherits": "Geeetech_base",
+    "metadata": {
+		"quality_definition": "Geeetech_base",
+        "visible": true,
+        "has_materials": true,
+        "has_variants": true,
+        "has_machine_quality": true
+       },
+
+    "overrides": {
+        "machine_name": { "default_value": "Geeetech A10Pro" },
+        "machine_width": { "default_value": 220 }, 
+        "machine_depth": { "default_value": 220 },
+        "machine_height": {"default_value": 260 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 28 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A10Pro Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 1 },
+		"machine_heated_bed": { "default_value": true }
+	}
+}

+ 22 - 50
resources/definitions/geeetech_A10T.def.json

@@ -1,60 +1,32 @@
 {
     "version": 2,
     "name": "Geeetech A10T",
-    "inherits": "fdmprinter",
+    "inherits": "Geeetech_base",
     "metadata": {
+		"quality_definition": "Geeetech_base",
         "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
         "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A10T_1",
-            "1": "geeetech_A10T_2",
-            "2": "geeetech_A10T_3"
-        }
-
-    },
+        "has_variants": false,
+        "has_machine_quality": true,
+		"preferred_material": "Geeetech_PLA_Magenta",
+		"machine_extruder_trains": { 
+		"0": "Geeetech_Multi_Extruder_0",  "1": "Geeetech_Multi_Extruder_1", "2": "Geeetech_Multi_Extruder_2"
+		}		
+       },
 
     "overrides": {
         "machine_name": { "default_value": "Geeetech A10T" },
-        "machine_width": {
-            "default_value": 220
-        },
-        "machine_height": {
-            "default_value": 220
-        },
-        "machine_depth": {
-            "default_value": 260
-        },
-        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X180 E40\nG1 F1200 Z2\nG92 E0\nG28"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
-        },
-        "machine_extruder_count": {
-            "default_value": 3
-        }
-
-    }
+        "machine_width": { "default_value": 220 },  
+        "machine_depth": { "default_value": 220 },
+        "machine_height": {"default_value": 260 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 28 },
+		"prime_tower_position_x":{ "value": 190 },
+		"prime_tower_position_y":{ "value": 160 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A10T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 3 },	
+		"machine_heated_bed": { "default_value": true }
+	}
 }

+ 16 - 47
resources/definitions/geeetech_A20.def.json

@@ -1,57 +1,26 @@
 {
     "version": 2,
     "name": "Geeetech A20",
-    "inherits": "fdmprinter",
+    "inherits": "Geeetech_base",
     "metadata": {
+		"quality_definition": "Geeetech_base",
         "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
         "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A20_1"
-        }
-
-    },
+        "has_variants": true,
+        "has_machine_quality": true
+       },
 
     "overrides": {
         "machine_name": { "default_value": "Geeetech A20" },
-        "machine_width": {
-            "default_value": 250
-        },
-        "machine_height": {
-            "default_value": 250
-        },
-        "machine_depth": {
-            "default_value": 250
-        },        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
-        },
-        "machine_extruder_count": {
-            "default_value": 1
-        }
-
-    }
+        "machine_width": { "default_value": 250 },
+        "machine_depth": { "default_value": 250 },
+        "machine_height": {"default_value": 250 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 35 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A20 Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 1},
+		"machine_heated_bed": { "default_value": true }
+	}
 }

+ 22 - 48
resources/definitions/geeetech_A20M.def.json

@@ -1,58 +1,32 @@
 {
     "version": 2,
     "name": "Geeetech A20M",
-    "inherits": "fdmprinter",
+    "inherits": "Geeetech_base",
     "metadata": {
+		"quality_definition": "Geeetech_base",
         "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
         "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A20M_1",
-            "1": "geeetech_A20M_2"
-        }
-
-    },
+        "has_variants": false,
+        "has_machine_quality": true,
+		"preferred_material": "Geeetech_PLA_Yellow",
+		"machine_extruder_trains": { 
+		"0": "Geeetech_Dual_Extruder_0",  "1": "Geeetech_Dual_Extruder_1"
+		}		
+       },
 
     "overrides": {
         "machine_name": { "default_value": "Geeetech A20M" },
-        "machine_width": {
-            "default_value": 250
-        },
-        "machine_height": {
-            "default_value": 250
-        },
-        "machine_depth": {
-            "default_value": 250
-        },        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": ";GeeeTech A20M start script\nG28 ;home\nG90 ;absolute positioning\nG1 X0 Y0 Z15 E0 F300 ;go to wait position\nM140 S{material_bed_temperature_layer_0} ;set bed temp\nM109 S{material_print_temperature_layer_0} ;set extruder temp and wait\nG1 Z0.8 F200 ;set extruder height\nG1 X220 Y0 E80 F1000 ;purge line\n;end of start script"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
-        },
-        "machine_extruder_count": {
-            "default_value": 2
-        }
-
-    }
+        "machine_width": { "default_value": 250 },
+        "machine_depth": { "default_value": 250 },
+        "machine_height": {"default_value": 250 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 35 },
+		"prime_tower_position_x":{ "value": 220 },
+		"prime_tower_position_y":{ "value": 190 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A20M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 2 },
+		"machine_heated_bed": { "default_value": true }
+	}
 }

+ 22 - 49
resources/definitions/geeetech_A20T.def.json

@@ -1,59 +1,32 @@
 {
     "version": 2,
     "name": "Geeetech A20T",
-    "inherits": "fdmprinter",
+    "inherits": "Geeetech_base",
     "metadata": {
+		"quality_definition": "Geeetech_base",
         "visible": true,
-        "author": "Amit L",
-        "manufacturer": "Geeetech",
-        "file_formats": "text/x-gcode",
         "has_materials": true,
-        "machine_extruder_trains":
-        {
-            "0": "geeetech_A20T_1",
-            "1": "geeetech_A20T_2",
-            "2": "geeetech_A20T_3"
-        }
-
-    },
+        "has_variants": false,
+        "has_machine_quality": true,
+		"preferred_material": "Geeetech_PLA_Red",
+		"machine_extruder_trains": { 
+		"0": "Geeetech_Multi_Extruder_0",  "1": "Geeetech_Multi_Extruder_1", "2": "Geeetech_Multi_Extruder_2"
+		}		
+       },
 
     "overrides": {
         "machine_name": { "default_value": "Geeetech A20T" },
-        "machine_width": {
-            "default_value": 250
-        },
-        "machine_height": {
-            "default_value": 250
-        },
-        "machine_depth": {
-            "default_value": 250
-        },        "machine_center_is_zero": {
-            "default_value": false
-        },
-        "layer_height": { "default_value": 0.1 },
-        "layer_height_0": { "default_value": 0.15 },
-        "retraction_amount": { "default_value": 0.8 },
-        "retraction_speed": { "default_value": 35 },
-        "adhesion_type": { "default_value": "skirt" },
-        "machine_head_with_fans_polygon": { "default_value": [[-31,31],[34,31],[34,-40],[-31,-40]] },
-        "gantry_height": { "value": "28" },
-        "machine_max_feedrate_z": { "default_value": 12 },
-        "machine_max_feedrate_e": { "default_value": 120 },
-        "machine_max_acceleration_z": { "default_value": 500 },
-        "machine_acceleration": { "default_value": 1000 },
-        "machine_max_jerk_xy": { "default_value": 10 },
-        "machine_max_jerk_z": { "default_value": 0.2 },
-        "machine_max_jerk_e": { "default_value": 2.5 },
-        "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
-        "machine_start_gcode": {
-            "default_value": "G28 \nG1 Z15 F300\nM107\nG90\nM82\nM104 S215\nM140 S55\nG92 E0\nM109 S215\nM107\nM163 S0 P0.33\nM163 S1 P0.33\nM163 S2 P0.33\nM164 S4\nG0 X10 Y20 F6000\nG1 Z0.8\nG1 F300 X200 E40\nG1 F1200 Z2\nG92 E0\nG28"
-        },
-        "machine_end_gcode": {
-            "default_value": "G91\nG1 E-1\nG0 X0 Y200\nM104 S0\nG90\nG92 E0\nM140 S0\nM84\nM104 S0\nM140 S0\nM84"
-        },
-        "machine_extruder_count": {
-            "default_value": 3
-        }
-
-    }
+        "machine_width": { "default_value": 250 },   
+        "machine_depth": { "default_value": 250 },
+        "machine_height": {"default_value": 250 },
+		"machine_head_with_fans_polygon": { "default_value": [[-31, 31], [34, 31], [34, -40], [-31, -40]] },
+		"gantry_height": { "value": 35 },
+		"prime_tower_position_x":{ "value": 220 },
+		"prime_tower_position_y":{ "value": 190 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A20T Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 3 },
+		"machine_heated_bed": { "default_value": true }
+	}
 }

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

@@ -0,0 +1,32 @@
+{
+    "version": 2,
+    "name": "Geeetech A30M",
+    "inherits": "Geeetech_base",
+    "metadata": {
+		"quality_definition": "Geeetech_base",
+        "visible": true,
+        "has_materials": true,
+        "has_variants": false,
+        "has_machine_quality": true,
+		"preferred_material": "Geeetech_PLA_Green",
+		"machine_extruder_trains": { 
+		"0": "Geeetech_Dual_Extruder_0",  "1": "Geeetech_Dual_Extruder_1"
+		}		
+       },
+
+    "overrides": {
+        "machine_name": { "default_value": "Geeetech A30M" },
+        "machine_width": { "default_value": 320 },  
+        "machine_depth": { "default_value": 320 },
+        "machine_height": {"default_value": 420 },
+		"machine_head_with_fans_polygon": { "default_value": [[-75, 35], [18, 35], [18, -18], [-75, -18]] },
+		"gantry_height": { "value": 55 },
+		"prime_tower_position_x":{ "value": 290 },
+		"prime_tower_position_y":{ "value": 260 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A30M Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\n;M106 P0 S383 ; ON MainFan 150% if need\n;M106 P1 S255 ; ON Aux Fan 100% if need\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 2 },
+		"machine_heated_bed": { "default_value": true }
+	}
+}

+ 26 - 0
resources/definitions/geeetech_A30Pro.def.json

@@ -0,0 +1,26 @@
+{
+    "version": 2,
+    "name": "Geeetech A30Pro",
+    "inherits": "Geeetech_base",
+    "metadata": {
+		"quality_definition": "Geeetech_base",
+        "visible": true,
+        "has_materials": true,
+        "has_variants": true,
+        "has_machine_quality": true
+       },
+
+    "overrides": {
+        "machine_name": { "default_value": "Geeetech A30Pro" },
+        "machine_width": { "default_value": 320 }, 
+        "machine_depth": { "default_value": 320 },
+        "machine_height": {"default_value": 420 },
+		"machine_head_with_fans_polygon": { "default_value": [[-75, 35], [18, 35], [18, -18], [-75, -18]] },
+		"gantry_height": { "value": 55 },
+		
+        "machine_start_gcode": { "default_value": ";Geeetech A30Pro Custom Start G-code\nM104 S{material_print_temperature_layer_0} ; Set Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ; Wait for Bed Temperature\nM109 S{material_print_temperature_layer_0} ; Wait for Hotend Temperature\nG92 E0 ; Reset Extruder\nG28 ; Home all axes\nM107 P0 ;Off Main Fan\nM107 P1 ;Off Aux Fan\nM2012 P8 S1 F100 ; ON Light\nG1 Z5.0 F3000 ;Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.8 F5000 ; Move to start position\nG1 X0.1 Y200.0 Z1.2 F1500 E30 ; Draw the first line\nG92 E0 ; Reset Extruder\nG1 X0.4 Y200.0 Z1.2 F3000 ; Move to side a little\nG1 X0.4 Y20 Z1.2 F1500 E25 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X5 Y20 Z0.4 F3000.0 ; Scrape off nozzle residue" },
+        "machine_end_gcode":   { "default_value": "G91 ;Switch to relative positioning\nG1 E-2.5 F2700 ;Retract filament\nG1 E-1.5 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Move away\nG1 Z10 ;lift print head\nG90 ;Switch to absolute positioning\nG28 X Y ;homing XY\nM106 S0 ;off Fan\nM104 S0 ;Cooldown hotend\nM140 S0 ;Cooldown bed\nM84 X Y E ;Disable steppers" },
+        "machine_extruder_count": { "default_value": 1},
+		"machine_heated_bed": { "default_value": true }
+	}
+}

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