mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-09-27 08:53:19 +08:00
Merge branch 'master-2019-12-17' into update_imade3d_jellybox_support
# Conflicts (resolved): # resources/quality/imade3d_jellybox/PETG/jbo_generic_petg_0.4_coarse.inst.cfg # resources/quality/imade3d_jellybox/PLA/jbo_generic_pla_0.4_coarse.inst.cfg # resources/quality/imade3d_jellybox/imade3d_jellybox_coarse.inst.cfg
This commit is contained in:
commit
13df255477
15
.github/ISSUE_TEMPLATE/bug-report.md
vendored
15
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@ -8,11 +8,11 @@ assignees: ''
|
||||
---
|
||||
|
||||
<!--
|
||||
The following template is useful for filing new issues. Processing an issue will go much faster when this is filled out, and issues which do not use this template WILL BE REMOVED.
|
||||
Processing an issue will go much faster when this is filled out, and issues which do not use this template WILL BE REMOVED and no fix will be considered!
|
||||
|
||||
Before filing, PLEASE check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment.
|
||||
|
||||
Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do not write things like "Request:" or "[BUG]" in the title; this is what labels are for.
|
||||
Also, please note the application version in the title of the issue. For example: "[3.2.1] Cannot connect to 3rd-party printer". Please do NOT write things like "Request:" or "[BUG]" in the title; this is what labels are for.
|
||||
|
||||
It is also helpful to attach a project (.3mf or .curaproject) file and Cura log file so we can debug issues quicker. Information about how to find the log file can be found at https://github.com/Ultimaker/Cura#logging-issues
|
||||
|
||||
@ -21,7 +21,7 @@ To upload a project, try changing the extension to e.g. .curaproject.3mf.zip so
|
||||
Thank you for using Cura!
|
||||
-->
|
||||
|
||||
**Application Version**
|
||||
**Application version**
|
||||
<!-- The version of the application this issue occurs with -->
|
||||
|
||||
**Platform**
|
||||
@ -30,11 +30,14 @@ Thank you for using Cura!
|
||||
**Printer**
|
||||
<!-- Which printer was selected in Cura? If possible, please attach project file as .curaproject.3mf.zip -->
|
||||
|
||||
**Actual Results**
|
||||
**Reproduction steps**
|
||||
<!-- How did you encounter the bug? -->
|
||||
|
||||
**Actual results**
|
||||
<!-- What happens after the above steps have been followed -->
|
||||
|
||||
**Expected results**
|
||||
<!-- What should happen after the above steps have been followed -->
|
||||
|
||||
**Additional Information**
|
||||
<!-- Extra information relevant to the issue, like screenshots -->
|
||||
**Additional information**
|
||||
<!-- Extra information relevant to the issue, like screenshots. Don't forget to attach the log files with this issue report. -->
|
||||
|
@ -20,11 +20,12 @@ set(CURA_APP_NAME "cura" CACHE STRING "Short name of Cura, used for configuratio
|
||||
set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura")
|
||||
set(CURA_VERSION "master" CACHE STRING "Version name of Cura")
|
||||
set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'")
|
||||
set(CURA_SDK_VERSION "" CACHE STRING "SDK version of Cura")
|
||||
set(CURA_CLOUD_API_ROOT "" CACHE STRING "Alternative Cura cloud API root")
|
||||
set(CURA_CLOUD_API_VERSION "" CACHE STRING "Alternative Cura cloud API version")
|
||||
set(CURA_CLOUD_ACCOUNT_API_ROOT "" CACHE STRING "Alternative Cura cloud account API version")
|
||||
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cura.desktop.in ${CMAKE_BINARY_DIR}/cura.desktop @ONLY)
|
||||
|
||||
configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY)
|
||||
|
||||
|
||||
|
@ -42,9 +42,7 @@ try:
|
||||
except ImportError:
|
||||
CuraDebugMode = DEFAULT_CURA_DEBUG_MODE
|
||||
|
||||
try:
|
||||
from cura.CuraVersion import CuraSDKVersion # type: ignore
|
||||
if CuraSDKVersion == "":
|
||||
CuraSDKVersion = DEFAULT_CURA_SDK_VERSION
|
||||
except ImportError:
|
||||
CuraSDKVersion = DEFAULT_CURA_SDK_VERSION
|
||||
# Each release has a fixed SDK version coupled with it. It doesn't make sense to make it configurable because, for
|
||||
# example Cura 3.2 with SDK version 6.1 will not work. So the SDK version is hard-coded here and left out of the
|
||||
# CuraVersion.py.in template.
|
||||
CuraSDKVersion = "6.1.0"
|
||||
|
@ -1,12 +1,18 @@
|
||||
#Copyright (c) 2019 Ultimaker B.V.
|
||||
#Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import numpy
|
||||
import copy
|
||||
from typing import Optional, Tuple, TYPE_CHECKING
|
||||
|
||||
from UM.Math.Polygon import Polygon
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
|
||||
## Polygon representation as an array for use with Arrange
|
||||
class ShapeArray:
|
||||
def __init__(self, arr, offset_x, offset_y, scale = 1):
|
||||
def __init__(self, arr: numpy.array, offset_x: float, offset_y: float, scale: float = 1) -> None:
|
||||
self.arr = arr
|
||||
self.offset_x = offset_x
|
||||
self.offset_y = offset_y
|
||||
@ -16,7 +22,7 @@ class ShapeArray:
|
||||
# \param vertices
|
||||
# \param scale scale the coordinates
|
||||
@classmethod
|
||||
def fromPolygon(cls, vertices, scale = 1):
|
||||
def fromPolygon(cls, vertices: numpy.array, scale: float = 1) -> "ShapeArray":
|
||||
# scale
|
||||
vertices = vertices * scale
|
||||
# flip y, x -> x, y
|
||||
@ -42,7 +48,7 @@ class ShapeArray:
|
||||
# \param min_offset offset for the offset ShapeArray
|
||||
# \param scale scale the coordinates
|
||||
@classmethod
|
||||
def fromNode(cls, node, min_offset, scale = 0.5, include_children = False):
|
||||
def fromNode(cls, node: "SceneNode", min_offset: float, scale: float = 0.5, include_children: bool = False) -> Tuple[Optional["ShapeArray"], Optional["ShapeArray"]]:
|
||||
transform = node._transformation
|
||||
transform_x = transform._data[0][3]
|
||||
transform_y = transform._data[2][3]
|
||||
@ -88,7 +94,7 @@ class ShapeArray:
|
||||
# \param shape numpy format shape, [x-size, y-size]
|
||||
# \param vertices
|
||||
@classmethod
|
||||
def arrayFromPolygon(cls, shape, vertices):
|
||||
def arrayFromPolygon(cls, shape: Tuple[int, int], vertices: numpy.array) -> numpy.array:
|
||||
base_array = numpy.zeros(shape, dtype = numpy.int32) # Initialize your array of zeros
|
||||
|
||||
fill = numpy.ones(base_array.shape) * True # Initialize boolean array defining shape fill
|
||||
@ -111,9 +117,9 @@ class ShapeArray:
|
||||
# \param p2 2-tuple with x, y for point 2
|
||||
# \param base_array boolean array to project the line on
|
||||
@classmethod
|
||||
def _check(cls, p1, p2, base_array):
|
||||
def _check(cls, p1: numpy.array, p2: numpy.array, base_array: numpy.array) -> bool:
|
||||
if p1[0] == p2[0] and p1[1] == p2[1]:
|
||||
return
|
||||
return False
|
||||
idxs = numpy.indices(base_array.shape) # Create 3D array of indices
|
||||
|
||||
p1 = p1.astype(float)
|
||||
@ -131,5 +137,4 @@ class ShapeArray:
|
||||
|
||||
max_col_idx = (idxs[0] - p1[0]) / (p2[0] - p1[0]) * (p2[1] - p1[1]) + p1[1]
|
||||
sign = numpy.sign(p2[0] - p1[0])
|
||||
return idxs[1] * sign <= max_col_idx * sign
|
||||
|
||||
return idxs[1] * sign <= max_col_idx * sign
|
@ -727,48 +727,17 @@ class BuildVolume(SceneNode):
|
||||
|
||||
self._error_areas = []
|
||||
|
||||
extruder_manager = ExtruderManager.getInstance()
|
||||
used_extruders = extruder_manager.getUsedExtruderStacks()
|
||||
used_extruders = ExtruderManager.getInstance().getUsedExtruderStacks()
|
||||
disallowed_border_size = self.getEdgeDisallowedSize()
|
||||
|
||||
if not used_extruders:
|
||||
# If no extruder is used, assume that the active extruder is used (else nothing is drawn)
|
||||
if extruder_manager.getActiveExtruderStack():
|
||||
used_extruders = [extruder_manager.getActiveExtruderStack()]
|
||||
else:
|
||||
used_extruders = [self._global_container_stack]
|
||||
|
||||
result_areas = self._computeDisallowedAreasStatic(disallowed_border_size, used_extruders) #Normal machine disallowed areas can always be added.
|
||||
result_areas = self._computeDisallowedAreasStatic(disallowed_border_size, used_extruders) # Normal machine disallowed areas can always be added.
|
||||
prime_areas = self._computeDisallowedAreasPrimeBlob(disallowed_border_size, used_extruders)
|
||||
result_areas_no_brim = self._computeDisallowedAreasStatic(0, used_extruders) #Where the priming is not allowed to happen. This is not added to the result, just for collision checking.
|
||||
prime_disallowed_areas = copy.deepcopy(result_areas_no_brim)
|
||||
result_areas_no_brim = self._computeDisallowedAreasStatic(0, used_extruders) # Where the priming is not allowed to happen. This is not added to the result, just for collision checking.
|
||||
|
||||
#Check if prime positions intersect with disallowed areas.
|
||||
# Check if prime positions intersect with disallowed areas.
|
||||
for extruder in used_extruders:
|
||||
extruder_id = extruder.getId()
|
||||
|
||||
collision = False
|
||||
for prime_polygon in prime_areas[extruder_id]:
|
||||
for disallowed_polygon in prime_disallowed_areas[extruder_id]:
|
||||
if prime_polygon.intersectsPolygon(disallowed_polygon) is not None:
|
||||
collision = True
|
||||
break
|
||||
if collision:
|
||||
break
|
||||
|
||||
#Also check other prime positions (without additional offset).
|
||||
for other_extruder_id in prime_areas:
|
||||
if extruder_id == other_extruder_id: #It is allowed to collide with itself.
|
||||
continue
|
||||
for other_prime_polygon in prime_areas[other_extruder_id]:
|
||||
if prime_polygon.intersectsPolygon(other_prime_polygon):
|
||||
collision = True
|
||||
break
|
||||
if collision:
|
||||
break
|
||||
if collision:
|
||||
break
|
||||
|
||||
result_areas[extruder_id].extend(prime_areas[extruder_id])
|
||||
result_areas_no_brim[extruder_id].extend(prime_areas[extruder_id])
|
||||
|
||||
@ -776,37 +745,32 @@ class BuildVolume(SceneNode):
|
||||
for area in nozzle_disallowed_areas:
|
||||
polygon = Polygon(numpy.array(area, numpy.float32))
|
||||
polygon_disallowed_border = polygon.getMinkowskiHull(Polygon.approximatedCircle(disallowed_border_size))
|
||||
result_areas[extruder_id].append(polygon_disallowed_border) #Don't perform the offset on these.
|
||||
#polygon_minimal_border = polygon.getMinkowskiHull(5)
|
||||
result_areas_no_brim[extruder_id].append(polygon) # no brim
|
||||
result_areas[extruder_id].append(polygon_disallowed_border) # Don't perform the offset on these.
|
||||
result_areas_no_brim[extruder_id].append(polygon) # No brim
|
||||
|
||||
# Add prime tower location as disallowed area.
|
||||
if len(used_extruders) > 1: #No prime tower in single-extrusion.
|
||||
|
||||
if len([x for x in used_extruders if x.isEnabled]) > 1: #No prime tower if only one extruder is enabled
|
||||
prime_tower_collision = False
|
||||
prime_tower_areas = self._computeDisallowedAreasPrinted(used_extruders)
|
||||
for extruder_id in prime_tower_areas:
|
||||
for i_area, prime_tower_area in enumerate(prime_tower_areas[extruder_id]):
|
||||
for area in result_areas[extruder_id]:
|
||||
if prime_tower_area.intersectsPolygon(area) is not None:
|
||||
prime_tower_collision = True
|
||||
break
|
||||
if prime_tower_collision: #Already found a collision.
|
||||
if len([x for x in used_extruders if x.isEnabled]) > 1: # No prime tower if only one extruder is enabled
|
||||
prime_tower_collision = False
|
||||
prime_tower_areas = self._computeDisallowedAreasPrinted(used_extruders)
|
||||
for extruder_id in prime_tower_areas:
|
||||
for area_index, prime_tower_area in enumerate(prime_tower_areas[extruder_id]):
|
||||
for area in result_areas[extruder_id]:
|
||||
if prime_tower_area.intersectsPolygon(area) is not None:
|
||||
prime_tower_collision = True
|
||||
break
|
||||
if (ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable") and
|
||||
ExtruderManager.getInstance().getResolveOrValue("adhesion_type") != "raft"):
|
||||
prime_tower_areas[extruder_id][i_area] = prime_tower_area.getMinkowskiHull(
|
||||
Polygon.approximatedCircle(disallowed_border_size))
|
||||
if not prime_tower_collision:
|
||||
result_areas[extruder_id].extend(prime_tower_areas[extruder_id])
|
||||
result_areas_no_brim[extruder_id].extend(prime_tower_areas[extruder_id])
|
||||
else:
|
||||
self._error_areas.extend(prime_tower_areas[extruder_id])
|
||||
if prime_tower_collision: # Already found a collision.
|
||||
break
|
||||
if self._global_container_stack.getProperty("prime_tower_brim_enable", "value") and self._global_container_stack.getProperty("adhesion_type", "value") != "raft":
|
||||
prime_tower_areas[extruder_id][area_index] = prime_tower_area.getMinkowskiHull(Polygon.approximatedCircle(disallowed_border_size))
|
||||
if not prime_tower_collision:
|
||||
result_areas[extruder_id].extend(prime_tower_areas[extruder_id])
|
||||
result_areas_no_brim[extruder_id].extend(prime_tower_areas[extruder_id])
|
||||
else:
|
||||
self._error_areas.extend(prime_tower_areas[extruder_id])
|
||||
|
||||
self._has_errors = len(self._error_areas) > 0
|
||||
|
||||
self._disallowed_areas = []
|
||||
self._disallowed_areas = [] # type: List[Polygon]
|
||||
for extruder_id in result_areas:
|
||||
self._disallowed_areas.extend(result_areas[extruder_id])
|
||||
self._disallowed_areas_no_brim = []
|
||||
@ -823,11 +787,14 @@ class BuildVolume(SceneNode):
|
||||
# where that extruder may not print.
|
||||
def _computeDisallowedAreasPrinted(self, used_extruders):
|
||||
result = {}
|
||||
adhesion_extruder = None #type: ExtruderStack
|
||||
for extruder in used_extruders:
|
||||
if int(extruder.getProperty("extruder_nr", "value")) == int(self._global_container_stack.getProperty("adhesion_extruder_nr", "value")):
|
||||
adhesion_extruder = extruder
|
||||
result[extruder.getId()] = []
|
||||
|
||||
#Currently, the only normally printed object is the prime tower.
|
||||
if ExtruderManager.getInstance().getResolveOrValue("prime_tower_enable"):
|
||||
# Currently, the only normally printed object is the prime tower.
|
||||
if self._global_container_stack.getProperty("prime_tower_enable", "value"):
|
||||
prime_tower_size = self._global_container_stack.getProperty("prime_tower_size", "value")
|
||||
machine_width = self._global_container_stack.getProperty("machine_width", "value")
|
||||
machine_depth = self._global_container_stack.getProperty("machine_depth", "value")
|
||||
@ -837,27 +804,19 @@ class BuildVolume(SceneNode):
|
||||
prime_tower_x = prime_tower_x - machine_width / 2 #Offset by half machine_width and _depth to put the origin in the front-left.
|
||||
prime_tower_y = prime_tower_y + machine_depth / 2
|
||||
|
||||
if (ExtruderManager.getInstance().getResolveOrValue("prime_tower_brim_enable") and
|
||||
ExtruderManager.getInstance().getResolveOrValue("adhesion_type") != "raft"):
|
||||
if adhesion_extruder is not None and self._global_container_stack.getProperty("prime_tower_brim_enable", "value") and self._global_container_stack.getProperty("adhesion_type", "value") != "raft":
|
||||
brim_size = (
|
||||
extruder.getProperty("brim_line_count", "value") *
|
||||
extruder.getProperty("skirt_brim_line_width", "value") / 100.0 *
|
||||
extruder.getProperty("initial_layer_line_width_factor", "value")
|
||||
adhesion_extruder.getProperty("brim_line_count", "value") *
|
||||
adhesion_extruder.getProperty("skirt_brim_line_width", "value") / 100.0 *
|
||||
adhesion_extruder.getProperty("initial_layer_line_width_factor", "value")
|
||||
)
|
||||
prime_tower_x -= brim_size
|
||||
prime_tower_y += brim_size
|
||||
|
||||
if self._global_container_stack.getProperty("prime_tower_circular", "value"):
|
||||
radius = prime_tower_size / 2
|
||||
prime_tower_area = Polygon.approximatedCircle(radius)
|
||||
prime_tower_area = prime_tower_area.translate(prime_tower_x - radius, prime_tower_y - radius)
|
||||
else:
|
||||
prime_tower_area = Polygon([
|
||||
[prime_tower_x - prime_tower_size, prime_tower_y - prime_tower_size],
|
||||
[prime_tower_x, prime_tower_y - prime_tower_size],
|
||||
[prime_tower_x, prime_tower_y],
|
||||
[prime_tower_x - prime_tower_size, prime_tower_y],
|
||||
])
|
||||
radius = prime_tower_size / 2
|
||||
prime_tower_area = Polygon.approximatedCircle(radius)
|
||||
prime_tower_area = prime_tower_area.translate(prime_tower_x - radius, prime_tower_y - radius)
|
||||
|
||||
prime_tower_area = prime_tower_area.getMinkowskiHull(Polygon.approximatedCircle(0))
|
||||
for extruder in used_extruders:
|
||||
result[extruder.getId()].append(prime_tower_area) #The prime tower location is the same for each extruder, regardless of offset.
|
||||
@ -915,9 +874,12 @@ class BuildVolume(SceneNode):
|
||||
# for.
|
||||
# \return A dictionary with for each used extruder ID the disallowed areas
|
||||
# where that extruder may not print.
|
||||
def _computeDisallowedAreasStatic(self, border_size, used_extruders):
|
||||
#Convert disallowed areas to polygons and dilate them.
|
||||
def _computeDisallowedAreasStatic(self, border_size:float, used_extruders: List["ExtruderStack"]) -> Dict[str, List[Polygon]]:
|
||||
# Convert disallowed areas to polygons and dilate them.
|
||||
machine_disallowed_polygons = []
|
||||
if self._global_container_stack is None:
|
||||
return {}
|
||||
|
||||
for area in self._global_container_stack.getProperty("machine_disallowed_areas", "value"):
|
||||
polygon = Polygon(numpy.array(area, numpy.float32))
|
||||
polygon = polygon.getMinkowskiHull(Polygon.approximatedCircle(border_size))
|
||||
@ -928,7 +890,7 @@ class BuildVolume(SceneNode):
|
||||
nozzle_offsetting_for_disallowed_areas = self._global_container_stack.getMetaDataEntry(
|
||||
"nozzle_offsetting_for_disallowed_areas", True)
|
||||
|
||||
result = {}
|
||||
result = {} # type: Dict[str, List[Polygon]]
|
||||
for extruder in used_extruders:
|
||||
extruder_id = extruder.getId()
|
||||
offset_x = extruder.getProperty("machine_nozzle_offset_x", "value")
|
||||
@ -937,13 +899,13 @@ class BuildVolume(SceneNode):
|
||||
offset_y = extruder.getProperty("machine_nozzle_offset_y", "value")
|
||||
if offset_y is None:
|
||||
offset_y = 0
|
||||
offset_y = -offset_y #Y direction of g-code is the inverse of Y direction of Cura's scene space.
|
||||
offset_y = -offset_y # Y direction of g-code is the inverse of Y direction of Cura's scene space.
|
||||
result[extruder_id] = []
|
||||
|
||||
for polygon in machine_disallowed_polygons:
|
||||
result[extruder_id].append(polygon.translate(offset_x, offset_y)) #Compensate for the nozzle offset of this extruder.
|
||||
result[extruder_id].append(polygon.translate(offset_x, offset_y)) # Compensate for the nozzle offset of this extruder.
|
||||
|
||||
#Add the border around the edge of the build volume.
|
||||
# Add the border around the edge of the build volume.
|
||||
left_unreachable_border = 0
|
||||
right_unreachable_border = 0
|
||||
top_unreachable_border = 0
|
||||
@ -951,7 +913,8 @@ class BuildVolume(SceneNode):
|
||||
|
||||
# Only do nozzle offsetting if needed
|
||||
if nozzle_offsetting_for_disallowed_areas:
|
||||
#The build volume is defined as the union of the area that all extruders can reach, so we need to know the relative offset to all extruders.
|
||||
# The build volume is defined as the union of the area that all extruders can reach, so we need to know
|
||||
# the relative offset to all extruders.
|
||||
for other_extruder in ExtruderManager.getInstance().getActiveExtruderStacks():
|
||||
other_offset_x = other_extruder.getProperty("machine_nozzle_offset_x", "value")
|
||||
if other_offset_x is None:
|
||||
@ -1035,8 +998,8 @@ class BuildVolume(SceneNode):
|
||||
[ half_machine_width - border_size, 0]
|
||||
], numpy.float32)))
|
||||
result[extruder_id].append(Polygon(numpy.array([
|
||||
[ half_machine_width,-half_machine_depth],
|
||||
[-half_machine_width,-half_machine_depth],
|
||||
[ half_machine_width, -half_machine_depth],
|
||||
[-half_machine_width, -half_machine_depth],
|
||||
[ 0, -half_machine_depth + border_size]
|
||||
], numpy.float32)))
|
||||
|
||||
@ -1163,7 +1126,7 @@ class BuildVolume(SceneNode):
|
||||
_raft_settings = ["adhesion_type", "raft_base_thickness", "raft_interface_thickness", "raft_surface_layers", "raft_surface_thickness", "raft_airgap", "layer_0_z_overlap"]
|
||||
_extra_z_settings = ["retraction_hop_enabled", "retraction_hop"]
|
||||
_prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z", "prime_blob_enable"]
|
||||
_tower_settings = ["prime_tower_enable", "prime_tower_circular", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable"]
|
||||
_tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y", "prime_tower_brim_enable"]
|
||||
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
|
||||
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts", "travel_avoid_supports"]
|
||||
_extruder_settings = ["support_enable", "support_bottom_enable", "support_roof_enable", "support_infill_extruder_nr", "support_extruder_nr_layer_0", "support_bottom_extruder_nr", "support_roof_extruder_nr", "brim_line_count", "adhesion_extruder_nr", "adhesion_type"] #Settings that can affect which extruders are used.
|
||||
|
@ -144,7 +144,7 @@ class CuraApplication(QtApplication):
|
||||
# SettingVersion represents the set of settings available in the machine/extruder definitions.
|
||||
# You need to make sure that this version number needs to be increased if there is any non-backwards-compatible
|
||||
# changes of the settings.
|
||||
SettingVersion = 7
|
||||
SettingVersion = 8
|
||||
|
||||
Created = False
|
||||
|
||||
|
@ -6,7 +6,6 @@ CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"
|
||||
CuraVersion = "@CURA_VERSION@"
|
||||
CuraBuildType = "@CURA_BUILDTYPE@"
|
||||
CuraDebugMode = True if "@_cura_debugmode@" == "ON" else False
|
||||
CuraSDKVersion = "@CURA_SDK_VERSION@"
|
||||
CuraCloudAPIRoot = "@CURA_CLOUD_API_ROOT@"
|
||||
CuraCloudAPIVersion = "@CURA_CLOUD_API_VERSION@"
|
||||
CuraCloudAccountAPIRoot = "@CURA_CLOUD_ACCOUNT_API_ROOT@"
|
||||
|
@ -283,7 +283,7 @@ class CuraContainerRegistry(ContainerRegistry):
|
||||
profile.addInstance(new_instance)
|
||||
profile.setDirty(True)
|
||||
|
||||
global_profile.removeInstance(qc_setting_key, postpone_emit=True)
|
||||
global_profile.removeInstance(qc_setting_key, postpone_emit = True)
|
||||
extruder_profiles.append(profile)
|
||||
|
||||
for profile in extruder_profiles:
|
||||
|
@ -205,7 +205,7 @@ class ExtruderManager(QObject):
|
||||
# list.
|
||||
#
|
||||
# \return A list of extruder stacks.
|
||||
def getUsedExtruderStacks(self) -> List["ContainerStack"]:
|
||||
def getUsedExtruderStacks(self) -> List["ExtruderStack"]:
|
||||
global_stack = self._application.getGlobalContainerStack()
|
||||
container_registry = ContainerRegistry.getInstance()
|
||||
|
||||
|
@ -986,8 +986,9 @@ class MachineManager(QObject):
|
||||
self._application.globalContainerStackChanged.emit()
|
||||
self.forceUpdateAllSettings()
|
||||
|
||||
# Note that this function is deprecated, but the decorators for this don't play well together!
|
||||
# @deprecated("use Cura.MachineManager.activeMachine.extruders instead", "4.2")
|
||||
@pyqtSlot(int, result = QObject)
|
||||
@deprecated("use Cura.MachineManager.activeMachine.extruders instead", "4.2")
|
||||
def getExtruder(self, position: int) -> Optional[ExtruderStack]:
|
||||
if self._global_container_stack:
|
||||
return self._global_container_stack.extruders.get(str(position))
|
||||
@ -1111,9 +1112,17 @@ class MachineManager(QObject):
|
||||
def _onRootMaterialChanged(self) -> None:
|
||||
self._current_root_material_id = {}
|
||||
|
||||
changed = False
|
||||
|
||||
if self._global_container_stack:
|
||||
for position in self._global_container_stack.extruders:
|
||||
self._current_root_material_id[position] = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file")
|
||||
material_id = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file")
|
||||
if position not in self._current_root_material_id or material_id != self._current_root_material_id[position]:
|
||||
changed = True
|
||||
self._current_root_material_id[position] = material_id
|
||||
|
||||
if changed:
|
||||
self.activeMaterialChanged.emit()
|
||||
|
||||
@pyqtProperty("QVariant", notify = rootMaterialChanged)
|
||||
def currentRootMaterialId(self) -> Dict[str, str]:
|
||||
|
@ -419,13 +419,17 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||
if parser.has_option("metadata", "enabled"):
|
||||
extruder_info.enabled = parser["metadata"]["enabled"]
|
||||
if variant_id not in ("empty", "empty_variant"):
|
||||
extruder_info.variant_info = instance_container_info_dict[variant_id]
|
||||
if variant_id in instance_container_info_dict:
|
||||
extruder_info.variant_info = instance_container_info_dict[variant_id]
|
||||
|
||||
if material_id not in ("empty", "empty_material"):
|
||||
root_material_id = reverse_material_id_dict[material_id]
|
||||
extruder_info.root_material_id = root_material_id
|
||||
|
||||
definition_changes_id = parser["containers"][str(_ContainerIndexes.DefinitionChanges)]
|
||||
if definition_changes_id not in ("empty", "empty_definition_changes"):
|
||||
extruder_info.definition_changes_info = instance_container_info_dict[definition_changes_id]
|
||||
|
||||
user_changes_id = parser["containers"][str(_ContainerIndexes.UserChanges)]
|
||||
if user_changes_id not in ("empty", "empty_user_changes"):
|
||||
extruder_info.user_changes_info = instance_container_info_dict[user_changes_id]
|
||||
@ -905,6 +909,10 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||
continue
|
||||
extruder_info = self._machine_info.extruder_info_dict[position]
|
||||
if extruder_info.variant_info is None:
|
||||
# If there is no variant_info, try to use the default variant. Otherwise, leave it be.
|
||||
node = variant_manager.getDefaultVariantNode(global_stack.definition, VariantType.NOZZLE, global_stack)
|
||||
if node is not None and node.getContainer() is not None:
|
||||
extruder_stack.variant = node.getContainer()
|
||||
continue
|
||||
parser = extruder_info.variant_info.parser
|
||||
|
||||
|
@ -1,11 +1,14 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import configparser
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Logger import Logger
|
||||
from UM.Settings.ContainerFormatError import ContainerFormatError
|
||||
from UM.Settings.InstanceContainer import InstanceContainer # The new profile to make.
|
||||
from cura.CuraApplication import CuraApplication
|
||||
from cura.ReaderWriters.ProfileReader import ProfileReader
|
||||
|
||||
import zipfile
|
||||
@ -17,39 +20,43 @@ import zipfile
|
||||
class CuraProfileReader(ProfileReader):
|
||||
## Initialises the cura profile reader.
|
||||
# This does nothing since the only other function is basically stateless.
|
||||
def __init__(self):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
## Reads a cura profile from a file and returns it.
|
||||
#
|
||||
# \param file_name The file to read the cura profile from.
|
||||
# \return The cura profile that was in the file, if any. If the file could
|
||||
# not be read or didn't contain a valid profile, \code None \endcode is
|
||||
# \return The cura profiles that were in the file, if any. If the file
|
||||
# could not be read or didn't contain a valid profile, ``None`` is
|
||||
# returned.
|
||||
def read(self, file_name):
|
||||
def read(self, file_name: str) -> List[Optional[InstanceContainer]]:
|
||||
try:
|
||||
with zipfile.ZipFile(file_name, "r") as archive:
|
||||
results = []
|
||||
results = [] # type: List[Optional[InstanceContainer]]
|
||||
for profile_id in archive.namelist():
|
||||
with archive.open(profile_id) as f:
|
||||
serialized = f.read()
|
||||
profile = self._loadProfile(serialized.decode("utf-8"), profile_id)
|
||||
if profile is not None:
|
||||
results.append(profile)
|
||||
upgraded_profiles = self._upgradeProfile(serialized.decode("utf-8"), profile_id) #After upgrading it may split into multiple profiles.
|
||||
for upgraded_profile in upgraded_profiles:
|
||||
serialization, new_id = upgraded_profile
|
||||
profile = self._loadProfile(serialization, new_id)
|
||||
if profile is not None:
|
||||
results.append(profile)
|
||||
return results
|
||||
|
||||
except zipfile.BadZipFile:
|
||||
# It must be an older profile from Cura 2.1.
|
||||
with open(file_name, encoding = "utf-8") as fhandle:
|
||||
serialized = fhandle.read()
|
||||
return [self._loadProfile(serialized, profile_id) for serialized, profile_id in self._upgradeProfile(serialized, file_name)]
|
||||
serialized_bytes = fhandle.read()
|
||||
return [self._loadProfile(serialized, profile_id) for serialized, profile_id in self._upgradeProfile(serialized_bytes, file_name)]
|
||||
|
||||
## Convert a profile from an old Cura to this Cura if needed.
|
||||
#
|
||||
# \param serialized \type{str} The profile data to convert in the serialized on-disk format.
|
||||
# \param profile_id \type{str} The name of the profile.
|
||||
# \return \type{List[Tuple[str,str]]} List of serialized profile strings and matching profile names.
|
||||
def _upgradeProfile(self, serialized, profile_id):
|
||||
# \param serialized The profile data to convert in the serialized on-disk
|
||||
# format.
|
||||
# \param profile_id The name of the profile.
|
||||
# \return List of serialized profile strings and matching profile names.
|
||||
def _upgradeProfile(self, serialized: str, profile_id: str) -> List[Tuple[str, str]]:
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialized)
|
||||
|
||||
@ -61,18 +68,19 @@ class CuraProfileReader(ProfileReader):
|
||||
return []
|
||||
|
||||
version = int(parser["general"]["version"])
|
||||
setting_version = int(parser["metadata"].get("setting_version", "0"))
|
||||
if InstanceContainer.Version != version:
|
||||
name = parser["general"]["name"]
|
||||
return self._upgradeProfileVersion(serialized, name, version)
|
||||
return self._upgradeProfileVersion(serialized, name, version, setting_version)
|
||||
else:
|
||||
return [(serialized, profile_id)]
|
||||
|
||||
## Load a profile from a serialized string.
|
||||
#
|
||||
# \param serialized \type{str} The profile data to read.
|
||||
# \param profile_id \type{str} The name of the profile.
|
||||
# \return \type{InstanceContainer|None}
|
||||
def _loadProfile(self, serialized, profile_id):
|
||||
# \param serialized The profile data to read.
|
||||
# \param profile_id The name of the profile.
|
||||
# \return The profile that was stored in the string.
|
||||
def _loadProfile(self, serialized: str, profile_id: str) -> Optional[InstanceContainer]:
|
||||
# Create an empty profile.
|
||||
profile = InstanceContainer(profile_id)
|
||||
profile.setMetaDataEntry("type", "quality_changes")
|
||||
@ -88,21 +96,31 @@ class CuraProfileReader(ProfileReader):
|
||||
|
||||
## Upgrade a serialized profile to the current profile format.
|
||||
#
|
||||
# \param serialized \type{str} The profile data to convert.
|
||||
# \param profile_id \type{str} The name of the profile.
|
||||
# \param source_version \type{int} The profile version of 'serialized'.
|
||||
# \return \type{List[Tuple[str,str]]} List of serialized profile strings and matching profile names.
|
||||
def _upgradeProfileVersion(self, serialized, profile_id, source_version):
|
||||
converter_plugins = PluginRegistry.getInstance().getAllMetaData(filter={"version_upgrade": {} }, active_only=True)
|
||||
# \param serialized The profile data to convert.
|
||||
# \param profile_id The name of the profile.
|
||||
# \param source_version The profile version of 'serialized'.
|
||||
# \return List of serialized profile strings and matching profile names.
|
||||
def _upgradeProfileVersion(self, serialized: str, profile_id: str, main_version: int, setting_version: int) -> List[Tuple[str, str]]:
|
||||
source_version = main_version * 1000000 + setting_version
|
||||
|
||||
source_format = ("profile", source_version)
|
||||
profile_convert_funcs = [plugin["version_upgrade"][source_format][2] for plugin in converter_plugins
|
||||
if source_format in plugin["version_upgrade"] and plugin["version_upgrade"][source_format][1] == InstanceContainer.Version]
|
||||
|
||||
if not profile_convert_funcs:
|
||||
from UM.VersionUpgradeManager import VersionUpgradeManager
|
||||
results = VersionUpgradeManager.getInstance().updateFilesData("quality_changes", source_version, [serialized], [profile_id])
|
||||
if results is None:
|
||||
return []
|
||||
|
||||
filenames, outputs = profile_convert_funcs[0](serialized, profile_id)
|
||||
if filenames is None and outputs is None:
|
||||
serialized = results.files_data[0]
|
||||
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialized)
|
||||
if "general" not in parser:
|
||||
Logger.log("w", "Missing required section 'general'.")
|
||||
return []
|
||||
return list(zip(outputs, filenames))
|
||||
|
||||
new_source_version = results.version
|
||||
if int(new_source_version / 1000000) != InstanceContainer.Version or new_source_version % 1000000 != CuraApplication.SettingVersion:
|
||||
Logger.log("e", "Failed to upgrade profile [%s]", profile_id)
|
||||
|
||||
if int(parser["general"]["version"]) != InstanceContainer.Version:
|
||||
Logger.log("e", "Failed to upgrade profile [%s]", profile_id)
|
||||
return []
|
||||
return [(serialized, profile_id)]
|
||||
|
@ -97,7 +97,7 @@ Rectangle
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
visible: isNetworkConfigured && !isConnected
|
||||
text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.")
|
||||
text: catalog.i18nc("@info", "Please make sure your printer has a connection:\n- Check if the printer is turned on.\n- Check if the printer is connected to the network.\n- Check if you are signed in to discover cloud-connected printers.")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("monitor_text_primary")
|
||||
wrapMode: Text.WordWrap
|
||||
@ -166,4 +166,4 @@ Rectangle
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -160,4 +160,4 @@ UM.Dialog
|
||||
}
|
||||
return translationText
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ Item
|
||||
enabled: visible && !(printJob.state == "pausing" || printJob.state == "resuming");
|
||||
onClicked: {
|
||||
if (printJob.state == "paused") {
|
||||
printJob.setState("print");
|
||||
printJob.setState("resume");
|
||||
popUp.close();
|
||||
return;
|
||||
}
|
||||
|
@ -22,10 +22,6 @@ Item
|
||||
// The print job which all other data is derived from
|
||||
property var printJob: null
|
||||
|
||||
// If the printer is a cloud printer or not. Other items base their enabled state off of this boolean. In the future
|
||||
// they might not need to though.
|
||||
property bool cloudConnection: Cura.MachineManager.activeMachineIsUsingCloudConnection
|
||||
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
@ -217,7 +213,7 @@ Item
|
||||
}
|
||||
width: 32 * screenScaleFactor // TODO: Theme!
|
||||
height: 32 * screenScaleFactor // TODO: Theme!
|
||||
enabled: !cloudConnection
|
||||
enabled: OutputDevice.supportsPrintJobActions
|
||||
onClicked: enabled ? contextMenu.switchPopupState() : {}
|
||||
visible:
|
||||
{
|
||||
@ -250,7 +246,7 @@ Item
|
||||
MonitorInfoBlurb
|
||||
{
|
||||
id: contextMenuDisabledInfo
|
||||
text: catalog.i18nc("@info", "These options are not available because you are monitoring a cloud printer.")
|
||||
text: catalog.i18nc("@info", "Please update your printer's firmware to manage the queue remotely.")
|
||||
target: contextMenuButton
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -172,8 +172,7 @@ Item
|
||||
}
|
||||
width: 36 * screenScaleFactor // TODO: Theme!
|
||||
height: 36 * screenScaleFactor // TODO: Theme!
|
||||
enabled: !cloudConnection
|
||||
|
||||
enabled: OutputDevice.supportsPrintJobActions
|
||||
onClicked: enabled ? contextMenu.switchPopupState() : {}
|
||||
visible:
|
||||
{
|
||||
@ -206,7 +205,7 @@ Item
|
||||
MonitorInfoBlurb
|
||||
{
|
||||
id: contextMenuDisabledInfo
|
||||
text: catalog.i18nc("@info", "These options are not available because you are monitoring a cloud printer.")
|
||||
text: catalog.i18nc("@info", "Please update your printer's firmware to manage the queue remotely.")
|
||||
target: contextMenuButton
|
||||
}
|
||||
|
||||
@ -244,7 +243,6 @@ Item
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Divider
|
||||
Rectangle
|
||||
{
|
||||
|
@ -42,7 +42,6 @@ Item
|
||||
}
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
width: childrenRect.width
|
||||
visible: !cloudConnection
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
@ -65,7 +64,7 @@ Item
|
||||
color: UM.Theme.getColor("monitor_text_link")
|
||||
font: UM.Theme.getFont("medium") // 14pt, regular
|
||||
linkColor: UM.Theme.getColor("monitor_text_link")
|
||||
text: catalog.i18nc("@label link to connect manager", "Go to Cura Connect")
|
||||
text: catalog.i18nc("@label link to connect manager", "Manage in browser")
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
@ -73,9 +72,7 @@ Item
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: manageQueueLabel
|
||||
enabled: !cloudConnection
|
||||
hoverEnabled: !cloudConnection
|
||||
onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel()
|
||||
onClicked: OutputDevice.openPrintJobControlPanel()
|
||||
onEntered:
|
||||
{
|
||||
manageQueueText.font.underline = true
|
||||
@ -98,6 +95,22 @@ Item
|
||||
}
|
||||
spacing: 18 * screenScaleFactor // TODO: Theme!
|
||||
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "There are no print jobs in the queue. Slice and send a job to add one.")
|
||||
color: UM.Theme.getColor("monitor_text_primary")
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("medium") // 14pt, regular
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: 600 * screenScaleFactor // TODO: Theme! (Should match column size)
|
||||
|
||||
// FIXED-LINE-HEIGHT:
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
renderType: Text.NativeRendering
|
||||
visible: printJobList.count === 0
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "Print jobs")
|
||||
@ -111,6 +124,7 @@ Item
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
renderType: Text.NativeRendering
|
||||
visible: printJobList.count > 0
|
||||
}
|
||||
|
||||
Label
|
||||
@ -126,6 +140,7 @@ Item
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
renderType: Text.NativeRendering
|
||||
visible: printJobList.count > 0
|
||||
}
|
||||
|
||||
Label
|
||||
@ -141,6 +156,7 @@ Item
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
renderType: Text.NativeRendering
|
||||
visible: printJobList.count > 0
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,89 +200,4 @@ Item
|
||||
spacing: 6 // TODO: Theme!
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle
|
||||
{
|
||||
anchors
|
||||
{
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
top: printJobQueueHeadings.bottom
|
||||
topMargin: 12 * screenScaleFactor // TODO: Theme!
|
||||
}
|
||||
height: 48 * screenScaleFactor // TODO: Theme!
|
||||
width: parent.width
|
||||
color: UM.Theme.getColor("monitor_card_background")
|
||||
border.color: UM.Theme.getColor("monitor_card_border")
|
||||
radius: 2 * screenScaleFactor // TODO: Theme!
|
||||
|
||||
visible: printJobList.model.length == 0
|
||||
|
||||
Row
|
||||
{
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
leftMargin: 18 * screenScaleFactor // TODO: Theme!
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
spacing: 18 * screenScaleFactor // TODO: Theme!
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
|
||||
Label
|
||||
{
|
||||
text: i18n.i18nc("@info", "All jobs are printed.")
|
||||
color: UM.Theme.getColor("monitor_text_primary")
|
||||
font: UM.Theme.getFont("medium") // 14pt, regular
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
id: viewPrintHistoryLabel
|
||||
|
||||
height: 18 * screenScaleFactor // TODO: Theme!
|
||||
width: childrenRect.width
|
||||
visible: !cloudConnection
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
id: printHistoryIcon
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
color: UM.Theme.getColor("monitor_text_link")
|
||||
source: UM.Theme.getIcon("external_link")
|
||||
width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
|
||||
height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
|
||||
}
|
||||
Label
|
||||
{
|
||||
id: viewPrintHistoryText
|
||||
anchors
|
||||
{
|
||||
left: printHistoryIcon.right
|
||||
leftMargin: 6 * screenScaleFactor // TODO: Theme!
|
||||
verticalCenter: printHistoryIcon.verticalCenter
|
||||
}
|
||||
color: UM.Theme.getColor("monitor_text_link")
|
||||
font: UM.Theme.getFont("medium") // 14pt, regular
|
||||
linkColor: UM.Theme.getColor("monitor_text_link")
|
||||
text: catalog.i18nc("@label link to connect manager", "View print history")
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel()
|
||||
onEntered:
|
||||
{
|
||||
viewPrintHistoryText.font.underline = true
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
viewPrintHistoryText.font.underline = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,6 +96,21 @@ class CloudApiClient:
|
||||
reply = self._manager.post(self._createEmptyRequest(url), b"")
|
||||
self._addCallback(reply, on_finished, CloudPrintResponse)
|
||||
|
||||
## Send a print job action to the cluster for the given print job.
|
||||
# \param cluster_id: The ID of the cluster.
|
||||
# \param cluster_job_id: The ID of the print job within the cluster.
|
||||
# \param action: The name of the action to execute.
|
||||
def doPrintJobAction(self, cluster_id: str, cluster_job_id: str, action: str, data: Optional[Dict[str, Any]] = None) -> None:
|
||||
body = b""
|
||||
if data:
|
||||
try:
|
||||
body = json.dumps({"data": data}).encode()
|
||||
except JSONDecodeError as err:
|
||||
Logger.log("w", "Could not encode body: %s", err)
|
||||
return
|
||||
url = "{}/clusters/{}/print_jobs/{}/action/{}".format(self.CLUSTER_API_ROOT, cluster_id, cluster_job_id, action)
|
||||
self._manager.post(self._createEmptyRequest(url), body)
|
||||
|
||||
## We override _createEmptyRequest in order to add the user credentials.
|
||||
# \param url: The URL to request
|
||||
# \param content_type: The type of the body contents.
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
|
||||
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
@ -13,10 +14,13 @@ class CloudOutputController(PrinterOutputController):
|
||||
|
||||
# The cloud connection only supports fetching the printer and queue status and adding a job to the queue.
|
||||
# To let the UI know this we mark all features below as False.
|
||||
self.can_pause = False
|
||||
self.can_abort = False
|
||||
self.can_pause = True
|
||||
self.can_abort = True
|
||||
self.can_pre_heat_bed = False
|
||||
self.can_pre_heat_hotends = False
|
||||
self.can_send_raw_gcode = False
|
||||
self.can_control_manually = False
|
||||
self.can_update_firmware = False
|
||||
|
||||
def setJobState(self, job: "PrintJobOutputModel", state: str):
|
||||
self._output_device.setJobState(job.key, state)
|
||||
|
@ -6,6 +6,7 @@ from time import time
|
||||
from typing import Dict, List, Optional, Set, cast
|
||||
|
||||
from PyQt5.QtCore import QObject, QUrl, pyqtProperty, pyqtSignal, pyqtSlot
|
||||
from PyQt5.QtGui import QDesktopServices
|
||||
|
||||
from UM import i18nCatalog
|
||||
from UM.Backend.Backend import BackendState
|
||||
@ -15,6 +16,7 @@ from UM.Message import Message
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
from UM.Qt.Duration import Duration, DurationFormat
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.Version import Version
|
||||
|
||||
from cura.CuraApplication import CuraApplication
|
||||
from cura.PrinterOutput.NetworkedPrinterOutputDevice import AuthState, NetworkedPrinterOutputDevice
|
||||
@ -33,8 +35,7 @@ from .Models.CloudPrintResponse import CloudPrintResponse
|
||||
from .Models.CloudPrintJobResponse import CloudPrintJobResponse
|
||||
from .Models.CloudClusterPrinterStatus import CloudClusterPrinterStatus
|
||||
from .Models.CloudClusterPrintJobStatus import CloudClusterPrintJobStatus
|
||||
from .Utils import findChanges, formatDateCompleted, formatTimeCompleted
|
||||
|
||||
from .Utils import formatDateCompleted, formatTimeCompleted
|
||||
|
||||
I18N_CATALOG = i18nCatalog("cura")
|
||||
|
||||
@ -44,10 +45,12 @@ I18N_CATALOG = i18nCatalog("cura")
|
||||
# As such, those methods have been implemented here.
|
||||
# Note that this device represents a single remote cluster, not a list of multiple clusters.
|
||||
class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
|
||||
# The interval with which the remote clusters are checked
|
||||
CHECK_CLUSTER_INTERVAL = 10.0 # seconds
|
||||
|
||||
# The minimum version of firmware that support print job actions over cloud.
|
||||
PRINT_JOB_ACTIONS_MIN_VERSION = Version("5.3.0")
|
||||
|
||||
# Signal triggered when the print jobs in the queue were changed.
|
||||
printJobsChanged = pyqtSignal()
|
||||
|
||||
@ -75,8 +78,8 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
b"cluster_size": b"1" # cloud devices are always clusters of at least one
|
||||
}
|
||||
|
||||
super().__init__(device_id = cluster.cluster_id, address = "",
|
||||
connection_type = ConnectionType.CloudConnection, properties = properties, parent = parent)
|
||||
super().__init__(device_id=cluster.cluster_id, address="",
|
||||
connection_type=ConnectionType.CloudConnection, properties=properties, parent=parent)
|
||||
self._api = api_client
|
||||
self._cluster = cluster
|
||||
|
||||
@ -174,9 +177,10 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
# Show an error message if we're already sending a job.
|
||||
if self._progress.visible:
|
||||
message = Message(
|
||||
text = I18N_CATALOG.i18nc("@info:status", "Sending new jobs (temporarily) blocked, still sending the previous print job."),
|
||||
title = I18N_CATALOG.i18nc("@info:title", "Cloud error"),
|
||||
lifetime = 10
|
||||
text=I18N_CATALOG.i18nc("@info:status",
|
||||
"Sending new jobs (temporarily) blocked, still sending the previous print job."),
|
||||
title=I18N_CATALOG.i18nc("@info:title", "Cloud error"),
|
||||
lifetime=10
|
||||
)
|
||||
message.show()
|
||||
return
|
||||
@ -198,9 +202,9 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
|
||||
self._tool_path = mesh
|
||||
request = CloudPrintJobUploadRequest(
|
||||
job_name = file_name or mesh_format.file_extension,
|
||||
file_size = len(mesh),
|
||||
content_type = mesh_format.mime_type,
|
||||
job_name=file_name or mesh_format.file_extension,
|
||||
file_size=len(mesh),
|
||||
content_type=mesh_format.mime_type,
|
||||
)
|
||||
self._api.requestUpload(request, self._onPrintJobCreated)
|
||||
|
||||
@ -232,65 +236,74 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
self._updatePrintJobs(status.print_jobs)
|
||||
|
||||
## Updates the local list of printers with the list received from the cloud.
|
||||
# \param jobs: The printers received from the cloud.
|
||||
def _updatePrinters(self, printers: List[CloudClusterPrinterStatus]) -> None:
|
||||
previous = {p.key: p for p in self._printers} # type: Dict[str, PrinterOutputModel]
|
||||
received = {p.uuid: p for p in printers} # type: Dict[str, CloudClusterPrinterStatus]
|
||||
removed_printers, added_printers, updated_printers = findChanges(previous, received)
|
||||
# \param remote_printers: The printers received from the cloud.
|
||||
def _updatePrinters(self, remote_printers: List[CloudClusterPrinterStatus]) -> None:
|
||||
|
||||
# Keep track of the new printers to show.
|
||||
# We create a new list instead of changing the existing one to get the correct order.
|
||||
new_printers = []
|
||||
|
||||
# Check which printers need to be created or updated.
|
||||
for index, printer_data in enumerate(remote_printers):
|
||||
printer = next(iter(printer for printer in self._printers if printer.key == printer_data.uuid), None)
|
||||
if not printer:
|
||||
new_printers.append(printer_data.createOutputModel(CloudOutputController(self)))
|
||||
else:
|
||||
printer_data.updateOutputModel(printer)
|
||||
new_printers.append(printer)
|
||||
|
||||
# Check which printers need to be removed (de-referenced).
|
||||
remote_printers_keys = [printer_data.uuid for printer_data in remote_printers]
|
||||
removed_printers = [printer for printer in self._printers if printer.key not in remote_printers_keys]
|
||||
for removed_printer in removed_printers:
|
||||
if self._active_printer == removed_printer:
|
||||
if self._active_printer and self._active_printer.key == removed_printer.key:
|
||||
self.setActivePrinter(None)
|
||||
self._printers.remove(removed_printer)
|
||||
|
||||
for added_printer in added_printers:
|
||||
self._printers.append(added_printer.createOutputModel(CloudOutputController(self)))
|
||||
|
||||
for model, printer in updated_printers:
|
||||
printer.updateOutputModel(model)
|
||||
|
||||
# Always have an active printer
|
||||
if self._printers and not self._active_printer:
|
||||
self._printers = new_printers
|
||||
if self._printers and not self.activePrinter:
|
||||
self.setActivePrinter(self._printers[0])
|
||||
|
||||
if added_printers or removed_printers:
|
||||
self.printersChanged.emit()
|
||||
self.printersChanged.emit()
|
||||
|
||||
## Updates the local list of print jobs with the list received from the cloud.
|
||||
# \param jobs: The print jobs received from the cloud.
|
||||
def _updatePrintJobs(self, jobs: List[CloudClusterPrintJobStatus]) -> None:
|
||||
received = {j.uuid: j for j in jobs} # type: Dict[str, CloudClusterPrintJobStatus]
|
||||
previous = {j.key: j for j in self._print_jobs} # type: Dict[str, UM3PrintJobOutputModel]
|
||||
# \param remote_jobs: The print jobs received from the cloud.
|
||||
def _updatePrintJobs(self, remote_jobs: List[CloudClusterPrintJobStatus]) -> None:
|
||||
|
||||
removed_jobs, added_jobs, updated_jobs = findChanges(previous, received)
|
||||
# Keep track of the new print jobs to show.
|
||||
# We create a new list instead of changing the existing one to get the correct order.
|
||||
new_print_jobs = []
|
||||
|
||||
# Check which print jobs need to be created or updated.
|
||||
for index, print_job_data in enumerate(remote_jobs):
|
||||
print_job = next(
|
||||
iter(print_job for print_job in self._print_jobs if print_job.key == print_job_data.uuid), None)
|
||||
if not print_job:
|
||||
new_print_jobs.append(self._createPrintJobModel(print_job_data))
|
||||
else:
|
||||
print_job_data.updateOutputModel(print_job)
|
||||
if print_job_data.printer_uuid:
|
||||
self._updateAssignedPrinter(print_job, print_job_data.printer_uuid)
|
||||
new_print_jobs.append(print_job)
|
||||
|
||||
# Check which print job need to be removed (de-referenced).
|
||||
remote_job_keys = [print_job_data.uuid for print_job_data in remote_jobs]
|
||||
removed_jobs = [print_job for print_job in self._print_jobs if print_job.key not in remote_job_keys]
|
||||
for removed_job in removed_jobs:
|
||||
if removed_job.assignedPrinter:
|
||||
removed_job.assignedPrinter.updateActivePrintJob(None)
|
||||
removed_job.stateChanged.disconnect(self._onPrintJobStateChanged)
|
||||
self._print_jobs.remove(removed_job)
|
||||
|
||||
for added_job in added_jobs:
|
||||
self._addPrintJob(added_job)
|
||||
self._print_jobs = new_print_jobs
|
||||
self.printJobsChanged.emit()
|
||||
|
||||
for model, job in updated_jobs:
|
||||
job.updateOutputModel(model)
|
||||
if job.printer_uuid:
|
||||
self._updateAssignedPrinter(model, job.printer_uuid)
|
||||
|
||||
# We only have to update when jobs are added or removed
|
||||
# updated jobs push their changes via their output model
|
||||
if added_jobs or removed_jobs:
|
||||
self.printJobsChanged.emit()
|
||||
|
||||
## Registers a new print job received via the cloud API.
|
||||
# \param job: The print job received.
|
||||
def _addPrintJob(self, job: CloudClusterPrintJobStatus) -> None:
|
||||
model = job.createOutputModel(CloudOutputController(self))
|
||||
## Create a new print job model based on the remote status of the job.
|
||||
# \param remote_job: The remote print job data.
|
||||
def _createPrintJobModel(self, remote_job: CloudClusterPrintJobStatus) -> UM3PrintJobOutputModel:
|
||||
model = remote_job.createOutputModel(CloudOutputController(self))
|
||||
model.stateChanged.connect(self._onPrintJobStateChanged)
|
||||
if job.printer_uuid:
|
||||
self._updateAssignedPrinter(model, job.printer_uuid)
|
||||
self._print_jobs.append(model)
|
||||
if remote_job.printer_uuid:
|
||||
self._updateAssignedPrinter(model, remote_job.printer_uuid)
|
||||
return model
|
||||
|
||||
## Handles the event of a change in a print job state
|
||||
def _onPrintJobStateChanged(self) -> None:
|
||||
@ -300,14 +313,15 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
if job.state == "wait_cleanup" and job.key not in self._finished_jobs and job.owner == user_name:
|
||||
self._finished_jobs.add(job.key)
|
||||
Message(
|
||||
title = I18N_CATALOG.i18nc("@info:status", "Print finished"),
|
||||
text = (I18N_CATALOG.i18nc("@info:status", "Printer '{printer_name}' has finished printing '{job_name}'.").format(
|
||||
printer_name = job.assignedPrinter.name,
|
||||
job_name = job.name
|
||||
title=I18N_CATALOG.i18nc("@info:status", "Print finished"),
|
||||
text=(I18N_CATALOG.i18nc("@info:status",
|
||||
"Printer '{printer_name}' has finished printing '{job_name}'.").format(
|
||||
printer_name=job.assignedPrinter.name,
|
||||
job_name=job.name
|
||||
) if job.assignedPrinter else
|
||||
I18N_CATALOG.i18nc("@info:status", "The print job '{job_name}' was finished.").format(
|
||||
job_name = job.name
|
||||
)),
|
||||
I18N_CATALOG.i18nc("@info:status", "The print job '{job_name}' was finished.").format(
|
||||
job_name=job.name
|
||||
)),
|
||||
).show()
|
||||
|
||||
## Updates the printer assignment for the given print job model.
|
||||
@ -315,9 +329,8 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
printer = next((p for p in self._printers if printer_uuid == p.key), None)
|
||||
if not printer:
|
||||
Logger.log("w", "Missing printer %s for job %s in %s", model.assignedPrinter, model.key,
|
||||
[p.key for p in self._printers])
|
||||
[p.key for p in self._printers])
|
||||
return
|
||||
|
||||
printer.updateActivePrintJob(model)
|
||||
model.updateAssignedPrinter(printer)
|
||||
|
||||
@ -327,7 +340,8 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
self._progress.show()
|
||||
self._uploaded_print_job = job_response
|
||||
tool_path = cast(bytes, self._tool_path)
|
||||
self._api.uploadToolPath(job_response, tool_path, self._onPrintJobUploaded, self._progress.update, self._onUploadError)
|
||||
self._api.uploadToolPath(job_response, tool_path, self._onPrintJobUploaded, self._progress.update,
|
||||
self._onUploadError)
|
||||
|
||||
## Requests the print to be sent to the printer when we finished uploading the mesh.
|
||||
def _onPrintJobUploaded(self) -> None:
|
||||
@ -341,9 +355,9 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
self._progress.hide()
|
||||
self._uploaded_print_job = None
|
||||
Message(
|
||||
text = message or I18N_CATALOG.i18nc("@info:text", "Could not upload the data to the printer."),
|
||||
title = I18N_CATALOG.i18nc("@info:title", "Cloud error"),
|
||||
lifetime = 10
|
||||
text=message or I18N_CATALOG.i18nc("@info:text", "Could not upload the data to the printer."),
|
||||
title=I18N_CATALOG.i18nc("@info:title", "Cloud error"),
|
||||
lifetime=10
|
||||
).show()
|
||||
self.writeError.emit()
|
||||
|
||||
@ -353,15 +367,24 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
Logger.log("d", "The cluster will be printing this print job with the ID %s", response.cluster_job_id)
|
||||
self._progress.hide()
|
||||
Message(
|
||||
text = I18N_CATALOG.i18nc("@info:status", "Print job was successfully sent to the printer."),
|
||||
title = I18N_CATALOG.i18nc("@info:title", "Data Sent"),
|
||||
lifetime = 5
|
||||
text=I18N_CATALOG.i18nc("@info:status", "Print job was successfully sent to the printer."),
|
||||
title=I18N_CATALOG.i18nc("@info:title", "Data Sent"),
|
||||
lifetime=5
|
||||
).show()
|
||||
self.writeFinished.emit()
|
||||
|
||||
## Whether the printer that this output device represents supports print job actions via the cloud.
|
||||
@pyqtProperty(bool, notify=_clusterPrintersChanged)
|
||||
def supportsPrintJobActions(self) -> bool:
|
||||
if not self._printers:
|
||||
return False
|
||||
version_number = self.printers[0].firmwareVersion.split(".")
|
||||
firmware_version = Version([version_number[0], version_number[1], version_number[2]])
|
||||
return firmware_version >= self.PRINT_JOB_ACTIONS_MIN_VERSION
|
||||
|
||||
## Gets the number of printers in the cluster.
|
||||
# We use a minimum of 1 because cloud devices are always a cluster and printer discovery needs it.
|
||||
@pyqtProperty(int, notify = _clusterPrintersChanged)
|
||||
@pyqtProperty(int, notify=_clusterPrintersChanged)
|
||||
def clusterSize(self) -> int:
|
||||
return max(1, len(self._printers))
|
||||
|
||||
@ -371,7 +394,7 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
return self._printers
|
||||
|
||||
## Get the active printer in the UI (monitor page).
|
||||
@pyqtProperty(QObject, notify = activePrinterChanged)
|
||||
@pyqtProperty(QObject, notify=activePrinterChanged)
|
||||
def activePrinter(self) -> Optional[PrinterOutputModel]:
|
||||
return self._active_printer
|
||||
|
||||
@ -383,38 +406,67 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
self.activePrinterChanged.emit()
|
||||
|
||||
## Get remote print jobs.
|
||||
@pyqtProperty("QVariantList", notify = printJobsChanged)
|
||||
@pyqtProperty("QVariantList", notify=printJobsChanged)
|
||||
def printJobs(self) -> List[UM3PrintJobOutputModel]:
|
||||
return self._print_jobs
|
||||
|
||||
## Get remote print jobs that are still in the print queue.
|
||||
@pyqtProperty("QVariantList", notify = printJobsChanged)
|
||||
@pyqtProperty("QVariantList", notify=printJobsChanged)
|
||||
def queuedPrintJobs(self) -> List[UM3PrintJobOutputModel]:
|
||||
return [print_job for print_job in self._print_jobs
|
||||
if print_job.state == "queued" or print_job.state == "error"]
|
||||
|
||||
## Get remote print jobs that are assigned to a printer.
|
||||
@pyqtProperty("QVariantList", notify = printJobsChanged)
|
||||
@pyqtProperty("QVariantList", notify=printJobsChanged)
|
||||
def activePrintJobs(self) -> List[UM3PrintJobOutputModel]:
|
||||
return [print_job for print_job in self._print_jobs if
|
||||
print_job.assignedPrinter is not None and print_job.state != "queued"]
|
||||
|
||||
@pyqtSlot(int, result = str)
|
||||
## Set the remote print job state.
|
||||
def setJobState(self, print_job_uuid: str, state: str) -> None:
|
||||
self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, state)
|
||||
|
||||
@pyqtSlot(str)
|
||||
def sendJobToTop(self, print_job_uuid: str) -> None:
|
||||
self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, "move",
|
||||
{"list": "queued", "to_position": 0})
|
||||
|
||||
@pyqtSlot(str)
|
||||
def deleteJobFromQueue(self, print_job_uuid: str) -> None:
|
||||
self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, "remove")
|
||||
|
||||
@pyqtSlot(str)
|
||||
def forceSendJob(self, print_job_uuid: str) -> None:
|
||||
self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, "force")
|
||||
|
||||
@pyqtSlot(int, result=str)
|
||||
def formatDuration(self, seconds: int) -> str:
|
||||
return Duration(seconds).getDisplayString(DurationFormat.Format.Short)
|
||||
|
||||
@pyqtSlot(int, result = str)
|
||||
@pyqtSlot(int, result=str)
|
||||
def getTimeCompleted(self, time_remaining: int) -> str:
|
||||
return formatTimeCompleted(time_remaining)
|
||||
|
||||
@pyqtSlot(int, result = str)
|
||||
@pyqtSlot(int, result=str)
|
||||
def getDateCompleted(self, time_remaining: int) -> str:
|
||||
return formatDateCompleted(time_remaining)
|
||||
|
||||
@pyqtProperty(bool, notify=printJobsChanged)
|
||||
def receivedPrintJobs(self) -> bool:
|
||||
return bool(self._print_jobs)
|
||||
|
||||
@pyqtSlot()
|
||||
def openPrintJobControlPanel(self) -> None:
|
||||
QDesktopServices.openUrl(QUrl("https://mycloud.ultimaker.com"))
|
||||
|
||||
@pyqtSlot()
|
||||
def openPrinterControlPanel(self) -> None:
|
||||
QDesktopServices.openUrl(QUrl("https://mycloud.ultimaker.com"))
|
||||
|
||||
## TODO: The following methods are required by the monitor page QML, but are not actually available using cloud.
|
||||
# TODO: We fake the methods here to not break the monitor page.
|
||||
|
||||
@pyqtProperty(QUrl, notify = _clusterPrintersChanged)
|
||||
@pyqtProperty(QUrl, notify=_clusterPrintersChanged)
|
||||
def activeCameraUrl(self) -> "QUrl":
|
||||
return QUrl()
|
||||
|
||||
@ -422,30 +474,6 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
|
||||
def setActiveCameraUrl(self, camera_url: "QUrl") -> None:
|
||||
pass
|
||||
|
||||
@pyqtProperty(bool, notify = printJobsChanged)
|
||||
def receivedPrintJobs(self) -> bool:
|
||||
return bool(self._print_jobs)
|
||||
|
||||
@pyqtSlot()
|
||||
def openPrintJobControlPanel(self) -> None:
|
||||
pass
|
||||
|
||||
@pyqtSlot()
|
||||
def openPrinterControlPanel(self) -> None:
|
||||
pass
|
||||
|
||||
@pyqtSlot(str)
|
||||
def sendJobToTop(self, print_job_uuid: str) -> None:
|
||||
pass
|
||||
|
||||
@pyqtSlot(str)
|
||||
def deleteJobFromQueue(self, print_job_uuid: str) -> None:
|
||||
pass
|
||||
|
||||
@pyqtSlot(str)
|
||||
def forceSendJob(self, print_job_uuid: str) -> None:
|
||||
pass
|
||||
|
||||
@pyqtProperty("QVariantList", notify = _clusterPrintersChanged)
|
||||
@pyqtProperty("QVariantList", notify=_clusterPrintersChanged)
|
||||
def connectedPrintersTypeCount(self) -> List[Dict[str, str]]:
|
||||
return []
|
||||
|
@ -91,7 +91,6 @@ class CloudClusterPrintJobStatus(BaseCloudModel):
|
||||
def createOutputModel(self, controller: CloudOutputController) -> UM3PrintJobOutputModel:
|
||||
model = UM3PrintJobOutputModel(controller, self.uuid, self.name)
|
||||
self.updateOutputModel(model)
|
||||
|
||||
return model
|
||||
|
||||
## Creates a new configuration model
|
||||
|
@ -140,6 +140,11 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
if self._printer_selection_dialog is not None:
|
||||
self._printer_selection_dialog.show()
|
||||
|
||||
## Whether the printer that this output device represents supports print job actions via the local network.
|
||||
@pyqtProperty(bool, constant=True)
|
||||
def supportsPrintJobActions(self) -> bool:
|
||||
return True
|
||||
|
||||
@pyqtProperty(int, constant=True)
|
||||
def clusterSize(self) -> int:
|
||||
return self._cluster_size
|
||||
@ -385,6 +390,13 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
|
||||
data = "{\"force\": true}"
|
||||
self.put("print_jobs/{uuid}".format(uuid=print_job_uuid), data, on_finished=None)
|
||||
|
||||
# Set the remote print job state.
|
||||
def setJobState(self, print_job_uuid: str, state: str) -> None:
|
||||
# We rewrite 'resume' to 'print' here because we are using the old print job action endpoints.
|
||||
action = "print" if state == "resume" else state
|
||||
data = "{\"action\": \"%s\"}" % action
|
||||
self.put("print_jobs/%s/action" % print_job_uuid, data, on_finished=None)
|
||||
|
||||
def _printJobStateChanged(self) -> None:
|
||||
username = self._getUserName()
|
||||
|
||||
|
@ -7,6 +7,7 @@ MYPY = False
|
||||
if MYPY:
|
||||
from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
|
||||
|
||||
|
||||
class ClusterUM3PrinterOutputController(PrinterOutputController):
|
||||
def __init__(self, output_device):
|
||||
super().__init__(output_device)
|
||||
@ -15,6 +16,5 @@ class ClusterUM3PrinterOutputController(PrinterOutputController):
|
||||
self.can_control_manually = False
|
||||
self.can_send_raw_gcode = False
|
||||
|
||||
def setJobState(self, job: "PrintJobOutputModel", state: str):
|
||||
data = "{\"action\": \"%s\"}" % state
|
||||
self._output_device.put("print_jobs/%s/action" % job.key, data, on_finished=None)
|
||||
def setJobState(self, job: "PrintJobOutputModel", state: str) -> None:
|
||||
self._output_device.setJobState(job.key, state)
|
||||
|
@ -27,7 +27,7 @@ from UM.Version import Version
|
||||
|
||||
from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice
|
||||
from .Cloud.CloudOutputDeviceManager import CloudOutputDeviceManager
|
||||
from .Cloud.CloudOutputDevice import CloudOutputDevice # typing
|
||||
from .Cloud.CloudOutputDevice import CloudOutputDevice # typing
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from PyQt5.QtNetwork import QNetworkReply
|
||||
|
@ -72,9 +72,9 @@ class TestCloudOutputDevice(TestCase):
|
||||
|
||||
controller_fields = {
|
||||
"_output_device": self.device,
|
||||
"can_abort": False,
|
||||
"can_abort": True,
|
||||
"can_control_manually": False,
|
||||
"can_pause": False,
|
||||
"can_pause": True,
|
||||
"can_pre_heat_bed": False,
|
||||
"can_pre_heat_hotends": False,
|
||||
"can_send_raw_gcode": False,
|
||||
|
@ -14,7 +14,7 @@ def getMetaData() -> Dict[str, Any]:
|
||||
return {
|
||||
"version_upgrade": {
|
||||
# From To Upgrade function
|
||||
("preferences", 6000006): ("preferences", 6000007, upgrade.upgradePreferences),
|
||||
("preferences", 6000006): ("preferences", 6000007, upgrade.upgradePreferences),
|
||||
("machine_stack", 4000006): ("machine_stack", 4000007, upgrade.upgradeStack),
|
||||
("extruder_train", 4000006): ("extruder_train", 4000007, upgrade.upgradeStack),
|
||||
("definition_changes", 4000006): ("definition_changes", 4000007, upgrade.upgradeInstanceContainer),
|
||||
|
@ -0,0 +1,331 @@
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import configparser
|
||||
import io
|
||||
import os.path #To get the file ID.
|
||||
from typing import Dict, List, Tuple
|
||||
|
||||
from UM.VersionUpgrade import VersionUpgrade
|
||||
|
||||
_renamed_settings = {
|
||||
"support_minimal_diameter": "support_tower_maximum_supported_diameter"
|
||||
} #type: Dict[str, str]
|
||||
_removed_settings = ["prime_tower_circular", "max_feedrate_z_override"] # type: List[str]
|
||||
_renamed_profiles = {
|
||||
#Include CreawsomeMod profiles here as well for the people who installed that.
|
||||
#Definitions.
|
||||
"creawsome_base": "creality_base",
|
||||
"creawsome_cr10": "creality_cr10",
|
||||
"creawsome_cr10mini": "creality_cr10mini",
|
||||
"creawsome_cr10s": "creality_cr10s",
|
||||
"creawsome_cr10s4": "creality_cr10s4",
|
||||
"creawsome_cr10s5": "creality_cr10s5",
|
||||
"creawsome_cr10spro": "creality_cr10spro",
|
||||
"creawsome_cr20": "creality_cr20",
|
||||
"creawsome_cr20pro": "creality_cr20pro",
|
||||
"creawsome_ender2": "creality_ender2",
|
||||
"creawsome_ender3": "creality_ender3",
|
||||
"creawsome_ender4": "creality_ender4",
|
||||
"creawsome_ender5": "creality_ender5",
|
||||
|
||||
#Extruder definitions.
|
||||
"creawsome_base_extruder_0": "creality_base_extruder_0",
|
||||
|
||||
#Variants.
|
||||
"creawsome_base_0.2": "creality_base_0.2",
|
||||
"creawsome_base_0.3": "creality_base_0.3",
|
||||
"creawsome_base_0.4": "creality_base_0.4",
|
||||
"creawsome_base_0.5": "creality_base_0.5",
|
||||
"creawsome_base_0.6": "creality_base_0.6",
|
||||
"creawsome_base_0.8": "creality_base_0.8",
|
||||
"creawsome_base_1.0": "creality_base_1.0",
|
||||
"creawsome_cr10_0.2": "creality_cr10_0.2",
|
||||
"creawsome_cr10_0.3": "creality_cr10_0.3",
|
||||
"creawsome_cr10_0.4": "creality_cr10_0.4",
|
||||
"creawsome_cr10_0.5": "creality_cr10_0.5",
|
||||
"creawsome_cr10_0.6": "creality_cr10_0.6",
|
||||
"creawsome_cr10_0.8": "creality_cr10_0.8",
|
||||
"creawsome_cr10_1.0": "creality_cr10_1.0",
|
||||
"creawsome_cr10mini_0.2": "creality_cr10mini_0.2",
|
||||
"creawsome_cr10mini_0.3": "creality_cr10mini_0.3",
|
||||
"creawsome_cr10mini_0.4": "creality_cr10mini_0.4",
|
||||
"creawsome_cr10mini_0.5": "creality_cr10mini_0.5",
|
||||
"creawsome_cr10mini_0.6": "creality_cr10mini_0.6",
|
||||
"creawsome_cr10mini_0.8": "creality_cr10mini_0.8",
|
||||
"creawsome_cr10mini_1.0": "creality_cr10mini_1.0",
|
||||
"creawsome_cr10s4_0.2": "creality_cr10s4_0.2",
|
||||
"creawsome_cr10s4_0.3": "creality_cr10s4_0.3",
|
||||
"creawsome_cr10s4_0.4": "creality_cr10s4_0.4",
|
||||
"creawsome_cr10s4_0.5": "creality_cr10s4_0.5",
|
||||
"creawsome_cr10s4_0.6": "creality_cr10s4_0.6",
|
||||
"creawsome_cr10s4_0.8": "creality_cr10s4_0.8",
|
||||
"creawsome_cr10s4_1.0": "creality_cr10s4_1.0",
|
||||
"creawsome_cr10s5_0.2": "creality_cr10s5_0.2",
|
||||
"creawsome_cr10s5_0.3": "creality_cr10s5_0.3",
|
||||
"creawsome_cr10s5_0.4": "creality_cr10s5_0.4",
|
||||
"creawsome_cr10s5_0.5": "creality_cr10s5_0.5",
|
||||
"creawsome_cr10s5_0.6": "creality_cr10s5_0.6",
|
||||
"creawsome_cr10s5_0.8": "creality_cr10s5_0.8",
|
||||
"creawsome_cr10s5_1.0": "creality_cr10s5_1.0",
|
||||
"creawsome_cr10s_0.2": "creality_cr10s_0.2",
|
||||
"creawsome_cr10s_0.3": "creality_cr10s_0.3",
|
||||
"creawsome_cr10s_0.4": "creality_cr10s_0.4",
|
||||
"creawsome_cr10s_0.5": "creality_cr10s_0.5",
|
||||
"creawsome_cr10s_0.6": "creality_cr10s_0.6",
|
||||
"creawsome_cr10s_0.8": "creality_cr10s_0.8",
|
||||
"creawsome_cr10s_1.0": "creality_cr10s_1.0",
|
||||
"creawsome_cr10spro_0.2": "creality_cr10spro_0.2",
|
||||
"creawsome_cr10spro_0.3": "creality_cr10spro_0.3",
|
||||
"creawsome_cr10spro_0.4": "creality_cr10spro_0.4",
|
||||
"creawsome_cr10spro_0.5": "creality_cr10spro_0.5",
|
||||
"creawsome_cr10spro_0.6": "creality_cr10spro_0.6",
|
||||
"creawsome_cr10spro_0.8": "creality_cr10spro_0.8",
|
||||
"creawsome_cr10spro_1.0": "creality_cr10spro_1.0",
|
||||
"creawsome_cr20_0.2": "creality_cr20_0.2",
|
||||
"creawsome_cr20_0.3": "creality_cr20_0.3",
|
||||
"creawsome_cr20_0.4": "creality_cr20_0.4",
|
||||
"creawsome_cr20_0.5": "creality_cr20_0.5",
|
||||
"creawsome_cr20_0.6": "creality_cr20_0.6",
|
||||
"creawsome_cr20_0.8": "creality_cr20_0.8",
|
||||
"creawsome_cr20_1.0": "creality_cr20_1.0",
|
||||
"creawsome_cr20pro_0.2": "creality_cr20pro_0.2",
|
||||
"creawsome_cr20pro_0.3": "creality_cr20pro_0.3",
|
||||
"creawsome_cr20pro_0.4": "creality_cr20pro_0.4",
|
||||
"creawsome_cr20pro_0.5": "creality_cr20pro_0.5",
|
||||
"creawsome_cr20pro_0.6": "creality_cr20pro_0.6",
|
||||
"creawsome_cr20pro_0.8": "creality_cr20pro_0.8",
|
||||
"creawsome_cr20pro_1.0": "creality_cr20pro_1.0",
|
||||
"creawsome_ender2_0.2": "creality_ender2_0.2",
|
||||
"creawsome_ender2_0.3": "creality_ender2_0.3",
|
||||
"creawsome_ender2_0.4": "creality_ender2_0.4",
|
||||
"creawsome_ender2_0.5": "creality_ender2_0.5",
|
||||
"creawsome_ender2_0.6": "creality_ender2_0.6",
|
||||
"creawsome_ender2_0.8": "creality_ender2_0.8",
|
||||
"creawsome_ender2_1.0": "creality_ender2_1.0",
|
||||
"creawsome_ender3_0.2": "creality_ender3_0.2",
|
||||
"creawsome_ender3_0.3": "creality_ender3_0.3",
|
||||
"creawsome_ender3_0.4": "creality_ender3_0.4",
|
||||
"creawsome_ender3_0.5": "creality_ender3_0.5",
|
||||
"creawsome_ender3_0.6": "creality_ender3_0.6",
|
||||
"creawsome_ender3_0.8": "creality_ender3_0.8",
|
||||
"creawsome_ender3_1.0": "creality_ender3_1.0",
|
||||
"creawsome_ender4_0.2": "creality_ender4_0.2",
|
||||
"creawsome_ender4_0.3": "creality_ender4_0.3",
|
||||
"creawsome_ender4_0.4": "creality_ender4_0.4",
|
||||
"creawsome_ender4_0.5": "creality_ender4_0.5",
|
||||
"creawsome_ender4_0.6": "creality_ender4_0.6",
|
||||
"creawsome_ender4_0.8": "creality_ender4_0.8",
|
||||
"creawsome_ender4_1.0": "creality_ender4_1.0",
|
||||
"creawsome_ender5_0.2": "creality_ender5_0.2",
|
||||
"creawsome_ender5_0.3": "creality_ender5_0.3",
|
||||
"creawsome_ender5_0.4": "creality_ender5_0.4",
|
||||
"creawsome_ender5_0.5": "creality_ender5_0.5",
|
||||
"creawsome_ender5_0.6": "creality_ender5_0.6",
|
||||
"creawsome_ender5_0.8": "creality_ender5_0.8",
|
||||
"creawsome_ender5_1.0": "creality_ender5_1.0",
|
||||
|
||||
#Upgrade for people who had the original Creality profiles from 4.1 and earlier.
|
||||
"creality_cr10_extruder_0": "creality_base_extruder_0",
|
||||
"creality_cr10s4_extruder_0": "creality_base_extruder_0",
|
||||
"creality_cr10s5_extruder_0": "creality_base_extruder_0",
|
||||
"creality_ender3_extruder_0": "creality_base_extruder_0"
|
||||
}
|
||||
|
||||
#For legacy Creality printers, select the correct quality profile depending on the material.
|
||||
_creality_quality_per_material = {
|
||||
#Since legacy Creality printers didn't have different variants, we always pick the 0.4mm variant.
|
||||
"generic_abs_175": {
|
||||
"high": "base_0.4_ABS_super",
|
||||
"normal": "base_0.4_ABS_super",
|
||||
"fast": "base_0.4_ABS_super",
|
||||
"draft": "base_0.4_ABS_standard",
|
||||
"extra_fast": "base_0.4_ABS_low",
|
||||
"coarse": "base_0.4_ABS_low",
|
||||
"extra_coarse": "base_0.4_ABS_low"
|
||||
},
|
||||
"generic_petg_175": {
|
||||
"high": "base_0.4_PETG_super",
|
||||
"normal": "base_0.4_PETG_super",
|
||||
"fast": "base_0.4_PETG_super",
|
||||
"draft": "base_0.4_PETG_standard",
|
||||
"extra_fast": "base_0.4_PETG_low",
|
||||
"coarse": "base_0.4_PETG_low",
|
||||
"extra_coarse": "base_0.4_PETG_low"
|
||||
},
|
||||
"generic_pla_175": {
|
||||
"high": "base_0.4_PLA_super",
|
||||
"normal": "base_0.4_PLA_super",
|
||||
"fast": "base_0.4_PLA_super",
|
||||
"draft": "base_0.4_PLA_standard",
|
||||
"extra_fast": "base_0.4_PLA_low",
|
||||
"coarse": "base_0.4_PLA_low",
|
||||
"extra_coarse": "base_0.4_PLA_low"
|
||||
},
|
||||
"generic_tpu_175": {
|
||||
"high": "base_0.4_TPU_super",
|
||||
"normal": "base_0.4_TPU_super",
|
||||
"fast": "base_0.4_TPU_super",
|
||||
"draft": "base_0.4_TPU_standard",
|
||||
"extra_fast": "base_0.4_TPU_standard",
|
||||
"coarse": "base_0.4_TPU_standard",
|
||||
"extra_coarse": "base_0.4_TPU_standard"
|
||||
},
|
||||
"empty_material": { #For the global stack.
|
||||
"high": "base_global_super",
|
||||
"normal": "base_global_super",
|
||||
"fast": "base_global_super",
|
||||
"draft": "base_global_standard",
|
||||
"extra_fast": "base_global_low",
|
||||
"coarse": "base_global_low",
|
||||
"extra_coarse": "base_global_low"
|
||||
}
|
||||
}
|
||||
|
||||
#Default variant to select for legacy Creality printers, now that we have variants.
|
||||
_default_variants = {
|
||||
"creality_cr10_extruder_0": "creality_cr10_0.4",
|
||||
"creality_cr10s4_extruder_0": "creality_cr10s4_0.4",
|
||||
"creality_cr10s5_extruder_0": "creality_cr10s5_0.4",
|
||||
"creality_ender3_extruder_0": "creality_ender3_0.4"
|
||||
}
|
||||
|
||||
#Whether the quality changes profile belongs to one of the upgraded printers can only be recognised by how they start.
|
||||
#If they are, they must use the creality base definition so that they still belong to those printers.
|
||||
_quality_changes_to_creality_base = {
|
||||
"creality_cr10_extruder_0",
|
||||
"creality_cr10s4_extruder_0",
|
||||
"creality_cr10s5_extruder_0",
|
||||
"creality_ender3_extruder_0"
|
||||
"creality_cr10",
|
||||
"creality_cr10s4",
|
||||
"creality_cr10s5",
|
||||
"creality_ender3",
|
||||
}
|
||||
_creality_limited_quality_type = {
|
||||
"high": "super",
|
||||
"normal": "super",
|
||||
"fast": "super",
|
||||
"draft": "draft",
|
||||
"extra_fast": "draft",
|
||||
"coarse": "draft",
|
||||
"extra_coarse": "draft"
|
||||
}
|
||||
|
||||
## Upgrades configurations from the state they were in at version 4.1 to the
|
||||
# state they should be in at version 4.2.
|
||||
class VersionUpgrade41to42(VersionUpgrade):
|
||||
## Gets the version number from a CFG file in Uranium's 4.1 format.
|
||||
#
|
||||
# Since the format may change, this is implemented for the 4.1 format only
|
||||
# and needs to be included in the version upgrade system rather than
|
||||
# globally in Uranium.
|
||||
#
|
||||
# \param serialised The serialised form of a CFG file.
|
||||
# \return The version number stored in the CFG file.
|
||||
# \raises ValueError The format of the version number in the file is
|
||||
# incorrect.
|
||||
# \raises KeyError The format of the file is incorrect.
|
||||
def getCfgVersion(self, serialised: str) -> int:
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialised)
|
||||
format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
|
||||
setting_version = int(parser.get("metadata", "setting_version", fallback = "0"))
|
||||
return format_version * 1000000 + setting_version
|
||||
|
||||
## Upgrades instance containers to have the new version
|
||||
# number.
|
||||
#
|
||||
# This renames the renamed settings in the containers.
|
||||
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialized)
|
||||
|
||||
#Update version number.
|
||||
parser["metadata"]["setting_version"] = "8"
|
||||
|
||||
#Rename settings.
|
||||
if "values" in parser:
|
||||
for old_name, new_name in _renamed_settings.items():
|
||||
if old_name in parser["values"]:
|
||||
parser["values"][new_name] = parser["values"][old_name]
|
||||
del parser["values"][old_name]
|
||||
#Remove settings.
|
||||
for key in _removed_settings:
|
||||
if key in parser["values"]:
|
||||
del parser["values"][key]
|
||||
|
||||
#For quality-changes profiles made for Creality printers, change the definition to the creality_base and make sure that the quality is something we have a profile for.
|
||||
if parser["metadata"].get("type", "") == "quality_changes":
|
||||
for possible_printer in _quality_changes_to_creality_base:
|
||||
if os.path.basename(filename).startswith(possible_printer + "_"):
|
||||
parser["general"]["definition"] = "creality_base"
|
||||
parser["metadata"]["quality_type"] = _creality_limited_quality_type.get(parser["metadata"]["quality_type"], "draft")
|
||||
break
|
||||
|
||||
result = io.StringIO()
|
||||
parser.write(result)
|
||||
return [filename], [result.getvalue()]
|
||||
|
||||
## Upgrades Preferences to have the new version number.
|
||||
#
|
||||
# This renames the renamed settings in the list of visible settings.
|
||||
def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialized)
|
||||
|
||||
#Update version number.
|
||||
parser["metadata"]["setting_version"] = "8"
|
||||
|
||||
#Renamed settings.
|
||||
if "visible_settings" in parser["general"]:
|
||||
visible_settings = parser["general"]["visible_settings"]
|
||||
visible_setting_set = set(visible_settings.split(";"))
|
||||
for old_name, new_name in _renamed_settings.items():
|
||||
if old_name in visible_setting_set:
|
||||
visible_setting_set.remove(old_name)
|
||||
visible_setting_set.add(new_name)
|
||||
for removed_key in _removed_settings:
|
||||
if removed_key in visible_setting_set:
|
||||
visible_setting_set.remove(removed_key)
|
||||
parser["general"]["visible_settings"] = ";".join(visible_setting_set)
|
||||
|
||||
result = io.StringIO()
|
||||
parser.write(result)
|
||||
return [filename], [result.getvalue()]
|
||||
|
||||
## Upgrades stacks to have the new version number.
|
||||
def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialized)
|
||||
|
||||
#Update version number.
|
||||
parser["metadata"]["setting_version"] = "8"
|
||||
|
||||
#Change renamed profiles.
|
||||
if "containers" in parser:
|
||||
#For legacy Creality printers, change the variant to 0.4.
|
||||
definition_id = parser["containers"]["6"]
|
||||
if parser["metadata"].get("type", "machine") == "extruder_train":
|
||||
if parser["containers"]["4"] == "empty_variant": #Necessary for people entering from CreawsomeMod who already had a variant.
|
||||
if definition_id in _default_variants:
|
||||
parser["containers"]["4"] = _default_variants[definition_id]
|
||||
if definition_id == "creality_cr10_extruder_0": #We can't disambiguate between Creality CR-10 and Creality-CR10S since they share the same extruder definition. Have to go by the name.
|
||||
if "cr-10s" in parser["metadata"].get("machine", "Creality CR-10").lower(): #Not perfect, since the user can change this name :(
|
||||
parser["containers"]["4"] = "creality_cr10s_0.4"
|
||||
|
||||
#Also change the quality to go along with it.
|
||||
material_id = parser["containers"]["3"]
|
||||
old_quality_id = parser["containers"]["2"]
|
||||
if material_id in _creality_quality_per_material and old_quality_id in _creality_quality_per_material[material_id]:
|
||||
parser["containers"]["2"] = _creality_quality_per_material[material_id][old_quality_id]
|
||||
|
||||
stack_copy = {} # type: Dict[str, str] #Make a copy so that we don't modify the dict we're iterating over.
|
||||
stack_copy.update(parser["containers"])
|
||||
for position, profile_id in stack_copy.items():
|
||||
if profile_id in _renamed_profiles:
|
||||
parser["containers"][position] = _renamed_profiles[profile_id]
|
||||
|
||||
result = io.StringIO()
|
||||
parser.write(result)
|
||||
return [filename], [result.getvalue()]
|
59
plugins/VersionUpgrade/VersionUpgrade41to42/__init__.py
Normal file
59
plugins/VersionUpgrade/VersionUpgrade41to42/__init__.py
Normal file
@ -0,0 +1,59 @@
|
||||
# Copyright (c) 2019 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from typing import Any, Dict, TYPE_CHECKING
|
||||
|
||||
from . import VersionUpgrade41to42
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from UM.Application import Application
|
||||
|
||||
upgrade = VersionUpgrade41to42.VersionUpgrade41to42()
|
||||
|
||||
def getMetaData() -> Dict[str, Any]:
|
||||
return {
|
||||
"version_upgrade": {
|
||||
# From To Upgrade function
|
||||
("preferences", 6000007): ("preferences", 6000008, upgrade.upgradePreferences),
|
||||
("machine_stack", 4000007): ("machine_stack", 4000008, upgrade.upgradeStack),
|
||||
("extruder_train", 4000007): ("extruder_train", 4000008, upgrade.upgradeStack),
|
||||
("definition_changes", 4000007): ("definition_changes", 4000008, upgrade.upgradeInstanceContainer),
|
||||
("quality_changes", 4000007): ("quality_changes", 4000008, upgrade.upgradeInstanceContainer),
|
||||
("quality", 4000007): ("quality", 4000008, upgrade.upgradeInstanceContainer),
|
||||
("user", 4000007): ("user", 4000008, upgrade.upgradeInstanceContainer),
|
||||
},
|
||||
"sources": {
|
||||
"preferences": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"."}
|
||||
},
|
||||
"machine_stack": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./machine_instances"}
|
||||
},
|
||||
"extruder_train": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./extruders"}
|
||||
},
|
||||
"definition_changes": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./definition_changes"}
|
||||
},
|
||||
"quality_changes": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./quality_changes"}
|
||||
},
|
||||
"quality": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./quality"}
|
||||
},
|
||||
"user": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./user"}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def register(app: "Application") -> Dict[str, Any]:
|
||||
return { "version_upgrade": upgrade }
|
8
plugins/VersionUpgrade/VersionUpgrade41to42/plugin.json
Normal file
8
plugins/VersionUpgrade/VersionUpgrade41to42/plugin.json
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "Version Upgrade 4.1 to 4.2",
|
||||
"author": "Ultimaker B.V.",
|
||||
"version": "1.0.0",
|
||||
"description": "Upgrades configurations from Cura 4.1 to Cura 4.2.",
|
||||
"api": "6.0",
|
||||
"i18n-catalog": "cura"
|
||||
}
|
@ -63,9 +63,19 @@ class XmlMaterialProfile(InstanceContainer):
|
||||
Logger.log("w", "Can't change metadata {key} of material {material_id} because it's read-only.".format(key = key, material_id = self.getId()))
|
||||
return
|
||||
|
||||
# Some metadata such as diameter should also be instantiated to be a setting. Go though all values for the
|
||||
# "properties" field and apply the new values to SettingInstances as well.
|
||||
new_setting_values_dict = {}
|
||||
if key == "properties":
|
||||
for k, v in value.items():
|
||||
if k in self.__material_properties_setting_map:
|
||||
new_setting_values_dict[self.__material_properties_setting_map[k]] = v
|
||||
|
||||
# Prevent recursion
|
||||
if not apply_to_all:
|
||||
super().setMetaDataEntry(key, value)
|
||||
for k, v in new_setting_values_dict.items():
|
||||
self.setProperty(k, "value", v)
|
||||
return
|
||||
|
||||
# Get the MaterialGroup
|
||||
@ -74,17 +84,23 @@ class XmlMaterialProfile(InstanceContainer):
|
||||
material_group = material_manager.getMaterialGroup(root_material_id)
|
||||
if not material_group: #If the profile is not registered in the registry but loose/temporary, it will not have a base file tree.
|
||||
super().setMetaDataEntry(key, value)
|
||||
for k, v in new_setting_values_dict.items():
|
||||
self.setProperty(k, "value", v)
|
||||
return
|
||||
# Update the root material container
|
||||
root_material_container = material_group.root_material_node.getContainer()
|
||||
if root_material_container is not None:
|
||||
root_material_container.setMetaDataEntry(key, value, apply_to_all = False)
|
||||
for k, v in new_setting_values_dict.items():
|
||||
root_material_container.setProperty(k, "value", v)
|
||||
|
||||
# Update all containers derived from it
|
||||
for node in material_group.derived_material_node_list:
|
||||
container = node.getContainer()
|
||||
if container is not None:
|
||||
container.setMetaDataEntry(key, value, apply_to_all = False)
|
||||
for k, v in new_setting_values_dict.items():
|
||||
container.setProperty(k, "value", v)
|
||||
|
||||
## Overridden from InstanceContainer, similar to setMetaDataEntry.
|
||||
# without this function the setName would only set the name of the specific nozzle / material / machine combination container
|
||||
@ -1180,6 +1196,13 @@ class XmlMaterialProfile(InstanceContainer):
|
||||
"surface energy": "material_surface_energy",
|
||||
"shrinkage percentage": "material_shrinkage_percentage",
|
||||
"build volume temperature": "build_volume_temperature",
|
||||
"anti ooze retracted position": "material_anti_ooze_retracted_position",
|
||||
"anti ooze retract speed": "material_anti_ooze_retraction_speed",
|
||||
"break preparation retracted position": "material_break_preparation_retracted_position",
|
||||
"break preparation speed": "material_break_preparation_speed",
|
||||
"break retracted position": "material_break_retracted_position",
|
||||
"break speed": "material_break_speed",
|
||||
"break temperature": "material_break_temperature"
|
||||
}
|
||||
__unmapped_settings = [
|
||||
"hardware compatible",
|
||||
|
@ -5,7 +5,7 @@
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "na",
|
||||
"author": "unknown",
|
||||
"manufacturer": "BIBO",
|
||||
"category": "Other",
|
||||
"file_formats": "text/x-gcode",
|
||||
|
263
resources/definitions/creality_base.def.json
Normal file
263
resources/definitions/creality_base.def.json
Normal file
@ -0,0 +1,263 @@
|
||||
{
|
||||
"name": "Creawsome Base Printer",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creawsome Base Printer" },
|
||||
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\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\nG1 X0 Y{machine_depth} ;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_max_feedrate_x": { "value": 500 },
|
||||
"machine_max_feedrate_y": { "value": 500 },
|
||||
"machine_max_feedrate_z": { "value": 5 },
|
||||
"machine_max_feedrate_e": { "value": 50 },
|
||||
|
||||
"machine_max_acceleration_x": { "value": 500 },
|
||||
"machine_max_acceleration_y": { "value": 500 },
|
||||
"machine_max_acceleration_z": { "value": 100 },
|
||||
"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 },
|
||||
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
|
||||
"acceleration_print": { "value": 500 },
|
||||
"acceleration_travel": { "value": 500 },
|
||||
"acceleration_travel_layer_0": { "value": "acceleration_travel" },
|
||||
"acceleration_roofing": { "enabled": "acceleration_enabled and roofing_layer_count > 0 and top_layers > 0" },
|
||||
|
||||
"jerk_print": { "value": 8 },
|
||||
"jerk_travel": { "value": "jerk_print" },
|
||||
"jerk_travel_layer_0": { "value": "jerk_travel" },
|
||||
|
||||
"acceleration_enabled": { "value": false },
|
||||
"jerk_enabled": { "value": false },
|
||||
|
||||
"speed_print": { "value": 50.0 } ,
|
||||
"speed_infill": { "value": "speed_print" },
|
||||
"speed_wall": { "value": "speed_print / 2" },
|
||||
"speed_wall_0": { "value": "speed_wall" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"speed_topbottom": { "value": "speed_print / 2" },
|
||||
"speed_roofing": { "value": "speed_topbottom" },
|
||||
"speed_travel": { "value": "150.0 if speed_print < 60 else 250.0 if speed_print > 100 else speed_print * 2.5" },
|
||||
"speed_layer_0": { "value": 20.0 },
|
||||
"speed_print_layer_0": { "value": "speed_layer_0" },
|
||||
"speed_travel_layer_0": { "value": "100 if speed_layer_0 < 20 else 150 if speed_layer_0 > 30 else speed_layer_0 * 5" },
|
||||
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||
"speed_support": { "value": "speed_wall_0" },
|
||||
"speed_support_interface": { "value": "speed_topbottom" },
|
||||
|
||||
"skirt_brim_speed": { "value": "speed_layer_0" },
|
||||
|
||||
"line_width": { "value": "machine_nozzle_size * 1.1"},
|
||||
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature"},
|
||||
"material_final_print_temperature": { "value": "material_print_temperature"},
|
||||
"material_flow": { "value": 100},
|
||||
|
||||
"z_seam_type": { "value": "'back'"},
|
||||
"z_seam_corner": { "value": "'z_seam_corner_none'"},
|
||||
|
||||
"infill_sparse_density": { "value": "20"},
|
||||
"infill_pattern": { "value": "'lines' if infill_sparse_density > 50 else 'cubic'"},
|
||||
"infill_before_walls": { "value": false },
|
||||
"infill_overlap": { "value": 30.0 },
|
||||
"skin_overlap": { "value": 10.0 },
|
||||
"infill_wipe_dist": { "value": 0.0 },
|
||||
"wall_0_wipe_dist": { "value": 0.0 },
|
||||
|
||||
"fill_perimeter_gaps": { "value": "'everywhere'" },
|
||||
"fill_outline_gaps": { "value": false },
|
||||
"filter_out_tiny_gaps": { "value": false },
|
||||
|
||||
"retraction_speed": {
|
||||
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||
"maximum_value": 200
|
||||
},
|
||||
"retraction_retract_speed": {
|
||||
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||
"maximum_value": 200
|
||||
},
|
||||
"retraction_prime_speed": {
|
||||
"maximum_value_warning": "machine_max_feedrate_e if retraction_enable else float('inf')",
|
||||
"maximum_value": 200
|
||||
},
|
||||
|
||||
"retraction_hop_enabled": { "value": "support_enable" },
|
||||
"retraction_hop": { "value": 0.2 },
|
||||
"retraction_combing": { "value": "'off' if retraction_hop_enabled else 'infill'"},
|
||||
"retraction_combing_max_distance": { "value": 30},
|
||||
"travel_avoid_other_parts": { "value": true },
|
||||
"travel_avoid_supports": { "value": true },
|
||||
"travel_retract_before_outer_wall": { "value": true },
|
||||
|
||||
"retraction_enable": { "value": true },
|
||||
"retraction_count_max": { "value": 100 },
|
||||
"retraction_extrusion_window": { "value": 10 },
|
||||
"retraction_min_travel": { "value": 1.5 },
|
||||
|
||||
"cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" },
|
||||
"cool_fan_enabled": { "value": true },
|
||||
"cool_min_layer_time": { "value": 10 },
|
||||
|
||||
"adhesion_type": { "value": "'none' if support_enable else 'skirt'" },
|
||||
"brim_replaces_support": { "value": false},
|
||||
"skirt_gap": { "value": 10.0 },
|
||||
"skirt_line_count": { "value": 4 },
|
||||
|
||||
"adaptive_layer_height_variation": { "value": 0.04},
|
||||
"adaptive_layer_height_variation_step": { "value": 0.04 },
|
||||
|
||||
"meshfix_maximum_resolution": { "value": "0.05" },
|
||||
"meshfix_maximum_travel_resolution": { "value": "meshfix_maximum_resolution" },
|
||||
|
||||
"support_type": { "value": "'buildplate'"},
|
||||
"support_angle": { "value": "math.floor(math.degrees(math.atan(line_width/2.0/layer_height)))" },
|
||||
"support_pattern": { "value": "'zigzag'" },
|
||||
"support_infill_rate": { "value": "0 if support_tree_enable else 20" },
|
||||
"support_use_towers": { "value": false },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2" },
|
||||
"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_xy_overrides_z": { "value": "'xy_overrides_z'" },
|
||||
"support_wall_count": { "value": 1},
|
||||
"support_brim_enable": { "value": true},
|
||||
"support_brim_width": { "value": 4},
|
||||
|
||||
"support_interface_enable": { "value": true },
|
||||
"support_interface_height": { "value": "layer_height * 4" },
|
||||
"support_interface_density": { "value": 33.333 },
|
||||
"support_interface_pattern": { "value": "'grid'" },
|
||||
"support_interface_skip_height": { "value": 0.2},
|
||||
"minimum_support_area": { "value": 10},
|
||||
"minimum_interface_area": { "value": 10}
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"visible": false,
|
||||
"author": "trouch.com",
|
||||
"manufacturer": "Creality3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"first_start_actions": ["MachineSettingsAction"],
|
||||
|
||||
"machine_extruder_trains": {
|
||||
"0": "creality_base_extruder_0"
|
||||
},
|
||||
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"has_machine_quality": true,
|
||||
"has_machine_materials": true,
|
||||
"variants_name": "Nozzle Size",
|
||||
|
||||
"preferred_variant_name": "0.4mm Nozzle",
|
||||
"preferred_quality_type": "standard",
|
||||
"preferred_material": "generic_pla",
|
||||
"exclude_materials": [
|
||||
"Vertex_Delta_ABS",
|
||||
"Vertex_Delta_PET",
|
||||
"Vertex_Delta_PLA",
|
||||
"Vertex_Delta_TPU",
|
||||
"chromatik_pla",
|
||||
"dsm_arnitel2045_175",
|
||||
"dsm_novamid1070_175",
|
||||
"fabtotum_abs",
|
||||
"fabtotum_nylon",
|
||||
"fabtotum_pla",
|
||||
"fabtotum_tpu",
|
||||
"fiberlogy_hd_pla",
|
||||
"filo3d_pla",
|
||||
"filo3d_pla_green",
|
||||
"filo3d_pla_red",
|
||||
"generic_abs",
|
||||
"generic_bam",
|
||||
"generic_cffcpe",
|
||||
"generic_cffpa",
|
||||
"generic_cpe",
|
||||
"generic_cpe_plus",
|
||||
"generic_gffcpe",
|
||||
"generic_gffpa",
|
||||
"generic_hips",
|
||||
"generic_nylon",
|
||||
"generic_pc",
|
||||
"generic_petg",
|
||||
"generic_pla",
|
||||
"generic_pp",
|
||||
"generic_pva",
|
||||
"generic_tough_pla",
|
||||
"generic_tpu",
|
||||
"imade3d_petg_green",
|
||||
"imade3d_petg_pink",
|
||||
"imade3d_pla_green",
|
||||
"imade3d_pla_pink",
|
||||
"innofill_innoflex60_175",
|
||||
"octofiber_pla",
|
||||
"polyflex_pla",
|
||||
"polymax_pla",
|
||||
"polyplus_pla",
|
||||
"polywood_pla",
|
||||
"structur3d_dap100silicone",
|
||||
"tizyx_abs",
|
||||
"tizyx_pla",
|
||||
"tizyx_pla_bois",
|
||||
"ultimaker_abs_black",
|
||||
"ultimaker_abs_blue",
|
||||
"ultimaker_abs_green",
|
||||
"ultimaker_abs_grey",
|
||||
"ultimaker_abs_orange",
|
||||
"ultimaker_abs_pearl-gold",
|
||||
"ultimaker_abs_red",
|
||||
"ultimaker_abs_silver-metallic",
|
||||
"ultimaker_abs_white",
|
||||
"ultimaker_abs_yellow",
|
||||
"ultimaker_bam",
|
||||
"ultimaker_cpe_black",
|
||||
"ultimaker_cpe_blue",
|
||||
"ultimaker_cpe_dark-grey",
|
||||
"ultimaker_cpe_green",
|
||||
"ultimaker_cpe_light-grey",
|
||||
"ultimaker_cpe_plus_black",
|
||||
"ultimaker_cpe_plus_transparent",
|
||||
"ultimaker_cpe_plus_white",
|
||||
"ultimaker_cpe_red",
|
||||
"ultimaker_cpe_transparent",
|
||||
"ultimaker_cpe_white",
|
||||
"ultimaker_cpe_yellow",
|
||||
"ultimaker_nylon_black",
|
||||
"ultimaker_nylon_transparent",
|
||||
"ultimaker_pc_black",
|
||||
"ultimaker_pc_transparent",
|
||||
"ultimaker_pc_white",
|
||||
"ultimaker_pla_black",
|
||||
"ultimaker_pla_blue",
|
||||
"ultimaker_pla_green",
|
||||
"ultimaker_pla_magenta",
|
||||
"ultimaker_pla_orange",
|
||||
"ultimaker_pla_pearl-white",
|
||||
"ultimaker_pla_red",
|
||||
"ultimaker_pla_silver-metallic",
|
||||
"ultimaker_pla_transparent",
|
||||
"ultimaker_pla_white",
|
||||
"ultimaker_pla_yellow",
|
||||
"ultimaker_pp_transparent",
|
||||
"ultimaker_pva",
|
||||
"ultimaker_tough_pla_black",
|
||||
"ultimaker_tough_pla_green",
|
||||
"ultimaker_tough_pla_red",
|
||||
"ultimaker_tough_pla_white",
|
||||
"ultimaker_tpu_black",
|
||||
"ultimaker_tpu_blue",
|
||||
"ultimaker_tpu_red",
|
||||
"ultimaker_tpu_white",
|
||||
"verbatim_bvoh_175",
|
||||
"zyyx_pro_flex",
|
||||
"zyyx_pro_pla"
|
||||
]
|
||||
}
|
||||
}
|
@ -1,95 +1,32 @@
|
||||
{
|
||||
"name": "Creality CR-10",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Michael Wildermuth",
|
||||
"manufacturer": "Creality3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "creality_cr10_extruder_0"
|
||||
}
|
||||
},
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_width": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 400
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-30, 34],
|
||||
[-30, -32],
|
||||
[30, -32],
|
||||
[30, 34]
|
||||
"machine_name": { "default_value": "Creality CR-10" },
|
||||
"machine_width": { "default_value": 300 },
|
||||
"machine_depth": { "default_value": 300 },
|
||||
"machine_height": { "default_value": 400 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.2
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
"top_bottom_thickness": {
|
||||
"default_value": 0.6
|
||||
},
|
||||
"top_bottom_pattern_0": {
|
||||
"default_value": "concentric"
|
||||
},
|
||||
"infill_pattern": {
|
||||
"value": "'triangles'"
|
||||
},
|
||||
"retraction_enable": {
|
||||
"default_value": true
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 5
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 40
|
||||
},
|
||||
"cool_min_layer_time": {
|
||||
"default_value": 10
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"skirt_line_count": {
|
||||
"default_value": 4
|
||||
},
|
||||
"skirt_gap": {
|
||||
"default_value": 5
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "G91\nG1 F1800 E-3\nG1 F3000 Z10\nG90\nG28 X0 Y0 ; home x and y axis\nM106 S0 ; turn off cooling fan\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors"
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"gantry_height": {
|
||||
"value": "30"
|
||||
},
|
||||
"acceleration_enabled": {
|
||||
"default_value": true
|
||||
},
|
||||
"acceleration_print": {
|
||||
"default_value": 500
|
||||
},
|
||||
"acceleration_travel": {
|
||||
"default_value": 500
|
||||
},
|
||||
"jerk_enabled": {
|
||||
"default_value": true
|
||||
},
|
||||
"jerk_print": {
|
||||
"default_value": 8
|
||||
},
|
||||
"jerk_travel": {
|
||||
"default_value": 8
|
||||
}
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
32
resources/definitions/creality_cr10mini.def.json
Normal file
32
resources/definitions/creality_cr10mini.def.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Creality CR-10 Mini",
|
||||
"version": 2,
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality CR-10 Mini" },
|
||||
"machine_width": { "default_value": 300 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
@ -1,5 +1,11 @@
|
||||
{
|
||||
"name": "Creality CR-10S",
|
||||
"version": 2,
|
||||
"inherits": "creality_cr10"
|
||||
"inherits": "creality_cr10",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality CR-10S" }
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base"
|
||||
}
|
||||
}
|
@ -1,26 +1,32 @@
|
||||
{
|
||||
"name": "Creality CR-10 S4",
|
||||
"name": "Creality CR-10S4",
|
||||
"version": 2,
|
||||
"inherits": "creality_cr10",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Michael Wildermuth",
|
||||
"manufacturer": "Creality3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "creality_cr10s4_extruder_0"
|
||||
}
|
||||
},
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_width": {
|
||||
"default_value": 400
|
||||
"machine_name": { "default_value": "Creality CR-10S4" },
|
||||
"machine_width": { "default_value": 400 },
|
||||
"machine_depth": { "default_value": 400 },
|
||||
"machine_height": { "default_value": 400 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 400
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 400
|
||||
}
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
@ -1,26 +1,32 @@
|
||||
{
|
||||
"name": "Creality CR-10 S5",
|
||||
"name": "Creality CR-10S5",
|
||||
"version": 2,
|
||||
"inherits": "creality_cr10",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Michael Wildermuth",
|
||||
"manufacturer": "Creality3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "creality_cr10s5_extruder_0"
|
||||
}
|
||||
},
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_width": {
|
||||
"default_value": 500
|
||||
"machine_name": { "default_value": "Creality CR-10S5" },
|
||||
"machine_width": { "default_value": 500 },
|
||||
"machine_depth": { "default_value": 500 },
|
||||
"machine_height": { "default_value": 500 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 500
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 500
|
||||
}
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
31
resources/definitions/creality_cr10spro.def.json
Normal file
31
resources/definitions/creality_cr10spro.def.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "Creality CR-10S Pro",
|
||||
"version": 2,
|
||||
"inherits": "creality_cr10",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality CR-10S Pro" },
|
||||
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\nM420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height\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_head_polygon": { "default_value": [
|
||||
[-44, 34],
|
||||
[-44, -34],
|
||||
[18, -34],
|
||||
[18, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-44, 34],
|
||||
[-44, -34],
|
||||
[38, -34],
|
||||
[38, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 30 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"platform": "creality_cr10spro.stl",
|
||||
"platform_offset": [ -150, 0, 150]
|
||||
}
|
||||
}
|
32
resources/definitions/creality_cr20.def.json
Normal file
32
resources/definitions/creality_cr20.def.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Creality CR-20",
|
||||
"version": 2,
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality CR-20" },
|
||||
"machine_width": { "default_value": 220 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
13
resources/definitions/creality_cr20pro.def.json
Normal file
13
resources/definitions/creality_cr20pro.def.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "Creality CR-20 Pro",
|
||||
"version": 2,
|
||||
"inherits": "creality_cr20",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality CR-20 Pro" },
|
||||
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nG28 ;Home\nM420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height\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"}
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base"
|
||||
}
|
||||
}
|
33
resources/definitions/creality_ender2.def.json
Normal file
33
resources/definitions/creality_ender2.def.json
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "Creality Ender-2",
|
||||
"version": 2,
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality Ender-2" },
|
||||
"machine_start_gcode": { "default_value": "M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration\nM203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate\nM204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration\nM205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\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 Y100.0 Z0.28 F1500.0 E8 ;Draw the first line\nG1 X10.4 Y100.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E15 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\n"},
|
||||
"machine_width": { "default_value": 150 },
|
||||
"machine_depth": { "default_value": 150 },
|
||||
"machine_height": { "default_value": 200 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
115
resources/definitions/creality_ender3.def.json
Executable file → Normal file
115
resources/definitions/creality_ender3.def.json
Executable file → Normal file
@ -1,99 +1,32 @@
|
||||
{
|
||||
"name": "Creality Ender-3",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Sacha Telgenhof",
|
||||
"manufacturer": "Creality3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "creality_ender3_platform.stl",
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "creality_ender3_extruder_0"
|
||||
}
|
||||
},
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Creality Ender-3"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 235
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 250
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 235
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"gantry_height": {
|
||||
"value": "30"
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-30, 34],
|
||||
[-30, -32],
|
||||
[30, -32],
|
||||
[30, 34]
|
||||
"machine_name": { "default_value": "Creality Ender-3" },
|
||||
"machine_width": { "default_value": 220 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_height": { "default_value": 250 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
"acceleration_enabled": {
|
||||
"default_value": true
|
||||
},
|
||||
"acceleration_print": {
|
||||
"default_value": 500
|
||||
},
|
||||
"acceleration_travel": {
|
||||
"value": "acceleration_print"
|
||||
},
|
||||
"jerk_enabled": {
|
||||
"default_value": true
|
||||
},
|
||||
"jerk_print": {
|
||||
"value": "10"
|
||||
},
|
||||
"jerk_travel": {
|
||||
"value": "jerk_print"
|
||||
},
|
||||
"machine_max_jerk_z": {
|
||||
"default_value": 0.3
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.2
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"top_bottom_thickness": {
|
||||
"default_value": 0.6
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 6
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 25
|
||||
},
|
||||
"cool_min_layer_time": {
|
||||
"default_value": 10
|
||||
},
|
||||
"skirt_line_count": {
|
||||
"default_value": 4
|
||||
},
|
||||
"skirt_gap": {
|
||||
"default_value": 5
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "; Ender 3 Custom Start G-code\nG28 ; Home all axes\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\nG1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position\nG1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line\nG1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little\nG1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line\nG92 E0 ; Reset Extruder\nG1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed\n; End of custom start GCode"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "; Ender 3 Custom End G-code\nG4 ; Wait\nM220 S100 ; Reset Speed factor override percentage to default (100%)\nM221 S100 ; Reset Extrude factor override percentage to default (100%)\nG91 ; Set coordinates to relative\nG1 F1800 E-3 ; Retract filament 3 mm to prevent oozing\nG1 F3000 Z20 ; Move Z Axis up 20 mm to allow filament ooze freely\nG90 ; Set coordinates to absolute\nG1 X0 Y{machine_depth} F1000 ; Move Heat Bed to the front for easy print removal\nM84 ; Disable stepper motors\n; End of custom end GCode"
|
||||
}
|
||||
|
||||
"gantry_height": { "value": 25 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
||||
}
|
34
resources/definitions/creality_ender4.def.json
Normal file
34
resources/definitions/creality_ender4.def.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "Creality Ender-4",
|
||||
"version": 2,
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality Ender-4" },
|
||||
"machine_width": { "default_value": 452 },
|
||||
"machine_depth": { "default_value": 468 },
|
||||
"machine_height": { "default_value": 482 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 25 },
|
||||
|
||||
"speed_print": { "value": 80.0 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
35
resources/definitions/creality_ender5.def.json
Normal file
35
resources/definitions/creality_ender5.def.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Creality Ender-5",
|
||||
"version": 2,
|
||||
"inherits": "creality_base",
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creality Ender-5" },
|
||||
"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\nG1 X0 Y0 ;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": 220 },
|
||||
"machine_depth": { "default_value": 220 },
|
||||
"machine_height": { "default_value": 300 },
|
||||
"machine_head_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[22, -32],
|
||||
[22, 34]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": { "default_value": [
|
||||
[-26, 34],
|
||||
[-26, -32],
|
||||
[32, -32],
|
||||
[32, 34]
|
||||
]
|
||||
},
|
||||
|
||||
"gantry_height": { "value": 25 },
|
||||
|
||||
"speed_print": { "value": 80.0 }
|
||||
|
||||
},
|
||||
"metadata": {
|
||||
"quality_definition": "creality_base",
|
||||
"visible": true
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Danny Lu",
|
||||
"manufacturer": "Custom",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform_offset": [ 0, 0, 0],
|
||||
"machine_extruder_trains":
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "nliaudat",
|
||||
"manufacturer": "EasyArts (discontinued)",
|
||||
"manufacturer": "EasyArts",
|
||||
"file_formats": "text/x-gcode",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
|
121
resources/definitions/erzay3d.def.json
Normal file
121
resources/definitions/erzay3d.def.json
Normal file
@ -0,0 +1,121 @@
|
||||
{
|
||||
"name": "Erzay3D",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Alexander Kirsanov",
|
||||
"manufacturer": "Robokinetika",
|
||||
"category": "Other",
|
||||
"file_formats": "text/x-gcode",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "erzay3d_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_start_gcode" : { "default_value": "G28\nG1 Z15.0 F6000\nG92 E0" },
|
||||
"machine_shape": { "default_value": "elliptic"},
|
||||
"machine_name": { "default_value": "Erzay3D" },
|
||||
"machine_depth": { "default_value": 210 },
|
||||
"machine_width": { "default_value": 210 },
|
||||
"machine_height": { "default_value": 230 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"material_bed_temp_wait": { "default_value": true },
|
||||
"material_print_temp_wait": { "default_value": true },
|
||||
"material_print_temp_prepend": { "default_value": true },
|
||||
"machine_buildplate_type": { "default_value": "glass" },
|
||||
"machine_nozzle_head_distance": { "default_value": 2.5 },
|
||||
"machine_heat_zone_length": { "default_value": 12.5 },
|
||||
"machine_max_feedrate_x": { "default_value": 200 },
|
||||
"machine_max_feedrate_y": { "default_value": 200 },
|
||||
"machine_max_feedrate_z": { "default_value": 200 },
|
||||
"machine_max_feedrate_e": { "default_value": 50 },
|
||||
"machine_max_acceleration_x": { "default_value": 3000 },
|
||||
"machine_max_acceleration_y": { "default_value": 3000 },
|
||||
"machine_max_acceleration_z": { "default_value": 3000 },
|
||||
"machine_max_acceleration_e": { "default_value": 3000 },
|
||||
"machine_acceleration": { "default_value": 1000 },
|
||||
"machine_max_jerk_xy": { "default_value": 10 },
|
||||
"machine_max_jerk_z": { "default_value": 10 },
|
||||
"machine_max_jerk_e": { "default_value": 10 },
|
||||
"machine_steps_per_mm_x": { "default_value": 1600 },
|
||||
"machine_steps_per_mm_y": { "default_value": 1600 },
|
||||
"machine_steps_per_mm_z": { "default_value": 1600 },
|
||||
"machine_steps_per_mm_e": { "default_value": 174 },
|
||||
"machine_feeder_wheel_diameter": { "default_value": 12 },
|
||||
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.2 },
|
||||
|
||||
"ironing_pattern": { "default_value": "concentric" },
|
||||
"ironing_flow": { "default_value": 7.0 },
|
||||
"roofing_pattern": { "default_value": "concentric" },
|
||||
|
||||
"infill_sparse_density": { "default_value": 20 },
|
||||
"infill_line_distance": { "default_value": 4 },
|
||||
|
||||
"default_material_print_temperature": { "default_value": 220 },
|
||||
"material_print_temperature": { "default_value": 220 },
|
||||
"material_print_temperature_layer_0": { "default_value": 220 },
|
||||
"material_initial_print_temperature": { "default_value": 220 },
|
||||
"material_final_print_temperature": { "default_value": 220 },
|
||||
"retraction_amount": { "default_value": 6.5 },
|
||||
|
||||
"speed_print": { "default_value": 40 },
|
||||
"speed_infill": { "default_value": 60 },
|
||||
"speed_wall": { "default_value": 20 },
|
||||
"speed_wall_0": { "default_value": 20 },
|
||||
"speed_wall_x": { "default_value": 40 },
|
||||
"speed_roofing": { "default_value": 20 },
|
||||
"speed_topbottom": { "default_value": 20 },
|
||||
"speed_support": { "default_value": 40 },
|
||||
"speed_support_infill": { "default_value": 40 },
|
||||
"speed_support_interface": { "default_value": 25 },
|
||||
"speed_support_roof": { "default_value": 25 },
|
||||
"speed_support_bottom": { "default_value": 25 },
|
||||
"speed_prime_tower": { "default_value": 40 },
|
||||
"speed_travel": { "default_value": 100 },
|
||||
"speed_layer_0": { "default_value": 20 },
|
||||
"speed_print_layer_0": { "default_value": 20 },
|
||||
"speed_travel_layer_0": { "default_value": 80 },
|
||||
"skirt_brim_speed": { "default_value": 20 },
|
||||
"speed_equalize_flow_enabled": { "default_value": true },
|
||||
"speed_equalize_flow_max": { "default_value": 100 },
|
||||
|
||||
"acceleration_print": { "default_value": 1000 },
|
||||
"acceleration_infill": { "default_value": 3000 },
|
||||
"acceleration_wall": { "default_value": 1000 },
|
||||
"acceleration_wall_0": { "default_value": 1000 },
|
||||
"acceleration_wall_x": { "default_value": 1000 },
|
||||
"acceleration_roofing": { "default_value": 1000 },
|
||||
"acceleration_topbottom": { "default_value": 1000 },
|
||||
"acceleration_support": { "default_value": 1000 },
|
||||
"acceleration_support_infill": { "default_value": 1000 },
|
||||
"acceleration_support_interface": { "default_value": 1000 },
|
||||
"acceleration_support_roof": { "default_value": 1000 },
|
||||
"acceleration_support_bottom": { "default_value": 1000 },
|
||||
"acceleration_prime_tower": { "default_value": 1000 },
|
||||
"acceleration_travel": { "default_value": 1500 },
|
||||
"acceleration_layer_0": { "default_value": 1000 },
|
||||
"acceleration_print_layer_0": { "default_value": 1000 },
|
||||
"acceleration_travel_layer_0": { "default_value": 1000 },
|
||||
"acceleration_skirt_brim": { "default_value": 1000 },
|
||||
|
||||
"jerk_print": { "default_value": 10 },
|
||||
|
||||
"support_angle": { "default_value": 65 },
|
||||
"support_brim_enable": { "default_value": true },
|
||||
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"brim_outside_only": { "default_value": false },
|
||||
|
||||
"meshfix_maximum_resolution": { "default_value": 0.05 }
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@
|
||||
"type": "extruder",
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Unknown",
|
||||
"setting_version": 7,
|
||||
"setting_version": 8,
|
||||
"visible": false,
|
||||
"position": "0"
|
||||
},
|
||||
|
@ -7,7 +7,7 @@
|
||||
"author": "Ultimaker",
|
||||
"category": "Other",
|
||||
"manufacturer": "Unknown",
|
||||
"setting_version": 7,
|
||||
"setting_version": 8,
|
||||
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g",
|
||||
"visible": false,
|
||||
"has_materials": true,
|
||||
@ -963,20 +963,20 @@
|
||||
"maximum_value_warning": "2 * machine_nozzle_size",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"initial_layer_line_width_factor":
|
||||
{
|
||||
"label": "Initial Layer Line Width",
|
||||
"description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.",
|
||||
"type": "float",
|
||||
"unit": "%",
|
||||
"default_value": 100.0,
|
||||
"minimum_value": "0.001",
|
||||
"maximum_value_warning": "150",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"initial_layer_line_width_factor":
|
||||
{
|
||||
"label": "Initial Layer Line Width",
|
||||
"description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.",
|
||||
"type": "float",
|
||||
"unit": "%",
|
||||
"default_value": 100.0,
|
||||
"minimum_value": "0.001",
|
||||
"maximum_value_warning": "150",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1426,7 +1426,7 @@
|
||||
"z_seam_corner":
|
||||
{
|
||||
"label": "Seam Corner Preference",
|
||||
"description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner.",
|
||||
"description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate.",
|
||||
"type": "enum",
|
||||
"options":
|
||||
{
|
||||
@ -1454,8 +1454,8 @@
|
||||
},
|
||||
"skin_no_small_gaps_heuristic":
|
||||
{
|
||||
"label": "Ignore Small Z Gaps",
|
||||
"description": "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting.",
|
||||
"label": "No Skin in Z Gaps",
|
||||
"description": "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air.",
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"enabled": "top_layers > 0 or bottom_layers > 0",
|
||||
@ -1591,6 +1591,36 @@
|
||||
"enabled": "resolveOrValue('jerk_enabled') and ironing_enabled",
|
||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"skin_overlap":
|
||||
{
|
||||
"label": "Skin Overlap Percentage",
|
||||
"description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines, as a percentage of the line widths of the skin lines and the innermost wall. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any percentage over 50% may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"minimum_value_warning": "-50",
|
||||
"maximum_value_warning": "100",
|
||||
"value": "5 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
|
||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"skin_overlap_mm":
|
||||
{
|
||||
"label": "Skin Overlap",
|
||||
"description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any value over half the width of the wall may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0.02,
|
||||
"minimum_value_warning": "-0.5 * machine_nozzle_size",
|
||||
"maximum_value_warning": "machine_nozzle_size",
|
||||
"value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1790,36 +1820,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skin_overlap":
|
||||
{
|
||||
"label": "Skin Overlap Percentage",
|
||||
"description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines, as a percentage of the line widths of the skin lines and the innermost wall. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any percentage over 50% may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"minimum_value_warning": "-50",
|
||||
"maximum_value_warning": "100",
|
||||
"value": "5 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
|
||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"skin_overlap_mm":
|
||||
{
|
||||
"label": "Skin Overlap",
|
||||
"description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any value over half the width of the wall may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 0.02,
|
||||
"minimum_value_warning": "-0.5 * machine_nozzle_size",
|
||||
"maximum_value_warning": "machine_nozzle_size",
|
||||
"value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"infill_wipe_dist":
|
||||
{
|
||||
"label": "Infill Wipe Distance",
|
||||
@ -2063,7 +2063,7 @@
|
||||
"description": "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted.",
|
||||
"unit": "°C",
|
||||
"type": "float",
|
||||
"default_value": 35,
|
||||
"default_value": 0,
|
||||
"resolve": "min(extruderValues('build_volume_temperature'))",
|
||||
"minimum_value": "-273.15",
|
||||
"minimum_value_warning": "0",
|
||||
@ -2234,6 +2234,107 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_crystallinity":
|
||||
{
|
||||
"label": "Crystalline Material",
|
||||
"description": "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?",
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"enabled": false,
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_anti_ooze_retracted_position":
|
||||
{
|
||||
"label": "Anti-ooze Retracted Position",
|
||||
"description": "How far the material needs to be retracted before it stops oozing.",
|
||||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 4,
|
||||
"enabled": false,
|
||||
"minimum_value_warning": "0",
|
||||
"maximum_value_warning": "retraction_amount",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_anti_ooze_retraction_speed":
|
||||
{
|
||||
"label": "Anti-ooze Retraction Speed",
|
||||
"description": "How fast the material needs to be retracted during a filament switch to prevent oozing.",
|
||||
"type": "float",
|
||||
"unit": "mm/s",
|
||||
"default_value": 5,
|
||||
"enabled": false,
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "machine_max_feedrate_e",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_break_preparation_retracted_position":
|
||||
{
|
||||
"label": "Break Preparation Retracted Position",
|
||||
"description": "How far the filament can be stretched before it breaks, while heated.",
|
||||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 16,
|
||||
"enabled": false,
|
||||
"minimum_value_warning": "0",
|
||||
"maximum_value_warning": "retraction_amount * 4",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_break_preparation_speed":
|
||||
{
|
||||
"label": "Break Preparation Retraction Speed",
|
||||
"description": "How fast the filament needs to be retracted just before breaking it off in a retraction.",
|
||||
"type": "float",
|
||||
"unit": "mm/s",
|
||||
"default_value": 2,
|
||||
"enabled": false,
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "machine_max_feedrate_e",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_break_retracted_position":
|
||||
{
|
||||
"label": "Break Retracted Position",
|
||||
"description": "How far to retract the filament in order to break it cleanly.",
|
||||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 50,
|
||||
"enabled": false,
|
||||
"minimum_value_warning": "0",
|
||||
"maximum_value_warning": "100",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_break_speed":
|
||||
{
|
||||
"label": "Break Retraction Speed",
|
||||
"description": "The speed at which to retract the filament in order to break it cleanly.",
|
||||
"type": "float",
|
||||
"unit": "mm/s",
|
||||
"default_value": 25,
|
||||
"enabled": false,
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "machine_max_feedrate_e",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_break_temperature":
|
||||
{
|
||||
"label": "Break Temperature",
|
||||
"description": "The temperature at which the filament is broken for a clean break.",
|
||||
"type": "float",
|
||||
"unit": "°C",
|
||||
"default_value": 50,
|
||||
"enabled": false,
|
||||
"minimum_value": "-273.15",
|
||||
"maximum_value_warning": "300",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_flow":
|
||||
{
|
||||
"label": "Flow",
|
||||
@ -2245,7 +2346,195 @@
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "machine_gcode_flavor != \"UltiGCode\"",
|
||||
"settable_per_mesh": true
|
||||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"wall_material_flow":
|
||||
{
|
||||
"label": "Wall Flow",
|
||||
"description": "Flow compensation on wall lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1",
|
||||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"wall_0_material_flow":
|
||||
{
|
||||
"label": "Outer Wall Flow",
|
||||
"description": "Flow compensation on the outermost wall line.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "wall_material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"limit_to_extruder": "wall_0_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"wall_x_material_flow":
|
||||
{
|
||||
"label": "Inner Wall(s) Flow",
|
||||
"description": "Flow compensation on wall lines for all wall lines except the outermost one.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "wall_material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"limit_to_extruder": "wall_x_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"skin_material_flow":
|
||||
{
|
||||
"label": "Top/Bottom Flow",
|
||||
"description": "Flow compensation on top/bottom lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "top_layers > 0 or bottom_layers > 0",
|
||||
"limit_to_extruder": "top_bottom_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"roofing_material_flow":
|
||||
{
|
||||
"label": "Top Surface Skin Flow",
|
||||
"description": "Flow compensation on lines of the areas at the top of the print.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "skin_material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"limit_to_extruder": "roofing_extruder_nr",
|
||||
"settable_per_mesh": true,
|
||||
"enabled": "roofing_layer_count > 0 and top_layers > 0"
|
||||
},
|
||||
"infill_material_flow":
|
||||
{
|
||||
"label": "Infill Flow",
|
||||
"description": "Flow compensation on infill lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "infill_sparse_density > 0",
|
||||
"limit_to_extruder": "infill_extruder_nr",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"skirt_brim_material_flow":
|
||||
{
|
||||
"label": "Skirt/Brim Flow",
|
||||
"description": "Flow compensation on skirt or brim lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"support_material_flow":
|
||||
{
|
||||
"label": "Support Flow",
|
||||
"description": "Flow compensation on support structure lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"limit_to_extruder": "support_infill_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"support_interface_material_flow":
|
||||
{
|
||||
"label": "Support Interface Flow",
|
||||
"description": "Flow compensation on lines of support roof or floor.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "support_enable and support_interface_enable",
|
||||
"limit_to_extruder": "support_interface_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"children":
|
||||
{
|
||||
"support_roof_material_flow":
|
||||
{
|
||||
"label": "Support Roof Flow",
|
||||
"description": "Flow compensation on support roof lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "extruderValue(support_roof_extruder_nr, 'support_interface_material_flow')",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "support_enable and support_roof_enable",
|
||||
"limit_to_extruder": "support_roof_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"support_bottom_material_flow":
|
||||
{
|
||||
"label": "Support Floor Flow",
|
||||
"description": "Flow compensation on support floor lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "extruderValue(support_bottom_extruder_nr, 'support_interface_material_flow')",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"enabled": "support_enable and support_bottom_enable",
|
||||
"limit_to_extruder": "support_bottom_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"prime_tower_flow":
|
||||
{
|
||||
"label": "Prime Tower Flow",
|
||||
"description": "Flow compensation on prime tower lines.",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "5",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"material_flow_layer_0":
|
||||
{
|
||||
@ -2253,7 +2542,6 @@
|
||||
"description": "Flow compensation for the first layer: the amount of material extruded on the initial layer is multiplied by this value.",
|
||||
"unit": "%",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"type": "float",
|
||||
"minimum_value": "0.0001",
|
||||
"minimum_value_warning": "50",
|
||||
@ -2398,7 +2686,7 @@
|
||||
"limit_support_retractions":
|
||||
{
|
||||
"label": "Limit Support Retractions",
|
||||
"description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure.",
|
||||
"description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.",
|
||||
"type": "bool",
|
||||
"default_value": true,
|
||||
"enabled": "retraction_enable and (support_enable or support_tree_enable)",
|
||||
@ -2797,19 +3085,6 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"max_feedrate_z_override":
|
||||
{
|
||||
"label": "Maximum Z Speed",
|
||||
"description": "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.",
|
||||
"unit": "mm/s",
|
||||
"type": "float",
|
||||
"default_value": 0,
|
||||
"minimum_value": "0",
|
||||
"maximum_value": "299792458000",
|
||||
"maximum_value_warning": "machine_max_feedrate_z",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"speed_slowdown_layers":
|
||||
{
|
||||
"label": "Number of Slower Layers",
|
||||
@ -4580,10 +4855,10 @@
|
||||
"enabled": "support_enable and support_use_towers",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_minimal_diameter":
|
||||
"support_tower_maximum_supported_diameter":
|
||||
{
|
||||
"label": "Minimum Diameter",
|
||||
"description": "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.",
|
||||
"label": "Maximum Tower-Supported Diameter",
|
||||
"description": "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.",
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default_value": 3.0,
|
||||
@ -4635,11 +4910,11 @@
|
||||
"label": "Enable Prime Blob",
|
||||
"description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.",
|
||||
"type": "bool",
|
||||
"resolve": "any(extruderValues('prime_blob_enable'))",
|
||||
"default_value": false,
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"enabled": false
|
||||
"enabled": false,
|
||||
"warning_value": "True if resolveOrValue('print_sequence') == 'one_at_a_time' else None"
|
||||
},
|
||||
"extruder_prime_pos_x":
|
||||
{
|
||||
@ -5281,17 +5556,6 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"prime_tower_circular":
|
||||
{
|
||||
"label": "Circular Prime Tower",
|
||||
"description": "Make the prime tower as a circular shape.",
|
||||
"type": "bool",
|
||||
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||
"default_value": true,
|
||||
"resolve": "any(extruderValues('prime_tower_circular'))",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"prime_tower_size":
|
||||
{
|
||||
"label": "Prime Tower Size",
|
||||
@ -5316,7 +5580,7 @@
|
||||
"type": "float",
|
||||
"default_value": 6,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') if prime_tower_circular else resolveOrValue('prime_tower_size') ** 2 * resolveOrValue('layer_height')) - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume",
|
||||
"maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height')",
|
||||
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
@ -5349,21 +5613,6 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"prime_tower_flow":
|
||||
{
|
||||
"label": "Prime Tower Flow",
|
||||
"description": "Flow compensation: the amount of material extruded is multiplied by this value.",
|
||||
"type": "float",
|
||||
"unit": "%",
|
||||
"enabled": "resolveOrValue('prime_tower_enable')",
|
||||
"default_value": 100,
|
||||
"value": "material_flow",
|
||||
"minimum_value": "0.0001",
|
||||
"minimum_value_warning": "50",
|
||||
"maximum_value_warning": "150",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"prime_tower_wipe_enabled":
|
||||
{
|
||||
"label": "Wipe Inactive Nozzle on Prime Tower",
|
||||
@ -5667,7 +5916,7 @@
|
||||
"smooth_spiralized_contours":
|
||||
{
|
||||
"label": "Smooth Spiralized Contours",
|
||||
"description": "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details.",
|
||||
"description": "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details.",
|
||||
"type": "bool",
|
||||
"default_value": true,
|
||||
"enabled": "magic_spiralize",
|
||||
@ -6410,7 +6659,7 @@
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"minimum_value": "0.1",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)",
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "wireframe_enabled",
|
||||
"settable_per_mesh": false,
|
||||
@ -6442,7 +6691,7 @@
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"minimum_value": "0.1",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)",
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "wireframe_enabled",
|
||||
"value": "wireframe_printspeed",
|
||||
@ -6458,7 +6707,7 @@
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
"minimum_value": "0.1",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)",
|
||||
"maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)",
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "wireframe_enabled",
|
||||
"value": "wireframe_printspeed",
|
||||
|
78
resources/definitions/flsun_qq_s.def.json
Normal file
78
resources/definitions/flsun_qq_s.def.json
Normal file
@ -0,0 +1,78 @@
|
||||
{
|
||||
"id": "flsun_qq_s",
|
||||
"version": 2,
|
||||
"name": "FLSUN QQ-S",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Cataldo URSO",
|
||||
"manufacturer": "FLSUN",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains": {
|
||||
"0": "flsun_qq_s_extruder_0"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_center_is_zero": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_shape": {
|
||||
"default_value": "elliptic"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 260
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 260
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 370
|
||||
},
|
||||
"z_seam_type": {
|
||||
"default_value": "back"
|
||||
},
|
||||
"top_thickness": {
|
||||
"default_value": 5
|
||||
},
|
||||
"bottom_layers": {
|
||||
"default_value": 4
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G21\nG90\nM82\nM107 T0\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG28\nG92 E0\nG0 E3 F200\nG92 E0\n"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M107 T0\nM104 S0\nM104 S0 T1\nM140 S0\nG92 E0\nG91\nG1 E-1 F300 \nG1 Z+0.5 E-5 X-20 Y-20 F9000\nG28 X0 Y0\nM84 ;steppers off\nG90 ;absolute positioning\n"
|
||||
},
|
||||
"infill_sparse_density": {
|
||||
"default_value": 10
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0],
|
||||
[0, 0]
|
||||
]
|
||||
},
|
||||
"retraction_enable": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "Repetier"
|
||||
}
|
||||
}
|
||||
}
|
132
resources/definitions/geeetech_a30.def.json
Normal file
132
resources/definitions/geeetech_a30.def.json
Normal file
@ -0,0 +1,132 @@
|
||||
{
|
||||
"id": "geeetech_a30",
|
||||
"version": 2,
|
||||
"name": "Geeetech A30",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "William & Cataldo URSO",
|
||||
"manufacturer": "Shenzhen Geeetech Technology",
|
||||
"setting_version": 8,
|
||||
"file_formats": "text/x-gcode",
|
||||
"visible": true,
|
||||
"has_materials": true,
|
||||
"preferred_quality_type": "draft",
|
||||
"machine_extruder_trains": {
|
||||
"0": "geeetech_a30_extruder_0"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Geeetech A30"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G28 ;Home\nM190 S{material_bed_temperature}\nM109 S{material_print_temperature} T0\nG1 Z15.0 F6000 ;Move the platform down 15mm\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0;Cooling the heat end\nM140 S0;Cooling the heat bed\nG92 E1\nG1 E-1 F300\nG28 X0 Y0;Home X axis and Y axis\nM84"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 320
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 420
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 320
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"material_bed_temperature": {
|
||||
"default_value": 60
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"layer_height": {
|
||||
"default_value": 0.1
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.3
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 2
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 25
|
||||
},
|
||||
"retraction_retract_speed": {
|
||||
"default_value": 25
|
||||
},
|
||||
"retraction_prime_speed": {
|
||||
"default_value": 25
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "skirt"
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-75, 35],
|
||||
[18, 35],
|
||||
[18, -18],
|
||||
[-75, -18]
|
||||
]
|
||||
},
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[-75, 35],
|
||||
[18, 35],
|
||||
[18, -18],
|
||||
[-75, -18]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 55
|
||||
},
|
||||
"machine_max_feedrate_x": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_max_feedrate_y": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_max_feedrate_z": {
|
||||
"default_value": 7
|
||||
},
|
||||
"machine_max_feedrate_e": {
|
||||
"default_value": 50
|
||||
},
|
||||
"machine_max_acceleration_x": {
|
||||
"default_value": 2000
|
||||
},
|
||||
"machine_max_acceleration_y": {
|
||||
"default_value": 2000
|
||||
},
|
||||
"machine_max_acceleration_z": {
|
||||
"default_value": 100
|
||||
},
|
||||
"machine_max_acceleration_e": {
|
||||
"default_value": 10000
|
||||
},
|
||||
"machine_acceleration": {
|
||||
"default_value": 2000
|
||||
},
|
||||
"machine_max_jerk_xy": {
|
||||
"default_value": 10
|
||||
},
|
||||
"machine_max_jerk_z": {
|
||||
"default_value": 1
|
||||
},
|
||||
"machine_max_jerk_e": {
|
||||
"default_value": 5
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "Repetier"
|
||||
}
|
||||
}
|
||||
}
|
@ -50,13 +50,8 @@
|
||||
"machine_gcode_flavor": {"default_value": "RepRap (RepRap)" },
|
||||
"material_print_temp_wait": {"default_value": true},
|
||||
"material_bed_temp_wait": {"default_value": true },
|
||||
"prime_tower_enable": {"default_value": false },
|
||||
"prime_tower_size": {"value": 20.6 },
|
||||
"prime_tower_position_x": {"value": 125 },
|
||||
"prime_tower_position_y": {"value": 70 },
|
||||
"prime_blob_enable": {"default_value": false },
|
||||
"machine_max_feedrate_z": {"default_value": 1200 },
|
||||
"machine_start_gcode": {"default_value": "\n;Neither MaukCC nor any of MaukCC representatives has any liabilities or gives any warranties on this .gcode file, or on any or all objects made with this .gcode file.\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\n\nG1 X150 Y10 F9000\nG30 H0\nM340 P0 S1500\n\nG1 X-20 Y-100 F9000;go to wipe point\nG1 Z0 F900\nG1 Z0.2 F900\nG1 Y-50 F9000\nG1 X150 Y10 F9000\nM117 HMS434 Printing ...\n\n" },
|
||||
"machine_start_gcode": {"default_value": "\n;Neither MaukCC nor any of MaukCC representatives has any liabilities or gives any warranties on this .gcode file, or on any or all objects made with this .gcode file.\n\nM117 Homing Y ......\nG28 Y\nM117 Homing X ......\nG28 X\nM117 Homing Z ......\nG28 Z F100\n\nG1 X-44 Y-100 F9000;go to wipe point\nG1 Z0 F900\nG1 Z0.2 F900\nM117 HMS434 Printing ...\n\n" },
|
||||
"machine_end_gcode": {"default_value": "" },
|
||||
|
||||
"retraction_extra_prime_amount": {"minimum_value_warning": "-2.0" },
|
||||
@ -94,7 +89,7 @@
|
||||
"maximum_value_warning": "material_print_temperature + 15"},
|
||||
"material_final_print_temperature": {"value": "material_print_temperature"},
|
||||
"material_bed_temperature_layer_0": {"value": "material_bed_temperature + 1"},
|
||||
"material_flow": {"value": "120 if infill_sparse_density < 95 else 115"},
|
||||
"material_flow": {"value": "100"},
|
||||
"retraction_amount": {"value": "1"},
|
||||
"retraction_speed": {"value": "20"},
|
||||
"retraction_prime_speed": {"value": "8"},
|
||||
@ -112,7 +107,6 @@
|
||||
"speed_travel": {"value": "100"},
|
||||
"speed_travel_layer_0": {"value": "speed_travel"},
|
||||
"speed_support_interface": {"value": "speed_topbottom"},
|
||||
"max_feedrate_z_override": {"value": 10},
|
||||
"speed_slowdown_layers": {"value": 1},
|
||||
"acceleration_print": {"value": 200},
|
||||
"acceleration_travel": {"value": 200},
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Claudio Sampaio (Patola)",
|
||||
"manufacturer": "Other",
|
||||
"manufacturer": "Johann",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "kossel_platform.stl",
|
||||
"platform_offset": [0, -0.25, 0],
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Chris Petersen",
|
||||
"manufacturer": "OpenBeam",
|
||||
"manufacturer": "Johann",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "kossel_pro_build_platform.stl",
|
||||
"platform_offset": [0, -0.25, 0],
|
||||
|
@ -4,8 +4,8 @@
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "NA",
|
||||
"manufacturer": "NA",
|
||||
"author": "unknown",
|
||||
"manufacturer": "MAKEiT 3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": false,
|
||||
"machine_extruder_trains":
|
||||
|
@ -4,8 +4,8 @@
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "NA",
|
||||
"manufacturer": "NA",
|
||||
"author": "unknown",
|
||||
"manufacturer": "MAKEiT 3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": false,
|
||||
"machine_extruder_trains":
|
||||
|
66
resources/definitions/nwa3d_a31.def.json
Normal file
66
resources/definitions/nwa3d_a31.def.json
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
"name": "NWA3D A31",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "DragonJe",
|
||||
"manufacturer": "NWA 3D LLC",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform_offset": [0, 0, 0],
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"variants_name": "Nozzle Size",
|
||||
"preferred_variant_name": "Standard 0.4mm",
|
||||
"has_machine_materials": true,
|
||||
"has_variant_materials": false,
|
||||
"preferred_quality_type": "normal",
|
||||
"has_machine_quality": true,
|
||||
"preferred_material": "generic_pla",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "nwa3d_a31_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "NWA3D A31"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 400
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 300
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-30, 34],
|
||||
[-30, -32],
|
||||
[30, -32],
|
||||
[30, 34]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"value": "30"
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G28 ; Home\nG1 Z15.0 F6000 ; Move Z axis up 15mm\n ; Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0\nM140 S0\n ; Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
|
||||
}
|
||||
}
|
||||
}
|
@ -126,9 +126,6 @@
|
||||
"adhesion_type": {
|
||||
"value": "'none'"
|
||||
},
|
||||
"acceleration_enabled": {
|
||||
"value": "False"
|
||||
},
|
||||
"print_sequence": {
|
||||
"enabled": false
|
||||
},
|
||||
@ -251,10 +248,6 @@
|
||||
"expand_skins_expand_distance": {
|
||||
"value": "( wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x ) / 2"
|
||||
},
|
||||
"max_feedrate_z_override": {
|
||||
"value": 0,
|
||||
"enabled": false
|
||||
},
|
||||
"flow_rate_max_extrusion_offset": {
|
||||
"enabled": false
|
||||
},
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Quillford",
|
||||
"manufacturer": "Prusajr",
|
||||
"manufacturer": "Prusa3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "prusai3_platform.stl",
|
||||
"machine_extruder_trains":
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Apsu, Nounours2099",
|
||||
"manufacturer": "Prusa Research",
|
||||
"manufacturer": "Prusa3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "prusai3_platform.stl",
|
||||
"has_materials": true,
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "guigashm",
|
||||
"manufacturer": "Prusajr",
|
||||
"manufacturer": "Prusa3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "prusai3_xl_platform.stl",
|
||||
"machine_extruder_trains":
|
||||
|
@ -5,12 +5,12 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Stereotech",
|
||||
"manufacturer": "Other",
|
||||
"manufacturer": "Stereotech LLC.",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "stereotech_start.stl",
|
||||
"icon": "icon_ultimaker2",
|
||||
"platform_offset": [0, 0, 0],
|
||||
"machine_extruder_trains":
|
||||
"platform_offset": [0, 0, 0],
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "stereotech_start_extruder_0"
|
||||
}
|
||||
|
137
resources/definitions/strateo3d.def.json
Normal file
137
resources/definitions/strateo3d.def.json
Normal file
@ -0,0 +1,137 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "Strateo3D",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"author": "M.K",
|
||||
"manufacturer": "eMotionTech",
|
||||
"category": "Other",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_machine_materials": true,
|
||||
"has_variants": true,
|
||||
"preferred_variant_name": "Standard 0.6",
|
||||
"preferred_quality_type": "e",
|
||||
"variants_name": "Print Head",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "strateo3d_right_extruder",
|
||||
"1": "strateo3d_left_extruder"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides":
|
||||
{
|
||||
"machine_name": { "default_value": "Strateo3D" },
|
||||
"machine_width": { "default_value": 600 },
|
||||
"machine_depth": { "default_value": 420 },
|
||||
"machine_height": { "default_value": 495 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_head_with_fans_polygon": { "default_value": [ [ -76, -51.8 ] , [ 25, -51.8 ] , [ 25, 38.2 ] , [ -76, 38.2 ] ] },
|
||||
"gantry_height": { "default_value": 40 },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_gcode_flavor": { "default_value": "Marlin" },
|
||||
"machine_start_gcode": { "default_value": "G28 \nG90 G1 X300 Y210 Z15 F6000 \nG92 E0" },
|
||||
"machine_end_gcode": { "default_value": "T1 \nM104 S0 \nT0 \nM104 S0 \nM140 S0 \nM141 S0 \nG91 \nG0 E-1 F1500 \nG0 z1 \nG90 \nG28 \nM801.2 \nM801.0 \nM84" },
|
||||
"extruder_prime_pos_y": {"minimum_value": "0", "maximum_value": "machine_depth"},
|
||||
"extruder_prime_pos_x": {"minimum_value": "0", "maximum_value": "machine_width"},
|
||||
"machine_heat_zone_length": { "default_value": 7 },
|
||||
"default_material_print_temperature": { "maximum_value_warning": "350" },
|
||||
"material_print_temperature": { "maximum_value_warning": "350" },
|
||||
"material_print_temperature_layer_0": { "maximum_value_warning": "350" },
|
||||
"material_bed_temperature": { "maximum_value": "130" },
|
||||
"material_bed_temperature_layer_0": { "maximum_value": "130" },
|
||||
"extruder_prime_pos_abs": { "default_value": true },
|
||||
"machine_acceleration": { "default_value": 2000 },
|
||||
|
||||
"acceleration_enabled": { "value": false },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 1000 / 2000)" },
|
||||
"acceleration_print": { "value": "2000" },
|
||||
"acceleration_support": { "value": "acceleration_print" },
|
||||
"acceleration_support_interface": { "value": "acceleration_topbottom" },
|
||||
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 2000)" },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1500 / 2000)" },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1500)" },
|
||||
"adaptive_layer_height_variation": { "default_value": 0.1 },
|
||||
"adaptive_layer_height_variation_step": { "default_value": 0.05 },
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"expand_skins_expand_distance": { "value": "wall_line_width_0 + wall_line_count * wall_line_width_x" },
|
||||
"gradual_infill_step_height": { "value": "layer_height*10" },
|
||||
"gradual_support_infill_step_height": { "value": "layer_height*7" },
|
||||
"infill_before_walls": { "default_value": false },
|
||||
"infill_overlap": { "value": "0" },
|
||||
"infill_wipe_dist": { "value": "0" },
|
||||
"jerk_enabled": { "value": "False" },
|
||||
"jerk_layer_0": { "value": "jerk_topbottom" },
|
||||
"jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_print": { "value": "25" },
|
||||
"jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_support_interface": { "value": "jerk_topbottom" },
|
||||
"jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" },
|
||||
"jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" },
|
||||
"jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" },
|
||||
"layer_start_x": { "value": "sum(extruderValues('machine_extruder_start_pos_x')) / len(extruderValues('machine_extruder_start_pos_x'))" },
|
||||
"layer_start_y": { "value": "sum(extruderValues('machine_extruder_start_pos_y')) / len(extruderValues('machine_extruder_start_pos_y'))" },
|
||||
"machine_min_cool_heat_time_window": { "value": "15" },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.50 },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 2.25 },
|
||||
"material_final_print_temperature": { "value": "material_print_temperature - 10" },
|
||||
"material_flow": { "default_value": 93 },
|
||||
"material_flow_layer_0": { "value": "math.ceil(material_flow*1)" },
|
||||
"material_initial_print_temperature": { "value": "material_print_temperature - 5" },
|
||||
"meshfix_maximum_resolution": { "value": "0.03" },
|
||||
"optimize_wall_printing_order": { "value": "True" },
|
||||
"prime_blob_enable": { "enabled": false, "default_value": false },
|
||||
"prime_tower_min_volume": { "default_value": 35 },
|
||||
"prime_tower_position_x": { "value": "machine_width/2 - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1" },
|
||||
"prime_tower_position_y": { "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1" },
|
||||
"retraction_amount": { "default_value": 1.5 },
|
||||
"retraction_combing": { "default_value": "all" },
|
||||
"retraction_combing_max_distance": { "default_value": 5 },
|
||||
"retraction_count_max": { "default_value": 15 },
|
||||
"retraction_hop": { "value": "2" },
|
||||
"retraction_hop_enabled": { "value": "extruders_enabled_count > 1" },
|
||||
"retraction_hop_only_when_collides": { "value": "True" },
|
||||
"retraction_min_travel": { "value": "3*line_width" },
|
||||
"retraction_prime_speed": { "value": "retraction_speed-10" },
|
||||
"retraction_speed": { "default_value": 25 },
|
||||
"skin_overlap": { "value": "10" },
|
||||
"skirt_brim_minimal_length": { "default_value": 333 },
|
||||
"speed_layer_0": { "value": "20" },
|
||||
"speed_travel_layer_0": { "value": "100" },
|
||||
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||
"speed_print": { "value": "50" },
|
||||
"speed_support": { "value": "speed_wall" },
|
||||
"speed_support_interface": { "value": "speed_topbottom" },
|
||||
"speed_topbottom": { "value": "math.ceil(speed_print * 20/35)" },
|
||||
"speed_travel": { "value": "150" },
|
||||
"speed_wall": { "value": "math.ceil(speed_print * 3/4)" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_wall * 2/3)" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"support_angle": { "value": "50" },
|
||||
"support_bottom_distance": {"value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance/2') if support_type == 'everywhere' else 0", "maximum_value_warning": "machine_nozzle_size*1.5" },
|
||||
"support_interface_enable": { "default_value": true },
|
||||
"support_interface_height": { "value": "layer_height*3" },
|
||||
"support_interface_offset": { "value": "support_offset" },
|
||||
"support_top_distance": {"value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", "maximum_value_warning": "machine_nozzle_size*1.5" },
|
||||
"support_use_towers": { "default_value": true },
|
||||
"support_xy_distance": { "value": "line_width * 1.7" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "layer_height*2", "maximum_value_warning": "machine_nozzle_size*1.5" },
|
||||
"switch_extruder_prime_speed": { "value": "retraction_prime_speed" },
|
||||
"switch_extruder_retraction_amount": { "value": "7" },
|
||||
"switch_extruder_retraction_speeds": {"value": "retraction_retract_speed"},
|
||||
"top_bottom_thickness": { "value": "3*layer_height", "minimum_value_warning": "layer_height*2" },
|
||||
"top_thickness": { "value": "top_bottom_thickness" },
|
||||
"top_layers": { "value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))"},
|
||||
"bottom_thickness": { "value": "top_bottom_thickness-2*layer_height+layer_height_0" },
|
||||
"bottom_layers": { "value": "999999 if infill_sparse_density == 100 else math.ceil(round(((bottom_thickness-resolveOrValue('layer_height_0')) / resolveOrValue('layer_height'))+1, 4))"},
|
||||
"travel_avoid_distance": { "value": "3 if extruders_enabled_count > 1 else machine_nozzle_tip_outer_diameter / 2 * 1.5" },
|
||||
"wall_thickness": { "value": "wall_line_width_0 + wall_line_width_x" }
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "Discov3ry Complete (Ultimaker 2+)",
|
||||
"name": "Discov3ry Complete",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Andrew Finkle, CTO",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "Type A Machines Series 1 2014",
|
||||
"name": "Series 1 2014",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
|
@ -69,6 +69,13 @@
|
||||
"machine_end_gcode":
|
||||
{
|
||||
"default_value": "M104 S0\nM140 S0\nG91\nG1 E-5 F300\nG1 Z+3 F3000\nG1 Y245 F3000\nM84"
|
||||
}
|
||||
},
|
||||
|
||||
"acceleration_enabled": {"value": "False"},
|
||||
"acceleration_print": {"value": "1500"},
|
||||
"z_seam_type": {"default_value": "back"},
|
||||
"z_seam_x": {"value": "127.5"},
|
||||
"z_seam_y": {"value": "250"},
|
||||
"retraction_combing": {"default_value": "off"}
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,13 @@
|
||||
"machine_end_gcode":
|
||||
{
|
||||
"default_value": "M104 S0\nM140 S0\nG91\nG1 E-5 F300\nG1 Z+3 F3000\nG1 Y245 F3000\nM84"
|
||||
}
|
||||
},
|
||||
|
||||
"acceleration_enabled": {"value": "False"},
|
||||
"acceleration_print": {"value": "1500"},
|
||||
"z_seam_type": {"default_value": "back"},
|
||||
"z_seam_x": {"value": "127.5"},
|
||||
"z_seam_y": {"value": "250"},
|
||||
"retraction_combing": {"default_value": "off"}
|
||||
}
|
||||
}
|
||||
|
@ -1,52 +1,60 @@
|
||||
{
|
||||
"version": 2,
|
||||
"name": "TiZYX K25",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "TiZYX",
|
||||
"manufacturer": "TiZYX",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "tizyx_k25_platform.stl",
|
||||
"platform_offset": [0, -4, 0],
|
||||
"exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pla", "generic_pla_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ],
|
||||
"preferred_material": "tizyx_pla",
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"preferred_variant_name": "0.4 mm",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "tizyx_k25_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides":
|
||||
{
|
||||
"machine_name": { "default_value": "TiZYX K25" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_width": { "default_value": 255 },
|
||||
"machine_height": { "default_value": 255 },
|
||||
"machine_depth": { "default_value": 255 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"gantry_height": { "value": "500" },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[25, 49],
|
||||
[25, -49],
|
||||
[-25, -49],
|
||||
[25, 49]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode":
|
||||
{
|
||||
"default_value": "M82\nG90\nG28 X\nG28 Y\nG28 Z\nG29\nG91\nG1 Z0\nG90\nM82\nG92 E0\nG1 X125 Y245 F3000\nG1 Z0"
|
||||
},
|
||||
"machine_end_gcode":
|
||||
{
|
||||
"default_value": "M104 S0\nM140 S0\nG91\nG1 E-5 F300\nG1 Z+3 F3000\nG1 Y245 F3000\nM84"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"version": 2,
|
||||
"name": "TiZYX K25",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata":
|
||||
{
|
||||
"visible": true,
|
||||
"author": "TiZYX",
|
||||
"manufacturer": "TiZYX",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "tizyx_k25_platform.stl",
|
||||
"platform_offset": [0, -4, 0],
|
||||
"exclude_materials": ["chromatik_pla", "dsm_arnitel2045_175", "dsm_novamid1070_175", "fabtotum_abs", "fabtotum_nylon", "fabtotum_pla", "fabtotum_tpu", "fiberlogy_hd_pla", "filo3d_pla", "filo3d_pla_green", "filo3d_pla_red", "generic_abs", "generic_abs_175", "generic_bam", "generic_cpe", "generic_cpe_175", "generic_cpe_plus", "generic_hips", "generic_hips_175", "generic_nylon", "generic_nylon_175", "generic_pc", "generic_pc_175", "generic_petg", "generic_petg_175", "generic_pla", "generic_pla_175", "generic_pp", "generic_pva", "generic_pva_175", "generic_tough_pla", "generic_tpu", "generic_tpu_175", "imade3d_petg_green", "imade3d_petg_pink", "imade3d_pla_green", "imade3d_pla_pink", "innofill_innoflex60_175", "octofiber_pla", "polyflex_pla", "polymax_pla", "polyplus_pla", "polywood_pla", "ultimaker_abs_black", "ultimaker_abs_blue", "ultimaker_abs_green", "ultimaker_abs_grey", "ultimaker_abs_orange", "ultimaker_abs_pearl-gold", "ultimaker_abs_red", "ultimaker_abs_silver-metallic", "ultimaker_abs_white", "ultimaker_abs_yellow", "ultimaker_bam", "ultimaker_cpe_black", "ultimaker_cpe_blue", "ultimaker_cpe_dark-grey", "ultimaker_cpe_green", "ultimaker_cpe_light-grey", "ultimaker_cpe_plus_black", "ultimaker_cpe_plus_transparent", "ultimaker_cpe_plus_white", "ultimaker_cpe_red", "ultimaker_cpe_transparent", "ultimaker_cpe_white", "ultimaker_cpe_yellow", "ultimaker_nylon_black", "ultimaker_nylon_transparent", "ultimaker_pc_black", "ultimaker_pc_transparent", "ultimaker_pc_white", "ultimaker_pla_black", "ultimaker_pla_blue", "ultimaker_pla_green", "ultimaker_pla_magenta", "ultimaker_pla_orange", "ultimaker_pla_pearl-white", "ultimaker_pla_red", "ultimaker_pla_silver-metallic", "ultimaker_pla_transparent", "ultimaker_pla_white", "ultimaker_pla_yellow", "ultimaker_pp_transparent", "ultimaker_pva", "ultimaker_tough_pla_black", "ultimaker_tough_pla_green", "ultimaker_tough_pla_red", "ultimaker_tough_pla_white", "ultimaker_tpu_black", "ultimaker_tpu_blue", "ultimaker_tpu_red", "ultimaker_tpu_white", "verbatim_bvoh_175", "Vertex_Delta_ABS", "Vertex_Delta_PET", "Vertex_Delta_PLA", "Vertex_Delta_TPU", "zyyx_pro_flex", "zyyx_pro_pla" ],
|
||||
"preferred_material": "tizyx_pla",
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
"preferred_variant_name": "0.4 mm",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "tizyx_k25_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides":
|
||||
{
|
||||
"machine_name": { "default_value": "TiZYX K25" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_width": { "default_value": 255 },
|
||||
"machine_height": { "default_value": 255 },
|
||||
"machine_depth": { "default_value": 255 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"gantry_height": { "value": "500" },
|
||||
"machine_head_with_fans_polygon": {
|
||||
"default_value": [
|
||||
[25, 49],
|
||||
[25, -49],
|
||||
[-25, -49],
|
||||
[25, 49]
|
||||
]
|
||||
},
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode":
|
||||
{
|
||||
"default_value": "M82\nG90\nG28 X\nG28 Y\nG28 Z\nG29\nG91\nG1 Z0\nG90\nM82\nG92 E0\nG1 X125 Y245 F3000\nG1 Z0"
|
||||
},
|
||||
"machine_end_gcode":
|
||||
{
|
||||
"default_value": "M104 S0\nM140 S0\nG91\nG1 E-5 F300\nG1 Z+3 F3000\nG1 Y245 F3000\nM84"
|
||||
},
|
||||
|
||||
|
||||
"acceleration_enabled": {"value": "False"},
|
||||
"acceleration_print": {"value": "1500"},
|
||||
"z_seam_type": {"default_value": "back"},
|
||||
"z_seam_x": {"value": "127.5"},
|
||||
"z_seam_y": {"value": "250"},
|
||||
"retraction_combing": {"default_value": "off"}
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +79,7 @@
|
||||
"prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" },
|
||||
"prime_tower_wipe_enabled": { "default_value": false },
|
||||
|
||||
"prime_blob_enable": { "enabled": true, "default_value": true },
|
||||
"prime_blob_enable": { "enabled": true, "default_value": true, "value": "resolveOrValue('print_sequence') != 'one_at_a_time'" },
|
||||
|
||||
"acceleration_enabled": { "value": "True" },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
|
@ -3,10 +3,10 @@
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"manufacturer": "Velleman nv",
|
||||
"manufacturer": "Velleman N.V.",
|
||||
"file_formats": "text/x-gcode",
|
||||
"visible": true,
|
||||
"author": "Velleman",
|
||||
"author": "Velleman N.V.",
|
||||
"has_machine_quality": true,
|
||||
"has_materials": true,
|
||||
"machine_extruder_trains":
|
||||
|
@ -4,7 +4,7 @@
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"manufacturer": "Velleman",
|
||||
"manufacturer": "Velleman N.V.",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "Vertex_build_panel.stl",
|
||||
"platform_offset": [0, -3, 0],
|
||||
|
@ -4,7 +4,7 @@
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"manufacturer": "Velleman",
|
||||
"manufacturer": "Velleman N.V.",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "Vertex_build_panel.stl",
|
||||
"platform_offset": [0, -3, 0],
|
||||
|
@ -5,7 +5,7 @@
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Unknown",
|
||||
"manufacturer": "Zone3D",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform_offset": [ 0, 0, 0],
|
||||
"machine_extruder_trains":
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
"id": "creality_cr10_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "creality_cr10",
|
||||
"machine": "creality_base",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
@ -12,5 +11,6 @@
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "creality_cr10s4_extruder_0",
|
||||
"id": "erzay3d_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "creality_cr10s4",
|
||||
"machine": "erzay3d",
|
||||
"position": "0"
|
||||
},
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "creality_cr10s5_extruder_0",
|
||||
"id": "flsun_qq_s_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "creality_cr10s5",
|
||||
"machine": "flsun_qq_s",
|
||||
"position": "0"
|
||||
},
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
"id": "creality_ender3_extruder_0",
|
||||
"id": "geeetech_a30_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "creality_ender3",
|
||||
"machine": "geeetech_a30",
|
||||
"position": "0"
|
||||
},
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": "\nM109 T0 S{material_print_temperature}\nG1 X-18 Y-50 F9000\nG1 X150 Y10 F9000\n\n"
|
||||
"default_value": "\n;changing to tool1\nM109 T0 S{material_print_temperature}\nG1 X-18 Y-50 F9000\nG1 X150 Y10 F9000\n\n"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": "\nG1 X150 Y10 F9000\nG1 X-20 Y-50 F9000\nG1 Y-100 F3000\n\n"
|
||||
"default_value": "\nG1 X150 Y10 F9000\nG1 X-20 Y-50 F9000\nG1 Y-100 F3000\n; ending tool1\n\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": "\nM109 T1 S{material_print_temperature}\nG1 X-18 Y-50 F9000\nG1 X150 Y10 F9000\n\n"
|
||||
"default_value": "\n;changing to tool2\nM109 T1 S{material_print_temperature}\nG1 X-18 Y-50 F9000\nG1 X150 Y10 F9000\n\n"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": "\nG1 X150 Y10 F9000\nG1 X-20 Y-50 F9000\nG1 Y-100 F3000\n\n"
|
||||
"default_value": "\nG1 X150 Y10 F9000\nG1 X-20 Y-50 F9000\nG1 Y-100 F3000\n; ending tool2\n\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool3"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool4"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool4"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool5"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool5"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool6"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool6"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool7"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool7"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,10 +17,10 @@
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_extruder_start_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;changing to tool8"
|
||||
},
|
||||
"machine_extruder_end_code": {
|
||||
"default_value": ""
|
||||
"default_value": "\n;ending tool8"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
16
resources/extruders/nwa3d_a31_extruder_0.def.json
Normal file
16
resources/extruders/nwa3d_a31_extruder_0.def.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"id": "nwa3d_a31_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Standard 0.4mm",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "nwa3d_a31",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
17
resources/extruders/strateo3d_left_extruder.def.json
Normal file
17
resources/extruders/strateo3d_left_extruder.def.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "strateo3d_left_extruder",
|
||||
"version": 2,
|
||||
"name": "Left Extruder 2",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "strateo3d",
|
||||
"position": "1"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 1, "maximum_value": "1" },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0 }
|
||||
}
|
||||
}
|
17
resources/extruders/strateo3d_right_extruder.def.json
Normal file
17
resources/extruders/strateo3d_right_extruder.def.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"id": "strateo3d_right_extruder",
|
||||
"version": 2,
|
||||
"name": "Right Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "strateo3d",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0, "maximum_value": "1" },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_offset_x": { "default_value": 0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0 }
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cura 4.1\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: German\n"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cura 4.1\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: German\n"
|
||||
@ -57,7 +57,9 @@ msgctxt "machine_start_gcode description"
|
||||
msgid ""
|
||||
"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
|
||||
msgctxt "machine_end_gcode label"
|
||||
@ -69,7 +71,9 @@ msgctxt "machine_end_gcode description"
|
||||
msgid ""
|
||||
"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
|
||||
msgctxt "material_guid label"
|
||||
@ -333,8 +337,8 @@ msgstr "Die Mindestzeit, die ein Extruder inaktiv sein muss, bevor die Düse abk
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "machine_gcode_flavor label"
|
||||
msgid "G-code Flavour"
|
||||
msgstr "G-Code-Variante"
|
||||
msgid "G-code Flavor"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "machine_gcode_flavor description"
|
||||
@ -1293,8 +1297,8 @@ msgstr "Präferenz Nahtkante"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner description"
|
||||
msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner."
|
||||
msgstr "Definieren Sie, ob Kanten am Modell-Umriss die Nahtposition beeinflussen. Keine bedeutet, dass Kanten keinen Einfluss auf die Nahtposition haben. Naht verbergen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden Kante auftreten. Naht offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer Außenkante auftreten. Naht verbergen oder offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden oder außenliegenden Kante auftreten."
|
||||
msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner option z_seam_corner_none"
|
||||
@ -1316,6 +1320,11 @@ msgctxt "z_seam_corner option z_seam_corner_any"
|
||||
msgid "Hide or Expose Seam"
|
||||
msgstr "Naht verbergen oder offenlegen"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner option z_seam_corner_weighted"
|
||||
msgid "Smart Hiding"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_relative label"
|
||||
msgid "Z Seam Relative"
|
||||
@ -1328,13 +1337,13 @@ msgstr "Bei Aktivierung sind die Z-Naht-Koordinaten relativ zur Mitte der jeweil
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic label"
|
||||
msgid "Ignore Small Z Gaps"
|
||||
msgstr "Schmale Z-Lücken ignorieren"
|
||||
msgid "No Skin in Z Gaps"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic description"
|
||||
msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting."
|
||||
msgstr "Wenn das Modell schmale vertikale Lücken hat, kann etwa 5 % zusätzliche Rechenzeit aufgewendet werden, um eine obere und untere Außenhaut in diesen engen Räumen zu generieren. In diesem Fall deaktivieren Sie die Einstellung."
|
||||
msgid "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_outline_count label"
|
||||
@ -1631,7 +1640,9 @@ msgctxt "infill_wall_line_count description"
|
||||
msgid ""
|
||||
"Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\n"
|
||||
"This feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right."
|
||||
msgstr "Fügen Sie zusätzliche Wände um den Füllbereich hinzu. Derartige Wände können zu einem verringerten Absacken der oberen/unteren Außenhautlinien beitragen, was bedeutet, dass Sie weniger Außenhautschichten oben/unten bei derselben Qualität von Kosten für zusätzliches Material benötigen.\n Diese Funktion ist verknüpfbar mit „Füllungspolygone verbinden“, um alle Füllungen mit einem einzigen Extrusionspfad zu verbinden, ohne dass hierzu Vorwärtsbewegungen oder Rückzüge erforderlich sind, sofern die richtige Konfiguration gewählt wurde."
|
||||
msgstr ""
|
||||
"Fügen Sie zusätzliche Wände um den Füllbereich hinzu. Derartige Wände können zu einem verringerten Absacken der oberen/unteren Außenhautlinien beitragen, was bedeutet, dass Sie weniger Außenhautschichten oben/unten bei derselben Qualität von Kosten für zusätzliches Material benötigen.\n"
|
||||
" Diese Funktion ist verknüpfbar mit „Füllungspolygone verbinden“, um alle Füllungen mit einem einzigen Extrusionspfad zu verbinden, ohne dass hierzu Vorwärtsbewegungen oder Rückzüge erforderlich sind, sofern die richtige Konfiguration gewählt wurde."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "sub_div_rad_add label"
|
||||
@ -1870,8 +1881,8 @@ msgstr "Temperatur Druckabmessung"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "build_volume_temperature description"
|
||||
msgid "The temperature used for build volume. If this is 0, the build volume temperature will not be adjusted."
|
||||
msgstr "Die für die Druckabmessung verwendete Temperatur. Wenn dieser Wert 0 beträgt, wird die Temperatur der Druckabmessung nicht angepasst."
|
||||
msgid "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_print_temperature label"
|
||||
@ -1983,6 +1994,86 @@ msgctxt "material_shrinkage_percentage description"
|
||||
msgid "Shrinkage ratio in percentage."
|
||||
msgstr "Schrumpfungsverhältnis in Prozent."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity label"
|
||||
msgid "Crystalline Material"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity description"
|
||||
msgid "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position label"
|
||||
msgid "Anti-ooze Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position description"
|
||||
msgid "How far the material needs to be retracted before it stops oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed label"
|
||||
msgid "Anti-ooze Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed description"
|
||||
msgid "How fast the material needs to be retracted during a filament switch to prevent oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position label"
|
||||
msgid "Break Preparation Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position description"
|
||||
msgid "How far the filament can be stretched before it breaks, while heated."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed label"
|
||||
msgid "Break Preparation Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed description"
|
||||
msgid "How fast the filament needs to be retracted just before breaking it off in a retraction."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position label"
|
||||
msgid "Break Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position description"
|
||||
msgid "How far to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed label"
|
||||
msgid "Break Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed description"
|
||||
msgid "The speed at which to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature label"
|
||||
msgid "Break Temperature"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature description"
|
||||
msgid "The temperature at which the filament is broken for a clean break."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow label"
|
||||
msgid "Flow"
|
||||
@ -1993,6 +2084,126 @@ msgctxt "material_flow description"
|
||||
msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
msgstr "Fluss-Kompensation: Die extrudierte Materialmenge wird mit diesem Wert multipliziert."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow label"
|
||||
msgid "Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow description"
|
||||
msgid "Flow compensation on wall lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow label"
|
||||
msgid "Outer Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow description"
|
||||
msgid "Flow compensation on the outermost wall line."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow label"
|
||||
msgid "Inner Wall(s) Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow description"
|
||||
msgid "Flow compensation on wall lines for all wall lines except the outermost one."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow label"
|
||||
msgid "Top/Bottom Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow description"
|
||||
msgid "Flow compensation on top/bottom lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow label"
|
||||
msgid "Top Surface Skin Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow description"
|
||||
msgid "Flow compensation on lines of the areas at the top of the print."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow label"
|
||||
msgid "Infill Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow description"
|
||||
msgid "Flow compensation on infill lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow label"
|
||||
msgid "Skirt/Brim Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow description"
|
||||
msgid "Flow compensation on skirt or brim lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow label"
|
||||
msgid "Support Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow description"
|
||||
msgid "Flow compensation on support structure lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow label"
|
||||
msgid "Support Interface Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow description"
|
||||
msgid "Flow compensation on lines of support roof or floor."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow label"
|
||||
msgid "Support Roof Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow description"
|
||||
msgid "Flow compensation on support roof lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow label"
|
||||
msgid "Support Floor Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow description"
|
||||
msgid "Flow compensation on support floor lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr "Fluss Einzugsturm"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid "Flow compensation on prime tower lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow_layer_0 label"
|
||||
msgid "Initial Layer Flow"
|
||||
@ -2110,8 +2321,8 @@ msgstr "Stützstruktur-Einzüge einschränken"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "limit_support_retractions description"
|
||||
msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure."
|
||||
msgstr "Lassen Sie den Einzug beim Vorgehen von Stützstruktur zu Stützstruktur in einer geraden Linie aus. Die Aktivierung dieser Einstellung spart Druckzeit, kann jedoch zu übermäßigem Fadenziehen innerhalb der Stützstruktur führen."
|
||||
msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_standby_temperature label"
|
||||
@ -2163,6 +2374,16 @@ msgctxt "switch_extruder_prime_speed description"
|
||||
msgid "The speed at which the filament is pushed back after a nozzle switch retraction."
|
||||
msgstr "Die Geschwindigkeit, mit der das Filament während eines Düsenschaltereinzugs zurückgeschoben wird."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount label"
|
||||
msgid "Nozzle Switch Extra Prime Amount"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount description"
|
||||
msgid "Extra material to prime after nozzle switching."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed label"
|
||||
msgid "Speed"
|
||||
@ -2354,14 +2575,14 @@ msgid "The speed at which the skirt and brim are printed. Normally this is done
|
||||
msgstr "Die Geschwindigkeit, mit der die Skirt- und Brim-Elemente gedruckt werden. Normalerweise wird dafür die Geschwindigkeit der Basisschicht verwendet. In machen Fällen kann es jedoch vorteilhaft sein, das Skirt- oder Brim-Element mit einer anderen Geschwindigkeit zu drucken."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override label"
|
||||
msgid "Maximum Z Speed"
|
||||
msgstr "Maximale Z-Geschwindigkeit"
|
||||
msgctxt "speed_z_hop label"
|
||||
msgid "Z Hop Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override description"
|
||||
msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed."
|
||||
msgstr "Die maximale Geschwindigkeit, mit der die Druckplatte bewegt wird. Eine Einstellung auf Null veranlasst die Verwendung der Firmware-Grundeinstellungen für die maximale Z-Geschwindigkeit."
|
||||
msgctxt "speed_z_hop description"
|
||||
msgid "The speed at which the vertical Z movement is made for Z Hops. This is typically lower than the print speed since the build plate or machine's gantry is harder to move."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed_slowdown_layers label"
|
||||
@ -3415,8 +3636,8 @@ msgstr "Abstand für Zusammenführung der Stützstrukturen"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_join_distance description"
|
||||
msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one."
|
||||
msgstr "Der Maximalabstand zwischen Stützstrukturen in der X- und Y-Richtung. Wenn sich einzelne Strukturen näher aneinander befinden, als dieser Wert, werden diese Strukturen in eine einzige Struktur zusammengefügt."
|
||||
msgid "The maximum distance between support structures in the X/Y directions. When separate structures are closer together than this value, the structures merge into one."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_offset label"
|
||||
@ -3794,14 +4015,14 @@ msgid "The diameter of a special tower."
|
||||
msgstr "Der Durchmesser eines speziellen Pfeilers."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter label"
|
||||
msgid "Minimum Diameter"
|
||||
msgstr "Mindestdurchmesser"
|
||||
msgctxt "support_tower_maximum_supported_diameter label"
|
||||
msgid "Maximum Tower-Supported Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter description"
|
||||
msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
msgstr "Der Mindestdurchmesser in den X/Y-Richtungen eines kleinen Bereichs, der durch einen speziellen Stützpfeiler gestützt wird."
|
||||
msgctxt "support_tower_maximum_supported_diameter description"
|
||||
msgid "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_tower_roof_angle label"
|
||||
@ -3923,7 +4144,9 @@ msgctxt "skirt_gap description"
|
||||
msgid ""
|
||||
"The horizontal distance between the skirt and the first layer of the print.\n"
|
||||
"This is the minimum distance. Multiple skirt lines will extend outwards from this distance."
|
||||
msgstr "Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\nEs handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden mehrere Skirt-Linien in äußerer Richtung angebracht."
|
||||
msgstr ""
|
||||
"Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\n"
|
||||
"Es handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden mehrere Skirt-Linien in äußerer Richtung angebracht."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_minimal_length label"
|
||||
@ -4295,16 +4518,6 @@ msgctxt "prime_tower_enable description"
|
||||
msgid "Print a tower next to the print which serves to prime the material after each nozzle switch."
|
||||
msgstr "Drucken Sie einen Turm neben dem Druck, der zum Einziehen des Materials nach jeder Düsenschaltung dient."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular label"
|
||||
msgid "Circular Prime Tower"
|
||||
msgstr "Einzugsturm kreisförmig"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular description"
|
||||
msgid "Make the prime tower as a circular shape."
|
||||
msgstr "Macht den Einzugsturm zu einer Kreisform."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_size label"
|
||||
msgid "Prime Tower Size"
|
||||
@ -4345,16 +4558,6 @@ msgctxt "prime_tower_position_y description"
|
||||
msgid "The y coordinate of the position of the prime tower."
|
||||
msgstr "Die Y-Koordinate der Position des Einzugsturms."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr "Fluss Einzugsturm"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
msgstr "Fluss-Kompensation: Die extrudierte Materialmenge wird mit diesem Wert multipliziert."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_wipe_enabled label"
|
||||
msgid "Wipe Inactive Nozzle on Prime Tower"
|
||||
@ -4657,8 +4860,8 @@ msgstr "Spiralisieren der äußeren Konturen glätten"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "smooth_spiralized_contours description"
|
||||
msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
msgstr "Glättet die spiralförmigen Konturen, um die Sichtbarkeit der Z-Naht zu reduzieren (die Z-Naht sollte auf dem Druck kaum sichtbar sein, ist jedoch in der Schichtenansicht erkennbar). Beachten Sie, dass das Glätten dazu neigt, feine Oberflächendetails zu verwischen."
|
||||
msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "relative_extrusion label"
|
||||
@ -5157,8 +5360,8 @@ msgstr "Konische Stützstruktur aktivieren"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_conical_enabled description"
|
||||
msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang."
|
||||
msgstr "Experimentelle Funktion: Macht die Bereiche der Stützstruktur am Boden kleiner als beim Überhang."
|
||||
msgid "Make support areas smaller at the bottom than at the overhang."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_conical_angle label"
|
||||
@ -5390,7 +5593,9 @@ msgctxt "wireframe_up_half_speed description"
|
||||
msgid ""
|
||||
"Distance of an upward move which is extruded with half speed.\n"
|
||||
"This can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing."
|
||||
msgstr "Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\nDies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur."
|
||||
msgstr ""
|
||||
"Die Strecke einer Aufwärtsbewegung, die mit halber Geschwindigkeit extrudiert wird.\n"
|
||||
"Dies kann zu einer besseren Haftung an vorhergehenden Schichten führen, während gleichzeitig ein Überhitzen des Materials in diesen Schichten vermieden wird. Dies gilt nur für das Drucken mit Drahtstruktur."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wireframe_top_jump label"
|
||||
@ -5957,6 +6162,70 @@ msgctxt "mesh_rotation_matrix description"
|
||||
msgid "Transformation matrix to be applied to the model when loading it from file."
|
||||
msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angewandt wird."
|
||||
|
||||
#~ msgctxt "machine_gcode_flavor label"
|
||||
#~ msgid "G-code Flavour"
|
||||
#~ msgstr "G-Code-Variante"
|
||||
|
||||
#~ msgctxt "z_seam_corner description"
|
||||
#~ msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner."
|
||||
#~ msgstr "Definieren Sie, ob Kanten am Modell-Umriss die Nahtposition beeinflussen. Keine bedeutet, dass Kanten keinen Einfluss auf die Nahtposition haben. Naht verbergen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden Kante auftreten. Naht offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer Außenkante auftreten. Naht verbergen oder offenlegen lässt die Naht mit höherer Wahrscheinlichkeit an einer innenliegenden oder außenliegenden Kante auftreten."
|
||||
|
||||
#~ msgctxt "skin_no_small_gaps_heuristic label"
|
||||
#~ msgid "Ignore Small Z Gaps"
|
||||
#~ msgstr "Schmale Z-Lücken ignorieren"
|
||||
|
||||
#~ msgctxt "skin_no_small_gaps_heuristic description"
|
||||
#~ msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting."
|
||||
#~ msgstr "Wenn das Modell schmale vertikale Lücken hat, kann etwa 5 % zusätzliche Rechenzeit aufgewendet werden, um eine obere und untere Außenhaut in diesen engen Räumen zu generieren. In diesem Fall deaktivieren Sie die Einstellung."
|
||||
|
||||
#~ msgctxt "build_volume_temperature description"
|
||||
#~ msgid "The temperature used for build volume. If this is 0, the build volume temperature will not be adjusted."
|
||||
#~ msgstr "Die für die Druckabmessung verwendete Temperatur. Wenn dieser Wert 0 beträgt, wird die Temperatur der Druckabmessung nicht angepasst."
|
||||
|
||||
#~ msgctxt "limit_support_retractions description"
|
||||
#~ msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure."
|
||||
#~ msgstr "Lassen Sie den Einzug beim Vorgehen von Stützstruktur zu Stützstruktur in einer geraden Linie aus. Die Aktivierung dieser Einstellung spart Druckzeit, kann jedoch zu übermäßigem Fadenziehen innerhalb der Stützstruktur führen."
|
||||
|
||||
#~ msgctxt "max_feedrate_z_override label"
|
||||
#~ msgid "Maximum Z Speed"
|
||||
#~ msgstr "Maximale Z-Geschwindigkeit"
|
||||
|
||||
#~ msgctxt "max_feedrate_z_override description"
|
||||
#~ msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed."
|
||||
#~ msgstr "Die maximale Geschwindigkeit, mit der die Druckplatte bewegt wird. Eine Einstellung auf Null veranlasst die Verwendung der Firmware-Grundeinstellungen für die maximale Z-Geschwindigkeit."
|
||||
|
||||
#~ msgctxt "support_join_distance description"
|
||||
#~ msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one."
|
||||
#~ msgstr "Der Maximalabstand zwischen Stützstrukturen in der X- und Y-Richtung. Wenn sich einzelne Strukturen näher aneinander befinden, als dieser Wert, werden diese Strukturen in eine einzige Struktur zusammengefügt."
|
||||
|
||||
#~ msgctxt "support_minimal_diameter label"
|
||||
#~ msgid "Minimum Diameter"
|
||||
#~ msgstr "Mindestdurchmesser"
|
||||
|
||||
#~ msgctxt "support_minimal_diameter description"
|
||||
#~ msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
#~ msgstr "Der Mindestdurchmesser in den X/Y-Richtungen eines kleinen Bereichs, der durch einen speziellen Stützpfeiler gestützt wird."
|
||||
|
||||
#~ msgctxt "prime_tower_circular label"
|
||||
#~ msgid "Circular Prime Tower"
|
||||
#~ msgstr "Einzugsturm kreisförmig"
|
||||
|
||||
#~ msgctxt "prime_tower_circular description"
|
||||
#~ msgid "Make the prime tower as a circular shape."
|
||||
#~ msgstr "Macht den Einzugsturm zu einer Kreisform."
|
||||
|
||||
#~ msgctxt "prime_tower_flow description"
|
||||
#~ msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
#~ msgstr "Fluss-Kompensation: Die extrudierte Materialmenge wird mit diesem Wert multipliziert."
|
||||
|
||||
#~ msgctxt "smooth_spiralized_contours description"
|
||||
#~ msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
#~ msgstr "Glättet die spiralförmigen Konturen, um die Sichtbarkeit der Z-Naht zu reduzieren (die Z-Naht sollte auf dem Druck kaum sichtbar sein, ist jedoch in der Schichtenansicht erkennbar). Beachten Sie, dass das Glätten dazu neigt, feine Oberflächendetails zu verwischen."
|
||||
|
||||
#~ msgctxt "support_conical_enabled description"
|
||||
#~ msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang."
|
||||
#~ msgstr "Experimentelle Funktion: Macht die Bereiche der Stützstruktur am Boden kleiner als beim Überhang."
|
||||
|
||||
#~ msgctxt "extruders_enabled_count label"
|
||||
#~ msgid "Number of Extruders that are enabled"
|
||||
#~ msgstr "Anzahl der aktivierten Extruder"
|
||||
@ -6162,7 +6431,6 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
|
||||
#~ "Gcode commands to be executed at the very start - separated by \n"
|
||||
#~ "."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ "Gcode-Befehle, die zu Beginn ausgeführt werden sollen – getrennt durch \n"
|
||||
#~ "."
|
||||
|
||||
@ -6175,7 +6443,6 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
|
||||
#~ "Gcode commands to be executed at the very end - separated by \n"
|
||||
#~ "."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ "Gcode-Befehle, die Am Ende ausgeführt werden sollen – getrennt durch \n"
|
||||
#~ "."
|
||||
|
||||
@ -6232,7 +6499,6 @@ msgstr "Transformationsmatrix, die beim Laden aus der Datei auf das Modell angew
|
||||
#~ "The horizontal distance between the skirt and the first layer of the print.\n"
|
||||
#~ "This is the minimum distance, multiple skirt lines will extend outwards from this distance."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ "Der horizontale Abstand zwischen dem Skirt und der ersten Schicht des Drucks.\n"
|
||||
#~ "Es handelt sich dabei um den Mindestabstand. Ab diesem Abstand werden Skirt-Linien in äußerer Richtung angebracht."
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cura 4.1\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: 2019-03-13 14:00+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cura 4.1\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: 2019-05-28 09:34+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: Spanish\n"
|
||||
@ -337,8 +337,8 @@ msgstr "Tiempo mínimo que un extrusor debe permanecer inactivo antes de que la
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "machine_gcode_flavor label"
|
||||
msgid "G-code Flavour"
|
||||
msgstr "Tipo de GCode"
|
||||
msgid "G-code Flavor"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "machine_gcode_flavor description"
|
||||
@ -1297,8 +1297,8 @@ msgstr "Preferencia de esquina de costura"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner description"
|
||||
msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner."
|
||||
msgstr "Controlar si las esquinas del contorno del modelo influyen en la posición de la costura. «Ninguno» significa que las esquinas no influyen en la posición de la costura. «Ocultar costura» significa que es probable que la costura se realice en una esquina interior. «Mostrar costura» significa que es probable que la costura sea en una esquina exterior. «Ocultar o mostrar costura» significa que es probable que la costura se realice en una esquina interior o exterior."
|
||||
msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner option z_seam_corner_none"
|
||||
@ -1320,6 +1320,11 @@ msgctxt "z_seam_corner option z_seam_corner_any"
|
||||
msgid "Hide or Expose Seam"
|
||||
msgstr "Ocultar o mostrar costura"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner option z_seam_corner_weighted"
|
||||
msgid "Smart Hiding"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_relative label"
|
||||
msgid "Z Seam Relative"
|
||||
@ -1332,13 +1337,13 @@ msgstr "Cuando se habilita, las coordenadas de la costura en z son relativas al
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic label"
|
||||
msgid "Ignore Small Z Gaps"
|
||||
msgstr "Ignorar los pequeños huecos en Z"
|
||||
msgid "No Skin in Z Gaps"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic description"
|
||||
msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting."
|
||||
msgstr "Cuando el modelo tiene pequeños huecos verticales, el tiempo de cálculo puede aumentar alrededor de un 5 % para generar el forro superior e inferior en estos espacios estrechos. En tal caso, desactive este ajuste."
|
||||
msgid "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_outline_count label"
|
||||
@ -1876,8 +1881,8 @@ msgstr "Temperatura de volumen de impresión"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "build_volume_temperature description"
|
||||
msgid "The temperature used for build volume. If this is 0, the build volume temperature will not be adjusted."
|
||||
msgstr "La temperatura utilizada para el volumen de impresión. Si el valor es 0, la temperatura de volumen de impresión no se ajustará."
|
||||
msgid "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_print_temperature label"
|
||||
@ -1989,6 +1994,86 @@ msgctxt "material_shrinkage_percentage description"
|
||||
msgid "Shrinkage ratio in percentage."
|
||||
msgstr "Índice de compresión en porcentaje."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity label"
|
||||
msgid "Crystalline Material"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity description"
|
||||
msgid "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position label"
|
||||
msgid "Anti-ooze Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position description"
|
||||
msgid "How far the material needs to be retracted before it stops oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed label"
|
||||
msgid "Anti-ooze Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed description"
|
||||
msgid "How fast the material needs to be retracted during a filament switch to prevent oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position label"
|
||||
msgid "Break Preparation Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position description"
|
||||
msgid "How far the filament can be stretched before it breaks, while heated."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed label"
|
||||
msgid "Break Preparation Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed description"
|
||||
msgid "How fast the filament needs to be retracted just before breaking it off in a retraction."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position label"
|
||||
msgid "Break Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position description"
|
||||
msgid "How far to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed label"
|
||||
msgid "Break Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed description"
|
||||
msgid "The speed at which to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature label"
|
||||
msgid "Break Temperature"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature description"
|
||||
msgid "The temperature at which the filament is broken for a clean break."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow label"
|
||||
msgid "Flow"
|
||||
@ -1999,6 +2084,126 @@ msgctxt "material_flow description"
|
||||
msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
msgstr "Compensación de flujo: la cantidad de material extruido se multiplica por este valor."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow label"
|
||||
msgid "Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow description"
|
||||
msgid "Flow compensation on wall lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow label"
|
||||
msgid "Outer Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow description"
|
||||
msgid "Flow compensation on the outermost wall line."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow label"
|
||||
msgid "Inner Wall(s) Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow description"
|
||||
msgid "Flow compensation on wall lines for all wall lines except the outermost one."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow label"
|
||||
msgid "Top/Bottom Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow description"
|
||||
msgid "Flow compensation on top/bottom lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow label"
|
||||
msgid "Top Surface Skin Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow description"
|
||||
msgid "Flow compensation on lines of the areas at the top of the print."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow label"
|
||||
msgid "Infill Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow description"
|
||||
msgid "Flow compensation on infill lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow label"
|
||||
msgid "Skirt/Brim Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow description"
|
||||
msgid "Flow compensation on skirt or brim lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow label"
|
||||
msgid "Support Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow description"
|
||||
msgid "Flow compensation on support structure lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow label"
|
||||
msgid "Support Interface Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow description"
|
||||
msgid "Flow compensation on lines of support roof or floor."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow label"
|
||||
msgid "Support Roof Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow description"
|
||||
msgid "Flow compensation on support roof lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow label"
|
||||
msgid "Support Floor Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow description"
|
||||
msgid "Flow compensation on support floor lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr "Flujo de la torre auxiliar"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid "Flow compensation on prime tower lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow_layer_0 label"
|
||||
msgid "Initial Layer Flow"
|
||||
@ -2116,8 +2321,8 @@ msgstr "Limitar las retracciones de soporte"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "limit_support_retractions description"
|
||||
msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure."
|
||||
msgstr "Omitir la retracción al moverse de soporte a soporte en línea recta. Habilitar este ajuste ahorra tiempo de impresión pero puede ocasionar un encordado excesivo en la estructura de soporte."
|
||||
msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_standby_temperature label"
|
||||
@ -2169,6 +2374,16 @@ msgctxt "switch_extruder_prime_speed description"
|
||||
msgid "The speed at which the filament is pushed back after a nozzle switch retraction."
|
||||
msgstr "Velocidad a la que se retrae el filamento durante una retracción del cambio de tobera."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount label"
|
||||
msgid "Nozzle Switch Extra Prime Amount"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount description"
|
||||
msgid "Extra material to prime after nozzle switching."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed label"
|
||||
msgid "Speed"
|
||||
@ -2360,14 +2575,14 @@ msgid "The speed at which the skirt and brim are printed. Normally this is done
|
||||
msgstr "Velocidad a la que se imprimen la falda y el borde. Normalmente, esto se hace a la velocidad de la capa inicial, pero a veces es posible que se prefiera imprimir la falda o el borde a una velocidad diferente."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override label"
|
||||
msgid "Maximum Z Speed"
|
||||
msgstr "Velocidad máxima de Z"
|
||||
msgctxt "speed_z_hop label"
|
||||
msgid "Z Hop Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override description"
|
||||
msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed."
|
||||
msgstr "Velocidad máxima a la que se mueve la placa de impresión. Definir este valor en 0 hace que la impresión utilice los valores predeterminados de la velocidad máxima de Z."
|
||||
msgctxt "speed_z_hop description"
|
||||
msgid "The speed at which the vertical Z movement is made for Z Hops. This is typically lower than the print speed since the build plate or machine's gantry is harder to move."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed_slowdown_layers label"
|
||||
@ -3421,8 +3636,8 @@ msgstr "Distancia de unión del soporte"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_join_distance description"
|
||||
msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one."
|
||||
msgstr "Distancia máxima entre las estructuras del soporte en las direcciones X/Y. Cuando estructuras separadas están más cerca entre sí que de este valor, las estructuras se combinan en una."
|
||||
msgid "The maximum distance between support structures in the X/Y directions. When separate structures are closer together than this value, the structures merge into one."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_offset label"
|
||||
@ -3800,14 +4015,14 @@ msgid "The diameter of a special tower."
|
||||
msgstr "Diámetro de una torre especial."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter label"
|
||||
msgid "Minimum Diameter"
|
||||
msgstr "Diámetro mínimo"
|
||||
msgctxt "support_tower_maximum_supported_diameter label"
|
||||
msgid "Maximum Tower-Supported Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter description"
|
||||
msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
msgstr "Diámetro mínimo en las direcciones X/Y de una pequeña área que soportará una torre de soporte especializada."
|
||||
msgctxt "support_tower_maximum_supported_diameter description"
|
||||
msgid "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_tower_roof_angle label"
|
||||
@ -4303,16 +4518,6 @@ msgctxt "prime_tower_enable description"
|
||||
msgid "Print a tower next to the print which serves to prime the material after each nozzle switch."
|
||||
msgstr "Imprimir una torre junto a la impresión que sirve para preparar el material tras cada cambio de tobera."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular label"
|
||||
msgid "Circular Prime Tower"
|
||||
msgstr "Torre auxiliar circular"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular description"
|
||||
msgid "Make the prime tower as a circular shape."
|
||||
msgstr "Hacer que la torre auxiliar sea circular."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_size label"
|
||||
msgid "Prime Tower Size"
|
||||
@ -4353,16 +4558,6 @@ msgctxt "prime_tower_position_y description"
|
||||
msgid "The y coordinate of the position of the prime tower."
|
||||
msgstr "Coordenada Y de la posición de la torre auxiliar."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr "Flujo de la torre auxiliar"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
msgstr "Compensación de flujo: la cantidad de material extruido se multiplica por este valor."
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_wipe_enabled label"
|
||||
msgid "Wipe Inactive Nozzle on Prime Tower"
|
||||
@ -4665,8 +4860,8 @@ msgstr "Contornos espiralizados suaves"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "smooth_spiralized_contours description"
|
||||
msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
msgstr "Suavice los contornos espiralizados para reducir la visibilidad de la costura Z (la costura Z debería ser apenas visible en la impresora pero seguirá siendo visible en la vista de capas). Tenga en cuenta que la suavización tenderá a desdibujar detalles finos de la superficie."
|
||||
msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "relative_extrusion label"
|
||||
@ -5165,8 +5360,8 @@ msgstr "Activar soporte cónico"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_conical_enabled description"
|
||||
msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang."
|
||||
msgstr "Función experimental: hace áreas de soporte más pequeñas en la parte inferior que en el voladizo."
|
||||
msgid "Make support areas smaller at the bottom than at the overhang."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_conical_angle label"
|
||||
@ -5967,6 +6162,70 @@ msgctxt "mesh_rotation_matrix description"
|
||||
msgid "Transformation matrix to be applied to the model when loading it from file."
|
||||
msgstr "Matriz de transformación que se aplicará al modelo cuando se cargue desde el archivo."
|
||||
|
||||
#~ msgctxt "machine_gcode_flavor label"
|
||||
#~ msgid "G-code Flavour"
|
||||
#~ msgstr "Tipo de GCode"
|
||||
|
||||
#~ msgctxt "z_seam_corner description"
|
||||
#~ msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner."
|
||||
#~ msgstr "Controlar si las esquinas del contorno del modelo influyen en la posición de la costura. «Ninguno» significa que las esquinas no influyen en la posición de la costura. «Ocultar costura» significa que es probable que la costura se realice en una esquina interior. «Mostrar costura» significa que es probable que la costura sea en una esquina exterior. «Ocultar o mostrar costura» significa que es probable que la costura se realice en una esquina interior o exterior."
|
||||
|
||||
#~ msgctxt "skin_no_small_gaps_heuristic label"
|
||||
#~ msgid "Ignore Small Z Gaps"
|
||||
#~ msgstr "Ignorar los pequeños huecos en Z"
|
||||
|
||||
#~ msgctxt "skin_no_small_gaps_heuristic description"
|
||||
#~ msgid "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting."
|
||||
#~ msgstr "Cuando el modelo tiene pequeños huecos verticales, el tiempo de cálculo puede aumentar alrededor de un 5 % para generar el forro superior e inferior en estos espacios estrechos. En tal caso, desactive este ajuste."
|
||||
|
||||
#~ msgctxt "build_volume_temperature description"
|
||||
#~ msgid "The temperature used for build volume. If this is 0, the build volume temperature will not be adjusted."
|
||||
#~ msgstr "La temperatura utilizada para el volumen de impresión. Si el valor es 0, la temperatura de volumen de impresión no se ajustará."
|
||||
|
||||
#~ msgctxt "limit_support_retractions description"
|
||||
#~ msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure."
|
||||
#~ msgstr "Omitir la retracción al moverse de soporte a soporte en línea recta. Habilitar este ajuste ahorra tiempo de impresión pero puede ocasionar un encordado excesivo en la estructura de soporte."
|
||||
|
||||
#~ msgctxt "max_feedrate_z_override label"
|
||||
#~ msgid "Maximum Z Speed"
|
||||
#~ msgstr "Velocidad máxima de Z"
|
||||
|
||||
#~ msgctxt "max_feedrate_z_override description"
|
||||
#~ msgid "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed."
|
||||
#~ msgstr "Velocidad máxima a la que se mueve la placa de impresión. Definir este valor en 0 hace que la impresión utilice los valores predeterminados de la velocidad máxima de Z."
|
||||
|
||||
#~ msgctxt "support_join_distance description"
|
||||
#~ msgid "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one."
|
||||
#~ msgstr "Distancia máxima entre las estructuras del soporte en las direcciones X/Y. Cuando estructuras separadas están más cerca entre sí que de este valor, las estructuras se combinan en una."
|
||||
|
||||
#~ msgctxt "support_minimal_diameter label"
|
||||
#~ msgid "Minimum Diameter"
|
||||
#~ msgstr "Diámetro mínimo"
|
||||
|
||||
#~ msgctxt "support_minimal_diameter description"
|
||||
#~ msgid "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
|
||||
#~ msgstr "Diámetro mínimo en las direcciones X/Y de una pequeña área que soportará una torre de soporte especializada."
|
||||
|
||||
#~ msgctxt "prime_tower_circular label"
|
||||
#~ msgid "Circular Prime Tower"
|
||||
#~ msgstr "Torre auxiliar circular"
|
||||
|
||||
#~ msgctxt "prime_tower_circular description"
|
||||
#~ msgid "Make the prime tower as a circular shape."
|
||||
#~ msgstr "Hacer que la torre auxiliar sea circular."
|
||||
|
||||
#~ msgctxt "prime_tower_flow description"
|
||||
#~ msgid "Flow compensation: the amount of material extruded is multiplied by this value."
|
||||
#~ msgstr "Compensación de flujo: la cantidad de material extruido se multiplica por este valor."
|
||||
|
||||
#~ msgctxt "smooth_spiralized_contours description"
|
||||
#~ msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
|
||||
#~ msgstr "Suavice los contornos espiralizados para reducir la visibilidad de la costura Z (la costura Z debería ser apenas visible en la impresora pero seguirá siendo visible en la vista de capas). Tenga en cuenta que la suavización tenderá a desdibujar detalles finos de la superficie."
|
||||
|
||||
#~ msgctxt "support_conical_enabled description"
|
||||
#~ msgid "Experimental feature: Make support areas smaller at the bottom than at the overhang."
|
||||
#~ msgstr "Función experimental: hace áreas de soporte más pequeñas en la parte inferior que en el voladizo."
|
||||
|
||||
#~ msgctxt "extruders_enabled_count label"
|
||||
#~ msgid "Number of Extruders that are enabled"
|
||||
#~ msgstr "Número de extrusores habilitados"
|
||||
|
@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
|
@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
@ -362,7 +362,7 @@ msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "machine_gcode_flavor label"
|
||||
msgid "G-code Flavour"
|
||||
msgid "G-code Flavor"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -1448,7 +1448,9 @@ msgid ""
|
||||
"seam. None means that corners have no influence on the seam position. Hide "
|
||||
"Seam makes the seam more likely to occur on an inside corner. Expose Seam "
|
||||
"makes the seam more likely to occur on an outside corner. Hide or Expose "
|
||||
"Seam makes the seam more likely to occur at an inside or outside corner."
|
||||
"Seam makes the seam more likely to occur at an inside or outside corner. "
|
||||
"Smart Hiding allows both inside and outside corners, but chooses inside "
|
||||
"corners more frequently, if appropriate."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -1471,6 +1473,11 @@ msgctxt "z_seam_corner option z_seam_corner_any"
|
||||
msgid "Hide or Expose Seam"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_corner option z_seam_corner_weighted"
|
||||
msgid "Smart Hiding"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "z_seam_relative label"
|
||||
msgid "Z Seam Relative"
|
||||
@ -1486,15 +1493,17 @@ msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic label"
|
||||
msgid "Ignore Small Z Gaps"
|
||||
msgid "No Skin in Z Gaps"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_no_small_gaps_heuristic description"
|
||||
msgid ""
|
||||
"When the model has small vertical gaps, about 5% extra computation time can "
|
||||
"be spent on generating top and bottom skin in these narrow spaces. In such "
|
||||
"case, disable the setting."
|
||||
"When the model has small vertical gaps of only a few layers, there should "
|
||||
"normally be skin around those layers in the narrow space. Enable this "
|
||||
"setting to not generate skin if the vertical gap is very small. This "
|
||||
"improves printing time and slicing time, but technically leaves infill "
|
||||
"exposed to the air."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -2151,8 +2160,8 @@ msgstr ""
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "build_volume_temperature description"
|
||||
msgid ""
|
||||
"The temperature used for build volume. If this is 0, the build volume "
|
||||
"temperature will not be adjusted."
|
||||
"The temperature of the environment to print in. If this is 0, the build "
|
||||
"volume temperature will not be adjusted."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -2278,6 +2287,94 @@ msgctxt "material_shrinkage_percentage description"
|
||||
msgid "Shrinkage ratio in percentage."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity label"
|
||||
msgid "Crystalline Material"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_crystallinity description"
|
||||
msgid ""
|
||||
"Is this material the type that breaks off cleanly when heated (crystalline), "
|
||||
"or is it the type that produces long intertwined polymer chains (non-"
|
||||
"crystalline)?"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position label"
|
||||
msgid "Anti-ooze Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retracted_position description"
|
||||
msgid "How far the material needs to be retracted before it stops oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed label"
|
||||
msgid "Anti-ooze Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_anti_ooze_retraction_speed description"
|
||||
msgid ""
|
||||
"How fast the material needs to be retracted during a filament switch to "
|
||||
"prevent oozing."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position label"
|
||||
msgid "Break Preparation Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_retracted_position description"
|
||||
msgid "How far the filament can be stretched before it breaks, while heated."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed label"
|
||||
msgid "Break Preparation Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_preparation_speed description"
|
||||
msgid ""
|
||||
"How fast the filament needs to be retracted just before breaking it off in a "
|
||||
"retraction."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position label"
|
||||
msgid "Break Retracted Position"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_retracted_position description"
|
||||
msgid "How far to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed label"
|
||||
msgid "Break Retraction Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_speed description"
|
||||
msgid ""
|
||||
"The speed at which to retract the filament in order to break it cleanly."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature label"
|
||||
msgid "Break Temperature"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_break_temperature description"
|
||||
msgid "The temperature at which the filament is broken for a clean break."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow label"
|
||||
msgid "Flow"
|
||||
@ -2290,6 +2387,127 @@ msgid ""
|
||||
"value."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow label"
|
||||
msgid "Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_material_flow description"
|
||||
msgid "Flow compensation on wall lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow label"
|
||||
msgid "Outer Wall Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_0_material_flow description"
|
||||
msgid "Flow compensation on the outermost wall line."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow label"
|
||||
msgid "Inner Wall(s) Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "wall_x_material_flow description"
|
||||
msgid ""
|
||||
"Flow compensation on wall lines for all wall lines except the outermost one."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow label"
|
||||
msgid "Top/Bottom Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skin_material_flow description"
|
||||
msgid "Flow compensation on top/bottom lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow label"
|
||||
msgid "Top Surface Skin Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "roofing_material_flow description"
|
||||
msgid "Flow compensation on lines of the areas at the top of the print."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow label"
|
||||
msgid "Infill Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "infill_material_flow description"
|
||||
msgid "Flow compensation on infill lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow label"
|
||||
msgid "Skirt/Brim Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_brim_material_flow description"
|
||||
msgid "Flow compensation on skirt or brim lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow label"
|
||||
msgid "Support Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_material_flow description"
|
||||
msgid "Flow compensation on support structure lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow label"
|
||||
msgid "Support Interface Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_material_flow description"
|
||||
msgid "Flow compensation on lines of support roof or floor."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow label"
|
||||
msgid "Support Roof Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_roof_material_flow description"
|
||||
msgid "Flow compensation on support roof lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow label"
|
||||
msgid "Support Floor Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_bottom_material_flow description"
|
||||
msgid "Flow compensation on support floor lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid "Flow compensation on prime tower lines."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_flow_layer_0 label"
|
||||
msgid "Initial Layer Flow"
|
||||
@ -2426,7 +2644,7 @@ msgstr ""
|
||||
msgctxt "limit_support_retractions description"
|
||||
msgid ""
|
||||
"Omit retraction when moving from support to support in a straight line. "
|
||||
"Enabling this setting saves print time, but can lead to excesive stringing "
|
||||
"Enabling this setting saves print time, but can lead to excessive stringing "
|
||||
"within the support structure."
|
||||
msgstr ""
|
||||
|
||||
@ -2490,6 +2708,16 @@ msgid ""
|
||||
"retraction."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount label"
|
||||
msgid "Nozzle Switch Extra Prime Amount"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "switch_extruder_extra_prime_amount description"
|
||||
msgid "Extra material to prime after nozzle switching."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed label"
|
||||
msgid "Speed"
|
||||
@ -2713,15 +2941,16 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override label"
|
||||
msgid "Maximum Z Speed"
|
||||
msgctxt "speed_z_hop label"
|
||||
msgid "Z Hop Speed"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "max_feedrate_z_override description"
|
||||
msgctxt "speed_z_hop description"
|
||||
msgid ""
|
||||
"The maximum speed with which the build plate is moved. Setting this to zero "
|
||||
"causes the print to use the firmware defaults for the maximum z speed."
|
||||
"The speed at which the vertical Z movement is made for Z Hops. This is "
|
||||
"typically lower than the print speed since the build plate or machine's "
|
||||
"gantry is harder to move."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -3946,7 +4175,7 @@ msgstr ""
|
||||
msgctxt "support_join_distance description"
|
||||
msgid ""
|
||||
"The maximum distance between support structures in the X/Y directions. When "
|
||||
"seperate structures are closer together than this value, the structures "
|
||||
"separate structures are closer together than this value, the structures "
|
||||
"merge into one."
|
||||
msgstr ""
|
||||
|
||||
@ -4380,14 +4609,14 @@ msgid "The diameter of a special tower."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter label"
|
||||
msgid "Minimum Diameter"
|
||||
msgctxt "support_tower_maximum_supported_diameter label"
|
||||
msgid "Maximum Tower-Supported Diameter"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_minimal_diameter description"
|
||||
msgctxt "support_tower_maximum_supported_diameter description"
|
||||
msgid ""
|
||||
"Minimum diameter in the X/Y directions of a small area which is to be "
|
||||
"Maximum diameter in the X/Y directions of a small area which is to be "
|
||||
"supported by a specialized support tower."
|
||||
msgstr ""
|
||||
|
||||
@ -4962,16 +5191,6 @@ msgid ""
|
||||
"each nozzle switch."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular label"
|
||||
msgid "Circular Prime Tower"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_circular description"
|
||||
msgid "Make the prime tower as a circular shape."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_size label"
|
||||
msgid "Prime Tower Size"
|
||||
@ -5014,18 +5233,6 @@ msgctxt "prime_tower_position_y description"
|
||||
msgid "The y coordinate of the position of the prime tower."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow label"
|
||||
msgid "Prime Tower Flow"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_flow description"
|
||||
msgid ""
|
||||
"Flow compensation: the amount of material extruded is multiplied by this "
|
||||
"value."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_wipe_enabled label"
|
||||
msgid "Wipe Inactive Nozzle on Prime Tower"
|
||||
@ -5397,7 +5604,7 @@ msgstr ""
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "smooth_spiralized_contours description"
|
||||
msgid ""
|
||||
"Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-"
|
||||
"Smooth the spiralized contours to reduce the visibility of the Z seam (the Z "
|
||||
"seam should be barely visible on the print but will still be visible in the "
|
||||
"layer view). Note that smoothing will tend to blur fine surface details."
|
||||
msgstr ""
|
||||
@ -6017,9 +6224,7 @@ msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_conical_enabled description"
|
||||
msgid ""
|
||||
"Experimental feature: Make support areas smaller at the bottom than at the "
|
||||
"overhang."
|
||||
msgid "Make support areas smaller at the bottom than at the overhang."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Cura 4.1\n"
|
||||
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
|
||||
"POT-Creation-Date: 2019-05-14 12:48+0000\n"
|
||||
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
|
||||
"PO-Revision-Date: 2017-08-11 14:31+0200\n"
|
||||
"Last-Translator: Bothof <info@bothof.nl>\n"
|
||||
"Language-Team: Finnish\n"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user