Merge branch 'master' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2017-05-12 16:40:19 +02:00
commit 68c7cd1ae5
265 changed files with 444 additions and 72 deletions

View File

@ -294,6 +294,7 @@ class CuraApplication(QtApplication):
z_seam_y z_seam_y
infill infill
infill_sparse_density infill_sparse_density
gradual_infill_steps
material material
material_print_temperature material_print_temperature
material_bed_temperature material_bed_temperature

View File

@ -1,4 +1,4 @@
# Copyright (c) 2016 Ultimaker B.V. # Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the AGPLv3 or higher. # Cura is released under the terms of the AGPLv3 or higher.
import os import os
@ -41,6 +41,14 @@ class CuraContainerRegistry(ContainerRegistry):
if type(container) == ContainerStack: if type(container) == ContainerStack:
container = self._convertContainerStack(container) container = self._convertContainerStack(container)
if isinstance(container, InstanceContainer) and type(container) != type(self.getEmptyInstanceContainer()):
#Check against setting version of the definition.
required_setting_version = int(container.getDefinition().getMetaDataEntry("setting_version"))
actual_setting_version = int(container.getMetaDataEntry("setting_version", default = 0))
if required_setting_version != actual_setting_version:
Logger.log("w", "Instance container {container_id} is outdated. Its setting version is {actual_setting_version} but it should be {required_setting_version}.".format(container_id = container.getId(), actual_setting_version = actual_setting_version, required_setting_version = required_setting_version))
return #Don't add.
super().addContainer(container) super().addContainer(container)
## Create a name that is not empty and unique ## Create a name that is not empty and unique

View File

@ -1,4 +1,4 @@
# Copyright (c) 2016 Ultimaker B.V. # Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the AGPLv3 or higher. # Cura is released under the terms of the AGPLv3 or higher.
import configparser #To get version numbers from config files. import configparser #To get version numbers from config files.
@ -249,7 +249,9 @@ class VersionUpgrade21to22(VersionUpgrade):
def getCfgVersion(self, serialised): def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised) parser.read_string(serialised)
return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
setting_version = int(parser.get("metadata", "setting_version", fallback = 0))
return format_version * 1000000 + setting_version
## Gets the fallback quality to use for a specific machine-variant-material ## Gets the fallback quality to use for a specific machine-variant-material
# combination. # combination.

View File

@ -19,9 +19,9 @@ def getMetaData():
}, },
"version_upgrade": { "version_upgrade": {
# From To Upgrade function # From To Upgrade function
("profile", 1): ("quality", 2, upgrade.upgradeProfile), ("profile", 1000000): ("quality", 2000000, upgrade.upgradeProfile),
("machine_instance", 1): ("machine_stack", 2, upgrade.upgradeMachineInstance), ("machine_instance", 1000000): ("machine_stack", 2000000, upgrade.upgradeMachineInstance),
("preferences", 2): ("preferences", 3, upgrade.upgradePreferences) ("preferences", 2000000): ("preferences", 3000000, upgrade.upgradePreferences)
}, },
"sources": { "sources": {
"profile": { "profile": {

View File

@ -1,4 +1,4 @@
# Copyright (c) 2016 Ultimaker B.V. # Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the AGPLv3 or higher. # Cura is released under the terms of the AGPLv3 or higher.
import configparser #To get version numbers from config files. import configparser #To get version numbers from config files.
@ -77,6 +77,7 @@ class VersionUpgrade22to24(VersionUpgrade):
with open(variant_path, "r") as fhandle: with open(variant_path, "r") as fhandle:
variant_config.read_file(fhandle) variant_config.read_file(fhandle)
config_name = "Unknown Variant"
if variant_config.has_section("general") and variant_config.has_option("general", "name"): if variant_config.has_section("general") and variant_config.has_option("general", "name"):
config_name = variant_config.get("general", "name") config_name = variant_config.get("general", "name")
if config_name.endswith("_variant"): if config_name.endswith("_variant"):
@ -144,4 +145,6 @@ class VersionUpgrade22to24(VersionUpgrade):
def getCfgVersion(self, serialised): def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised) parser.read_string(serialised)
return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
setting_version = int(parser.get("metadata", "setting_version", fallback = 0))
return format_version * 1000000 + setting_version

View File

@ -19,9 +19,9 @@ def getMetaData():
}, },
"version_upgrade": { "version_upgrade": {
# From To Upgrade function # From To Upgrade function
("machine_instance", 2): ("machine_stack", 3, upgrade.upgradeMachineInstance), ("machine_instance", 2000000): ("machine_stack", 3000000, upgrade.upgradeMachineInstance),
("extruder_train", 2): ("extruder_train", 3, upgrade.upgradeExtruderTrain), ("extruder_train", 2000000): ("extruder_train", 3000000, upgrade.upgradeExtruderTrain),
("preferences", 3): ("preferences", 4, upgrade.upgradePreferences) ("preferences", 3000000): ("preferences", 4000000, upgrade.upgradePreferences)
}, },
"sources": { "sources": {

View File

@ -7,7 +7,8 @@ import io #To serialise configparser output to a string.
from UM.VersionUpgrade import VersionUpgrade from UM.VersionUpgrade import VersionUpgrade
_removed_settings = { #Settings that were removed in 2.5. _removed_settings = { #Settings that were removed in 2.5.
"start_layers_at_same_position" "start_layers_at_same_position",
"sub_div_rad_mult"
} }
_split_settings = { #These settings should be copied to all settings it was split into. _split_settings = { #These settings should be copied to all settings it was split into.
@ -15,13 +16,13 @@ _split_settings = { #These settings should be copied to all settings it was spli
} }
## A collection of functions that convert the configuration of the user in Cura ## A collection of functions that convert the configuration of the user in Cura
# 2.4 to a configuration for Cura 2.5. # 2.5 to a configuration for Cura 2.6.
# #
# All of these methods are essentially stateless. # All of these methods are essentially stateless.
class VersionUpgrade24to25(VersionUpgrade): class VersionUpgrade25to26(VersionUpgrade):
## Gets the version number from a CFG file in Uranium's 2.4 format. ## Gets the version number from a CFG file in Uranium's 2.5 format.
# #
# Since the format may change, this is implemented for the 2.4 format only # Since the format may change, this is implemented for the 2.5 format only
# and needs to be included in the version upgrade system rather than # and needs to be included in the version upgrade system rather than
# globally in Uranium. # globally in Uranium.
# #
@ -33,9 +34,11 @@ class VersionUpgrade24to25(VersionUpgrade):
def getCfgVersion(self, serialised): def getCfgVersion(self, serialised):
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialised) parser.read_string(serialised)
return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
setting_version = int(parser.get("metadata", "setting_version", fallback = 0))
return format_version * 1000000 + setting_version
## Upgrades the preferences file from version 2.4 to 2.5. ## Upgrades the preferences file from version 2.5 to 2.6.
# #
# \param serialised The serialised form of a preferences file. # \param serialised The serialised form of a preferences file.
# \param filename The name of the file to upgrade. # \param filename The name of the file to upgrade.
@ -66,7 +69,7 @@ class VersionUpgrade24to25(VersionUpgrade):
parser.write(output) parser.write(output)
return [filename], [output.getvalue()] return [filename], [output.getvalue()]
## Upgrades an instance container from version 2.4 to 2.5. ## Upgrades an instance container from version 2.5 to 2.6.
# #
# \param serialised The serialised form of a quality profile. # \param serialised The serialised form of a quality profile.
# \param filename The name of the file to upgrade. # \param filename The name of the file to upgrade.
@ -85,7 +88,7 @@ class VersionUpgrade24to25(VersionUpgrade):
#Change the version number in the file. #Change the version number in the file.
if parser.has_section("general"): if parser.has_section("general"):
parser["general"]["version"] = "3" parser["general"]["setting_version"] = "1"
#Re-serialise the file. #Re-serialise the file.
output = io.StringIO() output = io.StringIO()

View File

@ -1,28 +1,28 @@
# Copyright (c) 2017 Ultimaker B.V. # Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the AGPLv3 or higher. # Cura is released under the terms of the AGPLv3 or higher.
from . import VersionUpgrade24to25 from . import VersionUpgrade25to26
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura") catalog = i18nCatalog("cura")
upgrade = VersionUpgrade24to25.VersionUpgrade24to25() upgrade = VersionUpgrade25to26.VersionUpgrade25to26()
def getMetaData(): def getMetaData():
return { return {
"plugin": { "plugin": {
"name": catalog.i18nc("@label", "Version Upgrade 2.4 to 2.5"), "name": catalog.i18nc("@label", "Version Upgrade 2.5 to 2.6"),
"author": "Ultimaker", "author": "Ultimaker",
"version": "1.0", "version": "1.0",
"description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.4 to Cura 2.5."), "description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.5 to Cura 2.6."),
"api": 3 "api": 3
}, },
"version_upgrade": { "version_upgrade": {
# From To Upgrade function # From To Upgrade function
("preferences", 4): ("preferences", 5, upgrade.upgradePreferences), ("preferences", 4000000): ("preferences", 4000001, upgrade.upgradePreferences),
("quality", 2): ("quality", 3, upgrade.upgradeInstanceContainer), ("quality", 2000000): ("quality", 2000001, upgrade.upgradeInstanceContainer),
("variant", 2): ("variant", 3, upgrade.upgradeInstanceContainer), #We can re-use upgradeContainerStack since there is nothing specific to quality, variant or user profiles being changed. ("variant", 2000000): ("variant", 2000001, upgrade.upgradeInstanceContainer), #We can re-use upgradeContainerStack since there is nothing specific to quality, variant or user profiles being changed.
("user", 2): ("user", 3, upgrade.upgradeInstanceContainer) ("user", 2000000): ("user", 2000001, upgrade.upgradeInstanceContainer)
}, },
"sources": { "sources": {
"quality": { "quality": {
@ -41,5 +41,4 @@ def getMetaData():
} }
def register(app): def register(app):
return {}
return { "version_upgrade": upgrade } return { "version_upgrade": upgrade }

View File

@ -4,12 +4,12 @@
import configparser #To check whether the appropriate exceptions are raised. import configparser #To check whether the appropriate exceptions are raised.
import pytest #To register tests with. import pytest #To register tests with.
import VersionUpgrade24to25 #The module we're testing. import VersionUpgrade25to26 #The module we're testing.
## Creates an instance of the upgrader to test with. ## Creates an instance of the upgrader to test with.
@pytest.fixture @pytest.fixture
def upgrader(): def upgrader():
return VersionUpgrade24to25.VersionUpgrade24to25() return VersionUpgrade25to26.VersionUpgrade25to26()
test_cfg_version_good_data = [ test_cfg_version_good_data = [
{ {
@ -17,7 +17,7 @@ test_cfg_version_good_data = [
"file_data": """[general] "file_data": """[general]
version = 1 version = 1
""", """,
"version": 1 "version": 1000000
}, },
{ {
"test_name": "Other Data Around", "test_name": "Other Data Around",
@ -31,14 +31,32 @@ version = 3
layer_height = 0.12 layer_height = 0.12
infill_sparse_density = 42 infill_sparse_density = 42
""", """,
"version": 3 "version": 3000000
}, },
{ {
"test_name": "Negative Version", #Why not? "test_name": "Negative Version", #Why not?
"file_data": """[general] "file_data": """[general]
version = -20 version = -20
""", """,
"version": -20 "version": -20000000
},
{
"test_name": "Setting Version",
"file_data": """[general]
version = 1
[metadata]
setting_version = 1
""",
"version": 1000001
},
{
"test_name": "Negative Setting Version",
"file_data": """[general]
version = 1
[metadata]
setting_version = -3
""",
"version": 999997
} }
] ]
@ -77,6 +95,22 @@ true = false
"test_name": "Not a Number", "test_name": "Not a Number",
"file_data": """[general] "file_data": """[general]
version = not-a-text-version-number version = not-a-text-version-number
""",
"exception": ValueError
},
{
"test_name": "Setting Value NaN",
"file_data": """[general]
version = 4
[metadata]
setting_version = latest_or_something
""",
"exception": ValueError
},
{
"test_name": "Major-Minor",
"file_data": """[general]
version = 1.2
""", """,
"exception": ValueError "exception": ValueError
} }
@ -121,7 +155,7 @@ foo = bar
} }
] ]
## Tests whether the settings that should be removed are removed for the 2.5 ## Tests whether the settings that should be removed are removed for the 2.6
# version of preferences. # version of preferences.
@pytest.mark.parametrize("data", test_upgrade_preferences_removed_settings_data) @pytest.mark.parametrize("data", test_upgrade_preferences_removed_settings_data)
def test_upgradePreferencesRemovedSettings(data, upgrader): def test_upgradePreferencesRemovedSettings(data, upgrader):
@ -137,7 +171,7 @@ def test_upgradePreferencesRemovedSettings(data, upgrader):
upgraded_preferences = upgraded_preferences[0] upgraded_preferences = upgraded_preferences[0]
#Find whether the removed setting is removed from the file now. #Find whether the removed setting is removed from the file now.
settings -= VersionUpgrade24to25._removed_settings settings -= VersionUpgrade25to26._removed_settings
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None)
parser.read_string(upgraded_preferences) parser.read_string(upgraded_preferences)
assert (parser.has_section("general") and "visible_settings" in parser["general"]) == (len(settings) > 0) #If there are settings, there must also be a preference. assert (parser.has_section("general") and "visible_settings" in parser["general"]) == (len(settings) > 0) #If there are settings, there must also be a preference.
@ -166,7 +200,7 @@ type = instance_container
} }
] ]
## Tests whether the settings that should be removed are removed for the 2.5 ## Tests whether the settings that should be removed are removed for the 2.6
# version of instance containers. # version of instance containers.
@pytest.mark.parametrize("data", test_upgrade_instance_container_removed_settings_data) @pytest.mark.parametrize("data", test_upgrade_instance_container_removed_settings_data)
def test_upgradeInstanceContainerRemovedSettings(data, upgrader): def test_upgradeInstanceContainerRemovedSettings(data, upgrader):
@ -182,7 +216,7 @@ def test_upgradeInstanceContainerRemovedSettings(data, upgrader):
upgraded_container = upgraded_container[0] upgraded_container = upgraded_container[0]
#Find whether the forbidden setting is still in the container. #Find whether the forbidden setting is still in the container.
settings -= VersionUpgrade24to25._removed_settings settings -= VersionUpgrade25to26._removed_settings
parser = configparser.ConfigParser(interpolation = None) parser = configparser.ConfigParser(interpolation = None)
parser.read_string(upgraded_container) parser.read_string(upgraded_container)
assert parser.has_section("values") == (len(settings) > 0) #If there are settings, there must also be the values category. assert parser.has_section("values") == (len(settings) > 0) #If there are settings, there must also be the values category.

View File

@ -21,6 +21,17 @@ class XmlMaterialProfile(InstanceContainer):
super().__init__(container_id, *args, **kwargs) super().__init__(container_id, *args, **kwargs)
self._inherited_files = [] self._inherited_files = []
## Translates the version number in the XML files to the setting_version
# metadata entry.
#
# Since the two may increment independently we need a way to say which
# versions of the XML specification are compatible with our setting data
# version numbers.
def xmlVersionToSettingVersion(self, xml_version):
if xml_version == 1: #Only one known version and it happens to be the same as our current setting_version.
return 1
return 0
def getInheritedFiles(self): def getInheritedFiles(self):
return self._inherited_files return self._inherited_files
@ -403,6 +414,7 @@ class XmlMaterialProfile(InstanceContainer):
meta_data["type"] = "material" meta_data["type"] = "material"
meta_data["base_file"] = self.id meta_data["base_file"] = self.id
meta_data["status"] = "unknown" # TODO: Add material verfication meta_data["status"] = "unknown" # TODO: Add material verfication
meta_data["setting_version"] = self.getVersionFromSerialized(serialized)
inherits = data.find("./um:inherits", self.__namespaces) inherits = data.find("./um:inherits", self.__namespaces)
if inherits is not None: if inherits is not None:
@ -441,8 +453,7 @@ class XmlMaterialProfile(InstanceContainer):
tag_name = _tag_without_namespace(entry) tag_name = _tag_without_namespace(entry)
property_values[tag_name] = entry.text property_values[tag_name] = entry.text
diameter = float(property_values.get("diameter", 2.85)) # In mm meta_data["approximate_diameter"] = round(float(property_values.get("diameter", 2.85))) # In mm
density = float(property_values.get("density", 1.3)) # In g/cm3
meta_data["properties"] = property_values meta_data["properties"] = property_values
self.setDefinition(ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0]) self.setDefinition(ContainerRegistry.getInstance().findDefinitionContainers(id = "fdmprinter")[0])
@ -461,7 +472,6 @@ class XmlMaterialProfile(InstanceContainer):
Logger.log("d", "Unsupported material setting %s", key) Logger.log("d", "Unsupported material setting %s", key)
self._cached_values = global_setting_values self._cached_values = global_setting_values
meta_data["approximate_diameter"] = round(diameter)
meta_data["compatible"] = global_compatibility meta_data["compatible"] = global_compatibility
self.setMetaData(meta_data) self.setMetaData(meta_data)
self._dirty = False self._dirty = False

View File

@ -7,6 +7,7 @@
"type": "extruder", "type": "extruder",
"author": "Ultimaker B.V.", "author": "Ultimaker B.V.",
"manufacturer": "Ultimaker", "manufacturer": "Ultimaker",
"setting_version": 1,
"visible": false "visible": false
}, },
"settings": "settings":

View File

@ -8,6 +8,7 @@
"author": "Ultimaker B.V.", "author": "Ultimaker B.V.",
"category": "Ultimaker", "category": "Ultimaker",
"manufacturer": "Ultimaker", "manufacturer": "Ultimaker",
"setting_version": 1,
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g", "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g",
"visible": false, "visible": false,
"has_materials": true, "has_materials": true,
@ -1217,19 +1218,6 @@
"enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"sub_div_rad_mult":
{
"label": "Cubic Subdivision Radius",
"description": "A multiplier on the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to more subdivisions, i.e. more small cubes.",
"unit": "%",
"type": "float",
"default_value": 100,
"minimum_value": "0",
"minimum_value_warning": "100",
"maximum_value_warning": "200",
"enabled": "infill_sparse_density > 0 and infill_pattern == 'cubicsubdiv'",
"settable_per_mesh": true
},
"sub_div_rad_add": "sub_div_rad_add":
{ {
"label": "Cubic Subdivision Shell", "label": "Cubic Subdivision Shell",
@ -3636,7 +3624,7 @@
"none": "None" "none": "None"
}, },
"default_value": "brim", "default_value": "brim",
"resolve": "'raft' if 'raft' in extruderValues('adhesion_type') else ('brim' if 'brim' in extruderValues('adhesion_type') else 'skirt')", "limit_to_extruder": "adhesion_extruder_nr",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": false "settable_per_extruder": false
}, },

View File

@ -56,7 +56,6 @@ UM.Dialog
{ {
text: catalog.i18nc("@text:window", "You have customized some profile settings.\nWould you like to keep or discard those settings?") text: catalog.i18nc("@text:window", "You have customized some profile settings.\nWould you like to keep or discard those settings?")
anchors.margins: UM.Theme.getSize("default_margin").width anchors.margins: UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("default")
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
} }

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = High Quality name = High Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 1 weight = 1
quality_type = high quality_type = high
setting_version = 1
[values] [values]
layer_height = 0.1 layer_height = 0.1

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = High Quality name = High Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 1 weight = 1
quality_type = high quality_type = high
setting_version = 1
[values] [values]
layer_height = 0.1 layer_height = 0.1

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = High Quality name = High Quality
@ -8,6 +7,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 1 weight = 1
quality_type = high quality_type = high
setting_version = 1
[values] [values]
layer_height = 0.1 layer_height = 0.1

View File

@ -1,4 +1,3 @@
[general] [general]
version = 2 version = 2
name = Normal Quality name = Normal Quality
@ -9,6 +8,7 @@ type = quality
material = generic_pla material = generic_pla
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_abs_175_cartesio_0.25_mm material = generic_abs_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_abs_175_cartesio_0.25_mm material = generic_abs_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_abs_175_cartesio_0.4_mm material = generic_abs_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_abs_175_cartesio_0.4_mm material = generic_abs_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_abs_175_cartesio_0.8_mm material = generic_abs_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_abs_175_cartesio_0.8_mm material = generic_abs_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_abs_175_cartesio_0.8_mm material = generic_abs_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_abs_175_cartesio_0.8_mm material = generic_abs_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = dsm_arnitel2045_175_cartesio_0.4_mm material = dsm_arnitel2045_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = dsm_arnitel2045_175_cartesio_0.4_mm material = dsm_arnitel2045_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
global_quality = True global_quality = True
weight = 0 weight = 0
setting_version = 1
[values] [values]
layer_height = 0.4 layer_height = 0.4

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
global_quality = True global_quality = True
weight = 0 weight = 0
setting_version = 1
[values] [values]
layer_height = 0.6 layer_height = 0.6

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
global_quality = True global_quality = True
weight = 0 weight = 0
setting_version = 1
[values] [values]
layer_height = 0.1 layer_height = 0.1

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
global_quality = True global_quality = True
weight = 0 weight = 0
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_hips_175_cartesio_0.25_mm material = generic_hips_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_hips_175_cartesio_0.25_mm material = generic_hips_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_hips_175_cartesio_0.4_mm material = generic_hips_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_hips_175_cartesio_0.4_mm material = generic_hips_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_hips_175_cartesio_0.8_mm material = generic_hips_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_hips_175_cartesio_0.8_mm material = generic_hips_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_hips_175_cartesio_0.8_mm material = generic_hips_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_hips_175_cartesio_0.8_mm material = generic_hips_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_nylon_175_cartesio_0.25_mm material = generic_nylon_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_nylon_175_cartesio_0.25_mm material = generic_nylon_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_nylon_175_cartesio_0.4_mm material = generic_nylon_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_nylon_175_cartesio_0.4_mm material = generic_nylon_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_nylon_175_cartesio_0.8_mm material = generic_nylon_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_nylon_175_cartesio_0.8_mm material = generic_nylon_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_nylon_175_cartesio_0.8_mm material = generic_nylon_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_nylon_175_cartesio_0.8_mm material = generic_nylon_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pc_175_cartesio_0.25_mm material = generic_pc_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pc_175_cartesio_0.25_mm material = generic_pc_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pc_175_cartesio_0.4_mm material = generic_pc_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pc_175_cartesio_0.4_mm material = generic_pc_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_pc_175_cartesio_0.8_mm material = generic_pc_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_pc_175_cartesio_0.8_mm material = generic_pc_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pc_175_cartesio_0.8_mm material = generic_pc_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pc_175_cartesio_0.8_mm material = generic_pc_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_petg_175_cartesio_0.25_mm material = generic_petg_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_petg_175_cartesio_0.25_mm material = generic_petg_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_petg_175_cartesio_0.4_mm material = generic_petg_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_petg_175_cartesio_0.4_mm material = generic_petg_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_petg_175_cartesio_0.8_mm material = generic_petg_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_petg_175_cartesio_0.8_mm material = generic_petg_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_petg_175_cartesio_0.8_mm material = generic_petg_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_petg_175_cartesio_0.8_mm material = generic_petg_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pla_175_cartesio_0.25_mm material = generic_pla_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pla_175_cartesio_0.25_mm material = generic_pla_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pla_175_cartesio_0.4_mm material = generic_pla_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pla_175_cartesio_0.4_mm material = generic_pla_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_pla_175_cartesio_0.8_mm material = generic_pla_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_pla_175_cartesio_0.8_mm material = generic_pla_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pla_175_cartesio_0.8_mm material = generic_pla_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pla_175_cartesio_0.8_mm material = generic_pla_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pva_175_cartesio_0.25_mm material = generic_pva_175_cartesio_0.25_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pva_175_cartesio_0.25_mm material = generic_pva_175_cartesio_0.25_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.3 infill_line_width = 0.3

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pva_175_cartesio_0.4_mm material = generic_pva_175_cartesio_0.4_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pva_175_cartesio_0.4_mm material = generic_pva_175_cartesio_0.4_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.5 infill_line_width = 0.5

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
material = generic_pva_175_cartesio_0.8_mm material = generic_pva_175_cartesio_0.8_mm
weight = 3 weight = 3
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = extra coarse quality_type = extra coarse
material = generic_pva_175_cartesio_0.8_mm material = generic_pva_175_cartesio_0.8_mm
weight = 4 weight = 4
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
material = generic_pva_175_cartesio_0.8_mm material = generic_pva_175_cartesio_0.8_mm
weight = 1 weight = 1
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = normal quality_type = normal
material = generic_pva_175_cartesio_0.8_mm material = generic_pva_175_cartesio_0.8_mm
weight = 2 weight = 2
setting_version = 1
[values] [values]
infill_line_width = 0.9 infill_line_width = 0.9

View File

@ -8,6 +8,7 @@ type = quality
quality_type = coarse quality_type = coarse
global_quality = True global_quality = True
weight = -3 weight = -3
setting_version = 1
[values] [values]
layer_height = 0.4 layer_height = 0.4

View File

@ -9,6 +9,7 @@ type = quality
quality_type = draft quality_type = draft
global_quality = True global_quality = True
weight = -2 weight = -2
setting_version = 1
[values] [values]
layer_height = 0.2 layer_height = 0.2

View File

@ -8,6 +8,7 @@ type = quality
quality_type = Extra coarse quality_type = Extra coarse
global_quality = True global_quality = True
weight = -4 weight = -4
setting_version = 1
[values] [values]
layer_height = 0.6 layer_height = 0.6

View File

@ -8,6 +8,7 @@ type = quality
quality_type = high quality_type = high
global_quality = True global_quality = True
weight = 1 weight = 1
setting_version = 1
[values] [values]
layer_height = 0.06 layer_height = 0.06

View File

@ -8,6 +8,7 @@ type = quality
material = generic_petg_imade3d_jellybox_0.4_mm material = generic_petg_imade3d_jellybox_0.4_mm
weight = -1 weight = -1
quality_type = fast quality_type = fast
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_petg_imade3d_jellybox_0.4_mm_2-fans material = generic_petg_imade3d_jellybox_0.4_mm_2-fans
weight = -1 weight = -1
quality_type = fast quality_type = fast
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_petg_imade3d_jellybox_0.4_mm material = generic_petg_imade3d_jellybox_0.4_mm
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_petg_imade3d_jellybox_0.4_mm_2-fans material = generic_petg_imade3d_jellybox_0.4_mm_2-fans
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm material = generic_pla_imade3d_jellybox_0.4_mm
weight = -1 weight = -1
quality_type = fast quality_type = fast
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm_2-fans material = generic_pla_imade3d_jellybox_0.4_mm_2-fans
weight = -1 weight = -1
quality_type = fast quality_type = fast
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm material = generic_pla_imade3d_jellybox_0.4_mm
weight = 1 weight = 1
quality_type = high quality_type = high
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm_2-fans material = generic_pla_imade3d_jellybox_0.4_mm_2-fans
weight = 1 weight = 1
quality_type = high quality_type = high
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm material = generic_pla_imade3d_jellybox_0.4_mm
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm_2-fans material = generic_pla_imade3d_jellybox_0.4_mm_2-fans
weight = 0 weight = 0
quality_type = normal quality_type = normal
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm material = generic_pla_imade3d_jellybox_0.4_mm
weight = 2 weight = 2
quality_type = ultrahigh quality_type = ultrahigh
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View File

@ -8,6 +8,7 @@ type = quality
material = generic_pla_imade3d_jellybox_0.4_mm_2-fans material = generic_pla_imade3d_jellybox_0.4_mm_2-fans
weight = 2 weight = 2
quality_type = ultrahigh quality_type = ultrahigh
setting_version = 1
[values] [values]
adhesion_type = skirt adhesion_type = skirt

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