diff --git a/.github/workflows/printer-linter-format.yml b/.github/workflows/printer-linter-format.yml index df4e049755..e5e1b5b1d6 100644 --- a/.github/workflows/printer-linter-format.yml +++ b/.github/workflows/printer-linter-format.yml @@ -3,7 +3,11 @@ name: printer-linter-format on: push: paths: - - 'resources/**' + - 'resources/definitions/**' + - 'resources/extruders/**' + - 'resources/intent/**' + - 'resources/quality/**' + - 'resources/variants/**' jobs: printer-linter-format: diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja index 74e4fd098b..5eb01845c1 100644 --- a/UltiMaker-Cura.spec.jinja +++ b/UltiMaker-Cura.spec.jinja @@ -16,9 +16,9 @@ datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2] # Add dynamic libs in the venv bin/Script Path. This is needed because we might copy some additional libs # e.q.: OpenSSL 1.1.1l in that directory with a separate: # `conan install openssl@1.1.1l -g deploy && cp openssl/bin/*.so cura_inst/bin` -binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.so*")]) -binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.dll")]) -binaries.extend([(str(bin), ".") for bin in Path("{{ venv_script_path }}").glob("*.dylib")]) +binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.so*")]) +binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.dll")]) +binaries.extend([(str(bin), ".") for bin in Path(r"{{ venv_script_path }}").glob("*.dylib")]) block_cipher = None diff --git a/packaging/msi/CustomizeCuraDlg.wxs b/packaging/msi/CustomizeCuraDlg.wxs index aed5af8055..a9f1d7c462 100644 --- a/packaging/msi/CustomizeCuraDlg.wxs +++ b/packaging/msi/CustomizeCuraDlg.wxs @@ -27,7 +27,6 @@ 1 - @@ -41,6 +40,7 @@ + diff --git a/packaging/msi/ExcludeComponents.xslt b/packaging/msi/ExcludeComponents.xslt new file mode 100644 index 0000000000..b964484922 --- /dev/null +++ b/packaging/msi/ExcludeComponents.xslt @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packaging/msi/UltiMaker-Cura.wxs.jinja b/packaging/msi/UltiMaker-Cura.wxs.jinja index 56b0458257..44a45297c2 100644 --- a/packaging/msi/UltiMaker-Cura.wxs.jinja +++ b/packaging/msi/UltiMaker-Cura.wxs.jinja @@ -1,5 +1,5 @@ - + + Comments="Copyright (c) {{ year }} UltiMaker B.V." /> @@ -28,6 +28,8 @@ IncludeMinimum="no" IncludeMaximum="no" /> + + {% if "Enterpise" in app_name %} @@ -84,13 +86,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/msi/create_windows_msi.py b/packaging/msi/create_windows_msi.py index f7c9e19450..d2d3a7bfd5 100644 --- a/packaging/msi/create_windows_msi.py +++ b/packaging/msi/create_windows_msi.py @@ -57,26 +57,47 @@ def generate_wxs(source_path: Path, dist_path: Path, filename: Path, app_name: s except shutil.SameFileError: pass + try: + shutil.copy(source_loc.joinpath("packaging", "msi", "ExcludeComponents.xslt"), + work_loc.joinpath("ExcludeComponents.xslt")) + except shutil.SameFileError: + pass + + +def cleanup_artifacts(dist_path: Path): + dist_loc = Path(os.getcwd(), dist_path) + dirt = [d for d in dist_loc.rglob("__pycache__") if d.is_dir()] + dirt += [d for d in dist_loc.rglob("*.dist-info") if d.is_dir()] + for d in dirt: + if d.exists(): + shutil.rmtree(d, ignore_errors=True) + def build(dist_path: Path, filename: str): dist_loc = Path(os.getcwd(), dist_path) work_loc = work_path(filename) wxs_loc = work_loc.joinpath("UltiMaker-Cura.wxs") heat_loc = work_loc.joinpath("HeatFile.wxs") + exclude_components_loc = work_loc.joinpath("ExcludeComponents.xslt") manageoldcuradlg_loc = work_loc.joinpath("CustomizeCuraDlg.wxs") build_loc = work_loc.joinpath("build_msi") heat_command = ["heat", "dir", f"{dist_loc.as_posix()}\\", "-dr", "APPLICATIONFOLDER", "-cg", "NewFilesGroup", - "-gg", "-g1", "-sf", "-srd", "-var", "var.CuraDir", "-out", f"{heat_loc.as_posix()}"] + "-gg", "-g1", "-sf", "-srd", "-var", "var.CuraDir", "-t", f"{exclude_components_loc.as_posix()}", + "-out", f"{heat_loc.as_posix()}"] subprocess.call(heat_command) - build_command = ["candle", "-arch", "x64", f"-dCuraDir={dist_loc}\\", "-out", f"{build_loc.as_posix()}\\", + build_command = ["candle", "-arch", "x64", f"-dCuraDir={dist_loc}\\", + "-ext", "WixFirewallExtension", + "-out", f"{build_loc.as_posix()}\\", f"{wxs_loc.as_posix()}", f"{heat_loc.as_posix()}", f"{manageoldcuradlg_loc.as_posix()}"] subprocess.call(build_command) link_command = ["light", f"{build_loc.joinpath(wxs_loc.name).with_suffix('.wixobj')}", f"{build_loc.joinpath(heat_loc.name).with_suffix('.wixobj')}", - f"{build_loc.joinpath(manageoldcuradlg_loc.name).with_suffix('.wixobj')}", "-ext", "WixUIExtension", + f"{build_loc.joinpath(manageoldcuradlg_loc.name).with_suffix('.wixobj')}", + "-ext", "WixUIExtension", + "-ext", "WixFirewallExtension", "-out", f"{work_loc.joinpath(filename.name)}"] subprocess.call(link_command) @@ -89,5 +110,6 @@ if __name__ == "__main__": help="Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.msi')") parser.add_argument("name", type=str, help="App name (e.g. 'UltiMaker Cura')") args = parser.parse_args() - generate_wxs(args.source_path, args.dist_path, args.filename, args.name) - build(args.dist_path, args.filename) + generate_wxs(args.source_path.resolve(), args.dist_path.resolve(), args.filename.resolve(), args.name) + cleanup_artifacts(args.dist_path.resolve()) + build(args.dist_path.resolve(), args.filename) diff --git a/plugins/PostProcessingPlugin/scripts/FilamentChange.py b/plugins/PostProcessingPlugin/scripts/FilamentChange.py index ff62e1949c..ef85d5ae36 100644 --- a/plugins/PostProcessingPlugin/scripts/FilamentChange.py +++ b/plugins/PostProcessingPlugin/scripts/FilamentChange.py @@ -24,20 +24,29 @@ class FilamentChange(Script): "version": 2, "settings": { + "enabled": + { + "label": "Enable", + "description": "Uncheck to temporarily disable this feature.", + "type": "bool", + "default_value": true + }, "layer_number": { "label": "Layer", "description": "At what layer should color change occur. This will be before the layer starts printing. Specify multiple color changes with a comma.", "unit": "", "type": "str", - "default_value": "1" + "default_value": "1", + "enabled": "enabled" }, "firmware_config": { "label": "Use Firmware Configuration", "description": "Use the settings in your firmware, or customise the parameters of the filament change here.", "type": "bool", - "default_value": false + "default_value": false, + "enabled": "enabled" }, "initial_retract": { @@ -46,7 +55,7 @@ class FilamentChange(Script): "unit": "mm", "type": "float", "default_value": 30.0, - "enabled": "not firmware_config" + "enabled": "enabled and not firmware_config" }, "later_retract": { @@ -55,7 +64,7 @@ class FilamentChange(Script): "unit": "mm", "type": "float", "default_value": 300.0, - "enabled": "not firmware_config" + "enabled": "enabled and not firmware_config" }, "x_position": { @@ -64,7 +73,7 @@ class FilamentChange(Script): "unit": "mm", "type": "float", "default_value": 0, - "enabled": "not firmware_config" + "enabled": "enabled and not firmware_config" }, "y_position": { @@ -73,7 +82,7 @@ class FilamentChange(Script): "unit": "mm", "type": "float", "default_value": 0, - "enabled": "not firmware_config" + "enabled": "enabled and not firmware_config" }, "z_position": { @@ -82,7 +91,8 @@ class FilamentChange(Script): "unit": "mm", "type": "float", "default_value": 0, - "minimum_value": 0 + "minimum_value": 0, + "enabled": "enabled" }, "retract_method": { @@ -92,7 +102,7 @@ class FilamentChange(Script): "options": {"U": "Marlin (M600 U)", "L": "Reprap (M600 L)"}, "default_value": "U", "value": "\\\"L\\\" if machine_gcode_flavor==\\\"RepRap (RepRap)\\\" else \\\"U\\\"", - "enabled": "not firmware_config" + "enabled": "enabled and not firmware_config" }, "machine_gcode_flavor": { @@ -113,6 +123,40 @@ class FilamentChange(Script): }, "default_value": "RepRap (Marlin/Sprinter)", "enabled": "false" + }, + "enable_before_macro": + { + "label": "Enable G-code Before", + "description": "Use this to insert a custom G-code macro before the filament change happens", + "type": "bool", + "default_value": false, + "enabled": "enabled" + }, + "before_macro": + { + "label": "G-code Before", + "description": "Any custom G-code to run before the filament change happens, for example, M300 S1000 P10000 for a long beep.", + "unit": "", + "type": "str", + "default_value": "M300 S1000 P10000", + "enabled": "enabled and enable_before_macro" + }, + "enable_after_macro": + { + "label": "Enable G-code After", + "description": "Use this to insert a custom G-code macro after the filament change", + "type": "bool", + "default_value": false, + "enabled": "enabled" + }, + "after_macro": + { + "label": "G-code After", + "description": "Any custom G-code to run after the filament has been changed right before continuing the print, for example, you can add a sequence to purge filament and wipe the nozzle.", + "unit": "", + "type": "str", + "default_value": "M300 S440 P500", + "enabled": "enabled and enable_after_macro" } } }""" @@ -134,6 +178,7 @@ class FilamentChange(Script): :param data: A list of layers of g-code. :return: A similar list, with filament change commands inserted. """ + enabled = self.getSettingValueByKey("enabled") layer_nums = self.getSettingValueByKey("layer_number") initial_retract = self.getSettingValueByKey("initial_retract") later_retract = self.getSettingValueByKey("later_retract") @@ -141,8 +186,20 @@ class FilamentChange(Script): y_pos = self.getSettingValueByKey("y_position") z_pos = self.getSettingValueByKey("z_position") firmware_config = self.getSettingValueByKey("firmware_config") + enable_before_macro = self.getSettingValueByKey("enable_before_macro") + before_macro = self.getSettingValueByKey("before_macro") + enable_after_macro = self.getSettingValueByKey("enable_after_macro") + after_macro = self.getSettingValueByKey("after_macro") - color_change = "M600" + if not enabled: + return data + + color_change = ";BEGIN FilamentChange plugin\n" + + if enable_before_macro: + color_change = color_change + before_macro + "\n" + + color_change = color_change + "M600\n" if not firmware_config: if initial_retract is not None and initial_retract > 0.: @@ -163,7 +220,10 @@ class FilamentChange(Script): if z_pos is not None and z_pos > 0.: color_change = color_change + (" Z%.2f" % z_pos) - color_change = color_change + " ; Generated by FilamentChange plugin\n" + if enable_after_macro: + color_change = color_change + after_macro + "\n" + + color_change = color_change + ";END FilamentChange plugin\n" layer_targets = layer_nums.split(",") if len(layer_targets) > 0: diff --git a/requirements-dev.txt b/requirements-dev.txt index b1e52571ca..cd7b19e389 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ pytest -pyinstaller +pyinstaller==5.6.2 pyinstaller-hooks-contrib pyyaml sip==6.5.1 diff --git a/resources/definitions/modix_v3_base.def.json b/resources/definitions/modix_v3_base.def.json new file mode 100644 index 0000000000..52763c2e98 --- /dev/null +++ b/resources/definitions/modix_v3_base.def.json @@ -0,0 +1,88 @@ +{ + "version": 2, + "name": "Modix Base Printer", + "inherits": "fdmprinter", + "metadata": + { + "author": "Modix", + "manufacturer": "Modix", + "file_formats": "text/x-gcode", + "has_variants": true, + "machine_extruder_trains": + { + "0": "modix_v3_extruder_0", + "1": "modix_v3_extruder_1" + }, + "preferred_variant_name": "0.4 mm Nozzle", + "variants_name": "Nozzle Size" + }, + "overrides": + { + "adhesion_type": { "default_value": "skirt" }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "fill_outline_gaps": { "value": false }, + "gantry_height": { "value": "90.0" }, + "infill_before_walls": { "value": false }, + "infill_overlap": { "value": 30.0 }, + "infill_pattern": { "value": "'cubic'" }, + "infill_sparse_density": { "value": "15" }, + "layer_height_0": { "value": "round(machine_nozzle_size / 2, 1)" }, + "line_width": { "value": "machine_nozzle_size * 1.05" }, + "machine_end_gcode": { "default_value": "M83 ; extruder relative moves \nG1 E-5 F2700 ;retract a bit \nG10 P0 S0 R0 ; turn off extruder 0 \nG10 P1 S0 R0 ; turn off extruder 1 \nM106 S0 ; turn off fans \nT-1 P0 ; deselect any tools \nG4 P1 ; dwell 1ms \nG91 ;relative positioning \nG1 Z2 F500 ; Move print head up 2mm \nG90 ; absolute positioning \nG1 X{move.axes[0].min+2} Y{move.axes[1].max-2} F6000 ; move to the back left \nM84 ; disable motors" }, + "machine_gcode_flavor": { "default_value": "RepRap (RepRap)" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-100, 30], + [-100, 65], + [30, -105], + [-31, -100] + ] + }, + "machine_name": { "default_value": "Modix Base Printer" }, + "machine_start_gcode": { "default_value": "G28 ; home all axes" }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "minimum_interface_area": { "value": 10 }, + "minimum_support_area": { "value": 2 }, + "optimize_wall_printing_order": { "value": "True" }, + "retraction_amount": { "value": 1 }, + "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'" }, + "retraction_combing_max_distance": { "value": 5 }, + "retraction_count_max": { "value": 50 }, + "retraction_extrusion_window": { "value": 1 }, + "retraction_hop": { "value": "layer_height*4" }, + "retraction_hop_enabled": { "value": "support_enable" }, + "retraction_prime_speed": { "value": 40 }, + "retraction_retract_speed": { "value": 40 }, + "retraction_speed": { "default_value": 40 }, + "skin_overlap": { "value": 10.0 }, + "skirt_brim_minimal_length": { "default_value": 200 }, + "skirt_gap": { "value": 5.0 }, + "skirt_line_count": { "value": 3 }, + "speed_layer_0": { "value": 20.0 }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_travel": { "value": 110.0 }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_z_hop": { "value": 5 }, + "support_angle": { "value": 55 }, + "support_brim_enable": { "value": true }, + "support_brim_width": { "value": 5 }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 15" }, + "support_interface_density": { "value": 40 }, + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 3" }, + "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.2 else layer_height * 2" }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" }, + "travel_avoid_supports": { "value": true }, + "travel_retract_before_outer_wall": { "value": true }, + "wall_thickness": { "value": "line_width * 2" }, + "z_seam_corner": { "value": "z_seam_corner_weighted" } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big120X.def.json b/resources/definitions/modix_v3_big120X.def.json new file mode 100644 index 0000000000..9501ca96e1 --- /dev/null +++ b/resources/definitions/modix_v3_big120X.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-120X", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 640 }, + "machine_name": { "default_value": "Modix BIG-120X V3" }, + "machine_width": { "default_value": 1200 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big120Z.def.json b/resources/definitions/modix_v3_big120Z.def.json new file mode 100644 index 0000000000..132ca0cd5f --- /dev/null +++ b/resources/definitions/modix_v3_big120Z.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-120Z", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 1200 }, + "machine_name": { "default_value": "Modix BIG-120Z V3" }, + "machine_width": { "default_value": 600 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big180X.def.json b/resources/definitions/modix_v3_big180X.def.json new file mode 100644 index 0000000000..18f3d0521f --- /dev/null +++ b/resources/definitions/modix_v3_big180X.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-180X", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 600 }, + "machine_name": { "default_value": "Modix BIG-180X V3" }, + "machine_width": { "default_value": 1800 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big40.def.json b/resources/definitions/modix_v3_big40.def.json new file mode 100644 index 0000000000..8a44d919c2 --- /dev/null +++ b/resources/definitions/modix_v3_big40.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-40", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 400 }, + "machine_height": { "default_value": 800 }, + "machine_name": { "default_value": "Modix BIG-40 V3" }, + "machine_width": { "default_value": 400 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big60.def.json b/resources/definitions/modix_v3_big60.def.json new file mode 100644 index 0000000000..3db8825e61 --- /dev/null +++ b/resources/definitions/modix_v3_big60.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-60", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 660 }, + "machine_name": { "default_value": "Modix BIG-60 V3" }, + "machine_width": { "default_value": 600 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v3_big_meter.def.json b/resources/definitions/modix_v3_big_meter.def.json new file mode 100644 index 0000000000..d6d2c968b9 --- /dev/null +++ b/resources/definitions/modix_v3_big_meter.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V3 BIG-Meter", + "inherits": "modix_v3_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 1000 }, + "machine_height": { "default_value": 1000 }, + "machine_name": { "default_value": "Modix BIG-METER V3" }, + "machine_width": { "default_value": 1000 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_base.def.json b/resources/definitions/modix_v4_base.def.json new file mode 100644 index 0000000000..7f02674355 --- /dev/null +++ b/resources/definitions/modix_v4_base.def.json @@ -0,0 +1,88 @@ +{ + "version": 2, + "name": "Modix Base Printer", + "inherits": "fdmprinter", + "metadata": + { + "author": "Modix", + "manufacturer": "Modix", + "file_formats": "text/x-gcode", + "has_variants": true, + "machine_extruder_trains": + { + "0": "modix_v4_extruder_0", + "1": "modix_v4_extruder_1" + }, + "preferred_variant_name": "0.4 mm Nozzle", + "variants_name": "Nozzle Size" + }, + "overrides": + { + "adhesion_type": { "default_value": "skirt" }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "fill_outline_gaps": { "value": false }, + "gantry_height": { "value": "90.0" }, + "infill_before_walls": { "value": false }, + "infill_overlap": { "value": 30.0 }, + "infill_pattern": { "value": "'cubic'" }, + "infill_sparse_density": { "value": "15" }, + "layer_height_0": { "value": "round(machine_nozzle_size / 2, 1)" }, + "line_width": { "value": "machine_nozzle_size * 1.05" }, + "machine_end_gcode": { "default_value": "M83 ; extruder relative moves \nG1 E-5 F2700 ;retract a bit \nG10 P0 S0 R0 ; turn off extruder 0 \nM106 S0 ; turn off fans \nT-1 P0 ; deselect any tools \nG4 P1 ; dwell 1ms \nG91 ;relative positioning \nG1 Z2 F500 ; Move print head up 2mm \nG90 ; absolute positioning \nG1 X{move.axes[0].min+2} Y{move.axes[1].max-2} F6000 ; move to the back left \nM84 ; disable motors" }, + "machine_gcode_flavor": { "default_value": "RepRap (RepRap)" }, + "machine_head_with_fans_polygon": + { + "default_value": [ + [-100, 30], + [-100, 65], + [30, -105], + [-31, -100] + ] + }, + "machine_name": { "default_value": "Modix Base Printer" }, + "machine_start_gcode": { "default_value": "G28 ; home all axes" }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "minimum_interface_area": { "value": 10 }, + "minimum_support_area": { "value": 2 }, + "optimize_wall_printing_order": { "value": "True" }, + "retraction_amount": { "value": 1 }, + "retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'" }, + "retraction_combing_max_distance": { "value": 5 }, + "retraction_count_max": { "value": 50 }, + "retraction_extrusion_window": { "value": 1 }, + "retraction_hop": { "value": 2 }, + "retraction_hop_enabled": { "value": "support_enable" }, + "retraction_prime_speed": { "value": 40 }, + "retraction_retract_speed": { "value": 40 }, + "retraction_speed": { "default_value": 40 }, + "skin_overlap": { "value": 10.0 }, + "skirt_brim_minimal_length": { "default_value": 200 }, + "skirt_gap": { "value": 5.0 }, + "skirt_line_count": { "value": 3 }, + "speed_layer_0": { "value": 20.0 }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_travel": { "value": 250.0 }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_z_hop": { "value": 5 }, + "support_angle": { "value": 55 }, + "support_brim_enable": { "value": true }, + "support_brim_width": { "value": 5 }, + "support_infill_rate": { "value": "0 if support_enable and support_structure == 'tree' else 15" }, + "support_interface_density": { "value": 40 }, + "support_interface_enable": { "value": true }, + "support_interface_height": { "value": "layer_height * 3" }, + "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.2 else layer_height * 2" }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * 3" }, + "travel_avoid_supports": { "value": true }, + "travel_retract_before_outer_wall": { "value": true }, + "wall_thickness": { "value": "line_width * 2" }, + "z_seam_corner": { "value": "z_seam_corner_weighted" } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_big120X.def.json b/resources/definitions/modix_v4_big120X.def.json new file mode 100644 index 0000000000..792d158ba4 --- /dev/null +++ b/resources/definitions/modix_v4_big120X.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V4 BIG-120X", + "inherits": "modix_v4_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 640 }, + "machine_name": { "default_value": "Modix BIG-120X V4" }, + "machine_width": { "default_value": 1200 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_big120Z.def.json b/resources/definitions/modix_v4_big120Z.def.json new file mode 100644 index 0000000000..fa568f0423 --- /dev/null +++ b/resources/definitions/modix_v4_big120Z.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V4 BIG-120Z", + "inherits": "modix_v4_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 1200 }, + "machine_name": { "default_value": "Modix BIG-120Z V4" }, + "machine_width": { "default_value": 600 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_big180X.def.json b/resources/definitions/modix_v4_big180X.def.json new file mode 100644 index 0000000000..52b8d7a1c4 --- /dev/null +++ b/resources/definitions/modix_v4_big180X.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V4 BIG-180X", + "inherits": "modix_v4_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 600 }, + "machine_name": { "default_value": "Modix BIG-180X V4" }, + "machine_width": { "default_value": 1800 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_big60.def.json b/resources/definitions/modix_v4_big60.def.json new file mode 100644 index 0000000000..6ff69ce1bf --- /dev/null +++ b/resources/definitions/modix_v4_big60.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V4 BIG-60", + "inherits": "modix_v4_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 600 }, + "machine_height": { "default_value": 660 }, + "machine_name": { "default_value": "Modix BIG-60 V4" }, + "machine_width": { "default_value": 600 } + } +} \ No newline at end of file diff --git a/resources/definitions/modix_v4_big_meter.def.json b/resources/definitions/modix_v4_big_meter.def.json new file mode 100644 index 0000000000..849807c27f --- /dev/null +++ b/resources/definitions/modix_v4_big_meter.def.json @@ -0,0 +1,13 @@ +{ + "version": 2, + "name": "Modix V4 BIG-Meter", + "inherits": "modix_v4_base", + "metadata": { "visible": true }, + "overrides": + { + "machine_depth": { "default_value": 1000 }, + "machine_height": { "default_value": 1000 }, + "machine_name": { "default_value": "Modix BIG-METER V4" }, + "machine_width": { "default_value": 1000 } + } +} \ No newline at end of file diff --git a/resources/extruders/modix_v3_extruder_0.def.json b/resources/extruders/modix_v3_extruder_0.def.json new file mode 100644 index 0000000000..7b983e06b2 --- /dev/null +++ b/resources/extruders/modix_v3_extruder_0.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Left Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "modix_v3_base", + "position": "0" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 0, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/extruders/modix_v3_extruder_1.def.json b/resources/extruders/modix_v3_extruder_1.def.json new file mode 100644 index 0000000000..0d218e8168 --- /dev/null +++ b/resources/extruders/modix_v3_extruder_1.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Right Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "modix_v3_base", + "position": "1" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 1, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/extruders/modix_v4_extruder_0.def.json b/resources/extruders/modix_v4_extruder_0.def.json new file mode 100644 index 0000000000..bce44abe0f --- /dev/null +++ b/resources/extruders/modix_v4_extruder_0.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Left Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "modix_v4_base", + "position": "0" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 0, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/extruders/modix_v4_extruder_1.def.json b/resources/extruders/modix_v4_extruder_1.def.json new file mode 100644 index 0000000000..bae7499c45 --- /dev/null +++ b/resources/extruders/modix_v4_extruder_1.def.json @@ -0,0 +1,19 @@ +{ + "version": 2, + "name": "Right Extruder", + "inherits": "fdmextruder", + "metadata": + { + "machine": "modix_v4_base", + "position": "1" + }, + "overrides": + { + "extruder_nr": + { + "default_value": 1, + "maximum_value": "1" + }, + "material_diameter": { "default_value": 1.75 } + } +} \ No newline at end of file diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 6e36587b23..669fd1041e 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -17,6 +17,12 @@ UM.MainWindow { id: base + Item + { + id: mainWindow + anchors.fill: parent + } + // Cura application window title title: { diff --git a/resources/qml/ExtruderIcon.qml b/resources/qml/ExtruderIcon.qml index c59521cdc3..3231d924ee 100644 --- a/resources/qml/ExtruderIcon.qml +++ b/resources/qml/ExtruderIcon.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.11 @@ -12,7 +12,7 @@ Item property color materialColor property alias textColor: extruderNumberText.color property bool extruderEnabled: true - property var iconSize: UM.Theme.getSize("extruder_icon").width + property int iconSize: UM.Theme.getSize("extruder_icon").width property string iconVariant: "medium" property alias font: extruderNumberText.font @@ -36,7 +36,6 @@ Item } UM.ColorImage { - id: mainIcon anchors.fill: parent width: iconSize height: iconSize @@ -48,12 +47,14 @@ Item UM.Label { id: extruderNumberText - anchors.centerIn: parent - text: index + 1 - font: UM.Theme.getFont("small_emphasis") width: contentWidth height: contentHeight + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.right: parent.right horizontalAlignment: Text.AlignHCenter + text: (index + 1).toString() + font: UM.Theme.getFont("small_emphasis") } } } diff --git a/resources/qml/Menus/MaterialBrandMenu.qml b/resources/qml/Menus/MaterialBrandMenu.qml index e256e75904..83a6959183 100644 --- a/resources/qml/Menus/MaterialBrandMenu.qml +++ b/resources/qml/Menus/MaterialBrandMenu.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 @@ -36,6 +36,7 @@ Cura.MenuItem UM.Label { + id: brandLabelText text: replaceText(materialBrandMenu.text) Layout.fillWidth: true Layout.fillHeight:true @@ -84,33 +85,15 @@ Cura.MenuItem onTriggered: menuPopup.close() } - Popup + MaterialBrandSubMenu { id: menuPopup - width: materialTypesList.width + padding * 2 - height: materialTypesList.height + padding * 2 - property var flipped: false - - x: parent.width - UM.Theme.getSize("default_lining").width - y: { - // Checks if popup is more than halfway down the screen AND further than 400 down (this avoids popup going off the top of screen) - // If it is then the popup will push up instead of down - // This fixes the popups appearing bellow the bottom of the screen. - - if (materialBrandMenu.parent.height / 2 < parent.y && parent.y > 400) { - flipped = true - return -UM.Theme.getSize("default_lining").width - height + UM.Theme.getSize("menu").height - } - flipped = false - return -UM.Theme.getSize("default_lining").width - } - - padding: background.border.width // Nasty hack to ensure that we can keep track if the popup contains the mouse. // Since we also want a hover for the sub items (and these events are sent async) // We have to keep a count of itemHovered (instead of just a bool) property int itemHovered: 0 + MouseArea { id: submenuArea @@ -120,16 +103,11 @@ Cura.MenuItem onEntered: hideTimer.restartTimer() } - background: Rectangle - { - color: UM.Theme.getColor("main_background") - border.color: UM.Theme.getColor("lining") - border.width: UM.Theme.getSize("default_lining").width - } - Column { id: materialTypesList + width: UM.Theme.getSize("menu").width + height: childrenRect.height spacing: 0 property var brandMaterials: materialTypesModel.material_types @@ -146,9 +124,7 @@ Cura.MenuItem height: UM.Theme.getSize("menu").height width: UM.Theme.getSize("menu").width - color: materialTypeButton.containsMouse ? UM.Theme.getColor("background_2") : UM.Theme.getColor("background_1") - - property var isFlipped: menuPopup.flipped + color: materialTypeButton.containsMouse ? UM.Theme.getColor("background_2") : "transparent" RowLayout { @@ -185,7 +161,7 @@ Cura.MenuItem source: UM.Theme.getIcon("ChevronSingleRight") } - Item + Item { // Right side margin width: UM.Theme.getSize("default_margin").width @@ -236,34 +212,17 @@ Cura.MenuItem onTriggered: colorPopup.close() } - Popup + MaterialBrandSubMenu { id: colorPopup - width: materialColorsList.width + padding * 2 - height: materialColorsList.height + padding * 2 - x: parent.width - y: { - // If flipped the popup should push up rather than down from the parent - if (brandMaterialBase.isFlipped) { - return -height + UM.Theme.getSize("menu").height + UM.Theme.getSize("default_lining").width - } - return -UM.Theme.getSize("default_lining").width - } - property int itemHovered: 0 - padding: background.border.width - - background: Rectangle - { - color: UM.Theme.getColor("main_background") - border.color: UM.Theme.getColor("lining") - border.width: UM.Theme.getSize("default_lining").width - } Column { id: materialColorsList property var brandColors: model.colors + width: UM.Theme.getSize("menu").width + height: childrenRect.height spacing: 0 Repeater @@ -273,12 +232,38 @@ Cura.MenuItem delegate: Rectangle { height: UM.Theme.getSize("menu").height - width: UM.Theme.getSize("menu").width + width: parent.width - color: materialColorButton.containsMouse ? UM.Theme.getColor("background_2") : UM.Theme.getColor("background_1") + color: materialColorButton.containsMouse ? UM.Theme.getColor("background_2") : UM.Theme.getColor("main_background") + + MouseArea + { + id: materialColorButton + anchors.fill: parent + hoverEnabled: true + onClicked: + { + Cura.MachineManager.setMaterial(extruderIndex, model.container_node); + menuPopup.close(); + colorPopup.close(); + materialMenu.close(); + } + onEntered: + { + menuPopup.itemHovered += 1; + colorPopup.itemHovered += 1; + } + onExited: + { + menuPopup.itemHovered -= 1; + colorPopup.itemHovered -= 1; + } + } Item { + height: parent.height + width: parent.width opacity: materialBrandMenu.enabled ? 1 : 0.5 anchors.fill: parent @@ -309,31 +294,6 @@ Cura.MenuItem wrapMode: Text.NoWrap } } - - MouseArea - { - id: materialColorButton - anchors.fill: parent - - hoverEnabled: true - onClicked: - { - Cura.MachineManager.setMaterial(extruderIndex, model.container_node); - menuPopup.close(); - colorPopup.close(); - materialMenu.close(); - } - onEntered: - { - menuPopup.itemHovered += 1; - colorPopup.itemHovered += 1; - } - onExited: - { - menuPopup.itemHovered -= 1; - colorPopup.itemHovered -= 1; - } - } } } } diff --git a/resources/qml/Menus/MaterialBrandSubMenu.qml b/resources/qml/Menus/MaterialBrandSubMenu.qml new file mode 100644 index 0000000000..af7e6cfb0e --- /dev/null +++ b/resources/qml/Menus/MaterialBrandSubMenu.qml @@ -0,0 +1,118 @@ +// Copyright (c) 2022 UltiMaker +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.7 +import QtQuick.Controls 2.4 +import QtQuick.Layouts 2.7 + +import UM 1.5 as UM +import Cura 1.7 as Cura + +Popup +{ + id: materialBrandSubMenu + + bottomPadding: UM.Theme.getSize("thin_margin").height + topPadding: UM.Theme.getSize("thin_margin").height + + implicitWidth: scrollViewContent.width + scrollbar.width + leftPadding + rightPadding + implicitHeight: scrollViewContent.height + bottomPadding + topPadding + + // offset position relative to the parent + property int implicitX: parent.width + property int implicitY: -UM.Theme.getSize("thin_margin").height + + default property alias contents: scrollViewContent.children + + x: implicitX + y: implicitY + + // needed for the `mapToItem` function to work; apparently a Popup is not an Item + Item + { + id: materialBrandSubMenuItem + anchors.fill: parent + } + + onOpened: + { + // we want to make sure here that the popup never goes out side the window so we adjust the x and y position + // based on the width/height of the mainWindow/popup. QML is a bit weird here though, as the globalPosition + // is in absolute coordinates relative to the origin of the mainWindow while setting the x and y coordinates + // of the popup only changes the position relative to the parent. + + // reset position, the remainder of the function asumes this position and size + materialBrandSubMenu.x = implicitX; + materialBrandSubMenu.y = implicitY; + materialBrandSubMenu.width = implicitWidth; + materialBrandSubMenu.height = implicitHeight; + + const globalPosition = materialBrandSubMenuItem.mapToItem(null, 0, 0); + + if (globalPosition.y > mainWindow.height - materialBrandSubMenu.height) + { + if (mainWindow.height > materialBrandSubMenu.height) + { + const targetY = mainWindow.height - materialBrandSubMenu.height; + const deltaY = globalPosition.y - targetY; + materialBrandSubMenu.y = implicitY - deltaY; + } + else + { + // if popup is taller then the the component, limit + // the components height and set the position to + // y = 0 (in absolute coordinates) + materialBrandSubMenu.y = implicitY - globalPosition.y; + materialBrandSubMenu.height = mainWindow.height; + } + } + + if (globalPosition.x > mainWindow.width - materialBrandSubMenu.width) + { + if (mainWindow.width > materialBrandSubMenu.width) + { + const targetX = mainWindow.width - materialBrandSubMenu.width; + const deltaX = globalPosition.x - targetX; + materialBrandSubMenu.x = implicitX - deltaX; + } + else + { + materialBrandSubMenu.x = implicitX - globalPosition.x; + materialBrandSubMenu.width = mainWindow.width; + } + } + } + + padding: background.border.width + + background: Rectangle + { + color: UM.Theme.getColor("main_background") + border.color: UM.Theme.getColor("lining") + border.width: UM.Theme.getSize("default_lining").width + } + + ScrollView + { + id: scrollView + anchors.fill: parent + contentHeight: scrollViewContent.height + clip: true + + ScrollBar.vertical: UM.ScrollBar + { + id: scrollbar + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + } + + Rectangle + { + id: scrollViewContent + width: childrenRect.width + height: childrenRect.height + color: UM.Theme.getColor("main_background") + } + } +} \ No newline at end of file diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml index 9d3da51356..05407e6e0e 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorContents.qml @@ -67,6 +67,11 @@ Item top: parent.top } visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended + height: { + const height = base.height - (customPrintSetup.mapToItem(null, 0, 0).y + buttonRow.height + UM.Theme.getSize("default_margin").height); + const maxHeight = UM.Preferences.getValue("view/settings_list_height"); + return Math.min(implicitHeight, height, maxHeight); + } function onModeChanged() { diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml index f78ae38dce..80e171bed4 100644 --- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml @@ -2,34 +2,41 @@ //Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 +import QtQuick.Controls 2.15 import QtQuick.Layouts 1.1 import UM 1.6 as UM import Cura 1.6 as Cura import ".." -Item +ScrollView { id: recommendedPrintSetup - height: childrenRect.height + 2 * padding + implicitHeight: settingsColumn.height + 2 * padding property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 - property real padding: UM.Theme.getSize("default_margin").width + + padding: UM.Theme.getSize("default_margin").width function onModeChanged() {} - Column - { - spacing: UM.Theme.getSize("default_margin").height - + ScrollBar.vertical: UM.ScrollBar { + id: scroll anchors { - left: parent.left - right: parent.right top: parent.top - margins: parent.padding + right: parent.right + bottom: parent.bottom } + } + + Column + { + id: settingsColumn + spacing: UM.Theme.getSize("default_margin").height + + width: recommendedPrintSetup.width - 2 * recommendedPrintSetup.padding - (scroll.visible ? scroll.width : 0) // TODO property real firstColumnWidth: Math.round(width / 3) diff --git a/resources/qml/Widgets/SingleSettingTextField.qml b/resources/qml/Widgets/SingleSettingTextField.qml index 5bff7fdb5a..12d24d285d 100644 --- a/resources/qml/Widgets/SingleSettingTextField.qml +++ b/resources/qml/Widgets/SingleSettingTextField.qml @@ -87,15 +87,17 @@ UM.TextField function parseValueUpdateSetting() { - if (propertyProvider.properties.value === text || (parseFloat(propertyProvider.properties.value) === parseFloat(text))) + // User convenience. We use dots for decimal values + const modified_text = text.replace(",", "."); + if (propertyProvider.properties.value === modified_text || (parseFloat(propertyProvider.properties.value) === parseFloat(modified_text))) { // Don't set the property value from the control. It already has the same value return } - if (propertyProvider && text !== propertyProvider.properties.value) + if (propertyProvider && modified_text !== propertyProvider.properties.value) { - updateSetting(text); + updateSetting(modified_text); } } @@ -138,7 +140,7 @@ UM.TextField color: UM.Theme.getColor("setting_validation_warning_background") } }, - State + State { name: "disabled" when: !control.enabled diff --git a/resources/variants/modix_v3_base_0.4.inst.cfg b/resources/variants/modix_v3_base_0.4.inst.cfg new file mode 100644 index 0000000000..c3d64518ae --- /dev/null +++ b/resources/variants/modix_v3_base_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_base +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_base_0.6.inst.cfg b/resources/variants/modix_v3_base_0.6.inst.cfg new file mode 100644 index 0000000000..8d2cffa3e9 --- /dev/null +++ b/resources/variants/modix_v3_base_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_base +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_base_0.8.inst.cfg b/resources/variants/modix_v3_base_0.8.inst.cfg new file mode 100644 index 0000000000..81b5130473 --- /dev/null +++ b/resources/variants/modix_v3_base_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_base +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_base_1.0.inst.cfg b/resources/variants/modix_v3_base_1.0.inst.cfg new file mode 100644 index 0000000000..1de772e569 --- /dev/null +++ b/resources/variants/modix_v3_base_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_base +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_base_1.2.inst.cfg b/resources/variants/modix_v3_base_1.2.inst.cfg new file mode 100644 index 0000000000..e443d2f939 --- /dev/null +++ b/resources/variants/modix_v3_base_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_base +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_base_1.4.inst.cfg b/resources/variants/modix_v3_base_1.4.inst.cfg new file mode 100644 index 0000000000..a6ba9fc306 --- /dev/null +++ b/resources/variants/modix_v3_base_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_base +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120X_0.4.inst.cfg b/resources/variants/modix_v3_big120X_0.4.inst.cfg new file mode 100644 index 0000000000..f0106a2af4 --- /dev/null +++ b/resources/variants/modix_v3_big120X_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120x +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_big120X_0.6.inst.cfg b/resources/variants/modix_v3_big120X_0.6.inst.cfg new file mode 100644 index 0000000000..5bd0b38b89 --- /dev/null +++ b/resources/variants/modix_v3_big120X_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120x +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_big120X_0.8.inst.cfg b/resources/variants/modix_v3_big120X_0.8.inst.cfg new file mode 100644 index 0000000000..77374c5a37 --- /dev/null +++ b/resources/variants/modix_v3_big120X_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120x +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_big120X_1.0.inst.cfg b/resources/variants/modix_v3_big120X_1.0.inst.cfg new file mode 100644 index 0000000000..ce1b67ed45 --- /dev/null +++ b/resources/variants/modix_v3_big120X_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120x +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120X_1.2.inst.cfg b/resources/variants/modix_v3_big120X_1.2.inst.cfg new file mode 100644 index 0000000000..0ef8207a03 --- /dev/null +++ b/resources/variants/modix_v3_big120X_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120x +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120X_1.4.inst.cfg b/resources/variants/modix_v3_big120X_1.4.inst.cfg new file mode 100644 index 0000000000..88b6f3a27f --- /dev/null +++ b/resources/variants/modix_v3_big120X_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120x +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120Z_0.4.inst.cfg b/resources/variants/modix_v3_big120Z_0.4.inst.cfg new file mode 100644 index 0000000000..767a2b847c --- /dev/null +++ b/resources/variants/modix_v3_big120Z_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120Z +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_big120Z_0.6.inst.cfg b/resources/variants/modix_v3_big120Z_0.6.inst.cfg new file mode 100644 index 0000000000..36d16e134d --- /dev/null +++ b/resources/variants/modix_v3_big120Z_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120Z +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_big120Z_0.8.inst.cfg b/resources/variants/modix_v3_big120Z_0.8.inst.cfg new file mode 100644 index 0000000000..cbcacf34db --- /dev/null +++ b/resources/variants/modix_v3_big120Z_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big120Z +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_big120Z_1.0.inst.cfg b/resources/variants/modix_v3_big120Z_1.0.inst.cfg new file mode 100644 index 0000000000..9bd5de9303 --- /dev/null +++ b/resources/variants/modix_v3_big120Z_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120Z +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120Z_1.2.inst.cfg b/resources/variants/modix_v3_big120Z_1.2.inst.cfg new file mode 100644 index 0000000000..bafce85a76 --- /dev/null +++ b/resources/variants/modix_v3_big120Z_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120Z +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big120Z_1.4.inst.cfg b/resources/variants/modix_v3_big120Z_1.4.inst.cfg new file mode 100644 index 0000000000..ac36bec80a --- /dev/null +++ b/resources/variants/modix_v3_big120Z_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big120Z +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big180X_0.4.inst.cfg b/resources/variants/modix_v3_big180X_0.4.inst.cfg new file mode 100644 index 0000000000..dd1b3cec3f --- /dev/null +++ b/resources/variants/modix_v3_big180X_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big180X +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_big180X_0.6.inst.cfg b/resources/variants/modix_v3_big180X_0.6.inst.cfg new file mode 100644 index 0000000000..32f5de45bb --- /dev/null +++ b/resources/variants/modix_v3_big180X_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big180X +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_big180X_0.8.inst.cfg b/resources/variants/modix_v3_big180X_0.8.inst.cfg new file mode 100644 index 0000000000..39595cd641 --- /dev/null +++ b/resources/variants/modix_v3_big180X_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big180X +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_big180X_1.0.inst.cfg b/resources/variants/modix_v3_big180X_1.0.inst.cfg new file mode 100644 index 0000000000..0e8e40f43e --- /dev/null +++ b/resources/variants/modix_v3_big180X_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big180X +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big180X_1.2.inst.cfg b/resources/variants/modix_v3_big180X_1.2.inst.cfg new file mode 100644 index 0000000000..50595149f6 --- /dev/null +++ b/resources/variants/modix_v3_big180X_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big180X +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big180X_1.4.inst.cfg b/resources/variants/modix_v3_big180X_1.4.inst.cfg new file mode 100644 index 0000000000..3dae827b02 --- /dev/null +++ b/resources/variants/modix_v3_big180X_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big180X +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big40_0.4.inst.cfg b/resources/variants/modix_v3_big40_0.4.inst.cfg new file mode 100644 index 0000000000..a46f582ec4 --- /dev/null +++ b/resources/variants/modix_v3_big40_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big40 +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_big40_0.6.inst.cfg b/resources/variants/modix_v3_big40_0.6.inst.cfg new file mode 100644 index 0000000000..ce758510cf --- /dev/null +++ b/resources/variants/modix_v3_big40_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big40 +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_big40_0.8.inst.cfg b/resources/variants/modix_v3_big40_0.8.inst.cfg new file mode 100644 index 0000000000..31d8a6f980 --- /dev/null +++ b/resources/variants/modix_v3_big40_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big40 +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_big40_1.0.inst.cfg b/resources/variants/modix_v3_big40_1.0.inst.cfg new file mode 100644 index 0000000000..fb1499278a --- /dev/null +++ b/resources/variants/modix_v3_big40_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big40 +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big40_1.2.inst.cfg b/resources/variants/modix_v3_big40_1.2.inst.cfg new file mode 100644 index 0000000000..30ff80e4a2 --- /dev/null +++ b/resources/variants/modix_v3_big40_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big40 +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big40_1.4.inst.cfg b/resources/variants/modix_v3_big40_1.4.inst.cfg new file mode 100644 index 0000000000..610bd97e2b --- /dev/null +++ b/resources/variants/modix_v3_big40_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big40 +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big60_0.4.inst.cfg b/resources/variants/modix_v3_big60_0.4.inst.cfg new file mode 100644 index 0000000000..00aa2ca553 --- /dev/null +++ b/resources/variants/modix_v3_big60_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big60 +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_big60_0.6.inst.cfg b/resources/variants/modix_v3_big60_0.6.inst.cfg new file mode 100644 index 0000000000..b73d7a8fa6 --- /dev/null +++ b/resources/variants/modix_v3_big60_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big60 +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_big60_0.8.inst.cfg b/resources/variants/modix_v3_big60_0.8.inst.cfg new file mode 100644 index 0000000000..2cf72ab654 --- /dev/null +++ b/resources/variants/modix_v3_big60_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big60 +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_big60_1.0.inst.cfg b/resources/variants/modix_v3_big60_1.0.inst.cfg new file mode 100644 index 0000000000..015ebe249b --- /dev/null +++ b/resources/variants/modix_v3_big60_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big60 +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big60_1.2.inst.cfg b/resources/variants/modix_v3_big60_1.2.inst.cfg new file mode 100644 index 0000000000..e6c5b153df --- /dev/null +++ b/resources/variants/modix_v3_big60_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big60 +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_big60_1.4.inst.cfg b/resources/variants/modix_v3_big60_1.4.inst.cfg new file mode 100644 index 0000000000..87847c148a --- /dev/null +++ b/resources/variants/modix_v3_big60_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big60 +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v3_bigmeter_0.4.inst.cfg b/resources/variants/modix_v3_bigmeter_0.4.inst.cfg new file mode 100644 index 0000000000..9243e88bb5 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big_meter +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v3_bigmeter_0.6.inst.cfg b/resources/variants/modix_v3_bigmeter_0.6.inst.cfg new file mode 100644 index 0000000000..a273e97a96 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big_meter +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v3_bigmeter_0.8.inst.cfg b/resources/variants/modix_v3_bigmeter_0.8.inst.cfg new file mode 100644 index 0000000000..a1e90ed4a6 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v3_big_meter +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v3_bigmeter_1.0.inst.cfg b/resources/variants/modix_v3_bigmeter_1.0.inst.cfg new file mode 100644 index 0000000000..82b427b201 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big_meter +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v3_bigmeter_1.2.inst.cfg b/resources/variants/modix_v3_bigmeter_1.2.inst.cfg new file mode 100644 index 0000000000..a7cc386632 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big_meter +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v3_bigmeter_1.4.inst.cfg b/resources/variants/modix_v3_bigmeter_1.4.inst.cfg new file mode 100644 index 0000000000..22d2cfaeb3 --- /dev/null +++ b/resources/variants/modix_v3_bigmeter_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v3_big_meter +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_base_0.4.inst.cfg b/resources/variants/modix_v4_base_0.4.inst.cfg new file mode 100644 index 0000000000..26311b47e6 --- /dev/null +++ b/resources/variants/modix_v4_base_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_base +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_base_0.6.inst.cfg b/resources/variants/modix_v4_base_0.6.inst.cfg new file mode 100644 index 0000000000..8c27750903 --- /dev/null +++ b/resources/variants/modix_v4_base_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_base +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_base_0.8.inst.cfg b/resources/variants/modix_v4_base_0.8.inst.cfg new file mode 100644 index 0000000000..d6e64d55b0 --- /dev/null +++ b/resources/variants/modix_v4_base_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_base +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_base_1.0.inst.cfg b/resources/variants/modix_v4_base_1.0.inst.cfg new file mode 100644 index 0000000000..804142f9c4 --- /dev/null +++ b/resources/variants/modix_v4_base_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_base +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_base_1.2.inst.cfg b/resources/variants/modix_v4_base_1.2.inst.cfg new file mode 100644 index 0000000000..96fdaaa6e5 --- /dev/null +++ b/resources/variants/modix_v4_base_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_base +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_base_1.4.inst.cfg b/resources/variants/modix_v4_base_1.4.inst.cfg new file mode 100644 index 0000000000..2447145e74 --- /dev/null +++ b/resources/variants/modix_v4_base_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_base +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120X_0.4.inst.cfg b/resources/variants/modix_v4_big120X_0.4.inst.cfg new file mode 100644 index 0000000000..3b42a17b5b --- /dev/null +++ b/resources/variants/modix_v4_big120X_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120x +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_big120X_0.6.inst.cfg b/resources/variants/modix_v4_big120X_0.6.inst.cfg new file mode 100644 index 0000000000..ad38973676 --- /dev/null +++ b/resources/variants/modix_v4_big120X_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120x +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_big120X_0.8.inst.cfg b/resources/variants/modix_v4_big120X_0.8.inst.cfg new file mode 100644 index 0000000000..9ba46481db --- /dev/null +++ b/resources/variants/modix_v4_big120X_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120x +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_big120X_1.0.inst.cfg b/resources/variants/modix_v4_big120X_1.0.inst.cfg new file mode 100644 index 0000000000..1236595c6b --- /dev/null +++ b/resources/variants/modix_v4_big120X_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120x +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120X_1.2.inst.cfg b/resources/variants/modix_v4_big120X_1.2.inst.cfg new file mode 100644 index 0000000000..e973474b57 --- /dev/null +++ b/resources/variants/modix_v4_big120X_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120x +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120X_1.4.inst.cfg b/resources/variants/modix_v4_big120X_1.4.inst.cfg new file mode 100644 index 0000000000..95d6d10b75 --- /dev/null +++ b/resources/variants/modix_v4_big120X_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120x +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120Z_0.4.inst.cfg b/resources/variants/modix_v4_big120Z_0.4.inst.cfg new file mode 100644 index 0000000000..90523aa600 --- /dev/null +++ b/resources/variants/modix_v4_big120Z_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120Z +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_big120Z_0.6.inst.cfg b/resources/variants/modix_v4_big120Z_0.6.inst.cfg new file mode 100644 index 0000000000..2b205295cf --- /dev/null +++ b/resources/variants/modix_v4_big120Z_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120Z +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_big120Z_0.8.inst.cfg b/resources/variants/modix_v4_big120Z_0.8.inst.cfg new file mode 100644 index 0000000000..bb9a916124 --- /dev/null +++ b/resources/variants/modix_v4_big120Z_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big120Z +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_big120Z_1.0.inst.cfg b/resources/variants/modix_v4_big120Z_1.0.inst.cfg new file mode 100644 index 0000000000..cf4fe66ce0 --- /dev/null +++ b/resources/variants/modix_v4_big120Z_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120Z +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120Z_1.2.inst.cfg b/resources/variants/modix_v4_big120Z_1.2.inst.cfg new file mode 100644 index 0000000000..19354e1716 --- /dev/null +++ b/resources/variants/modix_v4_big120Z_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120Z +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big120Z_1.4.inst.cfg b/resources/variants/modix_v4_big120Z_1.4.inst.cfg new file mode 100644 index 0000000000..7141146b3a --- /dev/null +++ b/resources/variants/modix_v4_big120Z_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big120Z +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big180X_0.4.inst.cfg b/resources/variants/modix_v4_big180X_0.4.inst.cfg new file mode 100644 index 0000000000..8fe2f953ee --- /dev/null +++ b/resources/variants/modix_v4_big180X_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big180X +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_big180X_0.6.inst.cfg b/resources/variants/modix_v4_big180X_0.6.inst.cfg new file mode 100644 index 0000000000..43b870a7d0 --- /dev/null +++ b/resources/variants/modix_v4_big180X_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big180X +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_big180X_0.8.inst.cfg b/resources/variants/modix_v4_big180X_0.8.inst.cfg new file mode 100644 index 0000000000..0e115b685b --- /dev/null +++ b/resources/variants/modix_v4_big180X_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big180X +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_big180X_1.0.inst.cfg b/resources/variants/modix_v4_big180X_1.0.inst.cfg new file mode 100644 index 0000000000..9446851bd5 --- /dev/null +++ b/resources/variants/modix_v4_big180X_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big180X +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big180X_1.2.inst.cfg b/resources/variants/modix_v4_big180X_1.2.inst.cfg new file mode 100644 index 0000000000..1bf1ae098a --- /dev/null +++ b/resources/variants/modix_v4_big180X_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big180X +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big180X_1.4.inst.cfg b/resources/variants/modix_v4_big180X_1.4.inst.cfg new file mode 100644 index 0000000000..225a180590 --- /dev/null +++ b/resources/variants/modix_v4_big180X_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big180X +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big60_0.4.inst.cfg b/resources/variants/modix_v4_big60_0.4.inst.cfg new file mode 100644 index 0000000000..95403b5bd5 --- /dev/null +++ b/resources/variants/modix_v4_big60_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big60 +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_big60_0.6.inst.cfg b/resources/variants/modix_v4_big60_0.6.inst.cfg new file mode 100644 index 0000000000..aad7e77c99 --- /dev/null +++ b/resources/variants/modix_v4_big60_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big60 +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_big60_0.8.inst.cfg b/resources/variants/modix_v4_big60_0.8.inst.cfg new file mode 100644 index 0000000000..85e77e1f53 --- /dev/null +++ b/resources/variants/modix_v4_big60_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big60 +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_big60_1.0.inst.cfg b/resources/variants/modix_v4_big60_1.0.inst.cfg new file mode 100644 index 0000000000..90b463f276 --- /dev/null +++ b/resources/variants/modix_v4_big60_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big60 +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big60_1.2.inst.cfg b/resources/variants/modix_v4_big60_1.2.inst.cfg new file mode 100644 index 0000000000..c4eb13e57d --- /dev/null +++ b/resources/variants/modix_v4_big60_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big60 +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_big60_1.4.inst.cfg b/resources/variants/modix_v4_big60_1.4.inst.cfg new file mode 100644 index 0000000000..468b858b0a --- /dev/null +++ b/resources/variants/modix_v4_big60_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big60 +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 + diff --git a/resources/variants/modix_v4_bigmeter_0.4.inst.cfg b/resources/variants/modix_v4_bigmeter_0.4.inst.cfg new file mode 100644 index 0000000000..69a45b9374 --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_0.4.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big_meter +name = 0.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.4 + diff --git a/resources/variants/modix_v4_bigmeter_0.6.inst.cfg b/resources/variants/modix_v4_bigmeter_0.6.inst.cfg new file mode 100644 index 0000000000..38dc736a26 --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_0.6.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big_meter +name = 0.6 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.6 + diff --git a/resources/variants/modix_v4_bigmeter_0.8.inst.cfg b/resources/variants/modix_v4_bigmeter_0.8.inst.cfg new file mode 100644 index 0000000000..fc57926c7b --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_0.8.inst.cfg @@ -0,0 +1,13 @@ +[general] +definition = modix_v4_big_meter +name = 0.8 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +machine_nozzle_size = 0.8 + diff --git a/resources/variants/modix_v4_bigmeter_1.0.inst.cfg b/resources/variants/modix_v4_bigmeter_1.0.inst.cfg new file mode 100644 index 0000000000..10404efd72 --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_1.0.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big_meter +name = 1.0 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.0 +support_angle = 45 + diff --git a/resources/variants/modix_v4_bigmeter_1.2.inst.cfg b/resources/variants/modix_v4_bigmeter_1.2.inst.cfg new file mode 100644 index 0000000000..42b0d6a324 --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_1.2.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big_meter +name = 1.2 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.2 +support_angle = 45 + diff --git a/resources/variants/modix_v4_bigmeter_1.4.inst.cfg b/resources/variants/modix_v4_bigmeter_1.4.inst.cfg new file mode 100644 index 0000000000..a9844fb8a5 --- /dev/null +++ b/resources/variants/modix_v4_bigmeter_1.4.inst.cfg @@ -0,0 +1,15 @@ +[general] +definition = modix_v4_big_meter +name = 1.4 mm Nozzle +version = 4 + +[metadata] +hardware_type = nozzle +setting_version = 19 +type = variant + +[values] +infill_pattern = lines +machine_nozzle_size = 1.4 +support_angle = 45 +