Filter materials by the (approximate) material diameter of the printer

If a machine defines material diameter of 2.85mm, there is no use to show the 1.75mm materials and vice-versa
This commit is contained in:
fieldOfView 2017-04-12 23:03:58 +02:00
parent e0b927b53c
commit e92aaca7b6
3 changed files with 22 additions and 2 deletions

View file

@ -118,6 +118,7 @@ class XmlMaterialProfile(InstanceContainer):
metadata.pop("variant", "") metadata.pop("variant", "")
metadata.pop("type", "") metadata.pop("type", "")
metadata.pop("base_file", "") metadata.pop("base_file", "")
metadata.pop("approximate_diameter", "")
## Begin Name Block ## Begin Name Block
builder.start("name") builder.start("name")
@ -437,6 +438,7 @@ 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

@ -15,6 +15,15 @@ Menu
property int extruderIndex: 0 property int extruderIndex: 0
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
UM.SettingPropertyProvider
{
id: materialDiameterProvider
containerStackId: Cura.MachineManager.activeMachineId
key: "material_diameter"
watchedProperties: [ "value" ]
}
MenuItem MenuItem
{ {
id: automaticMaterial id: automaticMaterial
@ -141,7 +150,7 @@ Menu
function materialFilter() function materialFilter()
{ {
var result = { "type": "material" }; var result = { "type": "material", "approximate_diameter": Math.round(materialDiameterProvider.properties.value) };
if(Cura.MachineManager.filterMaterialsByMachine) if(Cura.MachineManager.filterMaterialsByMachine)
{ {
result.definition = Cura.MachineManager.activeQualityDefinitionId; result.definition = Cura.MachineManager.activeQualityDefinitionId;

View file

@ -18,7 +18,7 @@ UM.ManagementPage
{ {
filter: filter:
{ {
var result = { "type": "material" } var result = { "type": "material", "approximate_diameter": Math.round(materialDiameterProvider.properties.value) }
if(Cura.MachineManager.filterMaterialsByMachine) if(Cura.MachineManager.filterMaterialsByMachine)
{ {
result.definition = Cura.MachineManager.activeQualityDefinitionId; result.definition = Cura.MachineManager.activeQualityDefinitionId;
@ -327,6 +327,15 @@ UM.ManagementPage
id: messageDialog id: messageDialog
} }
UM.SettingPropertyProvider
{
id: materialDiameterProvider
containerStackId: Cura.MachineManager.activeMachineId
key: "material_diameter"
watchedProperties: [ "value" ]
}
UM.I18nCatalog { id: catalog; name: "cura"; } UM.I18nCatalog { id: catalog; name: "cura"; }
SystemPalette { id: palette } SystemPalette { id: palette }
} }