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

This commit is contained in:
Aleksei S 2018-02-19 15:05:16 +01:00
commit 8d98f20751
11 changed files with 163 additions and 11 deletions

View File

@ -228,16 +228,23 @@ class CuraContainerRegistry(ContainerRegistry):
Logger.log("e", "Incorrect profile [%s]. Could not find global profile", file_name) Logger.log("e", "Incorrect profile [%s]. Could not find global profile", file_name)
return { "status": "error", return { "status": "error",
"message": catalog.i18nc("@info:status Don't translate the XML tags <filename> or <message>!", "This profile <filename>{0}</filename> contains incorrect data, could not import it.", file_name)} "message": catalog.i18nc("@info:status Don't translate the XML tags <filename> or <message>!", "This profile <filename>{0}</filename> contains incorrect data, could not import it.", file_name)}
# In a profile we can have the quality_definition metadata, but if not, we get the definition
profile_definition = global_profile.getMetaDataEntry("quality_definition")
if not profile_definition:
profile_definition = global_profile.getMetaDataEntry("definition") profile_definition = global_profile.getMetaDataEntry("definition")
expected_machine_definition = "fdmprinter"
# The expected machine definition may be the quality_definition if defined or the current definition id
expected_machine_definition = None
if parseBool(global_container_stack.getMetaDataEntry("has_machine_quality", "False")): if parseBool(global_container_stack.getMetaDataEntry("has_machine_quality", "False")):
expected_machine_definition = global_container_stack.getMetaDataEntry("quality_definition") expected_machine_definition = global_container_stack.getMetaDataEntry("quality_definition")
if not expected_machine_definition: if not expected_machine_definition:
expected_machine_definition = global_container_stack.definition.getId() expected_machine_definition = global_container_stack.definition.getId()
if expected_machine_definition is not None and profile_definition is not None and profile_definition != expected_machine_definition: if expected_machine_definition is not None and profile_definition is not None and profile_definition != expected_machine_definition:
Logger.log("e", "Profile [%s] is for machine [%s] but the current active machine is [%s]. Will not import the profile", file_name, profile_definition, expected_machine_definition) Logger.log("e", "Profile [%s] is for machine [%s] but the current active machine is [%s]. Will not import the profile", file_name, profile_definition, expected_machine_definition)
return { "status": "error", return { "status": "error",
"message": catalog.i18nc("@info:status Don't translate the XML tags <filename> or <message>!", "The machine defined in profile <filename>{0}</filename> doesn't match with your current machine, could not import it.", file_name)} "message": catalog.i18nc("@info:status Don't translate the XML tags <filename> or <message>!", "The machine defined in profile <filename>{0}</filename> ({1}) doesn't match with your current machine ({2}), could not import it.", file_name, profile_definition, expected_machine_definition)}
name_seed = os.path.splitext(os.path.basename(file_name))[0] name_seed = os.path.splitext(os.path.basename(file_name))[0]
new_name = self.uniqueName(name_seed) new_name = self.uniqueName(name_seed)

View File

@ -9,7 +9,7 @@ class MaterialSettingsVisibilityHandler(UM.Settings.Models.SettingVisibilityHand
material_settings = { material_settings = {
"default_material_print_temperature", "default_material_print_temperature",
"material_bed_temperature", "default_material_bed_temperature",
"material_standby_temperature", "material_standby_temperature",
#"material_flow_temp_graph", #"material_flow_temp_graph",
"cool_fan_speed", "cool_fan_speed",

View File

@ -192,7 +192,7 @@ class CuraEngineBackend(QObject, Backend):
## Perform a slice of the scene. ## Perform a slice of the scene.
def slice(self): def slice(self):
Logger.log("d", "starting to slice!") Logger.log("d", "Starting to slice...")
self._slice_start_time = time() self._slice_start_time = time()
if not self._build_plates_to_be_sliced: if not self._build_plates_to_be_sliced:
self.processingProgress.emit(1.0) self.processingProgress.emit(1.0)
@ -200,7 +200,7 @@ class CuraEngineBackend(QObject, Backend):
return return
if self._process_layers_job: if self._process_layers_job:
Logger.log("d", " ## Process layers job still busy, trying later") Logger.log("d", "Process layers job still busy, trying later.")
return return
if not hasattr(self._scene, "gcode_dict"): if not hasattr(self._scene, "gcode_dict"):

View File

@ -5,6 +5,7 @@ from UM.Mesh.MeshWriter import MeshWriter
from UM.Logger import Logger from UM.Logger import Logger
from UM.Application import Application from UM.Application import Application
from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.InstanceContainer import InstanceContainer
from UM.Util import parseBool
from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderManager import ExtruderManager
@ -120,6 +121,10 @@ class GCodeWriter(MeshWriter):
if flat_global_container.getMetaDataEntry("quality_type", None) is None: if flat_global_container.getMetaDataEntry("quality_type", None) is None:
flat_global_container.addMetaDataEntry("quality_type", stack.quality.getMetaDataEntry("quality_type", "normal")) flat_global_container.addMetaDataEntry("quality_type", stack.quality.getMetaDataEntry("quality_type", "normal"))
# Ensure that quality_definition is set. (Can happen if we have empty quality changes).
if parseBool(stack.getMetaDataEntry("has_machine_quality", "False")):
flat_global_container.addMetaDataEntry("quality_definition", stack.getMetaDataEntry("quality_definition"))
serialized = flat_global_container.serialize() serialized = flat_global_container.serialize()
data = {"global_quality": serialized} data = {"global_quality": serialized}

View File

@ -7,7 +7,6 @@
"author": "Dagoma", "author": "Dagoma",
"manufacturer": "Dagoma", "manufacturer": "Dagoma",
"file_formats": "text/x-gcode", "file_formats": "text/x-gcode",
"icon": "icon_discoeasy200.png",
"platform": "discoeasy200.stl", "platform": "discoeasy200.stl",
"platform_offset": [ 105, -59, 280] "platform_offset": [ 105, -59, 280]
}, },
@ -39,13 +38,25 @@
"default_value": 10 "default_value": 10
}, },
"machine_start_gcode": { "machine_start_gcode": {
"default_value": ";Gcode by Cura\nG90 ;absolute positioning\nM106 S250 ;fan on for the palpeur\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{material_print_temperature_layer_0}\n;Activation palpeur\n;bloc palpeur\nG29 ;Auto level\nM107 ;start with the fan off\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{material_print_temperature_layer_0}\nM82 ;set extruder to absolute mode\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 Z3\nG1 F6000" "default_value": ";Gcode by Cura\nG90\nM106 S250\nG28 X Y\nG1 X50\nM109 S180\nG28\nM104 S{material_print_temperature_layer_0}\nG29\nM107\nG1 X100 Y20 F3000\nG1 Z0.5\nM109 S{material_print_temperature_layer_0}\nM82\nG92 E0\nG1 F200 E10\nG92 E0\nG1 Z3\nG1 F6000\n"
}, },
"machine_end_gcode": { "machine_end_gcode": {
"default_value": "M104 S0\nM106 S255 ;start fan full power\nM140 S0 ;heated bed heater off (if you have it)\n;Home machine\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+3 F3000 ;move Z up a bit and retract filament even more\nG90\nG28 X Y\n;Ventilation forcee\nM107 ;stop fan\n;Shut down motor\nM84 ;shut down motors" "default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 F3000\nG90\nG28 X Y\nM107\nM84\n"
}, },
"material_diameter": { "material_diameter": {
"default_value": 1.75 "default_value": 1.75
},
"speed_print": {
"default_value": 60
},
"speed_travel": {
"default_value": 100
},
"retraction_amount": {
"default_value": 3.5
},
"retraction_speed": {
"default_value": 50
} }
} }
} }

View File

@ -0,0 +1,69 @@
{
"id": "Dagoma_neva",
"name": "Dagoma NEVA",
"version": 2,
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "Dagoma",
"manufacturer": "Dagoma",
"file_formats": "text/x-gcode",
"platform": "neva.stl",
"platform_offset": [ 0, 0, 0]
},
"overrides": {
"machine_width": {
"default_value": 195.55
},
"machine_height": {
"default_value": 205
},
"machine_depth": {
"default_value": 195.55
},
"machine_center_is_zero": {
"default_value": true
},
"machine_nozzle_size": {
"default_value": 0.4
},
"machine_head_with_fans_polygon": {
"default_value": [
[17, 40],
[17, -70],
[-17, -70],
[17, 40]
]
},
"gantry_height": {
"default_value": 0
},
"machine_shape": {
"default_value": "elliptic"
},
"machine_gcode_flavor": {
"default_value": "RepRap"
},
"machine_start_gcode": {
"default_value": ";Gcode by Cura\nG90\nG28\nM109 S100\nG29\nM104 S{material_print_temperature_layer_0}\nG0 X0 Y-85\nG0 Z0.26\nM109 S{material_print_temperature_layer_0}\nM82\nG92 E0\nG1 F200 E6\nG92 E0\nG1 F200 E-3.5\nG0 Z0.15\nG0 X10\nG0 Z3\nG1 F6000\n"
},
"machine_end_gcode": {
"default_value": "\nM104 S0\nM106 S255\nM140 S0\nG91\nG1 E-1 F300\nG1 Z+3 E-2 F9000\nG90\nG28\n"
},
"material_diameter": {
"default_value": 1.75
},
"speed_print": {
"default_value": 40
},
"speed_travel": {
"default_value": 120
},
"retraction_amount": {
"default_value": 3.8
},
"retraction_speed": {
"default_value": 60
}
}
}

View File

@ -0,0 +1,49 @@
{
"id": "ubuild-3d_mr_bot_280",
"version": 2,
"name": "uBuild-3D Mr Bot 280",
"inherits": "fdmprinter",
"metadata": {
"visible": true,
"author": "uBuild-3D",
"manufacturer": "uBuild-3D",
"category": "Other",
"file_formats": "text/x-gcode",
"icon": "icon_uBuild-3D",
"platform": "mr_bot_280_platform.stl",
"has_materials": true
},
"overrides": {
"machine_name": { "default_value": "Mr Bot 280" },
"machine_heated_bed": { "default_value": true },
"machine_width": { "default_value": 275 },
"machine_height": { "default_value": 275 },
"machine_depth": { "default_value": 275 },
"machine_center_is_zero": { "default_value": false },
"material_diameter": { "default_value": 1.75 },
"material_bed_temperature": { "default_value": 70 },
"machine_nozzle_size": { "default_value": 0.4 },
"layer_height": { "default_value": 0.2 },
"layer_height_0": { "default_value": 0.1 },
"retraction_amount": { "default_value": 2 },
"retraction_speed": { "default_value": 50 },
"retraction_retract_speed": { "default_value": 50 },
"retraction_prime_speed": { "default_value": 30 },
"adhesion_type": { "default_value": "skirt" },
"machine_nozzle_heat_up_speed": { "default_value": 2 },
"machine_nozzle_cool_down_speed": { "default_value": 2 },
"machine_head_with_fans_polygon": { "default_value": [[-20,20],[10,10],[10,10],[10,10]] },
"gantry_height": { "default_value": 275 },
"machine_max_feedrate_z": { "default_value": 15 },
"machine_max_feedrate_e": { "default_value": 60 },
"machine_max_acceleration_z": { "default_value": 1000 },
"machine_acceleration": { "default_value": 2000 },
"machine_max_jerk_xy": { "default_value": 20 },
"machine_max_jerk_z": { "default_value": 0.4 },
"machine_max_jerk_e": { "default_value": 5 },
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
"machine_start_gcode": { "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nM140 S{material_bed_temperature} ; set bed temp\nM104 S{material_print_temperature} ; set extruder temp\nG28 ; home X, Y and Z\nG29 ; probe sequence (for auto-leveling)\nG1 Z15 F600 ; go to Z15 position\nG1 X0 Y-20 F10000 ; go to X0 Y-20 position\nM190 S{material_bed_temperature} ; wait for bed temp\nM109 S{material_print_temperature} ; wait for extruder temp\nG92 E0 ; reset extruder distance position\nG1 E25 F100 ; extrude 25mm of material\nG92 E0 ; reset extruder distance position\nM117 Printing..." },
"machine_end_gcode": { "default_value": "M400 ; wait for moves to finish\nG92 Z0 E0 ; reset Z position\nG1 E-2 F9000 ; retract material\nG1 Z2 ; get extruder out of the way\nM104 S0 ; turn off extruder\nG1 Y285 F3000 ; present finished print\nM140 S0 ; turn off bed\nM84 ; disable motors\nM117 Print complete" }
}
}

View File

@ -3598,6 +3598,11 @@ msgctxt "@label"
msgid "SVG icons" msgid "SVG icons"
msgstr "" msgstr ""
#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:139
msgctxt "@label"
msgid "Linux cross-distribution application deployment"
msgstr ""
#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41
msgctxt "@label" msgctxt "@label"
msgid "Profile:" msgid "Profile:"

View File

@ -3485,6 +3485,11 @@ msgctxt "@label"
msgid "SVG icons" msgid "SVG icons"
msgstr "SVG-Symbole" msgstr "SVG-Symbole"
#: /home/ruben/Projects/Cura/resources/qml/AboutDialog.qml:139
msgctxt "@label"
msgid "Linux cross-distribution application deployment"
msgstr "Distributionsunabhängiges Format für Linux-Anwendungen"
#: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41 #: /home/ruben/Projects/Cura/resources/qml/Settings/SettingView.qml:41
msgctxt "@label" msgctxt "@label"
msgid "Profile:" msgid "Profile:"

BIN
resources/meshes/neva.stl Normal file

Binary file not shown.

View File

@ -136,6 +136,7 @@ UM.Dialog
projectsModel.append({ name:"Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" }); projectsModel.append({ name:"Noto Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://www.google.com/get/noto/" });
projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
projectsModel.append({ name:"AppImageKit", description: catalog.i18nc("@label", "Linux cross-distribution application deployment"), license: "MIT", url: "https://github.com/AppImage/AppImageKit" });
} }
} }
} }