mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 22:05:59 +08:00
Merge remote-tracking branch 'upstream/master' into Rigid3D
This commit is contained in:
commit
522aec56ca
@ -1733,7 +1733,7 @@ class CuraApplication(QtApplication):
|
|||||||
def log(self, msg):
|
def log(self, msg):
|
||||||
Logger.log("d", msg)
|
Logger.log("d", msg)
|
||||||
|
|
||||||
openProjectFile = pyqtSignal(QUrl, arguments = ["project_file"]) # Emitted when a project file is about to open.
|
openProjectFile = pyqtSignal(QUrl, bool, arguments = ["project_file", "add_to_recent_files"]) # Emitted when a project file is about to open.
|
||||||
|
|
||||||
@pyqtSlot(QUrl, str, bool)
|
@pyqtSlot(QUrl, str, bool)
|
||||||
@pyqtSlot(QUrl, str)
|
@pyqtSlot(QUrl, str)
|
||||||
@ -1743,6 +1743,7 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
:param project_mode: How to handle project files. Either None(default): Follow user preference, "open_as_model"
|
:param project_mode: How to handle project files. Either None(default): Follow user preference, "open_as_model"
|
||||||
or "open_as_project". This parameter is only considered if the file is a project file.
|
or "open_as_project". This parameter is only considered if the file is a project file.
|
||||||
|
:param add_to_recent_files: Whether or not to add the file as an option to the Recent Files list.
|
||||||
"""
|
"""
|
||||||
Logger.log("i", "Attempting to read file %s", file.toString())
|
Logger.log("i", "Attempting to read file %s", file.toString())
|
||||||
if not file.isValid():
|
if not file.isValid():
|
||||||
@ -1768,7 +1769,7 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
if is_project_file and project_mode == "always_ask":
|
if is_project_file and project_mode == "always_ask":
|
||||||
# present a dialog asking to open as project or import models
|
# present a dialog asking to open as project or import models
|
||||||
self.callLater(self.openProjectFile.emit, file)
|
self.callLater(self.openProjectFile.emit, file, add_to_recent_files)
|
||||||
return
|
return
|
||||||
|
|
||||||
# Either the file is a model file or we want to load only models from project. Continue to load models.
|
# Either the file is a model file or we want to load only models from project. Continue to load models.
|
||||||
@ -1940,7 +1941,7 @@ class CuraApplication(QtApplication):
|
|||||||
try:
|
try:
|
||||||
result = workspace_reader.preRead(file_path, show_dialog=False)
|
result = workspace_reader.preRead(file_path, show_dialog=False)
|
||||||
return result == WorkspaceReader.PreReadResult.accepted
|
return result == WorkspaceReader.PreReadResult.accepted
|
||||||
except Exception:
|
except:
|
||||||
Logger.logException("e", "Could not check file %s", file_url)
|
Logger.logException("e", "Could not check file %s", file_url)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -301,6 +301,7 @@ class PrintInformation(QObject):
|
|||||||
if self._base_name == "":
|
if self._base_name == "":
|
||||||
self._job_name = self.UNTITLED_JOB_NAME
|
self._job_name = self.UNTITLED_JOB_NAME
|
||||||
self._is_user_specified_job_name = False
|
self._is_user_specified_job_name = False
|
||||||
|
self._application.getController().getScene().clearMetaData()
|
||||||
self.jobNameChanged.emit()
|
self.jobNameChanged.emit()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2019 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
@ -163,9 +163,9 @@ class ThreeMFReader(MeshReader):
|
|||||||
um_node.callDecoration("getStack").getTop().setDefinition(definition_id)
|
um_node.callDecoration("getStack").getTop().setDefinition(definition_id)
|
||||||
|
|
||||||
setting_container = um_node.callDecoration("getStack").getTop()
|
setting_container = um_node.callDecoration("getStack").getTop()
|
||||||
|
known_setting_keys = um_node.callDecoration("getStack").getAllKeys()
|
||||||
for key in settings:
|
for key in settings:
|
||||||
setting_value = settings[key]
|
setting_value = settings[key].value
|
||||||
|
|
||||||
# Extruder_nr is a special case.
|
# Extruder_nr is a special case.
|
||||||
if key == "extruder_nr":
|
if key == "extruder_nr":
|
||||||
@ -175,7 +175,10 @@ class ThreeMFReader(MeshReader):
|
|||||||
else:
|
else:
|
||||||
Logger.log("w", "Unable to find extruder in position %s", setting_value)
|
Logger.log("w", "Unable to find extruder in position %s", setting_value)
|
||||||
continue
|
continue
|
||||||
|
if key in known_setting_keys:
|
||||||
setting_container.setProperty(key, "value", setting_value)
|
setting_container.setProperty(key, "value", setting_value)
|
||||||
|
else:
|
||||||
|
um_node.metadata[key] = settings[key]
|
||||||
|
|
||||||
if len(um_node.getChildren()) > 0 and um_node.getMeshData() is None:
|
if len(um_node.getChildren()) > 0 and um_node.getMeshData() is None:
|
||||||
if len(um_node.getAllChildren()) == 1:
|
if len(um_node.getAllChildren()) == 1:
|
||||||
@ -206,6 +209,10 @@ class ThreeMFReader(MeshReader):
|
|||||||
parser = Savitar.ThreeMFParser()
|
parser = Savitar.ThreeMFParser()
|
||||||
scene_3mf = parser.parse(archive.open("3D/3dmodel.model").read())
|
scene_3mf = parser.parse(archive.open("3D/3dmodel.model").read())
|
||||||
self._unit = scene_3mf.getUnit()
|
self._unit = scene_3mf.getUnit()
|
||||||
|
|
||||||
|
for key, value in scene_3mf.getMetadata().items():
|
||||||
|
CuraApplication.getInstance().getController().getScene().setMetaDataEntry(key, value)
|
||||||
|
|
||||||
for node in scene_3mf.getSceneNodes():
|
for node in scene_3mf.getSceneNodes():
|
||||||
um_node = self._convertSavitarNodeToUMNode(node, file_name)
|
um_node = self._convertSavitarNodeToUMNode(node, file_name)
|
||||||
if um_node is None:
|
if um_node is None:
|
||||||
|
@ -14,6 +14,7 @@ from cura.CuraApplication import CuraApplication
|
|||||||
import Savitar
|
import Savitar
|
||||||
|
|
||||||
import numpy
|
import numpy
|
||||||
|
import datetime
|
||||||
|
|
||||||
MYPY = False
|
MYPY = False
|
||||||
try:
|
try:
|
||||||
@ -108,7 +109,11 @@ class ThreeMFWriter(MeshWriter):
|
|||||||
|
|
||||||
# Get values for all changed settings & save them.
|
# Get values for all changed settings & save them.
|
||||||
for key in changed_setting_keys:
|
for key in changed_setting_keys:
|
||||||
savitar_node.setSetting(key, str(stack.getProperty(key, "value")))
|
savitar_node.setSetting("cura:" + key, str(stack.getProperty(key, "value")))
|
||||||
|
|
||||||
|
# Store the metadata.
|
||||||
|
for key, value in um_node.metadata.items():
|
||||||
|
savitar_node.setSetting(key, value)
|
||||||
|
|
||||||
for child_node in um_node.getChildren():
|
for child_node in um_node.getChildren():
|
||||||
# only save the nodes on the active build plate
|
# only save the nodes on the active build plate
|
||||||
@ -145,6 +150,22 @@ class ThreeMFWriter(MeshWriter):
|
|||||||
model_relation_element = ET.SubElement(relations_element, "Relationship", Target = "/3D/3dmodel.model", Id = "rel0", Type = "http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel")
|
model_relation_element = ET.SubElement(relations_element, "Relationship", Target = "/3D/3dmodel.model", Id = "rel0", Type = "http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel")
|
||||||
|
|
||||||
savitar_scene = Savitar.Scene()
|
savitar_scene = Savitar.Scene()
|
||||||
|
|
||||||
|
metadata_to_store = CuraApplication.getInstance().getController().getScene().getMetaData()
|
||||||
|
|
||||||
|
for key, value in metadata_to_store.items():
|
||||||
|
savitar_scene.setMetaDataEntry(key, value)
|
||||||
|
|
||||||
|
current_time_string = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
if "Application" not in metadata_to_store:
|
||||||
|
# This might sound a bit strange, but this field should store the original application that created
|
||||||
|
# the 3mf. So if it was already set, leave it to whatever it was.
|
||||||
|
savitar_scene.setMetaDataEntry("Application", CuraApplication.getInstance().getApplicationDisplayName())
|
||||||
|
if "CreationDate" not in metadata_to_store:
|
||||||
|
savitar_scene.setMetaDataEntry("CreationDate", current_time_string)
|
||||||
|
|
||||||
|
savitar_scene.setMetaDataEntry("ModificationDate", current_time_string)
|
||||||
|
|
||||||
transformation_matrix = Matrix()
|
transformation_matrix = Matrix()
|
||||||
transformation_matrix._data[1, 1] = 0
|
transformation_matrix._data[1, 1] = 0
|
||||||
transformation_matrix._data[1, 2] = -1
|
transformation_matrix._data[1, 2] = -1
|
||||||
|
198
resources/definitions/trimaker_cosmosII.def.json
Normal file
198
resources/definitions/trimaker_cosmosII.def.json
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Trimaker Cosmos II",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata": {
|
||||||
|
"visible": true,
|
||||||
|
"author": "Trimaker",
|
||||||
|
"manufacturer": "Trimaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "trimaker_cosmosII_platform.stl",
|
||||||
|
"platform_offset": [-110.5, -28.3, 134],
|
||||||
|
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"preferred_material": "redd_pla",
|
||||||
|
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains": {"0": "trimaker_cosmosII_extruder"},
|
||||||
|
"exclude_materials": [
|
||||||
|
"chromatik_pla",
|
||||||
|
"dsm_arnitel2045_175",
|
||||||
|
"dsm_novamid1070_175",
|
||||||
|
"emotiontech_abs",
|
||||||
|
"emotiontech_absx",
|
||||||
|
"emotiontech_asax",
|
||||||
|
"emotiontech_bvoh",
|
||||||
|
"emotiontech_hips",
|
||||||
|
"emotiontech_petg",
|
||||||
|
"emotiontech_pla",
|
||||||
|
"emotiontech_pva-m",
|
||||||
|
"emotiontech_pva-oks",
|
||||||
|
"emotiontech_pva-s",
|
||||||
|
"emotiontech_tpu98a",
|
||||||
|
"eSUN_PETG_Black",
|
||||||
|
"eSUN_PETG_Grey",
|
||||||
|
"eSUN_PETG_Purple",
|
||||||
|
"eSUN_PLA_PRO_Black",
|
||||||
|
"eSUN_PLA_PRO_Grey",
|
||||||
|
"eSUN_PLA_PRO_Purple",
|
||||||
|
"eSUN_PLA_PRO_White",
|
||||||
|
"fabtotum_abs",
|
||||||
|
"fabtotum_nylon",
|
||||||
|
"fabtotum_pla",
|
||||||
|
"fabtotum_tpu",
|
||||||
|
"fiberlogy_hd_pla",
|
||||||
|
"filo3d_pla",
|
||||||
|
"filo3d_pla_green",
|
||||||
|
"filo3d_pla_red",
|
||||||
|
"generic_abs_175",
|
||||||
|
"generic_bam",
|
||||||
|
"generic_cffcpe",
|
||||||
|
"generic_cffpa",
|
||||||
|
"generic_cpe",
|
||||||
|
"generic_cpe_175",
|
||||||
|
"generic_cpe_plus",
|
||||||
|
"generic_gffcpe",
|
||||||
|
"generic_gffpa",
|
||||||
|
"generic_hips",
|
||||||
|
"generic_hips_175",
|
||||||
|
"generic_nylon",
|
||||||
|
"generic_nylon_175",
|
||||||
|
"generic_pc",
|
||||||
|
"generic_pc_175",
|
||||||
|
"generic_petg",
|
||||||
|
"generic_petg_175",
|
||||||
|
"generic_pla",
|
||||||
|
"generic_pla_175",
|
||||||
|
"generic_pp",
|
||||||
|
"generic_pva",
|
||||||
|
"generic_pva_175",
|
||||||
|
"generic_tough_pla",
|
||||||
|
"generic_tpu",
|
||||||
|
"generic_tpu_175",
|
||||||
|
"imade3d_petg_175",
|
||||||
|
"imade3d_pla_175",
|
||||||
|
"innofill_innoflex60_175",
|
||||||
|
"leapfrog_abs_natural",
|
||||||
|
"leapfrog_epla_natural",
|
||||||
|
"leapfrog_pva_natural",
|
||||||
|
"octofiber_pla",
|
||||||
|
"polyflex_pla",
|
||||||
|
"polymax_pla",
|
||||||
|
"polyplus_pla",
|
||||||
|
"polywood_pla",
|
||||||
|
"structur3d_dap100silicone",
|
||||||
|
"tizyx_abs",
|
||||||
|
"tizyx_flex",
|
||||||
|
"tizyx_petg",
|
||||||
|
"tizyx_pla",
|
||||||
|
"tizyx_pla_bois",
|
||||||
|
"tizyx_pva",
|
||||||
|
"ultimaker_abs_black",
|
||||||
|
"ultimaker_abs_blue",
|
||||||
|
"ultimaker_abs_green",
|
||||||
|
"ultimaker_abs_grey",
|
||||||
|
"ultimaker_abs_orange",
|
||||||
|
"ultimaker_abs_pearl-gold",
|
||||||
|
"ultimaker_abs_red",
|
||||||
|
"ultimaker_abs_silver-metallic",
|
||||||
|
"ultimaker_abs_white",
|
||||||
|
"ultimaker_abs_yellow",
|
||||||
|
"ultimaker_bam",
|
||||||
|
"ultimaker_cpe_black",
|
||||||
|
"ultimaker_cpe_blue",
|
||||||
|
"ultimaker_cpe_dark-grey",
|
||||||
|
"ultimaker_cpe_green",
|
||||||
|
"ultimaker_cpe_light-grey",
|
||||||
|
"ultimaker_cpe_plus_black",
|
||||||
|
"ultimaker_cpe_plus_transparent",
|
||||||
|
"ultimaker_cpe_plus_white",
|
||||||
|
"ultimaker_cpe_red",
|
||||||
|
"ultimaker_cpe_transparent",
|
||||||
|
"ultimaker_cpe_white",
|
||||||
|
"ultimaker_cpe_yellow",
|
||||||
|
"ultimaker_nylon_black",
|
||||||
|
"ultimaker_nylon_transparent",
|
||||||
|
"ultimaker_pc_black",
|
||||||
|
"ultimaker_pc_transparent",
|
||||||
|
"ultimaker_pc_white",
|
||||||
|
"ultimaker_pla_black",
|
||||||
|
"ultimaker_pla_blue",
|
||||||
|
"ultimaker_pla_green",
|
||||||
|
"ultimaker_pla_magenta",
|
||||||
|
"ultimaker_pla_orange",
|
||||||
|
"ultimaker_pla_pearl-white",
|
||||||
|
"ultimaker_pla_red",
|
||||||
|
"ultimaker_pla_silver-metallic",
|
||||||
|
"ultimaker_pla_transparent",
|
||||||
|
"ultimaker_pla_white",
|
||||||
|
"ultimaker_pla_yellow",
|
||||||
|
"ultimaker_pp_transparent",
|
||||||
|
"ultimaker_pva",
|
||||||
|
"ultimaker_tough_pla_black",
|
||||||
|
"ultimaker_tough_pla_green",
|
||||||
|
"ultimaker_tough_pla_red",
|
||||||
|
"ultimaker_tough_pla_white",
|
||||||
|
"ultimaker_tpu_black",
|
||||||
|
"ultimaker_tpu_blue",
|
||||||
|
"ultimaker_tpu_red",
|
||||||
|
"ultimaker_tpu_white",
|
||||||
|
"verbatim_bvoh_175",
|
||||||
|
"Vertex_Delta_ABS",
|
||||||
|
"Vertex_Delta_PET",
|
||||||
|
"Vertex_Delta_PLA",
|
||||||
|
"Vertex_Delta_PLA_Glitter",
|
||||||
|
"Vertex_Delta_PLA_Mat",
|
||||||
|
"Vertex_Delta_PLA_Satin",
|
||||||
|
"Vertex_Delta_PLA_Wood",
|
||||||
|
"Vertex_Delta_TPU",
|
||||||
|
"zyyx_pro_flex",
|
||||||
|
"zyyx_pro_pla"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
|
||||||
|
"machine_name": {"default_value": "Trimaker Cosmos II"},
|
||||||
|
"machine_width": {"default_value": 200},
|
||||||
|
"machine_depth": {"default_value": 200},
|
||||||
|
"machine_height": {"default_value": 200},
|
||||||
|
|
||||||
|
"layer_height": {"default_value": 0.2},
|
||||||
|
"material_flow": {"value": 100},
|
||||||
|
"xy_offset": {"default_value": 0},
|
||||||
|
"xy_offset_layer_0": {"value": -0.1},
|
||||||
|
"wall_thickness": {"value": "line_width * 3" },
|
||||||
|
"top_bottom_thickness": {"value": "layer_height * 6"},
|
||||||
|
"infill_sparse_density": {"default_value": 25},
|
||||||
|
"infill_pattern": {"value": "'grid'"},
|
||||||
|
"infill_sparse_thickness": {"value": "resolveOrValue('layer_height')"},
|
||||||
|
"default_material_bed_temperature": {"default_value": 60},
|
||||||
|
"default_material_print_temperature": {"default_value": 200},
|
||||||
|
"speed_print": {"default_value": 45},
|
||||||
|
"speed_travel": {"value": "speed_print if magic_spiralize else 100"},
|
||||||
|
"speed_wall_0": {"value": 35},
|
||||||
|
"speed_wall_x": {"value": 45},
|
||||||
|
"retraction_enable": {"default_value": true},
|
||||||
|
"retraction_amount": {"default_value": 1},
|
||||||
|
"retraction_speed": {"default_value": 45},
|
||||||
|
"cool_fan_enabled": {"default_value": true},
|
||||||
|
"cool_fan_speed": {"value": "100.0 if cool_fan_enabled else 0.0"},
|
||||||
|
"support_enable": {"default_value": true},
|
||||||
|
"support_type": {"default_value": "everywhere"},
|
||||||
|
"support_angle": {"default_value": 50},
|
||||||
|
"support_pattern": {"default_value": "zigzag"},
|
||||||
|
"support_z_distance": {"default_value": 0.17},
|
||||||
|
"support_xy_distance": {"default_value": 0.7},
|
||||||
|
"adhesion_type": {"default_value": "skirt"},
|
||||||
|
|
||||||
|
"gantry_height": {"value": 2},
|
||||||
|
"machine_start_gcode": {"default_value": ";Start GCode - Cosmos II - 3.x.x_SEGcTK_1.1\n M104 S120; Comienzo a calentar extrusor\n G21; Unidades en mm\n G90; absolute positioning\n M82; set extruder to absolute mode\n M107; Apagar FAN\n G28; Home\n M190 S{material_bed_temperature_layer_0}\n G29; Senso la cama\n M500\n G1 F5000 X0.5 Y0.5\n M109 S{material_print_temperature}\n M900 K0.04\n G1 F200 Z10\n G92 E0; Defino cero en la posición del actual del extrusor\n G1 F200 X0.5 Y0.5 Z0.300; Posiciono antes de hacer una línea\n G1 F900 X0.5 Y51.5 E2.56436; Hago una línea\n "},
|
||||||
|
"machine_end_gcode": {"default_value": ";CODIGO FINAL\n M107; Fan off\n G90; Set to absolute positioning\n G1 X0 Y0 Z201; Get extruder out of way\n G92 E0; Reset extruder position\n G1 E-1; Reduce filament pressure\n G92 E0; Reset extruder position again\n M140 S0; Disable heated bed\n M104 S0; Disable extruder\n M84; Turn steppers off"},
|
||||||
|
"machine_heated_bed": {"default_value": true},
|
||||||
|
"material_diameter": {"default_value": 1.75},
|
||||||
|
"machine_center_is_zero": {"default_value": false}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
198
resources/definitions/trimaker_nebula.def.json
Normal file
198
resources/definitions/trimaker_nebula.def.json
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Trimaker Nebula",
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata": {
|
||||||
|
"visible": true,
|
||||||
|
"author": "Trimaker",
|
||||||
|
"manufacturer": "Trimaker",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"platform": "trimaker_nebula_platform.stl",
|
||||||
|
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"preferred_material": "redd_pla",
|
||||||
|
|
||||||
|
"platform_offset": [-117.5, -40, 147.5],
|
||||||
|
"has_materials": true,
|
||||||
|
"machine_extruder_trains": {"0": "trimaker_nebula_extruder"},
|
||||||
|
"exclude_materials": [
|
||||||
|
"chromatik_pla",
|
||||||
|
"dsm_arnitel2045_175",
|
||||||
|
"dsm_novamid1070_175",
|
||||||
|
"emotiontech_abs",
|
||||||
|
"emotiontech_absx",
|
||||||
|
"emotiontech_asax",
|
||||||
|
"emotiontech_bvoh",
|
||||||
|
"emotiontech_hips",
|
||||||
|
"emotiontech_petg",
|
||||||
|
"emotiontech_pla",
|
||||||
|
"emotiontech_pva-m",
|
||||||
|
"emotiontech_pva-oks",
|
||||||
|
"emotiontech_pva-s",
|
||||||
|
"emotiontech_tpu98a",
|
||||||
|
"eSUN_PETG_Black",
|
||||||
|
"eSUN_PETG_Grey",
|
||||||
|
"eSUN_PETG_Purple",
|
||||||
|
"eSUN_PLA_PRO_Black",
|
||||||
|
"eSUN_PLA_PRO_Grey",
|
||||||
|
"eSUN_PLA_PRO_Purple",
|
||||||
|
"eSUN_PLA_PRO_White",
|
||||||
|
"fabtotum_abs",
|
||||||
|
"fabtotum_nylon",
|
||||||
|
"fabtotum_pla",
|
||||||
|
"fabtotum_tpu",
|
||||||
|
"fiberlogy_hd_pla",
|
||||||
|
"filo3d_pla",
|
||||||
|
"filo3d_pla_green",
|
||||||
|
"filo3d_pla_red",
|
||||||
|
"generic_abs_175",
|
||||||
|
"generic_bam",
|
||||||
|
"generic_cffcpe",
|
||||||
|
"generic_cffpa",
|
||||||
|
"generic_cpe",
|
||||||
|
"generic_cpe_175",
|
||||||
|
"generic_cpe_plus",
|
||||||
|
"generic_gffcpe",
|
||||||
|
"generic_gffpa",
|
||||||
|
"generic_hips",
|
||||||
|
"generic_hips_175",
|
||||||
|
"generic_nylon",
|
||||||
|
"generic_nylon_175",
|
||||||
|
"generic_pc",
|
||||||
|
"generic_pc_175",
|
||||||
|
"generic_petg",
|
||||||
|
"generic_petg_175",
|
||||||
|
"generic_pla",
|
||||||
|
"generic_pla_175",
|
||||||
|
"generic_pp",
|
||||||
|
"generic_pva",
|
||||||
|
"generic_pva_175",
|
||||||
|
"generic_tough_pla",
|
||||||
|
"generic_tpu",
|
||||||
|
"generic_tpu_175",
|
||||||
|
"imade3d_petg_175",
|
||||||
|
"imade3d_pla_175",
|
||||||
|
"innofill_innoflex60_175",
|
||||||
|
"leapfrog_abs_natural",
|
||||||
|
"leapfrog_epla_natural",
|
||||||
|
"leapfrog_pva_natural",
|
||||||
|
"octofiber_pla",
|
||||||
|
"polyflex_pla",
|
||||||
|
"polymax_pla",
|
||||||
|
"polyplus_pla",
|
||||||
|
"polywood_pla",
|
||||||
|
"structur3d_dap100silicone",
|
||||||
|
"tizyx_abs",
|
||||||
|
"tizyx_flex",
|
||||||
|
"tizyx_petg",
|
||||||
|
"tizyx_pla",
|
||||||
|
"tizyx_pla_bois",
|
||||||
|
"tizyx_pva",
|
||||||
|
"ultimaker_abs_black",
|
||||||
|
"ultimaker_abs_blue",
|
||||||
|
"ultimaker_abs_green",
|
||||||
|
"ultimaker_abs_grey",
|
||||||
|
"ultimaker_abs_orange",
|
||||||
|
"ultimaker_abs_pearl-gold",
|
||||||
|
"ultimaker_abs_red",
|
||||||
|
"ultimaker_abs_silver-metallic",
|
||||||
|
"ultimaker_abs_white",
|
||||||
|
"ultimaker_abs_yellow",
|
||||||
|
"ultimaker_bam",
|
||||||
|
"ultimaker_cpe_black",
|
||||||
|
"ultimaker_cpe_blue",
|
||||||
|
"ultimaker_cpe_dark-grey",
|
||||||
|
"ultimaker_cpe_green",
|
||||||
|
"ultimaker_cpe_light-grey",
|
||||||
|
"ultimaker_cpe_plus_black",
|
||||||
|
"ultimaker_cpe_plus_transparent",
|
||||||
|
"ultimaker_cpe_plus_white",
|
||||||
|
"ultimaker_cpe_red",
|
||||||
|
"ultimaker_cpe_transparent",
|
||||||
|
"ultimaker_cpe_white",
|
||||||
|
"ultimaker_cpe_yellow",
|
||||||
|
"ultimaker_nylon_black",
|
||||||
|
"ultimaker_nylon_transparent",
|
||||||
|
"ultimaker_pc_black",
|
||||||
|
"ultimaker_pc_transparent",
|
||||||
|
"ultimaker_pc_white",
|
||||||
|
"ultimaker_pla_black",
|
||||||
|
"ultimaker_pla_blue",
|
||||||
|
"ultimaker_pla_green",
|
||||||
|
"ultimaker_pla_magenta",
|
||||||
|
"ultimaker_pla_orange",
|
||||||
|
"ultimaker_pla_pearl-white",
|
||||||
|
"ultimaker_pla_red",
|
||||||
|
"ultimaker_pla_silver-metallic",
|
||||||
|
"ultimaker_pla_transparent",
|
||||||
|
"ultimaker_pla_white",
|
||||||
|
"ultimaker_pla_yellow",
|
||||||
|
"ultimaker_pp_transparent",
|
||||||
|
"ultimaker_pva",
|
||||||
|
"ultimaker_tough_pla_black",
|
||||||
|
"ultimaker_tough_pla_green",
|
||||||
|
"ultimaker_tough_pla_red",
|
||||||
|
"ultimaker_tough_pla_white",
|
||||||
|
"ultimaker_tpu_black",
|
||||||
|
"ultimaker_tpu_blue",
|
||||||
|
"ultimaker_tpu_red",
|
||||||
|
"ultimaker_tpu_white",
|
||||||
|
"verbatim_bvoh_175",
|
||||||
|
"Vertex_Delta_ABS",
|
||||||
|
"Vertex_Delta_PET",
|
||||||
|
"Vertex_Delta_PLA",
|
||||||
|
"Vertex_Delta_PLA_Glitter",
|
||||||
|
"Vertex_Delta_PLA_Mat",
|
||||||
|
"Vertex_Delta_PLA_Satin",
|
||||||
|
"Vertex_Delta_PLA_Wood",
|
||||||
|
"Vertex_Delta_TPU",
|
||||||
|
"zyyx_pro_flex",
|
||||||
|
"zyyx_pro_pla"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
|
||||||
|
"machine_name": {"default_value": "Trimaker Nebula"},
|
||||||
|
"machine_width": {"default_value": 230},
|
||||||
|
"machine_depth": {"default_value": 230},
|
||||||
|
"machine_height": {"default_value": 260},
|
||||||
|
|
||||||
|
"layer_height": {"default_value": 0.2},
|
||||||
|
"material_flow": {"value": 100},
|
||||||
|
"xy_offset": {"default_value": 0},
|
||||||
|
"xy_offset_layer_0": {"value": -0.1},
|
||||||
|
"wall_thickness": {"value": "line_width * 3" },
|
||||||
|
"top_bottom_thickness": {"value": "layer_height * 6"},
|
||||||
|
"infill_sparse_density": {"default_value": 25},
|
||||||
|
"infill_pattern": {"value": "'grid'"},
|
||||||
|
"infill_sparse_thickness": {"value": "resolveOrValue('layer_height')"},
|
||||||
|
"default_material_bed_temperature": {"default_value": 60},
|
||||||
|
"default_material_print_temperature": {"default_value": 200},
|
||||||
|
"speed_print": {"default_value": 45},
|
||||||
|
"speed_travel": {"value": "speed_print if magic_spiralize else 100"},
|
||||||
|
"speed_wall_0": {"value": 35},
|
||||||
|
"speed_wall_x": {"value": 45},
|
||||||
|
"retraction_enable": {"default_value": true},
|
||||||
|
"retraction_amount": {"default_value": 1},
|
||||||
|
"retraction_speed": {"default_value": 45},
|
||||||
|
"cool_fan_enabled": {"default_value": true},
|
||||||
|
"cool_fan_speed": {"value": "100.0 if cool_fan_enabled else 0.0"},
|
||||||
|
"support_enable": {"default_value": true},
|
||||||
|
"support_type": {"default_value": "everywhere"},
|
||||||
|
"support_angle": {"default_value": 50},
|
||||||
|
"support_pattern": {"default_value": "zigzag"},
|
||||||
|
"support_z_distance": {"default_value": 0.17},
|
||||||
|
"support_xy_distance": {"default_value": 0.7},
|
||||||
|
"adhesion_type": {"default_value": "skirt"},
|
||||||
|
|
||||||
|
"gantry_height": {"value": 2},
|
||||||
|
"machine_start_gcode": {"default_value": ";Trimaker Nebula Start Code\n G21; Unidades en mm\n G90; Posicion absoluta\n M82; Extrusor en modo absoluto\n M107; Fan apagado\n G28 X Y Z; Enviamos a home a todos los ejes\n M900 K=0; Linear advance desactivado\n M104 S110; Precalentamos el extrusor hasta 110 grados\n M190 S{material_bed_temperature_layer_0}; Calentamos cama y esperamos\n M109 S{material_print_temperature}; Calentamos extrusor y esperamos\n G92 E0; E=0\n G1 F200 X0.5 Y0.5 Z0.300\n G1 F900 X0.5 Y51.5 E2.56436; Hacemos una linea para limpiar extrusor\n"},
|
||||||
|
"machine_end_gcode": {"default_value": ";Trimaker Nebula End Code\n M107; Apagamos fan\n G90\n G92 E0\n G1 X0 Y200\n G91\n G1 Z5\n G92 E0\n M140 S0; Enfriamos\n M104 S0; Enfriamos\n M84\n G90\n M117 Impresion finalizada\n M300 S440 P700\n"},
|
||||||
|
"machine_heated_bed": {"default_value": true},
|
||||||
|
"material_diameter": {"default_value": 1.75},
|
||||||
|
"machine_center_is_zero": {"default_value": false}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
15
resources/extruders/trimaker_cosmosII_extruder.def.json
Normal file
15
resources/extruders/trimaker_cosmosII_extruder.def.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "trimaker_cosmosII",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
15
resources/extruders/trimaker_nebula_extruder.def.json
Normal file
15
resources/extruders/trimaker_nebula_extruder.def.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "trimaker_nebula",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
BIN
resources/meshes/trimaker_cosmosII_platform.stl
Normal file
BIN
resources/meshes/trimaker_cosmosII_platform.stl
Normal file
Binary file not shown.
BIN
resources/meshes/trimaker_nebula_platform.stl
Normal file
BIN
resources/meshes/trimaker_nebula_platform.stl
Normal file
Binary file not shown.
@ -691,6 +691,9 @@ UM.MainWindow
|
|||||||
|
|
||||||
function handleOpenFiles(selectedMultipleFiles, hasProjectFile, fileUrlList, projectFileUrlList)
|
function handleOpenFiles(selectedMultipleFiles, hasProjectFile, fileUrlList, projectFileUrlList)
|
||||||
{
|
{
|
||||||
|
// Make sure the files opened through the openFilesIncludingProjectDialog are added to the recent files list
|
||||||
|
openFilesIncludingProjectsDialog.addToRecent = true;
|
||||||
|
|
||||||
// we only allow opening one project file
|
// we only allow opening one project file
|
||||||
if (selectedMultipleFiles && hasProjectFile)
|
if (selectedMultipleFiles && hasProjectFile)
|
||||||
{
|
{
|
||||||
@ -717,6 +720,7 @@ UM.MainWindow
|
|||||||
{
|
{
|
||||||
// ask whether to open as project or as models
|
// ask whether to open as project or as models
|
||||||
askOpenAsProjectOrModelsDialog.fileUrl = projectFile;
|
askOpenAsProjectOrModelsDialog.fileUrl = projectFile;
|
||||||
|
askOpenAsProjectOrModelsDialog.addToRecent = true;
|
||||||
askOpenAsProjectOrModelsDialog.show();
|
askOpenAsProjectOrModelsDialog.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -776,6 +780,7 @@ UM.MainWindow
|
|||||||
onOpenProjectFile:
|
onOpenProjectFile:
|
||||||
{
|
{
|
||||||
askOpenAsProjectOrModelsDialog.fileUrl = project_file;
|
askOpenAsProjectOrModelsDialog.fileUrl = project_file;
|
||||||
|
askOpenAsProjectOrModelsDialog.addToRecent = add_to_recent_files;
|
||||||
askOpenAsProjectOrModelsDialog.show();
|
askOpenAsProjectOrModelsDialog.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ UM.Dialog
|
|||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
|
|
||||||
property var fileUrl
|
property var fileUrl
|
||||||
|
property var addToRecent: true //Whether to add this file to the recent files list after reading it.
|
||||||
|
|
||||||
// load the entire project
|
// load the entire project
|
||||||
function loadProjectFile() {
|
function loadProjectFile() {
|
||||||
@ -37,8 +38,7 @@ UM.Dialog
|
|||||||
UM.Preferences.setValue("cura/choice_on_open_project", "open_as_project")
|
UM.Preferences.setValue("cura/choice_on_open_project", "open_as_project")
|
||||||
}
|
}
|
||||||
|
|
||||||
var addToRecent = UM.WorkspaceFileHandler.getAddToRecentFilesHint(base.fileUrl);
|
UM.WorkspaceFileHandler.readLocalFile(base.fileUrl, base.addToRecent);
|
||||||
UM.WorkspaceFileHandler.readLocalFile(base.fileUrl, addToRecent);
|
|
||||||
|
|
||||||
base.hide()
|
base.hide()
|
||||||
}
|
}
|
||||||
@ -50,7 +50,7 @@ UM.Dialog
|
|||||||
UM.Preferences.setValue("cura/choice_on_open_project", "open_as_model")
|
UM.Preferences.setValue("cura/choice_on_open_project", "open_as_model")
|
||||||
}
|
}
|
||||||
|
|
||||||
CuraApplication.readLocalFile(base.fileUrl, "open_as_model")
|
CuraApplication.readLocalFile(base.fileUrl, "open_as_model", base.addToRecent)
|
||||||
|
|
||||||
base.hide()
|
base.hide()
|
||||||
}
|
}
|
||||||
|
@ -28,19 +28,19 @@ UM.Dialog
|
|||||||
modality: Qt.WindowModal
|
modality: Qt.WindowModal
|
||||||
|
|
||||||
property var fileUrls: []
|
property var fileUrls: []
|
||||||
|
property var addToRecent: true
|
||||||
property int spacerHeight: 10 * screenScaleFactor
|
property int spacerHeight: 10 * screenScaleFactor
|
||||||
|
|
||||||
function loadProjectFile(projectFile)
|
function loadProjectFile(projectFile)
|
||||||
{
|
{
|
||||||
var addToRecent = UM.WorkspaceFileHandler.getAddToRecentFilesHint(projectFile);
|
UM.WorkspaceFileHandler.readLocalFile(projectFile, base.addToRecent);
|
||||||
UM.WorkspaceFileHandler.readLocalFile(projectFile, addToRecent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadModelFiles(fileUrls)
|
function loadModelFiles(fileUrls)
|
||||||
{
|
{
|
||||||
for (var i in fileUrls)
|
for (var i in fileUrls)
|
||||||
{
|
{
|
||||||
CuraApplication.readLocalFile(fileUrls[i], "open_as_model");
|
CuraApplication.readLocalFile(fileUrls[i], "open_as_model", base.addToRecent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Fast
|
||||||
|
definition = trimaker_cosmosII
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = fast
|
||||||
|
weight = 1
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.3
|
||||||
|
speed_print = 60
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Normal
|
||||||
|
definition = trimaker_cosmosII
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = normal
|
||||||
|
weight = 0
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.2
|
||||||
|
speed_print = 45
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Slow
|
||||||
|
definition = trimaker_cosmosII
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = slow
|
||||||
|
weight = -1
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.1
|
||||||
|
speed_print = 30
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Fast
|
||||||
|
definition = trimaker_nebula
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = fast
|
||||||
|
weight = 1
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.3
|
||||||
|
speed_print = 60
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Normal
|
||||||
|
definition = trimaker_nebula
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = normal
|
||||||
|
weight = 0
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.2
|
||||||
|
speed_print = 45
|
@ -0,0 +1,15 @@
|
|||||||
|
[general]
|
||||||
|
version = 4
|
||||||
|
name = Slow
|
||||||
|
definition = trimaker_nebula
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
setting_version = 16
|
||||||
|
type = quality
|
||||||
|
quality_type = slow
|
||||||
|
weight = -1
|
||||||
|
global_quality = True
|
||||||
|
|
||||||
|
[values]
|
||||||
|
layer_height = 0.1
|
||||||
|
speed_print = 30
|
@ -73,7 +73,7 @@ def main():
|
|||||||
|
|
||||||
for i, returncode in enumerate(pool.imap(partial(call, shell=True), commands)):
|
for i, returncode in enumerate(pool.imap(partial(call, shell=True), commands)):
|
||||||
if returncode != 0:
|
if returncode != 0:
|
||||||
print("\nCommand %s failed checking. :(" % commands[i])
|
print("\nCommand {command} failed checking (code {errcode}). :(".format(command = commands[i], errcode = returncode))
|
||||||
success_code = 1
|
success_code = 1
|
||||||
if success_code:
|
if success_code:
|
||||||
print("MYPY check was completed, but did not pass")
|
print("MYPY check was completed, but did not pass")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user