Merge branch 'Ultimaker:master' into master

This commit is contained in:
goofoo3d 2021-11-26 15:48:58 +08:00 committed by GitHub
commit d2948dd8c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
318 changed files with 8299 additions and 2644 deletions

View File

@ -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"
... ...

View File

@ -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.
![Screenshot](screenshot.png) ![Screenshot](cura-logo.PNG)
Logging Issues Logging Issues
------------ ------------

BIN
cura-logo.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 KiB

View File

@ -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:

View File

@ -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)

View File

@ -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")
try:
adhesion_stack = self._global_container_stack.extruderList[int(adhesion_extruder)] 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")

View File

@ -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

View File

@ -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

View File

@ -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"
} }
} }

View File

@ -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.

View File

@ -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.
""" """
try:
check_token_url = "{}/check-token".format(self._settings.OAUTH_SERVER_URL) check_token_url = "{}/check-token".format(self._settings.OAUTH_SERVER_URL)
Logger.log("d", "Checking the access token for [%s]", check_token_url) Logger.log("d", "Checking the access token for [%s]", check_token_url)
token_request = requests.get(check_token_url, headers = { headers = {
"Authorization": "Bearer {}".format(access_token) "Authorization": f"Bearer {access_token}"
}) }
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout): HttpRequestManager.getInstance().get(
# Connection was suddenly dropped. Nothing we can do about that. check_token_url,
Logger.logException("w", "Something failed while attempting to parse the JWT token") headers_dict = headers,
return None callback = lambda reply: self._parseUserProfile(reply, success_callback, failed_callback),
if token_request.status_code not in (200, 201): error_callback = lambda _, _2: failed_callback() if failed_callback is not None else None
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.

View File

@ -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).

View File

@ -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.
try: def store_profile(profile: Optional["UserProfile"]) -> None:
self._user_profile = self._parseJWT() if profile is not None:
except requests.exceptions.ConnectionError: self._user_profile = profile
# Unable to get connection, can't login. if callback is not None:
Logger.logException("w", "Unable to validate user data with the remote server.") callback(profile)
return None elif self._auth_data:
# If there is no user profile from the JWT, we have to log in again.
if not self._user_profile and self._auth_data: Logger.warning("The user profile could not be loaded. The user must log in again!")
# 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() self.deleteAuthData()
return None if callback is not None:
callback(None)
else:
if callback is not None:
callback(None)
return self._user_profile self._parseJWT(callback = store_profile)
def _parseJWT(self) -> Optional["UserProfile"]: def _parseJWT(self, callback: Callable[[Optional["UserProfile"]], None]) -> None:
"""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.
:return: UserProfile if it was able to parse, None otherwise. :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.
""" """
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
if user_data:
# If the profile was found, we return it immediately.
return user_data
# The JWT was expired or invalid and we should request a new one. # The JWT was expired or invalid and we should request a new one.
if self._auth_data.refresh_token is None: if self._auth_data is None or self._auth_data.refresh_token is None:
Logger.log("w", "There was no refresh token in the auth data.") Logger.warning("There was no refresh token in the auth data.")
return None callback(None)
self._auth_data = self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token) return
if not self._auth_data or self._auth_data.access_token is None:
Logger.log("w", "Unable to use the refresh token to get a new access token.") def process_auth_data(auth_data: AuthenticationResponse) -> None:
# The token could not be refreshed using the refresh token. We should login again. if auth_data.access_token is None:
return None Logger.warning("Unable to use the refresh token to get a new access token.")
# Ensure it gets stored as otherwise we only have it in memory. The stored refresh token has been deleted callback(None)
# from the server already. Do not store the auth_data if we could not get new auth_data (eg due to a return
# network error), since this would cause an infinite loop trying to get new auth-data # Ensure it gets stored as otherwise we only have it in memory. The stored refresh token has been
if self._auth_data.success: # deleted from the server already. Do not store the auth_data if we could not get new auth_data (e.g.
self._storeAuthData(self._auth_data) # due to a network error), since this would cause an infinite loop trying to get new auth-data.
return self._auth_helpers.parseJWT(self._auth_data.access_token) if auth_data.success:
self._storeAuthData(auth_data)
self._auth_helpers.checkToken(auth_data.access_token, callback, lambda: callback(None))
self._auth_helpers.getAccessTokenUsingRefreshToken(self._auth_data.refresh_token, process_auth_data)
self._auth_helpers.checkToken(self._auth_data.access_token, check_user_profile, lambda: check_user_profile(None))
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,14 +161,21 @@ 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)
def process_auth_data(response: AuthenticationResponse) -> None:
if response.success: if response.success:
self._storeAuthData(response) self._storeAuthData(response)
self.onAuthStateChanged.emit(logged_in = True) self.onAuthStateChanged.emit(logged_in = True)
else: else:
Logger.log("w", "Failed to get a new access token from the server.") Logger.warning("Failed to get a new access token from the server.")
self.onAuthStateChanged.emit(logged_in = False) 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. # Also check if we can actually get the user profile information.
user_profile = self.getUserProfile() def callback(profile: Optional["UserProfile"]) -> None:
if user_profile is not None: if profile is not None:
self.onAuthStateChanged.emit(logged_in = True) self.onAuthStateChanged.emit(logged_in = True)
Logger.log("d", "Auth data was successfully loaded") Logger.debug("Auth data was successfully loaded")
else: else:
if self._unable_to_get_data_message is not None: if self._unable_to_get_data_message is not None:
self._unable_to_get_data_message.hide() self._unable_to_get_data_message.show()
else:
self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info", self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info",
"Unable to reach the Ultimaker account server."), "Unable to reach the Ultimaker account server."),
title = i18n_catalog.i18nc("@info:title", "Warning"), title = i18n_catalog.i18nc("@info:title", "Log-in failed"),
message_type = Message.MessageType.ERROR) message_type = Message.MessageType.ERROR)
Logger.log("w", "Unable to load auth data from preferences") Logger.warning("Unable to get user profile using auth data from preferences.")
self._unable_to_get_data_message.show() 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")

View File

@ -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

View File

@ -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.

View File

@ -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()

View File

@ -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:

View File

@ -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"

View File

@ -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.

View File

@ -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:

View File

@ -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()

View File

@ -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]:

View File

@ -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":

View File

@ -489,16 +489,15 @@ 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.
# Push the filament back.
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"
# 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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -124,6 +124,7 @@
"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 },

View File

@ -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],

View File

@ -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 },

View File

@ -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 },

View File

@ -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
}, },

View File

@ -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],

View File

@ -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",

View File

@ -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":

View File

@ -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":

View File

@ -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],

View File

@ -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"

View File

@ -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]"
} }
} }
} }

View File

@ -95,9 +95,6 @@
}, },
"skin_monotonic" : { "skin_monotonic" : {
"value": true "value": true
},
"top_bottom_pattern" : {
"value": "'zigzag'"
} }
} }
} }

View File

@ -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" },

View File

@ -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" },

View File

@ -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" },

View 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"
}
}

View 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"
}
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}

View File

@ -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"
}
}
}

View 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"
}
}
}

View 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"
}
}
}

View File

@ -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],

View 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 }
}
}

View File

@ -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 }
}
}

View File

@ -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 }
}
}

View File

@ -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 }
}
}

View File

@ -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 }
}
}

View File

@ -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 }
}
}

View File

@ -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 }
}
}

File diff suppressed because it is too large Load Diff

View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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 allavvio, separati da \\n."
"."
msgstr ""
"I comandi codice G da eseguire allavvio, 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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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.0dan 4.1e 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"

View File

@ -53,12 +53,8 @@ msgstr "G-codeu 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-codeu 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ıı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"

View File

@ -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"

View File

@ -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"

File diff suppressed because it is too large Load Diff

View File

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 KiB

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 796 KiB

After

Width:  |  Height:  |  Size: 392 KiB

View File

@ -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

View File

@ -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
} }

View File

@ -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" })

View File

@ -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
} }
Column
{
//Fill the total width. Can't use layouts because we need the anchors for vertical alignment.
width: parent.width - infoIcon.width - refreshListButton.width - parent.spacing * 2
spacing: UM.Theme.getSize("default_margin").height
Label Label
{ {
id: printersMissingText
text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?") text: catalog.i18nc("@text Asking the user whether printers are missing in a list.", "Printers missing?")
+ "\n" + "\n"
+ catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.") + catalog.i18nc("@text", "Make sure all your printers are turned ON and connected to Digital Factory.")
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")
elide: Text.ElideRight elide: Text.ElideRight
}
Cura.TertiaryButton
{
id: printerListTroubleshooting
leftPadding: 0 //Want to visually align this to the text.
Layout.alignment: Qt.AlignVCenter text: catalog.i18nc("@button", "Troubleshooting")
Layout.fillWidth: true 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)
} }
} }

View File

@ -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

View File

@ -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)
{ {

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More