mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 03:06:00 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
73026a0744
@ -60,7 +60,6 @@ class MachineSettingsManager(QObject):
|
||||
# In other words: only continue for the UM2 (extended), but not for the UM2+
|
||||
return
|
||||
|
||||
extruder_positions = list(global_stack.extruders.keys())
|
||||
has_materials = global_stack.getProperty("machine_gcode_flavor", "value") != "UltiGCode"
|
||||
|
||||
material_node = None
|
||||
@ -73,12 +72,11 @@ class MachineSettingsManager(QObject):
|
||||
global_stack.removeMetaDataEntry("has_materials")
|
||||
|
||||
# set materials
|
||||
for position in extruder_positions:
|
||||
for position, extruder in enumerate(global_stack.extruderList):
|
||||
if has_materials:
|
||||
extruder = global_stack.extruderList[int(position)]
|
||||
approximate_diameter = extruder.getApproximateMaterialDiameter()
|
||||
variant_node = ContainerTree.getInstance().machines[global_stack.definition.getId()].variants[extruder.variant.getName()]
|
||||
material_node = variant_node.preferredMaterial(approximate_diameter)
|
||||
machine_manager.setMaterial(position, material_node)
|
||||
machine_manager.setMaterial(str(position), material_node)
|
||||
|
||||
self.forceUpdate()
|
||||
|
@ -23,7 +23,7 @@
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Ultimaker 2" },
|
||||
"machine_start_gcode" : {
|
||||
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
|
||||
"value": "\"G0 F3000 Y50 ;avoid prime blob\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 Y50 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
|
||||
},
|
||||
"machine_end_gcode" : {
|
||||
"value": "\";Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\" if machine_gcode_flavor == \"UltiGCode\" else \"M104 S0 ;extruder heater off\\nM140 S0 ;heated bed heater off (if you have it)\\nG91 ;relative positioning\\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\\nM84 ;steppers off\\nG90 ;absolute positioning\\n;Version _2.6 of the firmware can abort the print too early if the file ends\\n;too soon. However if the file hasn't ended yet because there are comments at\\n;the end of the file, it won't abort yet. Therefore we have to put at least 512\\n;bytes at the end of the g-code so that the file is not yet finished by the\\n;time that the motion planner gets flushed. With firmware version _3.3 this\\n;should be fixed, so this comment wouldn't be necessary any more. Now we have\\n;to pad this text to make precisely 512 bytes.\""
|
||||
|
@ -14,6 +14,7 @@ class TestContainerManager(TestCase):
|
||||
self._application = MagicMock()
|
||||
self._container_registry = MagicMock()
|
||||
self._machine_manager = MagicMock()
|
||||
self._machine_manager.activeMachine.extruderList = [MagicMock(name="Left Extruder Mock"), MagicMock(name="Right Extruder Mock")]
|
||||
|
||||
self._mocked_mime = MagicMock()
|
||||
self._mocked_mime.preferredSuffix = "omg"
|
||||
|
@ -24,6 +24,11 @@ def setting_override_decorator():
|
||||
|
||||
|
||||
def test_onSettingValueChanged(setting_override_decorator):
|
||||
def mock_getRawProperty(key, property_name, *args, **kwargs):
|
||||
if property_name == "limit_to_extruder":
|
||||
return "-1"
|
||||
return MagicMock(name="rawProperty")
|
||||
container_registry.findContainerStacks().__getitem__().getRawProperty = mock_getRawProperty
|
||||
# On creation the needs slicing should be called once (as it being added should trigger a reslice)
|
||||
assert application.getBackend().needsSlicing.call_count == 1
|
||||
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
|
||||
|
Loading…
x
Reference in New Issue
Block a user