diff --git a/resources/definitions/blocks_base.def.json b/resources/definitions/blocks_base.def.json new file mode 100644 index 0000000000..5c9b8f17cb --- /dev/null +++ b/resources/definitions/blocks_base.def.json @@ -0,0 +1,200 @@ +{ + "name": "Blocks Base Printer", + "version": 2, + "inherits": "fdmprinter", + "metadata": { + "visible": false, + "author": "Blocks Dev Team - J. Grilo", + "manufacturer": "Blocks", + "file_formats": "text/x-gcode", + "first_start_actions": ["MachineSettingsAction"], + + "has_materials": true, + "has_variants": true, + "has_machine_quality": true, + + "variants_name": "Nozzle Size", + "preferred_variant_name": "0.4mm Nozzle", + "preferred_quality_type": "normal", + "preferred_material": "generic_pla" + }, + "overrides": { + "machine_center_is_zero": { "default_value": false }, + + "machine_max_feedrate_x": { "value": 500 }, + "machine_max_feedrate_y": { "value": 500 }, + "machine_max_feedrate_z": { "value": 10 }, + "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" }, + "speed_z_hop": { "value": 5 }, + + "skirt_brim_speed": { "value": "speed_layer_0" }, + + "line_width": { "value": "machine_nozzle_size" }, + "wall_line_width": { "value": "machine_nozzle_size" }, + + "optimize_wall_printing_order": { "value": "True" }, + + "material_initial_print_temperature": { + "value": "material_print_temperature" + }, + "material_final_print_temperature": { + "value": "material_print_temperature" + }, + "material_flow": { "value": 100 }, + "travel_compensate_overlapping_walls_0_enabled": { "value": "False" }, + + "z_seam_type": { "value": "'back'" }, + "z_seam_corner": { "value": "'z_seam_corner_weighted'" }, + + "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": "'nowhere'" }, + "fill_outline_gaps": { "value": true }, + "filter_out_tiny_gaps": { "value": false }, + + "retraction_speed": { + "deafult_value": 40, + "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 + }, + + "alternate_extra_perimeter": { "default_value": true }, + "roofing_layer_count": { "value": 1 }, + "infill_enable_travel_optimization": { "default_value": true }, + "minimum_polygon_circumference": { "default_value": 0.2 }, + "wall_overhang_angle": { "default_value": 75 }, + "wall_overhang_speed_factor": { "default_value": 50 }, + + "retraction_hop_enabled": { "value": "False" }, + "retraction_hop": { "value": 0.2 }, + "retraction_combing": { + "value": "'off' if retraction_hop_enabled else 'noskin'" + }, + "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_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": "'skirt'" }, + "brim_replaces_support": { "value": false }, + "skirt_gap": { "value": 10.0 }, + "skirt_line_count": { "value": 3 }, + + "adaptive_layer_height_variation": { "value": 0.04 }, + "adaptive_layer_height_variation_step": { "value": 0.04 }, + + "meshfix_maximum_resolution": { "value": "0.01" }, + "meshfix_maximum_travel_resolution": { + "value": "meshfix_maximum_resolution" + }, + + "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_enable and support_structure == 'tree' 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_top_distance": { + "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)" + }, + "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": 2 }, + "minimum_interface_area": { "value": 10 }, + "top_layers": { + "value": "math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))" + }, + "bottom_layers": { + "value": "math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))" + }, + "wall_thickness": { "value": "line_width * 2" }, + + "skin_monotonic" : { "value": true } + } +} diff --git a/resources/definitions/blocks_mkii.def.json b/resources/definitions/blocks_mkii.def.json new file mode 100644 index 0000000000..93de24a694 --- /dev/null +++ b/resources/definitions/blocks_mkii.def.json @@ -0,0 +1,34 @@ +{ + "name": "Blocks One MKII", + "version": 2, + "inherits": "blocks_base", + "metadata": { + "visible": true, + + "quality_definition": "blocks_base", + + "platform": "blocks_mk2_platform.stl", + + "machine_extruder_trains": { + "0": "blocks_mkii_extruder_0" + } + }, + "overrides": { + "machine_name": { "default_value": "Blocks One MKII" }, + + "machine_width": { "default_value": 200 }, + "machine_height": { "default_value": 210 }, + "machine_depth": { "default_value": 210 }, + + "retraction_retract_speed": { "value": 50, "maximum_value_warning": 130 }, + "retraction_prime_speed": { "value": 20, "maximum_value_warning": 130 }, + "speed_print": { "value": 50 }, + + "machine_start_gcode": { + "default_value": "G21\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29\nG1 X-14 Y0 F6000\nG1 Z0.1\nG92 E0 ;zero the extruded length\nG1 F2000 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z0.2 F6000\nG1 F6000\nM117 Printing...\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F6000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\n" + } + } +} diff --git a/resources/definitions/blocks_pros100.def.json b/resources/definitions/blocks_pros100.def.json new file mode 100644 index 0000000000..a70f3fdb04 --- /dev/null +++ b/resources/definitions/blocks_pros100.def.json @@ -0,0 +1,36 @@ +{ + "name": "Blocks Pro S100", + "version": 2, + "inherits": "blocks_base", + "metadata": { + "visible": true, + + "quality_definition": "blocks_base", + + "preferred_variant_name": "0.8mm Nozzle", + + "platform": "blocks_pros100_platform.stl", + + "machine_extruder_trains": { + "0": "blocks_pros100_extruder_0" + } + }, + "overrides": { + "machine_name": { "default_value": "Blocks Pro S100" }, + + "machine_width": { "default_value": 1000 }, + "machine_height": { "default_value": 1000 }, + "machine_depth": { "default_value": 1000 }, + + "retraction_retract_speed": { "value": 50, "maximum_value_warning": 130 }, + "retraction_prime_speed": { "value": 20, "maximum_value_warning": 130 }, + "speed_print": { "value": 50 }, + + "machine_start_gcode": { + "default_value": "G21\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29\nG1 X-14 Y0 F6000\nG1 Z0.1\nG92 E0 ;zero the extruded length\nG1 F2000 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z0.2 F6000\nG1 F6000\nM117 Printing...\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F6000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\n" + } + } +} diff --git a/resources/definitions/blocks_pros30.def.json b/resources/definitions/blocks_pros30.def.json new file mode 100644 index 0000000000..426cb118ca --- /dev/null +++ b/resources/definitions/blocks_pros30.def.json @@ -0,0 +1,36 @@ +{ + "version": 2, + "name": "Blocks Pro S30", + "inherits": "blocks_base", + "metadata": { + "visible": true, + + "quality_definition": "blocks_base", + + "platform": "blocks_pros30_platform.stl", + + "machine_extruder_trains": { + "0": "blocks_pros30_extruder_0" + + + } + }, + "overrides": { + "machine_name": { "default_value": "Blocks Pro S30" }, + + "machine_width": { "default_value": 310 }, + "machine_height": { "default_value": 290 }, + "machine_depth": { "default_value": 310 }, + + "retraction_retract_speed": { "value": 40, "maximum_value_warning": 130 }, + "retraction_prime_speed": { "value": 20, "maximum_value_warning": 130 }, + "speed_print": { "value": 50 }, + + "machine_start_gcode": { + "default_value": "G21\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29\nG1 X-14 Y0 F6000\nG1 Z0.1\nG92 E0 ;zero the extruded length\nG1 F2000 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z0.2 F6000\nG1 F6000\nM117 Printing...\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F6000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\n" + } + } +} diff --git a/resources/definitions/blocks_r21.def.json b/resources/definitions/blocks_r21.def.json new file mode 100644 index 0000000000..ccd0386d2a --- /dev/null +++ b/resources/definitions/blocks_r21.def.json @@ -0,0 +1,41 @@ +{ + "name": "Blocks R21", + "version": 2, + "inherits": "blocks_base", + "metadata": { + "visible": true, + "first_start_actions": ["MachineSettingsAction"], + "has_materials": true, + "has_variants": true, + "has_machine_quality": true, + "preferred_variant_name": "ST - 0.4mm", + "preferred_quality_type": "normal", + "preferred_material": "generic_pla", + "variants_name": "Print Core", + "quality_definition": "blocks_base", + + "platform": "blocks_r21_platform.stl", + + "machine_extruder_trains": { + "0": "blocks_r21_extruder_0" + } + }, + "overrides": { + "machine_name": { "default_value": "Blocks R21" }, + + "machine_width": { "default_value": 300 }, + "machine_height": { "default_value": 250 }, + "machine_depth": { "default_value": 210 }, + + "retraction_retract_speed": { "value": 50, "maximum_value_warning": 130 }, + "retraction_prime_speed": { "value": 20, "maximum_value_warning": 130 }, + "speed_print": { "value": 50 }, + + "machine_start_gcode": { + "default_value": "G21\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29\nG1 X-14 Y0 F6000\nG1 Z0.1\nG92 E0 ;zero the extruded length\nG1 F2000 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z0.2 F6000\nG1 F6000\nM117 Printing...\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F6000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\n" + } + } +} diff --git a/resources/definitions/blocks_zero.def.json b/resources/definitions/blocks_zero.def.json new file mode 100644 index 0000000000..a34d557288 --- /dev/null +++ b/resources/definitions/blocks_zero.def.json @@ -0,0 +1,36 @@ +{ + "name": "Blocks Zero", + "version": 2, + "inherits": "blocks_base", + "metadata": { + "visible": true, + + "quality_definition": "blocks_base", + + "platform": "blocks_zero_platform.stl", + + "machine_extruder_trains": { + "0": "blocks_zero_extruder_0" + } + }, + "overrides": { + "machine_name": { "default_value": "Blocks Zero" }, + + "machine_heated_bed": { "default_value": false }, + + "machine_width": { "default_value": 120 }, + "machine_height": { "default_value": 120 }, + "machine_depth": { "default_value": 140 }, + + "retraction_retract_speed": { "value": 50, "maximum_value_warning": 130 }, + "retraction_prime_speed": { "value": 20, "maximum_value_warning": 130 }, + "speed_print": { "value": 50 }, + + "machine_start_gcode": { + "default_value": "G21\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29\nG1 X-14 Y0 F6000\nG1 Z0.1\nG92 E0 ;zero the extruded length\nG1 F2000 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z0.2 F6000\nG1 F6000\nM117 Printing...\n" + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F6000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\n" + } + } +}