Просмотр исходного кода

Merge branch 'main' into PP-511-Method-5-9-Rebased-Branded-Materials

HellAholic 5 месяцев назад
Родитель
Сommit
6e8192a1f5

+ 1 - 0
cura/Machines/MachineNode.py

@@ -48,6 +48,7 @@ class MachineNode(ContainerNode):
         self.preferred_variant_name = my_metadata.get("preferred_variant_name", "")
         self.preferred_material = my_metadata.get("preferred_material", "")
         self.preferred_quality_type = my_metadata.get("preferred_quality_type", "")
+        self.supports_abstract_color = parseBool(my_metadata.get("supports_abstract_color", "false"))
 
         self._loadAll()
 

+ 4 - 0
cura/Machines/VariantNode.py

@@ -63,6 +63,8 @@ class VariantNode(ContainerNode):
         filtered_materials = [material for material in materials if not self.machine.isExcludedMaterialBaseFile(material["id"])]
 
         for material in filtered_materials:
+            if material.get("abstract_color", False) and not self.machine.supports_abstract_color:
+                continue  # do not show abstract color profiles if the machine does not support them
             base_file = material["base_file"]
             if base_file not in self.materials:
                 self.materials[base_file] = MaterialNode(material["id"], variant = self)
@@ -126,6 +128,8 @@ class VariantNode(ContainerNode):
             return  # We won't add any materials.
         material_definition = container.getMetaDataEntry("definition")
 
+        if (not self.machine.supports_abstract_color) and container.getMetaDataEntry("abstract_color", False):
+            return
         base_file = container.getMetaDataEntry("base_file")
         if self.machine.isExcludedMaterialBaseFile(base_file):
             return  # Material is forbidden for this printer.

+ 6 - 4
cura/PrinterOutput/FormatMaps.py

@@ -28,14 +28,15 @@ class FormatMaps:
 
     # A map from the material-name in their native file-formats to some info, including the internal name we use.
     MATERIAL_MAP = {
-        "abs": {"name": "ABS", "guid": "2780b345-577b-4a24-a2c5-12e6aad3e690"},
+        "abs": {"name": "ABS", "guid": "e0f1d581-cc6b-4e36-8f3c-3f5601ecba5f"},
          "abs-cf10": {"name": "ABS-CF", "guid": "495a0ce5-9daf-4a16-b7b2-06856d82394d"},
          "abs-wss1": {"name": "ABS-R", "guid": "88c8919c-6a09-471a-b7b6-e801263d862d"},
          "asa": {"name": "ASA", "guid": "f79bc612-21eb-482e-ad6c-87d75bdde066"},
          "nylon12-cf": {"name": "Nylon 12 CF", "guid": "3c6f2877-71cc-4760-84e6-4b89ab243e3b"},
-         "nylon": {"name": "Nylon", "guid": "283d439a-3490-4481-920c-c51d8cdecf9c"},
+         "nylon-cf": {"name": "Nylon CF", "guid": "17abb865-ca73-4ccd-aeda-38e294c9c60b"},
+         "nylon": {"name": "Nylon", "guid": "9475b03d-fd19-48a2-b7b5-be1fb46abb02"},
          "pc": {"name": "PC", "guid": "62414577-94d1-490d-b1e4-7ef3ec40db02"},
-         "petg": {"name": "PETG", "guid": "69386c85-5b6c-421a-bec5-aeb1fb33f060"},
+         "petg": {"name": "PETG", "guid": "2d004bbd-d1bb-47f8-beac-b066702d5273"},
          "pla": {"name": "PLA", "guid": "abb9c58e-1f56-48d1-bd8f-055fde3a5b56"},
          "pva": {"name": "PVA", "guid": "add51ef2-86eb-4c39-afd5-5586564f0715"},
          "wss1": {"name": "RapidRinse", "guid": "a140ef8f-4f26-4e73-abe0-cfc29d6d1024"},
@@ -44,7 +45,8 @@ class FormatMaps:
          "cpe": {"name": "CPE", "guid": "da1872c1-b991-4795-80ad-bdac0f131726"},
          "hips": {"name": "HIPS", "guid": "a468d86a-220c-47eb-99a5-bbb47e514eb0"},
          "tpu": {"name": "TPU 95A", "guid": "19baa6a9-94ff-478b-b4a1-8157b74358d2"},
-         "im-pla": {"name": "Tough", "guid": "de031137-a8ca-4a72-bd1b-17bb964033ad"}
+         "im-pla": {"name": "Tough", "guid": "96fca5d9-0371-4516-9e96-8e8182677f3c"}
+         # /!\ When changing this list, make sure the changes are reported accordingly on Digital Factory
     }
 
     __inverse_printer_name: Optional[Dict[str, str]] = None

+ 0 - 3
plugins/XmlMaterialProfile/XmlMaterialProfile.py

@@ -918,9 +918,6 @@ class XmlMaterialProfile(InstanceContainer):
         base_metadata["properties"] = property_values
         base_metadata["definition"] = "fdmprinter"
 
-        # Certain materials are loaded but should not be visible / selectable to the user.
-        base_metadata["visible"] = not base_metadata.get("abstract_color", False)
-
         compatible_entries = data.iterfind("./um:settings/um:setting[@key='hardware compatible']", cls.__namespaces)
         try:
             common_compatibility = cls._parseCompatibleValue(next(compatible_entries).text) # type: ignore

+ 196 - 6
resources/bundled_packages/cura.json

@@ -1984,11 +1984,201 @@
             }
         }
     },
+    "ULTIMAKERABSMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERABSMETHOD",
+            "package_type": "material",
+            "display_name": "ABS",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-abs/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERNYLONMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERNYLONMETHOD",
+            "package_type": "material",
+            "display_name": "Nylon",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-nylon/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERNYLONCFMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERNYLONCFMETHOD",
+            "package_type": "material",
+            "display_name": "Nylon Carbon Fiber",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-nylon-carbon-fiber/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERPLAMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERPLAMETHOD",
+            "package_type": "material",
+            "display_name": "PLA",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-pla/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERPVAMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERPVAMETHOD",
+            "package_type": "material",
+            "display_name": "PVA",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-pva/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERPETGMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERPETGMETHOD",
+            "package_type": "material",
+            "display_name": "PETG",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-petg/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "ULTIMAKERTOUGHMETHOD": {
+        "package_info": {
+            "package_id": "ULTIMAKERTOUGHMETHOD",
+            "package_type": "material",
+            "display_name": "Tough PLA",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-series-tough/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "BASFMETALMETHOD": {
+        "package_info": {
+            "package_id": "BASFMETALMETHOD",
+            "package_type": "material",
+            "display_name": "BASF Ultrafuse 316L",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-materials/#metal",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "JABILSEBSMETHOD": {
+        "package_info": {
+            "package_id": "JABILSEBSMETHOD",
+            "package_type": "material",
+            "display_name": "Jabil TPE SEBS 95A",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-materials/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
+    "POLYMAKERPCMETHOD": {
+        "package_info": {
+            "package_id": "POLYMAKERPCMETHOD",
+            "package_type": "material",
+            "display_name": "Polymaker PolyMax PC",
+            "description": "Example package for material and quality profiles for Ultimaker materials.",
+            "package_version": "2.0.0",
+            "sdk_version": "8.6.0",
+            "website": "https://ultimaker.com/materials/method-materials/",
+            "author": {
+                "author_id": "UltimakerPackages",
+                "display_name": "UltiMaker",
+                "email": "materials@ultimaker.com",
+                "website": "https://ultimaker.com",
+                "description": "Professional 3D printing made accessible.",
+                "support_website": "https://ultimaker.com/materials/method-materials/"
+            }
+        }
+    },
     "ULTIMAKERBASCFMETHOD": {
         "package_info": {
             "package_id": "ULTIMAKERBASCFMETHOD",
             "package_type": "material",
-            "display_name": "Ultimaker ABS-CF",
+            "display_name": "ABS-CF",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",
@@ -2007,7 +2197,7 @@
         "package_info": {
             "package_id": "ULTIMAKERABSRMETHOD",
             "package_type": "material",
-            "display_name": "Ultimaker ABS-R",
+            "display_name": "ABS-R",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",
@@ -2026,7 +2216,7 @@
         "package_info": {
             "package_id": "ULTIMAKERASAMETHOD",
             "package_type": "material",
-            "display_name": "Ultimaker ASA",
+            "display_name": "ASA",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",
@@ -2045,7 +2235,7 @@
         "package_info": {
             "package_id": "ULTIMAKERNYLON12CFMETHOD",
             "package_type": "material",
-            "display_name": "Ultimaker Nylon12 Carbon Fiber",
+            "display_name": "Nylon12 Carbon Fiber",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",
@@ -2064,7 +2254,7 @@
         "package_info": {
             "package_id": "ULTIMAKERRAPIDRINSEMETHOD",
             "package_type": "material",
-            "display_name": "Ultimaker RapidRinse",
+            "display_name": "RapidRinse",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",
@@ -2083,7 +2273,7 @@
         "package_info": {
             "package_id": "ULTIMAKERSR30METHOD",
             "package_type": "material",
-            "display_name": "Ultimaker SR-30",
+            "display_name": "SR-30",
             "description": "Example package for material and quality profiles for Ultimaker materials.",
             "package_version": "2.0.0",
             "sdk_version": "8.6.0",

+ 107 - 1
resources/definitions/fdmprinter.def.json

@@ -16,7 +16,8 @@
         "preferred_quality_type": "normal",
         "machine_extruder_trains": { "0": "fdmextruder" },
         "supports_usb_connection": true,
-        "supports_network_connection": false
+        "supports_network_connection": false,
+        "supports_abstract_color": false
     },
     "settings":
     {
@@ -8923,6 +8924,111 @@
                     "type": "bool",
                     "default_value": true,
                     "settable_per_mesh": true
+                },
+                "scarf_joint_seam_length":
+                {
+                    "label": "Scarf Seam Length",
+                    "description": "When greater than 0, a scarf joint will be created on the Z seam to make it less visible.",
+                    "type": "float",
+                    "default_value": 0,
+                    "minimum_value": "0",
+                    "unit": "mm",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "scarf_joint_seam_start_height_ratio":
+                {
+                    "label": "Scarf Seam Start Height",
+                    "description": "This is the ratio over the total layer height where the scarf joint seam will start.",
+                    "type": "float",
+                    "default_value": 0,
+                    "minimum_value": 0,
+                    "maximum_value": 100.0,
+                    "unit": "%",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "scarf_split_distance":
+                {
+                    "label": "Scarf Seam Split Distance",
+                    "description": "This is the maximum length of an extrusion path when splitting a longer path to apply the scarf seam. A smaller distance will create a more precise but also more verbose G-Code.",
+                    "type": "float",
+                    "default_value": 1.0,
+                    "minimum_value": 0.1,
+                    "maximum_value": 100.0,
+                    "unit": "mm",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "wall_0_start_speed_ratio":
+                {
+                    "label": "Outer Wall Start Speed Ratio",
+                    "description": "This is the ratio of the top speed to start with when printing an outer wall.",
+                    "type": "float",
+                    "default_value": 100.0,
+                    "minimum_value": 0.0,
+                    "maximum_value": 100.0,
+                    "unit": "%",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "wall_0_acceleration":
+                {
+                    "label": "Outer Wall Acceleration",
+                    "description": "This is the acceleration with which to reach the top speed when printing an outer wall.",
+                    "enabled": "wall_0_start_speed_ratio < 100.0",
+                    "type": "float",
+                    "default_value": 20.0,
+                    "minimum_value": 1.0,
+                    "maximum_value": 1000.0,
+                    "unit": "mm/s\u00b2",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "wall_0_end_speed_ratio":
+                {
+                    "label": "Outer Wall End Speed Ratio",
+                    "description": "This is the ratio of the top speed to end with when printing an outer wall.",
+                    "type": "float",
+                    "default_value": 100.0,
+                    "minimum_value": 0.0,
+                    "maximum_value": 100.0,
+                    "unit": "%",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "wall_0_deceleration":
+                {
+                    "label": "Outer Wall Deceleration",
+                    "description": "This is the deceleration with which to end printing an outer wall.",
+                    "enabled": "wall_0_end_speed_ratio < 100.0",
+                    "type": "float",
+                    "default_value": 20.0,
+                    "minimum_value": 1.0,
+                    "maximum_value": 1000.0,
+                    "unit": "mm/s\u00b2",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
+                },
+                "wall_0_speed_split_distance":
+                {
+                    "label": "Outer Wall Speed Split Distance",
+                    "description": "This is the maximum length of an extrusion path when splitting a longer path to apply the outer wall acceleration/deceleration. A smaller distance will create a more precise but also more verbose G-Code.",
+                    "type": "float",
+                    "default_value": 1.0,
+                    "minimum_value": 0.1,
+                    "maximum_value": 100.0,
+                    "unit": "mm",
+                    "limit_to_extruder": "wall_0_extruder_nr",
+                    "settable_per_extruder": true,
+                    "settable_per_mesh": true
                 }
             }
         },

+ 1 - 0
resources/definitions/ultimaker_factor4.def.json

@@ -39,6 +39,7 @@
         "preferred_quality_type": "draft",
         "preferred_variant_name": "AA 0.4",
         "supported_actions": [ "DiscoverUM3Action" ],
+        "supports_abstract_color": true,
         "supports_material_export": true,
         "supports_network_connection": true,
         "supports_usb_connection": false,

+ 2 - 34
resources/definitions/ultimaker_method.def.json

@@ -44,7 +44,6 @@
             "ultimaker_bvoh_175",
             "ultimaker_cffpa_175",
             "ultimaker_cpe_175",
-            "ultimaker_nylon_175",
             "ultimaker_hips_175",
             "ultimaker_pc_175",
             "ultimaker_tpu_175",
@@ -57,7 +56,8 @@
             "xyzprinting_",
             "zyyx_pro_",
             "octofiber_",
-            "fiberlogy_"
+            "fiberlogy_",
+            "ultimaker_metallic_pla_175"
         ],
         "has_machine_materials": true,
         "has_machine_quality": true,
@@ -86,39 +86,7 @@
     "overrides":
     {
         "build_volume_temperature": { "maximum_value": "67" },
-        "machine_depth": { "default_value": 236.48 },
-        "machine_disallowed_areas":
-        {
-            "default_value": [
-                [
-                    [-141.65, -118.11],
-                    [141.65, -118.11],
-                    [141.65, -94],
-                    [-141.65, -94]
-                ],
-                [
-                    [-141.65, 118.37],
-                    [141.65, 118.37],
-                    [141.65, 94],
-                    [-141.65, 94]
-                ],
-                [
-                    [-141.65, -118.11],
-                    [-75, -118.11],
-                    [-75, 118.37],
-                    [-141.65, 118.37]
-                ],
-                [
-                    [75, -118.11],
-                    [141.65, -118.11],
-                    [141.65, 118.37],
-                    [75, 118.37]
-                ]
-            ]
-        },
-        "machine_height": { "default_value": 196 },
         "machine_name": { "default_value": "UltiMaker Method" },
-        "machine_width": { "default_value": 283.3 },
         "prime_tower_position_x": { "value": "(150 / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (150 - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (150 / 2 if resolveOrValue('machine_center_is_zero') else 0)" },
         "prime_tower_position_y": { "value": "190 - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (190 / 2 if resolveOrValue('machine_center_is_zero') else 0)" }
     }

+ 149 - 69
resources/definitions/ultimaker_method_base.def.json

@@ -9,43 +9,7 @@
         "manufacturer": "Ultimaker B.V.",
         "file_formats": "application/x-makerbot",
         "platform": "ultimaker_method_platform.stl",
-        "exclude_materials": [
-            "dsm_",
-            "Essentium_",
-            "imade3d_",
-            "chromatik_",
-            "3D-Fuel_",
-            "bestfilament_",
-            "emotiontech_",
-            "eryone_",
-            "eSUN_",
-            "Extrudr_",
-            "fabtotum_",
-            "fdplast_",
-            "filo3d_",
-            "generic_",
-            "ultimaker_rapidrinse_175",
-            "ultimaker_metallic_pla_175",
-            "goofoo_",
-            "ideagen3D_",
-            "imade3d_",
-            "innofill_",
-            "layer_one_",
-            "leapfrog_",
-            "polyflex_pla",
-            "polymax_pla",
-            "polyplus_pla",
-            "polywood_pla",
-            "redd_",
-            "tizyx_",
-            "verbatim_",
-            "Vertex_",
-            "volumic_",
-            "xyzprinting_",
-            "zyyx_pro_",
-            "octofiber_",
-            "fiberlogy_"
-        ],
+        "exclude_materials": [],
         "has_machine_materials": true,
         "has_machine_quality": true,
         "has_materials": true,
@@ -171,13 +135,15 @@
             "enabled": false,
             "value": "acceleration_print"
         },
-        "adhesion_extruder_nr": { "value": 0 },
+        "adhesion_extruder_nr":
+        {
+            "enabled": false,
+            "value": "min(extruderValues('extruder_nr'))"
+        },
         "adhesion_type": { "value": "'raft'" },
+        "bottom_thickness": { "value": "top_bottom_thickness" },
         "bridge_enable_more_layers": { "value": true },
-        "bridge_fan_speed": { "value": "cool_fan_speed_max" },
         "bridge_fan_speed_2": { "value": "(cool_fan_speed_max + cool_fan_speed_min) / 2" },
-        "bridge_fan_speed_3": { "value": "cool_fan_speed_min" },
-        "bridge_settings_enabled": { "value": true },
         "bridge_skin_density": { "value": 100 },
         "bridge_skin_density_2": { "value": 100 },
         "bridge_skin_density_3": { "value": 100 },
@@ -196,14 +162,38 @@
         {
             "force_depends_on_settings": [ "support_extruder_nr" ]
         },
+        "cool_fan_full_at_height": { "value": "1 if resolveOrValue('adhesion_type') == 'raft' else layer_height + layer_height_0" },
+        "cool_fan_full_layer": { "value": "1 if resolveOrValue('adhesion_type') == 'raft' else 3" },
         "default_material_bed_temperature": { "resolve": "min(extruderValues('default_material_bed_temperature'))" },
         "extruder_prime_pos_abs": { "default_value": true },
         "gradual_support_infill_steps": { "value": 0 },
+        "group_outer_walls": { "value": false },
+        "infill_angles":
+        {
+            "value": [
+                45,
+                45,
+                45,
+                45,
+                45,
+                135,
+                135,
+                135,
+                135,
+                135
+            ]
+        },
         "infill_before_walls": { "value": false },
         "infill_material_flow": { "value": "material_flow" },
         "infill_overlap": { "value": 0 },
-        "infill_pattern": { "value": "'grid' if infill_sparse_density < 80 else 'lines'" },
+        "infill_pattern": { "value": "'zigzag'" },
         "infill_wipe_dist": { "value": 0 },
+        "initial_layer_line_width_factor":
+        {
+            "maximum_value": 350,
+            "maximum_value_warning": 320,
+            "value": "100 if resolveOrValue('adhesion_type') == 'raft' else 200"
+        },
         "inset_direction": { "value": "'inside_out'" },
         "jerk_enabled":
         {
@@ -310,22 +300,37 @@
             "enabled": false,
             "value": "jerk_print"
         },
+        "layer_height_0": { "value": "layer_height if resolveOrValue('adhesion_type') == 'raft' else layer_height * 1.25" },
         "machine_acceleration": { "default_value": 3000 },
         "machine_center_is_zero": { "value": true },
+        "machine_depth": { "default_value": 236.48 },
+        "machine_disallowed_areas": { "value": "[ [ [-141.65, -118.11], [141.65, -118.11], [141.65, -95.205], [-141.65, -95.205] ], [ [-141.65, 118.37], [141.65, 118.37], [141.65, 95.205], [-141.65, 95.205] ], [ [-141.65, -118.11], [-114.249, -118.11], [-114.249, 118.37], [-141.65, 118.37] ], [ [76.149, -118.11], [141.65, -118.11], [141.65, 118.37], [76.149, 118.37] ] ] if max(extruderValues('extruder_nr')) == 0 else [ [ [-141.65, -118.11], [141.65, -118.11], [141.65, -95.205], [-141.65, -95.205] ], [ [-141.65, 118.37], [141.65, 118.37], [141.65, 95.205], [-141.65, 95.205] ], [ [-141.65, -118.11], [-76.149, -118.11], [-76.149, 118.37], [-141.65, 118.37] ], [ [76.149, -118.11], [141.65, -118.11], [141.65, 118.37], [76.149, 118.37] ] ]" },
         "machine_end_gcode": { "default_value": "" },
         "machine_extruder_count": { "default_value": 2 },
         "machine_gcode_flavor": { "default_value": "Griffin" },
         "machine_heated_bed": { "default_value": false },
         "machine_heated_build_volume": { "default_value": true },
+        "machine_height": { "default_value": 196.749 },
         "machine_min_cool_heat_time_window": { "value": 15 },
         "machine_name": { "default_value": "UltiMaker Method" },
         "machine_nozzle_cool_down_speed": { "value": 0.8 },
         "machine_nozzle_heat_up_speed": { "value": 3.5 },
         "machine_scale_fan_speed_zero_to_one": { "value": true },
         "machine_start_gcode": { "default_value": "G0 Z20" },
+        "machine_width": { "default_value": 283.3 },
         "material_bed_temperature": { "enabled": "machine_heated_bed" },
+        "material_final_print_temperature":
+        {
+            "maximum_value": "material_print_temperature",
+            "minimum_value": "material_standby_temperature"
+        },
         "material_flow": { "value": 100 },
-        "material_initial_print_temperature": { "value": "material_print_temperature-10" },
+        "material_initial_print_temperature":
+        {
+            "maximum_value": "material_print_temperature",
+            "minimum_value": "material_standby_temperature",
+            "value": "material_print_temperature-5"
+        },
         "material_print_temperature":
         {
             "force_depends_on_settings": [ "support_extruder_nr" ]
@@ -337,20 +342,34 @@
         "multiple_mesh_overlap": { "value": 0 },
         "optimize_wall_printing_order": { "value": true },
         "prime_blob_enable": { "enabled": false },
-        "prime_tower_base_curve_magnitude": { "value": 2 },
-        "prime_tower_base_height": { "value": 6 },
-        "prime_tower_base_size": { "value": 10 },
-        "prime_tower_enable": { "value": false },
         "prime_tower_flow": { "value": "material_flow" },
-        "prime_tower_line_width": { "value": 1 },
+        "prime_tower_line_width":
+        {
+            "maximum_value": 2,
+            "maximum_value_warning": 1.5,
+            "value": 1
+        },
+        "prime_tower_mode":
+        {
+            "resolve": "'normal'",
+            "value": "'normal'"
+        },
         "prime_tower_raft_base_line_spacing": { "value": "raft_base_line_width" },
         "prime_tower_wipe_enabled": { "value": true },
         "print_sequence": { "enabled": false },
+        "raft_acceleration": { "enabled": false },
         "raft_airgap":
         {
             "force_depends_on_settings": [ "support_extruder_nr" ]
         },
+        "raft_base_acceleration": { "enabled": false },
+        "raft_base_extruder_nr":
+        {
+            "enabled": false,
+            "value": "min(extruderValues('extruder_nr'))"
+        },
         "raft_base_fan_speed": { "value": 0 },
+        "raft_base_jerk": { "enabled": false },
         "raft_base_line_spacing":
         {
             "force_depends_on_settings": [ "raft_interface_extruder_nr" ],
@@ -359,9 +378,10 @@
         "raft_base_line_width":
         {
             "force_depends_on_settings": [ "raft_interface_extruder_nr" ],
+            "maximum_value": 2.5,
+            "maximum_value_warning": 1.8,
             "value": 1.4
         },
-        "raft_base_speed": { "value": 10 },
         "raft_base_thickness":
         {
             "force_depends_on_settings": [
@@ -370,24 +390,24 @@
             ],
             "value": 0.8
         },
-        "raft_base_wall_count":
-        {
-            "force_depends_on_settings": [ "support_extruder_nr" ],
-            "value": "raft_wall_count"
-        },
-        "raft_interface_extruder_nr": { "value": "raft_surface_extruder_nr" },
+        "raft_base_wall_count": { "value": "raft_wall_count" },
+        "raft_interface_acceleration": { "enabled": false },
+        "raft_interface_extruder_nr": { "value": "max(extruderValues('extruder_nr'))" },
         "raft_interface_fan_speed": { "value": 0 },
         "raft_interface_infill_overlap":
         {
             "force_depends_on_settings": [ "raft_interface_extruder_nr" ]
         },
+        "raft_interface_infill_overlap_mm": { "maximum_value_warning": "2 * machine_nozzle_size" },
+        "raft_interface_jerk": { "enabled": false },
         "raft_interface_layers": { "value": 2 },
         "raft_interface_line_spacing":
         {
             "force_depends_on_settings": [
                 "raft_base_thickness",
                 "raft_interface_extruder_nr"
-            ]
+            ],
+            "minimum_value_warning": "raft_interface_line_width * 0.8"
         },
         "raft_interface_line_width":
         {
@@ -397,7 +417,11 @@
             ],
             "value": 0.7
         },
-        "raft_interface_speed": { "value": 90 },
+        "raft_interface_speed":
+        {
+            "force_depends_on_settings": [ "support_extruder_nr" ],
+            "value": "raft_speed * 5"
+        },
         "raft_interface_thickness": { "value": 0.3 },
         "raft_interface_wall_count": { "value": "raft_wall_count" },
         "raft_interface_z_offset":
@@ -407,14 +431,18 @@
                 "raft_interface_extruder_nr"
             ]
         },
+        "raft_jerk": { "enabled": false },
         "raft_margin": { "value": 1.2 },
         "raft_smoothing": { "value": 9.5 },
-        "raft_surface_extruder_nr": { "value": "int(anyExtruderWithMaterial('material_is_support_material')) if support_enable and extruderValue(support_extruder_nr,'material_is_support_material') else raft_base_extruder_nr" },
+        "raft_speed": { "value": 10 },
+        "raft_surface_acceleration": { "enabled": false },
+        "raft_surface_extruder_nr": { "value": "max(extruderValues('extruder_nr'))" },
         "raft_surface_fan_speed": { "value": 0 },
         "raft_surface_flow":
         {
             "force_depends_on_settings": [ "support_extruder_nr" ]
         },
+        "raft_surface_jerk": { "enabled": false },
         "raft_surface_speed":
         {
             "force_depends_on_settings": [ "support_extruder_nr" ]
@@ -431,27 +459,55 @@
         "raft_wall_count": { "value": 2 },
         "retract_at_layer_change": { "value": true },
         "retraction_amount": { "value": 0.75 },
-        "retraction_combing": { "value": "'off'" },
+        "retraction_combing":
+        {
+            "enabled": false,
+            "value": "'off'"
+        },
         "retraction_combing_max_distance": { "value": "speed_travel / 10" },
         "retraction_count_max": { "value": 100 },
         "retraction_extrusion_window": { "value": 0 },
         "retraction_hop": { "value": 0.4 },
         "retraction_hop_enabled": { "value": true },
         "retraction_hop_only_when_collides": { "value": false },
-        "retraction_min_travel": { "value": "0.6" },
+        "retraction_min_travel":
+        {
+            "minimum_value_warning": "line_width * 1.25",
+            "value": 0.6
+        },
         "retraction_prime_speed": { "value": "retraction_speed" },
         "retraction_speed": { "value": 5 },
-        "roofing_layer_count": { "value": 2 },
-        "roofing_material_flow": { "value": "material_flow" },
-        "roofing_monotonic": { "value": true },
+        "roofing_angles":
+        {
+            "value": [45, 135]
+        },
+        "roofing_layer_count":
+        {
+            "maximum_value_warning": 10,
+            "minimum_value": 0,
+            "minimum_value_warning": 1,
+            "value": 2
+        },
+        "skin_angles":
+        {
+            "value": [0, 90]
+        },
         "skin_material_flow": { "value": "material_flow" },
         "skin_material_flow_layer_0": { "value": "material_flow" },
         "skin_monotonic": { "value": true },
         "skin_outline_count": { "value": 0 },
         "skin_overlap": { "value": 0 },
         "skin_preshrink": { "value": 0 },
+        "skirt_brim_extruder_nr":
+        {
+            "enabled": false,
+            "value": "min(extruderValues('extruder_nr'))"
+        },
+        "skirt_brim_line_width": { "value": 1 },
         "skirt_brim_material_flow": { "value": "material_flow" },
         "skirt_brim_minimal_length": { "value": 500 },
+        "skirt_gap": { "value": 2 },
+        "skirt_height": { "value": 3 },
         "small_skin_width": { "value": 4 },
         "speed_equalize_flow_width_factor": { "value": 0 },
         "speed_prime_tower": { "value": "speed_topbottom" },
@@ -466,34 +522,58 @@
         "speed_wall_x": { "value": "speed_wall" },
         "support_angle": { "value": 40 },
         "support_bottom_height": { "value": "2*support_infill_sparse_thickness" },
+        "support_bottom_line_width":
+        {
+            "maximum_value": 3,
+            "maximum_value_warning": 1.8
+        },
         "support_bottom_material_flow": { "value": "material_flow" },
-        "support_bottom_wall_count": { "value": "0" },
+        "support_bottom_wall_count":
+        {
+            "maximum_value": 8,
+            "maximum_value_warning": 6,
+            "value": 0
+        },
         "support_brim_enable": { "value": false },
         "support_conical_min_width": { "value": 10 },
         "support_enable": { "value": true },
         "support_extruder_nr": { "value": "int(anyExtruderWithMaterial('material_is_support_material'))" },
         "support_fan_enable": { "value": "True" },
+        "support_infill_angles":
+        {
+            "value": [
+                45
+            ]
+        },
         "support_infill_rate": { "value": 20.0 },
         "support_infill_sparse_thickness": { "value": "layer_height" },
         "support_interface_enable": { "value": true },
         "support_interface_height": { "value": "4*support_infill_sparse_thickness" },
         "support_interface_material_flow": { "value": "material_flow" },
         "support_interface_offset": { "value": "1" },
-        "support_interface_pattern": { "value": "'lines'" },
+        "support_interface_pattern": { "value": "'zigzag' if support_wall_count > 1 else 'lines'" },
         "support_interface_wall_count": { "value": "1" },
+        "support_join_distance": { "value": "4.5 if support_wall_count > 1 else 2" },
         "support_material_flow": { "value": "material_flow" },
-        "support_offset": { "value": "1.8" },
-        "support_pattern": { "value": "'lines'" },
+        "support_offset": { "value": "2.4 if support_wall_count > 1 else 1.8" },
+        "support_pattern": { "value": "'zigzag' if support_wall_count > 1 else 'lines'" },
         "support_roof_height": { "value": "4*layer_height" },
         "support_roof_material_flow": { "value": "material_flow" },
         "support_supported_skin_fan_speed": { "value": "cool_fan_speed_max" },
-        "support_use_towers": { "value": "False" },
+        "support_use_towers": { "value": false },
         "support_wall_count": { "value": "2 if support_conical_enabled or support_structure == 'tree' else 0" },
         "support_xy_distance": { "value": 0.2 },
         "support_xy_distance_overhang": { "value": "support_xy_distance" },
         "switch_extruder_retraction_amount": { "value": 0.5 },
         "switch_extruder_retraction_speeds": { "value": "retraction_speed" },
-        "top_bottom_thickness": { "value": "5*layer_height" },
+        "top_bottom_pattern": { "value": "'zigzag'" },
+        "top_bottom_pattern_0": { "value": "'zigzag'" },
+        "top_bottom_thickness":
+        {
+            "minimum_value_warning": 0.3,
+            "value": "4*layer_height"
+        },
+        "top_thickness": { "value": "top_bottom_thickness * 1.5" },
         "travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
         "travel_avoid_other_parts": { "value": false },
         "wall_0_inset": { "value": 0 },

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

@@ -73,39 +73,7 @@
     "overrides":
     {
         "build_volume_temperature": { "maximum_value": "107" },
-        "machine_depth": { "default_value": 236.48 },
-        "machine_disallowed_areas":
-        {
-            "default_value": [
-                [
-                    [-141.65, -118.11],
-                    [141.65, -118.11],
-                    [141.65, -94],
-                    [-141.65, -94]
-                ],
-                [
-                    [-141.65, 118.37],
-                    [141.65, 118.37],
-                    [141.65, 94],
-                    [-141.65, 94]
-                ],
-                [
-                    [-141.65, -118.11],
-                    [-75, -118.11],
-                    [-75, 118.37],
-                    [-141.65, 118.37]
-                ],
-                [
-                    [75, -118.11],
-                    [141.65, -118.11],
-                    [141.65, 118.37],
-                    [75, 118.37]
-                ]
-            ]
-        },
-        "machine_height": { "default_value": 196 },
         "machine_name": { "default_value": "UltiMaker Method X" },
-        "machine_width": { "default_value": 283.3 },
         "prime_tower_position_x": { "value": "(150 / 2 + resolveOrValue('prime_tower_size') / 2) if resolveOrValue('machine_shape') == 'elliptic' else (150 - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_x'))), 1)) - (150 / 2 if resolveOrValue('machine_center_is_zero') else 0)" },
         "prime_tower_position_y": { "value": "190 - prime_tower_size - (resolveOrValue('prime_tower_base_size') if (resolveOrValue('adhesion_type') == 'raft' or resolveOrValue('prime_tower_brim_enable')) else 0) - max(max(extruderValues('travel_avoid_distance')) + max(extruderValues('support_offset')) + (extruderValue(skirt_brim_extruder_nr, 'skirt_brim_line_width') * extruderValue(skirt_brim_extruder_nr, 'skirt_line_count') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 + extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if resolveOrValue('adhesion_type') == 'skirt' else 0) + (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0), max(map(abs, extruderValues('machine_nozzle_offset_y'))), 1) - (190 / 2 if resolveOrValue('machine_center_is_zero') else 0)" }
     }

Некоторые файлы не были показаны из-за большого количества измененных файлов