Merge branch 'Ultimaker:master' into master
@ -7,5 +7,5 @@ license: "LGPL-3.0"
|
|||||||
message: "If you use this software, please cite it using these metadata."
|
message: "If you use this software, please cite it using these metadata."
|
||||||
repository-code: "https://github.com/ultimaker/cura/"
|
repository-code: "https://github.com/ultimaker/cura/"
|
||||||
title: "Ultimaker Cura"
|
title: "Ultimaker Cura"
|
||||||
version: "4.10.0"
|
version: "4.12.0"
|
||||||
...
|
...
|
@ -2,7 +2,7 @@ Cura
|
|||||||
====
|
====
|
||||||
Ultimaker Cura is a state-of-the-art slicer application to prepare your 3D models for printing with a 3D printer. With hundreds of settings and hundreds of community-managed print profiles, Ultimaker Cura is sure to lead your next project to a success.
|
Ultimaker Cura is a state-of-the-art slicer application to prepare your 3D models for printing with a 3D printer. With hundreds of settings and hundreds of community-managed print profiles, Ultimaker Cura is sure to lead your next project to a success.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Logging Issues
|
Logging Issues
|
||||||
------------
|
------------
|
||||||
|
BIN
cura-logo.PNG
Normal file
After Width: | Height: | Size: 520 KiB |
@ -1,15 +1,15 @@
|
|||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
from datetime import datetime
|
|
||||||
from typing import Any, Optional, Dict, TYPE_CHECKING, Callable
|
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty, QTimer, Q_ENUMS
|
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty, QTimer, Q_ENUMS
|
||||||
|
from typing import Any, Optional, Dict, TYPE_CHECKING, Callable
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from cura.OAuth2.AuthorizationService import AuthorizationService
|
from cura.OAuth2.AuthorizationService import AuthorizationService
|
||||||
from cura.OAuth2.Models import OAuth2Settings
|
from cura.OAuth2.Models import OAuth2Settings, UserProfile
|
||||||
from cura.UltimakerCloud import UltimakerCloudConstants
|
from cura.UltimakerCloud import UltimakerCloudConstants
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -46,6 +46,9 @@ class Account(QObject):
|
|||||||
loginStateChanged = pyqtSignal(bool)
|
loginStateChanged = pyqtSignal(bool)
|
||||||
"""Signal emitted when user logged in or out"""
|
"""Signal emitted when user logged in or out"""
|
||||||
|
|
||||||
|
userProfileChanged = pyqtSignal()
|
||||||
|
"""Signal emitted when new account information is available."""
|
||||||
|
|
||||||
additionalRightsChanged = pyqtSignal("QVariantMap")
|
additionalRightsChanged = pyqtSignal("QVariantMap")
|
||||||
"""Signal emitted when a users additional rights change"""
|
"""Signal emitted when a users additional rights change"""
|
||||||
|
|
||||||
@ -71,13 +74,14 @@ class Account(QObject):
|
|||||||
self._application = application
|
self._application = application
|
||||||
self._new_cloud_printers_detected = False
|
self._new_cloud_printers_detected = False
|
||||||
|
|
||||||
self._error_message = None # type: Optional[Message]
|
self._error_message: Optional[Message] = None
|
||||||
self._logged_in = False
|
self._logged_in = False
|
||||||
|
self._user_profile: Optional[UserProfile] = None
|
||||||
self._additional_rights: Dict[str, Any] = {}
|
self._additional_rights: Dict[str, Any] = {}
|
||||||
self._sync_state = SyncState.IDLE
|
self._sync_state = SyncState.IDLE
|
||||||
self._manual_sync_enabled = False
|
self._manual_sync_enabled = False
|
||||||
self._update_packages_enabled = False
|
self._update_packages_enabled = False
|
||||||
self._update_packages_action = None # type: Optional[Callable]
|
self._update_packages_action: Optional[Callable] = None
|
||||||
self._last_sync_str = "-"
|
self._last_sync_str = "-"
|
||||||
|
|
||||||
self._callback_port = 32118
|
self._callback_port = 32118
|
||||||
@ -103,7 +107,7 @@ class Account(QObject):
|
|||||||
self._update_timer.setSingleShot(True)
|
self._update_timer.setSingleShot(True)
|
||||||
self._update_timer.timeout.connect(self.sync)
|
self._update_timer.timeout.connect(self.sync)
|
||||||
|
|
||||||
self._sync_services = {} # type: Dict[str, int]
|
self._sync_services: Dict[str, int] = {}
|
||||||
"""contains entries "service_name" : SyncState"""
|
"""contains entries "service_name" : SyncState"""
|
||||||
|
|
||||||
def initialize(self) -> None:
|
def initialize(self) -> None:
|
||||||
@ -196,12 +200,17 @@ class Account(QObject):
|
|||||||
self._logged_in = logged_in
|
self._logged_in = logged_in
|
||||||
self.loginStateChanged.emit(logged_in)
|
self.loginStateChanged.emit(logged_in)
|
||||||
if logged_in:
|
if logged_in:
|
||||||
|
self._authorization_service.getUserProfile(self._onProfileChanged)
|
||||||
self._setManualSyncEnabled(False)
|
self._setManualSyncEnabled(False)
|
||||||
self._sync()
|
self._sync()
|
||||||
else:
|
else:
|
||||||
if self._update_timer.isActive():
|
if self._update_timer.isActive():
|
||||||
self._update_timer.stop()
|
self._update_timer.stop()
|
||||||
|
|
||||||
|
def _onProfileChanged(self, profile: Optional[UserProfile]) -> None:
|
||||||
|
self._user_profile = profile
|
||||||
|
self.userProfileChanged.emit()
|
||||||
|
|
||||||
def _sync(self) -> None:
|
def _sync(self) -> None:
|
||||||
"""Signals all sync services to start syncing
|
"""Signals all sync services to start syncing
|
||||||
|
|
||||||
@ -243,32 +252,28 @@ class Account(QObject):
|
|||||||
return
|
return
|
||||||
self._authorization_service.startAuthorizationFlow(force_logout_before_login)
|
self._authorization_service.startAuthorizationFlow(force_logout_before_login)
|
||||||
|
|
||||||
@pyqtProperty(str, notify=loginStateChanged)
|
@pyqtProperty(str, notify = userProfileChanged)
|
||||||
def userName(self):
|
def userName(self):
|
||||||
user_profile = self._authorization_service.getUserProfile()
|
if not self._user_profile:
|
||||||
if not user_profile:
|
return ""
|
||||||
return None
|
return self._user_profile.username
|
||||||
return user_profile.username
|
|
||||||
|
|
||||||
@pyqtProperty(str, notify = loginStateChanged)
|
@pyqtProperty(str, notify = userProfileChanged)
|
||||||
def profileImageUrl(self):
|
def profileImageUrl(self):
|
||||||
user_profile = self._authorization_service.getUserProfile()
|
if not self._user_profile:
|
||||||
if not user_profile:
|
return ""
|
||||||
return None
|
return self._user_profile.profile_image_url
|
||||||
return user_profile.profile_image_url
|
|
||||||
|
|
||||||
@pyqtProperty(str, notify=accessTokenChanged)
|
@pyqtProperty(str, notify=accessTokenChanged)
|
||||||
def accessToken(self) -> Optional[str]:
|
def accessToken(self) -> Optional[str]:
|
||||||
return self._authorization_service.getAccessToken()
|
return self._authorization_service.getAccessToken()
|
||||||
|
|
||||||
@pyqtProperty("QVariantMap", notify = loginStateChanged)
|
@pyqtProperty("QVariantMap", notify = userProfileChanged)
|
||||||
def userProfile(self) -> Optional[Dict[str, Optional[str]]]:
|
def userProfile(self) -> Optional[Dict[str, Optional[str]]]:
|
||||||
"""None if no user is logged in otherwise the logged in user as a dict containing containing user_id, username and profile_image_url """
|
"""None if no user is logged in otherwise the logged in user as a dict containing containing user_id, username and profile_image_url """
|
||||||
|
if not self._user_profile:
|
||||||
user_profile = self._authorization_service.getUserProfile()
|
|
||||||
if not user_profile:
|
|
||||||
return None
|
return None
|
||||||
return user_profile.__dict__
|
return self._user_profile.__dict__
|
||||||
|
|
||||||
@pyqtProperty(str, notify=lastSyncDateTimeChanged)
|
@pyqtProperty(str, notify=lastSyncDateTimeChanged)
|
||||||
def lastSyncDateTime(self) -> str:
|
def lastSyncDateTime(self) -> str:
|
||||||
|
@ -91,7 +91,7 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
|
|||||||
|
|
||||||
if hull_polygon is not None and hull_polygon.getPoints() is not None and len(hull_polygon.getPoints()) > 2: # numpy array has to be explicitly checked against None
|
if hull_polygon is not None and hull_polygon.getPoints() is not None and len(hull_polygon.getPoints()) > 2: # numpy array has to be explicitly checked against None
|
||||||
for point in hull_polygon.getPoints():
|
for point in hull_polygon.getPoints():
|
||||||
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
converted_points.append(Point(int(point[0] * factor), int(point[1] * factor)))
|
||||||
item = Item(converted_points)
|
item = Item(converted_points)
|
||||||
item.markAsFixedInBin(0)
|
item.markAsFixedInBin(0)
|
||||||
node_items.append(item)
|
node_items.append(item)
|
||||||
|
@ -6,6 +6,7 @@ import math
|
|||||||
|
|
||||||
from typing import List, Optional, TYPE_CHECKING, Any, Set, cast, Iterable, Dict
|
from typing import List, Optional, TYPE_CHECKING, Any, Set, cast, Iterable, Dict
|
||||||
|
|
||||||
|
from UM.Logger import Logger
|
||||||
from UM.Mesh.MeshData import MeshData
|
from UM.Mesh.MeshData import MeshData
|
||||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
|
|
||||||
@ -289,7 +290,7 @@ class BuildVolume(SceneNode):
|
|||||||
# Mark the node as outside build volume if the set extruder is disabled
|
# Mark the node as outside build volume if the set extruder is disabled
|
||||||
extruder_position = node.callDecoration("getActiveExtruderPosition")
|
extruder_position = node.callDecoration("getActiveExtruderPosition")
|
||||||
try:
|
try:
|
||||||
if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled:
|
if not self._global_container_stack.extruderList[int(extruder_position)].isEnabled and not node.callDecoration("isGroup"):
|
||||||
node.setOutsideBuildArea(True)
|
node.setOutsideBuildArea(True)
|
||||||
continue
|
continue
|
||||||
except IndexError: # Happens when the extruder list is too short. We're not done building the printer in memory yet.
|
except IndexError: # Happens when the extruder list is too short. We're not done building the printer in memory yet.
|
||||||
@ -1078,7 +1079,11 @@ class BuildVolume(SceneNode):
|
|||||||
# setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what
|
# setting does *not* have a limit_to_extruder setting (which means that we can't ask the global extruder what
|
||||||
# the value is.
|
# the value is.
|
||||||
adhesion_extruder = self._global_container_stack.getProperty("adhesion_extruder_nr", "value")
|
adhesion_extruder = self._global_container_stack.getProperty("adhesion_extruder_nr", "value")
|
||||||
adhesion_stack = self._global_container_stack.extruderList[int(adhesion_extruder)]
|
try:
|
||||||
|
adhesion_stack = self._global_container_stack.extruderList[int(adhesion_extruder)]
|
||||||
|
except IndexError:
|
||||||
|
Logger.warning(f"Couldn't find extruder with index '{adhesion_extruder}', defaulting to 0 instead.")
|
||||||
|
adhesion_stack = self._global_container_stack.extruderList[0]
|
||||||
skirt_brim_line_width = adhesion_stack.getProperty("skirt_brim_line_width", "value")
|
skirt_brim_line_width = adhesion_stack.getProperty("skirt_brim_line_width", "value")
|
||||||
|
|
||||||
initial_layer_line_width_factor = adhesion_stack.getProperty("initial_layer_line_width_factor", "value")
|
initial_layer_line_width_factor = adhesion_stack.getProperty("initial_layer_line_width_factor", "value")
|
||||||
|
@ -162,6 +162,7 @@ class CuraApplication(QtApplication):
|
|||||||
self.default_theme = "cura-light"
|
self.default_theme = "cura-light"
|
||||||
|
|
||||||
self.change_log_url = "https://ultimaker.com/ultimaker-cura-latest-features?utm_source=cura&utm_medium=software&utm_campaign=cura-update-features"
|
self.change_log_url = "https://ultimaker.com/ultimaker-cura-latest-features?utm_source=cura&utm_medium=software&utm_campaign=cura-update-features"
|
||||||
|
self.beta_change_log_url = "https://ultimaker.com/ultimaker-cura-beta-features?utm_source=cura&utm_medium=software&utm_campaign=cura-update-features"
|
||||||
|
|
||||||
self._boot_loading_time = time.time()
|
self._boot_loading_time = time.time()
|
||||||
|
|
||||||
@ -716,6 +717,7 @@ class CuraApplication(QtApplication):
|
|||||||
for extruder in global_stack.extruderList:
|
for extruder in global_stack.extruderList:
|
||||||
extruder.userChanges.clear()
|
extruder.userChanges.clear()
|
||||||
global_stack.userChanges.clear()
|
global_stack.userChanges.clear()
|
||||||
|
self.getMachineManager().correctExtruderSettings()
|
||||||
|
|
||||||
# if the user decided to keep settings then the user settings should be re-calculated and validated for errors
|
# if the user decided to keep settings then the user settings should be re-calculated and validated for errors
|
||||||
# before slicing. To ensure that slicer uses right settings values
|
# before slicing. To ensure that slicer uses right settings values
|
||||||
|
@ -15,6 +15,7 @@ class Layer:
|
|||||||
self._height = 0.0
|
self._height = 0.0
|
||||||
self._thickness = 0.0
|
self._thickness = 0.0
|
||||||
self._polygons = [] # type: List[LayerPolygon]
|
self._polygons = [] # type: List[LayerPolygon]
|
||||||
|
self._vertex_count = 0
|
||||||
self._element_count = 0
|
self._element_count = 0
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -29,6 +30,10 @@ class Layer:
|
|||||||
def polygons(self) -> List[LayerPolygon]:
|
def polygons(self) -> List[LayerPolygon]:
|
||||||
return self._polygons
|
return self._polygons
|
||||||
|
|
||||||
|
@property
|
||||||
|
def vertexCount(self):
|
||||||
|
return self._vertex_count
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def elementCount(self):
|
def elementCount(self):
|
||||||
return self._element_count
|
return self._element_count
|
||||||
@ -43,24 +48,40 @@ class Layer:
|
|||||||
result = 0
|
result = 0
|
||||||
for polygon in self._polygons:
|
for polygon in self._polygons:
|
||||||
result += polygon.lineMeshVertexCount()
|
result += polygon.lineMeshVertexCount()
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def lineMeshElementCount(self) -> int:
|
def lineMeshElementCount(self) -> int:
|
||||||
result = 0
|
result = 0
|
||||||
for polygon in self._polygons:
|
for polygon in self._polygons:
|
||||||
result += polygon.lineMeshElementCount()
|
result += polygon.lineMeshElementCount()
|
||||||
|
return result
|
||||||
|
|
||||||
|
def lineMeshCumulativeTypeChangeCount(self, path: int) -> int:
|
||||||
|
""" The number of line-type changes in this layer up until #path.
|
||||||
|
See also LayerPolygon::cumulativeTypeChangeCounts.
|
||||||
|
|
||||||
|
:param path: The path-index up until which the cumulative changes are counted.
|
||||||
|
:return: The cumulative number of line-type changes up until this path.
|
||||||
|
"""
|
||||||
|
result = 0
|
||||||
|
for polygon in self._polygons:
|
||||||
|
num_counts = len(polygon.cumulativeTypeChangeCounts)
|
||||||
|
if path < num_counts:
|
||||||
|
return result + polygon.cumulativeTypeChangeCounts[path]
|
||||||
|
path -= num_counts
|
||||||
|
result += polygon.cumulativeTypeChangeCounts[num_counts - 1]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def build(self, vertex_offset, index_offset, vertices, colors, line_dimensions, feedrates, extruders, line_types, indices):
|
def build(self, vertex_offset, index_offset, vertices, colors, line_dimensions, feedrates, extruders, line_types, indices):
|
||||||
result_vertex_offset = vertex_offset
|
result_vertex_offset = vertex_offset
|
||||||
result_index_offset = index_offset
|
result_index_offset = index_offset
|
||||||
|
self._vertex_count = 0
|
||||||
self._element_count = 0
|
self._element_count = 0
|
||||||
for polygon in self._polygons:
|
for polygon in self._polygons:
|
||||||
polygon.build(result_vertex_offset, result_index_offset, vertices, colors, line_dimensions, feedrates, extruders, line_types, indices)
|
polygon.build(result_vertex_offset, result_index_offset, vertices, colors, line_dimensions, feedrates, extruders, line_types, indices)
|
||||||
result_vertex_offset += polygon.lineMeshVertexCount()
|
result_vertex_offset += polygon.lineMeshVertexCount()
|
||||||
result_index_offset += polygon.lineMeshElementCount()
|
result_index_offset += polygon.lineMeshElementCount()
|
||||||
|
self._vertex_count += polygon.vertexCount
|
||||||
self._element_count += polygon.elementCount
|
self._element_count += polygon.elementCount
|
||||||
|
|
||||||
return result_vertex_offset, result_index_offset
|
return result_vertex_offset, result_index_offset
|
||||||
|
@ -63,6 +63,7 @@ class LayerDataBuilder(MeshBuilder):
|
|||||||
feedrates = numpy.empty((vertex_count), numpy.float32)
|
feedrates = numpy.empty((vertex_count), numpy.float32)
|
||||||
extruders = numpy.empty((vertex_count), numpy.float32)
|
extruders = numpy.empty((vertex_count), numpy.float32)
|
||||||
line_types = numpy.empty((vertex_count), numpy.float32)
|
line_types = numpy.empty((vertex_count), numpy.float32)
|
||||||
|
vertex_indices = numpy.arange(0, vertex_count, 1, dtype = numpy.float32)
|
||||||
|
|
||||||
vertex_offset = 0
|
vertex_offset = 0
|
||||||
index_offset = 0
|
index_offset = 0
|
||||||
@ -109,6 +110,12 @@ class LayerDataBuilder(MeshBuilder):
|
|||||||
"value": feedrates,
|
"value": feedrates,
|
||||||
"opengl_name": "a_feedrate",
|
"opengl_name": "a_feedrate",
|
||||||
"opengl_type": "float"
|
"opengl_type": "float"
|
||||||
|
},
|
||||||
|
# Can't use glDrawElements to index (due to oversight in (Py)Qt), can't use gl_PrimitiveID (due to legacy support):
|
||||||
|
"vertex_indices": {
|
||||||
|
"value": vertex_indices,
|
||||||
|
"opengl_name": "a_vertex_index",
|
||||||
|
"opengl_type": "float"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,14 @@ class LayerPolygon:
|
|||||||
|
|
||||||
self._jump_mask = self.__jump_map[self._types]
|
self._jump_mask = self.__jump_map[self._types]
|
||||||
self._jump_count = numpy.sum(self._jump_mask)
|
self._jump_count = numpy.sum(self._jump_mask)
|
||||||
|
self._cumulative_type_change_counts = numpy.zeros(len(self._types)) # See the comment on the 'cumulativeTypeChangeCounts' property below.
|
||||||
|
last_type = self.types[0]
|
||||||
|
current_type_count = 0
|
||||||
|
for i in range(0, len(self._cumulative_type_change_counts)):
|
||||||
|
if last_type != self.types[i]:
|
||||||
|
current_type_count += 1
|
||||||
|
last_type = self.types[i]
|
||||||
|
self._cumulative_type_change_counts[i] = current_type_count
|
||||||
self._mesh_line_count = len(self._types) - self._jump_count
|
self._mesh_line_count = len(self._types) - self._jump_count
|
||||||
self._vertex_count = self._mesh_line_count + numpy.sum(self._types[1:] == self._types[:-1])
|
self._vertex_count = self._mesh_line_count + numpy.sum(self._types[1:] == self._types[:-1])
|
||||||
|
|
||||||
@ -179,6 +187,10 @@ class LayerPolygon:
|
|||||||
def data(self):
|
def data(self):
|
||||||
return self._data
|
return self._data
|
||||||
|
|
||||||
|
@property
|
||||||
|
def vertexCount(self):
|
||||||
|
return self._vertex_end - self._vertex_begin
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def elementCount(self):
|
def elementCount(self):
|
||||||
return (self._index_end - self._index_begin) * 2 # The range of vertices multiplied by 2 since each vertex is used twice
|
return (self._index_end - self._index_begin) * 2 # The range of vertices multiplied by 2 since each vertex is used twice
|
||||||
@ -207,6 +219,17 @@ class LayerPolygon:
|
|||||||
def jumpCount(self):
|
def jumpCount(self):
|
||||||
return self._jump_count
|
return self._jump_count
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cumulativeTypeChangeCounts(self):
|
||||||
|
""" This polygon class stores with a vertex the type of the line to the next vertex. However, in other contexts,
|
||||||
|
other ways of representing this might be more suited to the task (for example, when a vertex can possibly only
|
||||||
|
have _one_ type, it's unavoidable to duplicate vertices when the type is changed). In such situations it's might
|
||||||
|
be useful to know how many times the type has changed, in order to keep the various vertex-indices aligned.
|
||||||
|
|
||||||
|
:return: The total times the line-type changes from one type to another within this LayerPolygon.
|
||||||
|
"""
|
||||||
|
return self._cumulative_type_change_counts
|
||||||
|
|
||||||
def getNormals(self) -> numpy.ndarray:
|
def getNormals(self) -> numpy.ndarray:
|
||||||
"""Calculate normals for the entire polygon using numpy.
|
"""Calculate normals for the entire polygon using numpy.
|
||||||
|
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
# Copyright (c) 2021 Ultimaker B.V.
|
# Copyright (c) 2021 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from datetime import datetime
|
|
||||||
import json
|
|
||||||
import secrets
|
|
||||||
from hashlib import sha512
|
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
from typing import Optional
|
from datetime import datetime
|
||||||
import requests
|
from hashlib import sha512
|
||||||
|
from PyQt5.QtNetwork import QNetworkReply
|
||||||
from UM.i18n import i18nCatalog
|
import secrets
|
||||||
from UM.Logger import Logger
|
from typing import Callable, Optional
|
||||||
|
import urllib.parse
|
||||||
|
|
||||||
from cura.OAuth2.Models import AuthenticationResponse, UserProfile, OAuth2Settings
|
from cura.OAuth2.Models import AuthenticationResponse, UserProfile, OAuth2Settings
|
||||||
|
from UM.i18n import i18nCatalog
|
||||||
|
from UM.Logger import Logger
|
||||||
|
from UM.TaskManagement.HttpRequestManager import HttpRequestManager # To download log-in tokens.
|
||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
TOKEN_TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S"
|
TOKEN_TIMESTAMP_FORMAT = "%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
@ -30,14 +31,13 @@ class AuthorizationHelpers:
|
|||||||
|
|
||||||
return self._settings
|
return self._settings
|
||||||
|
|
||||||
def getAccessTokenUsingAuthorizationCode(self, authorization_code: str, verification_code: str) -> "AuthenticationResponse":
|
def getAccessTokenUsingAuthorizationCode(self, authorization_code: str, verification_code: str, callback: Callable[[AuthenticationResponse], None]) -> None:
|
||||||
"""Request the access token from the authorization server.
|
"""
|
||||||
|
Request the access token from the authorization server.
|
||||||
:param authorization_code: The authorization code from the 1st step.
|
:param authorization_code: The authorization code from the 1st step.
|
||||||
:param verification_code: The verification code needed for the PKCE extension.
|
:param verification_code: The verification code needed for the PKCE extension.
|
||||||
:return: An AuthenticationResponse object.
|
:param callback: Once the token has been obtained, this function will be called with the response.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
||||||
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
"redirect_uri": self._settings.CALLBACK_URL if self._settings.CALLBACK_URL is not None else "",
|
||||||
@ -46,18 +46,21 @@ class AuthorizationHelpers:
|
|||||||
"code_verifier": verification_code,
|
"code_verifier": verification_code,
|
||||||
"scope": self._settings.CLIENT_SCOPES if self._settings.CLIENT_SCOPES is not None else "",
|
"scope": self._settings.CLIENT_SCOPES if self._settings.CLIENT_SCOPES is not None else "",
|
||||||
}
|
}
|
||||||
try:
|
headers = {"Content-type": "application/x-www-form-urlencoded"}
|
||||||
return self.parseTokenResponse(requests.post(self._token_url, data = data)) # type: ignore
|
HttpRequestManager.getInstance().post(
|
||||||
except requests.exceptions.ConnectionError as connection_error:
|
self._token_url,
|
||||||
return AuthenticationResponse(success = False, err_message = f"Unable to connect to remote server: {connection_error}")
|
data = urllib.parse.urlencode(data).encode("UTF-8"),
|
||||||
|
headers_dict = headers,
|
||||||
|
callback = lambda response: self.parseTokenResponse(response, callback),
|
||||||
|
error_callback = lambda response, _: self.parseTokenResponse(response, callback)
|
||||||
|
)
|
||||||
|
|
||||||
def getAccessTokenUsingRefreshToken(self, refresh_token: str) -> "AuthenticationResponse":
|
def getAccessTokenUsingRefreshToken(self, refresh_token: str, callback: Callable[[AuthenticationResponse], None]) -> None:
|
||||||
"""Request the access token from the authorization server using a refresh token.
|
"""
|
||||||
|
Request the access token from the authorization server using a refresh token.
|
||||||
:param refresh_token:
|
:param refresh_token: A long-lived token used to refresh the authentication token.
|
||||||
:return: An AuthenticationResponse object.
|
:param callback: Once the token has been obtained, this function will be called with the response.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Logger.log("d", "Refreshing the access token for [%s]", self._settings.OAUTH_SERVER_URL)
|
Logger.log("d", "Refreshing the access token for [%s]", self._settings.OAUTH_SERVER_URL)
|
||||||
data = {
|
data = {
|
||||||
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
"client_id": self._settings.CLIENT_ID if self._settings.CLIENT_ID is not None else "",
|
||||||
@ -66,75 +69,99 @@ class AuthorizationHelpers:
|
|||||||
"refresh_token": refresh_token,
|
"refresh_token": refresh_token,
|
||||||
"scope": self._settings.CLIENT_SCOPES if self._settings.CLIENT_SCOPES is not None else "",
|
"scope": self._settings.CLIENT_SCOPES if self._settings.CLIENT_SCOPES is not None else "",
|
||||||
}
|
}
|
||||||
try:
|
headers = {"Content-type": "application/x-www-form-urlencoded"}
|
||||||
return self.parseTokenResponse(requests.post(self._token_url, data = data)) # type: ignore
|
HttpRequestManager.getInstance().post(
|
||||||
except requests.exceptions.ConnectionError:
|
self._token_url,
|
||||||
return AuthenticationResponse(success = False, err_message = "Unable to connect to remote server")
|
data = urllib.parse.urlencode(data).encode("UTF-8"),
|
||||||
except OSError as e:
|
headers_dict = headers,
|
||||||
return AuthenticationResponse(success = False, err_message = "Operating system is unable to set up a secure connection: {err}".format(err = str(e)))
|
callback = lambda response: self.parseTokenResponse(response, callback),
|
||||||
|
error_callback = lambda response, _: self.parseTokenResponse(response, callback)
|
||||||
|
)
|
||||||
|
|
||||||
@staticmethod
|
def parseTokenResponse(self, token_response: QNetworkReply, callback: Callable[[AuthenticationResponse], None]) -> None:
|
||||||
def parseTokenResponse(token_response: requests.models.Response) -> "AuthenticationResponse":
|
|
||||||
"""Parse the token response from the authorization server into an AuthenticationResponse object.
|
"""Parse the token response from the authorization server into an AuthenticationResponse object.
|
||||||
|
|
||||||
:param token_response: The JSON string data response from the authorization server.
|
:param token_response: The JSON string data response from the authorization server.
|
||||||
:return: An AuthenticationResponse object.
|
:return: An AuthenticationResponse object.
|
||||||
"""
|
"""
|
||||||
|
token_data = HttpRequestManager.readJSON(token_response)
|
||||||
token_data = None
|
|
||||||
|
|
||||||
try:
|
|
||||||
token_data = json.loads(token_response.text)
|
|
||||||
except ValueError:
|
|
||||||
Logger.log("w", "Could not parse token response data: %s", token_response.text)
|
|
||||||
|
|
||||||
if not token_data:
|
if not token_data:
|
||||||
return AuthenticationResponse(success = False, err_message = catalog.i18nc("@message", "Could not read response."))
|
callback(AuthenticationResponse(success = False, err_message = catalog.i18nc("@message", "Could not read response.")))
|
||||||
|
return
|
||||||
|
|
||||||
if token_response.status_code not in (200, 201):
|
if token_response.error() != QNetworkReply.NetworkError.NoError:
|
||||||
return AuthenticationResponse(success = False, err_message = token_data["error_description"])
|
callback(AuthenticationResponse(success = False, err_message = token_data["error_description"]))
|
||||||
|
return
|
||||||
|
|
||||||
return AuthenticationResponse(success=True,
|
callback(AuthenticationResponse(success = True,
|
||||||
token_type=token_data["token_type"],
|
token_type = token_data["token_type"],
|
||||||
access_token=token_data["access_token"],
|
access_token = token_data["access_token"],
|
||||||
refresh_token=token_data["refresh_token"],
|
refresh_token = token_data["refresh_token"],
|
||||||
expires_in=token_data["expires_in"],
|
expires_in = token_data["expires_in"],
|
||||||
scope=token_data["scope"],
|
scope = token_data["scope"],
|
||||||
received_at=datetime.now().strftime(TOKEN_TIMESTAMP_FORMAT))
|
received_at = datetime.now().strftime(TOKEN_TIMESTAMP_FORMAT)))
|
||||||
|
return
|
||||||
|
|
||||||
def parseJWT(self, access_token: str) -> Optional["UserProfile"]:
|
def checkToken(self, access_token: str, success_callback: Optional[Callable[[UserProfile], None]] = None, failed_callback: Optional[Callable[[], None]] = None) -> None:
|
||||||
"""Calls the authentication API endpoint to get the token data.
|
"""Calls the authentication API endpoint to get the token data.
|
||||||
|
|
||||||
|
The API is called asynchronously. When a response is given, the callback is called with the user's profile.
|
||||||
:param access_token: The encoded JWT token.
|
:param access_token: The encoded JWT token.
|
||||||
:return: Dict containing some profile data.
|
:param success_callback: When a response is given, this function will be called with a user profile. If None,
|
||||||
|
there will not be a callback.
|
||||||
|
:param failed_callback: When the request failed or the response didn't parse, this function will be called.
|
||||||
"""
|
"""
|
||||||
|
check_token_url = "{}/check-token".format(self._settings.OAUTH_SERVER_URL)
|
||||||
try:
|
Logger.log("d", "Checking the access token for [%s]", check_token_url)
|
||||||
check_token_url = "{}/check-token".format(self._settings.OAUTH_SERVER_URL)
|
headers = {
|
||||||
Logger.log("d", "Checking the access token for [%s]", check_token_url)
|
"Authorization": f"Bearer {access_token}"
|
||||||
token_request = requests.get(check_token_url, headers = {
|
}
|
||||||
"Authorization": "Bearer {}".format(access_token)
|
HttpRequestManager.getInstance().get(
|
||||||
})
|
check_token_url,
|
||||||
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
|
headers_dict = headers,
|
||||||
# Connection was suddenly dropped. Nothing we can do about that.
|
callback = lambda reply: self._parseUserProfile(reply, success_callback, failed_callback),
|
||||||
Logger.logException("w", "Something failed while attempting to parse the JWT token")
|
error_callback = lambda _, _2: failed_callback() if failed_callback is not None else None
|
||||||
return None
|
|
||||||
if token_request.status_code not in (200, 201):
|
|
||||||
Logger.log("w", "Could not retrieve token data from auth server: %s", token_request.text)
|
|
||||||
return None
|
|
||||||
user_data = token_request.json().get("data")
|
|
||||||
if not user_data or not isinstance(user_data, dict):
|
|
||||||
Logger.log("w", "Could not parse user data from token: %s", user_data)
|
|
||||||
return None
|
|
||||||
|
|
||||||
return UserProfile(
|
|
||||||
user_id = user_data["user_id"],
|
|
||||||
username = user_data["username"],
|
|
||||||
profile_image_url = user_data.get("profile_image_url", ""),
|
|
||||||
organization_id = user_data.get("organization", {}).get("organization_id"),
|
|
||||||
subscriptions = user_data.get("subscriptions", [])
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _parseUserProfile(self, reply: QNetworkReply, success_callback: Optional[Callable[[UserProfile], None]], failed_callback: Optional[Callable[[], None]] = None) -> None:
|
||||||
|
"""
|
||||||
|
Parses the user profile from a reply to /check-token.
|
||||||
|
|
||||||
|
If the response is valid, the callback will be called to return the user profile to the caller.
|
||||||
|
:param reply: A network reply to a request to the /check-token URL.
|
||||||
|
:param success_callback: A function to call once a user profile was successfully obtained.
|
||||||
|
:param failed_callback: A function to call if parsing the profile failed.
|
||||||
|
"""
|
||||||
|
if reply.error() != QNetworkReply.NetworkError.NoError:
|
||||||
|
Logger.warning(f"Could not access account information. QNetworkError {reply.errorString()}")
|
||||||
|
if failed_callback is not None:
|
||||||
|
failed_callback()
|
||||||
|
return
|
||||||
|
|
||||||
|
profile_data = HttpRequestManager.getInstance().readJSON(reply)
|
||||||
|
if profile_data is None or "data" not in profile_data:
|
||||||
|
Logger.warning("Could not parse user data from token.")
|
||||||
|
if failed_callback is not None:
|
||||||
|
failed_callback()
|
||||||
|
return
|
||||||
|
profile_data = profile_data["data"]
|
||||||
|
|
||||||
|
required_fields = {"user_id", "username"}
|
||||||
|
if "user_id" not in profile_data or "username" not in profile_data:
|
||||||
|
Logger.warning(f"User data missing required field(s): {required_fields - set(profile_data.keys())}")
|
||||||
|
if failed_callback is not None:
|
||||||
|
failed_callback()
|
||||||
|
return
|
||||||
|
|
||||||
|
if success_callback is not None:
|
||||||
|
success_callback(UserProfile(
|
||||||
|
user_id = profile_data["user_id"],
|
||||||
|
username = profile_data["username"],
|
||||||
|
profile_image_url = profile_data.get("profile_image_url", ""),
|
||||||
|
organization_id = profile_data.get("organization", {}).get("organization_id"),
|
||||||
|
subscriptions = profile_data.get("subscriptions", [])
|
||||||
|
))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generateVerificationCode(code_length: int = 32) -> str:
|
def generateVerificationCode(code_length: int = 32) -> str:
|
||||||
"""Generate a verification code of arbitrary length.
|
"""Generate a verification code of arbitrary length.
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from http.server import BaseHTTPRequestHandler
|
from http.server import BaseHTTPRequestHandler
|
||||||
|
from threading import Lock # To turn an asynchronous call synchronous.
|
||||||
from typing import Optional, Callable, Tuple, Dict, Any, List, TYPE_CHECKING
|
from typing import Optional, Callable, Tuple, Dict, Any, List, TYPE_CHECKING
|
||||||
from urllib.parse import parse_qs, urlparse
|
from urllib.parse import parse_qs, urlparse
|
||||||
|
|
||||||
@ -14,6 +15,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
|
|
||||||
class AuthorizationRequestHandler(BaseHTTPRequestHandler):
|
class AuthorizationRequestHandler(BaseHTTPRequestHandler):
|
||||||
"""This handler handles all HTTP requests on the local web server.
|
"""This handler handles all HTTP requests on the local web server.
|
||||||
|
|
||||||
@ -24,11 +26,11 @@ class AuthorizationRequestHandler(BaseHTTPRequestHandler):
|
|||||||
super().__init__(request, client_address, server)
|
super().__init__(request, client_address, server)
|
||||||
|
|
||||||
# These values will be injected by the HTTPServer that this handler belongs to.
|
# These values will be injected by the HTTPServer that this handler belongs to.
|
||||||
self.authorization_helpers = None # type: Optional[AuthorizationHelpers]
|
self.authorization_helpers: Optional[AuthorizationHelpers] = None
|
||||||
self.authorization_callback = None # type: Optional[Callable[[AuthenticationResponse], None]]
|
self.authorization_callback: Optional[Callable[[AuthenticationResponse], None]] = None
|
||||||
self.verification_code = None # type: Optional[str]
|
self.verification_code: Optional[str] = None
|
||||||
|
|
||||||
self.state = None # type: Optional[str]
|
self.state: Optional[str] = None
|
||||||
|
|
||||||
# CURA-6609: Some browser seems to issue a HEAD instead of GET request as the callback.
|
# CURA-6609: Some browser seems to issue a HEAD instead of GET request as the callback.
|
||||||
def do_HEAD(self) -> None:
|
def do_HEAD(self) -> None:
|
||||||
@ -70,13 +72,23 @@ class AuthorizationRequestHandler(BaseHTTPRequestHandler):
|
|||||||
if state != self.state:
|
if state != self.state:
|
||||||
token_response = AuthenticationResponse(
|
token_response = AuthenticationResponse(
|
||||||
success = False,
|
success = False,
|
||||||
err_message=catalog.i18nc("@message",
|
err_message = catalog.i18nc("@message", "The provided state is not correct.")
|
||||||
"The provided state is not correct.")
|
|
||||||
)
|
)
|
||||||
elif code and self.authorization_helpers is not None and self.verification_code is not None:
|
elif code and self.authorization_helpers is not None and self.verification_code is not None:
|
||||||
|
token_response = AuthenticationResponse(
|
||||||
|
success = False,
|
||||||
|
err_message = catalog.i18nc("@message", "Timeout when authenticating with the account server.")
|
||||||
|
)
|
||||||
# If the code was returned we get the access token.
|
# If the code was returned we get the access token.
|
||||||
token_response = self.authorization_helpers.getAccessTokenUsingAuthorizationCode(
|
lock = Lock()
|
||||||
code, self.verification_code)
|
lock.acquire()
|
||||||
|
|
||||||
|
def callback(response: AuthenticationResponse) -> None:
|
||||||
|
nonlocal token_response
|
||||||
|
token_response = response
|
||||||
|
lock.release()
|
||||||
|
self.authorization_helpers.getAccessTokenUsingAuthorizationCode(code, self.verification_code, callback)
|
||||||
|
lock.acquire(timeout = 60) # Block thread until request is completed (which releases the lock). If not acquired, the timeout message stays.
|
||||||
|
|
||||||
elif self._queryGet(query, "error_code") == "user_denied":
|
elif self._queryGet(query, "error_code") == "user_denied":
|
||||||
# Otherwise we show an error message (probably the user clicked "Deny" in the auth dialog).
|
# Otherwise we show an error message (probably the user clicked "Deny" in the auth dialog).
|
||||||
|
@ -3,10 +3,9 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from typing import Optional, TYPE_CHECKING, Dict
|
from typing import Callable, Dict, Optional, TYPE_CHECKING, Union
|
||||||
from urllib.parse import urlencode, quote_plus
|
from urllib.parse import urlencode, quote_plus
|
||||||
|
|
||||||
import requests.exceptions
|
|
||||||
from PyQt5.QtCore import QUrl
|
from PyQt5.QtCore import QUrl
|
||||||
from PyQt5.QtGui import QDesktopServices
|
from PyQt5.QtGui import QDesktopServices
|
||||||
|
|
||||||
@ -16,7 +15,7 @@ from UM.Signal import Signal
|
|||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
from cura.OAuth2.AuthorizationHelpers import AuthorizationHelpers, TOKEN_TIMESTAMP_FORMAT
|
from cura.OAuth2.AuthorizationHelpers import AuthorizationHelpers, TOKEN_TIMESTAMP_FORMAT
|
||||||
from cura.OAuth2.LocalAuthorizationServer import LocalAuthorizationServer
|
from cura.OAuth2.LocalAuthorizationServer import LocalAuthorizationServer
|
||||||
from cura.OAuth2.Models import AuthenticationResponse
|
from cura.OAuth2.Models import AuthenticationResponse, BaseModel
|
||||||
|
|
||||||
i18n_catalog = i18nCatalog("cura")
|
i18n_catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
@ -26,6 +25,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
MYCLOUD_LOGOFF_URL = "https://account.ultimaker.com/logoff?utm_source=cura&utm_medium=software&utm_campaign=change-account-before-adding-printers"
|
MYCLOUD_LOGOFF_URL = "https://account.ultimaker.com/logoff?utm_source=cura&utm_medium=software&utm_campaign=change-account-before-adding-printers"
|
||||||
|
|
||||||
|
|
||||||
class AuthorizationService:
|
class AuthorizationService:
|
||||||
"""The authorization service is responsible for handling the login flow, storing user credentials and providing
|
"""The authorization service is responsible for handling the login flow, storing user credentials and providing
|
||||||
account information.
|
account information.
|
||||||
@ -43,12 +43,13 @@ class AuthorizationService:
|
|||||||
self._settings = settings
|
self._settings = settings
|
||||||
self._auth_helpers = AuthorizationHelpers(settings)
|
self._auth_helpers = AuthorizationHelpers(settings)
|
||||||
self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL)
|
self._auth_url = "{}/authorize".format(self._settings.OAUTH_SERVER_URL)
|
||||||
self._auth_data = None # type: Optional[AuthenticationResponse]
|
self._auth_data: Optional[AuthenticationResponse] = None
|
||||||
self._user_profile = None # type: Optional["UserProfile"]
|
self._user_profile: Optional["UserProfile"] = None
|
||||||
self._preferences = preferences
|
self._preferences = preferences
|
||||||
self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True)
|
self._server = LocalAuthorizationServer(self._auth_helpers, self._onAuthStateChanged, daemon=True)
|
||||||
|
self._currently_refreshing_token = False # Whether we are currently in the process of refreshing auth. Don't make new requests while busy.
|
||||||
|
|
||||||
self._unable_to_get_data_message = None # type: Optional[Message]
|
self._unable_to_get_data_message: Optional[Message] = None
|
||||||
|
|
||||||
self.onAuthStateChanged.connect(self._authChanged)
|
self.onAuthStateChanged.connect(self._authChanged)
|
||||||
|
|
||||||
@ -62,69 +63,80 @@ class AuthorizationService:
|
|||||||
if self._preferences:
|
if self._preferences:
|
||||||
self._preferences.addPreference(self._settings.AUTH_DATA_PREFERENCE_KEY, "{}")
|
self._preferences.addPreference(self._settings.AUTH_DATA_PREFERENCE_KEY, "{}")
|
||||||
|
|
||||||
def getUserProfile(self) -> Optional["UserProfile"]:
|
def getUserProfile(self, callback: Optional[Callable[[Optional["UserProfile"]], None]] = None) -> None:
|
||||||
"""Get the user profile as obtained from the JWT (JSON Web Token).
|
"""
|
||||||
|
Get the user profile as obtained from the JWT (JSON Web Token).
|
||||||
|
|
||||||
If the JWT is not yet parsed, calling this will take care of that.
|
If the JWT is not yet checked and parsed, calling this will take care of that.
|
||||||
|
:param callback: Once the user profile is obtained, this function will be called with the given user profile. If
|
||||||
:return: UserProfile if a user is logged in, None otherwise.
|
the profile fails to be obtained, this function will be called with None.
|
||||||
|
|
||||||
See also: :py:method:`cura.OAuth2.AuthorizationService.AuthorizationService._parseJWT`
|
See also: :py:method:`cura.OAuth2.AuthorizationService.AuthorizationService._parseJWT`
|
||||||
"""
|
"""
|
||||||
|
if self._user_profile:
|
||||||
|
# We already obtained the profile. No need to make another request for it.
|
||||||
|
if callback is not None:
|
||||||
|
callback(self._user_profile)
|
||||||
|
return
|
||||||
|
|
||||||
if not self._user_profile:
|
# If no user profile was stored locally, we try to get it from JWT.
|
||||||
# If no user profile was stored locally, we try to get it from JWT.
|
def store_profile(profile: Optional["UserProfile"]) -> None:
|
||||||
try:
|
if profile is not None:
|
||||||
self._user_profile = self._parseJWT()
|
self._user_profile = profile
|
||||||
except requests.exceptions.ConnectionError:
|
if callback is not None:
|
||||||
# Unable to get connection, can't login.
|
callback(profile)
|
||||||
Logger.logException("w", "Unable to validate user data with the remote server.")
|
elif self._auth_data:
|
||||||
return None
|
# If there is no user profile from the JWT, we have to log in again.
|
||||||
|
Logger.warning("The user profile could not be loaded. The user must log in again!")
|
||||||
|
self.deleteAuthData()
|
||||||
|
if callback is not None:
|
||||||
|
callback(None)
|
||||||
|
else:
|
||||||
|
if callback is not None:
|
||||||
|
callback(None)
|
||||||
|
|
||||||
if not self._user_profile and self._auth_data:
|
self._parseJWT(callback = store_profile)
|
||||||
# If there is still no user profile from the JWT, we have to log in again.
|
|
||||||
Logger.log("w", "The user profile could not be loaded. The user must log in again!")
|
|
||||||
self.deleteAuthData()
|
|
||||||
return None
|
|
||||||
|
|
||||||
return self._user_profile
|
def _parseJWT(self, callback: Callable[[Optional["UserProfile"]], None]) -> None:
|
||||||
|
"""
|
||||||
def _parseJWT(self) -> Optional["UserProfile"]:
|
Tries to parse the JWT (JSON Web Token) data, which it does if all the needed data is there.
|
||||||
"""Tries to parse the JWT (JSON Web Token) data, which it does if all the needed data is there.
|
:param callback: A function to call asynchronously once the user profile has been obtained. It will be called
|
||||||
|
with `None` if it failed to obtain a user profile.
|
||||||
:return: UserProfile if it was able to parse, None otherwise.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if not self._auth_data or self._auth_data.access_token is None:
|
if not self._auth_data or self._auth_data.access_token is None:
|
||||||
# If no auth data exists, we should always log in again.
|
# If no auth data exists, we should always log in again.
|
||||||
Logger.log("d", "There was no auth data or access token")
|
Logger.debug("There was no auth data or access token")
|
||||||
return None
|
callback(None)
|
||||||
|
return
|
||||||
|
|
||||||
try:
|
# When we checked the token we may get a user profile. This callback checks if that is a valid one and tries to refresh the token if it's not.
|
||||||
user_data = self._auth_helpers.parseJWT(self._auth_data.access_token)
|
def check_user_profile(user_profile: Optional["UserProfile"]) -> None:
|
||||||
except AttributeError:
|
if user_profile:
|
||||||
# THis might seem a bit double, but we get crash reports about this (CURA-2N2 in sentry)
|
# If the profile was found, we call it back immediately.
|
||||||
Logger.log("d", "There was no auth data or access token")
|
callback(user_profile)
|
||||||
return None
|
return
|
||||||
|
# The JWT was expired or invalid and we should request a new one.
|
||||||
|
if self._auth_data is None or self._auth_data.refresh_token is None:
|
||||||
|
Logger.warning("There was no refresh token in the auth data.")
|
||||||
|
callback(None)
|
||||||
|
return
|
||||||
|
|
||||||
if user_data:
|
def process_auth_data(auth_data: AuthenticationResponse) -> None:
|
||||||
# If the profile was found, we return it immediately.
|
if auth_data.access_token is None:
|
||||||
return user_data
|
Logger.warning("Unable to use the refresh token to get a new access token.")
|
||||||
# The JWT was expired or invalid and we should request a new one.
|
callback(None)
|
||||||
if self._auth_data.refresh_token is None:
|
return
|
||||||
Logger.log("w", "There was no refresh token in the auth data.")
|
# Ensure it gets stored as otherwise we only have it in memory. The stored refresh token has been
|
||||||
return None
|
# deleted from the server already. Do not store the auth_data if we could not get new auth_data (e.g.
|
||||||
self._auth_data = self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token)
|
# due to a network error), since this would cause an infinite loop trying to get new auth-data.
|
||||||
if not self._auth_data or self._auth_data.access_token is None:
|
if auth_data.success:
|
||||||
Logger.log("w", "Unable to use the refresh token to get a new access token.")
|
self._storeAuthData(auth_data)
|
||||||
# The token could not be refreshed using the refresh token. We should login again.
|
self._auth_helpers.checkToken(auth_data.access_token, callback, lambda: callback(None))
|
||||||
return None
|
|
||||||
# Ensure it gets stored as otherwise we only have it in memory. The stored refresh token has been deleted
|
self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token, process_auth_data)
|
||||||
# from the server already. Do not store the auth_data if we could not get new auth_data (eg due to a
|
|
||||||
# network error), since this would cause an infinite loop trying to get new auth-data
|
self._auth_helpers.checkToken(self._auth_data.access_token, check_user_profile, lambda: check_user_profile(None))
|
||||||
if self._auth_data.success:
|
|
||||||
self._storeAuthData(self._auth_data)
|
|
||||||
return self._auth_helpers.parseJWT(self._auth_data.access_token)
|
|
||||||
|
|
||||||
def getAccessToken(self) -> Optional[str]:
|
def getAccessToken(self) -> Optional[str]:
|
||||||
"""Get the access token as provided by the response data."""
|
"""Get the access token as provided by the response data."""
|
||||||
@ -149,13 +161,20 @@ class AuthorizationService:
|
|||||||
if self._auth_data is None or self._auth_data.refresh_token is None:
|
if self._auth_data is None or self._auth_data.refresh_token is None:
|
||||||
Logger.log("w", "Unable to refresh access token, since there is no refresh token.")
|
Logger.log("w", "Unable to refresh access token, since there is no refresh token.")
|
||||||
return
|
return
|
||||||
response = self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token)
|
|
||||||
if response.success:
|
def process_auth_data(response: AuthenticationResponse) -> None:
|
||||||
self._storeAuthData(response)
|
if response.success:
|
||||||
self.onAuthStateChanged.emit(logged_in = True)
|
self._storeAuthData(response)
|
||||||
else:
|
self.onAuthStateChanged.emit(logged_in = True)
|
||||||
Logger.log("w", "Failed to get a new access token from the server.")
|
else:
|
||||||
self.onAuthStateChanged.emit(logged_in = False)
|
Logger.warning("Failed to get a new access token from the server.")
|
||||||
|
self.onAuthStateChanged.emit(logged_in = False)
|
||||||
|
|
||||||
|
if self._currently_refreshing_token:
|
||||||
|
Logger.debug("Was already busy refreshing token. Do not start a new request.")
|
||||||
|
return
|
||||||
|
self._currently_refreshing_token = True
|
||||||
|
self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token, process_auth_data)
|
||||||
|
|
||||||
def deleteAuthData(self) -> None:
|
def deleteAuthData(self) -> None:
|
||||||
"""Delete the authentication data that we have stored locally (eg; logout)"""
|
"""Delete the authentication data that we have stored locally (eg; logout)"""
|
||||||
@ -244,21 +263,23 @@ class AuthorizationService:
|
|||||||
preferences_data = json.loads(self._preferences.getValue(self._settings.AUTH_DATA_PREFERENCE_KEY))
|
preferences_data = json.loads(self._preferences.getValue(self._settings.AUTH_DATA_PREFERENCE_KEY))
|
||||||
if preferences_data:
|
if preferences_data:
|
||||||
self._auth_data = AuthenticationResponse(**preferences_data)
|
self._auth_data = AuthenticationResponse(**preferences_data)
|
||||||
# Also check if we can actually get the user profile information.
|
|
||||||
user_profile = self.getUserProfile()
|
|
||||||
if user_profile is not None:
|
|
||||||
self.onAuthStateChanged.emit(logged_in = True)
|
|
||||||
Logger.log("d", "Auth data was successfully loaded")
|
|
||||||
else:
|
|
||||||
if self._unable_to_get_data_message is not None:
|
|
||||||
self._unable_to_get_data_message.hide()
|
|
||||||
|
|
||||||
self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info",
|
# Also check if we can actually get the user profile information.
|
||||||
"Unable to reach the Ultimaker account server."),
|
def callback(profile: Optional["UserProfile"]) -> None:
|
||||||
title = i18n_catalog.i18nc("@info:title", "Warning"),
|
if profile is not None:
|
||||||
message_type = Message.MessageType.ERROR)
|
self.onAuthStateChanged.emit(logged_in = True)
|
||||||
Logger.log("w", "Unable to load auth data from preferences")
|
Logger.debug("Auth data was successfully loaded")
|
||||||
self._unable_to_get_data_message.show()
|
else:
|
||||||
|
if self._unable_to_get_data_message is not None:
|
||||||
|
self._unable_to_get_data_message.show()
|
||||||
|
else:
|
||||||
|
self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info",
|
||||||
|
"Unable to reach the Ultimaker account server."),
|
||||||
|
title = i18n_catalog.i18nc("@info:title", "Log-in failed"),
|
||||||
|
message_type = Message.MessageType.ERROR)
|
||||||
|
Logger.warning("Unable to get user profile using auth data from preferences.")
|
||||||
|
self._unable_to_get_data_message.show()
|
||||||
|
self.getUserProfile(callback)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
Logger.logException("w", "Could not load auth data from preferences")
|
Logger.logException("w", "Could not load auth data from preferences")
|
||||||
|
|
||||||
@ -271,8 +292,9 @@ class AuthorizationService:
|
|||||||
return
|
return
|
||||||
|
|
||||||
self._auth_data = auth_data
|
self._auth_data = auth_data
|
||||||
|
self._currently_refreshing_token = False
|
||||||
if auth_data:
|
if auth_data:
|
||||||
self._user_profile = self.getUserProfile()
|
self.getUserProfile()
|
||||||
self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump()))
|
self._preferences.setValue(self._settings.AUTH_DATA_PREFERENCE_KEY, json.dumps(auth_data.dump()))
|
||||||
else:
|
else:
|
||||||
Logger.log("d", "Clearing the user profile")
|
Logger.log("d", "Clearing the user profile")
|
||||||
|
@ -72,8 +72,8 @@ class PickingPass(RenderPass):
|
|||||||
|
|
||||||
window_size = self._renderer.getWindowSize()
|
window_size = self._renderer.getWindowSize()
|
||||||
|
|
||||||
px = (0.5 + x / 2.0) * window_size[0]
|
px = int((0.5 + x / 2.0) * window_size[0])
|
||||||
py = (0.5 + y / 2.0) * window_size[1]
|
py = int((0.5 + y / 2.0) * window_size[1])
|
||||||
|
|
||||||
if px < 0 or px > (output.width() - 1) or py < 0 or py > (output.height() - 1):
|
if px < 0 or px > (output.width() - 1) or py < 0 or py > (output.height() - 1):
|
||||||
return -1
|
return -1
|
||||||
|
@ -12,6 +12,7 @@ from UM.Scene.SceneNode import SceneNode
|
|||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry # Finding containers by ID.
|
from UM.Settings.ContainerRegistry import ContainerRegistry # Finding containers by ID.
|
||||||
|
from cura.Machines.ContainerTree import ContainerTree
|
||||||
|
|
||||||
from typing import Any, cast, Dict, List, Optional, TYPE_CHECKING, Union
|
from typing import Any, cast, Dict, List, Optional, TYPE_CHECKING, Union
|
||||||
|
|
||||||
@ -403,6 +404,32 @@ class ExtruderManager(QObject):
|
|||||||
raise IndexError(msg)
|
raise IndexError(msg)
|
||||||
extruder_stack_0.definition = extruder_definition
|
extruder_stack_0.definition = extruder_definition
|
||||||
|
|
||||||
|
@pyqtSlot("QVariant", result = bool)
|
||||||
|
def getExtruderHasQualityForMaterial(self, extruder_stack: "ExtruderStack") -> bool:
|
||||||
|
"""Checks if quality nodes exist for the variant/material combination."""
|
||||||
|
application = cura.CuraApplication.CuraApplication.getInstance()
|
||||||
|
global_stack = application.getGlobalContainerStack()
|
||||||
|
if not global_stack or not extruder_stack:
|
||||||
|
return False
|
||||||
|
|
||||||
|
if not global_stack.getMetaDataEntry("has_materials"):
|
||||||
|
return True
|
||||||
|
|
||||||
|
machine_node = ContainerTree.getInstance().machines[global_stack.definition.getId()]
|
||||||
|
|
||||||
|
active_variant_name = extruder_stack.variant.getMetaDataEntry("name")
|
||||||
|
if active_variant_name not in machine_node.variants:
|
||||||
|
Logger.log("w", "Could not find the variant %s", active_variant_name)
|
||||||
|
return True
|
||||||
|
active_variant_node = machine_node.variants[active_variant_name]
|
||||||
|
active_material_node = active_variant_node.materials[extruder_stack.material.getMetaDataEntry("base_file")]
|
||||||
|
|
||||||
|
active_material_node_qualities = active_material_node.qualities
|
||||||
|
if not active_material_node_qualities:
|
||||||
|
return False
|
||||||
|
return list(active_material_node_qualities.keys())[0] != "empty_quality"
|
||||||
|
|
||||||
|
|
||||||
@pyqtSlot(str, result="QVariant")
|
@pyqtSlot(str, result="QVariant")
|
||||||
def getInstanceExtruderValues(self, key: str) -> List:
|
def getInstanceExtruderValues(self, key: str) -> List:
|
||||||
"""Get all extruder values for a certain setting.
|
"""Get all extruder values for a certain setting.
|
||||||
|
@ -855,7 +855,6 @@ class MachineManager(QObject):
|
|||||||
caution_message = Message(
|
caution_message = Message(
|
||||||
catalog.i18nc("@info:message Followed by a list of settings.",
|
catalog.i18nc("@info:message Followed by a list of settings.",
|
||||||
"Settings have been changed to match the current availability of extruders:") + " [{settings_list}]".format(settings_list = ", ".join(add_user_changes)),
|
"Settings have been changed to match the current availability of extruders:") + " [{settings_list}]".format(settings_list = ", ".join(add_user_changes)),
|
||||||
lifetime = 0,
|
|
||||||
title = catalog.i18nc("@info:title", "Settings updated"))
|
title = catalog.i18nc("@info:title", "Settings updated"))
|
||||||
caution_message.show()
|
caution_message.show()
|
||||||
|
|
||||||
@ -1191,7 +1190,7 @@ class MachineManager(QObject):
|
|||||||
|
|
||||||
self.setIntentByCategory(quality_changes_group.intent_category)
|
self.setIntentByCategory(quality_changes_group.intent_category)
|
||||||
self._reCalculateNumUserSettings()
|
self._reCalculateNumUserSettings()
|
||||||
|
self.correctExtruderSettings()
|
||||||
self.activeQualityGroupChanged.emit()
|
self.activeQualityGroupChanged.emit()
|
||||||
self.activeQualityChangesGroupChanged.emit()
|
self.activeQualityChangesGroupChanged.emit()
|
||||||
|
|
||||||
|
@ -61,6 +61,10 @@ class SettingInheritanceManager(QObject):
|
|||||||
result.append(key)
|
result.append(key)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@pyqtSlot(str, str, result = bool)
|
||||||
|
def hasOverrides(self, key: str, extruder_index: str):
|
||||||
|
return key in self.getOverridesForExtruder(key, extruder_index)
|
||||||
|
|
||||||
@pyqtSlot(str, str, result = "QStringList")
|
@pyqtSlot(str, str, result = "QStringList")
|
||||||
def getOverridesForExtruder(self, key: str, extruder_index: str) -> List[str]:
|
def getOverridesForExtruder(self, key: str, extruder_index: str) -> List[str]:
|
||||||
if self._global_container_stack is None:
|
if self._global_container_stack is None:
|
||||||
|
@ -182,7 +182,7 @@ class CloudMaterialSync(QObject):
|
|||||||
return
|
return
|
||||||
if job_result == UploadMaterialsJob.Result.FAILED:
|
if job_result == UploadMaterialsJob.Result.FAILED:
|
||||||
if isinstance(job_error, UploadMaterialsError):
|
if isinstance(job_error, UploadMaterialsError):
|
||||||
self.sync_all_dialog.setProperty("syncStatusText", catalog.i18nc("@text", "Error sending materials to the Digital Factory:") + " " + str(job_error))
|
self.sync_all_dialog.setProperty("syncStatusText", str(job_error))
|
||||||
else: # Could be "None"
|
else: # Could be "None"
|
||||||
self.sync_all_dialog.setProperty("syncStatusText", catalog.i18nc("@text", "Unknown error."))
|
self.sync_all_dialog.setProperty("syncStatusText", catalog.i18nc("@text", "Unknown error."))
|
||||||
self._export_upload_status = "error"
|
self._export_upload_status = "error"
|
||||||
|
@ -32,6 +32,12 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
|
|||||||
Logger.error("3MF Writer class is unavailable. Can't write workspace.")
|
Logger.error("3MF Writer class is unavailable. Can't write workspace.")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
global_stack = machine_manager.activeMachine
|
||||||
|
if global_stack is None:
|
||||||
|
self.setInformation(catalog.i18nc("@error", "There is no workspace yet to write. Please add a printer first."))
|
||||||
|
Logger.error("Tried to write a 3MF workspace before there was a global stack.")
|
||||||
|
return False
|
||||||
|
|
||||||
# Indicate that the 3mf mesh writer should not close the archive just yet (we still need to add stuff to it).
|
# Indicate that the 3mf mesh writer should not close the archive just yet (we still need to add stuff to it).
|
||||||
mesh_writer.setStoreArchive(True)
|
mesh_writer.setStoreArchive(True)
|
||||||
mesh_writer.write(stream, nodes, mode)
|
mesh_writer.write(stream, nodes, mode)
|
||||||
@ -40,7 +46,6 @@ class ThreeMFWorkspaceWriter(WorkspaceWriter):
|
|||||||
if archive is None: # This happens if there was no mesh data to write.
|
if archive is None: # This happens if there was no mesh data to write.
|
||||||
archive = zipfile.ZipFile(stream, "w", compression = zipfile.ZIP_DEFLATED)
|
archive = zipfile.ZipFile(stream, "w", compression = zipfile.ZIP_DEFLATED)
|
||||||
|
|
||||||
global_stack = machine_manager.activeMachine
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Add global container stack data to the archive.
|
# Add global container stack data to the archive.
|
||||||
|
@ -123,6 +123,9 @@ class StartSliceJob(Job):
|
|||||||
Job.yieldThread()
|
Job.yieldThread()
|
||||||
|
|
||||||
for changed_setting_key in changed_setting_keys:
|
for changed_setting_key in changed_setting_keys:
|
||||||
|
if not stack.getProperty(changed_setting_key, "enabled"):
|
||||||
|
continue
|
||||||
|
|
||||||
validation_state = stack.getProperty(changed_setting_key, "validationState")
|
validation_state = stack.getProperty(changed_setting_key, "validationState")
|
||||||
|
|
||||||
if validation_state is None:
|
if validation_state is None:
|
||||||
|
@ -261,7 +261,10 @@ class DigitalFactoryController(QObject):
|
|||||||
"""
|
"""
|
||||||
Error function, called whenever the retrieval of the files in a library project fails.
|
Error function, called whenever the retrieval of the files in a library project fails.
|
||||||
"""
|
"""
|
||||||
Logger.log("w", "Failed to retrieve the list of files in project '{}' from the Digital Library".format(self._project_model._projects[self._selected_project_idx]))
|
try:
|
||||||
|
Logger.warning(f"Failed to retrieve the list of files in project '{self._project_model._projects[self._selected_project_idx]}' from the Digital Library")
|
||||||
|
except IndexError:
|
||||||
|
Logger.warning(f"Failed to retrieve the list of files in a project from the Digital Library. And failed to get the project too.")
|
||||||
self.setRetrievingFilesStatus(RetrievalStatus.Failed)
|
self.setRetrievingFilesStatus(RetrievalStatus.Failed)
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
|
@ -198,7 +198,7 @@ class FlavorParser:
|
|||||||
|
|
||||||
# Only when extruding we can determine the latest known "layer height" which is the difference in height between extrusions
|
# Only when extruding we can determine the latest known "layer height" which is the difference in height between extrusions
|
||||||
# Also, 1.5 is a heuristic for any priming or whatsoever, we skip those.
|
# Also, 1.5 is a heuristic for any priming or whatsoever, we skip those.
|
||||||
if z > self._previous_z and (z - self._previous_z < 1.5):
|
if z > self._previous_z and (z - self._previous_z < 1.5) and (params.x is not None or params.y is not None):
|
||||||
self._current_layer_thickness = z - self._previous_z # allow a tiny overlap
|
self._current_layer_thickness = z - self._previous_z # allow a tiny overlap
|
||||||
self._previous_z = z
|
self._previous_z = z
|
||||||
elif self._previous_extrusion_value > e[self._extruder_number]:
|
elif self._previous_extrusion_value > e[self._extruder_number]:
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
# Modified by Jaime van Kessel (Ultimaker), j.vankessel@ultimaker.com to make it work for 15.10 / 2.x
|
# Modified by Jaime van Kessel (Ultimaker), j.vankessel@ultimaker.com to make it work for 15.10 / 2.x
|
||||||
# Modified by Ghostkeeper (Ultimaker), rubend@tutanota.com, to debug.
|
# Modified by Ghostkeeper (Ultimaker), rubend@tutanota.com, to debug.
|
||||||
# Modified by Wes Hanney, https://github.com/novamxd, Retract Length + Speed, Clean up
|
# Modified by Wes Hanney, https://github.com/novamxd, Retract Length + Speed, Clean up
|
||||||
|
# Modified by Alex Jaxon, https://github.com/legend069, Added option to modify Build Volume Temperature
|
||||||
|
|
||||||
|
|
||||||
# history / changelog:
|
# history / changelog:
|
||||||
# V3.0.1: TweakAtZ-state default 1 (i.e. the plugin works without any TweakAtZ comment)
|
# V3.0.1: TweakAtZ-state default 1 (i.e. the plugin works without any TweakAtZ comment)
|
||||||
@ -33,13 +35,17 @@
|
|||||||
# V5.0: Bugfix for fall back after one layer and doubled G0 commands when using print speed tweak, Initial version for Cura 2.x
|
# V5.0: Bugfix for fall back after one layer and doubled G0 commands when using print speed tweak, Initial version for Cura 2.x
|
||||||
# V5.0.1: Bugfix for calling unknown property 'bedTemp' of previous settings storage and unknown variable 'speed'
|
# V5.0.1: Bugfix for calling unknown property 'bedTemp' of previous settings storage and unknown variable 'speed'
|
||||||
# V5.1: API Changes included for use with Cura 2.2
|
# V5.1: API Changes included for use with Cura 2.2
|
||||||
# V5.2.0: Wes Hanney. Added support for changing Retract Length and Speed. Removed layer spread option. Fixed issue of cumulative ChangeZ
|
# V5.2.0: Wes Hanney. Added support for changing Retract Length and Speed. Removed layer spread option. Fixed issue of cumulative ChangeAtZ
|
||||||
# mods so they can now properly be stacked on top of each other. Applied code refactoring to clean up various coding styles. Added comments.
|
# mods so they can now properly be stacked on top of each other. Applied code refactoring to clean up various coding styles. Added comments.
|
||||||
# Broke up functions for clarity. Split up class so it can be debugged outside of Cura.
|
# Broke up functions for clarity. Split up class so it can be debugged outside of Cura.
|
||||||
# V5.2.1: Wes Hanney. Added support for firmware based retractions. Fixed issue of properly restoring previous values in single layer option.
|
# V5.2.1: Wes Hanney. Added support for firmware based retractions. Fixed issue of properly restoring previous values in single layer option.
|
||||||
# Added support for outputting changes to LCD (untested). Added type hints to most functions and variables. Added more comments. Created GCodeCommand
|
# Added support for outputting changes to LCD (untested). Added type hints to most functions and variables. Added more comments. Created GCodeCommand
|
||||||
# class for better detection of G1 vs G10 or G11 commands, and accessing arguments. Moved most GCode methods to GCodeCommand class. Improved wording
|
# class for better detection of G1 vs G10 or G11 commands, and accessing arguments. Moved most GCode methods to GCodeCommand class. Improved wording
|
||||||
# of Single Layer vs Keep Layer to better reflect what was happening.
|
# of Single Layer vs Keep Layer to better reflect what was happening.
|
||||||
|
# V5.3.0 Alex Jaxon, Added option to modify Build Volume Temperature keeping current format
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Uses -
|
# Uses -
|
||||||
# M220 S<factor in percent> - set speed factor override percentage
|
# M220 S<factor in percent> - set speed factor override percentage
|
||||||
@ -56,9 +62,9 @@ from ..Script import Script
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
# this was broken up into a separate class so the main ChangeZ script could be debugged outside of Cura
|
# this was broken up into a separate class so the main ChangeAtZ script could be debugged outside of Cura
|
||||||
class ChangeAtZ(Script):
|
class ChangeAtZ(Script):
|
||||||
version = "5.2.1"
|
version = "5.3.0"
|
||||||
|
|
||||||
def getSettingDataString(self):
|
def getSettingDataString(self):
|
||||||
return """{
|
return """{
|
||||||
@ -69,7 +75,7 @@ class ChangeAtZ(Script):
|
|||||||
"settings": {
|
"settings": {
|
||||||
"caz_enabled": {
|
"caz_enabled": {
|
||||||
"label": "Enabled",
|
"label": "Enabled",
|
||||||
"description": "Allows adding multiple ChangeZ mods and disabling them as needed.",
|
"description": "Allows adding multiple ChangeAtZ mods and disabling them as needed.",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"default_value": true
|
"default_value": true
|
||||||
},
|
},
|
||||||
@ -222,6 +228,23 @@ class ChangeAtZ(Script):
|
|||||||
"maximum_value_warning": "120",
|
"maximum_value_warning": "120",
|
||||||
"enabled": "h1_Change_bedTemp"
|
"enabled": "h1_Change_bedTemp"
|
||||||
},
|
},
|
||||||
|
"h1_Change_buildVolumeTemperature": {
|
||||||
|
"label": "Change Build Volume Temperature",
|
||||||
|
"description": "Select if Build Volume Temperature has to be changed",
|
||||||
|
"type": "bool",
|
||||||
|
"default_value": false
|
||||||
|
},
|
||||||
|
"h2_buildVolumeTemperature": {
|
||||||
|
"label": "Build Volume Temperature",
|
||||||
|
"description": "New Build Volume Temperature",
|
||||||
|
"unit": "C",
|
||||||
|
"type": "float",
|
||||||
|
"default_value": 20,
|
||||||
|
"minimum_value": "0",
|
||||||
|
"minimum_value_warning": "10",
|
||||||
|
"maximum_value_warning": "50",
|
||||||
|
"enabled": "h1_Change_buildVolumeTemperature"
|
||||||
|
},
|
||||||
"i1_Change_extruderOne": {
|
"i1_Change_extruderOne": {
|
||||||
"label": "Change Extruder 1 Temp",
|
"label": "Change Extruder 1 Temp",
|
||||||
"description": "Select if First Extruder Temperature has to be changed",
|
"description": "Select if First Extruder Temperature has to be changed",
|
||||||
@ -345,6 +368,7 @@ class ChangeAtZ(Script):
|
|||||||
self.setIntSettingIfEnabled(caz_instance, "g3_Change_flowrateOne", "flowrateOne", "g4_flowrateOne")
|
self.setIntSettingIfEnabled(caz_instance, "g3_Change_flowrateOne", "flowrateOne", "g4_flowrateOne")
|
||||||
self.setIntSettingIfEnabled(caz_instance, "g5_Change_flowrateTwo", "flowrateTwo", "g6_flowrateTwo")
|
self.setIntSettingIfEnabled(caz_instance, "g5_Change_flowrateTwo", "flowrateTwo", "g6_flowrateTwo")
|
||||||
self.setFloatSettingIfEnabled(caz_instance, "h1_Change_bedTemp", "bedTemp", "h2_bedTemp")
|
self.setFloatSettingIfEnabled(caz_instance, "h1_Change_bedTemp", "bedTemp", "h2_bedTemp")
|
||||||
|
self.setFloatSettingIfEnabled(caz_instance, "h1_Change_buildVolumeTemperature", "buildVolumeTemperature", "h2_buildVolumeTemperature")
|
||||||
self.setFloatSettingIfEnabled(caz_instance, "i1_Change_extruderOne", "extruderOne", "i2_extruderOne")
|
self.setFloatSettingIfEnabled(caz_instance, "i1_Change_extruderOne", "extruderOne", "i2_extruderOne")
|
||||||
self.setFloatSettingIfEnabled(caz_instance, "i3_Change_extruderTwo", "extruderTwo", "i4_extruderTwo")
|
self.setFloatSettingIfEnabled(caz_instance, "i3_Change_extruderTwo", "extruderTwo", "i4_extruderTwo")
|
||||||
self.setIntSettingIfEnabled(caz_instance, "j1_Change_fanSpeed", "fanSpeed", "j2_fanSpeed")
|
self.setIntSettingIfEnabled(caz_instance, "j1_Change_fanSpeed", "fanSpeed", "j2_fanSpeed")
|
||||||
@ -776,6 +800,10 @@ class ChangeAtZProcessor:
|
|||||||
if "bedTemp" in values:
|
if "bedTemp" in values:
|
||||||
codes.append("BedTemp: " + str(round(values["bedTemp"])))
|
codes.append("BedTemp: " + str(round(values["bedTemp"])))
|
||||||
|
|
||||||
|
# looking for wait for Build Volume Temperature
|
||||||
|
if "buildVolumeTemperature" in values:
|
||||||
|
codes.append("buildVolumeTemperature: " + str(round(values["buildVolumeTemperature"])))
|
||||||
|
|
||||||
# set our extruder one temp (if specified)
|
# set our extruder one temp (if specified)
|
||||||
if "extruderOne" in values:
|
if "extruderOne" in values:
|
||||||
codes.append("Extruder 1 Temp: " + str(round(values["extruderOne"])))
|
codes.append("Extruder 1 Temp: " + str(round(values["extruderOne"])))
|
||||||
@ -858,6 +886,10 @@ class ChangeAtZProcessor:
|
|||||||
if "bedTemp" in values:
|
if "bedTemp" in values:
|
||||||
codes.append("M140 S" + str(values["bedTemp"]))
|
codes.append("M140 S" + str(values["bedTemp"]))
|
||||||
|
|
||||||
|
# looking for wait for Build Volume Temperature
|
||||||
|
if "buildVolumeTemperature" in values:
|
||||||
|
codes.append("M141 S" + str(values["buildVolumeTemperature"]))
|
||||||
|
|
||||||
# set our extruder one temp (if specified)
|
# set our extruder one temp (if specified)
|
||||||
if "extruderOne" in values:
|
if "extruderOne" in values:
|
||||||
codes.append("M104 S" + str(values["extruderOne"]) + " T0")
|
codes.append("M104 S" + str(values["extruderOne"]) + " T0")
|
||||||
@ -943,7 +975,7 @@ class ChangeAtZProcessor:
|
|||||||
# nothing to do
|
# nothing to do
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
# Returns the unmodified GCODE line from previous ChangeZ edits
|
# Returns the unmodified GCODE line from previous ChangeAtZ edits
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getOriginalLine(line: str) -> str:
|
def getOriginalLine(line: str) -> str:
|
||||||
|
|
||||||
@ -990,7 +1022,7 @@ class ChangeAtZProcessor:
|
|||||||
else:
|
else:
|
||||||
return self.currentZ >= self.targetZ
|
return self.currentZ >= self.targetZ
|
||||||
|
|
||||||
# Marks any current ChangeZ layer defaults in the layer for deletion
|
# Marks any current ChangeAtZ layer defaults in the layer for deletion
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def markChangesForDeletion(layer: str):
|
def markChangesForDeletion(layer: str):
|
||||||
return re.sub(r";\[CAZD:", ";[CAZD:DELETE:", layer)
|
return re.sub(r";\[CAZD:", ";[CAZD:DELETE:", layer)
|
||||||
@ -1288,7 +1320,7 @@ class ChangeAtZProcessor:
|
|||||||
# flag that we're inside our target layer
|
# flag that we're inside our target layer
|
||||||
self.insideTargetLayer = True
|
self.insideTargetLayer = True
|
||||||
|
|
||||||
# Removes all the ChangeZ layer defaults from the given layer
|
# Removes all the ChangeAtZ layer defaults from the given layer
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def removeMarkedChanges(layer: str) -> str:
|
def removeMarkedChanges(layer: str) -> str:
|
||||||
return re.sub(r";\[CAZD:DELETE:[\s\S]+?:CAZD\](\n|$)", "", layer)
|
return re.sub(r";\[CAZD:DELETE:[\s\S]+?:CAZD\](\n|$)", "", layer)
|
||||||
@ -1364,6 +1396,16 @@ class ChangeAtZProcessor:
|
|||||||
# move to the next command
|
# move to the next command
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# handle Build Volume Temperature changes, really shouldn't want to wait for enclousure temp mid print though.
|
||||||
|
if command.command == "M141" or command.command == "M191":
|
||||||
|
|
||||||
|
# get our bed temp if provided
|
||||||
|
if "S" in command.arguments:
|
||||||
|
self.lastValues["buildVolumeTemperature"] = command.getArgumentAsFloat("S")
|
||||||
|
|
||||||
|
# move to the next command
|
||||||
|
return
|
||||||
|
|
||||||
# handle extruder temp changes
|
# handle extruder temp changes
|
||||||
if command.command == "M104" or command.command == "M109":
|
if command.command == "M104" or command.command == "M109":
|
||||||
|
|
||||||
|
@ -489,18 +489,17 @@ class PauseAtHeight(Script):
|
|||||||
# Set extruder resume temperature
|
# Set extruder resume temperature
|
||||||
prepend_gcode += self.putValue(M = 109, S = int(target_temperature.get(current_t, 0))) + " ; resume temperature\n"
|
prepend_gcode += self.putValue(M = 109, S = int(target_temperature.get(current_t, 0))) + " ; resume temperature\n"
|
||||||
|
|
||||||
# Push the filament back,
|
if extrude_amount != 0: # Need to prime after the pause.
|
||||||
if retraction_amount != 0:
|
# Push the filament back.
|
||||||
prepend_gcode += self.putValue(G = 1, E = retraction_amount, F = retraction_speed * 60) + "\n"
|
if retraction_amount != 0:
|
||||||
|
prepend_gcode += self.putValue(G = 1, E = retraction_amount, F = retraction_speed * 60) + "\n"
|
||||||
|
|
||||||
# Optionally extrude material
|
# Prime the material.
|
||||||
if extrude_amount != 0:
|
|
||||||
prepend_gcode += self.putValue(G = 1, E = extrude_amount, F = extrude_speed * 60) + "; Extra extrude after the unpause\n"
|
prepend_gcode += self.putValue(G = 1, E = extrude_amount, F = extrude_speed * 60) + "; Extra extrude after the unpause\n"
|
||||||
|
|
||||||
# and retract again, the properly primes the nozzle
|
# And retract again to make the movements back to the starting position.
|
||||||
# when changing filament.
|
if retraction_amount != 0:
|
||||||
if retraction_amount != 0:
|
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
||||||
prepend_gcode += self.putValue(G = 1, E = -retraction_amount, F = retraction_speed * 60) + "\n"
|
|
||||||
|
|
||||||
# Move the head back
|
# Move the head back
|
||||||
if park_enabled:
|
if park_enabled:
|
||||||
|
@ -142,6 +142,7 @@ class SimulationPass(RenderPass):
|
|||||||
if self._layer_view._current_layer_num > -1 and ((not self._layer_view._only_show_top_layers) or (not self._layer_view.getCompatibilityMode())):
|
if self._layer_view._current_layer_num > -1 and ((not self._layer_view._only_show_top_layers) or (not self._layer_view.getCompatibilityMode())):
|
||||||
start = 0
|
start = 0
|
||||||
end = 0
|
end = 0
|
||||||
|
current_polygon_offset = 0
|
||||||
element_counts = layer_data.getElementCounts()
|
element_counts = layer_data.getElementCounts()
|
||||||
for layer in sorted(element_counts.keys()):
|
for layer in sorted(element_counts.keys()):
|
||||||
# In the current layer, we show just the indicated paths
|
# In the current layer, we show just the indicated paths
|
||||||
@ -155,18 +156,26 @@ class SimulationPass(RenderPass):
|
|||||||
if index >= polygon.data.size // 3 - offset:
|
if index >= polygon.data.size // 3 - offset:
|
||||||
index -= polygon.data.size // 3 - offset
|
index -= polygon.data.size // 3 - offset
|
||||||
offset = 1 # This is to avoid the first point when there is more than one polygon, since has the same value as the last point in the previous polygon
|
offset = 1 # This is to avoid the first point when there is more than one polygon, since has the same value as the last point in the previous polygon
|
||||||
|
current_polygon_offset += 1
|
||||||
continue
|
continue
|
||||||
# The head position is calculated and translated
|
# The head position is calculated and translated
|
||||||
head_position = Vector(polygon.data[index+offset][0], polygon.data[index+offset][1], polygon.data[index+offset][2]) + node.getWorldPosition()
|
head_position = Vector(polygon.data[index+offset][0], polygon.data[index+offset][1], polygon.data[index+offset][2]) + node.getWorldPosition()
|
||||||
break
|
break
|
||||||
break
|
break
|
||||||
if self._layer_view._minimum_layer_num > layer:
|
end += layer_data.getLayer(layer).vertexCount
|
||||||
start += element_counts[layer]
|
if layer < self._layer_view._minimum_layer_num:
|
||||||
end += element_counts[layer]
|
start = end
|
||||||
|
|
||||||
# Calculate the range of paths in the last layer
|
# Calculate the range of paths in the last layer. -- The type-change count is needed to keep the
|
||||||
|
# vertex-indices aligned between the two different ways we represent polygons here.
|
||||||
|
# Since there is one type per line, that could give a vertex two different types, if it's a vertex
|
||||||
|
# where a type-chage occurs. However, the shader expects vertices to have only one type. In order to
|
||||||
|
# fix this, those vertices are duplicated. This introduces a discrepancy that we have to take into
|
||||||
|
# account, which is done by the type-change-count.
|
||||||
|
layer = layer_data.getLayer(self._layer_view._current_layer_num)
|
||||||
|
type_change_count = 0 if layer is None else layer.lineMeshCumulativeTypeChangeCount(max(self._layer_view._current_path_num - 1, 0))
|
||||||
current_layer_start = end
|
current_layer_start = end
|
||||||
current_layer_end = end + self._layer_view._current_path_num * 2 # Because each point is used twice
|
current_layer_end = current_layer_start + self._layer_view._current_path_num + current_polygon_offset + type_change_count
|
||||||
|
|
||||||
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
||||||
# All the layers but the current selected layer are rendered first
|
# All the layers but the current selected layer are rendered first
|
||||||
|
@ -13,9 +13,11 @@ vertex =
|
|||||||
attribute highp vec4 a_vertex;
|
attribute highp vec4 a_vertex;
|
||||||
attribute lowp vec4 a_color;
|
attribute lowp vec4 a_color;
|
||||||
attribute lowp vec4 a_material_color;
|
attribute lowp vec4 a_material_color;
|
||||||
|
attribute highp float a_vertex_index;
|
||||||
|
|
||||||
varying lowp vec4 v_color;
|
varying lowp vec4 v_color;
|
||||||
varying float v_line_type;
|
varying float v_line_type;
|
||||||
|
varying highp float v_vertex_index;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -28,6 +30,7 @@ vertex =
|
|||||||
}
|
}
|
||||||
|
|
||||||
v_line_type = a_line_type;
|
v_line_type = a_line_type;
|
||||||
|
v_vertex_index = a_vertex_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
fragment =
|
fragment =
|
||||||
@ -40,14 +43,21 @@ fragment =
|
|||||||
#endif // GL_ES
|
#endif // GL_ES
|
||||||
varying lowp vec4 v_color;
|
varying lowp vec4 v_color;
|
||||||
varying float v_line_type;
|
varying float v_line_type;
|
||||||
|
varying highp float v_vertex_index;
|
||||||
|
|
||||||
uniform int u_show_travel_moves;
|
uniform int u_show_travel_moves;
|
||||||
uniform int u_show_helpers;
|
uniform int u_show_helpers;
|
||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
|
||||||
|
uniform highp vec2 u_drawRange;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
if (u_drawRange.x >= 0.0 && u_drawRange.y >= 0.0 && (v_vertex_index < u_drawRange.x || v_vertex_index > u_drawRange.y))
|
||||||
|
{
|
||||||
|
discard;
|
||||||
|
}
|
||||||
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5)) { // actually, 8 and 9
|
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5)) { // actually, 8 and 9
|
||||||
// discard movements
|
// discard movements
|
||||||
discard;
|
discard;
|
||||||
@ -77,77 +87,6 @@ fragment =
|
|||||||
gl_FragColor = v_color;
|
gl_FragColor = v_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex41core =
|
|
||||||
#version 410
|
|
||||||
uniform highp mat4 u_modelMatrix;
|
|
||||||
uniform highp mat4 u_viewMatrix;
|
|
||||||
uniform highp mat4 u_projectionMatrix;
|
|
||||||
|
|
||||||
uniform lowp float u_active_extruder;
|
|
||||||
uniform lowp float u_shade_factor;
|
|
||||||
uniform highp int u_layer_view_type;
|
|
||||||
|
|
||||||
in highp float a_extruder;
|
|
||||||
in highp float a_line_type;
|
|
||||||
in highp vec4 a_vertex;
|
|
||||||
in lowp vec4 a_color;
|
|
||||||
in lowp vec4 a_material_color;
|
|
||||||
|
|
||||||
out lowp vec4 v_color;
|
|
||||||
out float v_line_type;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
gl_Position = u_projectionMatrix * u_viewMatrix * u_modelMatrix * a_vertex;
|
|
||||||
v_color = a_color;
|
|
||||||
if ((a_line_type != 8) && (a_line_type != 9)) {
|
|
||||||
v_color = (a_extruder == u_active_extruder) ? v_color : vec4(u_shade_factor * v_color.rgb, v_color.a);
|
|
||||||
}
|
|
||||||
|
|
||||||
v_line_type = a_line_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment41core =
|
|
||||||
#version 410
|
|
||||||
in lowp vec4 v_color;
|
|
||||||
in float v_line_type;
|
|
||||||
out vec4 frag_color;
|
|
||||||
|
|
||||||
uniform int u_show_travel_moves;
|
|
||||||
uniform int u_show_helpers;
|
|
||||||
uniform int u_show_skin;
|
|
||||||
uniform int u_show_infill;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5)) { // actually, 8 and 9
|
|
||||||
// discard movements
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// helpers: 4, 5, 7, 10
|
|
||||||
if ((u_show_helpers == 0) && (
|
|
||||||
((v_line_type >= 3.5) && (v_line_type <= 4.5)) ||
|
|
||||||
((v_line_type >= 6.5) && (v_line_type <= 7.5)) ||
|
|
||||||
((v_line_type >= 9.5) && (v_line_type <= 10.5)) ||
|
|
||||||
((v_line_type >= 4.5) && (v_line_type <= 5.5))
|
|
||||||
)) {
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// skin: 1, 2, 3
|
|
||||||
if ((u_show_skin == 0) && (
|
|
||||||
(v_line_type >= 0.5) && (v_line_type <= 3.5)
|
|
||||||
)) {
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// infill:
|
|
||||||
if ((u_show_infill == 0) && (v_line_type >= 5.5) && (v_line_type <= 6.5)) {
|
|
||||||
// discard movements
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
|
|
||||||
frag_color = v_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
[defaults]
|
[defaults]
|
||||||
u_active_extruder = 0.0
|
u_active_extruder = 0.0
|
||||||
u_shade_factor = 0.60
|
u_shade_factor = 0.60
|
||||||
@ -159,10 +98,13 @@ u_show_helpers = 1
|
|||||||
u_show_skin = 1
|
u_show_skin = 1
|
||||||
u_show_infill = 1
|
u_show_infill = 1
|
||||||
|
|
||||||
|
u_drawRange = [-1.0, -1.0]
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelMatrix = model_matrix
|
u_modelMatrix = model_matrix
|
||||||
u_viewMatrix = view_matrix
|
u_viewMatrix = view_matrix
|
||||||
u_projectionMatrix = projection_matrix
|
u_projectionMatrix = projection_matrix
|
||||||
|
u_drawRange = draw_range
|
||||||
|
|
||||||
[attributes]
|
[attributes]
|
||||||
a_vertex = vertex
|
a_vertex = vertex
|
||||||
@ -170,3 +112,4 @@ a_color = color
|
|||||||
a_extruder = extruder
|
a_extruder = extruder
|
||||||
a_line_type = line_type
|
a_line_type = line_type
|
||||||
a_material_color = material_color
|
a_material_color = material_color
|
||||||
|
a_vertex_index = vertex_index
|
||||||
|
@ -27,6 +27,7 @@ vertex41core =
|
|||||||
in highp float a_extruder;
|
in highp float a_extruder;
|
||||||
in highp float a_prev_line_type;
|
in highp float a_prev_line_type;
|
||||||
in highp float a_line_type;
|
in highp float a_line_type;
|
||||||
|
in highp float a_vertex_index;
|
||||||
in highp float a_feedrate;
|
in highp float a_feedrate;
|
||||||
in highp float a_thickness;
|
in highp float a_thickness;
|
||||||
|
|
||||||
@ -37,8 +38,9 @@ vertex41core =
|
|||||||
out lowp vec2 v_line_dim;
|
out lowp vec2 v_line_dim;
|
||||||
out highp int v_extruder;
|
out highp int v_extruder;
|
||||||
out highp mat4 v_extruder_opacity;
|
out highp mat4 v_extruder_opacity;
|
||||||
out float v_prev_line_type;
|
out highp float v_prev_line_type;
|
||||||
out float v_line_type;
|
out highp float v_line_type;
|
||||||
|
out highp float v_index;
|
||||||
|
|
||||||
out lowp vec4 f_color;
|
out lowp vec4 f_color;
|
||||||
out highp vec3 f_vertex;
|
out highp vec3 f_vertex;
|
||||||
@ -56,12 +58,12 @@ vertex41core =
|
|||||||
value = (abs_value - min_value) / (max_value - min_value);
|
value = (abs_value - min_value) / (max_value - min_value);
|
||||||
}
|
}
|
||||||
float red = value;
|
float red = value;
|
||||||
float green = 1-abs(1-4*value);
|
float green = 1.0 - abs(1.0 - 4.0 * value);
|
||||||
if (value > 0.375)
|
if (value > 0.375)
|
||||||
{
|
{
|
||||||
green = 0.5;
|
green = 0.5;
|
||||||
}
|
}
|
||||||
float blue = max(1-4*value, 0);
|
float blue = max(1.0 - 4.0 * value, 0.0);
|
||||||
return vec4(red, green, blue, 1.0);
|
return vec4(red, green, blue, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +78,7 @@ vertex41core =
|
|||||||
{
|
{
|
||||||
value = (abs_value - min_value) / (max_value - min_value);
|
value = (abs_value - min_value) / (max_value - min_value);
|
||||||
}
|
}
|
||||||
float red = min(max(4*value-2, 0), 1);
|
float red = min(max(4.0 * value - 2.0, 0.0), 1.0);
|
||||||
float green = min(1.5*value, 0.75);
|
float green = min(1.5*value, 0.75);
|
||||||
if (value > 0.75)
|
if (value > 0.75)
|
||||||
{
|
{
|
||||||
@ -98,18 +100,18 @@ vertex41core =
|
|||||||
value = (abs_value - min_value) / (max_value - min_value);
|
value = (abs_value - min_value) / (max_value - min_value);
|
||||||
}
|
}
|
||||||
float red = value;
|
float red = value;
|
||||||
float green = 1 - abs(1 - 4 * value);
|
float green = 1.0 - abs(1.0 - 4.0 * value);
|
||||||
if(value > 0.375)
|
if(value > 0.375)
|
||||||
{
|
{
|
||||||
green = 0.5;
|
green = 0.5;
|
||||||
}
|
}
|
||||||
float blue = max(1 - 4 * value, 0);
|
float blue = max(1.0 - 4.0 * value, 0.0);
|
||||||
return vec4(red, green, blue, 1.0);
|
return vec4(red, green, blue, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
float clamp(float v)
|
float clamp(float v)
|
||||||
{
|
{
|
||||||
float t = v < 0 ? 0 : v;
|
float t = v < 0.0 ? 0.0 : v;
|
||||||
return t > 1.0 ? 1.0 : t;
|
return t > 1.0 ? 1.0 : t;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,6 +170,7 @@ vertex41core =
|
|||||||
v_extruder = int(a_extruder);
|
v_extruder = int(a_extruder);
|
||||||
v_prev_line_type = a_prev_line_type;
|
v_prev_line_type = a_prev_line_type;
|
||||||
v_line_type = a_line_type;
|
v_line_type = a_line_type;
|
||||||
|
v_index = a_vertex_index;
|
||||||
v_extruder_opacity = u_extruder_opacity;
|
v_extruder_opacity = u_extruder_opacity;
|
||||||
|
|
||||||
// for testing without geometry shader
|
// for testing without geometry shader
|
||||||
@ -191,6 +194,8 @@ geometry41core =
|
|||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
uniform int u_show_starts;
|
uniform int u_show_starts;
|
||||||
|
|
||||||
|
uniform highp vec2 u_drawRange;
|
||||||
|
|
||||||
layout(lines) in;
|
layout(lines) in;
|
||||||
layout(triangle_strip, max_vertices = 40) out;
|
layout(triangle_strip, max_vertices = 40) out;
|
||||||
|
|
||||||
@ -202,6 +207,7 @@ geometry41core =
|
|||||||
in mat4 v_extruder_opacity[];
|
in mat4 v_extruder_opacity[];
|
||||||
in float v_prev_line_type[];
|
in float v_prev_line_type[];
|
||||||
in float v_line_type[];
|
in float v_line_type[];
|
||||||
|
in float v_index[];
|
||||||
|
|
||||||
out vec4 f_color;
|
out vec4 f_color;
|
||||||
out vec3 f_normal;
|
out vec3 f_normal;
|
||||||
@ -231,6 +237,10 @@ geometry41core =
|
|||||||
float size_x;
|
float size_x;
|
||||||
float size_y;
|
float size_y;
|
||||||
|
|
||||||
|
if (u_drawRange[0] >= 0.0 && u_drawRange[1] >= 0.0 && (v_index[0] < u_drawRange[0] || v_index[0] >= u_drawRange[1]))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ((v_extruder_opacity[0][int(mod(v_extruder[0], 4))][v_extruder[0] / 4] == 0.0) && (v_line_type[0] != 8) && (v_line_type[0] != 9)) {
|
if ((v_extruder_opacity[0][int(mod(v_extruder[0], 4))][v_extruder[0] / 4] == 0.0) && (v_line_type[0] != 8) && (v_line_type[0] != 9)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -427,12 +437,15 @@ u_max_feedrate = 1
|
|||||||
u_min_thickness = 0
|
u_min_thickness = 0
|
||||||
u_max_thickness = 1
|
u_max_thickness = 1
|
||||||
|
|
||||||
|
u_drawRange = [-1.0, -1.0]
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelMatrix = model_matrix
|
u_modelMatrix = model_matrix
|
||||||
u_viewMatrix = view_matrix
|
u_viewMatrix = view_matrix
|
||||||
u_projectionMatrix = projection_matrix
|
u_projectionMatrix = projection_matrix
|
||||||
u_normalMatrix = normal_matrix
|
u_normalMatrix = normal_matrix
|
||||||
u_lightPosition = light_0_position
|
u_lightPosition = light_0_position
|
||||||
|
u_drawRange = draw_range
|
||||||
|
|
||||||
[attributes]
|
[attributes]
|
||||||
a_vertex = vertex
|
a_vertex = vertex
|
||||||
@ -445,3 +458,4 @@ a_prev_line_type = prev_line_type
|
|||||||
a_line_type = line_type
|
a_line_type = line_type
|
||||||
a_feedrate = feedrate
|
a_feedrate = feedrate
|
||||||
a_thickness = thickness
|
a_thickness = thickness
|
||||||
|
a_vertex_index = vertex_index
|
||||||
|
@ -18,6 +18,7 @@ vertex41core =
|
|||||||
in highp vec2 a_line_dim; // line width and thickness
|
in highp vec2 a_line_dim; // line width and thickness
|
||||||
in highp float a_extruder;
|
in highp float a_extruder;
|
||||||
in highp float a_line_type;
|
in highp float a_line_type;
|
||||||
|
in highp float a_vertex_index;
|
||||||
|
|
||||||
out lowp vec4 v_color;
|
out lowp vec4 v_color;
|
||||||
|
|
||||||
@ -26,7 +27,8 @@ vertex41core =
|
|||||||
out lowp vec2 v_line_dim;
|
out lowp vec2 v_line_dim;
|
||||||
out highp int v_extruder;
|
out highp int v_extruder;
|
||||||
out highp mat4 v_extruder_opacity;
|
out highp mat4 v_extruder_opacity;
|
||||||
out float v_line_type;
|
out highp float v_line_type;
|
||||||
|
out highp float v_index;
|
||||||
|
|
||||||
out lowp vec4 f_color;
|
out lowp vec4 f_color;
|
||||||
out highp vec3 f_vertex;
|
out highp vec3 f_vertex;
|
||||||
@ -47,6 +49,7 @@ vertex41core =
|
|||||||
v_line_dim = a_line_dim;
|
v_line_dim = a_line_dim;
|
||||||
v_extruder = int(a_extruder);
|
v_extruder = int(a_extruder);
|
||||||
v_line_type = a_line_type;
|
v_line_type = a_line_type;
|
||||||
|
v_index = a_vertex_index;
|
||||||
v_extruder_opacity = u_extruder_opacity;
|
v_extruder_opacity = u_extruder_opacity;
|
||||||
|
|
||||||
// for testing without geometry shader
|
// for testing without geometry shader
|
||||||
@ -67,6 +70,8 @@ geometry41core =
|
|||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
|
||||||
|
uniform highp vec2 u_drawRange;
|
||||||
|
|
||||||
layout(lines) in;
|
layout(lines) in;
|
||||||
layout(triangle_strip, max_vertices = 26) out;
|
layout(triangle_strip, max_vertices = 26) out;
|
||||||
|
|
||||||
@ -77,6 +82,7 @@ geometry41core =
|
|||||||
in int v_extruder[];
|
in int v_extruder[];
|
||||||
in mat4 v_extruder_opacity[];
|
in mat4 v_extruder_opacity[];
|
||||||
in float v_line_type[];
|
in float v_line_type[];
|
||||||
|
in float v_index[];
|
||||||
|
|
||||||
out vec4 f_color;
|
out vec4 f_color;
|
||||||
out vec3 f_normal;
|
out vec3 f_normal;
|
||||||
@ -106,6 +112,10 @@ geometry41core =
|
|||||||
float size_x;
|
float size_x;
|
||||||
float size_y;
|
float size_y;
|
||||||
|
|
||||||
|
if (u_drawRange[0] >= 0.0 && u_drawRange[1] >= 0.0 && (v_index[0] < u_drawRange[0] || v_index[0] >= u_drawRange[1]))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
if ((v_extruder_opacity[0][int(mod(v_extruder[0], 4))][v_extruder[0] / 4] == 0.0) && (v_line_type[0] != 8) && (v_line_type[0] != 9)) {
|
if ((v_extruder_opacity[0][int(mod(v_extruder[0], 4))][v_extruder[0] / 4] == 0.0) && (v_line_type[0] != 8) && (v_line_type[0] != 9)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -268,12 +278,15 @@ u_show_helpers = 1
|
|||||||
u_show_skin = 1
|
u_show_skin = 1
|
||||||
u_show_infill = 1
|
u_show_infill = 1
|
||||||
|
|
||||||
|
u_drawRange = [-1.0, -1.0]
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelMatrix = model_matrix
|
u_modelMatrix = model_matrix
|
||||||
u_viewMatrix = view_matrix
|
u_viewMatrix = view_matrix
|
||||||
u_projectionMatrix = projection_matrix
|
u_projectionMatrix = projection_matrix
|
||||||
u_normalMatrix = normal_matrix
|
u_normalMatrix = normal_matrix
|
||||||
u_lightPosition = light_0_position
|
u_lightPosition = light_0_position
|
||||||
|
u_drawRange = draw_range
|
||||||
|
|
||||||
[attributes]
|
[attributes]
|
||||||
a_vertex = vertex
|
a_vertex = vertex
|
||||||
@ -284,3 +297,4 @@ a_line_dim = line_dim
|
|||||||
a_extruder = extruder
|
a_extruder = extruder
|
||||||
a_material_color = material_color
|
a_material_color = material_color
|
||||||
a_line_type = line_type
|
a_line_type = line_type
|
||||||
|
a_vertex_index = vertex_index
|
||||||
|
@ -13,9 +13,11 @@ vertex =
|
|||||||
attribute highp vec4 a_vertex;
|
attribute highp vec4 a_vertex;
|
||||||
attribute lowp vec4 a_color;
|
attribute lowp vec4 a_color;
|
||||||
attribute lowp vec4 a_material_color;
|
attribute lowp vec4 a_material_color;
|
||||||
|
attribute highp float a_vertex_index;
|
||||||
|
|
||||||
varying lowp vec4 v_color;
|
varying lowp vec4 v_color;
|
||||||
varying float v_line_type;
|
varying float v_line_type;
|
||||||
|
varying highp float v_vertex_index;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -28,6 +30,7 @@ vertex =
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
v_line_type = a_line_type;
|
v_line_type = a_line_type;
|
||||||
|
v_vertex_index = a_vertex_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
fragment =
|
fragment =
|
||||||
@ -40,14 +43,21 @@ fragment =
|
|||||||
#endif // GL_ES
|
#endif // GL_ES
|
||||||
varying lowp vec4 v_color;
|
varying lowp vec4 v_color;
|
||||||
varying float v_line_type;
|
varying float v_line_type;
|
||||||
|
varying highp float v_vertex_index;
|
||||||
|
|
||||||
uniform int u_show_travel_moves;
|
uniform int u_show_travel_moves;
|
||||||
uniform int u_show_helpers;
|
uniform int u_show_helpers;
|
||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
|
||||||
|
uniform highp vec2 u_drawRange;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
if (u_drawRange.x >= 0.0 && u_drawRange.y >= 0.0 && (v_vertex_index < u_drawRange.x || v_vertex_index > u_drawRange.y))
|
||||||
|
{
|
||||||
|
discard;
|
||||||
|
}
|
||||||
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5))
|
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5))
|
||||||
{ // actually, 8 and 9
|
{ // actually, 8 and 9
|
||||||
// discard movements
|
// discard movements
|
||||||
@ -81,78 +91,6 @@ fragment =
|
|||||||
gl_FragColor = v_color;
|
gl_FragColor = v_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
vertex41core =
|
|
||||||
#version 410
|
|
||||||
uniform highp mat4 u_modelMatrix;
|
|
||||||
uniform highp mat4 u_viewMatrix;
|
|
||||||
uniform highp mat4 u_projectionMatrix;
|
|
||||||
|
|
||||||
uniform lowp float u_active_extruder;
|
|
||||||
uniform lowp float u_shade_factor;
|
|
||||||
uniform highp int u_layer_view_type;
|
|
||||||
|
|
||||||
in highp float a_extruder;
|
|
||||||
in highp float a_line_type;
|
|
||||||
in highp vec4 a_vertex;
|
|
||||||
in lowp vec4 a_color;
|
|
||||||
in lowp vec4 a_material_color;
|
|
||||||
|
|
||||||
out lowp vec4 v_color;
|
|
||||||
out float v_line_type;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
gl_Position = u_projectionMatrix * u_viewMatrix * u_modelMatrix * a_vertex;
|
|
||||||
v_color = vec4(0.4, 0.4, 0.4, 0.9); // default color for not current layer
|
|
||||||
// if ((a_line_type != 8) && (a_line_type != 9)) {
|
|
||||||
// v_color = (a_extruder == u_active_extruder) ? v_color : vec4(u_shade_factor * v_color.rgb, v_color.a);
|
|
||||||
// }
|
|
||||||
|
|
||||||
v_line_type = a_line_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment41core =
|
|
||||||
#version 410
|
|
||||||
in lowp vec4 v_color;
|
|
||||||
in float v_line_type;
|
|
||||||
out vec4 frag_color;
|
|
||||||
|
|
||||||
uniform int u_show_travel_moves;
|
|
||||||
uniform int u_show_helpers;
|
|
||||||
uniform int u_show_skin;
|
|
||||||
uniform int u_show_infill;
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
if ((u_show_travel_moves == 0) && (v_line_type >= 7.5) && (v_line_type <= 9.5)) { // actually, 8 and 9
|
|
||||||
// discard movements
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// helpers: 4, 5, 7, 10, 11
|
|
||||||
if ((u_show_helpers == 0) && (
|
|
||||||
((v_line_type >= 3.5) && (v_line_type <= 4.5)) ||
|
|
||||||
((v_line_type >= 6.5) && (v_line_type <= 7.5)) ||
|
|
||||||
((v_line_type >= 9.5) && (v_line_type <= 10.5)) ||
|
|
||||||
((v_line_type >= 4.5) && (v_line_type <= 5.5)) ||
|
|
||||||
((v_line_type >= 10.5) && (v_line_type <= 11.5))
|
|
||||||
)) {
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// skin: 1, 2, 3
|
|
||||||
if ((u_show_skin == 0) && (
|
|
||||||
(v_line_type >= 0.5) && (v_line_type <= 3.5)
|
|
||||||
)) {
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
// infill:
|
|
||||||
if ((u_show_infill == 0) && (v_line_type >= 5.5) && (v_line_type <= 6.5)) {
|
|
||||||
// discard movements
|
|
||||||
discard;
|
|
||||||
}
|
|
||||||
|
|
||||||
frag_color = v_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
[defaults]
|
[defaults]
|
||||||
u_active_extruder = 0.0
|
u_active_extruder = 0.0
|
||||||
u_shade_factor = 0.60
|
u_shade_factor = 0.60
|
||||||
@ -164,10 +102,13 @@ u_show_helpers = 1
|
|||||||
u_show_skin = 1
|
u_show_skin = 1
|
||||||
u_show_infill = 1
|
u_show_infill = 1
|
||||||
|
|
||||||
|
u_drawRange = [-1.0, -1.0]
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelMatrix = model_matrix
|
u_modelMatrix = model_matrix
|
||||||
u_viewMatrix = view_matrix
|
u_viewMatrix = view_matrix
|
||||||
u_projectionMatrix = projection_matrix
|
u_projectionMatrix = projection_matrix
|
||||||
|
u_drawRange = draw_range
|
||||||
|
|
||||||
[attributes]
|
[attributes]
|
||||||
a_vertex = vertex
|
a_vertex = vertex
|
||||||
@ -175,3 +116,4 @@ a_color = color
|
|||||||
a_extruder = extruder
|
a_extruder = extruder
|
||||||
a_line_type = line_type
|
a_line_type = line_type
|
||||||
a_material_color = material_color
|
a_material_color = material_color
|
||||||
|
a_vertex_index = vertex_index
|
||||||
|
@ -6,6 +6,7 @@ from PyQt5.QtWidgets import QApplication
|
|||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
|
from UM.Operations.TranslateOperation import TranslateOperation
|
||||||
from UM.Tool import Tool
|
from UM.Tool import Tool
|
||||||
from UM.Event import Event, MouseEvent
|
from UM.Event import Event, MouseEvent
|
||||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||||
@ -120,8 +121,8 @@ class SupportEraser(Tool):
|
|||||||
# First add node to the scene at the correct position/scale, before parenting, so the eraser mesh does not get scaled with the parent
|
# First add node to the scene at the correct position/scale, before parenting, so the eraser mesh does not get scaled with the parent
|
||||||
op.addOperation(AddSceneNodeOperation(node, self._controller.getScene().getRoot()))
|
op.addOperation(AddSceneNodeOperation(node, self._controller.getScene().getRoot()))
|
||||||
op.addOperation(SetParentOperation(node, parent))
|
op.addOperation(SetParentOperation(node, parent))
|
||||||
|
op.addOperation(TranslateOperation(node, position, set_position = True))
|
||||||
op.push()
|
op.push()
|
||||||
node.setPosition(position, CuraSceneNode.TransformSpace.World)
|
|
||||||
|
|
||||||
CuraApplication.getInstance().getController().getScene().sceneChanged.emit(node)
|
CuraApplication.getInstance().getController().getScene().sceneChanged.emit(node)
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ class CloudPackageChecker(QObject):
|
|||||||
self._application.getHttpRequestManager().get(url,
|
self._application.getHttpRequestManager().get(url,
|
||||||
callback = self._onUserPackagesRequestFinished,
|
callback = self._onUserPackagesRequestFinished,
|
||||||
error_callback = self._onUserPackagesRequestFinished,
|
error_callback = self._onUserPackagesRequestFinished,
|
||||||
timeout=10,
|
timeout = 10,
|
||||||
scope = self._scope)
|
scope = self._scope)
|
||||||
|
|
||||||
def _onUserPackagesRequestFinished(self, reply: "QNetworkReply", error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
def _onUserPackagesRequestFinished(self, reply: "QNetworkReply", error: Optional["QNetworkReply.NetworkError"] = None) -> None:
|
||||||
|
@ -73,10 +73,6 @@ Item
|
|||||||
switch (printJob.state)
|
switch (printJob.state)
|
||||||
{
|
{
|
||||||
case "wait_cleanup":
|
case "wait_cleanup":
|
||||||
if (printJob.timeTotal > printJob.timeElapsed)
|
|
||||||
{
|
|
||||||
return catalog.i18nc("@label:status", "Aborted");
|
|
||||||
}
|
|
||||||
return catalog.i18nc("@label:status", "Finished");
|
return catalog.i18nc("@label:status", "Finished");
|
||||||
case "finished":
|
case "finished":
|
||||||
return catalog.i18nc("@label:status", "Finished");
|
return catalog.i18nc("@label:status", "Finished");
|
||||||
@ -88,6 +84,20 @@ Item
|
|||||||
return catalog.i18nc("@label:status", "Aborting...");
|
return catalog.i18nc("@label:status", "Aborting...");
|
||||||
case "aborted": // NOTE: Unused, see above
|
case "aborted": // NOTE: Unused, see above
|
||||||
return catalog.i18nc("@label:status", "Aborted");
|
return catalog.i18nc("@label:status", "Aborted");
|
||||||
|
case "aborted_post_print":
|
||||||
|
return catalog.i18nc("@label:status", "Aborted");
|
||||||
|
case "aborted_wait_user_action":
|
||||||
|
return catalog.i18nc("@label:status", "Aborted");
|
||||||
|
case "aborted_wait_cleanup":
|
||||||
|
return catalog.i18nc("@label:status", "Aborted");
|
||||||
|
case "failed":
|
||||||
|
return catalog.i18nc("@label:status", "Failed");
|
||||||
|
case "failed_post_print":
|
||||||
|
return catalog.i18nc("@label:status", "Failed");
|
||||||
|
case "failed_wait_user_action":
|
||||||
|
return catalog.i18nc("@label:status", "Failed");
|
||||||
|
case "failed_wait_cleanup":
|
||||||
|
return catalog.i18nc("@label:status", "Failed");
|
||||||
case "pausing":
|
case "pausing":
|
||||||
return catalog.i18nc("@label:status", "Pausing...");
|
return catalog.i18nc("@label:status", "Pausing...");
|
||||||
case "paused":
|
case "paused":
|
||||||
@ -97,7 +107,7 @@ Item
|
|||||||
case "queued":
|
case "queued":
|
||||||
return catalog.i18nc("@label:status", "Action required");
|
return catalog.i18nc("@label:status", "Action required");
|
||||||
default:
|
default:
|
||||||
return catalog.i18nc("@label:status", "Finishes %1 at %2".arg(OutputDevice.getDateCompleted(printJob.timeRemaining)).arg(OutputDevice.getTimeCompleted(printJob.timeRemaining)));
|
return catalog.i18nc("@label:status", "Finishes %1 at %2").arg(OutputDevice.getDateCompleted(printJob.timeRemaining)).arg(OutputDevice.getTimeCompleted(printJob.timeRemaining));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
width: contentWidth
|
width: contentWidth
|
||||||
|
@ -29,7 +29,7 @@ pywin32==301
|
|||||||
requests==2.22.0
|
requests==2.22.0
|
||||||
scipy==1.6.2
|
scipy==1.6.2
|
||||||
sentry-sdk==0.13.5
|
sentry-sdk==0.13.5
|
||||||
shapely[vectorized]==1.7.1
|
shapely[vectorized]==1.8.0
|
||||||
six==1.12.0
|
six==1.12.0
|
||||||
trimesh==3.2.33
|
trimesh==3.2.33
|
||||||
twisted==21.2.0
|
twisted==21.2.0
|
||||||
|
@ -124,14 +124,15 @@
|
|||||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" },
|
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" },
|
||||||
|
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)"},
|
||||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||||
"support_wall_count": { "value": 1 },
|
"support_wall_count": { "value": 1 },
|
||||||
"support_brim_enable": { "value": true },
|
"support_brim_enable": { "value": true },
|
||||||
"support_brim_width": { "value": 4 },
|
"support_brim_width": { "value": 4 },
|
||||||
|
|
||||||
"support_interface_enable": { "value": true },
|
"support_interface_enable": { "value": true },
|
||||||
"support_structure": { "value": "'tree'" },
|
"support_structure": { "value": "'tree'" },
|
||||||
"support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" },
|
"support_type": { "value": "'buildplate' if support_structure == 'tree' else 'everywhere'" },
|
||||||
"support_interface_height": { "value": "layer_height * 4" },
|
"support_interface_height": { "value": "layer_height * 4" },
|
||||||
"support_interface_density": { "value": 33.333 },
|
"support_interface_density": { "value": 33.333 },
|
||||||
"support_interface_pattern": { "value": "'grid'" },
|
"support_interface_pattern": { "value": "'grid'" },
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "BFB",
|
"manufacturer": "BFB",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"platform_offset": [ 0, 0, 0],
|
"platform_offset": [ 0, 0, 0],
|
||||||
|
@ -247,7 +247,8 @@
|
|||||||
"support_use_towers": { "value": false },
|
"support_use_towers": { "value": false },
|
||||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||||
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height*2" },
|
"support_z_distance": { "value": "layer_height if layer_height >= 0.16 else layer_height * 2" },
|
||||||
|
"support_top_distance": { "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)"},
|
||||||
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
"support_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||||
"support_wall_count": { "value": 1 },
|
"support_wall_count": { "value": 1 },
|
||||||
"support_brim_enable": { "value": true },
|
"support_brim_enable": { "value": true },
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"overrides": {
|
"overrides": {
|
||||||
"machine_name": { "default_value": "Creality Ender-6" },
|
"machine_name": { "default_value": "Creality Ender-6" },
|
||||||
"machine_start_gcode": { "default_value": "\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
|
"machine_start_gcode": { "default_value": "\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
|
||||||
"machine_end_gcode": { "default_value": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG28 X Y ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
|
"machine_end_gcode": { "default_value": "G91 ;Relative positioning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positioning\n\nG28 X Y ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z\n" },
|
||||||
"machine_width": { "default_value": 260 },
|
"machine_width": { "default_value": 260 },
|
||||||
"machine_depth": { "default_value": 260 },
|
"machine_depth": { "default_value": 260 },
|
||||||
"machine_height": { "default_value": 400 },
|
"machine_height": { "default_value": 400 },
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"metadata":
|
"metadata":
|
||||||
{
|
{
|
||||||
"type": "machine",
|
"type": "machine",
|
||||||
"author": "Ultimaker",
|
"author": "Unknown",
|
||||||
"manufacturer": "Unknown",
|
"manufacturer": "Unknown",
|
||||||
"setting_version": 19,
|
"setting_version": 19,
|
||||||
"file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g",
|
"file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g",
|
||||||
@ -159,6 +159,16 @@
|
|||||||
"settable_per_extruder": false,
|
"settable_per_extruder": false,
|
||||||
"settable_per_meshgroup": false
|
"settable_per_meshgroup": false
|
||||||
},
|
},
|
||||||
|
"machine_height":
|
||||||
|
{
|
||||||
|
"label": "Machine Height",
|
||||||
|
"description": "The height (Z-direction) of the printable area.",
|
||||||
|
"default_value": 100,
|
||||||
|
"type": "float",
|
||||||
|
"settable_per_mesh": false,
|
||||||
|
"settable_per_extruder": false,
|
||||||
|
"settable_per_meshgroup": false
|
||||||
|
},
|
||||||
"machine_shape":
|
"machine_shape":
|
||||||
{
|
{
|
||||||
"label": "Build Plate Shape",
|
"label": "Build Plate Shape",
|
||||||
@ -189,16 +199,6 @@
|
|||||||
"settable_per_extruder": false,
|
"settable_per_extruder": false,
|
||||||
"settable_per_meshgroup": false
|
"settable_per_meshgroup": false
|
||||||
},
|
},
|
||||||
"machine_height":
|
|
||||||
{
|
|
||||||
"label": "Machine Height",
|
|
||||||
"description": "The height (Z-direction) of the printable area.",
|
|
||||||
"default_value": 100,
|
|
||||||
"type": "float",
|
|
||||||
"settable_per_mesh": false,
|
|
||||||
"settable_per_extruder": false,
|
|
||||||
"settable_per_meshgroup": false
|
|
||||||
},
|
|
||||||
"machine_heated_bed":
|
"machine_heated_bed":
|
||||||
{
|
{
|
||||||
"label": "Has Heated Build Plate",
|
"label": "Has Heated Build Plate",
|
||||||
@ -571,7 +571,7 @@
|
|||||||
},
|
},
|
||||||
"machine_max_feedrate_e":
|
"machine_max_feedrate_e":
|
||||||
{
|
{
|
||||||
"label": "Maximum Feedrate",
|
"label": "Maximum Speed E",
|
||||||
"description": "The maximum speed of the filament.",
|
"description": "The maximum speed of the filament.",
|
||||||
"unit": "mm/s",
|
"unit": "mm/s",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
@ -1056,6 +1056,7 @@
|
|||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"minimum_value_warning": "line_width",
|
"minimum_value_warning": "line_width",
|
||||||
"maximum_value_warning": "10 * line_width",
|
"maximum_value_warning": "10 * line_width",
|
||||||
|
"maximum_value": "999999 * line_width",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"limit_to_extruder": "wall_x_extruder_nr",
|
"limit_to_extruder": "wall_x_extruder_nr",
|
||||||
"settable_per_mesh": true,
|
"settable_per_mesh": true,
|
||||||
@ -1069,6 +1070,7 @@
|
|||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"minimum_value_warning": "1",
|
"minimum_value_warning": "1",
|
||||||
"maximum_value_warning": "10",
|
"maximum_value_warning": "10",
|
||||||
|
"maximum_value": "999999",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0",
|
"value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0",
|
||||||
"limit_to_extruder": "wall_x_extruder_nr",
|
"limit_to_extruder": "wall_x_extruder_nr",
|
||||||
@ -1557,6 +1559,7 @@
|
|||||||
"default_value": 1,
|
"default_value": 1,
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"maximum_value_warning": "10",
|
"maximum_value_warning": "10",
|
||||||
|
"maximum_value": "999999",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric' or (roofing_layer_count > 0 and roofing_pattern != 'concentric'))",
|
"enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric' or (roofing_layer_count > 0 and roofing_pattern != 'concentric'))",
|
||||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||||
@ -1943,7 +1946,7 @@
|
|||||||
"description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).",
|
"description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).",
|
||||||
"type": "[int]",
|
"type": "[int]",
|
||||||
"default_value": "[ ]",
|
"default_value": "[ ]",
|
||||||
"enabled": "infill_pattern != 'lightning' and infill_pattern != 'concentric' and infill_sparse_density > 0",
|
"enabled": "infill_pattern not in ('concentric', 'cross', 'cross_3d', 'gyroid', 'lightning') and infill_sparse_density > 0",
|
||||||
"limit_to_extruder": "infill_extruder_nr",
|
"limit_to_extruder": "infill_extruder_nr",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
@ -1999,6 +2002,7 @@
|
|||||||
"default_value": 0,
|
"default_value": 0,
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
|
"maximum_value": "999999",
|
||||||
"enabled": "infill_sparse_density > 0",
|
"enabled": "infill_sparse_density > 0",
|
||||||
"limit_to_extruder": "infill_extruder_nr",
|
"limit_to_extruder": "infill_extruder_nr",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
@ -4446,6 +4450,7 @@
|
|||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"minimum_value_warning": "1 if support_pattern == 'concentric' else 0",
|
"minimum_value_warning": "1 if support_pattern == 'concentric' else 0",
|
||||||
"maximum_value_warning": "0 if (support_skip_some_zags and support_pattern == 'zigzag') else 3",
|
"maximum_value_warning": "0 if (support_skip_some_zags and support_pattern == 'zigzag') else 3",
|
||||||
|
"maximum_value": "999999",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"value": "1 if support_enable and support_structure == 'tree' else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)",
|
"value": "1 if support_enable and support_structure == 'tree' else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)",
|
||||||
"enabled": "support_enable or support_meshes_present",
|
"enabled": "support_enable or support_meshes_present",
|
||||||
@ -4556,6 +4561,7 @@
|
|||||||
"default_value": 8.0,
|
"default_value": 8.0,
|
||||||
"minimum_value": "0.0",
|
"minimum_value": "0.0",
|
||||||
"maximum_value_warning": "50.0",
|
"maximum_value_warning": "50.0",
|
||||||
|
"maximum_value": "0.5 * min(machine_width, machine_depth)",
|
||||||
"enabled": "(support_enable or support_meshes_present) and support_brim_enable",
|
"enabled": "(support_enable or support_meshes_present) and support_brim_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true,
|
"settable_per_extruder": true,
|
||||||
@ -4570,6 +4576,7 @@
|
|||||||
"default_value": 20,
|
"default_value": 20,
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"maximum_value_warning": "50 / skirt_brim_line_width",
|
"maximum_value_warning": "50 / skirt_brim_line_width",
|
||||||
|
"maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width",
|
||||||
"value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))",
|
"value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))",
|
||||||
"enabled": "(support_enable or support_meshes_present) and support_brim_enable",
|
"enabled": "(support_enable or support_meshes_present) and support_brim_enable",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
@ -4602,7 +4609,7 @@
|
|||||||
"default_value": 0.1,
|
"default_value": 0.1,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"enabled": "support_enable or support_meshes_present",
|
"enabled": "support_enable or support_meshes_present",
|
||||||
"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')",
|
"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)",
|
||||||
"limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr",
|
"limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
@ -5333,6 +5340,7 @@
|
|||||||
"default_value": 1,
|
"default_value": 1,
|
||||||
"minimum_value": "0",
|
"minimum_value": "0",
|
||||||
"maximum_value_warning": "10",
|
"maximum_value_warning": "10",
|
||||||
|
"maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width",
|
||||||
"enabled": "resolveOrValue('adhesion_type') == 'skirt'",
|
"enabled": "resolveOrValue('adhesion_type') == 'skirt'",
|
||||||
"settable_per_mesh": false,
|
"settable_per_mesh": false,
|
||||||
"settable_per_extruder": true,
|
"settable_per_extruder": true,
|
||||||
@ -7421,9 +7429,9 @@
|
|||||||
"unit": "%",
|
"unit": "%",
|
||||||
"default_value": 100,
|
"default_value": 100,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"minimum_value": "5",
|
"minimum_value": "0.001",
|
||||||
"maximum_value": "100",
|
|
||||||
"minimum_value_warning": "20",
|
"minimum_value_warning": "20",
|
||||||
|
"maximum_value_warning": "100",
|
||||||
"enabled": "bridge_settings_enabled",
|
"enabled": "bridge_settings_enabled",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
@ -7469,8 +7477,7 @@
|
|||||||
"unit": "%",
|
"unit": "%",
|
||||||
"default_value": 100,
|
"default_value": 100,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"minimum_value": "5",
|
"minimum_value": "0.0001",
|
||||||
"maximum_value": "500",
|
|
||||||
"minimum_value_warning": "50",
|
"minimum_value_warning": "50",
|
||||||
"maximum_value_warning": "150",
|
"maximum_value_warning": "150",
|
||||||
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
||||||
@ -7483,9 +7490,9 @@
|
|||||||
"unit": "%",
|
"unit": "%",
|
||||||
"default_value": 75,
|
"default_value": 75,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"minimum_value": "5",
|
"minimum_value": "0",
|
||||||
"maximum_value": "100",
|
|
||||||
"minimum_value_warning": "20",
|
"minimum_value_warning": "20",
|
||||||
|
"maximum_value_warning": "100",
|
||||||
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
@ -7522,8 +7529,7 @@
|
|||||||
"unit": "%",
|
"unit": "%",
|
||||||
"default_value": 110,
|
"default_value": 110,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"minimum_value": "5",
|
"minimum_value": "0.001",
|
||||||
"maximum_value": "500",
|
|
||||||
"minimum_value_warning": "50",
|
"minimum_value_warning": "50",
|
||||||
"maximum_value_warning": "150",
|
"maximum_value_warning": "150",
|
||||||
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
||||||
@ -7536,9 +7542,9 @@
|
|||||||
"unit": "%",
|
"unit": "%",
|
||||||
"default_value": 80,
|
"default_value": 80,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"minimum_value": "5",
|
"minimum_value": "0",
|
||||||
"maximum_value": "100",
|
|
||||||
"minimum_value_warning": "20",
|
"minimum_value_warning": "20",
|
||||||
|
"maximum_value_warning": "100",
|
||||||
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
"enabled": "bridge_settings_enabled and bridge_enable_more_layers",
|
||||||
"settable_per_mesh": true
|
"settable_per_mesh": true
|
||||||
},
|
},
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "Fracktal",
|
"manufacturer": "Fracktal",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"platform_offset": [ 0, 0, 0],
|
"platform_offset": [ 0, 0, 0],
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "MakerBot",
|
"manufacturer": "MakerBot",
|
||||||
"machine_x3g_variant": "r1",
|
"machine_x3g_variant": "r1",
|
||||||
"file_formats": "application/x3g",
|
"file_formats": "application/x3g",
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "ORD Solutions",
|
"manufacturer": "ORD Solutions",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "Punchtec",
|
"manufacturer": "Punchtec",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"machine_extruder_trains":
|
"machine_extruder_trains":
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "Robo 3D",
|
"manufacturer": "Robo 3D",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"platform_offset": [ 0, 0, 0],
|
"platform_offset": [ 0, 0, 0],
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
"default_value": true
|
"default_value": true
|
||||||
},
|
},
|
||||||
"machine_start_gcode": {
|
"machine_start_gcode": {
|
||||||
"default_value": "M104 S{material_print_temperature} ;Set Hotend Temperature\nM140 S{material_bed_temperature} ;Set Bed Temperature\nG28 ;home\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner \nG1 Z0 F1800 ;Go to zero offset\nM109 S{material_print_temperature} ;Wait for Hotend Temperature\nM190 S{material_bed_temperature} ;Wait for Bed Temperature\nG92 E0 ;Zero set extruder position\nG1 E20 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position"
|
"default_value": "M104 S{material_print_temperature_layer_0} ;Set Hotend Temperature\nM140 S{material_bed_temperature_layer_0} ;Set Bed Temperature\nG28 ;home\nG90 ;absolute positioning\nG1 X-10 Y-10 F3000 ;Move to corner \nG1 Z0 F1800 ;Go to zero offset\nM109 S{material_print_temperature_layer_0} ;Wait for Hotend Temperature\nM190 S{material_bed_temperature_layer_0} ;Wait for Bed Temperature\nG92 E0 ;Zero set extruder position\nG1 E20 F200 ;Feed filament to clear nozzle\nG92 E0 ;Zero set extruder position"
|
||||||
},
|
},
|
||||||
"machine_end_gcode": {
|
"machine_end_gcode": {
|
||||||
"default_value": "M104 S0 ;Extruder heater off\nM140 S0 ;Heated bed heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z{machine_width} E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y{machine_depth} F3000 ;so the head is out of the way and Plate is moved forward"
|
"default_value": "M104 S0 ;Extruder heater off\nM140 S0 ;Heated bed heater off\nG90 ;absolute positioning\nG92 E0 ;Retract the filament\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z{machine_width} E-1 F3000 ;move Z up a bit and retract filament even more\nG1 X0 F3000 ;move X to min endstops, so the head is out of the way\nG1 Y{machine_depth} F3000 ;so the head is out of the way and Plate is moved forward"
|
||||||
|
@ -40,6 +40,9 @@
|
|||||||
{
|
{
|
||||||
"value": false,
|
"value": false,
|
||||||
"enabled": false
|
"enabled": false
|
||||||
|
},
|
||||||
|
"skin_angles": {
|
||||||
|
"value": "[] if infill_pattern not in ['cross', 'cross_3d'] else [20, 110]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,9 +95,6 @@
|
|||||||
},
|
},
|
||||||
"skin_monotonic" : {
|
"skin_monotonic" : {
|
||||||
"value": true
|
"value": true
|
||||||
},
|
|
||||||
"top_bottom_pattern" : {
|
|
||||||
"value": "'zigzag'"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,6 @@
|
|||||||
"support_z_distance": { "value": "0" },
|
"support_z_distance": { "value": "0" },
|
||||||
"switch_extruder_prime_speed": { "value": "15" },
|
"switch_extruder_prime_speed": { "value": "15" },
|
||||||
"switch_extruder_retraction_amount": { "value": "8" },
|
"switch_extruder_retraction_amount": { "value": "8" },
|
||||||
"top_bottom_pattern" : {"value": "'zigzag'"},
|
|
||||||
"top_bottom_thickness": { "value": "1" },
|
"top_bottom_thickness": { "value": "1" },
|
||||||
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
||||||
"wall_0_inset": { "value": "0" },
|
"wall_0_inset": { "value": "0" },
|
||||||
|
@ -160,7 +160,6 @@
|
|||||||
"support_z_distance": { "value": "0" },
|
"support_z_distance": { "value": "0" },
|
||||||
"switch_extruder_prime_speed": { "value": "15" },
|
"switch_extruder_prime_speed": { "value": "15" },
|
||||||
"switch_extruder_retraction_amount": { "value": "8" },
|
"switch_extruder_retraction_amount": { "value": "8" },
|
||||||
"top_bottom_pattern" : {"value": "'zigzag'"},
|
|
||||||
"top_bottom_thickness": { "value": "1" },
|
"top_bottom_thickness": { "value": "1" },
|
||||||
"travel_avoid_supports": { "value": "True" },
|
"travel_avoid_supports": { "value": "True" },
|
||||||
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
||||||
|
@ -161,7 +161,6 @@
|
|||||||
"support_z_distance": { "value": "0" },
|
"support_z_distance": { "value": "0" },
|
||||||
"switch_extruder_prime_speed": { "value": "15" },
|
"switch_extruder_prime_speed": { "value": "15" },
|
||||||
"switch_extruder_retraction_amount": { "value": "8" },
|
"switch_extruder_retraction_amount": { "value": "8" },
|
||||||
"top_bottom_pattern" : {"value": "'zigzag'"},
|
|
||||||
"top_bottom_thickness": { "value": "1" },
|
"top_bottom_thickness": { "value": "1" },
|
||||||
"travel_avoid_supports": { "value": "True" },
|
"travel_avoid_supports": { "value": "True" },
|
||||||
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
||||||
|
47
resources/definitions/xyzprinting_base.def.json
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"name": "XYZprinting Base Printer",
|
||||||
|
"version": 2,
|
||||||
|
"inherits": "fdmprinter",
|
||||||
|
"metadata": {
|
||||||
|
"visible": false,
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"first_start_actions": ["MachineSettingsAction"],
|
||||||
|
"machine_extruder_trains":
|
||||||
|
{
|
||||||
|
"0": "xyzprinting_base_extruder_0"
|
||||||
|
},
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"preferred_material": "generic_pla",
|
||||||
|
"variants_name": "Nozzle Type"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"machine_heated_bed": {"default_value": true},
|
||||||
|
"machine_max_feedrate_x": { "value": 500 },
|
||||||
|
"machine_max_feedrate_y": { "value": 500 },
|
||||||
|
"machine_max_feedrate_z": { "value": 10 },
|
||||||
|
"machine_max_feedrate_e": { "value": 50 },
|
||||||
|
"machine_max_acceleration_x": { "value": 1500 },
|
||||||
|
"machine_max_acceleration_y": { "value": 1500 },
|
||||||
|
"machine_max_acceleration_z": { "value": 500 },
|
||||||
|
"machine_max_acceleration_e": { "value": 5000 },
|
||||||
|
"machine_acceleration": { "value": 500 },
|
||||||
|
"machine_max_jerk_xy": { "value": 10 },
|
||||||
|
"machine_max_jerk_z": { "value": 0.4 },
|
||||||
|
"machine_max_jerk_e": { "value": 5 },
|
||||||
|
"adhesion_type": { "value": "'none' if support_enable else 'brim'" },
|
||||||
|
"brim_width": { "value": 10.0 },
|
||||||
|
"cool_fan_speed": { "value": 100 },
|
||||||
|
"cool_fan_speed_0": { "value": 0 }
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"machine_gcode_flavor": {"default_value": "RepRap (Marlin/Sprinter)"},
|
||||||
|
"machine_start_gcode": {"default_value": ";Start Gcode\nG90 ;absolute positioning\nM118 X25.00 Y25.00 Z20.00 T0\nM140 S{material_bed_temperature_layer_0} T0 ;Heat bed up to first layer temperature\nM104 S{material_print_temperature_layer_0} T0 ;Set nozzle temperature to first layer temperature\nM107 ;start with the fan off\nG90\nG28\nM132 X Y Z A B\nG1 Z50.000 F420\nG161 X Y F3300\nM7 T0\nM6 T0\nM651\nM907 X100 Y100 Z40 A100 B20 ;Digital potentiometer value\nM108 T0\n;Purge line\nG1 X-110.00 Y-60.00 F4800\nG1 Z{layer_height_0} F420\nG1 X-110.00 Y60.00 E17,4 F1200\n;Purge line end"},
|
||||||
|
"machine_end_gcode": {"default_value": ";end gcode\nM104 S0 T0\nM140 S0 T0\nG162 Z F1800\nG28 X Y\nM652\nM132 X Y Z A B\nG91\nM18"
|
||||||
|
}
|
||||||
|
}
|
52
resources/definitions/xyzprinting_da_vinci_1p0_pro.def.json
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci 1.0 Pro",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_1p0_pro",
|
||||||
|
"preferred_variant_name": "Copper 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_1p0_pro_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci 1.0 Pro" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 200.00 },
|
||||||
|
"machine_depth": { "default_value": 200.00 },
|
||||||
|
"machine_height": { "default_value":200.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci Jr. 1.0A Pro",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"exclude_materials": ["generic_hips", "generic_petg", "generic_bam", "ultimaker_bam", "generic_pva", "ultimaker_pva", "generic_tough_pla", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "generic_cffcpe", "generic_cffpa", "generic_gffcpe", "generic_gffpa", "structur3d_dap100silicone", "ultimaker_petg_blue", "ultimaker_petg_grey", "ultimaker_petg_black", "ultimaker_petg_green", "ultimaker_petg_white", "ultimaker_petg_orange", "ultimaker_petg_silver", "ultimaker_petg_yellow", "ultimaker_petg_transparent", "ultimaker_petg_red_translucent", "ultimaker_petg_blue_translucent", "ultimaker_petg_green_translucent", "ultimaker_petg_yellow_fluorescent", "ultimaker_petg_red" ],
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_jr_1p0a_pro",
|
||||||
|
"preferred_variant_name": "Copper 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_jr_1p0a_pro_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci Jr. 1.0A Pro" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 175.00 },
|
||||||
|
"machine_depth": { "default_value": 175.00 },
|
||||||
|
"machine_height": { "default_value":175.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci Jr. Pro Xe+",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_jr_pro_xeplus",
|
||||||
|
"preferred_variant_name": "Copper 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_jr_pro_xeplus_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci Jr. Pro Xe+" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 175.00 },
|
||||||
|
"machine_depth": { "default_value": 175.00 },
|
||||||
|
"machine_height": { "default_value":175.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci Jr. Pro X+",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_jr_pro_xplus",
|
||||||
|
"preferred_variant_name": "Copper 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_jr_pro_xplus_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci Jr. Pro X+" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 175.00 },
|
||||||
|
"machine_depth": { "default_value": 175.00 },
|
||||||
|
"machine_height": { "default_value":175.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
52
resources/definitions/xyzprinting_da_vinci_jr_w_pro.def.json
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci Jr. WiFi Pro",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_jr_w_pro",
|
||||||
|
"preferred_variant_name": "Hardened Steel 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_jr_w_pro_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci Jr. WiFi Pro" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 150.00 },
|
||||||
|
"machine_depth": { "default_value": 150.00 },
|
||||||
|
"machine_height": { "default_value":150.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
52
resources/definitions/xyzprinting_da_vinci_super.def.json
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "XYZprinting da Vinci Super",
|
||||||
|
"inherits": "xyzprinting_base",
|
||||||
|
"metadata": {
|
||||||
|
"author": "XYZprinting Software",
|
||||||
|
"manufacturer": "XYZprinting",
|
||||||
|
"visible": true,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"has_machine_quality": true,
|
||||||
|
"has_materials": true,
|
||||||
|
"has_variants": true,
|
||||||
|
"supports_usb_connection": true,
|
||||||
|
"preferred_quality_type": "normal",
|
||||||
|
"quality_definition": "xyzprinting_da_vinci_super",
|
||||||
|
"preferred_variant_name": "Copper 0.4mm Nozzle",
|
||||||
|
"variants_name": "Nozzle Type",
|
||||||
|
"machine_extruder_trains": {
|
||||||
|
"0": "xyzprinting_da_vinci_super_extruder_0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_name": { "default_value": "XYZprinting da Vinci Super" },
|
||||||
|
"machine_shape": { "default_value": "rectangular"},
|
||||||
|
"machine_heated_bed": { "default_value": true },
|
||||||
|
"machine_width": { "default_value": 300.00 },
|
||||||
|
"machine_depth": { "default_value": 300.00 },
|
||||||
|
"machine_height": { "default_value":300.00 },
|
||||||
|
"machine_center_is_zero": { "default_value": false },
|
||||||
|
"machine_head_with_fans_polygon": {
|
||||||
|
"default_value": [
|
||||||
|
[ -20, -10 ],
|
||||||
|
[ -20, 10 ],
|
||||||
|
[ 10, 10 ],
|
||||||
|
[ 10, -10 ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"material_flow_layer_0": {"value": 120},
|
||||||
|
"cool_fan_enabled": { "default_value": true },
|
||||||
|
"cool_fan_speed_0": { "value": 100 },
|
||||||
|
"brim_line_count": { "value" : 5 },
|
||||||
|
"skirt_line_count": { "default_value" : 5 },
|
||||||
|
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||||
|
"machine_start_gcode": {
|
||||||
|
"default_value": "G28 ; home all axes\nG1 Z15 F5000 ; lift nozzle\nG92 E0\nG1 F200 E3\n"
|
||||||
|
},
|
||||||
|
"machine_end_gcode": {
|
||||||
|
"default_value": "M104 S0 ; turn off temperature\nM105 S0; \nG28 X0 ; home X axis\nM84 ; disable motors\n"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,6 @@
|
|||||||
"inherits": "fdmprinter",
|
"inherits": "fdmprinter",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"author": "Ultimaker",
|
|
||||||
"manufacturer": "Zone3D",
|
"manufacturer": "Zone3D",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"platform_offset": [ 0, 0, 0],
|
"platform_offset": [ 0, 0, 0],
|
||||||
|
16
resources/extruders/xyzprinting_base_extruder_0.def.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_base",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_1p0_pro",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_jr_1p0a_pro",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_jr_pro_xeplus",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_jr_pro_xplus",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_jr_w_pro",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"name": "Extruder 1",
|
||||||
|
"inherits": "fdmextruder",
|
||||||
|
"metadata": {
|
||||||
|
"machine": "xyzprinting_da_vinci_super",
|
||||||
|
"position": "0"
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"extruder_nr": { "default_value": 0 },
|
||||||
|
"machine_nozzle_size": { "default_value": 0.4 },
|
||||||
|
"material_diameter": { "default_value": 1.75 }
|
||||||
|
}
|
||||||
|
}
|
@ -53,12 +53,8 @@ msgstr "Start G-Code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "G-Code-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"G-Code-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "Ende G-Code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "G-Code-Befehle, die am Ende ausgeführt werden sollen – getrennt durch \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"G-Code-Befehle, die am Ende ausgeführt werden sollen – getrennt durch \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,11 @@ msgstr "Füllmuster"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Das Muster des Füllmaterials des Drucks. Die Linien- und Zickzackfüllmethode wechseln nach jeder Schicht die Richtung, um Materialkosten zu reduzieren."
|
||||||
|
" Die Gitter-, Dreieck- Tri-Hexagon-, Würfel-, Octahedral-, Viertelwürfel-, Quer- und konzentrischen Muster werden in jeder Schicht vollständig gedruckt."
|
||||||
|
" Gyroid-, Würfel-, Viertelwürfel- und achtflächige Füllungen wechseln mit jeder Schicht, um eine gleichmäßigere Verteilung der Stärke in allen Richtungen"
|
||||||
|
" zu erzielen. Die Einstellung Blitz versucht, die Füllung zu minimieren, indem nur die (internen) Dächer des Objekts gestützt werden. Der ‚gültige‘ Prozentsatz"
|
||||||
|
" der Füllung bezieht sich daher nur auf die jeweilige Ebene unter dem zu stützenden Bereich des Modells."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -2021,42 +2017,44 @@ msgstr "Die Anzahl der zusätzlichen Schichten, die die Außenhautkanten stütze
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Stützwinkel der Blitz-Füllung"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Legt fest, wann eine Blitz-Füllschicht alles Darüberliegende tragen soll. Gemessen in dem Winkel, den die Schichtstärke vorgibt."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Überstandswinkel der Blitz-Füllung"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Legt fest, wann eine Blitz-Füllschicht das Modell darüber tragen soll. Gemessen in dem Winkel, den die Schichtstärke vorgibt."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Beschnittwinkel der Blitz-Füllung"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Der Unterschied, den eine Blitz-Füllschicht zu der unmittelbar darüber liegenden Schicht haben kann, wenn es um den Beschnitt der äußeren Enden von Bäumen"
|
||||||
|
" geht. Gemessen in dem Winkel, den die Schichtstärke vorgibt."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Begradigungswinkel der Blitz-Füllung"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Die veränderte Position, die eine Schicht der Blitz-Füllung zu der unmittelbar darüber liegenden Schicht haben kann, wenn es um das Ausrunden der äußeren"
|
||||||
|
" Enden von Bäumen geht. Gemessen als Winkel der Zweige."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3249,7 @@ msgstr "Alle"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Nicht auf der Außenfläche"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5203,7 @@ msgstr "Mindestbreite der Form"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "Der Mindestabstand zwischen der Außenseite der Form und der Außenseite des Modells."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -53,12 +53,8 @@ msgstr "Iniciar GCode"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "Los comandos de GCode que se ejecutarán justo al inicio separados por - \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Los comandos de GCode que se ejecutarán justo al inicio separados por - \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "Finalizar GCode"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "Los comandos de GCode que se ejecutarán justo al final separados por - \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Los comandos de GCode que se ejecutarán justo al final separados por -\n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,11 @@ msgstr "Patrón de relleno"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Patrón del material de relleno de la impresión. El relleno de línea y zigzag cambia de dirección en capas alternas, con lo que se reduce el coste de material."
|
||||||
|
" Los patrones de rejilla, triángulo, trihexágono, cubo, octeto, cubo bitruncado, transversal y concéntrico se imprimen en todas las capas por completo."
|
||||||
|
" El relleno giroide, cúbico, cúbico bitruncado y de octeto cambian en cada capa para proporcionar una distribución de fuerza equitativa en cada dirección."
|
||||||
|
" El relleno de iluminación intenta minimizar el relleno, apoyando únicamente las cubiertas (internas) del objeto. Como tal, el porcentaje de relleno solo"
|
||||||
|
" es \"válido\" una capa por debajo de lo que necesite para soportar el modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1802,7 +1798,7 @@ msgstr "Giroide"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Iluminación"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2021,42 +2017,44 @@ msgstr "El número de capas de relleno que soportan los bordes del forro."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Ángulo de sujeción de relleno de iluminación"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Determina cuándo una capa de iluminación tiene que soportar algo por encima de ella. Medido en el ángulo dado el espesor de una capa."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Ángulo del voladizo de relleno de iluminación"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Determina cuándo una capa de relleno de iluminación tiene que soportar el modelo que está por encima. Medido en el ángulo dado el espesor."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Ángulo de recorte de relleno de iluminación"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La diferencia que puede tener una capa de relleno de iluminación con la inmediatamente superior como cuando se podan las puntas de los árboles. Medido"
|
||||||
|
" en el ángulo dado el espesor."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Ángulo de enderezamiento de iluminación"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La diferencia que puede tener una capa de relleno de iluminación con la inmediatamente superior como el suavizado de los árboles. Medido en el ángulo dado"
|
||||||
|
" el espesor."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3249,7 @@ msgstr "Todo"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "No en la superficie exterior"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5203,7 @@ msgstr "Ancho de molde mínimo"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "Distancia mínima entre la parte exterior del molde y la parte exterior del modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "L'ébauche du profil est conçue pour imprimer les prototypes initiaux e
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Veuillez synchroniser les profils de matériaux avec vos imprimantes avant de commencer à imprimer."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Nouveaux matériaux installés"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Synchroniser les matériaux avec les imprimantes"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Personnalisé"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Impossible d'enregistrer l'archive du matériau dans {} :"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Échec de l'enregistrement de l'archive des matériaux"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1552,12 +1552,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "Votre imprimante <b>{printer_name} </b> pourrait être connectée via le cloud.\n Gérez votre file d'attente d'impression et surveillez vos impressions depuis"
|
||||||
|
" n'importe où en connectant votre imprimante à Digital Factory"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Êtes-vous prêt pour l'impression dans le cloud ?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1567,7 +1568,7 @@ msgstr "Prise en main"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "En savoir plus"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3127,7 +3128,8 @@ msgstr "Veuillez mettre à jour le Firmware de votre imprimante pour gérer la f
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis Ultimaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter Ultimaker"
|
||||||
|
" Digital Factory et voir cette webcam."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3649,72 +3651,72 @@ msgstr "&Marché en ligne"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "Mes imprimantes"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Surveillez les imprimantes dans Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Créez des projets d'impression dans Digital Library."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Tâches d'impression"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Surveillez les tâches d'impression et réimprimez à partir de votre historique d'impression."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Étendez Ultimaker Cura avec des plug-ins et des profils de matériaux."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Devenez un expert de l'impression 3D avec les cours de formation en ligne Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Assistance ultimaker"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Découvrez comment utiliser Ultimaker Cura."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Posez une question"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Consultez la communauté Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Notifier un bug"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Informez les développeurs en cas de problème."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Visitez le site web Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4595,12 +4597,12 @@ msgstr "Utiliser une seule instance de Cura"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Les objets doivent-ils être supprimés du plateau de fabrication avant de charger un nouveau modèle dans l'instance unique de Cura ?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Supprimez les objets du plateau de fabrication avant de charger un modèle dans l'instance unique"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6173,12 +6175,12 @@ msgstr "Mise à niveau de 4.0 vers 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Mises à niveau des configurations de Cura 4.11 vers Cura 4.12."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "Mise à niveau de la version 4.11 vers la version 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -53,12 +53,8 @@ msgstr "G-Code de démarrage"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "Commandes G-Code à exécuter au tout début, séparées par \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Commandes G-Code à exécuter au tout début, séparées par \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "G-Code de fin"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "Commandes G-Code à exécuter tout à la fin, séparées par \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Commandes G-Code à exécuter tout à la fin, séparées par \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,11 @@ msgstr "Motif de remplissage"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Le motif du matériau de remplissage de l'impression. La ligne et le remplissage en zigzag changent de sens à chaque alternance de couche, réduisant ainsi"
|
||||||
|
" les coûts matériels. Les motifs en grille, en triangle, tri-hexagonaux, cubiques, octaédriques, quart cubiques, entrecroisés et concentriques sont entièrement"
|
||||||
|
" imprimés sur chaque couche. Les remplissages gyroïdes, cubiques, quart cubiques et octaédriques changent à chaque couche afin d'offrir une répartition"
|
||||||
|
" plus égale de la solidité dans chaque direction. Le remplissage éclair tente de minimiser le remplissage en ne soutenant que les plafonds (internes) de"
|
||||||
|
" l'objet. Ainsi, le pourcentage de remplissage n'est « valable » qu'une couche en dessous de ce qu'il doit soutenir dans le modèle."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1802,7 +1798,7 @@ msgstr "Gyroïde"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Éclair"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2021,42 +2017,44 @@ msgstr "Le nombre de couches de remplissage qui soutient les bords de la couche.
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Angle de support du remplissage éclair"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Détermine quand une couche de remplissage éclair doit soutenir tout ce qui se trouve au-dessus. Mesuré dans l'angle au vu de l'épaisseur d'une couche."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Angle de saillie du remplissage éclair"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Détermine quand une couche de remplissage éclair doit soutenir le modèle au-dessus. Mesuré dans l'angle au vu de l'épaisseur."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Angle d'élagage du remplissage éclair"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La différence qu'une couche de remplissage éclair peut avoir avec celle immédiatement au-dessus en ce qui concerne l'élagage des extrémités extérieures"
|
||||||
|
" des arborescences. Mesuré dans l'angle au vu de l'épaisseur."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Angle de redressement du remplissage éclair"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La différence qu'une couche de remplissage éclair peut avoir avec celle immédiatement au-dessus en ce qui concerne le lissage des arborescences. Mesuré"
|
||||||
|
" dans l'angle au vu de l'épaisseur."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3249,7 @@ msgstr "Tout"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Pas sur la surface extérieure"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5203,7 @@ msgstr "Largeur minimale de moule"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "La distance minimale entre l'extérieur du moule et l'extérieur du modèle."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "Il profilo bozza è destinato alla stampa dei prototipi iniziali e alla
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Sincronizzare i profili del materiale con le stampanti prima di iniziare a stampare."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Nuovi materiali installati"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Sincronizza materiali con stampanti"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Personalizzata"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Impossibile salvare archivio materiali in {}:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Impossibile salvare archivio materiali"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1552,12 +1552,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "Impossibile connettere la stampante <b>{printer_name}</b> tramite cloud.\n Gestisci la coda di stampa e monitora le stampe da qualsiasi posizione collegando"
|
||||||
|
" la stampante a Digital Factory"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Pronto per la stampa tramite cloud?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1567,7 +1568,7 @@ msgstr "Per iniziare"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "Ulteriori informazioni"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3128,7 +3129,8 @@ msgstr "Aggiornare il firmware della stampante per gestire la coda da remoto."
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da Ultimaker Cura. Fare clic su \"Gestione stampanti\" per visitare Ultimaker Digital Factory"
|
||||||
|
" e visualizzare questa Webcam."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3650,72 +3652,72 @@ msgstr "&Mercato"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "Le mie stampanti"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Monitora le stampanti in Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Crea progetti di stampa in Digital Library."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Processi di stampa"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Monitora i processi di stampa dalla cronologia di stampa."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Estendi Ultimaker Cura con plugin e profili del materiale."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Diventa un esperto di stampa 3D con e-learning Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Supporto Ultimaker"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Scopri come iniziare a utilizzare Ultimaker Cura."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Fai una domanda"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Consulta la community di Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Segnala un errore"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Informa gli sviluppatori che si è verificato un errore."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Visita il sito Web Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4596,12 +4598,12 @@ msgstr "Utilizzare una singola istanza di Cura"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "È necessario pulire il piano di stampa prima di caricare un nuovo modello nella singola istanza di Cura?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Pulire il piano di stampa prima di caricare il modello nella singola istanza"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6174,12 +6176,12 @@ msgstr "Aggiornamento della versione da 4.0 a 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Aggiorna le configurazioni da Cura 4.11 a Cura 4.12."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "Aggiornamento della versione da 4.11 a 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -53,12 +53,8 @@ msgstr "Codice G avvio"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "I comandi codice G da eseguire all’avvio, separati da \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"I comandi codice G da eseguire all’avvio, separati da \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "Codice G fine"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "I comandi codice G da eseguire alla fine, separati da \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"I comandi codice G da eseguire alla fine, separati da \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,11 @@ msgstr "Configurazione di riempimento"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Configurazione del materiale di riempimento della stampa. Il riempimento a linea e a zig zag cambia direzione su strati alternati, riducendo il costo del"
|
||||||
|
" materiale. Le configurazioni a griglia, a triangolo, tri-esagonali, cubiche, ottagonali, a quarto di cubo, incrociate e concentriche sono stampate completamente"
|
||||||
|
" su ogni strato. Le configurazioni gyroid, cubiche, a quarto di cubo e ottagonali variano per ciascuno strato per garantire una più uniforme distribuzione"
|
||||||
|
" della forza in ogni direzione. Il riempimento fulmine cerca di minimizzare il riempimento, supportando solo le parti superiori (interne) dell'oggetto."
|
||||||
|
" Come tale, la percentuale di riempimento è 'valida' solo uno strato al di sotto di ciò che è necessario per supportare il modello."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1802,7 +1798,7 @@ msgstr "Gyroid"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Fulmine"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2021,42 +2017,44 @@ msgstr "Numero di layer di riempimento che supportano i bordi del rivestimento."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Angolo di supporto riempimento fulmine"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Determina quando uno strato di riempimento fulmine deve supportare il materiale sopra di esso. Misurato nell'angolo dato lo stesso di uno strato."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Angolo di sbalzo riempimento fulmine"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Determina quando uno strato di riempimento fulmine deve supportare il modello sopra di esso. Misurato nell'angolo dato lo spessore."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Angolo eliminazione riempimento fulmine"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La differenza tra uno strato di riempimento fulmine con quello immediatamente sopra rispetto alla potatura delle estremità esterne degli alberi. Misurato"
|
||||||
|
" nell'angolo dato lo spessore."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Angolo di raddrizzatura riempimento fulmine"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "La differenza tra uno strato di riempimento fulmine con quello immediatamente sopra rispetto alla levigatura degli alberi. Misurato nell'angolo dato lo"
|
||||||
|
" spessore."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3249,7 @@ msgstr "Tutto"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Non su superficie esterna"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5203,7 @@ msgstr "Larghezza minimo dello stampo"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "Distanza minima tra l'esterno dello stampo e l'esterno del modello."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "ドラフトプロファイルは、プリント時間の大幅短縮を
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "プリントを開始する前に、材料プロファイルをプリンターと同期させてください。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "新しい材料がインストールされました"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "材料をプリンターと同期"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "カスタム"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "材料アーカイブを{}に保存できませんでした:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "材料アーカイブの保存に失敗しました"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1545,12 +1545,12 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "プリンター<b>{printer_name}</b>をクラウド経由で接続できました。\nプリンターをDigital Factoryに接続することで、どこからでもプリントキューの管理とプリントのモニタリングを行えます。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "クラウドプリンティングの準備はできていますか?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1560,7 +1560,7 @@ msgstr "はじめに"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "詳しく見る"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3120,7 +3120,7 @@ msgstr "キューをリモートで管理するには、プリンターのファ
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "クラウドプリンターのウェブカムフィードをUltimaker Curaから見ることができません。「プリンター管理」をクリックして、Ultimaker Digital Factoryにアクセスし、このウェブカムを見ます。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3642,72 +3642,72 @@ msgstr "&マーケットプレース"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "マイプリンター"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Ultimaker Digital Factoryでプリンターをモニタリングします。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Digital Libraryでプリントプロジェクトを作成します。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "プリントジョブ"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "プリントジョブをモニタリングしてプリント履歴から再プリントします。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Ultimaker Curaをプラグインと材料プロファイルで拡張します。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Ultimaker eラーニングで3Dプリンティングのエキスパートになります。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Ultimakerのサポート"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Ultimaker Curaの使用を開始する方法を確認します。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "質問をする"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Ultimaker Communityをご参照ください。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "バグを報告"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "問題が発生していることを開発者にお知らせください。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Ultimakerウェブサイトをご確認ください。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4585,12 +4585,12 @@ msgstr "Curaの単一インスタンスを使用"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Curaの単一インスタンスに新しいモデルをロードする前に、ビルドプレートをクリアする必要はありますか?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "モデルを単一のインスタンスにロードする前にビルドプレートをクリア"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6158,12 +6158,12 @@ msgstr "4.0 から 4.1 にバージョンアップグレート"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Cura 4.11からCura 4.12に設定をアップグレードします。"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "バージョン4.11から4.12へのアップグレード"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -57,12 +57,8 @@ msgstr "G-Codeの開始"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "最初に実行するG-codeコマンドは、\\n で区切ります。"
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"最初に実行するG-codeコマンドは、\n"
|
|
||||||
"で区切ります。"
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -71,12 +67,8 @@ msgstr "G-codeの終了"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "最後に実行するG-codeコマンドは、\\n で区切ります。"
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"最後に実行するG-codeコマンドは、\n"
|
|
||||||
"で区切ります。"
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1803,7 +1795,7 @@ msgstr "インフィルパターン"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "プリントのインフィル材料のパターンラインおよびジグザグインフィルはレイヤーごとに方向を入れ替え、材料コストを削減します。グリッド、トライアングル、トライヘキサゴン、キュービック、オクテット、クォーターキュービック、クロスおよび同心円パターンはレイヤーごとに完全にプリントされます。ジャイロイド、キュービック、クォーターキュービックおよびオクテットインフィルはレイヤーごとに変化し、各方向にかけてより均一な強度分布を実現します。ライトニングインフィルは造形物の(内部)ルーフのみを支えることで、インフィルを最低限にするよう試みます。そのため、インフィル率はモデル内で支える必要がある物の1つ下のレイヤーでのみ有効です。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1876,7 +1868,7 @@ msgstr "ジャイロイド"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "ライトニング"
|
||||||
|
|
||||||
# msgstr "クロス3D"
|
# msgstr "クロス3D"
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
@ -2101,42 +2093,42 @@ msgstr "スキンエッジをサポートするインフィルレイヤーの数
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "ライトニングインフィルサポート角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "ライトニングインフィルレイヤーがその上の物を支える必要がある場合を決定します。レイヤーの厚さを考慮して角度で指定されます。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "ライトニングインフィルオーバーハング角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "ライトニングインフィルレイヤーがその上のモデルを支える必要がある場合を決定します。厚さを考慮して角度で指定されます。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "ライトニングインフィル刈り込み角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "ツリーの外側末端の刈り込みに関して、ライトニングインフィルレイヤーとそのすぐ上にあるレイヤーとの間に存在することのできる差異です。厚さを考慮して角度で指定されます。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "ライトニングインフィル矯正角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "ツリーのスムージングに関して、ライトニングインフィルレイヤーとそのすぐ上にあるレイヤーとの間に存在することのできる差異です。厚さを考慮して角度で指定されます。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3340,7 +3332,7 @@ msgstr "すべて"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "外側表面には適用しない"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5328,7 +5320,7 @@ msgstr "最小型幅"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "型の外側とモデルの外側との間の最小距離です。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "초안 프로파일은 인쇄 시간을 상당히 줄이려는 의도로
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "프린트를 시작하기 전에 재료 프로파일을 프린터와 동기화하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "새로운 재료가 설치됨"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "재료를 프린터와 동기화"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "사용자 정의"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "재료 아카이브를 {}에 저장할 수 없음:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "재료 아카이브를 저장하는 데 실패함"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1545,12 +1545,12 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "<b>{printer_name}</b> 프린터를 클라우드를 통해 연결할 수 있습니다.\n 프린터를 Digital Factory에 연결하는 모든 위치에서 프린트 대기열을 관리하고 프린트를 모니터링합니다."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "클라우드 프린팅이 준비되었습니까?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1560,7 +1560,7 @@ msgstr "시작하기"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "자세히 알아보기"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3115,7 +3115,7 @@ msgstr "대기열을 원격으로 관리하려면 프린터 펌웨어를 업데
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "클라우드 프린터용 Webcam 피드는 Ultimaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 Ultimaker Digital Factory를 방문하고 이 웹캠을 확인하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3637,72 +3637,72 @@ msgstr "&시장"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "내 프린터"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Ultimaker Digital Factory의 프린터를 모니터링하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Digital Library에서 프린트 프로젝트를 생성하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "인쇄 작업"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "프린트 작업을 모니터링하고 프린트 기록에서 다시 프린트하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "플러그인 및 재료 프로파일을 사용하여 Ultimaker Cura를 확장하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Ultimaker e-러닝을 통해 3D 프린팅 전문가로 거듭나십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Ultimaker support"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Ultimaker Cura로 시작하는 방법을 알아보십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "질문하기"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Ultimaker 커뮤니티에 문의하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "버그 리포트"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "개발자에게 문제를 알려주십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Ultimaker 웹 사이트를 방문하십시오."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4579,12 +4579,12 @@ msgstr "Cura의 단일 인스턴스 사용"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Cura의 단일 인스턴스에서 새 모델을 로드하기 전에 빌드 플레이트를 지워야 합니까?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "모델을 단일 인스턴스로 로드하기 전에 빌드 플레이트 지우기"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6154,12 +6154,12 @@ msgstr "버전 업그레이드 4.0에서 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Cura 4.11에서 Cura 4.12로 구성을 업그레이드합니다."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "4.11에서 4.12로 버전 업그레이드"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -54,12 +54,8 @@ msgstr "시작 GCode"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "시작과 동시에형실행될 G 코드 명령어 \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"시작과 동시에형실행될 G 코드 명령어 \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -68,12 +64,8 @@ msgstr "End GCode"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "맨 마지막에 실행될 G 코드 명령 \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"맨 마지막에 실행될 G 코드 명령 \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1733,7 +1725,8 @@ msgstr "내부채움 패턴"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "프린트 내부채움 재료의 패턴입니다. 선과 지그재그형 내부채움이 레이어를 하나 걸러서 방향을 바꾸므로 재료비가 절감됩니다. 격자, 삼각형, 삼육각형, 큐빅, 옥텟, 쿼터 큐빅, 크로스, 동심원 패턴이 레이어마다 완전히 프린트됩니다. 자이로이드, 큐빅, 쿼터 큐빅, 옥텟 내부채움이"
|
||||||
|
" 레이어마다 변경되므로 각 방향으로 힘이 더 균등하게 분산됩니다. 라이트닝 내부채움이 객체의 (내부) 지붕만 서포트하여 내부채움을 최소화합니다. 따라서 내부채움 비율은 모델을 서포트하는 데 필요한 것에 상관없이 한 레이어 아래에만 '유효'합니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1803,7 +1796,7 @@ msgstr "자이로이드"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "라이트닝"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2022,42 +2015,42 @@ msgstr "스킨 에지를 지원하는 내부채움 레이어의 수."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 서포트 각도"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 레이어가 그 위에 있는 것을 서포트해야 할 부분을 결정합니다. 레이어 두께가 주어진 각도로 측정됩니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 오버행 각도"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 레이어가 레이어 위에 있는 모델을 서포트해야 할 부분을 결정합니다. 두께가 주어진 각도로 측정됩니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 가지치기 각도"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "나무의 바깥쪽 가지치기에 대해 라이트닝 내부채움 레이어와 바로 위 레이어의 차이점입니다. 두께가 주어진 각도로 측정됩니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "라이트닝 내부채움 정리 각도"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "나무의 윤곽선을 부드럽게 하는 것에 관한 라이트닝 내부채움 레이어와 바로 위 레이어의 차이점입니다. 두께가 주어진 각도로 측정됩니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3252,7 +3245,7 @@ msgstr "모두"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "외부 표면에 없음"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5206,7 +5199,7 @@ msgstr "최소 몰드 너비"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "몰드의 바깥쪽과 모델의 바깥쪽 사이의 최소 거리입니다."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "Het ontwerpprofiel is ontworpen om initiële prototypen en conceptvalida
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Synchroniseer de materiaalprofielen met uw printer voordat u gaat printen."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Nieuwe materialen geïnstalleerd"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Synchroniseer materialen met printers"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Aangepast"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Kan materiaalarchief niet opslaan op {}:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Opslaan materiaalarchief mislukt"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1552,12 +1552,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "U kunt uw printer <b>{printer_name}</b> via de cloud verbinden.\n Beheer uw printerwachtrij en controleer uw prints vanaf elke plek door uw printer te"
|
||||||
|
" verbinden met Digital Factory"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Bent u klaar voor printen via de cloud?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1567,7 +1568,7 @@ msgstr "Aan de slag"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "Meer informatie"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3128,7 +3129,8 @@ msgstr "Werk de firmware van uw printer bij om de wachtrij op afstand te beheren
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Vanuit Ultimaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om Ultimaker Digital Factory te bezoeken en deze"
|
||||||
|
" webcam te bekijken."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3650,72 +3652,72 @@ msgstr "&Marktplaats"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "Mijn printers"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Volg uw printers in Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Maak printprojecten aan in Digital Library."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Printtaken"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Volg printtaken en print opnieuw vanuit uw printgeschiedenis."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Breid Ultimaker Cura uit met plug-ins en materiaalprofielen."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Word een 3D-printexpert met Ultimaker e-learning."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Ondersteuning van Ultimaker"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Leer hoe u aan de slag gaat met Ultimaker Cura."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Stel een vraag"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Consulteer de Ultimaker Community."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Een fout melden"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Laat ontwikkelaars weten dat er iets misgaat."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Bezoek de Ultimaker-website."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4596,12 +4598,12 @@ msgstr "Gebruik één instantie van Cura"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Moet het platform worden leeggemaakt voordat u een nieuw model laadt in de dezelfde instantie van Cura?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Maak platform leeg voordat u een model laadt in dezelfde instantie"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6174,12 +6176,12 @@ msgstr "Versie-upgrade van 4.0 naar 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Hiermee worden configuraties bijgewerkt van Cura 4.11 naar Cura 4.12."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "Versie-upgrade van 4.11 naar 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -53,12 +53,8 @@ msgstr "Start G-code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"G-code-opdrachten die aan het begin worden uitgevoerd, gescheiden door \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "Eind G-code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"G-code-opdrachten die aan het eind worden uitgevoerd, gescheiden door \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,11 @@ msgstr "Vulpatroon"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Het patroon van het vulmateriaal van de print. De lijn- en zigzagvulling veranderen per vullaag van richting, waardoor u bespaart op materiaalkosten. De"
|
||||||
|
" raster-, driehoeks-, tri-hexagonale, kubische, achtvlaks-, afgeknotte kubus-, kruis- en concentrische patronen worden per laag volledig geprint. Gyroïde,"
|
||||||
|
" kubische, afgeknotte kubus- en achtvlaksvullingen veranderen per laag voor een meer gelijke krachtverdeling in elke richting. Bliksemvulling minimaliseert"
|
||||||
|
" de vulling, doordat deze alleen de (interne) supportdaken ondersteunt. Daarom geldt het invulpercentage slechts voor één laag onder wat er nodig is om"
|
||||||
|
" het model te ondersteunen."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1802,7 +1798,7 @@ msgstr "Gyroïde"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Bliksem"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2021,42 +2017,43 @@ msgstr "Het aantal opvullagen dat skinranden ondersteunt."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Hoek supportstructuur bliksemvulling"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Bepaalt wanneer een bliksemvullaag iets moet ondersteunen dat zich boven de vullaag bevindt. Gemeten in de hoek bepaald door de laagdikte."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Hoek overhang bliksemvulling"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Bepaalt wanneer een bliksemvullaag het model boven de laag moet ondersteunen. Gemeten in de hoek bepaald door de laagdikte."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Snoeihoek bliksemvulling"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Het mogelijke verschil van een bliksemvullaag met de laag onmiddellijk daarboven m.b.t. het snoeien van de buitenste uiteinden van bomen. Gemeten in de"
|
||||||
|
" hoek bepaald door de laagdikte."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Rechtbuighoek bliksemvulling"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Het mogelijke verschil van een bliksemvullaag met de laag onmiddellijk daarboven m.b.t. het effenen van bomen. Gemeten in de hoek bepaald door de laagdikte."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3248,7 @@ msgstr "Alles"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Niet op buitenzijde"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5202,7 @@ msgstr "Minimale matrijsbreedte"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "De minimale afstand tussen de buitenzijde van de matrijs en de buitenzijde van het model."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -7,7 +7,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: Cura 4.12\n"
|
"Project-Id-Version: Cura 4.12\n"
|
||||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||||
"POT-Creation-Date: 2021-10-20 16:43+0000\n"
|
"POT-Creation-Date: 2021-10-20 16:43+0000\n"
|
||||||
"PO-Revision-Date: 2021-08-18 02:56+0200\n"
|
"PO-Revision-Date: 2021-11-04 08:29+0100\n"
|
||||||
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
|
"Last-Translator: Cláudio Sampaio <patola@gmail.com>\n"
|
||||||
"Language-Team: Cláudio Sampaio <patola@gmail.com>\n"
|
"Language-Team: Cláudio Sampaio <patola@gmail.com>\n"
|
||||||
"Language: pt_BR\n"
|
"Language: pt_BR\n"
|
||||||
@ -1733,7 +1733,7 @@ msgstr "Padrão de Preenchimento"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "O padrão do material de preenchimento da impressão. Os preenchimentos de linha e ziguezague trocam de direção em camadas alternadas, reduzindo o custo de material. Os padrões de grade, triângulo, tri-hexágono, cúbico, octeto, quarto cúbico, cruzado e concêntrico são impressos a cada camada. Os preenchimentos giroide, cúbico, quarto cúbico e octeto mudam em cada camada para prover uma distribuição mais uniforme de força em cada direção. O preenchimento de relâmpago tenta minimizar o material suportando apenas os tetos (internos) do objeto. Como tal, a porcentagem de preenchimento somente é 'válida' uma camada abaixo do que quer que seja que ela precise para suportar o modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1803,7 +1803,7 @@ msgstr "Giróide"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2022,42 +2022,42 @@ msgstr "O número de camadas de preenchimento que suportam arestas de contorno."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de Suporte do Preenchimento Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Determina quando uma camada do preenchimento relâmpago deve suportar algo sobre si. Medido no ângulo de acordo com a espessura da camada."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de Seção Pendente do Preenchimento Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Determina quando a camada de preenchimento relâmpago deve suportar o modelo sobre si. Medido no ângulo de acordo com a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de Poda do Preenchimento Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "A diferença que uma camada de preenchimento relâmpago pode ter em relação à camada imediatamente superior de acordo com a poda das extremidades externas das árvores. Medido em ângulo de acordo com a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de Retificação do Preenchimento Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "A diferença que uma camada de preenchimento relâmpago pode ter em relação à camada imediatamente superior de acordo com a suavização de árvores. Medido em ângulo de acordo com a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3252,7 +3252,7 @@ msgstr "Tudo"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Não na Superfície Externa"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5206,7 +5206,7 @@ msgstr "Largura Mínima do Molde"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "A distância mínima entre o exterior do molde e o exterior do modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "O perfil de rascunho foi concebido para imprimir protótipos de teste e
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Sincronize os perfis de material com as suas impressoras antes de começar a imprimir."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Novos materiais instalados"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Sincronizar materiais com impressoras"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Personalizado"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Não foi possível guardar o arquivo de material em {}:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Erro ao guardar o arquivo de material"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1563,12 +1563,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "A sua impressora <b>{printer_name}</b> pode ser ligada através da cloud.\n Faça a gestão da sua fila de impressão e monitorize as suas impressões a partir"
|
||||||
|
" de qualquer local ao ligar a sua impressora ao Digital Factory"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Está preparado para a impressão na cloud?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1578,7 +1579,7 @@ msgstr "Iniciar"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "Saber mais"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3146,7 +3147,8 @@ msgstr "Atualize o firmware da impressora para gerir a fila remotamente."
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do Ultimaker Cura. Clique em \"Gerir impressora\" para visitar o Ultimaker"
|
||||||
|
" Digital Factory e ver esta câmara."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3672,72 +3674,72 @@ msgstr "&Mercado"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "As minhas impressoras"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Monitorize as impressoras no Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Crie projetos de impressão na Digital Library."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Trabalhos em Impressão"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Monitorize os trabalhos de impressão e volte a imprimir a partir do histórico de impressão."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Tire mais partido do Ultimaker Cura com plug-ins e perfis de materiais."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Torne-se um perito em impressão 3D com os cursos de e-learning da Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Suporte da Ultimaker"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Saiba como começar a utilizar o Ultimaker Cura."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Faça uma pergunta"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Consulte a Comunidade Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Reportar um erro"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Informe os programadores quando houver algum problema."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Visite o site da Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4623,12 +4625,12 @@ msgstr "Utilizar uma única instância do Cura"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Limpar a base de construção antes de carregar um novo modelo na instância única do Cura?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Limpar base de construção antes de carregar o modelo na instância única"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6222,12 +6224,12 @@ msgstr "Atualização da versão 4.0 para 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Atualiza as configurações do Cura 4.11 para o Cura 4.12."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "Atualização da versão 4.11 para a versão 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -54,12 +54,8 @@ msgstr "G-code Inicial"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "Comandos G-code a serem executados no início – separados por \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Comandos G-code a serem executados no início – separados por \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -68,12 +64,8 @@ msgstr "G-code Final"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "Comandos G-code a serem executados no fim – separados por \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Comandos G-code a serem executados no fim – separados por \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1787,7 +1779,11 @@ msgstr "Padrão de Enchimento"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "O padrão do material de enchimento da impressão. A linha e o enchimento em ziguezague mudam de direção em camadas alternativas, o que reduz o custo do"
|
||||||
|
" material. Os padrões em grelha, triângulo, tri-hexágono, octeto, quarto cúbico, cruz e concêntricos são totalmente impressos em cada camada. Os enchimentos"
|
||||||
|
" gyroid, cúbico, quarto cúbico e octeto mudam em cada camada para proporcionar uma distribuição mais uniforme da resistência em cada direção. O enchimento"
|
||||||
|
" relâmpago tenta minimizar o enchimento, ao suportar apenas as partes superiores (internas) do objeto. Como tal, a percentagem de enchimento só é \"válida\""
|
||||||
|
" uma camada abaixo do que for necessário para suportar o modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1857,7 +1853,7 @@ msgstr "Gyroid"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2079,42 +2075,44 @@ msgstr "O número de camadas de enchimento que suportam as arestas do revestimen
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de suporte de enchimento relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Determina o momento em que uma camada de enchimento relâmpago tem de suportar algo acima da mesma. Medido como um ângulo conforme a espessura da camada."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de saliência do enchimento relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Determina o momento em que uma camada de enchimento relâmpago tem de suportar o modelo acima da mesma. Medido como um ângulo conforme a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de corte do enchimento relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "A diferença que uma camada de enchimento relâmpago pode ter com uma imediatamente acima no que diz respeito ao corte das extremidades exteriores das árvores."
|
||||||
|
" Medido como um ângulo conforme a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Ângulo de alisamento do enchimento relâmpago"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "A diferença que uma camada de enchimento relâmpago pode ter com uma imediatamente acima no que diz respeito ao alisamento das árvores. Medido como um ângulo"
|
||||||
|
" conforme a espessura."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3355,7 +3353,7 @@ msgstr "Tudo"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Não na Superfície Exterior"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5355,7 +5353,7 @@ msgstr "Largura mínima do molde"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "A distância mínima entre o exterior do molde e o exterior do modelo."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "Черновой профиль предназначен для печа
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Перед началом печати синхронизируйте профили материалов с принтерами."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Установлены новые материалы"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Синхронизировать материалы с принтерами"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Своё"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Невозможно сохранить архив материалов в {}:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Архив материалов не сохранен"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1557,12 +1557,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "Ваш принтер <b>{printer_name}</b> может быть подключен через облако.\n Управляйте очередью печати и следите за результатом из любого места благодаря подключению"
|
||||||
|
" принтера к Digital Factory"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Вы готовы к облачной печати?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1572,7 +1573,7 @@ msgstr "Приступить"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "Узнать больше"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3137,7 +3138,8 @@ msgstr "Для удаленного управления очередью нео
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Каналы веб-камеры для облачных принтеров невозможно просмотреть из Ultimaker Cura. Щелкните «Управление принтером», чтобы просмотреть эту веб-камеру на"
|
||||||
|
" сайте Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3659,72 +3661,72 @@ msgstr "&Магазин"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "Мои принтеры"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Следите за своими принтерами в Ultimaker Digital Factory."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Создавайте проекты печати в электронной библиотеке."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Задания печати"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Отслеживайте задания печати и запускайте их повторно из истории печати."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Расширяйте возможности Ultimaker Cura за счет плагинов и профилей материалов."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Пройдите электронное обучение Ultimaker и станьте экспертом в области 3D-печати."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Поддержка Ultimaker"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Узнайте, как начать работу с Ultimaker Cura."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Задать вопрос"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Посоветуйтесь со специалистами в сообществе Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Сообщить об ошибке"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Сообщите разработчикам о неполадках."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Посетите веб-сайт Ultimaker."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4609,12 +4611,12 @@ msgstr "Использовать один экземпляр Cura"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Следует ли очищать печатную пластину перед загрузкой новой модели в единственный экземпляр Cura?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Очистите печатную пластину перед загрузкой модели в единственный экземпляр"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6188,12 +6190,12 @@ msgstr "Обновление версии 4.0 до 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Обновляет конфигурации Cura 4.11 до Cura 4.12."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "Обновление версии 4.11 до 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -54,12 +54,8 @@ msgstr "Стартовый G-код"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Команды в G-коде, которые будут выполнены в самом начале, разделенные с помощью \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -68,12 +64,8 @@ msgstr "Завершающий G-код"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"Команды в G-коде, которые будут выполнены в самом конце, разделенные с помощью \n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1733,7 +1725,11 @@ msgstr "Шаблон заполнения"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Шаблон заполняющего материала печати. Линейное и зигзагообразное заполнение меняет направление на чередующихся слоях, снижая расходы на материал. Шаблоны"
|
||||||
|
" «сетка», «треугольник», «шестигранник из треугольников», «куб», «восьмигранник», «четверть куба», «крестовое», «концентрическое» полностью печатаются"
|
||||||
|
" в каждом слое. Шаблоны заполнения «гироид», «куб», «четверть куба» и «восьмигранник» меняются в каждом слое, чтобы обеспечить более равномерное распределение"
|
||||||
|
" прочности в каждом направлении. Шаблон заполнения «молния» пытается минимизировать заполнение, поддерживая только (внутренние) верхние части объекта."
|
||||||
|
" Таким образом, процент заполнения «действует» только на один слой ниже того, который требуется для поддержки модели."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1803,7 +1799,7 @@ msgstr "Гироид"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Молния"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2022,42 +2018,44 @@ msgstr "Количество слоев, которые поддерживают
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Угол поддержки шаблона заполнения «молния»"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Определяет, когда слой шаблона заполнения «молния» должен поддерживать что-либо над ним. Измеряется под углом с учетом толщины слоя."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Угол выступа шаблона заполнения «молния»"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Определяет, когда слой шаблона заполнения «молния» должен поддерживать модель над ним. Измеряется под углом с учетом толщины."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Угол обрезки шаблона заполнения «молния»"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Разность, которая может возникать между слоем шаблона заполнения «молния» и слоем, расположенным непосредственно над ним, при обрезке внешних оконечностей"
|
||||||
|
" деревьев. Измеряется под углом с учетом толщины."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Угол выпрямления шаблона заполнения «молния»"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Разность, которая может возникать между слоем шаблона заполнения «молния» и слоем, расположенным непосредственно над ним, при выравнивании деревьев. Измеряется"
|
||||||
|
" под углом с учетом толщины."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3252,7 +3250,7 @@ msgstr "Везде"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Не на внешней поверхности"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5206,7 +5204,7 @@ msgstr "Минимальная ширина формы"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "Минимальное расстояние между внешними сторонами формы и модели."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "Taslak profili, baskı süresinin önemli ölçüde kısaltılması amac
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "Lütfen baskıya başlamadan önce malzeme profillerini yazıcılarınızla senkronize edin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "Yeni malzemeler yüklendi"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "Malzemeleri yazıcılarla senkronize et"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "Özel"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "Malzeme arşivi {} konumuna kaydedilemedi:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "Malzeme arşivi kaydedilemedi"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1552,12 +1552,13 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "<b>{printer_name}</b> adlı yazıcınız bulut aracılığıyla bağlanamadı.\n Baskı kuyruğunuzu yönetin ve yazıcınızı Digital Factory'ye bağlayarak baskılarınızı"
|
||||||
|
" dilediğiniz yerden takip edin"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "Buluttan yazdırma için hazır mısınız?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1567,7 +1568,7 @@ msgstr "Başlayın"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "Daha fazla bilgi edinin"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3128,7 +3129,8 @@ msgstr "Kuyruğu uzaktan yönetmek için lütfen yazıcının donanım yazılım
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "Bulut yazıcıları için web kamerası akışları Ultimaker Cura'dan görüntülenemez. Ultimaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek"
|
||||||
|
" için \"Yazıcıyı Yönet\"i tıklayın."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3650,72 +3652,72 @@ msgstr "&Mağazayı Göster"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "Yazıcılarım"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "Ultimaker Digital Factory'de yazıcıları izleyin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "Digital Library'de baskı projeleri oluşturun."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "Yazdırma görevleri"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "Baskı işlerini takip edin ve baskı geçmişinizden yeniden baskı işlemi yapın."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "Ultimaker Cura'yı eklentilerle ve malzeme profilleriyle genişletin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "Ultimaker e-öğrenme ile 3D baskı uzmanı olun."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Ultimaker desteği"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "Ultimaker Cura ile işe nasıl başlayacağınızı öğrenin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "Soru gönder"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "Ultimaker Topluluğundan yardım alın."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "Hata bildirin"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "Geliştiricileri sorunlarla ilgili bilgilendirin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "Ultimaker web sitesini ziyaret edin."
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4596,12 +4598,12 @@ msgstr "Tek bir Cura örneği kullan"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "Cura'nın tek örneğinde yeni bir model yüklenmeden önce yapı plakası temizlensin mi?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "Modeli tek örneğe yüklemeden önce yapı plakasını temizleyin"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6174,12 +6176,12 @@ msgstr "4.0’dan 4.1’e Sürüm Yükseltme"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "Yapılandırmaları Cura 4.11'den Cura 4.12'ye yükseltir."
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "4.11'den 4.12'ye Sürüm Yükseltme"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -53,12 +53,8 @@ msgstr "G-code’u Başlat"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "ile ayrılan, başlangıçta yürütülecek G-code komutları \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"ile ayrılan, başlangıçta yürütülecek G-code komutları\n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -67,12 +63,8 @@ msgstr "G-code’u Sonlandır"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "ile ayrılan, bitişte yürütülecek G-code komutları \\n."
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"ile ayrılan, bitişte yürütülecek G-code komutları\n"
|
|
||||||
"."
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1732,7 +1724,10 @@ msgstr "Dolgu Şekli"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "Baskının dolgu malzemesinin şeklidir. Hat ve zikzak dolgu, farklı katmanlar üzerinde yön değiştirerek malzeme maliyetini azaltır. Izgara, üçgen, üçlü altıgen,"
|
||||||
|
" kübik, sekizlik, çeyrek kübik, çapraz ve eşmerkezli şekiller her katmana tam olarak basılır. Gyroid, kübik, çeyrek kübik ve sekizlik dolgu, her yönde"
|
||||||
|
" daha eşit bir kuvvet dağılımı sağlamak için her katmanda değişir. Yıldırım dolgu, objenin yalnızca (iç) çatılarını destekleyerek dolgu miktarını en aza"
|
||||||
|
" indirmeye çalışır. Bu durumda dolgu yüzdesi yalnızca bir katmanın altında 'geçerli' olur ve modeli destekler."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1802,7 +1797,7 @@ msgstr "Gyroid"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "Yıldırım"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2021,42 +2016,43 @@ msgstr "Kaplamanın kenarlarını destekleyen dolgu katmanının kalınlığı."
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "Yıldırım Dolgu Destek Açısı"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "Bir yıldırım dolgu tabakasının üstünde kalanları ne zaman desteklenmesi gerektiğini belirler. Bir katmanın kalınlığı verilen açıyla ölçülür."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "Yıldırım Dolgu Çıkıntı Açısı"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Bir yıldırım dolgu tabakasının üstündeki modeli ne zaman desteklemesi gerektiğini belirler. Dalların açısı olarak ölçülür."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "Yıldırım Dolgu Budama Açısı"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Bir yıldırım dolgu katmanının hemen üstündeki katmanla ağaçların dış uzantılarının budanması şeklinde sahip olabileceği farktır. Dalların açısı olarak"
|
||||||
|
" ölçülür."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "Yıldırım Dolgu Düzleştirme Açısı"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "Bir yıldırım dolgu katmanının hemen üstündeki katmanla ağaçların düzlenmesi şeklinde sahip olabileceği farktır. Dalların açısı olarak ölçülür."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3251,7 +3247,7 @@ msgstr "Tümü"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "Dış Yüzeyde Değil"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5205,7 +5201,7 @@ msgstr "Minimum Kalıp Genişliği"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "Kalıbın dış tarafı ile modelin dış tarafı arasındaki minimum mesafedir."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -94,17 +94,17 @@ msgstr "草稿配置文件用于打印初始原型和概念验证,可大大缩
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:53
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Please sync the material profiles with your printers before starting to print."
|
msgid "Please sync the material profiles with your printers before starting to print."
|
||||||
msgstr ""
|
msgstr "请在开始打印之前将材料配置文件与您的打印机同步。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "New materials installed"
|
msgid "New materials installed"
|
||||||
msgstr ""
|
msgstr "新材料已装载"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:61
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Sync materials with printers"
|
msgid "Sync materials with printers"
|
||||||
msgstr ""
|
msgstr "同步材料与打印机"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:69
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/SolidView/SolidView.py:80
|
||||||
@ -126,12 +126,12 @@ msgstr "自定义"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:356
|
||||||
msgctxt "@message:text"
|
msgctxt "@message:text"
|
||||||
msgid "Could not save material archive to {}:"
|
msgid "Could not save material archive to {}:"
|
||||||
msgstr ""
|
msgstr "未能将材料存档保存到 {}:"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/MaterialManagementModel.py:357
|
||||||
msgctxt "@message:title"
|
msgctxt "@message:title"
|
||||||
msgid "Failed to save material archive"
|
msgid "Failed to save material archive"
|
||||||
msgstr ""
|
msgstr "未能保存材料存档"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
#: /home/trin/Gedeeld/Projects/Cura/cura/Machines/Models/QualityManagementModel.py:383
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1545,12 +1545,12 @@ msgctxt "@info:status"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
"Your printer <b>{printer_name}</b> could be connected via cloud.\n"
|
||||||
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
" Manage your print queue and monitor your prints from anywhere connecting your printer to Digital Factory"
|
||||||
msgstr ""
|
msgstr "未能通过云连接您的打印机 <b>{printer_name}</b>。\n只需将您的打印机连接到 Digital Factory,即可随时随地管理您的打印作业队列并监控您的打印结果"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26
|
||||||
msgctxt "@info:title"
|
msgctxt "@info:title"
|
||||||
msgid "Are you ready for cloud printing?"
|
msgid "Are you ready for cloud printing?"
|
||||||
msgstr ""
|
msgstr "是否进行云打印?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
@ -1560,7 +1560,7 @@ msgstr "开始"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:31
|
||||||
msgctxt "@action"
|
msgctxt "@action"
|
||||||
msgid "Learn more"
|
msgid "Learn more"
|
||||||
msgstr ""
|
msgstr "了解详情"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
@ -3117,7 +3117,7 @@ msgstr "请及时更新打印机固件以远程管理打印队列。"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:288
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam."
|
||||||
msgstr ""
|
msgstr "无法从 Ultimaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 Ultimaker Digital Factory 并查看此网络摄像头。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
#: /home/trin/Gedeeld/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:348
|
||||||
msgctxt "@label:status"
|
msgctxt "@label:status"
|
||||||
@ -3639,72 +3639,72 @@ msgstr "市场(&M)"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:32
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "My printers"
|
msgid "My printers"
|
||||||
msgstr ""
|
msgstr "我的打印机"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor printers in Ultimaker Digital Factory."
|
msgid "Monitor printers in Ultimaker Digital Factory."
|
||||||
msgstr ""
|
msgstr "在 Ultimaker Digital Factory 中监控打印机。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Create print projects in Digital Library."
|
msgid "Create print projects in Digital Library."
|
||||||
msgstr ""
|
msgstr "在 Digital Library 中创建打印项目。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:46
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Print jobs"
|
msgid "Print jobs"
|
||||||
msgstr ""
|
msgstr "打印作业"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:48
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Monitor print jobs and reprint from your print history."
|
msgid "Monitor print jobs and reprint from your print history."
|
||||||
msgstr ""
|
msgstr "监控打印作业并从打印历史记录重新打印。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
msgid "Extend Ultimaker Cura with plugins and material profiles."
|
||||||
msgstr ""
|
msgstr "用插件和材料配置文件扩展 Ultimaker Cura。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
msgid "Become a 3D printing expert with Ultimaker e-learning."
|
||||||
msgstr ""
|
msgstr "通过 Ultimaker 线上课程教学,成为 3D 打印专家。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ultimaker support"
|
msgid "Ultimaker support"
|
||||||
msgstr ""
|
msgstr "Ultimaker 支持"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Learn how to get started with Ultimaker Cura."
|
msgid "Learn how to get started with Ultimaker Cura."
|
||||||
msgstr ""
|
msgstr "了解如何开始使用 Ultimaker Cura。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Ask a question"
|
msgid "Ask a question"
|
||||||
msgstr ""
|
msgstr "提问"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Consult the Ultimaker Community."
|
msgid "Consult the Ultimaker Community."
|
||||||
msgstr ""
|
msgstr "咨询 Ultimaker 社区。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81
|
||||||
msgctxt "@label:button"
|
msgctxt "@label:button"
|
||||||
msgid "Report a bug"
|
msgid "Report a bug"
|
||||||
msgstr ""
|
msgstr "报告错误"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:83
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Let developers know that something is going wrong."
|
msgid "Let developers know that something is going wrong."
|
||||||
msgstr ""
|
msgstr "向开发人员报错。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90
|
||||||
msgctxt "@tooltip:button"
|
msgctxt "@tooltip:button"
|
||||||
msgid "Visit the Ultimaker website."
|
msgid "Visit the Ultimaker website."
|
||||||
msgstr ""
|
msgstr "访问 Ultimaker 网站。"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Cura.qml:257
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -4581,12 +4581,12 @@ msgstr "使用单个 Cura 实例"
|
|||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:576
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
msgid "Should the build plate be cleared before loading a new model in the single instance of Cura?"
|
||||||
msgstr ""
|
msgstr "是否应在清理构建板后再将新模型加载到单个 Cura 实例中?"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:582
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Clear buildplate before loading model into the single instance"
|
msgid "Clear buildplate before loading model into the single instance"
|
||||||
msgstr ""
|
msgstr "在清理构建板后再将模型加载到单个实例中"
|
||||||
|
|
||||||
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
#: /home/trin/Gedeeld/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:592
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -6158,12 +6158,12 @@ msgstr "版本自 4.0 升级到 4.1"
|
|||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
msgid "Upgrades configurations from Cura 4.11 to Cura 4.12."
|
||||||
msgstr ""
|
msgstr "将配置从 Cura 4.11 升级到 Cura 4.12。"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
#: VersionUpgrade/VersionUpgrade411to412/plugin.json
|
||||||
msgctxt "name"
|
msgctxt "name"
|
||||||
msgid "Version Upgrade 4.11 to 4.12"
|
msgid "Version Upgrade 4.11 to 4.12"
|
||||||
msgstr ""
|
msgstr "版本从 4.11 升级到 4.12"
|
||||||
|
|
||||||
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
|
||||||
msgctxt "description"
|
msgctxt "description"
|
||||||
|
@ -54,12 +54,8 @@ msgstr "开始 G-code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_start_gcode description"
|
msgctxt "machine_start_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very start - separated by \\n."
|
||||||
"G-code commands to be executed at the very start - separated by \n"
|
msgstr "在开始时执行的 G-code 命令 - 以 \\n 分行。"
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"在开始时执行的 G-code 命令 - 以 \n"
|
|
||||||
" 分行。"
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode label"
|
msgctxt "machine_end_gcode label"
|
||||||
@ -68,12 +64,8 @@ msgstr "结束 G-code"
|
|||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_end_gcode description"
|
msgctxt "machine_end_gcode description"
|
||||||
msgid ""
|
msgid "G-code commands to be executed at the very end - separated by \\n."
|
||||||
"G-code commands to be executed at the very end - separated by \n"
|
msgstr "在结束前执行的 G-code 命令 - 以 \\n 分行。"
|
||||||
"."
|
|
||||||
msgstr ""
|
|
||||||
"在结束前执行的 G-code 命令 - 以 \n"
|
|
||||||
" 分行。"
|
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material_guid label"
|
msgctxt "material_guid label"
|
||||||
@ -1733,7 +1725,7 @@ msgstr "填充图案"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "打印的填充材料的图案。直线和锯齿形填充交替在各层上变换方向,从而降低材料成本。每层都完整地打印网格、三角形、三六边形、立方体、八角形、四分之一立方体、十字和同心图案。螺旋二十四面体、立方体、四分之一立方体和八角形填充随每层变化,以使各方向的强度分布更均衡。闪电形填充尝试通过仅支撑物体的(内)顶部,将填充程度降至最低。因此,填充百分比仅在支撑模型所需的无论何种物体之下的一层“有效”。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1803,7 +1795,7 @@ msgstr "螺旋二十四面体"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "闪电形"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2022,42 +2014,42 @@ msgstr "支撑皮肤边缘的填充物的层数。"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "闪电形填充支撑角"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "决定闪电形填充层何时必须支撑其上方的任何物体。在给定的层厚度下测得的角度。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "闪电形填充悬垂角"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "决定闪电形填充层何时必须支撑其上方的模型。在给定的厚度下测得的角度。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "闪电形填充修剪角"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "对于修剪树形外端的情况,闪电形填充层与紧接其上的一层可存在的区别。在给定的厚度下测得的角度。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "闪电形填充矫直角"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "对于使树形平滑的情况,闪电形填充层与紧接其上的一层可存在的区别。在给定的厚度下测得的角度。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3252,7 +3244,7 @@ msgstr "所有"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "不在外表面上"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5206,7 +5198,7 @@ msgstr "最小模具宽度"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "模具外侧与模型外侧之间的最短距离。"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
|
@ -8,14 +8,14 @@ msgstr ""
|
|||||||
"Project-Id-Version: Cura 4.12\n"
|
"Project-Id-Version: Cura 4.12\n"
|
||||||
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
"Report-Msgid-Bugs-To: plugins@ultimaker.com\n"
|
||||||
"POT-Creation-Date: 2021-10-20 16:43+0000\n"
|
"POT-Creation-Date: 2021-10-20 16:43+0000\n"
|
||||||
"PO-Revision-Date: 2021-08-16 20:48+0800\n"
|
"PO-Revision-Date: 2021-10-31 12:13+0800\n"
|
||||||
"Last-Translator: Valen Chang <carf17771@gmail.com>\n"
|
"Last-Translator: Valen Chang <carf17771@gmail.com>\n"
|
||||||
"Language-Team: Valen Chang <carf17771@gmail.com>/Zhang Heh Ji <dinowchang@gmail.com>\n"
|
"Language-Team: Valen Chang <carf17771@gmail.com>\n"
|
||||||
"Language: zh_TW\n"
|
"Language: zh_TW\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.4.2\n"
|
"X-Generator: Poedit 3.0\n"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "machine_settings label"
|
msgctxt "machine_settings label"
|
||||||
@ -1278,12 +1278,12 @@ msgstr "啟用時,Z 接縫座標為相對於各個部分中心的值。關閉
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "top_bottom label"
|
msgctxt "top_bottom label"
|
||||||
msgid "Top/Bottom"
|
msgid "Top/Bottom"
|
||||||
msgstr "頂層"
|
msgstr "頂層/底層"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "top_bottom description"
|
msgctxt "top_bottom description"
|
||||||
msgid "Top/Bottom"
|
msgid "Top/Bottom"
|
||||||
msgstr "頂層"
|
msgstr "頂層/底層"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "roofing_extruder_nr label"
|
msgctxt "roofing_extruder_nr label"
|
||||||
@ -1438,7 +1438,7 @@ msgstr "將頂部/底部表層路徑相鄰的位置連接。同心模式時啟
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "skin_monotonic label"
|
msgctxt "skin_monotonic label"
|
||||||
msgid "Monotonic Top/Bottom Order"
|
msgid "Monotonic Top/Bottom Order"
|
||||||
msgstr "Monotonic列印 頂層/底層 順序"
|
msgstr "單一化列印 頂層/底層 順序"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "skin_monotonic description"
|
msgctxt "skin_monotonic description"
|
||||||
@ -1518,7 +1518,7 @@ msgstr "鋸齒狀"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "ironing_monotonic label"
|
msgctxt "ironing_monotonic label"
|
||||||
msgid "Monotonic Ironing Order"
|
msgid "Monotonic Ironing Order"
|
||||||
msgstr "Monotonous燙平順序"
|
msgstr "單一化燙平順序"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "ironing_monotonic description"
|
msgctxt "ironing_monotonic description"
|
||||||
@ -1733,7 +1733,7 @@ msgstr "填充列印樣式"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern description"
|
msgctxt "infill_pattern description"
|
||||||
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
msgid "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the (internal) roofs of the object. As such, the infill percentage is only 'valid' one layer below whatever it needs to support of the model."
|
||||||
msgstr ""
|
msgstr "列印填充樣式;直線型與鋸齒狀填充於層間交替方向,減少線材消耗;網格型、三角形、三角-六邊形混和、立方體、八面體、四分立方體、十字形、同心於每層間皆完整列印;螺旋形、立方體、四分立方體及八面體填充於每層一間進行改變,確保每個方向都有相同的強度分配,閃電形填充透過只支撐物件內層頂部來最小化填充,因此填充百分比只對於下一層才有效果."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option grid"
|
msgctxt "infill_pattern option grid"
|
||||||
@ -1753,7 +1753,7 @@ msgstr "三角形"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option trihexagon"
|
msgctxt "infill_pattern option trihexagon"
|
||||||
msgid "Tri-Hexagon"
|
msgid "Tri-Hexagon"
|
||||||
msgstr "三-六邊形"
|
msgstr "三角-六邊形混和"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option cubic"
|
msgctxt "infill_pattern option cubic"
|
||||||
@ -1803,7 +1803,7 @@ msgstr "螺旋形"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "infill_pattern option lightning"
|
msgctxt "infill_pattern option lightning"
|
||||||
msgid "Lightning"
|
msgid "Lightning"
|
||||||
msgstr ""
|
msgstr "閃電形"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "zig_zaggify_infill label"
|
msgctxt "zig_zaggify_infill label"
|
||||||
@ -2022,42 +2022,42 @@ msgstr "支撐表層邊緣的額外填充的層數。"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle label"
|
msgctxt "lightning_infill_support_angle label"
|
||||||
msgid "Lightning Infill Support Angle"
|
msgid "Lightning Infill Support Angle"
|
||||||
msgstr ""
|
msgstr "閃電形填充支撐堆疊角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_support_angle description"
|
msgctxt "lightning_infill_support_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
msgid "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer."
|
||||||
msgstr ""
|
msgstr "決定使用閃電形填充支撐時,層間堆疊的角度."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle label"
|
msgctxt "lightning_infill_overhang_angle label"
|
||||||
msgid "Lightning Infill Overhang Angle"
|
msgid "Lightning Infill Overhang Angle"
|
||||||
msgstr ""
|
msgstr "閃電形填充突出角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_overhang_angle description"
|
msgctxt "lightning_infill_overhang_angle description"
|
||||||
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
msgid "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "決定使用閃電形填充支撐時,層間堆疊的角度."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle label"
|
msgctxt "lightning_infill_prune_angle label"
|
||||||
msgid "Lightning Infill Prune Angle"
|
msgid "Lightning Infill Prune Angle"
|
||||||
msgstr ""
|
msgstr "閃電形填充生成角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_prune_angle description"
|
msgctxt "lightning_infill_prune_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the pruning of the outer extremities of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "閃電形填充層與其附著物間的生成角度."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle label"
|
msgctxt "lightning_infill_straightening_angle label"
|
||||||
msgid "Lightning Infill Straightening Angle"
|
msgid "Lightning Infill Straightening Angle"
|
||||||
msgstr ""
|
msgstr "閃電形填充層間垂直堆疊角度"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "lightning_infill_straightening_angle description"
|
msgctxt "lightning_infill_straightening_angle description"
|
||||||
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
msgid "The difference a lightning infill layer can have with the one immediately above w.r.t the smoothing of trees. Measured in the angle given the thickness."
|
||||||
msgstr ""
|
msgstr "設定閃電形填充層間垂直堆疊角度,調整樹狀堆疊的平滑度."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "material label"
|
msgctxt "material label"
|
||||||
@ -3252,7 +3252,7 @@ msgstr "所有"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option no_outer_surfaces"
|
msgctxt "retraction_combing option no_outer_surfaces"
|
||||||
msgid "Not on Outer Surface"
|
msgid "Not on Outer Surface"
|
||||||
msgstr ""
|
msgstr "不在外表面上"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "retraction_combing option noskin"
|
msgctxt "retraction_combing option noskin"
|
||||||
@ -5206,7 +5206,7 @@ msgstr "最小模具寬度"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_width description"
|
msgctxt "mold_width description"
|
||||||
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
msgid "The minimal distance between the outside of the mold and the outside of the model."
|
||||||
msgstr ""
|
msgstr "模具外部與模型外部的最小距離."
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "mold_roof_height label"
|
msgctxt "mold_roof_height label"
|
||||||
@ -5376,7 +5376,7 @@ msgstr "鋸齒狀"
|
|||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "roofing_monotonic label"
|
msgctxt "roofing_monotonic label"
|
||||||
msgid "Monotonic Top Surface Order"
|
msgid "Monotonic Top Surface Order"
|
||||||
msgstr "頂層Monotonic列印順序"
|
msgstr "頂層表面單一化列印順序"
|
||||||
|
|
||||||
#: fdmprinter.def.json
|
#: fdmprinter.def.json
|
||||||
msgctxt "roofing_monotonic description"
|
msgctxt "roofing_monotonic description"
|
||||||
|
Before Width: | Height: | Size: 573 KiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 392 KiB After Width: | Height: | Size: 409 KiB |
Before Width: | Height: | Size: 796 KiB After Width: | Height: | Size: 392 KiB |
@ -6,7 +6,7 @@ import QtQuick.Controls 2.3
|
|||||||
import QtQuick.Controls.Styles 1.4
|
import QtQuick.Controls.Styles 1.4
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.4 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
|
|
||||||
@ -50,10 +50,16 @@ Cura.ExpandablePopup
|
|||||||
model: extrudersModel
|
model: extrudersModel
|
||||||
delegate: Item
|
delegate: Item
|
||||||
{
|
{
|
||||||
|
id: extruderItem
|
||||||
|
|
||||||
Layout.preferredWidth: Math.round(parent.width / extrudersModel.count)
|
Layout.preferredWidth: Math.round(parent.width / extrudersModel.count)
|
||||||
Layout.maximumWidth: Math.round(parent.width / extrudersModel.count)
|
Layout.maximumWidth: Math.round(parent.width / extrudersModel.count)
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
|
property var extruderStack: Cura.MachineManager.activeMachine.extruders[model.index]
|
||||||
|
property bool valueWarning: !Cura.ExtruderManager.getExtruderHasQualityForMaterial(extruderStack)
|
||||||
|
property bool valueError: Cura.ContainerManager.getContainerMetaDataEntry(extruderStack.material.id, "compatible", "") != "True"
|
||||||
|
|
||||||
// Extruder icon. Shows extruder index and has the same color as the active material.
|
// Extruder icon. Shows extruder index and has the same color as the active material.
|
||||||
Cura.ExtruderIcon
|
Cura.ExtruderIcon
|
||||||
{
|
{
|
||||||
@ -63,6 +69,113 @@ Cura.ExpandablePopup
|
|||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MouseArea // Connection status tooltip hover area
|
||||||
|
{
|
||||||
|
id: tooltipHoverArea
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: tooltip.text != ""
|
||||||
|
acceptedButtons: Qt.NoButton // react to hover only, don't steal clicks
|
||||||
|
|
||||||
|
onEntered:
|
||||||
|
{
|
||||||
|
base.mouseArea.entered() // we want both this and the outer area to be entered
|
||||||
|
tooltip.show()
|
||||||
|
}
|
||||||
|
onExited: { tooltip.hide() }
|
||||||
|
}
|
||||||
|
|
||||||
|
Cura.ToolTip
|
||||||
|
{
|
||||||
|
id: tooltip
|
||||||
|
x: 0
|
||||||
|
y: parent.height + UM.Theme.getSize("default_margin").height
|
||||||
|
width: UM.Theme.getSize("tooltip").width
|
||||||
|
targetPoint: Qt.point(Math.round(extruderIcon.width / 2), 0)
|
||||||
|
text:
|
||||||
|
{
|
||||||
|
if (!model.enabled)
|
||||||
|
{
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
if (extruderItem.valueError)
|
||||||
|
{
|
||||||
|
return catalog.i18nc("@tooltip", "The configuration of this extruder is not allowed, and prohibits slicing.")
|
||||||
|
}
|
||||||
|
if (extruderItem.valueWarning)
|
||||||
|
{
|
||||||
|
return catalog.i18nc("@tooltip", "There are no profiles matching the configuration of this extruder.")
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Warning icon that indicates if no qualities are available for the variant/material combination for this extruder
|
||||||
|
UM.RecolorImage
|
||||||
|
{
|
||||||
|
id: badge
|
||||||
|
anchors
|
||||||
|
{
|
||||||
|
top: parent.top
|
||||||
|
topMargin: - Math.round(height * 1 / 6)
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: extruderIcon.width - Math.round(width * 5 / 6)
|
||||||
|
}
|
||||||
|
|
||||||
|
width: UM.Theme.getSize("icon_indicator").width
|
||||||
|
height: UM.Theme.getSize("icon_indicator").height
|
||||||
|
|
||||||
|
visible: model.enabled && (extruderItem.valueError || extruderItem.valueWarning)
|
||||||
|
|
||||||
|
source:
|
||||||
|
{
|
||||||
|
if (extruderItem.valueError)
|
||||||
|
{
|
||||||
|
return UM.Theme.getIcon("ErrorBadge", "low")
|
||||||
|
}
|
||||||
|
if (extruderItem.valueWarning)
|
||||||
|
{
|
||||||
|
return UM.Theme.getIcon("WarningBadge", "low")
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
color:
|
||||||
|
{
|
||||||
|
if (extruderItem.valueError)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("error")
|
||||||
|
}
|
||||||
|
if (extruderItem.valueWarning)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("warning")
|
||||||
|
}
|
||||||
|
return "transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make a themable circle in the background so we can change it in other themes
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
id: iconBackground
|
||||||
|
anchors.centerIn: parent
|
||||||
|
width: parent.width - 1.5 //1.5 pixels smaller, (at least sqrt(2), regardless of screen pixel scale) so that the circle doesn't show up behind the icon due to anti-aliasing.
|
||||||
|
height: parent.height - 1.5
|
||||||
|
radius: width / 2
|
||||||
|
z: parent.z - 1
|
||||||
|
color:
|
||||||
|
{
|
||||||
|
if (extruderItem.valueError)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("error_badge_background")
|
||||||
|
}
|
||||||
|
if (extruderItem.valueWarning)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("warning_badge_background")
|
||||||
|
}
|
||||||
|
return "transparent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Column
|
Column
|
||||||
{
|
{
|
||||||
opacity: model.enabled ? 1 : UM.Theme.getColor("extruder_disabled").a
|
opacity: model.enabled ? 1 : UM.Theme.getColor("extruder_disabled").a
|
||||||
|
@ -51,7 +51,6 @@ Menu
|
|||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
UM.Preferences.setValue("general/camera_perspective_mode", "perspective")
|
UM.Preferences.setValue("general/camera_perspective_mode", "perspective")
|
||||||
checked = cameraViewMenu.cameraMode == "perspective"
|
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
}
|
}
|
||||||
@ -63,7 +62,6 @@ Menu
|
|||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
UM.Preferences.setValue("general/camera_perspective_mode", "orthographic")
|
UM.Preferences.setValue("general/camera_perspective_mode", "orthographic")
|
||||||
checked = cameraViewMenu.cameraMode == "orthographic"
|
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
exclusiveGroup: group
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ UM.PreferencesPage
|
|||||||
Component.onCompleted:
|
Component.onCompleted:
|
||||||
{
|
{
|
||||||
append({ text: "English", code: "en_US" })
|
append({ text: "English", code: "en_US" })
|
||||||
append({ text: "Čeština", code: "cs_CZ" })
|
// append({ text: "Čeština", code: "cs_CZ" })
|
||||||
append({ text: "Deutsch", code: "de_DE" })
|
append({ text: "Deutsch", code: "de_DE" })
|
||||||
append({ text: "Español", code: "es_ES" })
|
append({ text: "Español", code: "es_ES" })
|
||||||
//Finnish is disabled for being incomplete: append({ text: "Suomi", code: "fi_FI" })
|
//Finnish is disabled for being incomplete: append({ text: "Suomi", code: "fi_FI" })
|
||||||
|
@ -198,7 +198,7 @@ Window
|
|||||||
name: "idle"
|
name: "idle"
|
||||||
when: typeof syncModel === "undefined" || syncModel.exportUploadStatus == "idle" || syncModel.exportUploadStatus == "uploading"
|
when: typeof syncModel === "undefined" || syncModel.exportUploadStatus == "idle" || syncModel.exportUploadStatus == "uploading"
|
||||||
PropertyChanges { target: printerListHeader; text: catalog.i18nc("@title:header", "The following printers will receive the new material profiles:") }
|
PropertyChanges { target: printerListHeader; text: catalog.i18nc("@title:header", "The following printers will receive the new material profiles:") }
|
||||||
PropertyChanges { target: printerListHeaderIcon; status: UM.StatusIcon.Status.NEUTRAL }
|
PropertyChanges { target: printerListHeaderIcon; status: UM.StatusIcon.Status.NEUTRAL; width: 0 }
|
||||||
},
|
},
|
||||||
State
|
State
|
||||||
{
|
{
|
||||||
@ -242,8 +242,8 @@ Window
|
|||||||
id: syncStatusLabel
|
id: syncStatusLabel
|
||||||
|
|
||||||
width: parent.width - UM.Theme.getSize("default_margin").width - troubleshootingLink.width
|
width: parent.width - UM.Theme.getSize("default_margin").width - troubleshootingLink.width
|
||||||
anchors.verticalCenter: troubleshootingLink.verticalCenter
|
|
||||||
|
|
||||||
|
wrapMode: Text.Wrap
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
visible: text !== ""
|
visible: text !== ""
|
||||||
text: ""
|
text: ""
|
||||||
@ -256,7 +256,6 @@ Window
|
|||||||
text: catalog.i18nc("@button", "Troubleshooting")
|
text: catalog.i18nc("@button", "Troubleshooting")
|
||||||
visible: typeof syncModel !== "undefined" && syncModel.exportUploadStatus == "error"
|
visible: typeof syncModel !== "undefined" && syncModel.exportUploadStatus == "error"
|
||||||
iconSource: UM.Theme.getIcon("LinkExternal")
|
iconSource: UM.Theme.getIcon("LinkExternal")
|
||||||
Layout.preferredHeight: height
|
|
||||||
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
|
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -381,8 +380,15 @@ Window
|
|||||||
footer: Item
|
footer: Item
|
||||||
{
|
{
|
||||||
width: printerListScrollView.width
|
width: printerListScrollView.width
|
||||||
height: visible ? UM.Theme.getSize("card").height + UM.Theme.getSize("default_margin").height : 0
|
height: {
|
||||||
visible: includeOfflinePrinterList.count - cloudPrinterList.count > 0
|
if(!visible)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
let h = UM.Theme.getSize("card").height + printerListTroubleshooting.height + UM.Theme.getSize("default_margin").height * 2; //1 margin between content and footer, 1 for troubleshooting link.
|
||||||
|
return h;
|
||||||
|
}
|
||||||
|
visible: includeOfflinePrinterList.count - cloudPrinterList.count > 0 && typeof syncModel !== "undefined" && syncModel.exportUploadStatus === "idle"
|
||||||
Rectangle
|
Rectangle
|
||||||
{
|
{
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
@ -392,13 +398,12 @@ Window
|
|||||||
border.width: UM.Theme.getSize("default_lining").width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
|
|
||||||
RowLayout
|
Row
|
||||||
{
|
{
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
fill: parent
|
fill: parent
|
||||||
leftMargin: (parent.height - infoIcon.height) / 2 //Same margin on the left as top and bottom.
|
margins: Math.round(UM.Theme.getSize("card").height - UM.Theme.getSize("machine_selector_icon").width) / 2 //Same margin as in other cards.
|
||||||
rightMargin: (parent.height - infoIcon.height) / 2
|
|
||||||
}
|
}
|
||||||
spacing: UM.Theme.getSize("default_margin").width
|
spacing: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
@ -407,33 +412,50 @@ Window
|
|||||||
id: infoIcon
|
id: infoIcon
|
||||||
width: UM.Theme.getSize("section_icon").width
|
width: UM.Theme.getSize("section_icon").width
|
||||||
height: width
|
height: width
|
||||||
Layout.alignment: Qt.AlignVCenter
|
//Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
|
||||||
|
|
||||||
status: UM.StatusIcon.Status.WARNING
|
status: UM.StatusIcon.Status.WARNING
|
||||||
}
|
}
|
||||||
|
|
||||||
Label
|
Column
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?")
|
//Fill the total width. Can't use layouts because we need the anchors for vertical alignment.
|
||||||
+ "\n"
|
width: parent.width - infoIcon.width - refreshListButton.width - parent.spacing * 2
|
||||||
+ catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.")
|
|
||||||
font: UM.Theme.getFont("medium")
|
|
||||||
color: UM.Theme.getColor("text")
|
|
||||||
elide: Text.ElideRight
|
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
spacing: UM.Theme.getSize("default_margin").height
|
||||||
Layout.fillWidth: true
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: printersMissingText
|
||||||
|
text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?")
|
||||||
|
+ "\n"
|
||||||
|
+ catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.")
|
||||||
|
font: UM.Theme.getFont("medium")
|
||||||
|
color: UM.Theme.getColor("text")
|
||||||
|
elide: Text.ElideRight
|
||||||
|
}
|
||||||
|
Cura.TertiaryButton
|
||||||
|
{
|
||||||
|
id: printerListTroubleshooting
|
||||||
|
leftPadding: 0 //Want to visually align this to the text.
|
||||||
|
|
||||||
|
text: catalog.i18nc("@button", "Troubleshooting")
|
||||||
|
iconSource: UM.Theme.getIcon("LinkExternal")
|
||||||
|
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=sync-material-wizard-troubleshoot-cloud-printer")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.SecondaryButton
|
Cura.SecondaryButton
|
||||||
{
|
{
|
||||||
id: refreshListButton
|
id: refreshListButton
|
||||||
|
//Fake anchor.verticalCenter: printersMissingText.verticalCenter, since we can't anchor to things that aren't siblings.
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: Math.round(printersMissingText.height / 2 - height / 2)
|
||||||
|
|
||||||
text: catalog.i18nc("@button", "Refresh List")
|
text: catalog.i18nc("@button", "Refresh List")
|
||||||
iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
|
iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
Layout.preferredWidth: width
|
|
||||||
|
|
||||||
onClicked: Cura.API.account.sync(true)
|
onClicked: Cura.API.account.sync(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,7 @@ Item
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the setting does not have a limit_to_extruder property (or is -1), use the active stack.
|
// If the setting does not have a limit_to_extruder property (or is -1), use the active stack.
|
||||||
if (globalPropertyProvider.properties.limit_to_extruder === null || String(globalPropertyProvider.properties.limit_to_extruder) === "-1")
|
if (globalPropertyProvider.properties.limit_to_extruder === null || globalPropertyProvider.properties.limit_to_extruder === "-1")
|
||||||
{
|
{
|
||||||
return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0
|
return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0
|
||||||
}
|
}
|
||||||
@ -283,7 +283,7 @@ Item
|
|||||||
{
|
{
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, String(globalPropertyProvider.properties.limit_to_extruder)).indexOf(definition.key) >= 0
|
return Cura.SettingInheritanceManager.hasOverrides(definition.key, globalPropertyProvider.properties.limit_to_extruder)
|
||||||
}
|
}
|
||||||
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
@ -302,7 +302,7 @@ Item
|
|||||||
{
|
{
|
||||||
target: provider
|
target: provider
|
||||||
property: "containerStackId"
|
property: "containerStackId"
|
||||||
when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder !== null && inheritStackProvider.properties.limit_to_extruder >= 0);
|
when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder !== undefined && inheritStackProvider.properties.limit_to_extruder >= 0);
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
// Associate this binding with Cura.MachineManager.activeMachine.id in the beginning so this
|
// Associate this binding with Cura.MachineManager.activeMachine.id in the beginning so this
|
||||||
@ -315,10 +315,10 @@ Item
|
|||||||
//Not settable per extruder or there only is global, so we must pick global.
|
//Not settable per extruder or there only is global, so we must pick global.
|
||||||
return contents.activeMachineId
|
return contents.activeMachineId
|
||||||
}
|
}
|
||||||
if (inheritStackProvider.properties.limit_to_extruder !== null && inheritStackProvider.properties.limit_to_extruder >= 0)
|
if (inheritStackProvider.properties.limit_to_extruder !== undefined && inheritStackProvider.properties.limit_to_extruder >= 0)
|
||||||
{
|
{
|
||||||
//We have limit_to_extruder, so pick that stack.
|
//We have limit_to_extruder, so pick that stack.
|
||||||
return Cura.ExtruderManager.extruderIds[String(inheritStackProvider.properties.limit_to_extruder)];
|
return Cura.ExtruderManager.extruderIds[inheritStackProvider.properties.limit_to_extruder];
|
||||||
}
|
}
|
||||||
if (Cura.ExtruderManager.activeExtruderStackId)
|
if (Cura.ExtruderManager.activeExtruderStackId)
|
||||||
{
|
{
|
||||||
|
@ -14,3 +14,4 @@ global_quality = True
|
|||||||
support_structure = tree
|
support_structure = tree
|
||||||
support_type = buildplate
|
support_type = buildplate
|
||||||
support_enable = True
|
support_enable = True
|
||||||
|
support_top_distance = 0.4
|