mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 15:07:28 -06:00
Merge branch 'master' into CURA-7019_Move_sign_in_screen_in_front_of_add_printer_in_first_run_wizard
This commit is contained in:
commit
1030945c5d
76 changed files with 1750 additions and 601 deletions
|
@ -13,7 +13,7 @@ DEFAULT_CURA_DEBUG_MODE = False
|
|||
# Each release has a fixed SDK version coupled with it. It doesn't make sense to make it configurable because, for
|
||||
# example Cura 3.2 with SDK version 6.1 will not work. So the SDK version is hard-coded here and left out of the
|
||||
# CuraVersion.py.in template.
|
||||
CuraSDKVersion = "7.1.0"
|
||||
CuraSDKVersion = "7.2.0"
|
||||
|
||||
try:
|
||||
from cura.CuraVersion import CuraAppName # type: ignore
|
||||
|
|
|
@ -171,6 +171,10 @@ class MachineNode(ContainerNode):
|
|||
if variant_name not in self.variants:
|
||||
self.variants[variant_name] = VariantNode(variant["id"], machine = self)
|
||||
self.variants[variant_name].materialsChanged.connect(self.materialsChanged)
|
||||
else:
|
||||
# Force reloading the materials if the variant already exists or else materals won't be loaded
|
||||
# when the G-Code flavor changes --> CURA-7354
|
||||
self.variants[variant_name]._loadAll()
|
||||
if not self.variants:
|
||||
self.variants["empty"] = VariantNode("empty_variant", machine = self)
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ class PreviewPass(RenderPass):
|
|||
self._shader.setUniformValue("u_ambientColor", [0.1, 0.1, 0.1, 1.0])
|
||||
self._shader.setUniformValue("u_specularColor", [0.6, 0.6, 0.6, 1.0])
|
||||
self._shader.setUniformValue("u_shininess", 20.0)
|
||||
self._shader.setUniformValue("u_renderError", 0.0) # We don't want any error markers!.
|
||||
self._shader.setUniformValue("u_faceId", -1) # Don't render any selected faces in the preview.
|
||||
|
||||
if not self._non_printing_shader:
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for reading 3MF files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for writing 3MF files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
"author": "fieldOfView",
|
||||
"version": "1.0.0",
|
||||
"description": "Provides support for reading AMF files.",
|
||||
"api": "7.1.0"
|
||||
"api": "7.2.0"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"description": "Backup and restore your configuration.",
|
||||
"version": "1.2.0",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ from UM.Job import Job
|
|||
from UM.Logger import Logger
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.Settings.ContainerStack import ContainerStack #For typing.
|
||||
from UM.Settings.InstanceContainer import InstanceContainer
|
||||
from UM.Settings.SettingDefinition import SettingDefinition
|
||||
from UM.Settings.SettingRelation import SettingRelation #For typing.
|
||||
|
||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||
|
@ -103,20 +105,33 @@ class StartSliceJob(Job):
|
|||
## Check if a stack has any errors.
|
||||
## returns true if it has errors, false otherwise.
|
||||
def _checkStackForErrors(self, stack: ContainerStack) -> bool:
|
||||
if stack is None:
|
||||
return False
|
||||
|
||||
# if there are no per-object settings we don't need to check the other settings here
|
||||
stack_top = stack.getTop()
|
||||
if stack_top is None or not stack_top.getAllKeys():
|
||||
return False
|
||||
top_of_stack = cast(InstanceContainer, stack.getTop()) # Cache for efficiency.
|
||||
changed_setting_keys = top_of_stack.getAllKeys()
|
||||
|
||||
for key in stack.getAllKeys():
|
||||
validation_state = stack.getProperty(key, "validationState")
|
||||
if validation_state in (ValidatorState.Exception, ValidatorState.MaximumError, ValidatorState.MinimumError, ValidatorState.Invalid):
|
||||
Logger.log("w", "Setting %s is not valid, but %s. Aborting slicing.", key, validation_state)
|
||||
# Add all relations to changed settings as well.
|
||||
for key in top_of_stack.getAllKeys():
|
||||
instance = top_of_stack.getInstance(key)
|
||||
if instance is None:
|
||||
continue
|
||||
self._addRelations(changed_setting_keys, instance.definition.relations)
|
||||
Job.yieldThread()
|
||||
|
||||
for changed_setting_key in changed_setting_keys:
|
||||
validation_state = stack.getProperty(changed_setting_key, "validationState")
|
||||
|
||||
if validation_state is None:
|
||||
definition = cast(SettingDefinition, stack.getSettingDefinition(changed_setting_key))
|
||||
validator_type = SettingDefinition.getValidatorForType(definition.type)
|
||||
if validator_type:
|
||||
validator = validator_type(changed_setting_key)
|
||||
validation_state = validator(stack)
|
||||
if validation_state in (
|
||||
ValidatorState.Exception, ValidatorState.MaximumError, ValidatorState.MinimumError, ValidatorState.Invalid):
|
||||
Logger.log("w", "Setting %s is not valid, but %s. Aborting slicing.", changed_setting_key, validation_state)
|
||||
return True
|
||||
Job.yieldThread()
|
||||
|
||||
return False
|
||||
|
||||
## Runs the job that initiates the slicing.
|
||||
|
@ -511,4 +526,3 @@ class StartSliceJob(Job):
|
|||
|
||||
relations_set.add(relation.target.key)
|
||||
self._addRelations(relations_set, relation.target.relations)
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "CuraEngine Backend",
|
||||
"author": "Ultimaker B.V.",
|
||||
"description": "Provides the link to the CuraEngine slicing backend.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"version": "1.0.1",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for importing Cura profiles.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for exporting Cura profiles.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog":"cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Checks for firmware updates.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a machine actions for updating firmware.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Reads g-code from a compressed archive.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Writes g-code to a compressed archive.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for importing profiles from g-code files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Victor Larchenko, Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Allows loading and displaying G-code files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Writes g-code to a file.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Enables ability to generate printable geometry from 2D image files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for importing profiles from legacy Cura versions.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "fieldOfView, Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "Model Checker",
|
||||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"description": "Checks models and print configuration for possible printing issues and give suggestions.",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a monitor stage in Cura.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -54,7 +54,7 @@ Item
|
|||
UM.ActiveTool.setProperty("MeshType", type)
|
||||
}
|
||||
|
||||
UM.I18nCatalog { id: catalog; name: "uranium"}
|
||||
UM.I18nCatalog { id: catalog; name: "cura"}
|
||||
|
||||
Column
|
||||
{
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides the Per Model Settings.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "Post Processing",
|
||||
"author": "Ultimaker",
|
||||
"version": "2.2.1",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"description": "Extension that allows for user created scripts for post processing",
|
||||
"catalog": "cura"
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a prepare stage in Cura.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a preview stage in Cura.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"description": "Provides removable drive hotplugging and writing support.",
|
||||
"version": "1.0.1",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Logs certain events so that they can be used by the crash reporter",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides the Simulation view.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Submits anonymous slice info. Can be disabled through preferences.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -286,25 +286,6 @@ class SolidView(View):
|
|||
Logger.log("i", "X-Ray overlay found non-manifold pixels.")
|
||||
|
||||
def event(self, event):
|
||||
if event.type == Event.ViewActivateEvent:
|
||||
# FIX: on Max OS X, somehow QOpenGLContext.currentContext() can become None during View switching.
|
||||
# This can happen when you do the following steps:
|
||||
# 1. Start Cura
|
||||
# 2. Load a model
|
||||
# 3. Switch to Custom mode
|
||||
# 4. Select the model and click on the per-object tool icon
|
||||
# 5. Switch view to Layer view or X-Ray
|
||||
# 6. Cura will very likely crash
|
||||
# It seems to be a timing issue that the currentContext can somehow be empty, but I have no clue why.
|
||||
# This fix tries to reschedule the view changing event call on the Qt thread again if the current OpenGL
|
||||
# context is None.
|
||||
if Platform.isOSX():
|
||||
if QOpenGLContext.currentContext() is None:
|
||||
Logger.log("d", "current context of OpenGL is empty on Mac OS X, will try to create shaders later")
|
||||
Application.getInstance().callLater(lambda e = event: self.event(e))
|
||||
return
|
||||
|
||||
|
||||
if event.type == Event.ViewDeactivateEvent:
|
||||
if self._composite_pass and 'xray' in self._composite_pass.getLayerBindings():
|
||||
self.getRenderer().removeRenderPass(self._xray_pass)
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides a normal solid mesh view.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Creates an eraser mesh to block the printing of support in certain places",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
"name": "Toolbox",
|
||||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"description": "Find, manage and install new Cura packages."
|
||||
}
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Provides support for reading model files.",
|
||||
"api": "7.1.0"
|
||||
"api": "7.2.0"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Provides support for reading Ultimaker Format Packages.",
|
||||
"supported_sdk_versions": ["7.1.0"],
|
||||
"supported_sdk_versions": ["7.2.0"],
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for writing Ultimaker Format Packages.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"description": "Manages network connections to Ultimaker networked printers.",
|
||||
"version": "2.0.0",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import os
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
from PyQt5.QtCore import QTimer
|
||||
|
||||
from UM import i18nCatalog
|
||||
from UM.Logger import Logger # To log errors talking to the API.
|
||||
from UM.Message import Message
|
||||
from UM.Signal import Signal
|
||||
from cura.API import Account
|
||||
from cura.CuraApplication import CuraApplication
|
||||
from cura.Settings.CuraStackBuilder import CuraStackBuilder
|
||||
from cura.Settings.GlobalStack import GlobalStack
|
||||
|
||||
from .CloudApiClient import CloudApiClient
|
||||
from .CloudOutputDevice import CloudOutputDevice
|
||||
from ..Models.Http.CloudClusterResponse import CloudClusterResponse
|
||||
|
||||
|
||||
## The cloud output device manager is responsible for using the Ultimaker Cloud APIs to manage remote clusters.
|
||||
# Keeping all cloud related logic in this class instead of the UM3OutputDevicePlugin results in more readable code.
|
||||
# API spec is available on https://api.ultimaker.com/docs/connect/spec/.
|
||||
class CloudOutputDeviceManager:
|
||||
"""The cloud output device manager is responsible for using the Ultimaker Cloud APIs to manage remote clusters.
|
||||
|
||||
Keeping all cloud related logic in this class instead of the UM3OutputDevicePlugin results in more readable code.
|
||||
API spec is available on https://api.ultimaker.com/docs/connect/spec/.
|
||||
"""
|
||||
|
||||
META_CLUSTER_ID = "um_cloud_cluster_id"
|
||||
META_NETWORK_KEY = "um_network_key"
|
||||
|
@ -44,14 +47,16 @@ class CloudOutputDeviceManager:
|
|||
# Create a timer to update the remote cluster list
|
||||
self._update_timer = QTimer()
|
||||
self._update_timer.setInterval(int(self.CHECK_CLUSTER_INTERVAL * 1000))
|
||||
self._update_timer.setSingleShot(False)
|
||||
# The timer is restarted explicitly after an update was processed. This prevents 2 concurrent updates
|
||||
self._update_timer.setSingleShot(True)
|
||||
self._update_timer.timeout.connect(self._getRemoteClusters)
|
||||
|
||||
# Ensure we don't start twice.
|
||||
self._running = False
|
||||
|
||||
## Starts running the cloud output device manager, thus periodically requesting cloud data.
|
||||
def start(self):
|
||||
"""Starts running the cloud output device manager, thus periodically requesting cloud data."""
|
||||
|
||||
if self._running:
|
||||
return
|
||||
if not self._account.isLoggedIn:
|
||||
|
@ -61,8 +66,9 @@ class CloudOutputDeviceManager:
|
|||
self._update_timer.start()
|
||||
self._getRemoteClusters()
|
||||
|
||||
## Stops running the cloud output device manager.
|
||||
def stop(self):
|
||||
"""Stops running the cloud output device manager."""
|
||||
|
||||
if not self._running:
|
||||
return
|
||||
self._running = False
|
||||
|
@ -70,23 +76,28 @@ class CloudOutputDeviceManager:
|
|||
self._update_timer.stop()
|
||||
self._onGetRemoteClustersFinished([]) # Make sure we remove all cloud output devices.
|
||||
|
||||
## Force refreshing connections.
|
||||
def refreshConnections(self) -> None:
|
||||
"""Force refreshing connections."""
|
||||
|
||||
self._connectToActiveMachine()
|
||||
|
||||
## Called when the uses logs in or out
|
||||
def _onLoginStateChanged(self, is_logged_in: bool) -> None:
|
||||
"""Called when the uses logs in or out"""
|
||||
|
||||
if is_logged_in:
|
||||
self.start()
|
||||
else:
|
||||
self.stop()
|
||||
|
||||
## Gets all remote clusters from the API.
|
||||
def _getRemoteClusters(self) -> None:
|
||||
"""Gets all remote clusters from the API."""
|
||||
|
||||
self._api.getClusters(self._onGetRemoteClustersFinished)
|
||||
|
||||
## Callback for when the request for getting the clusters is finished.
|
||||
def _onGetRemoteClustersFinished(self, clusters: List[CloudClusterResponse]) -> None:
|
||||
"""Callback for when the request for getting the clusters is finished."""
|
||||
|
||||
new_clusters = []
|
||||
online_clusters = {c.cluster_id: c for c in clusters if c.is_online} # type: Dict[str, CloudClusterResponse]
|
||||
|
||||
# If the user signs in from the welcome dialog, then we will search for cloud printers and if any of them are
|
||||
|
@ -98,27 +109,96 @@ class CloudOutputDeviceManager:
|
|||
CuraApplication.getWelcomePagesModel().atEnd()
|
||||
for device_id, cluster_data in online_clusters.items():
|
||||
if device_id not in self._remote_clusters:
|
||||
self._onDeviceDiscovered(cluster_data)
|
||||
new_clusters.append(cluster_data)
|
||||
else:
|
||||
self._onDiscoveredDeviceUpdated(cluster_data)
|
||||
|
||||
self._onDevicesDiscovered(new_clusters)
|
||||
|
||||
removed_device_keys = set(self._remote_clusters.keys()) - set(online_clusters.keys())
|
||||
for device_id in removed_device_keys:
|
||||
self._onDiscoveredDeviceRemoved(device_id)
|
||||
|
||||
def _onDeviceDiscovered(self, cluster_data: CloudClusterResponse) -> None:
|
||||
device = CloudOutputDevice(self._api, cluster_data)
|
||||
CuraApplication.getInstance().getDiscoveredPrintersModel().addDiscoveredPrinter(
|
||||
ip_address=device.key,
|
||||
key=device.getId(),
|
||||
name=device.getName(),
|
||||
create_callback=self._createMachineFromDiscoveredDevice,
|
||||
machine_type=device.printerType,
|
||||
device=device
|
||||
)
|
||||
self._remote_clusters[device.getId()] = device
|
||||
if new_clusters or removed_device_keys:
|
||||
self.discoveredDevicesChanged.emit()
|
||||
if removed_device_keys:
|
||||
# If the removed device was active we should connect to the new active device
|
||||
self._connectToActiveMachine()
|
||||
# Schedule a new update
|
||||
self._update_timer.start()
|
||||
|
||||
def _onDevicesDiscovered(self, clusters: List[CloudClusterResponse]) -> None:
|
||||
"""**Synchronously** create machines for discovered devices
|
||||
|
||||
Any new machines are made available to the user.
|
||||
May take a long time to complete. As this code needs access to the Application
|
||||
and blocks the GIL, creating a Job for this would not make sense.
|
||||
Shows a Message informing the user of progress.
|
||||
"""
|
||||
new_devices = []
|
||||
for cluster_data in clusters:
|
||||
device = CloudOutputDevice(self._api, cluster_data)
|
||||
# Create a machine if we don't already have it. Do not make it the active machine.
|
||||
machine_manager = CuraApplication.getInstance().getMachineManager()
|
||||
|
||||
# We only need to add it if it wasn't already added by "local" network or by cloud.
|
||||
if machine_manager.getMachine(device.printerType, {self.META_CLUSTER_ID: device.key}) is None \
|
||||
and machine_manager.getMachine(device.printerType, {self.META_NETWORK_KEY: cluster_data.host_name + "*"}) is None: # The host name is part of the network key.
|
||||
new_devices.append(device)
|
||||
|
||||
if not new_devices:
|
||||
return
|
||||
|
||||
new_devices.sort(key = lambda x: x.name.lower())
|
||||
|
||||
image_path = os.path.join(
|
||||
CuraApplication.getInstance().getPluginRegistry().getPluginPath("UM3NetworkPrinting") or "",
|
||||
"resources", "svg", "cloud-flow-completed.svg"
|
||||
)
|
||||
|
||||
message = Message(
|
||||
title = self.I18N_CATALOG.i18ncp(
|
||||
"info:status",
|
||||
"New printer detected from your Ultimaker account",
|
||||
"New printers detected from your Ultimaker account",
|
||||
len(new_devices)
|
||||
),
|
||||
progress = 0,
|
||||
lifetime = 0,
|
||||
image_source = image_path
|
||||
)
|
||||
message.show()
|
||||
|
||||
for idx, device in enumerate(new_devices):
|
||||
message_text = self.I18N_CATALOG.i18nc(
|
||||
"info:status", "Adding printer {} ({}) from your account",
|
||||
device.name,
|
||||
device.printerTypeName
|
||||
)
|
||||
message.setText(message_text)
|
||||
if len(new_devices) > 1:
|
||||
message.setProgress((idx / len(new_devices)) * 100)
|
||||
CuraApplication.getInstance().processEvents()
|
||||
self._remote_clusters[device.getId()] = device
|
||||
self._createMachineFromDiscoveredDevice(device.getId(), activate = False)
|
||||
|
||||
message.setProgress(None)
|
||||
|
||||
max_disp_devices = 3
|
||||
if len(new_devices) > max_disp_devices:
|
||||
num_hidden = len(new_devices) - max_disp_devices + 1
|
||||
device_name_list = ["- {} ({})".format(device.name, device.printerTypeName) for device in new_devices[0:num_hidden]]
|
||||
device_name_list.append(self.I18N_CATALOG.i18nc("info:hidden list items", "- and {} others", num_hidden))
|
||||
device_names = "\n".join(device_name_list)
|
||||
else:
|
||||
device_names = "\n".join(["- {} ({})".format(device.name, device.printerTypeName) for device in new_devices])
|
||||
|
||||
message_text = self.I18N_CATALOG.i18nc(
|
||||
"info:status",
|
||||
"Cloud printers added from your account:\n{}",
|
||||
device_names
|
||||
)
|
||||
message.setText(message_text)
|
||||
|
||||
def _onDiscoveredDeviceUpdated(self, cluster_data: CloudClusterResponse) -> None:
|
||||
device = self._remote_clusters.get(cluster_data.cluster_id)
|
||||
|
@ -136,29 +216,31 @@ class CloudOutputDeviceManager:
|
|||
if not device:
|
||||
return
|
||||
device.close()
|
||||
CuraApplication.getInstance().getDiscoveredPrintersModel().removeDiscoveredPrinter(device.key)
|
||||
output_device_manager = CuraApplication.getInstance().getOutputDeviceManager()
|
||||
if device.key in output_device_manager.getOutputDeviceIds():
|
||||
output_device_manager.removeOutputDevice(device.key)
|
||||
self.discoveredDevicesChanged.emit()
|
||||
|
||||
def _createMachineFromDiscoveredDevice(self, key: str) -> None:
|
||||
def _createMachineFromDiscoveredDevice(self, key: str, activate: bool = True) -> None:
|
||||
device = self._remote_clusters[key]
|
||||
if not device:
|
||||
return
|
||||
|
||||
# Create a new machine and activate it.
|
||||
# Create a new machine.
|
||||
# We do not use use MachineManager.addMachine here because we need to set the cluster ID before activating it.
|
||||
new_machine = CuraStackBuilder.createMachine(device.name, device.printerType)
|
||||
if not new_machine:
|
||||
Logger.log("e", "Failed creating a new machine")
|
||||
return
|
||||
new_machine.setMetaDataEntry(self.META_CLUSTER_ID, device.key)
|
||||
|
||||
if activate:
|
||||
CuraApplication.getInstance().getMachineManager().setActiveMachine(new_machine.getId())
|
||||
|
||||
self._connectToOutputDevice(device, new_machine)
|
||||
|
||||
## Callback for when the active machine was changed by the user or a new remote cluster was found.
|
||||
def _connectToActiveMachine(self) -> None:
|
||||
"""Callback for when the active machine was changed by the user"""
|
||||
|
||||
active_machine = CuraApplication.getInstance().getGlobalContainerStack()
|
||||
if not active_machine:
|
||||
return
|
||||
|
@ -177,8 +259,9 @@ class CloudOutputDeviceManager:
|
|||
# Remove device if it is not meant for the active machine.
|
||||
output_device_manager.removeOutputDevice(device.key)
|
||||
|
||||
## Connects to an output device and makes sure it is registered in the output device manager.
|
||||
def _connectToOutputDevice(self, device: CloudOutputDevice, machine: GlobalStack) -> None:
|
||||
"""Connects to an output device and makes sure it is registered in the output device manager."""
|
||||
|
||||
machine.setName(device.name)
|
||||
machine.setMetaDataEntry(self.META_CLUSTER_ID, device.key)
|
||||
machine.setMetaDataEntry("group_name", device.name)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from typing import List, Optional, Union, Dict, Any
|
||||
|
||||
|
@ -44,6 +44,7 @@ class ClusterPrintJobStatus(BaseModel):
|
|||
# \param compatible_machine_families: Family names of machines suitable for this print job
|
||||
# \param impediments_to_printing: A list of reasons that prevent this job from being printed on the associated
|
||||
# printer
|
||||
# \param preview_url: URL to the preview image (same as wou;d've been included in the ufp).
|
||||
def __init__(self, created_at: str, force: bool, machine_variant: str, name: str, started: bool, status: str,
|
||||
time_total: int, uuid: str,
|
||||
configuration: List[Union[Dict[str, Any], ClusterPrintCoreConfiguration]],
|
||||
|
@ -57,6 +58,7 @@ class ClusterPrintJobStatus(BaseModel):
|
|||
build_plate: Union[Dict[str, Any], ClusterBuildPlate] = None,
|
||||
compatible_machine_families: List[str] = None,
|
||||
impediments_to_printing: List[Union[Dict[str, Any], ClusterPrintJobImpediment]] = None,
|
||||
preview_url: Optional[str] = None,
|
||||
**kwargs) -> None:
|
||||
self.assigned_to = assigned_to
|
||||
self.configuration = self.parseModels(ClusterPrintCoreConfiguration, configuration)
|
||||
|
@ -76,6 +78,7 @@ class ClusterPrintJobStatus(BaseModel):
|
|||
self.uuid = uuid
|
||||
self.deleted_at = deleted_at
|
||||
self.printed_on_uuid = printed_on_uuid
|
||||
self.preview_url = preview_url
|
||||
|
||||
self.configuration_changes_required = self.parseModels(ClusterPrintJobConfigurationChange,
|
||||
configuration_changes_required) \
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from typing import List
|
||||
from typing import List, Optional
|
||||
|
||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal
|
||||
from PyQt5.QtGui import QImage
|
||||
from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
|
||||
|
||||
from UM.Logger import Logger
|
||||
from UM.TaskManagement.HttpRequestManager import HttpRequestManager
|
||||
from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
|
||||
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
||||
|
||||
|
@ -32,3 +35,13 @@ class UM3PrintJobOutputModel(PrintJobOutputModel):
|
|||
image = QImage()
|
||||
image.loadFromData(data)
|
||||
self.updatePreviewImage(image)
|
||||
|
||||
def loadPreviewImageFromUrl(self, url: str) -> None:
|
||||
HttpRequestManager.getInstance().get(url=url, callback=self._onImageLoaded, error_callback=self._onImageLoaded)
|
||||
|
||||
def _onImageLoaded(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
||||
if not HttpRequestManager.replyIndicatesSuccess(reply, error):
|
||||
Logger.warning("Requesting preview image failed, response code {0} while trying to connect to {1}".format(
|
||||
reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url()))
|
||||
return
|
||||
self.updatePreviewImageData(reply.readAll())
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Copyright (c) 2020 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
import os
|
||||
from time import time
|
||||
|
@ -330,6 +330,8 @@ class UltimakerNetworkedPrinterOutputDevice(NetworkedPrinterOutputDevice):
|
|||
self._updateAssignedPrinter(model, remote_job.printer_uuid)
|
||||
if remote_job.assigned_to:
|
||||
self._updateAssignedPrinter(model, remote_job.assigned_to)
|
||||
if remote_job.preview_url:
|
||||
model.loadPreviewImageFromUrl(remote_job.preview_url)
|
||||
return model
|
||||
|
||||
## Updates the printer assignment for the given print job model.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"name": "USB printing",
|
||||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.2",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 2.1 to Cura 2.2.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 2.2 to Cura 2.4.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 2.5 to Cura 2.6.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 2.6 to Cura 2.7.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 2.7 to Cura 3.0.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 3.0 to Cura 3.1.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 3.2 to Cura 3.3.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 3.3 to Cura 3.4.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 3.4 to Cura 3.5.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 3.5 to Cura 4.0.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Upgrades configurations from Cura 4.0 to Cura 4.1.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.1 to Cura 4.2.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.2 to Cura 4.3.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.3 to Cura 4.4.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.4 to Cura 4.5.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.5 to Cura 4.6.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.6 to Cura 4.7.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Seva Alekseyev, Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides support for reading X3D files.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides the X-Ray view.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.1",
|
||||
"description": "Provides capabilities to read and write XML-based material profiles.",
|
||||
"api": "7.1",
|
||||
"api": "7.2.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"display_name": "3MF Reader",
|
||||
"description": "Provides support for reading 3MF files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -23,7 +23,7 @@
|
|||
"display_name": "3MF Writer",
|
||||
"description": "Provides support for writing 3MF files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -40,7 +40,7 @@
|
|||
"display_name": "AMF Reader",
|
||||
"description": "Provides support for reading AMF files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "fieldOfView",
|
||||
|
@ -57,7 +57,7 @@
|
|||
"display_name": "Cura Backups",
|
||||
"description": "Backup and restore your configuration.",
|
||||
"package_version": "1.2.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -74,7 +74,7 @@
|
|||
"display_name": "CuraEngine Backend",
|
||||
"description": "Provides the link to the CuraEngine slicing backend.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -91,7 +91,7 @@
|
|||
"display_name": "Cura Profile Reader",
|
||||
"description": "Provides support for importing Cura profiles.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -108,7 +108,7 @@
|
|||
"display_name": "Cura Profile Writer",
|
||||
"description": "Provides support for exporting Cura profiles.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -125,7 +125,7 @@
|
|||
"display_name": "Firmware Update Checker",
|
||||
"description": "Checks for firmware updates.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -142,7 +142,7 @@
|
|||
"display_name": "Firmware Updater",
|
||||
"description": "Provides a machine actions for updating firmware.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -159,7 +159,7 @@
|
|||
"display_name": "Compressed G-code Reader",
|
||||
"description": "Reads g-code from a compressed archive.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -176,7 +176,7 @@
|
|||
"display_name": "Compressed G-code Writer",
|
||||
"description": "Writes g-code to a compressed archive.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -193,7 +193,7 @@
|
|||
"display_name": "G-Code Profile Reader",
|
||||
"description": "Provides support for importing profiles from g-code files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -210,7 +210,7 @@
|
|||
"display_name": "G-Code Reader",
|
||||
"description": "Allows loading and displaying G-code files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "VictorLarchenko",
|
||||
|
@ -227,7 +227,7 @@
|
|||
"display_name": "G-Code Writer",
|
||||
"description": "Writes g-code to a file.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -244,7 +244,7 @@
|
|||
"display_name": "Image Reader",
|
||||
"description": "Enables ability to generate printable geometry from 2D image files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -261,7 +261,7 @@
|
|||
"display_name": "Legacy Cura Profile Reader",
|
||||
"description": "Provides support for importing profiles from legacy Cura versions.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -278,7 +278,7 @@
|
|||
"display_name": "Machine Settings Action",
|
||||
"description": "Provides a way to change machine settings (such as build volume, nozzle size, etc.).",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "fieldOfView",
|
||||
|
@ -295,7 +295,7 @@
|
|||
"display_name": "Model Checker",
|
||||
"description": "Checks models and print configuration for possible printing issues and give suggestions.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -312,7 +312,7 @@
|
|||
"display_name": "Monitor Stage",
|
||||
"description": "Provides a monitor stage in Cura.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -329,7 +329,7 @@
|
|||
"display_name": "Per-Object Settings Tool",
|
||||
"description": "Provides the per-model settings.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -346,7 +346,7 @@
|
|||
"display_name": "Post Processing",
|
||||
"description": "Extension that allows for user created scripts for post processing.",
|
||||
"package_version": "2.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -363,7 +363,7 @@
|
|||
"display_name": "Prepare Stage",
|
||||
"description": "Provides a prepare stage in Cura.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -380,7 +380,7 @@
|
|||
"display_name": "Preview Stage",
|
||||
"description": "Provides a preview stage in Cura.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -397,7 +397,7 @@
|
|||
"display_name": "Removable Drive Output Device",
|
||||
"description": "Provides removable drive hotplugging and writing support.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -414,7 +414,7 @@
|
|||
"display_name": "Sentry Logger",
|
||||
"description": "Logs certain events so that they can be used by the crash reporter",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -431,7 +431,7 @@
|
|||
"display_name": "Simulation View",
|
||||
"description": "Provides the Simulation view.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -448,7 +448,7 @@
|
|||
"display_name": "Slice Info",
|
||||
"description": "Submits anonymous slice info. Can be disabled through preferences.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -465,7 +465,7 @@
|
|||
"display_name": "Solid View",
|
||||
"description": "Provides a normal solid mesh view.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -482,7 +482,7 @@
|
|||
"display_name": "Support Eraser Tool",
|
||||
"description": "Creates an eraser mesh to block the printing of support in certain places.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -499,7 +499,7 @@
|
|||
"display_name": "Trimesh Reader",
|
||||
"description": "Provides support for reading model files.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -516,7 +516,7 @@
|
|||
"display_name": "Toolbox",
|
||||
"description": "Find, manage and install new Cura packages.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -533,7 +533,7 @@
|
|||
"display_name": "UFP Reader",
|
||||
"description": "Provides support for reading Ultimaker Format Packages.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -550,7 +550,7 @@
|
|||
"display_name": "UFP Writer",
|
||||
"description": "Provides support for writing Ultimaker Format Packages.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -567,7 +567,7 @@
|
|||
"display_name": "Ultimaker Machine Actions",
|
||||
"description": "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.).",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -584,7 +584,7 @@
|
|||
"display_name": "UM3 Network Printing",
|
||||
"description": "Manages network connections to Ultimaker 3 printers.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -601,7 +601,7 @@
|
|||
"display_name": "USB Printing",
|
||||
"description": "Accepts G-Code and sends them to a printer. Plugin can also update firmware.",
|
||||
"package_version": "1.0.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -618,7 +618,7 @@
|
|||
"display_name": "Version Upgrade 2.1 to 2.2",
|
||||
"description": "Upgrades configurations from Cura 2.1 to Cura 2.2.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -635,7 +635,7 @@
|
|||
"display_name": "Version Upgrade 2.2 to 2.4",
|
||||
"description": "Upgrades configurations from Cura 2.2 to Cura 2.4.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -652,7 +652,7 @@
|
|||
"display_name": "Version Upgrade 2.5 to 2.6",
|
||||
"description": "Upgrades configurations from Cura 2.5 to Cura 2.6.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -669,7 +669,7 @@
|
|||
"display_name": "Version Upgrade 2.6 to 2.7",
|
||||
"description": "Upgrades configurations from Cura 2.6 to Cura 2.7.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -686,7 +686,7 @@
|
|||
"display_name": "Version Upgrade 2.7 to 3.0",
|
||||
"description": "Upgrades configurations from Cura 2.7 to Cura 3.0.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -703,7 +703,7 @@
|
|||
"display_name": "Version Upgrade 3.0 to 3.1",
|
||||
"description": "Upgrades configurations from Cura 3.0 to Cura 3.1.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -720,7 +720,7 @@
|
|||
"display_name": "Version Upgrade 3.2 to 3.3",
|
||||
"description": "Upgrades configurations from Cura 3.2 to Cura 3.3.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -737,7 +737,7 @@
|
|||
"display_name": "Version Upgrade 3.3 to 3.4",
|
||||
"description": "Upgrades configurations from Cura 3.3 to Cura 3.4.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -754,7 +754,7 @@
|
|||
"display_name": "Version Upgrade 3.4 to 3.5",
|
||||
"description": "Upgrades configurations from Cura 3.4 to Cura 3.5.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -771,7 +771,7 @@
|
|||
"display_name": "Version Upgrade 3.5 to 4.0",
|
||||
"description": "Upgrades configurations from Cura 3.5 to Cura 4.0.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -788,7 +788,7 @@
|
|||
"display_name": "Version Upgrade 4.0 to 4.1",
|
||||
"description": "Upgrades configurations from Cura 4.0 to Cura 4.1.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -805,7 +805,7 @@
|
|||
"display_name": "Version Upgrade 4.1 to 4.2",
|
||||
"description": "Upgrades configurations from Cura 4.1 to Cura 4.2.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -822,7 +822,7 @@
|
|||
"display_name": "Version Upgrade 4.2 to 4.3",
|
||||
"description": "Upgrades configurations from Cura 4.2 to Cura 4.3.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -839,7 +839,7 @@
|
|||
"display_name": "Version Upgrade 4.3 to 4.4",
|
||||
"description": "Upgrades configurations from Cura 4.3 to Cura 4.4.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -856,7 +856,7 @@
|
|||
"display_name": "Version Upgrade 4.4 to 4.5",
|
||||
"description": "Upgrades configurations from Cura 4.4 to Cura 4.5.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -873,7 +873,7 @@
|
|||
"display_name": "Version Upgrade 4.5 to 4.6",
|
||||
"description": "Upgrades configurations from Cura 4.5 to Cura 4.6.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -890,7 +890,7 @@
|
|||
"display_name": "Version Upgrade 4.6 to 4.7",
|
||||
"description": "Upgrades configurations from Cura 4.6 to Cura 4.7.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -907,7 +907,7 @@
|
|||
"display_name": "X3D Reader",
|
||||
"description": "Provides support for reading X3D files.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "SevaAlekseyev",
|
||||
|
@ -924,7 +924,7 @@
|
|||
"display_name": "XML Material Profiles",
|
||||
"description": "Provides capabilities to read and write XML-based material profiles.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -941,7 +941,7 @@
|
|||
"display_name": "X-Ray View",
|
||||
"description": "Provides the X-Ray view.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -958,7 +958,7 @@
|
|||
"display_name": "Generic ABS",
|
||||
"description": "The generic ABS profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -976,7 +976,7 @@
|
|||
"display_name": "Generic BAM",
|
||||
"description": "The generic BAM profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -994,7 +994,7 @@
|
|||
"display_name": "Generic CFF CPE",
|
||||
"description": "The generic CFF CPE profile which other profiles can be based upon.",
|
||||
"package_version": "1.1.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1012,7 +1012,7 @@
|
|||
"display_name": "Generic CFF PA",
|
||||
"description": "The generic CFF PA profile which other profiles can be based upon.",
|
||||
"package_version": "1.1.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1030,7 +1030,7 @@
|
|||
"display_name": "Generic CPE",
|
||||
"description": "The generic CPE profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1048,7 +1048,7 @@
|
|||
"display_name": "Generic CPE+",
|
||||
"description": "The generic CPE+ profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1066,7 +1066,7 @@
|
|||
"display_name": "Generic GFF CPE",
|
||||
"description": "The generic GFF CPE profile which other profiles can be based upon.",
|
||||
"package_version": "1.1.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1084,7 +1084,7 @@
|
|||
"display_name": "Generic GFF PA",
|
||||
"description": "The generic GFF PA profile which other profiles can be based upon.",
|
||||
"package_version": "1.1.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1102,7 +1102,7 @@
|
|||
"display_name": "Generic HIPS",
|
||||
"description": "The generic HIPS profile which other profiles can be based upon.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1120,7 +1120,7 @@
|
|||
"display_name": "Generic Nylon",
|
||||
"description": "The generic Nylon profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1138,7 +1138,7 @@
|
|||
"display_name": "Generic PC",
|
||||
"description": "The generic PC profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1156,7 +1156,7 @@
|
|||
"display_name": "Generic PETG",
|
||||
"description": "The generic PETG profile which other profiles can be based upon.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1174,7 +1174,7 @@
|
|||
"display_name": "Generic PLA",
|
||||
"description": "The generic PLA profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1192,7 +1192,7 @@
|
|||
"display_name": "Generic PP",
|
||||
"description": "The generic PP profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1210,7 +1210,7 @@
|
|||
"display_name": "Generic PVA",
|
||||
"description": "The generic PVA profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1228,7 +1228,7 @@
|
|||
"display_name": "Generic Tough PLA",
|
||||
"description": "The generic Tough PLA profile which other profiles can be based upon.",
|
||||
"package_version": "1.0.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1246,7 +1246,7 @@
|
|||
"display_name": "Generic TPU",
|
||||
"description": "The generic TPU profile which other profiles can be based upon.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://github.com/Ultimaker/fdm_materials",
|
||||
"author": {
|
||||
"author_id": "Generic",
|
||||
|
@ -1264,7 +1264,7 @@
|
|||
"display_name": "Dagoma Chromatik PLA",
|
||||
"description": "Filament testé et approuvé pour les imprimantes 3D Dagoma. Chromatik est l'idéal pour débuter et suivre les tutoriels premiers pas. Il vous offre qualité et résistance pour chacune de vos impressions.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://dagoma.fr/boutique/filaments.html",
|
||||
"author": {
|
||||
"author_id": "Dagoma",
|
||||
|
@ -1281,7 +1281,7 @@
|
|||
"display_name": "FABtotum ABS",
|
||||
"description": "This material is easy to be extruded but it is not the simplest to use. It is one of the most used in 3D printing to get very well finished objects. It is not sustainable and its smoke can be dangerous if inhaled. The reason to prefer this filament to PLA is mainly because of its precision and mechanical specs. ABS (for plastic) stands for Acrylonitrile Butadiene Styrene and it is a thermoplastic which is widely used in everyday objects. It can be printed with any FFF 3D printer which can get to high temperatures as it must be extruded in a range between 220° and 245°, so it’s compatible with all versions of the FABtotum Personal fabricator.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=40",
|
||||
"author": {
|
||||
"author_id": "FABtotum",
|
||||
|
@ -1298,7 +1298,7 @@
|
|||
"display_name": "FABtotum Nylon",
|
||||
"description": "When 3D printing started this material was not listed among the extrudable filaments. It is flexible as well as resistant to tractions. It is well known for its uses in textile but also in industries which require a strong and flexible material. There are different kinds of Nylon: 3D printing mostly uses Nylon 6 and Nylon 6.6, which are the most common. It requires higher temperatures to be printed, so a 3D printer must be able to reach them (around 240°C): the FABtotum, of course, can.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=53",
|
||||
"author": {
|
||||
"author_id": "FABtotum",
|
||||
|
@ -1315,7 +1315,7 @@
|
|||
"display_name": "FABtotum PLA",
|
||||
"description": "It is the most common filament used for 3D printing. It is studied to be bio-degradable as it comes from corn starch’s sugar mainly. It is completely made of renewable sources and has no footprint on polluting. PLA stands for PolyLactic Acid and it is a thermoplastic that today is still considered the easiest material to be 3D printed. It can be extruded at lower temperatures: the standard range of FABtotum’s one is between 185° and 195°.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=39",
|
||||
"author": {
|
||||
"author_id": "FABtotum",
|
||||
|
@ -1332,7 +1332,7 @@
|
|||
"display_name": "FABtotum TPU Shore 98A",
|
||||
"description": "",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://store.fabtotum.com/eu/products/filaments.html?filament_type=66",
|
||||
"author": {
|
||||
"author_id": "FABtotum",
|
||||
|
@ -1349,7 +1349,7 @@
|
|||
"display_name": "Fiberlogy HD PLA",
|
||||
"description": "With our HD PLA you have many more options. You can use this material in two ways. Choose the one you like best. You can use it as a normal PLA and get prints characterized by a very good adhesion between the layers and high precision. You can also make your prints acquire similar properties to that of ABS – better impact resistance and high temperature resistance. All you need is an oven. Yes, an oven! By annealing our HD PLA in an oven, in accordance with the manual, you will avoid all the inconveniences of printing with ABS, such as unpleasant odour or hazardous fumes.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://fiberlogy.com/en/fiberlogy-filaments/filament-hd-pla/",
|
||||
"author": {
|
||||
"author_id": "Fiberlogy",
|
||||
|
@ -1366,7 +1366,7 @@
|
|||
"display_name": "Filo3D PLA",
|
||||
"description": "Fast, safe and reliable printing. PLA is ideal for the fast and reliable printing of parts and prototypes with a great surface quality.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://dagoma.fr",
|
||||
"author": {
|
||||
"author_id": "Dagoma",
|
||||
|
@ -1383,7 +1383,7 @@
|
|||
"display_name": "IMADE3D JellyBOX PETG",
|
||||
"description": "",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://shop.imade3d.com/filament.html",
|
||||
"author": {
|
||||
"author_id": "IMADE3D",
|
||||
|
@ -1400,7 +1400,7 @@
|
|||
"display_name": "IMADE3D JellyBOX PLA",
|
||||
"description": "",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://shop.imade3d.com/filament.html",
|
||||
"author": {
|
||||
"author_id": "IMADE3D",
|
||||
|
@ -1417,7 +1417,7 @@
|
|||
"display_name": "Octofiber PLA",
|
||||
"description": "PLA material from Octofiber.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://nl.octofiber.com/3d-printing-filament/pla.html",
|
||||
"author": {
|
||||
"author_id": "Octofiber",
|
||||
|
@ -1434,7 +1434,7 @@
|
|||
"display_name": "PolyFlex™ PLA",
|
||||
"description": "PolyFlex™ is a highly flexible yet easy to print 3D printing material. Featuring good elasticity and a large strain-to- failure, PolyFlex™ opens up a completely new realm of applications.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://www.polymaker.com/shop/polyflex/",
|
||||
"author": {
|
||||
"author_id": "Polymaker",
|
||||
|
@ -1451,7 +1451,7 @@
|
|||
"display_name": "PolyMax™ PLA",
|
||||
"description": "PolyMax™ PLA is a 3D printing material with excellent mechanical properties and printing quality. PolyMax™ PLA has an impact resistance of up to nine times that of regular PLA, and better overall mechanical properties than ABS.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://www.polymaker.com/shop/polymax/",
|
||||
"author": {
|
||||
"author_id": "Polymaker",
|
||||
|
@ -1468,7 +1468,7 @@
|
|||
"display_name": "PolyPlus™ PLA True Colour",
|
||||
"description": "PolyPlus™ PLA is a premium PLA designed for all desktop FDM/FFF 3D printers. It is produced with our patented Jam-Free™ technology that ensures consistent extrusion and prevents jams.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://www.polymaker.com/shop/polyplus-true-colour/",
|
||||
"author": {
|
||||
"author_id": "Polymaker",
|
||||
|
@ -1485,7 +1485,7 @@
|
|||
"display_name": "PolyWood™ PLA",
|
||||
"description": "PolyWood™ is a wood mimic printing material that contains no actual wood ensuring a clean Jam-Free™ printing experience.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "http://www.polymaker.com/shop/polywood/",
|
||||
"author": {
|
||||
"author_id": "Polymaker",
|
||||
|
@ -1502,7 +1502,7 @@
|
|||
"display_name": "Ultimaker ABS",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1521,7 +1521,7 @@
|
|||
"display_name": "Ultimaker Breakaway",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/breakaway",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1540,7 +1540,7 @@
|
|||
"display_name": "Ultimaker CPE",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1559,7 +1559,7 @@
|
|||
"display_name": "Ultimaker CPE+",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/cpe",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1578,7 +1578,7 @@
|
|||
"display_name": "Ultimaker Nylon",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1597,7 +1597,7 @@
|
|||
"display_name": "Ultimaker PC",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/pc",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1616,7 +1616,7 @@
|
|||
"display_name": "Ultimaker PLA",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1635,7 +1635,7 @@
|
|||
"display_name": "Ultimaker PP",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/pp",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1654,7 +1654,7 @@
|
|||
"display_name": "Ultimaker PVA",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/abs",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1673,7 +1673,7 @@
|
|||
"display_name": "Ultimaker TPU 95A",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/tpu-95a",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1692,7 +1692,7 @@
|
|||
"display_name": "Ultimaker Tough PLA",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.0.3",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://ultimaker.com/products/materials/tough-pla",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
|
@ -1711,7 +1711,7 @@
|
|||
"display_name": "Vertex Delta ABS",
|
||||
"description": "ABS material and quality files for the Delta Vertex K8800.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://vertex3dprinter.eu",
|
||||
"author": {
|
||||
"author_id": "Velleman",
|
||||
|
@ -1728,7 +1728,7 @@
|
|||
"display_name": "Vertex Delta PET",
|
||||
"description": "ABS material and quality files for the Delta Vertex K8800.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://vertex3dprinter.eu",
|
||||
"author": {
|
||||
"author_id": "Velleman",
|
||||
|
@ -1745,7 +1745,7 @@
|
|||
"display_name": "Vertex Delta PLA",
|
||||
"description": "ABS material and quality files for the Delta Vertex K8800.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://vertex3dprinter.eu",
|
||||
"author": {
|
||||
"author_id": "Velleman",
|
||||
|
@ -1762,7 +1762,7 @@
|
|||
"display_name": "Vertex Delta TPU",
|
||||
"description": "ABS material and quality files for the Delta Vertex K8800.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "7.1.0",
|
||||
"sdk_version": "7.2.0",
|
||||
"website": "https://vertex3dprinter.eu",
|
||||
"author": {
|
||||
"author_id": "Velleman",
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
"default_value": 1.75
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G21\nG90\nM82\nM107 T0\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG28\nG92 E0\nG0 E3 F200\nG92 E0\n"
|
||||
"default_value": "G21\nG90\nM82\nM107 T0\nM190 S{material_bed_temperature_layer_0}\nM109 S{material_print_temperature_layer_0} T0\nG28\nG92 E0\nG0 E3 F200\nG92 E0\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M107 T0\nM104 S0\nM104 S0 T1\nM140 S0\nG92 E0\nG91\nG1 E-1 F300 \nG1 Z+0.5 E-5 X-20 Y-20 F9000\nG28 X0 Y0\nM84 ;steppers off\nG90 ;absolute positioning\n"
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
"material_bed_temp_wait": {"default_value": false },
|
||||
"machine_max_feedrate_z": {"default_value": 10 },
|
||||
"machine_acceleration": {"default_value": 180 },
|
||||
"machine_start_gcode": {"default_value": "\n;Neither Hybrid AM Systems nor any of Hybrid AM Systems representatives has any liabilities or gives any warranties on this .gcode file, or on any or all objects made with this .gcode file.\n\nM140 S{material_bed_temperature_layer_0}\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\n\nG1 Z10 F900\nG1 X-30 Y100 F12000\n\nM190 S{material_bed_temperature_layer_0}\nM117 HMS434 Printing ...\n\nM42 P10 S255 ; chamberfans on" },
|
||||
"machine_start_gcode": {"default_value": "\n;Neither Hybrid AM Systems nor any of Hybrid AM Systems representatives has any liabilities or gives any warranties on this .gcode file, or on any or all objects made with this .gcode file.\n\nM140 S{material_bed_temperature_layer_0}\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\n\nG1 Z10 F900\nG1 X-25 Y20 F12000\n\nM190 S{material_bed_temperature_layer_0}\nM117 HMS434 Printing ...\n\nM42 P10 S255 ; chamberfans on" },
|
||||
"machine_end_gcode": {"default_value": "" },
|
||||
|
||||
"retraction_extra_prime_amount": {"minimum_value_warning": "-2.0" },
|
||||
|
@ -81,18 +81,19 @@
|
|||
"layer_height": {"maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" },
|
||||
"layer_height_0": {"maximum_value": "(0.8 * min(extruderValues('machine_nozzle_size')))" },
|
||||
"line_width": {"value": "(machine_nozzle_size + 0.2)" },
|
||||
"wall_line_width_0": {"value": "(machine_nozzle_size - 0.05)" },
|
||||
"wall_line_width_0": {"value": "(machine_nozzle_size)" },
|
||||
"infill_line_width": {"value": "(line_width)" },
|
||||
"initial_layer_line_width_factor": {"value": 110 },
|
||||
|
||||
"wall_thickness": {"value": "(line_width * 3) if infill_sparse_density < 95 else line_width" },
|
||||
"roofing_layer_count": {"value": "4" },
|
||||
"top_bottom_thickness": {"value": "(layer_height_0 + (layer_height * 3))" },
|
||||
"top_layers": {"value": "4" },
|
||||
"roofing_layer_count": {"value": "0" },
|
||||
"top_bottom_thickness": {"value": "(layer_height_0 + (layer_height * (top_layers - 1)))" },
|
||||
"top_layers": {"value": "4 if infill_sparse_density < 95 else 1" },
|
||||
"bottom_layers": {"value": "(top_layers)" },
|
||||
"wall_0_inset": {"value": "0" },
|
||||
"outer_inset_first": {"value": true },
|
||||
"alternate_extra_perimeter": {"value": false },
|
||||
"travel_compensate_overlapping_walls_enabled": {"value": false },
|
||||
"filter_out_tiny_gaps": {"value": true },
|
||||
"fill_outline_gaps": {"value": true },
|
||||
"z_seam_type": {"value": "'shortest'"},
|
||||
|
@ -107,7 +108,7 @@
|
|||
|
||||
"infill_sparse_density": {"value": 30},
|
||||
"infill_pattern": {"value": "'lines'"},
|
||||
"infill_before_walls": {"value": false},
|
||||
"infill_before_walls": {"value": true},
|
||||
|
||||
"material_print_temperature_layer_0": {"value": "material_print_temperature"},
|
||||
"material_initial_print_temperature": {"value": "material_print_temperature",
|
||||
|
@ -116,7 +117,7 @@
|
|||
"material_bed_temperature_layer_0": {"value": "material_bed_temperature"},
|
||||
"material_flow_layer_0": {"value": "material_flow"},
|
||||
"retraction_enable": {"value": true },
|
||||
"retract_at_layer_change": {"value": true },
|
||||
"retract_at_layer_change": {"value": false },
|
||||
"retraction_min_travel": {"value": "(round(line_width * 10))"},
|
||||
"switch_extruder_retraction_speeds": {"value": "(retraction_speed)"},
|
||||
"switch_extruder_prime_speed": {"value": "(retraction_prime_speed)"},
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": "\n;changing to tool1\nM83\nM109 T0 S{material_print_temperature}\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E-{switch_extruder_retraction_amount} F2400\nG1 Y120 F3000\nG1 X10 F12000\n\n"
|
||||
"default_value": "\n;changing to tool1\nM83\nM109 T0 S{material_print_temperature}\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E-{switch_extruder_retraction_amount} F2400\nG1 Y40 F3000\nG1 X10 F12000\n\n"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": "\nG1 X10 Y120 F12000\nG1 X-40 F12000\nM109 T0 R{material_standby_temperature}\nG1 Y100 F3000\n; ending tool1\n\n"
|
||||
"default_value": "\nG1 X10 Y120 F12000\nG1 X-25 F12000\nM109 T0 R{material_standby_temperature}\nG1 Y20 F3000\n; ending tool1\n\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": "\n;changing to tool2\nM83\nM109 T1 S{material_print_temperature}\nG1 E{switch_retraction_prime_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E-{switch_extruder_retraction_amount} F2400\nG1 Y120 F3000\nG1 X10 F12000\n\n"
|
||||
"default_value": "\n;changing to tool2\nM83\nM109 T1 S{material_print_temperature}\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E{switch_extruder_retraction_amount} F300\nG1 E-{switch_extruder_retraction_amount} F2400\nG1 Y40 F3000\nG1 X10 F12000\n\n"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": "\nG1 X10 Y120 F12000\nG1 X-40 F12000\nM109 T1 R{material_standby_temperature}\nG1 Y100 F3000\n; ending tool2\n\n"
|
||||
"default_value": "\nG1 X10 Y120 F12000\nG1 X-25 F12000\nM109 T1 R{material_standby_temperature}\nG1 Y20 F3000\n; ending tool2\n\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: Cura 4.6\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2020-04-06 16:33+0200\n"
|
||||
"PO-Revision-Date: 2020-02-16 18:19+0800\n"
|
||||
"PO-Revision-Date: 2020-04-18 17:49+0800\n"
|
||||
"Last-Translator: Zhang Heh Ji <dinowchang@gmail.com>\n"
|
||||
"Language-Team: Zhang Heh Ji <dinowchang@gmail.com>\n"
|
||||
"Language: zh_TW\n"
|
||||
|
@ -347,7 +347,7 @@ msgstr "正在設定場景..."
|
|||
#: /home/trin/Gedeeld/Projects/Cura/cura/CuraApplication.py:868
|
||||
msgctxt "@info:progress"
|
||||
msgid "Loading interface..."
|
||||
msgstr "正在載入介面…"
|
||||
msgstr "正在載入介面..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/cura/CuraApplication.py:873
|
||||
msgctxt "@info:progress"
|
||||
|
@ -730,13 +730,13 @@ msgstr "3MF 檔案"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:31
|
||||
msgctxt "@error:zip"
|
||||
msgid "3MF Writer plug-in is corrupt."
|
||||
msgstr ""
|
||||
msgstr "3MF 寫入器外掛已損壞。"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:59
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:92
|
||||
msgctxt "@error:zip"
|
||||
msgid "No permission to write the workspace here."
|
||||
msgstr ""
|
||||
msgstr "沒有寫入此處工作區的權限。"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/3MFWriter/ThreeMFWriter.py:181
|
||||
msgctxt "@error:zip"
|
||||
|
@ -771,12 +771,12 @@ msgstr "上傳你的備份時發生錯誤。"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/CreateBackupJob.py:47
|
||||
msgctxt "@info:backup_status"
|
||||
msgid "Creating your backup..."
|
||||
msgstr ""
|
||||
msgstr "正在建立備份..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/CreateBackupJob.py:54
|
||||
msgctxt "@info:backup_status"
|
||||
msgid "There was an error while creating your backup."
|
||||
msgstr ""
|
||||
msgstr "建立備份時發生了錯誤。"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/CreateBackupJob.py:58
|
||||
msgctxt "@info:backup_status"
|
||||
|
@ -791,7 +791,7 @@ msgstr "你的備份上傳完成。"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/CreateBackupJob.py:107
|
||||
msgctxt "@error:file_size"
|
||||
msgid "The backup exceeds the maximum file size."
|
||||
msgstr ""
|
||||
msgstr "備份超過了最大檔案大小。"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/DriveApiService.py:82
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraDrive/src/RestoreBackupJob.py:23
|
||||
|
@ -850,6 +850,10 @@ msgid ""
|
|||
"- Are assigned to an enabled extruder\n"
|
||||
"- Are not all set as modifier meshes"
|
||||
msgstr ""
|
||||
"請檢查設定並檢查你的模型是否:\n"
|
||||
"- 適合列印範圍\n"
|
||||
"- 分配了一個已啟用的擠出機\n"
|
||||
"- 沒有全部設定成修改網格"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:50
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:256
|
||||
|
@ -1156,7 +1160,7 @@ msgstr "建立一塊不列印支撐的空間。"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py:101
|
||||
msgctxt "@info:generic"
|
||||
msgid "Do you want to sync material and software packages with your account?"
|
||||
msgstr ""
|
||||
msgstr "你要使用你的帳號同步耗材資料和軟體套件嗎?"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/src/CloudSync/CloudPackageChecker.py:102
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/src/CloudSync/DownloadPresenter.py:91
|
||||
|
@ -1172,7 +1176,7 @@ msgstr "同步"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/src/CloudSync/DownloadPresenter.py:87
|
||||
msgctxt "@info:generic"
|
||||
msgid "Syncing..."
|
||||
msgstr ""
|
||||
msgstr "同步中..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/src/CloudSync/LicenseModel.py:9
|
||||
msgctxt "@button"
|
||||
|
@ -2070,12 +2074,12 @@ msgstr "重疊處不建立支撐"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:142
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Infill mesh only"
|
||||
msgstr ""
|
||||
msgstr "只填充網格"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:143
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Cutting mesh"
|
||||
msgstr ""
|
||||
msgstr "切割網格"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:373
|
||||
msgctxt "@action:button"
|
||||
|
@ -2091,7 +2095,7 @@ msgstr "選擇對此模型的自訂設定"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:94
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Filter..."
|
||||
msgstr "篩選…"
|
||||
msgstr "篩選..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PerObjectSettingsTool/SettingPickDialog.qml:70
|
||||
msgctxt "@label:checkbox"
|
||||
|
@ -2121,13 +2125,13 @@ msgstr "設定"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:499
|
||||
msgctxt "@info:tooltip"
|
||||
msgid "Change active post-processing scripts."
|
||||
msgstr ""
|
||||
msgstr "更改目前啟用的後處理腳本。"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:503
|
||||
msgctxt "@info:tooltip"
|
||||
msgid "The following script is active:"
|
||||
msgid_plural "The following scripts are active:"
|
||||
msgstr[0] ""
|
||||
msgstr[0] "下列為啟用中的腳本:"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SimulationView/SimulationViewMenuComponent.qml:20
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SimulationView/SimulationViewMenuComponent.qml:49
|
||||
|
@ -2148,7 +2152,7 @@ msgstr "線條類型"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SimulationView/SimulationViewMenuComponent.qml:115
|
||||
msgctxt "@label:listbox"
|
||||
msgid "Speed"
|
||||
msgstr ""
|
||||
msgstr "速度"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SimulationView/SimulationViewMenuComponent.qml:119
|
||||
msgctxt "@label:listbox"
|
||||
|
@ -2354,7 +2358,7 @@ msgstr "需重新啟動 Cura,套件的更動才能生效。"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/resources/qml/components/ToolboxFooter.qml:46
|
||||
msgctxt "@info:button, %1 is the application name"
|
||||
msgid "Quit %1"
|
||||
msgstr ""
|
||||
msgstr "結束 %1"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/resources/qml/components/ToolboxHeader.qml:30
|
||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/Toolbox/resources/qml/pages/ToolboxInstalledPage.qml:34
|
||||
|
@ -2960,7 +2964,7 @@ msgstr "登入"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Account/GeneralOperations.qml:40
|
||||
msgctxt "@label"
|
||||
msgid "Your key to connected 3D printing"
|
||||
msgstr ""
|
||||
msgstr "連線 3D 列印的金鑰"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Account/GeneralOperations.qml:51
|
||||
msgctxt "@text"
|
||||
|
@ -2969,6 +2973,9 @@ msgid ""
|
|||
"- Stay flexible by syncing your setup and loading it anywhere\n"
|
||||
"- Increase efficiency with a remote workflow on Ultimaker printers"
|
||||
msgstr ""
|
||||
"- 使用更多的列印參數設定和外掛訂做你的使用體驗\n"
|
||||
"- 通過同步設定可在任何地方將其載入以保持靈活性\n"
|
||||
"- 透過 Ultimaker 印表機上的遠端工作流程提高效率"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Account/GeneralOperations.qml:78
|
||||
msgctxt "@button"
|
||||
|
@ -3113,12 +3120,12 @@ msgstr "右視圖"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:167
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Configure Cura..."
|
||||
msgstr "設定 Cura…"
|
||||
msgstr "設定 Cura..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:174
|
||||
msgctxt "@action:inmenu menubar:printer"
|
||||
msgid "&Add Printer..."
|
||||
msgstr "新增印表機(&A)…"
|
||||
msgstr "新增印表機(&A)..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:180
|
||||
msgctxt "@action:inmenu menubar:printer"
|
||||
|
@ -3128,7 +3135,7 @@ msgstr "管理印表機(&I)..."
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:187
|
||||
msgctxt "@action:inmenu"
|
||||
msgid "Manage Materials..."
|
||||
msgstr "管理耗材…"
|
||||
msgstr "管理耗材..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:195
|
||||
msgctxt "@action:inmenu"
|
||||
|
@ -3148,7 +3155,7 @@ msgstr "捨棄目前更改(&D)"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:222
|
||||
msgctxt "@action:inmenu menubar:profile"
|
||||
msgid "&Create profile from current settings/overrides..."
|
||||
msgstr "從目前設定 / 覆寫值建立列印參數(&C)…"
|
||||
msgstr "從目前設定 / 覆寫值建立列印參數(&C)..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:228
|
||||
msgctxt "@action:inmenu menubar:profile"
|
||||
|
@ -3173,7 +3180,7 @@ msgstr "新功能"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:258
|
||||
msgctxt "@action:inmenu menubar:help"
|
||||
msgid "About..."
|
||||
msgstr "關於…"
|
||||
msgstr "關於..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:265
|
||||
msgctxt "@action:inmenu menubar:edit"
|
||||
|
@ -3266,12 +3273,12 @@ msgstr "重置所有模型旋轉"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:419
|
||||
msgctxt "@action:inmenu menubar:file"
|
||||
msgid "&Open File(s)..."
|
||||
msgstr "開啟檔案(&O)…"
|
||||
msgstr "開啟檔案(&O)..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:427
|
||||
msgctxt "@action:inmenu menubar:file"
|
||||
msgid "&New Project..."
|
||||
msgstr "新建專案(&N)…"
|
||||
msgstr "新建專案(&N)..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Actions.qml:434
|
||||
msgctxt "@action:inmenu menubar:help"
|
||||
|
@ -3320,13 +3327,13 @@ msgstr "列印參數"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:563
|
||||
msgctxt "@title:window %1 is the application name"
|
||||
msgid "Closing %1"
|
||||
msgstr ""
|
||||
msgstr "關閉 %1 中"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:564
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:576
|
||||
msgctxt "@label %1 is the application name"
|
||||
msgid "Are you sure you want to exit %1?"
|
||||
msgstr ""
|
||||
msgstr "是否確定要離開 %1 ?"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:614
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml:19
|
||||
|
@ -3362,7 +3369,7 @@ msgstr "新功能"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Dialogs/AboutDialog.qml:15
|
||||
msgctxt "@title:window The argument is the application name."
|
||||
msgid "About %1"
|
||||
msgstr ""
|
||||
msgstr "關於 %1"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Dialogs/AboutDialog.qml:57
|
||||
msgctxt "@label"
|
||||
|
@ -3782,7 +3789,7 @@ msgstr "匯出(&E)"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/FileMenu.qml:65
|
||||
msgctxt "@action:inmenu menubar:file"
|
||||
msgid "Export Selection..."
|
||||
msgstr "匯出選擇…"
|
||||
msgstr "匯出選擇..."
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:13
|
||||
msgctxt "@label:category menu label"
|
||||
|
@ -4787,7 +4794,7 @@ msgstr "這個設定是所有擠出機共用的。修改它會同時更動到所
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Settings/SettingItem.qml:191
|
||||
msgctxt "@label"
|
||||
msgid "This setting is resolved from conflicting extruder-specific values:"
|
||||
msgstr ""
|
||||
msgstr "此設定是透過解決擠出機設定值衝突獲得:"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Settings/SettingItem.qml:230
|
||||
msgctxt "@label"
|
||||
|
@ -4940,7 +4947,7 @@ msgstr "無法連接到裝置。"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:212
|
||||
msgctxt "@label"
|
||||
msgid "Can't connect to your Ultimaker printer?"
|
||||
msgstr ""
|
||||
msgstr "無法連接到 Ultimaker 印表機?"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:211
|
||||
msgctxt "@label"
|
||||
|
@ -4965,27 +4972,27 @@ msgstr "連接"
|
|||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:36
|
||||
msgctxt "@label"
|
||||
msgid "Ultimaker Account"
|
||||
msgstr ""
|
||||
msgstr "Ultimaker 帳號"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:77
|
||||
msgctxt "@text"
|
||||
msgid "Your key to connected 3D printing"
|
||||
msgstr ""
|
||||
msgstr "連線 3D 列印的金鑰"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:94
|
||||
msgctxt "@text"
|
||||
msgid "- Customize your experience with more print profiles and plugins"
|
||||
msgstr ""
|
||||
msgstr "- 使用更多的列印參數設定和外掛訂做你的使用體驗"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:97
|
||||
msgctxt "@text"
|
||||
msgid "- Stay flexible by syncing your setup and loading it anywhere"
|
||||
msgstr ""
|
||||
msgstr "- 通過同步設定可在任何地方將其載入以保持靈活性"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:100
|
||||
msgctxt "@text"
|
||||
msgid "- Increase efficiency with a remote workflow on Ultimaker printers"
|
||||
msgstr ""
|
||||
msgstr "- 透過 Ultimaker 印表機上的遠端工作流程提高效率"
|
||||
|
||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:119
|
||||
msgctxt "@button"
|
||||
|
@ -5254,7 +5261,7 @@ msgstr "提供更改機器設定的方法(如列印範圍,噴頭大小等)
|
|||
#: MachineSettingsAction/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Machine Settings Action"
|
||||
msgstr ""
|
||||
msgstr "印表機設定操作"
|
||||
|
||||
#: MonitorStage/plugin.json
|
||||
msgctxt "description"
|
||||
|
@ -5589,12 +5596,12 @@ msgstr "升級版本 4.4 到 4.5"
|
|||
#: VersionUpgrade/VersionUpgrade45to46/plugin.json
|
||||
msgctxt "description"
|
||||
msgid "Upgrades configurations from Cura 4.5 to Cura 4.6."
|
||||
msgstr ""
|
||||
msgstr "將設定從 Cura 4.5 版本升級至 4.6 版本。"
|
||||
|
||||
#: VersionUpgrade/VersionUpgrade45to46/plugin.json
|
||||
msgctxt "name"
|
||||
msgid "Version Upgrade 4.5 to 4.6"
|
||||
msgstr ""
|
||||
msgstr "升級版本 4.5 到 4.6"
|
||||
|
||||
#: X3DReader/plugin.json
|
||||
msgctxt "description"
|
||||
|
|
|
@ -83,7 +83,7 @@ msgstr "耗材 GUID"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "material_guid description"
|
||||
msgid "GUID of the material. This is set automatically."
|
||||
msgstr ""
|
||||
msgstr "耗材的 GUID,此項為自動設定。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_diameter label"
|
||||
|
@ -1253,12 +1253,12 @@ msgstr "套用到第一層所有多邊形的偏移量。負數值可以補償第
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "hole_xy_offset label"
|
||||
msgid "Hole Horizontal Expansion"
|
||||
msgstr ""
|
||||
msgstr "孔洞水平擴展"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "hole_xy_offset description"
|
||||
msgid "Amount of offset applied to all holes in each layer. Positive values increase the size of the holes, negative values reduce the size of the holes."
|
||||
msgstr ""
|
||||
msgstr "套用到每一層孔洞的偏移量。正值增加孔洞的大小,負值減小孔洞的大小。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_type label"
|
||||
|
@ -2192,7 +2192,7 @@ msgstr "沖洗速度"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "material_flush_purge_speed description"
|
||||
msgid "How fast to prime the material after switching to a different material."
|
||||
msgstr ""
|
||||
msgstr "切換到另一耗材後,用多快的速度擠出耗材做沖洗。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flush_purge_length label"
|
||||
|
@ -2202,27 +2202,27 @@ msgstr "沖洗長度"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "material_flush_purge_length description"
|
||||
msgid "How much material to use to purge the previous material out of the nozzle (in length of filament) when switching to a different material."
|
||||
msgstr ""
|
||||
msgstr "切換到另一耗材時,要使用多少耗材(以耗材長度計算)將噴頭內先前的耗材沖洗出來。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_end_of_filament_purge_speed label"
|
||||
msgid "End of Filament Purge Speed"
|
||||
msgstr ""
|
||||
msgstr "耗材更換沖洗速度"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_end_of_filament_purge_speed description"
|
||||
msgid "How fast to prime the material after replacing an empty spool with a fresh spool of the same material."
|
||||
msgstr ""
|
||||
msgstr "更換新的一捲相同耗材後,用多快的速度擠出耗材做沖洗。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_end_of_filament_purge_length label"
|
||||
msgid "End of Filament Purge Length"
|
||||
msgstr ""
|
||||
msgstr "耗材更換沖洗長度"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_end_of_filament_purge_length description"
|
||||
msgid "How much material to use to purge the previous material out of the nozzle (in length of filament) when replacing an empty spool with a fresh spool of the same material."
|
||||
msgstr ""
|
||||
msgstr "更換新的一捲相同耗材時,要使用多少耗材(以耗材長度計算)將噴頭內先前的耗材沖洗出來。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_maximum_park_duration label"
|
||||
|
@ -2232,7 +2232,7 @@ msgstr "最長停放時間"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "material_maximum_park_duration description"
|
||||
msgid "How long the material can be kept out of dry storage safely."
|
||||
msgstr ""
|
||||
msgstr "耗材可在乾燥箱外安全的存放多久。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_no_load_move_factor label"
|
||||
|
@ -2242,7 +2242,7 @@ msgstr "空載移動係數"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "material_no_load_move_factor description"
|
||||
msgid "A factor indicating how much the filament gets compressed between the feeder and the nozzle chamber, used to determine how far to move the material for a filament switch."
|
||||
msgstr ""
|
||||
msgstr "一個用來表示耗材在進料器和噴頭腔室之間能被壓縮多少的係數,用來決定耗材切換時需要移動多長。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow label"
|
||||
|
@ -3022,7 +3022,7 @@ msgstr "啟用回抽"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_enable description"
|
||||
msgid "Retract the filament when the nozzle is moving over a non-printed area."
|
||||
msgstr ""
|
||||
msgstr "當噴頭移動經過非列印區域時回抽耗材。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retract_at_layer_change label"
|
||||
|
@ -3717,7 +3717,7 @@ msgstr "最小支撐 X/Y 間距"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "support_xy_distance_overhang description"
|
||||
msgid "Distance of the support structure from the overhang in the X/Y directions."
|
||||
msgstr ""
|
||||
msgstr "支撐結構在 X/Y 方向與突出部分的間距。 "
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_stair_step_height label"
|
||||
|
@ -4816,7 +4816,7 @@ msgstr "網格修復"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "meshfix description"
|
||||
msgid "Make the meshes more suited for 3D printing."
|
||||
msgstr ""
|
||||
msgstr "讓網格更適合 3D 列印。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "meshfix_union_all label"
|
||||
|
@ -4936,7 +4936,7 @@ msgstr "特殊模式"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "blackmagic description"
|
||||
msgid "Non-traditional ways to print your models."
|
||||
msgstr ""
|
||||
msgstr "以非傳統的方式列印你的模型。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "print_sequence label"
|
||||
|
@ -5111,7 +5111,7 @@ msgstr "實驗性"
|
|||
#: fdmprinter.def.json
|
||||
msgctxt "experimental description"
|
||||
msgid "Features that haven't completely been fleshed out yet."
|
||||
msgstr ""
|
||||
msgstr "尚未完全的功能。"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_tree_enable label"
|
||||
|
|
|
@ -38,6 +38,8 @@ fragment =
|
|||
varying highp vec3 f_vertex;
|
||||
varying highp vec3 f_normal;
|
||||
|
||||
uniform lowp float u_renderError;
|
||||
|
||||
float round(float f)
|
||||
{
|
||||
return sign(f) * floor(abs(f) + 0.5);
|
||||
|
@ -66,8 +68,8 @@ fragment =
|
|||
|
||||
finalColor = (-normal.y > u_overhangAngle) ? u_overhangColor : finalColor;
|
||||
|
||||
vec3 grid = vec3(f_vertex.x - round(f_vertex.x), f_vertex.y - round(f_vertex.y), f_vertex.z - round(f_vertex.z));
|
||||
finalColor.a = dot(grid, grid) < 0.245 ? 0.667 : 1.0;
|
||||
vec3 grid = vec3(f_vertex.x - floor(f_vertex.x - 0.5), f_vertex.y - floor(f_vertex.y - 0.5), f_vertex.z - floor(f_vertex.z - 0.5));
|
||||
finalColor.a = (u_renderError > 0.5) && dot(grid, grid) < 0.245 ? 0.667 : 1.0;
|
||||
|
||||
gl_FragColor = finalColor;
|
||||
}
|
||||
|
@ -104,6 +106,7 @@ fragment41core =
|
|||
uniform highp vec3 u_lightPosition;
|
||||
uniform mediump float u_shininess;
|
||||
uniform highp vec3 u_viewPosition;
|
||||
uniform lowp float u_renderError;
|
||||
|
||||
uniform lowp float u_overhangAngle;
|
||||
uniform lowp vec4 u_overhangColor;
|
||||
|
@ -139,9 +142,8 @@ fragment41core =
|
|||
finalColor = (u_faceId != gl_PrimitiveID) ? ((-normal.y > u_overhangAngle) ? u_overhangColor : finalColor) : u_faceColor;
|
||||
|
||||
frag_color = finalColor;
|
||||
|
||||
vec3 grid = f_vertex - round(f_vertex);
|
||||
frag_color.a = dot(grid, grid) < 0.245 ? 0.667 : 1.0;
|
||||
frag_color.a = (u_renderError > 0.5) && dot(grid, grid) < 0.245 ? 0.667 : 1.0;
|
||||
}
|
||||
|
||||
[defaults]
|
||||
|
@ -151,6 +153,7 @@ u_specularColor = [0.4, 0.4, 0.4, 1.0]
|
|||
u_overhangColor = [1.0, 0.0, 0.0, 1.0]
|
||||
u_faceColor = [0.0, 0.0, 1.0, 1.0]
|
||||
u_shininess = 20.0
|
||||
u_renderError = 1.0
|
||||
|
||||
[bindings]
|
||||
u_modelMatrix = model_matrix
|
||||
|
|
|
@ -42,7 +42,22 @@ Fixed a bug where comments were removed from Start/End G-codes when opening from
|
|||
Values in the print monitor preheat fields were broken in previous versions, they have now been fixed by fieldOfview.
|
||||
|
||||
* Stepper motor disarming during pause at height.
|
||||
Some printers (like the Ultimaker S5) have a very heavy build platform. When the pause at height script was enabled, it would disarm the Z stepper motor at pause height. The weight of the build platform would cause the Z axis to lower by gravity and lose the Z position. ilyko96 has contributed a fix to the pause at height script so that the Z stepper motor now remains armed during a pause, locking the build plate in position.
|
||||
Some printers automatically disable their steppers after a pause after a certain time. This script makes it possible to set that in the pause script (instead of relying on default behavior of the firmware).
|
||||
|
||||
* Crash if logging in on two instances at the same time.
|
||||
During the beta period we caught a critical bug where logging in to an Ultimaker account with two instances of Cura would crash the second instance. It crashes because while the web page is open, Cura opens a web server in the local host. The web page redirects to that web server when you've logged in, so that it knows that the log-in was successful and what the credentials are. Both instances try to create a web server on the same port, which is impossible.
|
||||
|
||||
* "Changes detected from your Ultimaker account" message.
|
||||
We fixed a bug on MacOS where duplicate "Changes detected from your Ultimaker account" popups would appear at a single time.
|
||||
|
||||
* Crashes when inactive.
|
||||
Some people reported experiencing crashes when the computer had been inactive for a long time, or when the laptop got suspended or went to sleep. This has been fixed.
|
||||
|
||||
* Support blocker is not blocking support.
|
||||
Fixed an issue where the support blocker was not blocking support.
|
||||
|
||||
* Sending slice message takes too long when using mesh helpers.
|
||||
Fixed an issue where it would take too long to trigger a slice when using the mesh helpers and support blocker.
|
||||
|
||||
* Flying Bear printers.
|
||||
oducceu has contributed a machine definition for the Flying Bear Ghost 4S Printer.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue