mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-15 20:46:01 +08:00
Merge branch '2.1' of https://github.com/Ultimaker/Cura
This commit is contained in:
commit
b2f37390fd
@ -44,7 +44,7 @@ if(NOT ${URANIUM_SCRIPTS_DIR} STREQUAL "")
|
|||||||
file(GLOB po_files ${CMAKE_SOURCE_DIR}/resources/i18n/${lang}/*.po)
|
file(GLOB po_files ${CMAKE_SOURCE_DIR}/resources/i18n/${lang}/*.po)
|
||||||
foreach(po_file ${po_files})
|
foreach(po_file ${po_files})
|
||||||
string(REGEX REPLACE ".*/(.*).po" "${CMAKE_BINARY_DIR}/resources/i18n/${lang}/LC_MESSAGES/\\1.mo" mo_file ${po_file})
|
string(REGEX REPLACE ".*/(.*).po" "${CMAKE_BINARY_DIR}/resources/i18n/${lang}/LC_MESSAGES/\\1.mo" mo_file ${po_file})
|
||||||
add_custom_command(TARGET translations POST_BUILD COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/resources/i18n/${lang}/LC_MESSAGES/ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ARGS ${po_file} -o ${mo_file})
|
add_custom_command(TARGET translations POST_BUILD COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/resources/i18n/${lang}/LC_MESSAGES/ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ARGS ${po_file} -o ${mo_file} -f)
|
||||||
endforeach()
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
|
install(DIRECTORY ${CMAKE_BINARY_DIR}/resources DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
|
||||||
@ -60,6 +60,9 @@ if(NOT APPLE AND NOT WIN32)
|
|||||||
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages FILES_MATCHING PATTERN *.py)
|
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages FILES_MATCHING PATTERN *.py)
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura)
|
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura)
|
||||||
install(FILES cura.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
install(FILES cura.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
||||||
|
install(FILES cura.sharedmimeinfo
|
||||||
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
|
||||||
|
RENAME cura.xml )
|
||||||
else()
|
else()
|
||||||
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages FILES_MATCHING PATTERN *.py)
|
install(DIRECTORY cura DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages FILES_MATCHING PATTERN *.py)
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/cura)
|
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/cura)
|
||||||
|
@ -10,6 +10,6 @@ TryExec=/usr/bin/cura_app.py
|
|||||||
Icon=/usr/share/cura/resources/images/cura-icon.png
|
Icon=/usr/share/cura/resources/images/cura-icon.png
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
MimeType=application/sla;image/bmp;image/gif;image/jpeg;image/png
|
MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png
|
||||||
Categories=Graphics;
|
Categories=Graphics;
|
||||||
Keywords=3D;Printing;
|
Keywords=3D;Printing;
|
||||||
|
22
cura.sharedmimeinfo
Normal file
22
cura.sharedmimeinfo
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||||
|
<mime-type type="application/vnd.ms-3mfdocument">
|
||||||
|
<comment>3D Manufacturing Format Document</comment>
|
||||||
|
<icon name="unknown"/>
|
||||||
|
<glob-deleteall/>
|
||||||
|
<glob pattern="*.3mf"/>
|
||||||
|
</mime-type>
|
||||||
|
<mime-type type="application/sla">
|
||||||
|
<comment>Computer-aided design and manufacturing format</comment>
|
||||||
|
<icon name="unknown"/>
|
||||||
|
<glob-deleteall/>
|
||||||
|
<glob pattern="*.stl"/>
|
||||||
|
</mime-type>
|
||||||
|
<mime-type type="application/prs.wavefront-obj">
|
||||||
|
<sub-class-of type="text/plain"/>
|
||||||
|
<comment>Wavefront 3D Object file</comment>
|
||||||
|
<icon name="unknown"/>
|
||||||
|
<glob-deleteall/>
|
||||||
|
<glob pattern="*.obj"/>
|
||||||
|
</mime-type>
|
||||||
|
</mime-info>
|
@ -146,7 +146,7 @@ class BuildVolume(SceneNode):
|
|||||||
|
|
||||||
skirt_size = 0.0
|
skirt_size = 0.0
|
||||||
|
|
||||||
profile = Application.getInstance().getMachineManager().getActiveProfile()
|
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
if profile:
|
if profile:
|
||||||
skirt_size = self._getSkirtSize(profile)
|
skirt_size = self._getSkirtSize(profile)
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ class BuildVolume(SceneNode):
|
|||||||
if self._active_profile:
|
if self._active_profile:
|
||||||
self._active_profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
self._active_profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
||||||
|
|
||||||
self._active_profile = Application.getInstance().getMachineManager().getActiveProfile()
|
self._active_profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
if self._active_profile:
|
if self._active_profile:
|
||||||
self._active_profile.settingValueChanged.connect(self._onSettingValueChanged)
|
self._active_profile.settingValueChanged.connect(self._onSettingValueChanged)
|
||||||
self._updateDisallowedAreas()
|
self._updateDisallowedAreas()
|
||||||
|
@ -17,6 +17,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|||||||
|
|
||||||
self._profile = None
|
self._profile = None
|
||||||
Application.getInstance().getMachineManager().activeProfileChanged.connect(self._onActiveProfileChanged)
|
Application.getInstance().getMachineManager().activeProfileChanged.connect(self._onActiveProfileChanged)
|
||||||
|
Application.getInstance().getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineInstanceChanged)
|
||||||
self._onActiveProfileChanged()
|
self._onActiveProfileChanged()
|
||||||
|
|
||||||
## Force that a new (empty) object is created upon copy.
|
## Force that a new (empty) object is created upon copy.
|
||||||
@ -62,11 +63,19 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
self._profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
||||||
|
|
||||||
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
|
self._profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.connect(self._onSettingValueChanged)
|
self._profile.settingValueChanged.connect(self._onSettingValueChanged)
|
||||||
|
|
||||||
|
def _onActiveMachineInstanceChanged(self):
|
||||||
|
if self._convex_hull_job:
|
||||||
|
self._convex_hull_job.cancel()
|
||||||
|
self.setConvexHull(None)
|
||||||
|
if self._convex_hull_node:
|
||||||
|
self._convex_hull_node.setParent(None)
|
||||||
|
self._convex_hull_node = None
|
||||||
|
|
||||||
def _onSettingValueChanged(self, setting):
|
def _onSettingValueChanged(self, setting):
|
||||||
if setting == "print_sequence":
|
if setting == "print_sequence":
|
||||||
if self._convex_hull_job:
|
if self._convex_hull_job:
|
||||||
|
@ -49,7 +49,7 @@ class ConvexHullJob(Job):
|
|||||||
# This is done because of rounding errors.
|
# This is done because of rounding errors.
|
||||||
hull = hull.getMinkowskiHull(Polygon(numpy.array([[-1, -1], [-1, 1], [1, 1], [1, -1]], numpy.float32)))
|
hull = hull.getMinkowskiHull(Polygon(numpy.array([[-1, -1], [-1, 1], [1, 1], [1, -1]], numpy.float32)))
|
||||||
|
|
||||||
profile = Application.getInstance().getMachineManager().getActiveProfile()
|
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
if profile:
|
if profile:
|
||||||
if profile.getSettingValue("print_sequence") == "one_at_a_time" and not self._node.getParent().callDecoration("isGroup"):
|
if profile.getSettingValue("print_sequence") == "one_at_a_time" and not self._node.getParent().callDecoration("isGroup"):
|
||||||
# Printing one at a time and it's not an object in a group
|
# Printing one at a time and it's not an object in a group
|
||||||
@ -64,12 +64,17 @@ class ConvexHullJob(Job):
|
|||||||
hull = hull.getMinkowskiHull(Polygon(numpy.array(profile.getSettingValue("machine_head_polygon"),numpy.float32)))
|
hull = hull.getMinkowskiHull(Polygon(numpy.array(profile.getSettingValue("machine_head_polygon"),numpy.float32)))
|
||||||
else:
|
else:
|
||||||
self._node.callDecoration("setConvexHullHead", None)
|
self._node.callDecoration("setConvexHullHead", None)
|
||||||
|
if self._node.getParent() is None: #Node was already deleted before job is done.
|
||||||
|
self._node.callDecoration("setConvexHullNode",None)
|
||||||
|
self._node.callDecoration("setConvexHull", None)
|
||||||
|
self._node.callDecoration("setConvexHullJob", None)
|
||||||
|
return
|
||||||
hull_node = ConvexHullNode.ConvexHullNode(self._node, hull, Application.getInstance().getController().getScene().getRoot())
|
hull_node = ConvexHullNode.ConvexHullNode(self._node, hull, Application.getInstance().getController().getScene().getRoot())
|
||||||
self._node.callDecoration("setConvexHullNode", hull_node)
|
self._node.callDecoration("setConvexHullNode", hull_node)
|
||||||
self._node.callDecoration("setConvexHull", hull)
|
self._node.callDecoration("setConvexHull", hull)
|
||||||
self._node.callDecoration("setConvexHullJob", None)
|
self._node.callDecoration("setConvexHullJob", None)
|
||||||
|
|
||||||
if self._node.getParent().callDecoration("isGroup"):
|
if self._node.getParent() and self._node.getParent().callDecoration("isGroup"):
|
||||||
job = self._node.getParent().callDecoration("getConvexHullJob")
|
job = self._node.getParent().callDecoration("getConvexHullJob")
|
||||||
if job:
|
if job:
|
||||||
job.cancel()
|
job.cancel()
|
||||||
|
@ -57,8 +57,10 @@ numpy.seterr(all="ignore")
|
|||||||
|
|
||||||
if platform.system() == "Linux": # Needed for platform.linux_distribution, which is not available on Windows and OSX
|
if platform.system() == "Linux": # Needed for platform.linux_distribution, which is not available on Windows and OSX
|
||||||
# For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826
|
# For Ubuntu: https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826
|
||||||
if platform.linux_distribution()[0] in ("Ubuntu", ): # Just in case it also happens on Debian, so it can be added
|
if platform.linux_distribution()[0] in ("Ubuntu", ): # TODO: Needs a "if X11_GFX == 'nvidia'" here. The workaround is only needed on Ubuntu+NVidia drivers. Other drivers are not affected, but fine with this fix.
|
||||||
from OpenGL import GL
|
import ctypes
|
||||||
|
from ctypes.util import find_library
|
||||||
|
ctypes.CDLL(find_library('GL'), ctypes.RTLD_GLOBAL)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from cura.CuraVersion import CuraVersion
|
from cura.CuraVersion import CuraVersion
|
||||||
@ -100,10 +102,12 @@ class CuraApplication(QtApplication):
|
|||||||
self._platform_activity = False
|
self._platform_activity = False
|
||||||
self._scene_boundingbox = AxisAlignedBox()
|
self._scene_boundingbox = AxisAlignedBox()
|
||||||
self._job_name = None
|
self._job_name = None
|
||||||
|
self._center_after_select = False
|
||||||
|
|
||||||
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
|
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
|
||||||
self.getMachineManager().addMachineRequested.connect(self._onAddMachineRequested)
|
self.getMachineManager().addMachineRequested.connect(self._onAddMachineRequested)
|
||||||
self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity)
|
self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity)
|
||||||
|
self.getController().toolOperationStopped.connect(self._onToolOperationStopped)
|
||||||
|
|
||||||
Resources.addType(self.ResourceTypes.QmlFiles, "qml")
|
Resources.addType(self.ResourceTypes.QmlFiles, "qml")
|
||||||
Resources.addType(self.ResourceTypes.Firmware, "firmware")
|
Resources.addType(self.ResourceTypes.Firmware, "firmware")
|
||||||
@ -146,9 +150,6 @@ class CuraApplication(QtApplication):
|
|||||||
parser.add_argument("--debug", dest="debug-mode", action="store_true", default=False, help="Enable detailed crash reports.")
|
parser.add_argument("--debug", dest="debug-mode", action="store_true", default=False, help="Enable detailed crash reports.")
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
if "PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION" not in os.environ or os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] != "cpp":
|
|
||||||
Logger.log("w", "Using Python implementation of Protobuf, expect bad performance!")
|
|
||||||
|
|
||||||
self._i18n_catalog = i18nCatalog("cura");
|
self._i18n_catalog = i18nCatalog("cura");
|
||||||
|
|
||||||
i18nCatalog.setTagReplacements({
|
i18nCatalog.setTagReplacements({
|
||||||
@ -231,9 +232,7 @@ class CuraApplication(QtApplication):
|
|||||||
else:
|
else:
|
||||||
self.getController().setActiveTool("TranslateTool")
|
self.getController().setActiveTool("TranslateTool")
|
||||||
if Preferences.getInstance().getValue("view/center_on_select"):
|
if Preferences.getInstance().getValue("view/center_on_select"):
|
||||||
self._camera_animation.setStart(self.getController().getTool("CameraTool").getOrigin())
|
self._center_after_select = True
|
||||||
self._camera_animation.setTarget(Selection.getSelectedObject(0).getWorldPosition())
|
|
||||||
self._camera_animation.start()
|
|
||||||
else:
|
else:
|
||||||
if self.getController().getActiveTool():
|
if self.getController().getActiveTool():
|
||||||
self._previous_active_tool = self.getController().getActiveTool().getPluginId()
|
self._previous_active_tool = self.getController().getActiveTool().getPluginId()
|
||||||
@ -241,6 +240,13 @@ class CuraApplication(QtApplication):
|
|||||||
else:
|
else:
|
||||||
self._previous_active_tool = None
|
self._previous_active_tool = None
|
||||||
|
|
||||||
|
def _onToolOperationStopped(self, event):
|
||||||
|
if self._center_after_select:
|
||||||
|
self._center_after_select = False
|
||||||
|
self._camera_animation.setStart(self.getController().getTool("CameraTool").getOrigin())
|
||||||
|
self._camera_animation.setTarget(Selection.getSelectedObject(0).getWorldPosition())
|
||||||
|
self._camera_animation.start()
|
||||||
|
|
||||||
requestAddPrinter = pyqtSignal()
|
requestAddPrinter = pyqtSignal()
|
||||||
activityChanged = pyqtSignal()
|
activityChanged = pyqtSignal()
|
||||||
sceneBoundingBoxChanged = pyqtSignal()
|
sceneBoundingBoxChanged = pyqtSignal()
|
||||||
@ -493,18 +499,18 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
@pyqtSlot(str, result = "QVariant")
|
@pyqtSlot(str, result = "QVariant")
|
||||||
def getSettingValue(self, key):
|
def getSettingValue(self, key):
|
||||||
if not self.getMachineManager().getActiveProfile():
|
if not self.getMachineManager().getWorkingProfile():
|
||||||
return None
|
return None
|
||||||
return self.getMachineManager().getActiveProfile().getSettingValue(key)
|
return self.getMachineManager().getWorkingProfile().getSettingValue(key)
|
||||||
#return self.getActiveMachine().getSettingValueByKey(key)
|
#return self.getActiveMachine().getSettingValueByKey(key)
|
||||||
|
|
||||||
## Change setting by key value pair
|
## Change setting by key value pair
|
||||||
@pyqtSlot(str, "QVariant")
|
@pyqtSlot(str, "QVariant")
|
||||||
def setSettingValue(self, key, value):
|
def setSettingValue(self, key, value):
|
||||||
if not self.getMachineManager().getActiveProfile():
|
if not self.getMachineManager().getWorkingProfile():
|
||||||
return
|
return
|
||||||
|
|
||||||
self.getMachineManager().getActiveProfile().setSettingValue(key, value)
|
self.getMachineManager().getWorkingProfile().setSettingValue(key, value)
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def mergeSelected(self):
|
def mergeSelected(self):
|
||||||
|
@ -140,26 +140,7 @@ class Layer():
|
|||||||
if polygon.type == Polygon.MoveCombingType or polygon.type == Polygon.MoveRetractionType:
|
if polygon.type == Polygon.MoveCombingType or polygon.type == Polygon.MoveRetractionType:
|
||||||
points[:,1] += 0.01
|
points[:,1] += 0.01
|
||||||
|
|
||||||
# Calculate normals for the entire polygon using numpy.
|
normals = polygon.getNormals()
|
||||||
normals = numpy.copy(points)
|
|
||||||
normals[:,1] = 0.0 # We are only interested in 2D normals
|
|
||||||
|
|
||||||
# Calculate the edges between points.
|
|
||||||
# The call to numpy.roll shifts the entire array by one so that
|
|
||||||
# we end up subtracting each next point from the current, wrapping
|
|
||||||
# around. This gives us the edges from the next point to the current
|
|
||||||
# point.
|
|
||||||
normals[:] = normals[:] - numpy.roll(normals, -1, axis = 0)
|
|
||||||
# Calculate the length of each edge using standard Pythagoras
|
|
||||||
lengths = numpy.sqrt(normals[:,0] ** 2 + normals[:,2] ** 2)
|
|
||||||
# The normal of a 2D vector is equal to its x and y coordinates swapped
|
|
||||||
# and then x inverted. This code does that.
|
|
||||||
normals[:,[0, 2]] = normals[:,[2, 0]]
|
|
||||||
normals[:,0] *= -1
|
|
||||||
|
|
||||||
# Normalize the normals.
|
|
||||||
normals[:,0] /= lengths
|
|
||||||
normals[:,2] /= lengths
|
|
||||||
|
|
||||||
# Scale all by the line width of the polygon so we can easily offset.
|
# Scale all by the line width of the polygon so we can easily offset.
|
||||||
normals *= (polygon.lineWidth / 2)
|
normals *= (polygon.lineWidth / 2)
|
||||||
@ -199,16 +180,33 @@ class Polygon():
|
|||||||
self._data = data
|
self._data = data
|
||||||
self._line_width = line_width / 1000
|
self._line_width = line_width / 1000
|
||||||
|
|
||||||
|
if type == self.Inset0Type:
|
||||||
|
self._color = Color(1.0, 0.0, 0.0, 1.0)
|
||||||
|
elif self._type == self.InsetXType:
|
||||||
|
self._color = Color(0.0, 1.0, 0.0, 1.0)
|
||||||
|
elif self._type == self.SkinType:
|
||||||
|
self._color = Color(1.0, 1.0, 0.0, 1.0)
|
||||||
|
elif self._type == self.SupportType:
|
||||||
|
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
||||||
|
elif self._type == self.SkirtType:
|
||||||
|
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
||||||
|
elif self._type == self.InfillType:
|
||||||
|
self._color = Color(1.0, 0.74, 0.0, 1.0)
|
||||||
|
elif self._type == self.SupportInfillType:
|
||||||
|
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
||||||
|
elif self._type == self.MoveCombingType:
|
||||||
|
self._color = Color(0.0, 0.0, 1.0, 1.0)
|
||||||
|
elif self._type == self.MoveRetractionType:
|
||||||
|
self._color = Color(0.5, 0.5, 1.0, 1.0)
|
||||||
|
else:
|
||||||
|
self._color = Color(1.0, 1.0, 1.0, 1.0)
|
||||||
|
|
||||||
def build(self, offset, vertices, colors, indices):
|
def build(self, offset, vertices, colors, indices):
|
||||||
self._begin = offset
|
self._begin = offset
|
||||||
self._end = self._begin + len(self._data) - 1
|
self._end = self._begin + len(self._data) - 1
|
||||||
|
|
||||||
color = self.getColor()
|
|
||||||
color.setValues(color.r * 0.5, color.g * 0.5, color.b * 0.5, color.a)
|
|
||||||
color = numpy.array([color.r, color.g, color.b, color.a], numpy.float32)
|
|
||||||
|
|
||||||
vertices[self._begin:self._end + 1, :] = self._data[:, :]
|
vertices[self._begin:self._end + 1, :] = self._data[:, :]
|
||||||
colors[self._begin:self._end + 1, :] = color
|
colors[self._begin:self._end + 1, :] = numpy.array([self._color.r * 0.5, self._color.g * 0.5, self._color.b * 0.5, self._color.a], numpy.float32)
|
||||||
|
|
||||||
for i in range(self._begin, self._end):
|
for i in range(self._begin, self._end):
|
||||||
indices[i, 0] = i
|
indices[i, 0] = i
|
||||||
@ -218,26 +216,7 @@ class Polygon():
|
|||||||
indices[self._end, 1] = self._begin
|
indices[self._end, 1] = self._begin
|
||||||
|
|
||||||
def getColor(self):
|
def getColor(self):
|
||||||
if self._type == self.Inset0Type:
|
return self._color
|
||||||
return Color(1.0, 0.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.InsetXType:
|
|
||||||
return Color(0.0, 1.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.SkinType:
|
|
||||||
return Color(1.0, 1.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.SupportType:
|
|
||||||
return Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.SkirtType:
|
|
||||||
return Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.InfillType:
|
|
||||||
return Color(1.0, 0.74, 0.0, 1.0)
|
|
||||||
elif self._type == self.SupportInfillType:
|
|
||||||
return Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.MoveCombingType:
|
|
||||||
return Color(0.0, 0.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.MoveRetractionType:
|
|
||||||
return Color(0.5, 0.5, 1.0, 1.0)
|
|
||||||
else:
|
|
||||||
return Color(1.0, 1.0, 1.0, 1.0)
|
|
||||||
|
|
||||||
def vertexCount(self):
|
def vertexCount(self):
|
||||||
return len(self._data)
|
return len(self._data)
|
||||||
@ -257,3 +236,27 @@ class Polygon():
|
|||||||
@property
|
@property
|
||||||
def lineWidth(self):
|
def lineWidth(self):
|
||||||
return self._line_width
|
return self._line_width
|
||||||
|
|
||||||
|
# Calculate normals for the entire polygon using numpy.
|
||||||
|
def getNormals(self):
|
||||||
|
normals = numpy.copy(self._data)
|
||||||
|
normals[:,1] = 0.0 # We are only interested in 2D normals
|
||||||
|
|
||||||
|
# Calculate the edges between points.
|
||||||
|
# The call to numpy.roll shifts the entire array by one so that
|
||||||
|
# we end up subtracting each next point from the current, wrapping
|
||||||
|
# around. This gives us the edges from the next point to the current
|
||||||
|
# point.
|
||||||
|
normals[:] = normals[:] - numpy.roll(normals, -1, axis = 0)
|
||||||
|
# Calculate the length of each edge using standard Pythagoras
|
||||||
|
lengths = numpy.sqrt(normals[:,0] ** 2 + normals[:,2] ** 2)
|
||||||
|
# The normal of a 2D vector is equal to its x and y coordinates swapped
|
||||||
|
# and then x inverted. This code does that.
|
||||||
|
normals[:,[0, 2]] = normals[:,[2, 0]]
|
||||||
|
normals[:,0] *= -1
|
||||||
|
|
||||||
|
# Normalize the normals.
|
||||||
|
normals[:,0] /= lengths
|
||||||
|
normals[:,2] /= lengths
|
||||||
|
|
||||||
|
return normals
|
||||||
|
@ -21,7 +21,7 @@ class OneAtATimeIterator(Iterator.Iterator):
|
|||||||
if not type(node) is SceneNode:
|
if not type(node) is SceneNode:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if node.getBoundingBox().height > Application.getInstance().getMachineManager().getActiveProfile().getSettingValue("gantry_height"):
|
if node.getBoundingBox().height > Application.getInstance().getMachineManager().getWorkingProfile().getSettingValue("gantry_height"):
|
||||||
return
|
return
|
||||||
if node.callDecoration("getConvexHull"):
|
if node.callDecoration("getConvexHull"):
|
||||||
node_list.append(node)
|
node_list.append(node)
|
||||||
|
@ -66,6 +66,6 @@ class PrintInformation(QObject):
|
|||||||
self.currentPrintTimeChanged.emit()
|
self.currentPrintTimeChanged.emit()
|
||||||
|
|
||||||
# Material amount is sent as an amount of mm^3, so calculate length from that
|
# Material amount is sent as an amount of mm^3, so calculate length from that
|
||||||
r = Application.getInstance().getMachineManager().getActiveProfile().getSettingValue("material_diameter") / 2
|
r = Application.getInstance().getMachineManager().getWorkingProfile().getSettingValue("material_diameter") / 2
|
||||||
self._material_amount = round((amount / (math.pi * r ** 2)) / 1000, 2)
|
self._material_amount = round((amount / (math.pi * r ** 2)) / 1000, 2)
|
||||||
self.materialAmountChanged.emit()
|
self.materialAmountChanged.emit()
|
||||||
|
13
cura_app.py
13
cura_app.py
@ -12,14 +12,11 @@ def exceptHook(type, value, traceback):
|
|||||||
|
|
||||||
sys.excepthook = exceptHook
|
sys.excepthook = exceptHook
|
||||||
|
|
||||||
try:
|
# Workaround for a race condition on certain systems where there
|
||||||
from google.protobuf.pyext import _message
|
# is a race condition between Arcus and PyQt. Importing Arcus
|
||||||
except ImportError:
|
# first seems to prevent Sip from going into a state where it
|
||||||
pass
|
# tries to create PyQt objects on a non-main thread.
|
||||||
else:
|
import Arcus
|
||||||
os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "cpp"
|
|
||||||
|
|
||||||
if True: # To make the code style checker stop complaining
|
|
||||||
import cura.CuraApplication
|
import cura.CuraApplication
|
||||||
|
|
||||||
if sys.platform == "win32" and hasattr(sys, "frozen"):
|
if sys.platform == "win32" and hasattr(sys, "frozen"):
|
||||||
|
@ -13,68 +13,47 @@ class AutoSave(Extension):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged)
|
#Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged)
|
||||||
|
Preferences.getInstance().preferenceChanged.connect(self._triggerTimer)
|
||||||
|
|
||||||
machine_manager = Application.getInstance().getMachineManager()
|
machine_manager = Application.getInstance().getMachineManager()
|
||||||
|
|
||||||
self._profile = None
|
self._profile = None
|
||||||
machine_manager.activeProfileChanged.connect(self._onActiveProfileChanged)
|
machine_manager.activeProfileChanged.connect(self._onActiveProfileChanged)
|
||||||
machine_manager.profileNameChanged.connect(self._onProfilesChanged)
|
machine_manager.profileNameChanged.connect(self._triggerTimer)
|
||||||
machine_manager.profilesChanged.connect(self._onProfilesChanged)
|
machine_manager.profilesChanged.connect(self._triggerTimer)
|
||||||
machine_manager.machineInstanceNameChanged.connect(self._onInstanceNameChanged)
|
machine_manager.machineInstanceNameChanged.connect(self._triggerTimer)
|
||||||
machine_manager.machineInstancesChanged.connect(self._onInstancesChanged)
|
machine_manager.machineInstancesChanged.connect(self._triggerTimer)
|
||||||
Application
|
|
||||||
self._onActiveProfileChanged()
|
self._onActiveProfileChanged()
|
||||||
|
|
||||||
|
Preferences.getInstance().addPreference("cura/autosave_delay", 1000 * 10)
|
||||||
|
|
||||||
self._change_timer = QTimer()
|
self._change_timer = QTimer()
|
||||||
self._change_timer.setInterval(1000 * 60)
|
self._change_timer.setInterval(Preferences.getInstance().getValue("cura/autosave_delay"))
|
||||||
self._change_timer.setSingleShot(True)
|
self._change_timer.setSingleShot(True)
|
||||||
self._change_timer.timeout.connect(self._onTimeout)
|
self._change_timer.timeout.connect(self._onTimeout)
|
||||||
|
|
||||||
self._save_preferences = False
|
self._saving = False
|
||||||
self._save_profiles = False
|
|
||||||
self._save_instances = False
|
|
||||||
|
|
||||||
def _onPreferenceChanged(self, preference):
|
def _triggerTimer(self, *args):
|
||||||
self._save_preferences = True
|
if not self._saving:
|
||||||
self._change_timer.start()
|
|
||||||
|
|
||||||
def _onSettingValueChanged(self, setting):
|
|
||||||
self._save_profiles = True
|
|
||||||
self._change_timer.start()
|
self._change_timer.start()
|
||||||
|
|
||||||
def _onActiveProfileChanged(self):
|
def _onActiveProfileChanged(self):
|
||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
self._profile.settingValueChanged.disconnect(self._triggerTimer)
|
||||||
|
|
||||||
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
|
self._profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.connect(self._onSettingValueChanged)
|
self._profile.settingValueChanged.connect(self._triggerTimer)
|
||||||
|
|
||||||
def _onProfilesChanged(self):
|
|
||||||
self._save_profiles = True
|
|
||||||
self._change_timer.start()
|
|
||||||
|
|
||||||
def _onInstanceNameChanged(self, name):
|
|
||||||
self._onInstancesChanged()
|
|
||||||
|
|
||||||
def _onInstancesChanged(self):
|
|
||||||
self._save_instances = True
|
|
||||||
self._change_timer.start()
|
|
||||||
|
|
||||||
def _onTimeout(self):
|
def _onTimeout(self):
|
||||||
|
self._saving = True # To prevent the save process from triggering another autosave.
|
||||||
Logger.log("d", "Autosaving preferences, instances and profiles")
|
Logger.log("d", "Autosaving preferences, instances and profiles")
|
||||||
|
|
||||||
if self._save_preferences:
|
|
||||||
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
||||||
|
|
||||||
if self._save_instances:
|
|
||||||
Application.getInstance().getMachineManager().saveMachineInstances()
|
Application.getInstance().getMachineManager().saveMachineInstances()
|
||||||
|
|
||||||
if self._save_profiles:
|
|
||||||
Application.getInstance().getMachineManager().saveProfiles()
|
Application.getInstance().getMachineManager().saveProfiles()
|
||||||
|
|
||||||
self._save_preferences = False
|
self._saving = False
|
||||||
self._save_instances = False
|
|
||||||
self._save_profiles = False
|
|
||||||
|
104
plugins/CuraEngineBackend/Cura.proto
Normal file
104
plugins/CuraEngineBackend/Cura.proto
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
|
||||||
|
package cura.proto;
|
||||||
|
|
||||||
|
|
||||||
|
message ObjectList
|
||||||
|
{
|
||||||
|
repeated Object objects = 1;
|
||||||
|
repeated Setting settings = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 1
|
||||||
|
message Slice
|
||||||
|
{
|
||||||
|
repeated ObjectList object_lists = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Object
|
||||||
|
{
|
||||||
|
int64 id = 1;
|
||||||
|
bytes vertices = 2; //An array of 3 floats.
|
||||||
|
bytes normals = 3; //An array of 3 floats.
|
||||||
|
bytes indices = 4; //An array of ints.
|
||||||
|
repeated Setting settings = 5; // Setting override per object, overruling the global settings.
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 3
|
||||||
|
message Progress
|
||||||
|
{
|
||||||
|
float amount = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 2
|
||||||
|
message SlicedObjectList
|
||||||
|
{
|
||||||
|
repeated SlicedObject objects = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SlicedObject
|
||||||
|
{
|
||||||
|
int64 id = 1;
|
||||||
|
|
||||||
|
repeated Layer layers = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Layer {
|
||||||
|
int32 id = 1;
|
||||||
|
|
||||||
|
float height = 2;
|
||||||
|
float thickness = 3;
|
||||||
|
|
||||||
|
repeated Polygon polygons = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Polygon {
|
||||||
|
enum Type {
|
||||||
|
NoneType = 0;
|
||||||
|
Inset0Type = 1;
|
||||||
|
InsetXType = 2;
|
||||||
|
SkinType = 3;
|
||||||
|
SupportType = 4;
|
||||||
|
SkirtType = 5;
|
||||||
|
InfillType = 6;
|
||||||
|
SupportInfillType = 7;
|
||||||
|
MoveCombingType = 8;
|
||||||
|
MoveRetractionType = 9;
|
||||||
|
}
|
||||||
|
Type type = 1;
|
||||||
|
bytes points = 2;
|
||||||
|
float line_width = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 4
|
||||||
|
message GCodeLayer {
|
||||||
|
int64 id = 1;
|
||||||
|
bytes data = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 5
|
||||||
|
message ObjectPrintTime {
|
||||||
|
int64 id = 1;
|
||||||
|
float time = 2;
|
||||||
|
float material_amount = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 6
|
||||||
|
message SettingList {
|
||||||
|
repeated Setting settings = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Setting {
|
||||||
|
string name = 1;
|
||||||
|
|
||||||
|
bytes value = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 7
|
||||||
|
message GCodePrefix {
|
||||||
|
bytes data = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// typeid 8
|
||||||
|
message SlicingFinished {
|
||||||
|
}
|
@ -9,12 +9,13 @@ from UM.Preferences import Preferences
|
|||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from UM.Signal import Signal
|
from UM.Signal import Signal
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
from UM.Qt.Bindings.BackendProxy import BackendState #To determine the state of the slicing job.
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
from UM.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
|
from UM.PluginRegistry import PluginRegistry
|
||||||
|
|
||||||
from cura.OneAtATimeIterator import OneAtATimeIterator
|
from cura.OneAtATimeIterator import OneAtATimeIterator
|
||||||
from . import Cura_pb2
|
|
||||||
from . import ProcessSlicedObjectListJob
|
from . import ProcessSlicedObjectListJob
|
||||||
from . import ProcessGCodeJob
|
from . import ProcessGCodeJob
|
||||||
from . import StartSliceJob
|
from . import StartSliceJob
|
||||||
@ -61,11 +62,12 @@ class CuraEngineBackend(Backend):
|
|||||||
self._change_timer.setSingleShot(True)
|
self._change_timer.setSingleShot(True)
|
||||||
self._change_timer.timeout.connect(self.slice)
|
self._change_timer.timeout.connect(self.slice)
|
||||||
|
|
||||||
self._message_handlers[Cura_pb2.SlicedObjectList] = self._onSlicedObjectListMessage
|
self._message_handlers["cura.proto.SlicedObjectList"] = self._onSlicedObjectListMessage
|
||||||
self._message_handlers[Cura_pb2.Progress] = self._onProgressMessage
|
self._message_handlers["cura.proto.Progress"] = self._onProgressMessage
|
||||||
self._message_handlers[Cura_pb2.GCodeLayer] = self._onGCodeLayerMessage
|
self._message_handlers["cura.proto.GCodeLayer"] = self._onGCodeLayerMessage
|
||||||
self._message_handlers[Cura_pb2.GCodePrefix] = self._onGCodePrefixMessage
|
self._message_handlers["cura.proto.GCodePrefix"] = self._onGCodePrefixMessage
|
||||||
self._message_handlers[Cura_pb2.ObjectPrintTime] = self._onObjectPrintTimeMessage
|
self._message_handlers["cura.proto.ObjectPrintTime"] = self._onObjectPrintTimeMessage
|
||||||
|
self._message_handlers["cura.proto.SlicingFinished"] = self._onSlicingFinishedMessage
|
||||||
|
|
||||||
self._slicing = False
|
self._slicing = False
|
||||||
self._restart = False
|
self._restart = False
|
||||||
@ -74,6 +76,8 @@ class CuraEngineBackend(Backend):
|
|||||||
|
|
||||||
self._message = None
|
self._message = None
|
||||||
|
|
||||||
|
self.backendQuit.connect(self._onBackendQuit)
|
||||||
|
|
||||||
self.backendConnected.connect(self._onBackendConnected)
|
self.backendConnected.connect(self._onBackendConnected)
|
||||||
Application.getInstance().getController().toolOperationStarted.connect(self._onToolOperationStarted)
|
Application.getInstance().getController().toolOperationStarted.connect(self._onToolOperationStarted)
|
||||||
Application.getInstance().getController().toolOperationStopped.connect(self._onToolOperationStopped)
|
Application.getInstance().getController().toolOperationStopped.connect(self._onToolOperationStopped)
|
||||||
@ -126,6 +130,7 @@ class CuraEngineBackend(Backend):
|
|||||||
return #No slicing if we have error values since those are by definition illegal values.
|
return #No slicing if we have error values since those are by definition illegal values.
|
||||||
|
|
||||||
self.processingProgress.emit(0.0)
|
self.processingProgress.emit(0.0)
|
||||||
|
self.backendStateChange.emit(BackendState.NOT_STARTED)
|
||||||
if self._message:
|
if self._message:
|
||||||
self._message.setProgress(-1)
|
self._message.setProgress(-1)
|
||||||
#else:
|
#else:
|
||||||
@ -148,6 +153,7 @@ class CuraEngineBackend(Backend):
|
|||||||
Logger.log("d", "Killing engine process")
|
Logger.log("d", "Killing engine process")
|
||||||
try:
|
try:
|
||||||
self._process.terminate()
|
self._process.terminate()
|
||||||
|
self._process = None
|
||||||
except: # terminating a process that is already terminating causes an exception, silently ignore this.
|
except: # terminating a process that is already terminating causes an exception, silently ignore this.
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -177,7 +183,7 @@ class CuraEngineBackend(Backend):
|
|||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.disconnect(self._onSettingChanged)
|
self._profile.settingValueChanged.disconnect(self._onSettingChanged)
|
||||||
|
|
||||||
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
|
self._profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.connect(self._onSettingChanged)
|
self._profile.settingValueChanged.connect(self._onSettingChanged)
|
||||||
self._onChanged()
|
self._onChanged()
|
||||||
@ -197,15 +203,10 @@ class CuraEngineBackend(Backend):
|
|||||||
self._message.setProgress(round(message.amount * 100))
|
self._message.setProgress(round(message.amount * 100))
|
||||||
|
|
||||||
self.processingProgress.emit(message.amount)
|
self.processingProgress.emit(message.amount)
|
||||||
|
self.backendStateChange.emit(BackendState.PROCESSING)
|
||||||
|
|
||||||
def _onGCodeLayerMessage(self, message):
|
def _onSlicingFinishedMessage(self, message):
|
||||||
self._scene.gcode_list.append(message.data.decode("utf-8", "replace"))
|
self.backendStateChange.emit(BackendState.DONE)
|
||||||
|
|
||||||
def _onGCodePrefixMessage(self, message):
|
|
||||||
self._scene.gcode_list.insert(0, message.data.decode("utf-8", "replace"))
|
|
||||||
|
|
||||||
def _onObjectPrintTimeMessage(self, message):
|
|
||||||
self.printDurationMessage.emit(message.time, message.material_amount)
|
|
||||||
self.processingProgress.emit(1.0)
|
self.processingProgress.emit(1.0)
|
||||||
|
|
||||||
self._slicing = False
|
self._slicing = False
|
||||||
@ -215,23 +216,17 @@ class CuraEngineBackend(Backend):
|
|||||||
self._message.hide()
|
self._message.hide()
|
||||||
self._message = None
|
self._message = None
|
||||||
|
|
||||||
if self._always_restart:
|
def _onGCodeLayerMessage(self, message):
|
||||||
try:
|
self._scene.gcode_list.append(message.data.decode("utf-8", "replace"))
|
||||||
self._process.terminate()
|
|
||||||
self._createSocket()
|
def _onGCodePrefixMessage(self, message):
|
||||||
except: # terminating a process that is already terminating causes an exception, silently ignore this.
|
self._scene.gcode_list.insert(0, message.data.decode("utf-8", "replace"))
|
||||||
pass
|
|
||||||
|
def _onObjectPrintTimeMessage(self, message):
|
||||||
|
self.printDurationMessage.emit(message.time, message.material_amount)
|
||||||
|
|
||||||
def _createSocket(self):
|
def _createSocket(self):
|
||||||
super()._createSocket()
|
super()._createSocket(os.path.abspath(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "Cura.proto")))
|
||||||
|
|
||||||
self._socket.registerMessageType(1, Cura_pb2.Slice)
|
|
||||||
self._socket.registerMessageType(2, Cura_pb2.SlicedObjectList)
|
|
||||||
self._socket.registerMessageType(3, Cura_pb2.Progress)
|
|
||||||
self._socket.registerMessageType(4, Cura_pb2.GCodeLayer)
|
|
||||||
self._socket.registerMessageType(5, Cura_pb2.ObjectPrintTime)
|
|
||||||
self._socket.registerMessageType(6, Cura_pb2.SettingList)
|
|
||||||
self._socket.registerMessageType(7, Cura_pb2.GCodePrefix)
|
|
||||||
|
|
||||||
## Manually triggers a reslice
|
## Manually triggers a reslice
|
||||||
def forceSlice(self):
|
def forceSlice(self):
|
||||||
@ -254,7 +249,6 @@ class CuraEngineBackend(Backend):
|
|||||||
|
|
||||||
def _onToolOperationStopped(self, tool):
|
def _onToolOperationStopped(self, tool):
|
||||||
self._enabled = True # Tool stop, start listening for changes again.
|
self._enabled = True # Tool stop, start listening for changes again.
|
||||||
self._onChanged()
|
|
||||||
|
|
||||||
def _onActiveViewChanged(self):
|
def _onActiveViewChanged(self):
|
||||||
if Application.getInstance().getController().getActiveView():
|
if Application.getInstance().getController().getActiveView():
|
||||||
@ -270,7 +264,11 @@ class CuraEngineBackend(Backend):
|
|||||||
else:
|
else:
|
||||||
self._layer_view_active = False
|
self._layer_view_active = False
|
||||||
|
|
||||||
|
|
||||||
def _onInstanceChanged(self):
|
def _onInstanceChanged(self):
|
||||||
self._terminate()
|
self._terminate()
|
||||||
self.slicingCancelled.emit()
|
self.slicingCancelled.emit()
|
||||||
|
|
||||||
|
def _onBackendQuit(self):
|
||||||
|
if not self._restart and self._process:
|
||||||
|
self._process = None
|
||||||
|
self._createSocket()
|
||||||
|
@ -1,739 +0,0 @@
|
|||||||
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
||||||
# source: Cura.proto
|
|
||||||
|
|
||||||
import sys
|
|
||||||
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
|
|
||||||
from google.protobuf import descriptor as _descriptor
|
|
||||||
from google.protobuf import message as _message
|
|
||||||
from google.protobuf import reflection as _reflection
|
|
||||||
from google.protobuf import symbol_database as _symbol_database
|
|
||||||
from google.protobuf import descriptor_pb2
|
|
||||||
# @@protoc_insertion_point(imports)
|
|
||||||
|
|
||||||
_sym_db = _symbol_database.Default()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTOR = _descriptor.FileDescriptor(
|
|
||||||
name='Cura.proto',
|
|
||||||
package='cura.proto',
|
|
||||||
syntax='proto3',
|
|
||||||
serialized_pb=_b('\n\nCura.proto\x12\ncura.proto\"X\n\nObjectList\x12#\n\x07objects\x18\x01 \x03(\x0b\x32\x12.cura.proto.Object\x12%\n\x08settings\x18\x02 \x03(\x0b\x32\x13.cura.proto.Setting\"5\n\x05Slice\x12,\n\x0cobject_lists\x18\x01 \x03(\x0b\x32\x16.cura.proto.ObjectList\"o\n\x06Object\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x10\n\x08vertices\x18\x02 \x01(\x0c\x12\x0f\n\x07normals\x18\x03 \x01(\x0c\x12\x0f\n\x07indices\x18\x04 \x01(\x0c\x12%\n\x08settings\x18\x05 \x03(\x0b\x32\x13.cura.proto.Setting\"\x1a\n\x08Progress\x12\x0e\n\x06\x61mount\x18\x01 \x01(\x02\"=\n\x10SlicedObjectList\x12)\n\x07objects\x18\x01 \x03(\x0b\x32\x18.cura.proto.SlicedObject\"=\n\x0cSlicedObject\x12\n\n\x02id\x18\x01 \x01(\x03\x12!\n\x06layers\x18\x02 \x03(\x0b\x32\x11.cura.proto.Layer\"]\n\x05Layer\x12\n\n\x02id\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x02\x12\x11\n\tthickness\x18\x03 \x01(\x02\x12%\n\x08polygons\x18\x04 \x03(\x0b\x32\x13.cura.proto.Polygon\"\x8e\x02\n\x07Polygon\x12&\n\x04type\x18\x01 \x01(\x0e\x32\x18.cura.proto.Polygon.Type\x12\x0e\n\x06points\x18\x02 \x01(\x0c\x12\x12\n\nline_width\x18\x03 \x01(\x02\"\xb6\x01\n\x04Type\x12\x0c\n\x08NoneType\x10\x00\x12\x0e\n\nInset0Type\x10\x01\x12\x0e\n\nInsetXType\x10\x02\x12\x0c\n\x08SkinType\x10\x03\x12\x0f\n\x0bSupportType\x10\x04\x12\r\n\tSkirtType\x10\x05\x12\x0e\n\nInfillType\x10\x06\x12\x15\n\x11SupportInfillType\x10\x07\x12\x13\n\x0fMoveCombingType\x10\x08\x12\x16\n\x12MoveRetractionType\x10\t\"&\n\nGCodeLayer\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"D\n\x0fObjectPrintTime\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04time\x18\x02 \x01(\x02\x12\x17\n\x0fmaterial_amount\x18\x03 \x01(\x02\"4\n\x0bSettingList\x12%\n\x08settings\x18\x01 \x03(\x0b\x32\x13.cura.proto.Setting\"&\n\x07Setting\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x1b\n\x0bGCodePrefix\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x11\n\x0fSlicingFinishedb\x06proto3')
|
|
||||||
)
|
|
||||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_POLYGON_TYPE = _descriptor.EnumDescriptor(
|
|
||||||
name='Type',
|
|
||||||
full_name='cura.proto.Polygon.Type',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
values=[
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='NoneType', index=0, number=0,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='Inset0Type', index=1, number=1,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='InsetXType', index=2, number=2,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='SkinType', index=3, number=3,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='SupportType', index=4, number=4,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='SkirtType', index=5, number=5,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='InfillType', index=6, number=6,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='SupportInfillType', index=7, number=7,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='MoveCombingType', index=8, number=8,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
_descriptor.EnumValueDescriptor(
|
|
||||||
name='MoveRetractionType', index=9, number=9,
|
|
||||||
options=None,
|
|
||||||
type=None),
|
|
||||||
],
|
|
||||||
containing_type=None,
|
|
||||||
options=None,
|
|
||||||
serialized_start=622,
|
|
||||||
serialized_end=804,
|
|
||||||
)
|
|
||||||
_sym_db.RegisterEnumDescriptor(_POLYGON_TYPE)
|
|
||||||
|
|
||||||
|
|
||||||
_OBJECTLIST = _descriptor.Descriptor(
|
|
||||||
name='ObjectList',
|
|
||||||
full_name='cura.proto.ObjectList',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='objects', full_name='cura.proto.ObjectList.objects', index=0,
|
|
||||||
number=1, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='settings', full_name='cura.proto.ObjectList.settings', index=1,
|
|
||||||
number=2, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=26,
|
|
||||||
serialized_end=114,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SLICE = _descriptor.Descriptor(
|
|
||||||
name='Slice',
|
|
||||||
full_name='cura.proto.Slice',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='object_lists', full_name='cura.proto.Slice.object_lists', index=0,
|
|
||||||
number=1, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=116,
|
|
||||||
serialized_end=169,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_OBJECT = _descriptor.Descriptor(
|
|
||||||
name='Object',
|
|
||||||
full_name='cura.proto.Object',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='id', full_name='cura.proto.Object.id', index=0,
|
|
||||||
number=1, type=3, cpp_type=2, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='vertices', full_name='cura.proto.Object.vertices', index=1,
|
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='normals', full_name='cura.proto.Object.normals', index=2,
|
|
||||||
number=3, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='indices', full_name='cura.proto.Object.indices', index=3,
|
|
||||||
number=4, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='settings', full_name='cura.proto.Object.settings', index=4,
|
|
||||||
number=5, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=171,
|
|
||||||
serialized_end=282,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_PROGRESS = _descriptor.Descriptor(
|
|
||||||
name='Progress',
|
|
||||||
full_name='cura.proto.Progress',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='amount', full_name='cura.proto.Progress.amount', index=0,
|
|
||||||
number=1, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=284,
|
|
||||||
serialized_end=310,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SLICEDOBJECTLIST = _descriptor.Descriptor(
|
|
||||||
name='SlicedObjectList',
|
|
||||||
full_name='cura.proto.SlicedObjectList',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='objects', full_name='cura.proto.SlicedObjectList.objects', index=0,
|
|
||||||
number=1, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=312,
|
|
||||||
serialized_end=373,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SLICEDOBJECT = _descriptor.Descriptor(
|
|
||||||
name='SlicedObject',
|
|
||||||
full_name='cura.proto.SlicedObject',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='id', full_name='cura.proto.SlicedObject.id', index=0,
|
|
||||||
number=1, type=3, cpp_type=2, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='layers', full_name='cura.proto.SlicedObject.layers', index=1,
|
|
||||||
number=2, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=375,
|
|
||||||
serialized_end=436,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_LAYER = _descriptor.Descriptor(
|
|
||||||
name='Layer',
|
|
||||||
full_name='cura.proto.Layer',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='id', full_name='cura.proto.Layer.id', index=0,
|
|
||||||
number=1, type=5, cpp_type=1, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='height', full_name='cura.proto.Layer.height', index=1,
|
|
||||||
number=2, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='thickness', full_name='cura.proto.Layer.thickness', index=2,
|
|
||||||
number=3, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='polygons', full_name='cura.proto.Layer.polygons', index=3,
|
|
||||||
number=4, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=438,
|
|
||||||
serialized_end=531,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_POLYGON = _descriptor.Descriptor(
|
|
||||||
name='Polygon',
|
|
||||||
full_name='cura.proto.Polygon',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='type', full_name='cura.proto.Polygon.type', index=0,
|
|
||||||
number=1, type=14, cpp_type=8, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='points', full_name='cura.proto.Polygon.points', index=1,
|
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='line_width', full_name='cura.proto.Polygon.line_width', index=2,
|
|
||||||
number=3, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
_POLYGON_TYPE,
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=534,
|
|
||||||
serialized_end=804,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_GCODELAYER = _descriptor.Descriptor(
|
|
||||||
name='GCodeLayer',
|
|
||||||
full_name='cura.proto.GCodeLayer',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='id', full_name='cura.proto.GCodeLayer.id', index=0,
|
|
||||||
number=1, type=3, cpp_type=2, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='data', full_name='cura.proto.GCodeLayer.data', index=1,
|
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=806,
|
|
||||||
serialized_end=844,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_OBJECTPRINTTIME = _descriptor.Descriptor(
|
|
||||||
name='ObjectPrintTime',
|
|
||||||
full_name='cura.proto.ObjectPrintTime',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='id', full_name='cura.proto.ObjectPrintTime.id', index=0,
|
|
||||||
number=1, type=3, cpp_type=2, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='time', full_name='cura.proto.ObjectPrintTime.time', index=1,
|
|
||||||
number=2, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='material_amount', full_name='cura.proto.ObjectPrintTime.material_amount', index=2,
|
|
||||||
number=3, type=2, cpp_type=6, label=1,
|
|
||||||
has_default_value=False, default_value=0,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=846,
|
|
||||||
serialized_end=914,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SETTINGLIST = _descriptor.Descriptor(
|
|
||||||
name='SettingList',
|
|
||||||
full_name='cura.proto.SettingList',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='settings', full_name='cura.proto.SettingList.settings', index=0,
|
|
||||||
number=1, type=11, cpp_type=10, label=3,
|
|
||||||
has_default_value=False, default_value=[],
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=916,
|
|
||||||
serialized_end=968,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SETTING = _descriptor.Descriptor(
|
|
||||||
name='Setting',
|
|
||||||
full_name='cura.proto.Setting',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='name', full_name='cura.proto.Setting.name', index=0,
|
|
||||||
number=1, type=9, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='value', full_name='cura.proto.Setting.value', index=1,
|
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=970,
|
|
||||||
serialized_end=1008,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_GCODEPREFIX = _descriptor.Descriptor(
|
|
||||||
name='GCodePrefix',
|
|
||||||
full_name='cura.proto.GCodePrefix',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='data', full_name='cura.proto.GCodePrefix.data', index=0,
|
|
||||||
number=2, type=12, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b(""),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
options=None),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=1010,
|
|
||||||
serialized_end=1037,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_SLICINGFINISHED = _descriptor.Descriptor(
|
|
||||||
name='SlicingFinished',
|
|
||||||
full_name='cura.proto.SlicingFinished',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=1039,
|
|
||||||
serialized_end=1056,
|
|
||||||
)
|
|
||||||
|
|
||||||
_OBJECTLIST.fields_by_name['objects'].message_type = _OBJECT
|
|
||||||
_OBJECTLIST.fields_by_name['settings'].message_type = _SETTING
|
|
||||||
_SLICE.fields_by_name['object_lists'].message_type = _OBJECTLIST
|
|
||||||
_OBJECT.fields_by_name['settings'].message_type = _SETTING
|
|
||||||
_SLICEDOBJECTLIST.fields_by_name['objects'].message_type = _SLICEDOBJECT
|
|
||||||
_SLICEDOBJECT.fields_by_name['layers'].message_type = _LAYER
|
|
||||||
_LAYER.fields_by_name['polygons'].message_type = _POLYGON
|
|
||||||
_POLYGON.fields_by_name['type'].enum_type = _POLYGON_TYPE
|
|
||||||
_POLYGON_TYPE.containing_type = _POLYGON
|
|
||||||
_SETTINGLIST.fields_by_name['settings'].message_type = _SETTING
|
|
||||||
DESCRIPTOR.message_types_by_name['ObjectList'] = _OBJECTLIST
|
|
||||||
DESCRIPTOR.message_types_by_name['Slice'] = _SLICE
|
|
||||||
DESCRIPTOR.message_types_by_name['Object'] = _OBJECT
|
|
||||||
DESCRIPTOR.message_types_by_name['Progress'] = _PROGRESS
|
|
||||||
DESCRIPTOR.message_types_by_name['SlicedObjectList'] = _SLICEDOBJECTLIST
|
|
||||||
DESCRIPTOR.message_types_by_name['SlicedObject'] = _SLICEDOBJECT
|
|
||||||
DESCRIPTOR.message_types_by_name['Layer'] = _LAYER
|
|
||||||
DESCRIPTOR.message_types_by_name['Polygon'] = _POLYGON
|
|
||||||
DESCRIPTOR.message_types_by_name['GCodeLayer'] = _GCODELAYER
|
|
||||||
DESCRIPTOR.message_types_by_name['ObjectPrintTime'] = _OBJECTPRINTTIME
|
|
||||||
DESCRIPTOR.message_types_by_name['SettingList'] = _SETTINGLIST
|
|
||||||
DESCRIPTOR.message_types_by_name['Setting'] = _SETTING
|
|
||||||
DESCRIPTOR.message_types_by_name['GCodePrefix'] = _GCODEPREFIX
|
|
||||||
DESCRIPTOR.message_types_by_name['SlicingFinished'] = _SLICINGFINISHED
|
|
||||||
|
|
||||||
ObjectList = _reflection.GeneratedProtocolMessageType('ObjectList', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _OBJECTLIST,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.ObjectList)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(ObjectList)
|
|
||||||
|
|
||||||
Slice = _reflection.GeneratedProtocolMessageType('Slice', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SLICE,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Slice)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Slice)
|
|
||||||
|
|
||||||
Object = _reflection.GeneratedProtocolMessageType('Object', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _OBJECT,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Object)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Object)
|
|
||||||
|
|
||||||
Progress = _reflection.GeneratedProtocolMessageType('Progress', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _PROGRESS,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Progress)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Progress)
|
|
||||||
|
|
||||||
SlicedObjectList = _reflection.GeneratedProtocolMessageType('SlicedObjectList', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SLICEDOBJECTLIST,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.SlicedObjectList)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(SlicedObjectList)
|
|
||||||
|
|
||||||
SlicedObject = _reflection.GeneratedProtocolMessageType('SlicedObject', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SLICEDOBJECT,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.SlicedObject)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(SlicedObject)
|
|
||||||
|
|
||||||
Layer = _reflection.GeneratedProtocolMessageType('Layer', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _LAYER,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Layer)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Layer)
|
|
||||||
|
|
||||||
Polygon = _reflection.GeneratedProtocolMessageType('Polygon', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _POLYGON,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Polygon)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Polygon)
|
|
||||||
|
|
||||||
GCodeLayer = _reflection.GeneratedProtocolMessageType('GCodeLayer', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _GCODELAYER,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.GCodeLayer)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(GCodeLayer)
|
|
||||||
|
|
||||||
ObjectPrintTime = _reflection.GeneratedProtocolMessageType('ObjectPrintTime', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _OBJECTPRINTTIME,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.ObjectPrintTime)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(ObjectPrintTime)
|
|
||||||
|
|
||||||
SettingList = _reflection.GeneratedProtocolMessageType('SettingList', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SETTINGLIST,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.SettingList)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(SettingList)
|
|
||||||
|
|
||||||
Setting = _reflection.GeneratedProtocolMessageType('Setting', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SETTING,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.Setting)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(Setting)
|
|
||||||
|
|
||||||
GCodePrefix = _reflection.GeneratedProtocolMessageType('GCodePrefix', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _GCODEPREFIX,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.GCodePrefix)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(GCodePrefix)
|
|
||||||
|
|
||||||
SlicingFinished = _reflection.GeneratedProtocolMessageType('SlicingFinished', (_message.Message,), dict(
|
|
||||||
DESCRIPTOR = _SLICINGFINISHED,
|
|
||||||
__module__ = 'Cura_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:cura.proto.SlicingFinished)
|
|
||||||
))
|
|
||||||
_sym_db.RegisterMessage(SlicingFinished)
|
|
||||||
|
|
||||||
|
|
||||||
# @@protoc_insertion_point(module_scope)
|
|
@ -44,7 +44,7 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
object_id_map[id(node)] = node
|
object_id_map[id(node)] = node
|
||||||
Job.yieldThread()
|
Job.yieldThread()
|
||||||
|
|
||||||
settings = Application.getInstance().getMachineManager().getActiveProfile()
|
settings = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
center = None
|
center = None
|
||||||
if not settings.getSettingValue("machine_center_is_zero"):
|
if not settings.getSettingValue("machine_center_is_zero"):
|
||||||
@ -56,21 +56,27 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
layer_data = LayerData.LayerData()
|
layer_data = LayerData.LayerData()
|
||||||
|
|
||||||
layer_count = 0
|
layer_count = 0
|
||||||
for object in self._message.objects:
|
for i in range(self._message.repeatedMessageCount("objects")):
|
||||||
layer_count += len(object.layers)
|
layer_count += self._message.getRepeatedMessage("objects", i).repeatedMessageCount("layers")
|
||||||
|
|
||||||
current_layer = 0
|
current_layer = 0
|
||||||
for object in self._message.objects:
|
for i in range(self._message.repeatedMessageCount("objects")):
|
||||||
|
object = self._message.getRepeatedMessage("objects", i)
|
||||||
try:
|
try:
|
||||||
node = object_id_map[object.id]
|
node = object_id_map[object.id]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for layer in object.layers:
|
for l in range(object.repeatedMessageCount("layers")):
|
||||||
|
layer = object.getRepeatedMessage("layers", l)
|
||||||
|
|
||||||
layer_data.addLayer(layer.id)
|
layer_data.addLayer(layer.id)
|
||||||
layer_data.setLayerHeight(layer.id, layer.height)
|
layer_data.setLayerHeight(layer.id, layer.height)
|
||||||
layer_data.setLayerThickness(layer.id, layer.thickness)
|
layer_data.setLayerThickness(layer.id, layer.thickness)
|
||||||
for polygon in layer.polygons:
|
|
||||||
|
for p in range(layer.repeatedMessageCount("polygons")):
|
||||||
|
polygon = layer.getRepeatedMessage("polygons", p)
|
||||||
|
|
||||||
points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
|
points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
|
||||||
points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
|
points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
|
||||||
points = numpy.asarray(points, dtype=numpy.float32)
|
points = numpy.asarray(points, dtype=numpy.float32)
|
||||||
@ -83,8 +89,6 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
|
|
||||||
layer_data.addPolygon(layer.id, polygon.type, points, polygon.line_width)
|
layer_data.addPolygon(layer.id, polygon.type, points, polygon.line_width)
|
||||||
|
|
||||||
Job.yieldThread()
|
|
||||||
|
|
||||||
current_layer += 1
|
current_layer += 1
|
||||||
progress = (current_layer / layer_count) * 100
|
progress = (current_layer / layer_count) * 100
|
||||||
# TODO: Rebuild the layer data mesh once the layer has been processed.
|
# TODO: Rebuild the layer data mesh once the layer has been processed.
|
||||||
|
@ -14,8 +14,6 @@ from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
|||||||
|
|
||||||
from cura.OneAtATimeIterator import OneAtATimeIterator
|
from cura.OneAtATimeIterator import OneAtATimeIterator
|
||||||
|
|
||||||
from . import Cura_pb2
|
|
||||||
|
|
||||||
## Formatter class that handles token expansion in start/end gcod
|
## Formatter class that handles token expansion in start/end gcod
|
||||||
class GcodeStartEndFormatter(Formatter):
|
class GcodeStartEndFormatter(Formatter):
|
||||||
def get_value(self, key, args, kwargs): # [CodeStyle: get_value is an overridden function from the Formatter class]
|
def get_value(self, key, args, kwargs): # [CodeStyle: get_value is an overridden function from the Formatter class]
|
||||||
@ -81,20 +79,21 @@ class StartSliceJob(Job):
|
|||||||
|
|
||||||
self._sendSettings(self._profile)
|
self._sendSettings(self._profile)
|
||||||
|
|
||||||
slice_message = Cura_pb2.Slice()
|
slice_message = self._socket.createMessage("cura.proto.Slice");
|
||||||
|
|
||||||
for group in object_groups:
|
for group in object_groups:
|
||||||
group_message = slice_message.object_lists.add()
|
group_message = slice_message.addRepeatedMessage("object_lists");
|
||||||
for object in group:
|
for object in group:
|
||||||
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
|
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
|
||||||
|
|
||||||
obj = group_message.objects.add()
|
obj = group_message.addRepeatedMessage("objects");
|
||||||
obj.id = id(object)
|
obj.id = id(object)
|
||||||
|
|
||||||
verts = numpy.array(mesh_data.getVertices())
|
verts = numpy.array(mesh_data.getVertices())
|
||||||
verts[:,[1,2]] = verts[:,[2,1]]
|
verts[:,[1,2]] = verts[:,[2,1]]
|
||||||
verts[:,1] *= -1
|
verts[:,1] *= -1
|
||||||
obj.vertices = verts.tostring()
|
|
||||||
|
obj.vertices = verts
|
||||||
|
|
||||||
self._handlePerObjectSettings(object, obj)
|
self._handlePerObjectSettings(object, obj)
|
||||||
|
|
||||||
@ -115,13 +114,13 @@ class StartSliceJob(Job):
|
|||||||
return str(value).encode("utf-8")
|
return str(value).encode("utf-8")
|
||||||
|
|
||||||
def _sendSettings(self, profile):
|
def _sendSettings(self, profile):
|
||||||
msg = Cura_pb2.SettingList()
|
msg = self._socket.createMessage("cura.proto.SettingList");
|
||||||
settings = profile.getAllSettingValues(include_machine = True)
|
settings = profile.getAllSettingValues(include_machine = True)
|
||||||
start_gcode = settings["machine_start_gcode"]
|
start_gcode = settings["machine_start_gcode"]
|
||||||
settings["material_bed_temp_prepend"] = "{material_bed_temperature}" not in start_gcode
|
settings["material_bed_temp_prepend"] = "{material_bed_temperature}" not in start_gcode
|
||||||
settings["material_print_temp_prepend"] = "{material_print_temperature}" not in start_gcode
|
settings["material_print_temp_prepend"] = "{material_print_temperature}" not in start_gcode
|
||||||
for key, value in settings.items():
|
for key, value in settings.items():
|
||||||
s = msg.settings.add()
|
s = msg.addRepeatedMessage("settings")
|
||||||
s.name = key
|
s.name = key
|
||||||
if key == "machine_start_gcode" or key == "machine_end_gcode":
|
if key == "machine_start_gcode" or key == "machine_end_gcode":
|
||||||
s.value = self._expandGcodeTokens(key, value, settings)
|
s.value = self._expandGcodeTokens(key, value, settings)
|
||||||
@ -134,7 +133,7 @@ class StartSliceJob(Job):
|
|||||||
profile = node.callDecoration("getProfile")
|
profile = node.callDecoration("getProfile")
|
||||||
if profile:
|
if profile:
|
||||||
for key, value in profile.getAllSettingValues().items():
|
for key, value in profile.getAllSettingValues().items():
|
||||||
setting = message.settings.add()
|
setting = message.addRepeatedMessage("settings")
|
||||||
setting.name = key
|
setting.name = key
|
||||||
setting.value = str(value).encode()
|
setting.value = str(value).encode()
|
||||||
|
|
||||||
@ -145,7 +144,7 @@ class StartSliceJob(Job):
|
|||||||
return
|
return
|
||||||
|
|
||||||
for key, value in object_settings.items():
|
for key, value in object_settings.items():
|
||||||
setting = message.settings.add()
|
setting = message.addRepeatedMessage("settings")
|
||||||
setting.name = key
|
setting.name = key
|
||||||
setting.value = str(value).encode()
|
setting.value = str(value).encode()
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ class GCodeWriter(MeshWriter):
|
|||||||
if gcode_list:
|
if gcode_list:
|
||||||
for gcode in gcode_list:
|
for gcode in gcode_list:
|
||||||
stream.write(gcode)
|
stream.write(gcode)
|
||||||
profile = self._serialiseProfile(Application.getInstance().getMachineManager().getActiveProfile()) #Serialise the profile and put them at the end of the file.
|
profile = self._serialiseProfile(Application.getInstance().getMachineManager().getWorkingProfile()) #Serialise the profile and put them at the end of the file.
|
||||||
stream.write(profile)
|
stream.write(profile)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -14,12 +14,9 @@ UM.Dialog
|
|||||||
minimumWidth: 350 * Screen.devicePixelRatio;
|
minimumWidth: 350 * Screen.devicePixelRatio;
|
||||||
maximumWidth: 350 * Screen.devicePixelRatio;
|
maximumWidth: 350 * Screen.devicePixelRatio;
|
||||||
|
|
||||||
height: 220*Screen.devicePixelRatio;
|
height: 250 * Screen.devicePixelRatio;
|
||||||
minimumHeight: 220*Screen.devicePixelRatio;
|
minimumHeight: 250 * Screen.devicePixelRatio;
|
||||||
maximumHeight: 220*Screen.devicePixelRatio;
|
maximumHeight: 250 * Screen.devicePixelRatio;
|
||||||
|
|
||||||
|
|
||||||
modality: Qt.Modal
|
|
||||||
|
|
||||||
title: catalog.i18nc("@title:window", "Convert Image...")
|
title: catalog.i18nc("@title:window", "Convert Image...")
|
||||||
|
|
||||||
@ -38,7 +35,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","The maximum distance of each pixel from \"Base.\"")
|
text: catalog.i18nc("@info:tooltip","The maximum distance of each pixel from \"Base.\"")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: catalog.i18nc("@action:label","Height (mm)")
|
text: catalog.i18nc("@action:label","Height (mm)")
|
||||||
@ -62,7 +58,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","The base height from the build plate in millimeters.")
|
text: catalog.i18nc("@info:tooltip","The base height from the build plate in millimeters.")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: catalog.i18nc("@action:label","Base (mm)")
|
text: catalog.i18nc("@action:label","Base (mm)")
|
||||||
@ -86,7 +81,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","The width in millimeters on the build plate.")
|
text: catalog.i18nc("@info:tooltip","The width in millimeters on the build plate.")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: catalog.i18nc("@action:label","Width (mm)")
|
text: catalog.i18nc("@action:label","Width (mm)")
|
||||||
@ -111,7 +105,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","The depth in millimeters on the build plate")
|
text: catalog.i18nc("@info:tooltip","The depth in millimeters on the build plate")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: catalog.i18nc("@action:label","Depth (mm)")
|
text: catalog.i18nc("@action:label","Depth (mm)")
|
||||||
@ -135,7 +128,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh.")
|
text: catalog.i18nc("@info:tooltip","By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behavior such that black pixels represent high points on the mesh and white pixels represent low points on the mesh.")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
//Empty label so 2 column layout works.
|
//Empty label so 2 column layout works.
|
||||||
Text {
|
Text {
|
||||||
@ -159,7 +151,6 @@ UM.Dialog
|
|||||||
text: catalog.i18nc("@info:tooltip","The amount of smoothing to apply to the image.")
|
text: catalog.i18nc("@info:tooltip","The amount of smoothing to apply to the image.")
|
||||||
Row {
|
Row {
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
text: catalog.i18nc("@action:label","Smoothing")
|
text: catalog.i18nc("@action:label","Smoothing")
|
||||||
|
@ -167,12 +167,16 @@ class LayerView(View):
|
|||||||
|
|
||||||
if new_max_layers > 0 and new_max_layers != self._old_max_layers:
|
if new_max_layers > 0 and new_max_layers != self._old_max_layers:
|
||||||
self._max_layers = new_max_layers
|
self._max_layers = new_max_layers
|
||||||
self.maxLayersChanged.emit()
|
|
||||||
self._current_layer_num = self._max_layers
|
|
||||||
|
|
||||||
# This makes sure we update the current layer
|
# The qt slider has a bit of weird behavior that if the maxvalue needs to be changed first
|
||||||
|
# if it's the largest value. If we don't do this, we can have a slider block outside of the
|
||||||
|
# slider.
|
||||||
|
if new_max_layers > self._current_layer_num:
|
||||||
|
self.maxLayersChanged.emit()
|
||||||
self.setLayer(int(self._max_layers))
|
self.setLayer(int(self._max_layers))
|
||||||
self.currentLayerNumChanged.emit()
|
else:
|
||||||
|
self.setLayer(int(self._max_layers))
|
||||||
|
self.maxLayersChanged.emit()
|
||||||
|
|
||||||
maxLayersChanged = Signal()
|
maxLayersChanged = Signal()
|
||||||
currentLayerNumChanged = Signal()
|
currentLayerNumChanged = Signal()
|
||||||
|
@ -24,16 +24,11 @@ class PerObjectSettingsModel(ListModel):
|
|||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self._scene = Application.getInstance().getController().getScene()
|
self._scene = Application.getInstance().getController().getScene()
|
||||||
self._root = self._scene.getRoot()
|
self._root = self._scene.getRoot()
|
||||||
self._root.transformationChanged.connect(self._updatePositions)
|
|
||||||
self._root.childrenChanged.connect(self._updateNodes)
|
|
||||||
self._updateNodes(None)
|
|
||||||
|
|
||||||
self.addRoleName(self.IdRole,"id")
|
self.addRoleName(self.IdRole,"id")
|
||||||
self.addRoleName(self.XRole,"x")
|
|
||||||
self.addRoleName(self.YRole,"y")
|
|
||||||
self.addRoleName(self.MaterialRole, "material")
|
self.addRoleName(self.MaterialRole, "material")
|
||||||
self.addRoleName(self.ProfileRole, "profile")
|
self.addRoleName(self.ProfileRole, "profile")
|
||||||
self.addRoleName(self.SettingsRole, "settings")
|
self.addRoleName(self.SettingsRole, "settings")
|
||||||
|
self._updateModel()
|
||||||
|
|
||||||
@pyqtSlot("quint64", str)
|
@pyqtSlot("quint64", str)
|
||||||
def setObjectProfile(self, object_id, profile_name):
|
def setObjectProfile(self, object_id, profile_name):
|
||||||
@ -72,27 +67,11 @@ class PerObjectSettingsModel(ListModel):
|
|||||||
if len(node.callDecoration("getAllSettings")) == 0:
|
if len(node.callDecoration("getAllSettings")) == 0:
|
||||||
node.removeDecorator(SettingOverrideDecorator)
|
node.removeDecorator(SettingOverrideDecorator)
|
||||||
|
|
||||||
def _updatePositions(self, source):
|
def _updateModel(self):
|
||||||
camera = Application.getInstance().getController().getScene().getActiveCamera()
|
|
||||||
for node in BreadthFirstIterator(self._root):
|
|
||||||
if type(node) is not SceneNode or not node.getMeshData():
|
|
||||||
continue
|
|
||||||
|
|
||||||
projected_position = camera.project(node.getWorldPosition())
|
|
||||||
|
|
||||||
index = self.find("id", id(node))
|
|
||||||
self.setProperty(index, "x", float(projected_position[0]))
|
|
||||||
self.setProperty(index, "y", float(projected_position[1]))
|
|
||||||
|
|
||||||
def _updateNodes(self, source):
|
|
||||||
self.clear()
|
self.clear()
|
||||||
camera = Application.getInstance().getController().getScene().getActiveCamera()
|
|
||||||
for node in BreadthFirstIterator(self._root):
|
for node in BreadthFirstIterator(self._root):
|
||||||
if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable():
|
if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
projected_position = camera.project(node.getWorldPosition())
|
|
||||||
|
|
||||||
node_profile = node.callDecoration("getProfile")
|
node_profile = node.callDecoration("getProfile")
|
||||||
if not node_profile:
|
if not node_profile:
|
||||||
node_profile = "global"
|
node_profile = "global"
|
||||||
@ -101,8 +80,6 @@ class PerObjectSettingsModel(ListModel):
|
|||||||
|
|
||||||
self.appendItem({
|
self.appendItem({
|
||||||
"id": id(node),
|
"id": id(node),
|
||||||
"x": float(projected_position[0]),
|
|
||||||
"y": float(projected_position[1]),
|
|
||||||
"material": "",
|
"material": "",
|
||||||
"profile": node_profile,
|
"profile": node_profile,
|
||||||
"settings": SettingOverrideModel.SettingOverrideModel(node)
|
"settings": SettingOverrideModel.SettingOverrideModel(node)
|
||||||
|
@ -10,8 +10,7 @@ import UM 1.1 as UM
|
|||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: base;
|
id: base;
|
||||||
property int currentIndex: UM.ActiveTool.properties.SelectedIndex;
|
property int currentIndex: UM.ActiveTool.properties.getValue("SelectedIndex")
|
||||||
property string printSequence: UM.ActiveTool.properties.PrintSequence;
|
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
UM.I18nCatalog { id: catalog; name: "cura"; }
|
||||||
|
|
||||||
@ -25,14 +24,6 @@ Item {
|
|||||||
|
|
||||||
spacing: UM.Theme.sizes.default_margin.height;
|
spacing: UM.Theme.sizes.default_margin.height;
|
||||||
|
|
||||||
Label {
|
|
||||||
width: UM.Theme.sizes.setting.width;
|
|
||||||
wrapMode: Text.Wrap;
|
|
||||||
text: catalog.i18nc("@label", "Per Object Settings behavior may be unexpected when 'Print sequence' is set to 'All at Once'.")
|
|
||||||
color: UM.Theme.colors.text;
|
|
||||||
visible: base.printSequence == "all_at_once"
|
|
||||||
}
|
|
||||||
|
|
||||||
UM.SettingItem {
|
UM.SettingItem {
|
||||||
id: profileSelection
|
id: profileSelection
|
||||||
|
|
||||||
@ -47,11 +38,11 @@ Item {
|
|||||||
|
|
||||||
options: UM.ProfilesModel { addUseGlobal: true }
|
options: UM.ProfilesModel { addUseGlobal: true }
|
||||||
|
|
||||||
value: UM.ActiveTool.properties.Model.getItem(base.currentIndex).profile
|
value: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).profile
|
||||||
|
|
||||||
onItemValueChanged: {
|
onItemValueChanged: {
|
||||||
var item = UM.ActiveTool.properties.Model.getItem(base.currentIndex);
|
var item = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex);
|
||||||
UM.ActiveTool.properties.Model.setObjectProfile(item.id, value)
|
UM.ActiveTool.properties.getValue("Model").setObjectProfile(item.id, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,7 +54,7 @@ Item {
|
|||||||
Repeater {
|
Repeater {
|
||||||
id: settings;
|
id: settings;
|
||||||
|
|
||||||
model: UM.ActiveTool.properties.Model.getItem(base.currentIndex).settings
|
model: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).settings
|
||||||
|
|
||||||
UM.SettingItem {
|
UM.SettingItem {
|
||||||
width: UM.Theme.sizes.setting.width;
|
width: UM.Theme.sizes.setting.width;
|
||||||
@ -91,7 +82,7 @@ Item {
|
|||||||
width: UM.Theme.sizes.setting.height;
|
width: UM.Theme.sizes.setting.height;
|
||||||
height: UM.Theme.sizes.setting.height;
|
height: UM.Theme.sizes.setting.height;
|
||||||
|
|
||||||
onClicked: UM.ActiveTool.properties.Model.removeSettingOverride(UM.ActiveTool.properties.Model.getItem(base.currentIndex).id, model.key)
|
onClicked: UM.ActiveTool.properties.getValue("Model").removeSettingOverride(UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).id, model.key)
|
||||||
|
|
||||||
style: ButtonStyle
|
style: ButtonStyle
|
||||||
{
|
{
|
||||||
@ -202,6 +193,7 @@ Item {
|
|||||||
|
|
||||||
width: parent.width;
|
width: parent.width;
|
||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
|
visible: model.visible && settingsColumn.childrenHeight != 0 //If all children are hidden, the height is 0, and then the category header must also be hidden.
|
||||||
|
|
||||||
ToolButton {
|
ToolButton {
|
||||||
id: categoryHeader;
|
id: categoryHeader;
|
||||||
@ -237,8 +229,6 @@ Item {
|
|||||||
|
|
||||||
property variant settingsModel: model.settings;
|
property variant settingsModel: model.settings;
|
||||||
|
|
||||||
visible: model.visible;
|
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: settingsColumn;
|
id: settingsColumn;
|
||||||
|
|
||||||
@ -272,10 +262,12 @@ Item {
|
|||||||
x: model.depth * UM.Theme.sizes.default_margin.width;
|
x: model.depth * UM.Theme.sizes.default_margin.width;
|
||||||
text: model.name;
|
text: model.name;
|
||||||
tooltip: model.description;
|
tooltip: model.description;
|
||||||
|
visible: !model.global_only
|
||||||
|
height: model.global_only ? 0 : undefined
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var object_id = UM.ActiveTool.properties.Model.getItem(base.currentIndex).id;
|
var object_id = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).id;
|
||||||
UM.ActiveTool.properties.Model.addSettingOverride(object_id, model.key);
|
UM.ActiveTool.properties.getValue("Model").addSettingOverride(object_id, model.key);
|
||||||
settingPickDialog.visible = false;
|
settingPickDialog.visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,26 +4,29 @@
|
|||||||
from UM.Tool import Tool
|
from UM.Tool import Tool
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
|
from UM.Qt.ListModel import ListModel
|
||||||
|
|
||||||
from . import PerObjectSettingsModel
|
from . import PerObjectSettingsModel
|
||||||
|
|
||||||
class PerObjectSettingsTool(Tool):
|
class PerObjectSettingsTool(Tool):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self._model = None
|
||||||
|
|
||||||
self.setExposedProperties("Model", "SelectedIndex", "PrintSequence")
|
self.setExposedProperties("Model", "SelectedIndex")
|
||||||
|
|
||||||
def event(self, event):
|
def event(self, event):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def getModel(self):
|
def getModel(self):
|
||||||
return PerObjectSettingsModel.PerObjectSettingsModel()
|
if not self._model:
|
||||||
|
self._model = PerObjectSettingsModel.PerObjectSettingsModel()
|
||||||
|
|
||||||
|
#For some reason, casting this model to itself causes the model to properly be cast to a QVariant, even though it ultimately inherits from QVariant.
|
||||||
|
#Yeah, we have no idea either...
|
||||||
|
return PerObjectSettingsModel.PerObjectSettingsModel(self._model)
|
||||||
|
|
||||||
def getSelectedIndex(self):
|
def getSelectedIndex(self):
|
||||||
selected_object_id = id(Selection.getSelectedObject(0))
|
selected_object_id = id(Selection.getSelectedObject(0))
|
||||||
index = self.getModel().find("id", selected_object_id)
|
index = self.getModel().find("id", selected_object_id)
|
||||||
return index
|
return index
|
||||||
|
|
||||||
def getPrintSequence(self):
|
|
||||||
settings = Application.getInstance().getMachineManager().getActiveProfile()
|
|
||||||
return settings.getSettingValue("print_sequence")
|
|
@ -23,19 +23,21 @@ class RemovableDriveOutputDevice(OutputDevice):
|
|||||||
self.setIconName("save_sd")
|
self.setIconName("save_sd")
|
||||||
self.setPriority(1)
|
self.setPriority(1)
|
||||||
|
|
||||||
Preferences.getInstance().addPreference("removable_drive/file_type", "text/x-gcode") #Add a preference that says in what file type we should store the file.
|
|
||||||
|
|
||||||
self._writing = False
|
self._writing = False
|
||||||
|
|
||||||
def requestWrite(self, node, file_name = None):
|
def requestWrite(self, node, file_name = None, filter_by_machine = False):
|
||||||
if self._writing:
|
if self._writing:
|
||||||
raise OutputDeviceError.DeviceBusyError()
|
raise OutputDeviceError.DeviceBusyError()
|
||||||
|
|
||||||
file_type = Preferences.getInstance().getValue("removable_drive/file_type")
|
file_formats = Application.getInstance().getMeshFileHandler().getSupportedFileTypesWrite() #Formats supported by this application.
|
||||||
gcode_writer = Application.getInstance().getMeshFileHandler().getWriterByMimeType(file_type)
|
if filter_by_machine:
|
||||||
if not gcode_writer:
|
machine_file_formats = Application.getInstance().getMachineManager().getActiveMachineInstance().getMachineDefinition().getFileFormats()
|
||||||
Logger.log("e", "Could not find writer for MIME type %s, not writing to removable drive %s", file_type, self.getName())
|
file_formats = list(filter(lambda file_format: file_format["mime_type"] in machine_file_formats, file_formats)) #Take the intersection between file_formats and machine_file_formats.
|
||||||
|
if len(file_formats) == 0:
|
||||||
|
Logger.log("e", "There are no file formats available to write with!")
|
||||||
raise OutputDeviceError.WriteRequestFailedError()
|
raise OutputDeviceError.WriteRequestFailedError()
|
||||||
|
writer = Application.getInstance().getMeshFileHandler().getWriterByMimeType(file_formats[0]["mime_type"]) #Just take the first file format available.
|
||||||
|
extension = file_formats[0]["extension"]
|
||||||
|
|
||||||
if file_name == None:
|
if file_name == None:
|
||||||
for n in BreadthFirstIterator(node):
|
for n in BreadthFirstIterator(node):
|
||||||
@ -48,12 +50,14 @@ class RemovableDriveOutputDevice(OutputDevice):
|
|||||||
Logger.log("e", "Could not determine a proper file name when trying to write to %s, aborting", self.getName())
|
Logger.log("e", "Could not determine a proper file name when trying to write to %s, aborting", self.getName())
|
||||||
raise OutputDeviceError.WriteRequestFailedError()
|
raise OutputDeviceError.WriteRequestFailedError()
|
||||||
|
|
||||||
file_name = os.path.join(self.getId(), os.path.splitext(file_name)[0] + ".gcode")
|
if extension: #Not empty string.
|
||||||
|
extension = "." + extension
|
||||||
|
file_name = os.path.join(self.getId(), os.path.splitext(file_name)[0] + extension)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
Logger.log("d", "Writing to %s", file_name)
|
Logger.log("d", "Writing to %s", file_name)
|
||||||
stream = open(file_name, "wt")
|
stream = open(file_name, "wt")
|
||||||
job = WriteMeshJob(gcode_writer, stream, node, MeshWriter.OutputMode.TextMode)
|
job = WriteMeshJob(writer, stream, node, MeshWriter.OutputMode.TextMode)
|
||||||
job.setFileName(file_name)
|
job.setFileName(file_name)
|
||||||
job.progress.connect(self._onProgress)
|
job.progress.connect(self._onProgress)
|
||||||
job.finished.connect(self._onFinished)
|
job.finished.connect(self._onFinished)
|
||||||
|
@ -44,7 +44,7 @@ class SliceInfo(Extension):
|
|||||||
def _onWriteStarted(self, output_device):
|
def _onWriteStarted(self, output_device):
|
||||||
if not Preferences.getInstance().getValue("info/send_slice_info"):
|
if not Preferences.getInstance().getValue("info/send_slice_info"):
|
||||||
return # Do nothing, user does not want to send data
|
return # Do nothing, user does not want to send data
|
||||||
settings = Application.getInstance().getMachineManager().getActiveProfile()
|
settings = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
# Load all machine definitions and put them in machine_settings dict
|
# Load all machine definitions and put them in machine_settings dict
|
||||||
#setting_file_name = Application.getInstance().getActiveMachineInstance().getMachineSettings()._json_file
|
#setting_file_name = Application.getInstance().getActiveMachineInstance().getMachineSettings()._json_file
|
||||||
|
@ -34,8 +34,8 @@ class SolidView(View):
|
|||||||
self._disabled_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader"))
|
self._disabled_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader"))
|
||||||
self._disabled_shader.setUniformValue("u_diffuseColor", [0.68, 0.68, 0.68, 1.0])
|
self._disabled_shader.setUniformValue("u_diffuseColor", [0.68, 0.68, 0.68, 1.0])
|
||||||
|
|
||||||
if Application.getInstance().getMachineManager().getActiveProfile():
|
if Application.getInstance().getMachineManager().getWorkingProfile():
|
||||||
profile = Application.getInstance().getMachineManager().getActiveProfile()
|
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
if profile.getSettingValue("support_enable") or not Preferences.getInstance().getValue("view/show_overhang"):
|
if profile.getSettingValue("support_enable") or not Preferences.getInstance().getValue("view/show_overhang"):
|
||||||
angle = profile.getSettingValue("support_angle")
|
angle = profile.getSettingValue("support_angle")
|
||||||
|
461
resources/i18n/de/cura.po
Executable file → Normal file
461
resources/i18n/de/cura.po
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
950
resources/i18n/de/fdmprinter.json.po
Executable file → Normal file
950
resources/i18n/de/fdmprinter.json.po
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2016-01-18 11:54+0100\n"
|
"POT-Creation-Date: 2016-01-18 11:54+0100\n"
|
||||||
"PO-Revision-Date: 2016-01-18 11:54+0100\n"
|
"PO-Revision-Date: 2016-01-26 08:37+0100\n"
|
||||||
"Last-Translator: Automatically generated\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: none\n"
|
"Language-Team: none\n"
|
||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
@ -28,10 +28,7 @@ msgid ""
|
|||||||
"<p>An uncaught exception has occurred!</p><p>Please use the information "
|
"<p>An uncaught exception has occurred!</p><p>Please use the information "
|
||||||
"below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/"
|
"below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/"
|
||||||
"issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
"issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
||||||
msgstr ""
|
msgstr "<p>An uncaught exception has occurred!</p><p>Please use the information below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
||||||
"<p>An uncaught exception has occurred!</p><p>Please use the information "
|
|
||||||
"below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/"
|
|
||||||
"issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -155,7 +152,7 @@ msgstr "Ejected {0}. You can now safely remove the drive."
|
|||||||
#, python-brace-format
|
#, python-brace-format
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Failed to eject {0}. Maybe it is still in use?"
|
msgid "Failed to eject {0}. Maybe it is still in use?"
|
||||||
msgstr "Failed to eject {0}. Maybe it is still in use?"
|
msgstr "Failed to eject {0}. Is it still in use?"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -231,7 +228,7 @@ msgstr "Update Firmware"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Cannot update firmware, there were no connected printers found."
|
msgid "Cannot update firmware, there were no connected printers found."
|
||||||
msgstr "Cannot update firmware, there were no connected printers found."
|
msgstr "Cannot update firmware, no connected printers were found."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:35
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:35
|
||||||
msgctxt "@item:inmenu"
|
msgctxt "@item:inmenu"
|
||||||
@ -257,15 +254,13 @@ msgstr "USB printing"
|
|||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||||
msgstr ""
|
msgstr "Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:35
|
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:35
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura automatically sends slice info. You can disable this in preferences"
|
"Cura automatically sends slice info. You can disable this in preferences"
|
||||||
msgstr ""
|
msgstr "Cura automatically sends slice info. You can disable this in preferences"
|
||||||
"Cura automatically sends slice info. You can disable this in preferences"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -425,7 +420,7 @@ msgstr "Firmware Update"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:38
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:38
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Starting firmware update, this may take a while."
|
msgid "Starting firmware update, this may take a while."
|
||||||
msgstr "Starting firmware update, this may take a while."
|
msgstr "Starting firmware update, this may take some time."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:43
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:43
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -490,7 +485,7 @@ msgstr "Height (mm)"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The base height from the build plate in millimeters."
|
msgid "The base height from the build plate in millimeters."
|
||||||
msgstr "The base height from the build plate in millimeters."
|
msgstr "The base height from the build plate in millimetres."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:68
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:68
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
@ -500,7 +495,7 @@ msgstr "Base (mm)"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The width in millimeters on the build plate."
|
msgid "The width in millimeters on the build plate."
|
||||||
msgstr "The width in millimeters on the build plate."
|
msgstr "The width in millimetres on the build plate."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:92
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:92
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
@ -510,7 +505,7 @@ msgstr "Width (mm)"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The depth in millimeters on the build plate"
|
msgid "The depth in millimeters on the build plate"
|
||||||
msgstr "The depth in millimeters on the build plate"
|
msgstr "The depth in millimetres on the build plate"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:117
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:117
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
@ -524,11 +519,7 @@ msgid ""
|
|||||||
"represent low points on the mesh. Change this option to reverse the behavior "
|
"represent low points on the mesh. Change this option to reverse the behavior "
|
||||||
"such that black pixels represent high points on the mesh and white pixels "
|
"such that black pixels represent high points on the mesh and white pixels "
|
||||||
"represent low points on the mesh."
|
"represent low points on the mesh."
|
||||||
msgstr ""
|
msgstr "By default, white pixels represent high points on the mesh and black pixels represent low points on the mesh. Change this option to reverse the behaviour such that black pixels represent high points on the mesh and white pixels represent low points on the mesh."
|
||||||
"By default, white pixels represent high points on the mesh and black pixels "
|
|
||||||
"represent low points on the mesh. Change this option to reverse the behavior "
|
|
||||||
"such that black pixels represent high points on the mesh and white pixels "
|
|
||||||
"represent low points on the mesh."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
@ -560,9 +551,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
||||||
"to 'All at Once'."
|
"to 'All at Once'."
|
||||||
msgstr ""
|
msgstr "Per Object Settings behaviour may be unexpected when 'Print sequence' is set to 'All at Once'."
|
||||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
|
||||||
"to 'All at Once'."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:42
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:42
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -577,7 +566,7 @@ msgstr "Add Setting"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Pick a Setting to Customize"
|
msgid "Pick a Setting to Customize"
|
||||||
msgstr "Pick a Setting to Customize"
|
msgstr "Pick a Setting to Customise"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:177
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:177
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
@ -651,10 +640,7 @@ msgid ""
|
|||||||
"Selecting this profile overwrites some of your customised settings. Do you "
|
"Selecting this profile overwrites some of your customised settings. Do you "
|
||||||
"want to merge the new settings into your current profile or do you want to "
|
"want to merge the new settings into your current profile or do you want to "
|
||||||
"load a clean copy of the profile?"
|
"load a clean copy of the profile?"
|
||||||
msgstr ""
|
msgstr "Selecting this profile overwrites some of your customised settings. Do you want to merge the new settings into your current profile or do you want to load a clean copy of the profile?"
|
||||||
"Selecting this profile overwrites some of your customised settings. Do you "
|
|
||||||
"want to merge the new settings into your current profile or do you want to "
|
|
||||||
"load a clean copy of the profile?"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:38
|
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:38
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -749,7 +735,7 @@ msgstr "Delete Object"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/Actions.qml:144
|
#: /home/tamara/2.1/Cura/resources/qml/Actions.qml:144
|
||||||
msgctxt "@action:inmenu"
|
msgctxt "@action:inmenu"
|
||||||
msgid "Ce&nter Object on Platform"
|
msgid "Ce&nter Object on Platform"
|
||||||
msgstr "Ce&nter Object on Platform"
|
msgstr "Ce&ntre Object on Platform"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Actions.qml:150
|
#: /home/tamara/2.1/Cura/resources/qml/Actions.qml:150
|
||||||
msgctxt "@action:inmenu menubar:edit"
|
msgctxt "@action:inmenu menubar:edit"
|
||||||
@ -814,8 +800,7 @@ msgstr "Hollow"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "No (0%) infill will leave your model hollow at the cost of low strength"
|
msgid "No (0%) infill will leave your model hollow at the cost of low strength"
|
||||||
msgstr ""
|
msgstr "No (0%) infill will leave your model hollow at the cost of low strength"
|
||||||
"No (0%) infill will leave your model hollow at the cost of low strength"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:243
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:243
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -862,9 +847,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
||||||
"your object which is easy to cut off afterwards."
|
"your object which is easy to cut off afterwards."
|
||||||
msgstr ""
|
msgstr "Enable printing a brim. This will add a single-layer-thick flat area around your object which is easy to cut off afterwards."
|
||||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
|
||||||
"your object which is easy to cut off afterwards."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:330
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:330
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -876,9 +859,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Enable printing support structures. This will build up supporting structures "
|
"Enable printing support structures. This will build up supporting structures "
|
||||||
"below the model to prevent the model from sagging or printing in mid air."
|
"below the model to prevent the model from sagging or printing in mid air."
|
||||||
msgstr ""
|
msgstr "Enable printing support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."
|
||||||
"Enable printing support structures. This will build up supporting structures "
|
|
||||||
"below the model to prevent the model from sagging or printing in mid air."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:14
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:14
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:492
|
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:492
|
||||||
@ -920,15 +901,13 @@ msgstr "Polish"
|
|||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to restart the application for language changes to have effect."
|
"You will need to restart the application for language changes to have effect."
|
||||||
msgstr ""
|
msgstr "You will need to restart the application for language changes to have effect."
|
||||||
"You will need to restart the application for language changes to have effect."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Should objects on the platform be moved so that they no longer intersect."
|
"Should objects on the platform be moved so that they no longer intersect."
|
||||||
msgstr ""
|
msgstr "Should objects on the platform be moved so that they no longer intersect."
|
||||||
"Should objects on the platform be moved so that they no longer intersect."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -939,8 +918,7 @@ msgstr "Ensure objects are kept apart"
|
|||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Should opened files be scaled to the build volume if they are too large?"
|
"Should opened files be scaled to the build volume if they are too large?"
|
||||||
msgstr ""
|
msgstr "Should opened files be scaled to the build volume if they are too large?"
|
||||||
"Should opened files be scaled to the build volume if they are too large?"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -953,10 +931,7 @@ msgid ""
|
|||||||
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
||||||
"models, IP addresses or other personally identifiable information is sent or "
|
"models, IP addresses or other personally identifiable information is sent or "
|
||||||
"stored."
|
"stored."
|
||||||
msgstr ""
|
msgstr "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored."
|
||||||
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
|
||||||
"models, IP addresses or other personally identifiable information is sent or "
|
|
||||||
"stored."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:150
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:150
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -973,9 +948,7 @@ msgctxt "@info:tooltip"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
"Highlight unsupported areas of the model in red. Without support these areas "
|
||||||
"will nog print properly."
|
"will nog print properly."
|
||||||
msgstr ""
|
msgstr "Highlight unsupported areas of the model in red. Without support these areas will not print properly."
|
||||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
|
||||||
"will nog print properly."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:42
|
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:42
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -987,14 +960,12 @@ msgctxt "@info:tooltip"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Moves the camera so the object is in the center of the view when an object "
|
"Moves the camera so the object is in the center of the view when an object "
|
||||||
"is selected"
|
"is selected"
|
||||||
msgstr ""
|
msgstr "Moves the camera so the object is in the centre of the view when an object is selected"
|
||||||
"Moves the camera so the object is in the center of the view when an object "
|
|
||||||
"is selected"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Center camera when item is selected"
|
msgid "Center camera when item is selected"
|
||||||
msgstr "Center camera when item is selected"
|
msgstr "Centre camera when item is selected"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:72
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:72
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:275
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:275
|
||||||
@ -1007,9 +978,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"It's a good idea to do a few sanity checks on your Ultimaker. You can skip "
|
"It's a good idea to do a few sanity checks on your Ultimaker. You can skip "
|
||||||
"this step if you know your machine is functional"
|
"this step if you know your machine is functional"
|
||||||
msgstr ""
|
msgstr "It's a good idea to do a few sanity checks on your Ultimaker. You can skip this step if you know your machine is functional"
|
||||||
"It's a good idea to do a few sanity checks on your Ultimaker. You can skip "
|
|
||||||
"this step if you know your machine is functional"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:100
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:100
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1107,14 +1076,12 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
"To assist you in having better default settings for your Ultimaker. Cura "
|
||||||
"would like to know which upgrades you have in your machine:"
|
"would like to know which upgrades you have in your machine:"
|
||||||
msgstr ""
|
msgstr "To assist you in having better default settings for your Ultimaker. Cura would like to know which upgrades you have in your machine:"
|
||||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
|
||||||
"would like to know which upgrades you have in your machine:"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:57
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:57
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Extruder driver ugrades"
|
msgid "Extruder driver ugrades"
|
||||||
msgstr "Extruder driver ugrades"
|
msgstr "Extruder driver upgrades"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:63
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:63
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -1133,11 +1100,7 @@ msgid ""
|
|||||||
"drive upgrade. If you do not have this upgrade, it is highly recommended to "
|
"drive upgrade. If you do not have this upgrade, it is highly recommended to "
|
||||||
"improve reliability. This upgrade can be bought from the Ultimaker webshop "
|
"improve reliability. This upgrade can be bought from the Ultimaker webshop "
|
||||||
"or found on thingiverse as thing:26094"
|
"or found on thingiverse as thing:26094"
|
||||||
msgstr ""
|
msgstr "If you bought your Ultimaker after October 2012 you will have the Extruder drive upgrade. If you do not have this upgrade, it is highly recommended to improve reliability. This upgrade can be bought from the Ultimaker web shop or found on Thingiverse as thing:26094"
|
||||||
"If you bought your Ultimaker after october 2012 you will have the Extruder "
|
|
||||||
"drive upgrade. If you do not have this upgrade, it is highly recommended to "
|
|
||||||
"improve reliability. This upgrade can be bought from the Ultimaker webshop "
|
|
||||||
"or found on thingiverse as thing:26094"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1149,9 +1112,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"This printer name has already been used. Please choose a different printer "
|
"This printer name has already been used. Please choose a different printer "
|
||||||
"name."
|
"name."
|
||||||
msgstr ""
|
msgstr "This printer name has already been used. Please choose a different printer name."
|
||||||
"This printer name has already been used. Please choose a different printer "
|
|
||||||
"name."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:245
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:245
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
@ -1180,10 +1141,7 @@ msgid ""
|
|||||||
"To make sure your prints will come out great, you can now adjust your "
|
"To make sure your prints will come out great, you can now adjust your "
|
||||||
"buildplate. When you click 'Move to Next Position' the nozzle will move to "
|
"buildplate. When you click 'Move to Next Position' the nozzle will move to "
|
||||||
"the different positions that can be adjusted."
|
"the different positions that can be adjusted."
|
||||||
msgstr ""
|
msgstr "You can now adjust the build plate to make sure your prints come out great. When you click 'Move to Next Position’, the nozzle will move to the different positions that can be adjusted."
|
||||||
"To make sure your prints will come out great, you can now adjust your "
|
|
||||||
"buildplate. When you click 'Move to Next Position' the nozzle will move to "
|
|
||||||
"the different positions that can be adjusted."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:62
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:62
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1191,10 +1149,7 @@ msgid ""
|
|||||||
"For every postition; insert a piece of paper under the nozzle and adjust the "
|
"For every postition; insert a piece of paper under the nozzle and adjust the "
|
||||||
"print bed height. The print bed height is right when the paper is slightly "
|
"print bed height. The print bed height is right when the paper is slightly "
|
||||||
"gripped by the tip of the nozzle."
|
"gripped by the tip of the nozzle."
|
||||||
msgstr ""
|
msgstr "For every position; insert a piece of paper under the nozzle and adjust the print bed height. The print bed height is correct when the paper is gripped slightly by the tip of the nozzle."
|
||||||
"For every postition; insert a piece of paper under the nozzle and adjust the "
|
|
||||||
"print bed height. The print bed height is right when the paper is slightly "
|
|
||||||
"gripped by the tip of the nozzle."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1204,12 +1159,12 @@ msgstr "Move to Next Position"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:109
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:109
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Skip Bedleveling"
|
msgid "Skip Bedleveling"
|
||||||
msgstr "Skip Bedleveling"
|
msgstr "Skip Bed Levelling"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Everything is in order! You're done with bedleveling."
|
msgid "Everything is in order! You're done with bedleveling."
|
||||||
msgstr "Everything is in order! You're done with bedleveling."
|
msgstr "Everything is ready! You're done with bed levelling."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:33
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:33
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1217,28 +1172,21 @@ msgid ""
|
|||||||
"Firmware is the piece of software running directly on your 3D printer. This "
|
"Firmware is the piece of software running directly on your 3D printer. This "
|
||||||
"firmware controls the step motors, regulates the temperature and ultimately "
|
"firmware controls the step motors, regulates the temperature and ultimately "
|
||||||
"makes your printer work."
|
"makes your printer work."
|
||||||
msgstr ""
|
msgstr "Firmware is the piece of software running directly on your 3D printer. This firmware controls the step motors, regulates the temperature and ultimately makes your printer work."
|
||||||
"Firmware is the piece of software running directly on your 3D printer. This "
|
|
||||||
"firmware controls the step motors, regulates the temperature and ultimately "
|
|
||||||
"makes your printer work."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
||||||
"to make better prints, and make calibration easier."
|
"to make better prints, and make calibration easier."
|
||||||
msgstr ""
|
msgstr "The firmware shipping with new Ultimakers works, but upgrades have been made to make better prints, and make calibration easier."
|
||||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
|
||||||
"to make better prints, and make calibration easier."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:53
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:53
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura requires these new features and thus your firmware will most likely "
|
"Cura requires these new features and thus your firmware will most likely "
|
||||||
"need to be upgraded. You can do so now."
|
"need to be upgraded. You can do so now."
|
||||||
msgstr ""
|
msgstr "Cura requires these new features and thus your firmware will most likely need to be upgraded. You can do this now."
|
||||||
"Cura requires these new features and thus your firmware will most likely "
|
|
||||||
"need to be upgraded. You can do so now."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1253,7 +1201,7 @@ msgstr "Skip Upgrade"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
||||||
msgctxt "@label:PrintjobStatus"
|
msgctxt "@label:PrintjobStatus"
|
||||||
msgid "Please load a 3d model"
|
msgid "Please load a 3d model"
|
||||||
msgstr "Please load a 3d model"
|
msgstr "Please load a 3D model"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:25
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:25
|
||||||
msgctxt "@label:PrintjobStatus"
|
msgctxt "@label:PrintjobStatus"
|
||||||
@ -1289,8 +1237,7 @@ msgstr "End-to-end solution for fused filament 3D printing."
|
|||||||
msgctxt "@info:credit"
|
msgctxt "@info:credit"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||||
msgstr ""
|
msgstr "Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:16
|
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:16
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
|
File diff suppressed because it is too large
Load Diff
1320
resources/i18n/es/cura.po
Normal file
1320
resources/i18n/es/cura.po
Normal file
File diff suppressed because it is too large
Load Diff
2485
resources/i18n/es/fdmprinter.json.po
Normal file
2485
resources/i18n/es/fdmprinter.json.po
Normal file
File diff suppressed because it is too large
Load Diff
256
resources/i18n/fi/cura.po
Executable file → Normal file
256
resources/i18n/fi/cura.po
Executable file → Normal file
@ -9,7 +9,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: Cura 2.1\n"
|
"Project-Id-Version: Cura 2.1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2016-01-18 11:54+0100\n"
|
"POT-Creation-Date: 2016-01-18 11:54+0100\n"
|
||||||
"PO-Revision-Date: 2015-09-28 14:08+0300\n"
|
"PO-Revision-Date: 2016-01-26 13:21+0100\n"
|
||||||
"Last-Translator: Tapio <info@tapimex.fi>\n"
|
"Last-Translator: Tapio <info@tapimex.fi>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: fi_FI\n"
|
"Language: fi_FI\n"
|
||||||
@ -30,10 +30,7 @@ msgid ""
|
|||||||
"<p>An uncaught exception has occurred!</p><p>Please use the information "
|
"<p>An uncaught exception has occurred!</p><p>Please use the information "
|
||||||
"below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/"
|
"below to post a bug report at <a href=\"http://github.com/Ultimaker/Cura/"
|
||||||
"issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
"issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
||||||
msgstr ""
|
msgstr "<p>Tapahtui epätavallinen poikkeus!</p><p>Lähetä virheraportti alla olevin tiedoin osoitteella <a href=\"http://github.com/Ultimaker/Cura/issues\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
||||||
"<p>Tapahtui epätavallinen poikkeus!</p><p>Lähetä virheraportti alla olevin "
|
|
||||||
"tiedoin osoitteella <a href=\"http://github.com/Ultimaker/Cura/issues"
|
|
||||||
"\">http://github.com/Ultimaker/Cura/issues</a></p>"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -56,25 +53,25 @@ msgstr "Ladataan käyttöliittymää..."
|
|||||||
#, python-format
|
#, python-format
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "%(width).1f x %(depth).1f x %(height).1f mm"
|
msgid "%(width).1f x %(depth).1f x %(height).1f mm"
|
||||||
msgstr ""
|
msgstr "%(width).1f x %(depth).1f x %(height).1f mm"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Cura Profile Reader"
|
msgid "Cura Profile Reader"
|
||||||
msgstr ""
|
msgstr "Cura-profiilin lukija"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides support for importing Cura profiles."
|
msgid "Provides support for importing Cura profiles."
|
||||||
msgstr "Tukee 3MF-tiedostojen lukemista."
|
msgstr "Tukee Cura-profiilien tuontia."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:21
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:21
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:21
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:21
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "Cura Profile"
|
msgid "Cura Profile"
|
||||||
msgstr "&Profiili"
|
msgstr "Cura-profiili"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:12
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -91,12 +88,12 @@ msgstr "Näyttää kerrosnäkymän."
|
|||||||
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:19
|
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:19
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "X-Ray"
|
msgid "X-Ray"
|
||||||
msgstr ""
|
msgstr "Kerros"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "3MF Reader"
|
msgid "3MF Reader"
|
||||||
msgstr "3MF Reader"
|
msgstr "3MF-lukija"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:15
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
@ -168,7 +165,7 @@ msgstr "{0} poisto epäonnistui. Onko se vielä käytössä?"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Removable Drive Output Device Plugin"
|
msgid "Removable Drive Output Device Plugin"
|
||||||
msgstr "Irrotettavan aseman lisäosa"
|
msgstr "Irrotettavan aseman tulostusvälineen lisäosa"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:14
|
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:14
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
@ -179,7 +176,7 @@ msgstr "Tukee irrotettavan aseman kytkemistä lennossa ja sille kirjoittamista"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@item:inmenu"
|
msgctxt "@item:inmenu"
|
||||||
msgid "Show Changelog"
|
msgid "Show Changelog"
|
||||||
msgstr "Muutosloki"
|
msgstr "Näytä muutosloki"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ChangeLogPlugin/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/ChangeLogPlugin/__init__.py:12
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -195,7 +192,7 @@ msgstr "Näyttää viimeisimmän tarkistetun version jälkeen tapahtuneet muutok
|
|||||||
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:124
|
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:124
|
||||||
msgctxt "@info:status"
|
msgctxt "@info:status"
|
||||||
msgid "Unable to slice. Please check your setting values for errors."
|
msgid "Unable to slice. Please check your setting values for errors."
|
||||||
msgstr ""
|
msgstr "Viipalointi ei onnistu. Tarkista, että asetusarvoissa ei ole virheitä."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py:30
|
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py:30
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py:120
|
#: /home/tamara/2.1/Cura/plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py:120
|
||||||
@ -217,7 +214,7 @@ msgstr "Linkki CuraEngine-viipalointiin taustalla"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "GCode Writer"
|
msgid "GCode Writer"
|
||||||
msgstr "GCode Writer"
|
msgstr "GCode-kirjoitin"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:15
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
@ -244,7 +241,7 @@ msgstr "Päivitä laiteohjelmisto"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid "Cannot update firmware, there were no connected printers found."
|
msgid "Cannot update firmware, there were no connected printers found."
|
||||||
msgstr ""
|
msgstr "Laiteohjelmistoa ei voida päivittää, koska liitettyjä tulostimia ei löytynyt."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:35
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:35
|
||||||
msgctxt "@item:inmenu"
|
msgctxt "@item:inmenu"
|
||||||
@ -254,7 +251,7 @@ msgstr "USB-tulostus"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:36
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:36
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Print with USB"
|
msgid "Print with USB"
|
||||||
msgstr "Tulosta USB:llä"
|
msgstr "Tulostus USB:n kautta"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:37
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:37
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -270,17 +267,13 @@ msgstr "USB-tulostus"
|
|||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||||
msgstr ""
|
msgstr "Hyväksyy GCode-määrittelyt ja lähettää ne tulostimeen. Lisäosa voi myös päivittää laiteohjelmiston."
|
||||||
"Hyväksyy G-Code-määrittelyt ja lähettää ne tulostimeen. Lisäosa voi myös "
|
|
||||||
"päivittää laiteohjelmiston."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:35
|
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:35
|
||||||
msgctxt "@info"
|
msgctxt "@info"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura automatically sends slice info. You can disable this in preferences"
|
"Cura automatically sends slice info. You can disable this in preferences"
|
||||||
msgstr ""
|
msgstr "Cura lähettää automaattisesti viipalointitietoa. Voit lisäasetuksista kytkeä sen pois käytöstä"
|
||||||
"Cura lähettää automaattisesti viipalointitietoa. Voit lisäasetuksista kytkeä "
|
|
||||||
"sen pois käytöstä"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -295,69 +288,67 @@ msgstr "Viipalointitiedot"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/__init__.py:13
|
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/__init__.py:13
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Submits anonymous slice info. Can be disabled through preferences."
|
msgid "Submits anonymous slice info. Can be disabled through preferences."
|
||||||
msgstr ""
|
msgstr "Lähettää anonyymiä viipalointitietoa. Voidaan lisäasetuksista kytkeä pois käytöstä."
|
||||||
"Lähettää anonyymiä viipalointitietoa. Voidaan lisäasetuksista kytkeä pois "
|
|
||||||
"käytöstä."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:12
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Cura Profile Writer"
|
msgid "Cura Profile Writer"
|
||||||
msgstr "GCode Writer"
|
msgstr "Cura-profiilin kirjoitin"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides support for exporting Cura profiles."
|
msgid "Provides support for exporting Cura profiles."
|
||||||
msgstr "Tukee 3MF-tiedostojen lukemista."
|
msgstr "Tukee Cura-profiilien vientiä."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:12
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Image Reader"
|
msgid "Image Reader"
|
||||||
msgstr "3MF Reader"
|
msgstr "Kuvanlukija"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:15
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Enables ability to generate printable geometry from 2D image files."
|
msgid "Enables ability to generate printable geometry from 2D image files."
|
||||||
msgstr ""
|
msgstr "Mahdollistaa tulostettavien geometrioiden luomisen 2D-kuvatiedostoista."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:21
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:21
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "JPG Image"
|
msgid "JPG Image"
|
||||||
msgstr ""
|
msgstr "JPG-kuva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:25
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:25
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "JPEG Image"
|
msgid "JPEG Image"
|
||||||
msgstr ""
|
msgstr "JPEG-kuva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:29
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:29
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "PNG Image"
|
msgid "PNG Image"
|
||||||
msgstr ""
|
msgstr "PNG-kuva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:33
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:33
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "BMP Image"
|
msgid "BMP Image"
|
||||||
msgstr ""
|
msgstr "BMP-kuva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:37
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:37
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "GIF Image"
|
msgid "GIF Image"
|
||||||
msgstr ""
|
msgstr "GIF-kuva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:12
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "GCode Profile Reader"
|
msgid "GCode Profile Reader"
|
||||||
msgstr "GCode Writer"
|
msgstr "GCode-profiilin lukija"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides support for importing profiles from g-code files."
|
msgid "Provides support for importing profiles from g-code files."
|
||||||
msgstr "Tukee 3MF-tiedostojen lukemista."
|
msgstr "Tukee profiilien tuontia GCode-tiedostoista."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:21
|
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:21
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -369,13 +360,13 @@ msgstr "GCode-tiedosto"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Solid View"
|
msgid "Solid View"
|
||||||
msgstr "Kiinteä"
|
msgstr "Kiinteä näkymä"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SolidView/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/SolidView/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides a normal solid mesh view."
|
msgid "Provides a normal solid mesh view."
|
||||||
msgstr "Näyttää kerrosnäkymän."
|
msgstr "Näyttää normaalin kiinteän verkkonäkymän."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/SolidView/__init__.py:19
|
#: /home/tamara/2.1/Cura/plugins/SolidView/__init__.py:19
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -401,50 +392,50 @@ msgstr "Kerrokset"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Auto Save"
|
msgid "Auto Save"
|
||||||
msgstr ""
|
msgstr "Automaattitallennus"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:15
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Automatically saves Preferences, Machines and Profiles after changes."
|
msgid "Automatically saves Preferences, Machines and Profiles after changes."
|
||||||
msgstr ""
|
msgstr "Tallentaa automaattisesti lisäasetukset, koneet ja profiilit muutosten jälkeen."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Per Object Settings Tool"
|
msgid "Per Object Settings Tool"
|
||||||
msgstr ""
|
msgstr "Kappalekohtaisten asetusten työkalu"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides the Per Object Settings."
|
msgid "Provides the Per Object Settings."
|
||||||
msgstr "Näyttää kerrosnäkymän."
|
msgstr "Näyttää kappalekohtaiset asetukset."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:19
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:19
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Per Object Settings"
|
msgid "Per Object Settings"
|
||||||
msgstr "&Yhdistä kappaleet"
|
msgstr "Kappalekohtaiset asetukset"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:20
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:20
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Configure Per Object Settings"
|
msgid "Configure Per Object Settings"
|
||||||
msgstr ""
|
msgstr "Määritä kappalekohtaiset asetukset"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:12
|
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:12
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Legacy Cura Profile Reader"
|
msgid "Legacy Cura Profile Reader"
|
||||||
msgstr ""
|
msgstr "Aikaisempien Cura-profiilien lukija"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:15
|
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@info:whatsthis"
|
msgctxt "@info:whatsthis"
|
||||||
msgid "Provides support for importing profiles from legacy Cura versions."
|
msgid "Provides support for importing profiles from legacy Cura versions."
|
||||||
msgstr "Tukee 3MF-tiedostojen lukemista."
|
msgstr "Tukee profiilien tuontia aikaisemmista Cura-versioista."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:21
|
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:21
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "Cura 15.04 profiles"
|
msgid "Cura 15.04 profiles"
|
||||||
msgstr ""
|
msgstr "Cura 15.04 -profiilit"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:20
|
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:20
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
@ -512,47 +503,47 @@ msgstr "Peruuta"
|
|||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:24
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:24
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Convert Image..."
|
msgid "Convert Image..."
|
||||||
msgstr ""
|
msgstr "Muunna kuva..."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:38
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:38
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The maximum distance of each pixel from \"Base.\""
|
msgid "The maximum distance of each pixel from \"Base.\""
|
||||||
msgstr ""
|
msgstr "Kunkin pikselin suurin etäisyys \"Pohja\"-arvosta."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:44
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:44
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
msgid "Height (mm)"
|
msgid "Height (mm)"
|
||||||
msgstr ""
|
msgstr "Korkeus (mm)"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The base height from the build plate in millimeters."
|
msgid "The base height from the build plate in millimeters."
|
||||||
msgstr ""
|
msgstr "Pohjan korkeus alustasta millimetreinä."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:68
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:68
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
msgid "Base (mm)"
|
msgid "Base (mm)"
|
||||||
msgstr ""
|
msgstr "Pohja (mm)"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The width in millimeters on the build plate."
|
msgid "The width in millimeters on the build plate."
|
||||||
msgstr ""
|
msgstr "Leveys millimetreinä alustalla."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:92
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:92
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
msgid "Width (mm)"
|
msgid "Width (mm)"
|
||||||
msgstr ""
|
msgstr "Leveys (mm)"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The depth in millimeters on the build plate"
|
msgid "The depth in millimeters on the build plate"
|
||||||
msgstr ""
|
msgstr "Syvyys millimetreinä alustalla"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:117
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:117
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
msgid "Depth (mm)"
|
msgid "Depth (mm)"
|
||||||
msgstr ""
|
msgstr "Syvyys (mm)"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:135
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:135
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -561,70 +552,70 @@ msgid ""
|
|||||||
"represent low points on the mesh. Change this option to reverse the behavior "
|
"represent low points on the mesh. Change this option to reverse the behavior "
|
||||||
"such that black pixels represent high points on the mesh and white pixels "
|
"such that black pixels represent high points on the mesh and white pixels "
|
||||||
"represent low points on the mesh."
|
"represent low points on the mesh."
|
||||||
msgstr ""
|
msgstr "Oletuksena valkoiset pikselit edustavat verkossa korkeita pisteitä ja mustat pikselit edustavat verkossa matalia pisteitä. Muuta asetus, jos haluat, että mustat pikselit edustavat verkossa korkeita pisteitä ja valkoiset pikselit edustavat verkossa matalia pisteitä."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "Lighter is higher"
|
msgid "Lighter is higher"
|
||||||
msgstr ""
|
msgstr "Vaaleampi on korkeampi"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
msgid "Darker is higher"
|
msgid "Darker is higher"
|
||||||
msgstr ""
|
msgstr "Tummempi on korkeampi"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:159
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:159
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "The amount of smoothing to apply to the image."
|
msgid "The amount of smoothing to apply to the image."
|
||||||
msgstr ""
|
msgstr "Kuvassa käytettävän tasoituksen määrä."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:165
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:165
|
||||||
msgctxt "@action:label"
|
msgctxt "@action:label"
|
||||||
msgid "Smoothing"
|
msgid "Smoothing"
|
||||||
msgstr ""
|
msgstr "Tasoitus"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:193
|
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:193
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr ""
|
msgstr "OK"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:31
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:31
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
||||||
"to 'All at Once'."
|
"to 'All at Once'."
|
||||||
msgstr ""
|
msgstr "Kappalekohtaiset asetukset voivat toimia odottamattomalla tavalla, jos \"Tulostusjärjestys\"-asetus on \"Kaikki kerralla\"."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:42
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:42
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Object profile"
|
msgid "Object profile"
|
||||||
msgstr ""
|
msgstr "Kappaleprofiili"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:126
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:126
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Add Setting"
|
msgid "Add Setting"
|
||||||
msgstr "&Asetukset"
|
msgstr "Lisää asetus"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Pick a Setting to Customize"
|
msgid "Pick a Setting to Customize"
|
||||||
msgstr ""
|
msgstr "Valitse mukautettava asetus"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:177
|
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:177
|
||||||
msgctxt "@label:textbox"
|
msgctxt "@label:textbox"
|
||||||
msgid "Filter..."
|
msgid "Filter..."
|
||||||
msgstr ""
|
msgstr "Suodatin..."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:198
|
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:198
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "00h 00min"
|
msgid "00h 00min"
|
||||||
msgstr ""
|
msgstr "00 h 00 min"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "0.0 m"
|
msgid "0.0 m"
|
||||||
msgstr ""
|
msgstr "0,0 m"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -636,29 +627,29 @@ msgstr "%1 m"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label:listbox"
|
msgctxt "@label:listbox"
|
||||||
msgid "Print Job"
|
msgid "Print Job"
|
||||||
msgstr "Tulosta"
|
msgstr "Tulostustyö"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:50
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:50
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label:listbox"
|
msgctxt "@label:listbox"
|
||||||
msgid "Printer:"
|
msgid "Printer:"
|
||||||
msgstr "Tulosta"
|
msgstr "Tulostin:"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:107
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:107
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Nozzle:"
|
msgid "Nozzle:"
|
||||||
msgstr ""
|
msgstr "Suutin:"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:89
|
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:89
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label:listbox"
|
msgctxt "@label:listbox"
|
||||||
msgid "Setup"
|
msgid "Setup"
|
||||||
msgstr "Tulostusasetukset"
|
msgstr "Asetukset"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:215
|
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:215
|
||||||
msgctxt "@title:tab"
|
msgctxt "@title:tab"
|
||||||
msgid "Simple"
|
msgid "Simple"
|
||||||
msgstr "Suppea"
|
msgstr "Yksinkertainen"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:216
|
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:216
|
||||||
msgctxt "@title:tab"
|
msgctxt "@title:tab"
|
||||||
@ -682,7 +673,7 @@ msgstr "Lisää tulostin"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
msgid "Load profile"
|
msgid "Load profile"
|
||||||
msgstr "&Profiili"
|
msgstr "Lataa profiili"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:24
|
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:24
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -690,29 +681,29 @@ msgid ""
|
|||||||
"Selecting this profile overwrites some of your customised settings. Do you "
|
"Selecting this profile overwrites some of your customised settings. Do you "
|
||||||
"want to merge the new settings into your current profile or do you want to "
|
"want to merge the new settings into your current profile or do you want to "
|
||||||
"load a clean copy of the profile?"
|
"load a clean copy of the profile?"
|
||||||
msgstr ""
|
msgstr "Tämän profiilin valitseminen korvaa jotkin mukautetut asetukset. Haluatko yhdistää uudet asetukset osaksi nykyistä profiilia vai haluatko ladata puhtaan kopion profiilista?"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:38
|
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:38
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Show details."
|
msgid "Show details."
|
||||||
msgstr ""
|
msgstr "Näytä tiedot."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:50
|
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:50
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Merge settings"
|
msgid "Merge settings"
|
||||||
msgstr "&Yhdistä kappaleet"
|
msgstr "Yhdistä asetukset"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:54
|
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
msgid "Reset profile"
|
msgid "Reset profile"
|
||||||
msgstr ""
|
msgstr "Nollaa profiili"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/ProfileSetup.qml:28
|
#: /home/tamara/2.1/Cura/resources/qml/ProfileSetup.qml:28
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Profile:"
|
msgid "Profile:"
|
||||||
msgstr "&Profiili"
|
msgstr "Profiili:"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/EngineLog.qml:15
|
#: /home/tamara/2.1/Cura/resources/qml/EngineLog.qml:15
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -868,24 +859,24 @@ msgstr "Täyttö:"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:237
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:237
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Hollow"
|
msgid "Hollow"
|
||||||
msgstr ""
|
msgstr "Ontto"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "No (0%) infill will leave your model hollow at the cost of low strength"
|
msgid "No (0%) infill will leave your model hollow at the cost of low strength"
|
||||||
msgstr "Harva (20 %) täyttö antaa mallille keskimääräistä lujuutta"
|
msgstr "Ei (0 %) täyttöä jättää mallin ontoksi ja lujuudeltaan alhaiseksi"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:243
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:243
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr ""
|
msgstr "Harva"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:245
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:245
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Light (20%) infill will give your model an average strength"
|
msgid "Light (20%) infill will give your model an average strength"
|
||||||
msgstr "Harva (20 %) täyttö antaa mallille keskimääräistä lujuutta"
|
msgstr "Harva (20 %) täyttö antaa mallille keskimääräisen lujuuden"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:249
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:249
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -915,26 +906,26 @@ msgstr "Avustimet:"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:296
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:296
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Generate Brim"
|
msgid "Generate Brim"
|
||||||
msgstr ""
|
msgstr "Muodosta reunus"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:312
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:312
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
||||||
"your object which is easy to cut off afterwards."
|
"your object which is easy to cut off afterwards."
|
||||||
msgstr ""
|
msgstr "Ota reunuksen tulostus käyttöön. Tämä lisää kappaleen ympärille yksikerroksisen tasaisen alueen, joka on helppo leikata pois myöhemmin."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:330
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:330
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Generate Support Structure"
|
msgid "Generate Support Structure"
|
||||||
msgstr ""
|
msgstr "Muodosta tukirakenne"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:346
|
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:346
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enable printing support structures. This will build up supporting structures "
|
"Enable printing support structures. This will build up supporting structures "
|
||||||
"below the model to prevent the model from sagging or printing in mid air."
|
"below the model to prevent the model from sagging or printing in mid air."
|
||||||
msgstr ""
|
msgstr "Ottaa tukirakenteiden tulostuksen käyttöön. Siinä mallin alle rakennetaan tukirakenteita estämään mallin riippuminen tai suoraan ilmaan tulostaminen."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:14
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:14
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:492
|
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:492
|
||||||
@ -946,7 +937,7 @@ msgstr "Yleiset"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Language:"
|
msgid "Language:"
|
||||||
msgstr "Kieli"
|
msgstr "Kieli:"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:64
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:64
|
||||||
msgctxt "@item:inlistbox"
|
msgctxt "@item:inlistbox"
|
||||||
@ -977,16 +968,13 @@ msgstr "puola"
|
|||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"You will need to restart the application for language changes to have effect."
|
"You will need to restart the application for language changes to have effect."
|
||||||
msgstr ""
|
msgstr "Sovellus on käynnistettävä uudelleen, jotta kielimuutokset tulevat voimaan."
|
||||||
"Sovellus on käynnistettävä uudelleen, jotta kielimuutokset tulevat voimaan."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Should objects on the platform be moved so that they no longer intersect."
|
"Should objects on the platform be moved so that they no longer intersect."
|
||||||
msgstr ""
|
msgstr "Pitäisikö kappaleita alustalla siirtää niin, etteivät ne enää leikkaa toisiaan?"
|
||||||
"Pitäisikö kappaleita alustalla siirtää niin, etteivät ne enää leikkaa "
|
|
||||||
"toisiaan?"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -998,15 +986,13 @@ msgstr "Pidä kappaleet erillään"
|
|||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Should opened files be scaled to the build volume if they are too large?"
|
"Should opened files be scaled to the build volume if they are too large?"
|
||||||
msgstr ""
|
msgstr "Pitäisikö avoimia tiedostoja skaalata rakennustilavuuteen, jos ne ovat liian isoja?"
|
||||||
"Pitäisikö avoimia tiedostoja skaalata rakennustilavuuteen, jos ne ovat liian "
|
|
||||||
"isoja?"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Scale large files"
|
msgid "Scale large files"
|
||||||
msgstr "Skaalaa liian isot tiedostot"
|
msgstr "Skaalaa isot tiedostot"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:145
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:145
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
@ -1014,10 +1000,7 @@ msgid ""
|
|||||||
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
||||||
"models, IP addresses or other personally identifiable information is sent or "
|
"models, IP addresses or other personally identifiable information is sent or "
|
||||||
"stored."
|
"stored."
|
||||||
msgstr ""
|
msgstr "Pitäisikö anonyymejä tietoja tulosteesta lähettää Ultimakerille? Huomaa, että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä eikä tallenneta."
|
||||||
"Pitäisikö anonyymejä tietoja tulosteesta lähettää Ultimakerille? Huomaa, "
|
|
||||||
"että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä "
|
|
||||||
"eikä tallenneta."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:150
|
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:150
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1036,9 +1019,7 @@ msgctxt "@info:tooltip"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
"Highlight unsupported areas of the model in red. Without support these areas "
|
||||||
"will nog print properly."
|
"will nog print properly."
|
||||||
msgstr ""
|
msgstr "Korostaa mallin vailla tukea olevat alueet punaisella. Ilman tukea nämä alueet eivät tulostu kunnolla."
|
||||||
"Korostaa mallin vailla tukea olevat alueet punaisella. Ilman tukea nämä "
|
|
||||||
"alueet eivät tulostu kunnolla."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:42
|
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:42
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1051,9 +1032,7 @@ msgctxt "@info:tooltip"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Moves the camera so the object is in the center of the view when an object "
|
"Moves the camera so the object is in the center of the view when an object "
|
||||||
"is selected"
|
"is selected"
|
||||||
msgstr ""
|
msgstr "Siirtää kameraa siten, että kappale on näkymän keskellä, kun kappale on valittu"
|
||||||
"Siirtää kameraa siten, että kappale on näkymän keskellä, kun kappale on "
|
|
||||||
"valittu"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1071,9 +1050,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"It's a good idea to do a few sanity checks on your Ultimaker. You can skip "
|
"It's a good idea to do a few sanity checks on your Ultimaker. You can skip "
|
||||||
"this step if you know your machine is functional"
|
"this step if you know your machine is functional"
|
||||||
msgstr ""
|
msgstr "Ultimakerille on hyvä tehdä muutamia toimintatarkastuksia. Voit jättää tämän vaiheen väliin, jos tiedät laitteesi olevan toimintakunnossa"
|
||||||
"Ultimakerille on hyvä tehdä muutamia toimintatarkastuksia. Voit jättää tämän "
|
|
||||||
"vaiheen väliin, jos tiedät laitteesi olevan toimintakunnossa"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:100
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:100
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1158,7 +1135,7 @@ msgstr "Pöydän lämpötilan tarkistus:"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:324
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:324
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Everything is in order! You're done with your CheckUp."
|
msgid "Everything is in order! You're done with your CheckUp."
|
||||||
msgstr ""
|
msgstr "Kaikki on kunnossa! CheckUp on valmis."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:31
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:31
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:269
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:269
|
||||||
@ -1171,9 +1148,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
"To assist you in having better default settings for your Ultimaker. Cura "
|
||||||
"would like to know which upgrades you have in your machine:"
|
"would like to know which upgrades you have in your machine:"
|
||||||
msgstr ""
|
msgstr "Saat paremmat oletusasetukset Ultimakeriin. Cura haluaisi tietää, mitä päivityksiä laitteessasi on:"
|
||||||
"Saat paremmat oletusasetukset Ultimakeriin. Cura haluaisi tietää, mitä "
|
|
||||||
"päivityksiä laitteessasi on:"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:57
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:57
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -1184,7 +1159,7 @@ msgstr "Suulakekäytön päivitykset"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
msgid "Heated printer bed"
|
msgid "Heated printer bed"
|
||||||
msgstr "Lämmitetty tulostinpöytä (itse rakennettu)"
|
msgstr "Lämmitetty tulostinpöytä"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:74
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:74
|
||||||
msgctxt "@option:check"
|
msgctxt "@option:check"
|
||||||
@ -1198,12 +1173,7 @@ msgid ""
|
|||||||
"drive upgrade. If you do not have this upgrade, it is highly recommended to "
|
"drive upgrade. If you do not have this upgrade, it is highly recommended to "
|
||||||
"improve reliability. This upgrade can be bought from the Ultimaker webshop "
|
"improve reliability. This upgrade can be bought from the Ultimaker webshop "
|
||||||
"or found on thingiverse as thing:26094"
|
"or found on thingiverse as thing:26094"
|
||||||
msgstr ""
|
msgstr "Jos olet hankkinut Ultimakerin lokakuun 2012 jälkeen, sinulla on suulakekäytön päivityspaketti (Extruder drive). Ellei sinulla ole tätä päivitystä, sitä suositellaan luotettavuuden parantamiseksi. Tämä päivityspaketti voidaan ostaa Ultimakerin verkkokaupasta, ja se löytyy thingiverse-sivustolta numerolla 26094"
|
||||||
"Jos olet hankkinut Ultimakerin lokakuun 2012 jälkeen, sinulla on "
|
|
||||||
"suulakekäytön päivityspaketti (Extruder drive). Ellei sinulla ole tätä "
|
|
||||||
"päivitystä, sitä suositellaan kovasti luotettavuuden parantamiseksi. Tämä "
|
|
||||||
"päivityspaketti voidaan ostaa Ultimakerin verkkokaupasta tai se löytyy "
|
|
||||||
"thingiverse-sivustolta numerolla: 26094"
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1216,7 +1186,7 @@ msgctxt "@label"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"This printer name has already been used. Please choose a different printer "
|
"This printer name has already been used. Please choose a different printer "
|
||||||
"name."
|
"name."
|
||||||
msgstr ""
|
msgstr "Tämä tulostimen nimi on jo käytössä. Valitse toinen tulostimen nimi."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:245
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:245
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1246,9 +1216,7 @@ msgid ""
|
|||||||
"To make sure your prints will come out great, you can now adjust your "
|
"To make sure your prints will come out great, you can now adjust your "
|
||||||
"buildplate. When you click 'Move to Next Position' the nozzle will move to "
|
"buildplate. When you click 'Move to Next Position' the nozzle will move to "
|
||||||
"the different positions that can be adjusted."
|
"the different positions that can be adjusted."
|
||||||
msgstr ""
|
msgstr "Voit säätää alustaa, jotta tulosteista tulisi hyviä. Kun napsautat \"Siirry seuraavaan positioon\", suutin siirtyy eri positioihin, joita voidaan säätää."
|
||||||
"Voit säätää alustaa, jotta tulosteista tulisi hyviä. Kun napsautat 'Siirry "
|
|
||||||
"seuraavaan positioon', suutin siirtyy eri positioihin, joita voidaan säätää."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:62
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:62
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1256,10 +1224,7 @@ msgid ""
|
|||||||
"For every postition; insert a piece of paper under the nozzle and adjust the "
|
"For every postition; insert a piece of paper under the nozzle and adjust the "
|
||||||
"print bed height. The print bed height is right when the paper is slightly "
|
"print bed height. The print bed height is right when the paper is slightly "
|
||||||
"gripped by the tip of the nozzle."
|
"gripped by the tip of the nozzle."
|
||||||
msgstr ""
|
msgstr "Laita paperinpala kussakin positiossa suuttimen alle ja säädä tulostuspöydän korkeus. Tulostuspöydän korkeus on oikea, kun suuttimen kärki juuri ja juuri osuu paperiin."
|
||||||
"Laita paperinpala kussakin positiossa suuttimen alle ja säädä tulostuspöydän "
|
|
||||||
"korkeus. Tulostuspöydän korkeus on oikea, kun suuttimen kärki juuri ja juuri "
|
|
||||||
"osuu paperiin."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1274,7 +1239,7 @@ msgstr "Ohita pöydän tasaus"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid "Everything is in order! You're done with bedleveling."
|
msgid "Everything is in order! You're done with bedleveling."
|
||||||
msgstr ""
|
msgstr "Kaikki on kunnossa! Pöydän tasaus on valmis."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:33
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:33
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
@ -1282,28 +1247,21 @@ msgid ""
|
|||||||
"Firmware is the piece of software running directly on your 3D printer. This "
|
"Firmware is the piece of software running directly on your 3D printer. This "
|
||||||
"firmware controls the step motors, regulates the temperature and ultimately "
|
"firmware controls the step motors, regulates the temperature and ultimately "
|
||||||
"makes your printer work."
|
"makes your printer work."
|
||||||
msgstr ""
|
msgstr "Laiteohjelmisto on suoraan 3D-tulostimessa toimiva ohjelma. Laiteohjelmisto ohjaa askelmoottoreita, säätää lämpötilaa ja saa tulostimen toimimaan."
|
||||||
"Laiteohjelmisto on suoraan 3D-tulostimessa toimiva ohjelma. Laiteohjelmisto "
|
|
||||||
"ohjaa askelmoottoreita, säätää lämpötilaa ja loppujen lopuksi saa tulostimen "
|
|
||||||
"toimimaan."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
||||||
"to make better prints, and make calibration easier."
|
"to make better prints, and make calibration easier."
|
||||||
msgstr ""
|
msgstr "Uusien Ultimakerien mukana toimitettu laiteohjelmisto toimii, mutta päivityksillä saadaan parempia tulosteita ja kalibrointi helpottuu."
|
||||||
"Uusien Ultimakerien mukana toimitettu laiteohjelmisto toimii, mutta "
|
|
||||||
"päivityksillä saadaan parempia tulosteita ja kalibrointi helpottuu."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:53
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:53
|
||||||
msgctxt "@label"
|
msgctxt "@label"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura requires these new features and thus your firmware will most likely "
|
"Cura requires these new features and thus your firmware will most likely "
|
||||||
"need to be upgraded. You can do so now."
|
"need to be upgraded. You can do so now."
|
||||||
msgstr ""
|
msgstr "Cura tarvitsee näitä uusia ominaisuuksia, joten laiteohjelmisto on todennäköisesti päivitettävä. Voit tehdä sen nyt."
|
||||||
"Cura tarvitsee näitä uusia ominaisuuksia ja siten laiteohjelmisto on "
|
|
||||||
"todennäköisesti päivitettävä. Voit tehdä sen nyt."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
||||||
msgctxt "@action:button"
|
msgctxt "@action:button"
|
||||||
@ -1318,12 +1276,12 @@ msgstr "Ohita päivitys"
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
||||||
msgctxt "@label:PrintjobStatus"
|
msgctxt "@label:PrintjobStatus"
|
||||||
msgid "Please load a 3d model"
|
msgid "Please load a 3d model"
|
||||||
msgstr ""
|
msgstr "Ole hyvä ja lataa 3D-malli"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:25
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:25
|
||||||
msgctxt "@label:PrintjobStatus"
|
msgctxt "@label:PrintjobStatus"
|
||||||
msgid "Preparing to slice..."
|
msgid "Preparing to slice..."
|
||||||
msgstr ""
|
msgstr "Valmistellaan viipalointia..."
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:28
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:28
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1334,12 +1292,12 @@ msgstr "Viipaloidaan..."
|
|||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:30
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:30
|
||||||
msgctxt "@label:PrintjobStatus"
|
msgctxt "@label:PrintjobStatus"
|
||||||
msgid "Ready to "
|
msgid "Ready to "
|
||||||
msgstr ""
|
msgstr "Valmis "
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:122
|
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:122
|
||||||
msgctxt "@info:tooltip"
|
msgctxt "@info:tooltip"
|
||||||
msgid "Select the active output device"
|
msgid "Select the active output device"
|
||||||
msgstr "Valitse aktiivinen oheislaite"
|
msgstr "Valitse aktiivinen tulostusväline"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/AboutDialog.qml:15
|
#: /home/tamara/2.1/Cura/resources/qml/AboutDialog.qml:15
|
||||||
msgctxt "@title:window"
|
msgctxt "@title:window"
|
||||||
@ -1355,9 +1313,7 @@ msgstr "Kokonaisvaltainen sulatettavan tulostuslangan 3D-tulostusratkaisu."
|
|||||||
msgctxt "@info:credit"
|
msgctxt "@info:credit"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||||
msgstr ""
|
msgstr "Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön kanssa."
|
||||||
"Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön "
|
|
||||||
"kanssa."
|
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:16
|
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:16
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -1405,7 +1361,7 @@ msgstr "&Näytä"
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgctxt "@title:menu menubar:toplevel"
|
msgctxt "@title:menu menubar:toplevel"
|
||||||
msgid "&Printer"
|
msgid "&Printer"
|
||||||
msgstr "Tulosta"
|
msgstr "&Tulostin"
|
||||||
|
|
||||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:213
|
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:213
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
|
766
resources/i18n/fi/fdmprinter.json.po
Executable file → Normal file
766
resources/i18n/fi/fdmprinter.json.po
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1320
resources/i18n/it/cura.po
Normal file
1320
resources/i18n/it/cura.po
Normal file
File diff suppressed because it is too large
Load Diff
2485
resources/i18n/it/fdmprinter.json.po
Normal file
2485
resources/i18n/it/fdmprinter.json.po
Normal file
File diff suppressed because it is too large
Load Diff
1320
resources/i18n/nl/cura.po
Normal file
1320
resources/i18n/nl/cura.po
Normal file
File diff suppressed because it is too large
Load Diff
2485
resources/i18n/nl/fdmprinter.json.po
Normal file
2485
resources/i18n/nl/fdmprinter.json.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "RBC",
|
"author": "RBC",
|
||||||
"platform": "rigidbot_platform.stl",
|
"platform": "rigidbot_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "RBC",
|
"author": "RBC",
|
||||||
"platform": "rigidbotbig_platform.stl",
|
"platform": "rigidbotbig_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "BQ",
|
"author": "BQ",
|
||||||
"platform": "bq_hephestos_platform.stl",
|
"platform": "bq_hephestos_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "BQ",
|
"author": "BQ",
|
||||||
"platform": "bq_hephestos_2_platform.stl",
|
"platform": "bq_hephestos_2_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "BQ",
|
"author": "BQ",
|
||||||
"platform": "bq_hephestos_platform.stl",
|
"platform": "bq_hephestos_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "BQ",
|
"author": "BQ",
|
||||||
"platform": "bq_witbox_platform.stl",
|
"platform": "bq_witbox_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"author": "BQ",
|
"author": "BQ",
|
||||||
"platform": "bq_witbox_platform.stl",
|
"platform": "bq_witbox_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"version": 1,
|
"version": 1,
|
||||||
"id": "dual_extrusion",
|
"id": "dual_extrusion",
|
||||||
"name": "Dual Extrusion Base File",
|
"name": "Dual Extrusion Base File",
|
||||||
|
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"visible": false,
|
"visible": false,
|
||||||
|
@ -5,88 +5,117 @@
|
|||||||
"name": "FDM Printer Base Description",
|
"name": "FDM Printer Base Description",
|
||||||
"author": "Ultimaker B.V.",
|
"author": "Ultimaker B.V.",
|
||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
|
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g",
|
||||||
|
|
||||||
"add_pages": [],
|
"add_pages": [],
|
||||||
|
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_show_variants": {
|
|
||||||
"description": "Wether to show the different variants of this machine, which are described in separate json files.",
|
|
||||||
"default": false
|
|
||||||
},
|
|
||||||
"machine_start_gcode": {
|
"machine_start_gcode": {
|
||||||
"description": "Gcode commands to be executed at the very start - separated by \\n.",
|
"description": "Gcode commands to be executed at the very start - separated by \\n.",
|
||||||
"default": "G28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
"default": "G28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_end_gcode": {
|
"machine_end_gcode": {
|
||||||
"description": "Gcode commands to be executed at the very end - separated by \\n.",
|
"description": "Gcode commands to be executed at the very end - separated by \\n.",
|
||||||
"default": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
|
"default": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_bed_temp_wait": {
|
"material_bed_temp_wait": {
|
||||||
"description": "Whether to insert a command to wait until the bed temperature is reached at the start.",
|
"description": "Whether to insert a command to wait until the bed temperature is reached at the start.",
|
||||||
"default": true
|
"default": true,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_print_temp_wait": {
|
"material_print_temp_wait": {
|
||||||
"description": "Whether to insert a command to wait until the nozzle temperatures are reached at the start.",
|
"description": "Whether to insert a command to wait until the nozzle temperatures are reached at the start.",
|
||||||
"default": true
|
"default": true,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_print_temp_prepend": {
|
"material_print_temp_prepend": {
|
||||||
"description": "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting.",
|
"description": "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting.",
|
||||||
"default": true
|
"default": true,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_bed_temp_prepend": {
|
"material_bed_temp_prepend": {
|
||||||
"description": "Whether to include bed temperature commands at the start of the gcode. When the start_gcode already contains bed temperature commands Cura frontend will automatically disable this setting.",
|
"description": "Whether to include bed temperature commands at the start of the gcode. When the start_gcode already contains bed temperature commands Cura frontend will automatically disable this setting.",
|
||||||
"default": true
|
"default": true,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_width": {
|
"machine_width": {
|
||||||
"description": "The width (X-direction) of the printable area.",
|
"description": "The width (X-direction) of the printable area.",
|
||||||
"default": 100
|
"default": 100,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_depth": {
|
"machine_depth": {
|
||||||
"description": "The depth (Y-direction) of the printable area.",
|
"description": "The depth (Y-direction) of the printable area.",
|
||||||
"default": 100
|
"default": 100,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_height": {
|
"machine_height": {
|
||||||
"description": "The height (Z-direction) of the printable area.",
|
"description": "The height (Z-direction) of the printable area.",
|
||||||
"default": 100
|
"default": 100,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_heated_bed": {
|
"machine_heated_bed": {
|
||||||
"description": "Whether the machine has a heated bed present.",
|
"description": "Whether the machine has a heated bed present.",
|
||||||
"default": false
|
"default": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_center_is_zero": {
|
"machine_center_is_zero": {
|
||||||
"description": "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area.",
|
"description": "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area.",
|
||||||
"default": false
|
"default": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_extruder_count": {
|
"machine_extruder_count": {
|
||||||
"description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.",
|
"description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.",
|
||||||
"default": 1
|
"default": 1,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_nozzle_tip_outer_diameter": {
|
"machine_nozzle_tip_outer_diameter": {
|
||||||
"description": "The outer diameter of the tip of the nozzle.",
|
"description": "The outer diameter of the tip of the nozzle.",
|
||||||
"default": 1, "SEE_machine_extruder_trains": true },
|
"default": 1,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_nozzle_head_distance": {
|
"machine_nozzle_head_distance": {
|
||||||
"description": "The height difference between the tip of the nozzle and the lowest part of the print head.",
|
"description": "The height difference between the tip of the nozzle and the lowest part of the print head.",
|
||||||
"default": 3, "SEE_machine_extruder_trains": true },
|
"default": 3,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_nozzle_expansion_angle": {
|
"machine_nozzle_expansion_angle": {
|
||||||
"description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.",
|
"description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.",
|
||||||
"default": 45, "SEE_machine_extruder_trains": true },
|
"default": 45,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_heat_zone_length": {
|
"machine_heat_zone_length": {
|
||||||
"description": "The distance from the tip of the nozzle in which heat from the nozzle is transfered to the filament.",
|
"description": "The distance from the tip of the nozzle in which heat from the nozzle is transfered to the filament.",
|
||||||
"default": 16, "SEE_machine_extruder_trains": true },
|
"default": 16,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_nozzle_heat_up_speed": {
|
"machine_nozzle_heat_up_speed": {
|
||||||
"description": "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.",
|
"description": "The speed (*C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.",
|
||||||
"default": 2.0, "SEE_machine_extruder_trains": true },
|
"default": 2.0,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_nozzle_cool_down_speed": {
|
"machine_nozzle_cool_down_speed": {
|
||||||
"description": "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.",
|
"description": "The speed (*C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.",
|
||||||
"default": 2.0, "SEE_machine_extruder_trains": true },
|
"default": 2.0,
|
||||||
|
"SEE_machine_extruder_trains": true,
|
||||||
|
"global_only": true
|
||||||
|
},
|
||||||
"machine_gcode_flavor": {
|
"machine_gcode_flavor": {
|
||||||
"description": "The type of gcode to be generated.",
|
"description": "The type of gcode to be generated.",
|
||||||
"default": "RepRap"
|
"default": "RepRap",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_disallowed_areas": {
|
"machine_disallowed_areas": {
|
||||||
"description": "A list of polygons with areas the print head is not allowed to enter.",
|
"description": "A list of polygons with areas the print head is not allowed to enter.",
|
||||||
"type": "polygons",
|
"type": "polygons",
|
||||||
"default": []
|
"default": [],
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_platform_offset": {
|
"machine_platform_offset": {
|
||||||
"description": "Where to display the platform mesh.",
|
"description": "Where to display the platform mesh.",
|
||||||
@ -94,10 +123,11 @@
|
|||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
]
|
],
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_head_polygon": {
|
"machine_head_polygon": {
|
||||||
"description": "A 2D silhouette of the print head (fan caps excluded).",
|
"description": "A 2D silhouette of the print head.",
|
||||||
"type": "polygon",
|
"type": "polygon",
|
||||||
"default": [
|
"default": [
|
||||||
[
|
[
|
||||||
@ -116,10 +146,11 @@
|
|||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
]
|
]
|
||||||
]
|
],
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"machine_head_with_fans_polygon": {
|
"machine_head_with_fans_polygon": {
|
||||||
"description": "A 2D silhouette of the print head (fan caps included).",
|
"description": "A 2D silhouette of the print head.",
|
||||||
"type": "polygon",
|
"type": "polygon",
|
||||||
"default": [
|
"default": [
|
||||||
[
|
[
|
||||||
@ -138,11 +169,13 @@
|
|||||||
-20,
|
-20,
|
||||||
-10
|
-10
|
||||||
]
|
]
|
||||||
]
|
],
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"gantry_height": {
|
"gantry_height": {
|
||||||
"description": "The height difference between the tip of the nozzle and the gantry system (X and Y axes).",
|
"description": "The height difference between the tip of the nozzle and the gantry system (X and Y axes).",
|
||||||
"default":99999999999
|
"default": 99999999999,
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"categories": {
|
"categories": {
|
||||||
@ -161,7 +194,8 @@
|
|||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"visible": false
|
"visible": false
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"resolution": {
|
"resolution": {
|
||||||
"label": "Quality",
|
"label": "Quality",
|
||||||
@ -188,7 +222,8 @@
|
|||||||
"min_value": "0.001",
|
"min_value": "0.001",
|
||||||
"min_value_warning": "0.04",
|
"min_value_warning": "0.04",
|
||||||
"max_value_warning": "0.32",
|
"max_value_warning": "0.32",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"line_width": {
|
"line_width": {
|
||||||
"label": "Line Width",
|
"label": "Line Width",
|
||||||
@ -547,12 +582,12 @@
|
|||||||
"infill_overlap": {
|
"infill_overlap": {
|
||||||
"label": "Infill Overlap",
|
"label": "Infill Overlap",
|
||||||
"description": "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill.",
|
"description": "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill.",
|
||||||
"unit": "mm",
|
"unit": "%",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 0.04,
|
"default": 10,
|
||||||
"min_value_warning": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "machine_nozzle_size",
|
"max_value_warning": "100",
|
||||||
"inherit_function": "0.1 * line_width if infill_sparse_density < 95 else 0.0",
|
"inherit_function": "10 if infill_sparse_density < 95 else 0",
|
||||||
"visible": false
|
"visible": false
|
||||||
},
|
},
|
||||||
"infill_wipe_dist": {
|
"infill_wipe_dist": {
|
||||||
@ -622,7 +657,8 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 150,
|
"default": 150,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "260"
|
"max_value_warning": "260",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"material_extrusion_cool_down_speed": {
|
"material_extrusion_cool_down_speed": {
|
||||||
"label": "Extrusion Cool Down Speed Modifier",
|
"label": "Extrusion Cool Down Speed Modifier",
|
||||||
@ -631,7 +667,8 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 0.5,
|
"default": 0.5,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10.0"
|
"max_value_warning": "10.0",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"material_bed_temperature": {
|
"material_bed_temperature": {
|
||||||
"label": "Bed Temperature",
|
"label": "Bed Temperature",
|
||||||
@ -641,7 +678,8 @@
|
|||||||
"default": 60,
|
"default": 60,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "260",
|
"max_value_warning": "260",
|
||||||
"enabled": "machine_heated_bed"
|
"enabled": "machine_heated_bed",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"material_diameter": {
|
"material_diameter": {
|
||||||
"label": "Diameter",
|
"label": "Diameter",
|
||||||
@ -651,7 +689,8 @@
|
|||||||
"default": 2.85,
|
"default": 2.85,
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"min_value_warning": "0.4",
|
"min_value_warning": "0.4",
|
||||||
"max_value_warning": "3.5"
|
"max_value_warning": "3.5",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"material_flow": {
|
"material_flow": {
|
||||||
"label": "Flow",
|
"label": "Flow",
|
||||||
@ -749,7 +788,6 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"min_value": "1",
|
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "retraction_enable"
|
"enabled": "retraction_enable"
|
||||||
@ -760,7 +798,7 @@
|
|||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 4.5,
|
"default": 4.5,
|
||||||
"min_value": "0.0",
|
"min_value": "0",
|
||||||
"max_value_warning": "retraction_amount * 2",
|
"max_value_warning": "retraction_amount * 2",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "retraction_amount",
|
"inherit_function": "retraction_amount",
|
||||||
@ -861,9 +899,9 @@
|
|||||||
"inherit_function": "speed_print",
|
"inherit_function": "speed_print",
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"children": {
|
"children": {
|
||||||
"speed_support_infill": {
|
"speed_support_lines": {
|
||||||
"label": "Support Infill Speed",
|
"label": "Support Wall Speed",
|
||||||
"description": "The speed at which the infill of exterior support is printed. Printing the infill at higher speeds can improve the overall print time.",
|
"description": "The speed at which the walls of exterior support are printed. Printing the walls at higher speeds can improve the overall duration.",
|
||||||
"unit": "mm/s",
|
"unit": "mm/s",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 60,
|
"default": 60,
|
||||||
@ -951,6 +989,7 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "retraction_combing",
|
"enabled": "retraction_combing",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"travel_avoid_distance": {
|
"travel_avoid_distance": {
|
||||||
"label": "Avoid Distance",
|
"label": "Avoid Distance",
|
||||||
@ -962,7 +1001,8 @@
|
|||||||
"max_value_warning": "machine_nozzle_tip_outer_diameter * 5",
|
"max_value_warning": "machine_nozzle_tip_outer_diameter * 5",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "retraction_combing"
|
"enabled": "retraction_combing",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -986,8 +1026,8 @@
|
|||||||
"enabled": "coasting_enable"
|
"enabled": "coasting_enable"
|
||||||
},
|
},
|
||||||
"coasting_min_volume": {
|
"coasting_min_volume": {
|
||||||
"label": "Minimum Volume Before Coasting",
|
"label": "Minimal Volume Before Coasting",
|
||||||
"description": "The smallest volume an extrusion path should have to coast the full amount. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.",
|
"description": "The least volume an extrusion path should have to coast the full amount. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.",
|
||||||
"unit": "mm³",
|
"unit": "mm³",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 0.8,
|
"default": 0.8,
|
||||||
@ -1020,6 +1060,7 @@
|
|||||||
"description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.",
|
"description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_speed": {
|
"cool_fan_speed": {
|
||||||
"label": "Fan Speed",
|
"label": "Fan Speed",
|
||||||
@ -1031,6 +1072,7 @@
|
|||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "100.0 if parent_value else 0.0",
|
"inherit_function": "100.0 if parent_value else 0.0",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_speed_min": {
|
"cool_fan_speed_min": {
|
||||||
"label": "Minimum Fan Speed",
|
"label": "Minimum Fan Speed",
|
||||||
@ -1040,7 +1082,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"cool_fan_speed_max": {
|
"cool_fan_speed_max": {
|
||||||
"label": "Maximum Fan Speed",
|
"label": "Maximum Fan Speed",
|
||||||
@ -1050,7 +1093,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1065,6 +1109,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_full_layer": {
|
"cool_fan_full_layer": {
|
||||||
"label": "Fan Full on at Layer",
|
"label": "Fan Full on at Layer",
|
||||||
@ -1074,7 +1119,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "int((parent_value - layer_height_0 + 0.001) / layer_height)"
|
"inherit_function": "int((parent_value - layer_height_0 + 0.001) / layer_height)",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1086,7 +1132,8 @@
|
|||||||
"default": 5,
|
"default": 5,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "600",
|
"max_value_warning": "600",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"cool_min_layer_time_fan_speed_max": {
|
"cool_min_layer_time_fan_speed_max": {
|
||||||
"label": "Minimum Layer Time Full Fan Speed",
|
"label": "Minimum Layer Time Full Fan Speed",
|
||||||
@ -1096,7 +1143,8 @@
|
|||||||
"default": 10,
|
"default": 10,
|
||||||
"min_value": "cool_min_layer_time",
|
"min_value": "cool_min_layer_time",
|
||||||
"max_value_warning": "600",
|
"max_value_warning": "600",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"cool_min_speed": {
|
"cool_min_speed": {
|
||||||
"label": "Minimum Speed",
|
"label": "Minimum Speed",
|
||||||
@ -1106,14 +1154,16 @@
|
|||||||
"default": 10,
|
"default": 10,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"cool_lift_head": {
|
"cool_lift_head": {
|
||||||
"label": "Lift Head",
|
"label": "Lift Head",
|
||||||
"description": "Lift the head away from the print if the minimum speed is hit because of cool slowdown, and wait the extra time away from the print surface until the minimum layer time is used up.",
|
"description": "Lift the head away from the print if the minimum speed is hit because of cool slowdown, and wait the extra time away from the print surface until the minimum layer time is used up.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"draft_shield_enabled": {
|
"draft_shield_enabled": {
|
||||||
"label": "Enable Draft Shield",
|
"label": "Enable Draft Shield",
|
||||||
@ -1204,7 +1254,7 @@
|
|||||||
},
|
},
|
||||||
"support_z_distance": {
|
"support_z_distance": {
|
||||||
"label": "Z Distance",
|
"label": "Z Distance",
|
||||||
"description": "Distance from the top/bottom of the support to the print. A small gap here makes it easier to remove the support but makes the print a bit uglier. 0.15mm allows for easier separation of the support structure. The value is rounded down to the nearest multiple of the layer height",
|
"description": "Distance from the top/bottom of the support to the print. A small gap here makes it easier to remove the support but makes the print a bit uglier. 0.15mm allows for easier separation of the support structure.",
|
||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
@ -1485,7 +1535,8 @@
|
|||||||
"default": 1,
|
"default": 1,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"enabled": "adhesion_type == \"skirt\""
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"skirt_gap": {
|
"skirt_gap": {
|
||||||
"label": "Skirt Distance",
|
"label": "Skirt Distance",
|
||||||
@ -1495,7 +1546,8 @@
|
|||||||
"default": 3,
|
"default": 3,
|
||||||
"min_value_warning": "0",
|
"min_value_warning": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"enabled": "adhesion_type == \"skirt\""
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"skirt_minimal_length": {
|
"skirt_minimal_length": {
|
||||||
"label": "Skirt Minimum Length",
|
"label": "Skirt Minimum Length",
|
||||||
@ -1506,7 +1558,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"min_value_warning": "25",
|
"min_value_warning": "25",
|
||||||
"max_value_warning": "2500",
|
"max_value_warning": "2500",
|
||||||
"enabled": "adhesion_type == \"skirt\""
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"brim_width": {
|
"brim_width": {
|
||||||
"label": "Brim Width",
|
"label": "Brim Width",
|
||||||
@ -1517,6 +1570,7 @@
|
|||||||
"min_value": "0.0",
|
"min_value": "0.0",
|
||||||
"max_value_warning": "100.0",
|
"max_value_warning": "100.0",
|
||||||
"enabled": "adhesion_type == \"brim\"",
|
"enabled": "adhesion_type == \"brim\"",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"brim_line_count": {
|
"brim_line_count": {
|
||||||
"label": "Brim Line Count",
|
"label": "Brim Line Count",
|
||||||
@ -1526,7 +1580,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"inherit_function": "math.ceil(parent_value / skirt_line_width)",
|
"inherit_function": "math.ceil(parent_value / skirt_line_width)",
|
||||||
"enabled": "adhesion_type == \"brim\""
|
"enabled": "adhesion_type == \"brim\"",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1816,7 +1871,8 @@
|
|||||||
"description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid object into a single walled print with a solid bottom. This feature used to be called Joris in older versions.",
|
"description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid object into a single walled print with a solid bottom. This feature used to be called Joris in older versions.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"magic_fuzzy_skin_enabled": {
|
"magic_fuzzy_skin_enabled": {
|
||||||
"label": "Fuzzy Skin",
|
"label": "Fuzzy Skin",
|
||||||
@ -1867,7 +1923,8 @@
|
|||||||
"description": "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines.",
|
"description": "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_height": {
|
"wireframe_height": {
|
||||||
"label": "WP Connection Height",
|
"label": "WP Connection Height",
|
||||||
@ -1878,7 +1935,8 @@
|
|||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_roof_inset": {
|
"wireframe_roof_inset": {
|
||||||
"label": "WP Roof Inset Distance",
|
"label": "WP Roof Inset Distance",
|
||||||
@ -1891,7 +1949,8 @@
|
|||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"inherit_function": "wireframe_height"
|
"inherit_function": "wireframe_height",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_printspeed": {
|
"wireframe_printspeed": {
|
||||||
"label": "WP speed",
|
"label": "WP speed",
|
||||||
@ -1903,6 +1962,7 @@
|
|||||||
"max_value_warning": "50",
|
"max_value_warning": "50",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"wireframe_printspeed_bottom": {
|
"wireframe_printspeed_bottom": {
|
||||||
"label": "WP Bottom Printing Speed",
|
"label": "WP Bottom Printing Speed",
|
||||||
@ -1914,7 +1974,8 @@
|
|||||||
"max_value_warning": "50",
|
"max_value_warning": "50",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_up": {
|
"wireframe_printspeed_up": {
|
||||||
"label": "WP Upward Printing Speed",
|
"label": "WP Upward Printing Speed",
|
||||||
@ -1926,7 +1987,8 @@
|
|||||||
"max_value_warning": "50",
|
"max_value_warning": "50",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_down": {
|
"wireframe_printspeed_down": {
|
||||||
"label": "WP Downward Printing Speed",
|
"label": "WP Downward Printing Speed",
|
||||||
@ -1938,7 +2000,8 @@
|
|||||||
"max_value_warning": "50",
|
"max_value_warning": "50",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_flat": {
|
"wireframe_printspeed_flat": {
|
||||||
"label": "WP Horizontal Printing Speed",
|
"label": "WP Horizontal Printing Speed",
|
||||||
@ -1950,7 +2013,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1964,6 +2028,7 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||||
"children": {
|
"children": {
|
||||||
"wireframe_flow_connection": {
|
"wireframe_flow_connection": {
|
||||||
"label": "WP Connection Flow",
|
"label": "WP Connection Flow",
|
||||||
@ -1974,7 +2039,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_flow_flat": {
|
"wireframe_flow_flat": {
|
||||||
"label": "WP Flat Flow",
|
"label": "WP Flat Flow",
|
||||||
@ -1985,7 +2051,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1998,7 +2065,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "1",
|
"max_value_warning": "1",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_bottom_delay": {
|
"wireframe_bottom_delay": {
|
||||||
"label": "WP Bottom Delay",
|
"label": "WP Bottom Delay",
|
||||||
@ -2009,7 +2077,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "1",
|
"max_value_warning": "1",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_flat_delay": {
|
"wireframe_flat_delay": {
|
||||||
"label": "WP Flat Delay",
|
"label": "WP Flat Delay",
|
||||||
@ -2020,7 +2089,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "0.5",
|
"max_value_warning": "0.5",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_up_half_speed": {
|
"wireframe_up_half_speed": {
|
||||||
"label": "WP Ease Upward",
|
"label": "WP Ease Upward",
|
||||||
@ -2031,7 +2101,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "5.0",
|
"max_value_warning": "5.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_top_jump": {
|
"wireframe_top_jump": {
|
||||||
"label": "WP Knot Size",
|
"label": "WP Knot Size",
|
||||||
@ -2042,7 +2113,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_fall_down": {
|
"wireframe_fall_down": {
|
||||||
"label": "WP Fall Down",
|
"label": "WP Fall Down",
|
||||||
@ -2053,7 +2125,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "wireframe_height",
|
"max_value_warning": "wireframe_height",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_drag_along": {
|
"wireframe_drag_along": {
|
||||||
"label": "WP Drag along",
|
"label": "WP Drag along",
|
||||||
@ -2064,7 +2137,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "wireframe_height",
|
"max_value_warning": "wireframe_height",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_strategy": {
|
"wireframe_strategy": {
|
||||||
"label": "WP Strategy",
|
"label": "WP Strategy",
|
||||||
@ -2077,7 +2151,8 @@
|
|||||||
},
|
},
|
||||||
"default": "compensate",
|
"default": "compensate",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_straight_before_down": {
|
"wireframe_straight_before_down": {
|
||||||
"label": "WP Straighten Downward Lines",
|
"label": "WP Straighten Downward Lines",
|
||||||
@ -2088,7 +2163,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_roof_fall_down": {
|
"wireframe_roof_fall_down": {
|
||||||
"label": "WP Roof Fall Down",
|
"label": "WP Roof Fall Down",
|
||||||
@ -2099,7 +2175,8 @@
|
|||||||
"min_value_warning": "0",
|
"min_value_warning": "0",
|
||||||
"max_value_warning": "wireframe_roof_inset",
|
"max_value_warning": "wireframe_roof_inset",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_roof_drag_along": {
|
"wireframe_roof_drag_along": {
|
||||||
"label": "WP Roof Drag Along",
|
"label": "WP Roof Drag Along",
|
||||||
@ -2110,7 +2187,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_roof_outer_delay": {
|
"wireframe_roof_outer_delay": {
|
||||||
"label": "WP Roof Outer Delay",
|
"label": "WP Roof Outer Delay",
|
||||||
@ -2121,7 +2199,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
},
|
},
|
||||||
"wireframe_nozzle_clearance": {
|
"wireframe_nozzle_clearance": {
|
||||||
"label": "WP Nozzle Clearance",
|
"label": "WP Nozzle Clearance",
|
||||||
@ -2132,7 +2211,8 @@
|
|||||||
"min_value_warning": "0",
|
"min_value_warning": "0",
|
||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled"
|
"enabled": "wireframe_enabled",
|
||||||
|
"global_only": "print_sequence != \"one_at_a_time\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"author": "Other",
|
"author": "Other",
|
||||||
"icon": "icon_ultimaker.png",
|
"icon": "icon_ultimaker.png",
|
||||||
"platform": "grr_neo_platform.stl",
|
"platform": "grr_neo_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
"visible": "true",
|
"visible": "true",
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
"icon": "icon_ultimaker.png",
|
"icon": "icon_ultimaker.png",
|
||||||
"platform": "",
|
"platform": "",
|
||||||
|
"file_formats": "application/x3g",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"author": "Other",
|
"author": "Other",
|
||||||
"icon": "icon_ultimaker2.png",
|
"icon": "icon_ultimaker2.png",
|
||||||
"platform": "makerstarter_platform.stl",
|
"platform": "makerstarter_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"author": "Other",
|
"author": "Other",
|
||||||
"icon": "icon_ultimaker2.png",
|
"icon": "icon_ultimaker2.png",
|
||||||
"platform": "prusai3_platform.stl",
|
"platform": "prusai3_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
"icon": "icon_ultimaker2.png",
|
"icon": "icon_ultimaker2.png",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "Ultimaker2backplate.png",
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"icon": "icon_ultimaker2.png",
|
"icon": "icon_ultimaker2.png",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "Ultimaker2Extendedbackplate.png",
|
"platform_texture": "Ultimaker2Extendedbackplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2.json",
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
|
@ -6,8 +6,10 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.25mm Nozzle",
|
"variant": "0.25 mm",
|
||||||
|
"profiles_machine": "ultimaker2plus",
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_nozzle_size": { "default": 0.25 }
|
"machine_nozzle_size": { "default": 0.25 }
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,10 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.40mm Nozzle",
|
"variant": "0.4 mm",
|
||||||
|
"profiles_machine": "ultimaker2plus",
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_nozzle_size": { "default": 0.40 }
|
"machine_nozzle_size": { "default": 0.40 }
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,10 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.60mm Nozzle",
|
"variant": "0.6 mm",
|
||||||
|
"profiles_machine": "ultimaker2plus",
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_nozzle_size": { "default": 0.60 }
|
"machine_nozzle_size": { "default": 0.60 }
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,10 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.80mm Nozzle",
|
"variant": "0.8 mm",
|
||||||
|
"profiles_machine": "ultimaker2plus",
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_nozzle_size": { "default": 0.80 }
|
"machine_nozzle_size": { "default": 0.80 }
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"icon": "icon_ultimaker2.png",
|
"icon": "icon_ultimaker2.png",
|
||||||
"platform": "ultimaker2go_platform.obj",
|
"platform": "ultimaker2go_platform.obj",
|
||||||
"platform_texture": "Ultimaker2Gobackplate.png",
|
"platform_texture": "Ultimaker2Gobackplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2.json",
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
@ -7,18 +7,15 @@
|
|||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2.json",
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
"machine_settings": {
|
"overrides": {
|
||||||
"machine_width": { "default": 230 },
|
"machine_width": { "default": 230 },
|
||||||
"machine_depth": { "default": 225 },
|
"machine_depth": { "default": 225 },
|
||||||
"machine_height": { "default": 200 },
|
"machine_height": { "default": 200 },
|
||||||
"machine_show_variants": { "default": true },
|
"machine_show_variants": { "default": true },
|
||||||
"gantry_height": { "default": 50 }
|
"gantry_height": { "default": 50 },
|
||||||
},
|
|
||||||
|
|
||||||
"overrides": {
|
|
||||||
"shell_thickness": { "default": 1.2 },
|
"shell_thickness": { "default": 1.2 },
|
||||||
"top_bottom_thickness": { "inherit_function": "(parent_value / 3) * 2" },
|
"top_bottom_thickness": { "inherit_function": "(parent_value / 3) * 2" },
|
||||||
"travel_compensate_overlapping_walls_enabled": { "default": true },
|
"travel_compensate_overlapping_walls_enabled": { "default": true },
|
||||||
|
@ -6,16 +6,14 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"variant": "0.25mm Nozzle",
|
"variant": "0.25 mm",
|
||||||
|
|
||||||
"machine_settings": {
|
|
||||||
"machine_nozzle_size": { "default": 0.25 }
|
|
||||||
},
|
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.25 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.06 },
|
"layer_height": { "default": 0.06 },
|
||||||
"layer_height_0": { "default": 0.15 },
|
"layer_height_0": { "default": 0.15 },
|
||||||
|
|
||||||
|
@ -6,16 +6,14 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"variant": "0.40mm Nozzle",
|
"variant": "0.4 mm",
|
||||||
|
|
||||||
"machine_settings": {
|
|
||||||
"machine_nozzle_size": { "default": 0.40 }
|
|
||||||
},
|
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.40 },
|
||||||
|
|
||||||
"wall_line_width_0": { "inherit_function": "parent_value * 0.875" },
|
"wall_line_width_0": { "inherit_function": "parent_value * 0.875" },
|
||||||
"skin_line_width": { "inherit_function": "parent_value * 0.875" }
|
"skin_line_width": { "inherit_function": "parent_value * 0.875" }
|
||||||
}
|
}
|
||||||
|
@ -6,16 +6,14 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"variant": "0.60mm Nozzle",
|
"variant": "0.6 mm",
|
||||||
|
|
||||||
"machine_settings": {
|
|
||||||
"machine_nozzle_size": { "default": 0.60 }
|
|
||||||
},
|
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.60 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.15 },
|
"layer_height": { "default": 0.15 },
|
||||||
"layer_height_0": { "default": 0.4 },
|
"layer_height_0": { "default": 0.4 },
|
||||||
|
|
||||||
|
@ -6,16 +6,14 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "ultimaker2plus_backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"variant": "0.80mm Nozzle",
|
"variant": "0.8 mm",
|
||||||
|
|
||||||
"machine_settings": {
|
|
||||||
"machine_nozzle_size": { "default": 0.80 }
|
|
||||||
},
|
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.80 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.2 },
|
"layer_height": { "default": 0.2 },
|
||||||
"layer_height_0": { "default": 0.5 },
|
"layer_height_0": { "default": 0.5 },
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"icon": "icon_ultimaker.png",
|
"icon": "icon_ultimaker.png",
|
||||||
"platform": "ultimaker_platform.stl",
|
"platform": "ultimaker_platform.stl",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"pages": [
|
"pages": [
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"icon": "icon_ultimaker.png",
|
"icon": "icon_ultimaker.png",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "UltimakerPlusbackplate.png",
|
"platform_texture": "UltimakerPlusbackplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker_original.json",
|
"inherits": "ultimaker_original.json",
|
||||||
|
|
||||||
"pages": [
|
"pages": [
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
[general]
|
|
||||||
version = 1
|
|
||||||
name = Low Quality
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
layer_height = 0.15
|
|
||||||
shell_thickness = 0.8
|
|
||||||
infill_sparse_density = 8
|
|
||||||
speed_print = 60
|
|
||||||
speed_wall_0 = 40
|
|
||||||
speed_wall_x = 50
|
|
||||||
speed_topbottom = 30
|
|
||||||
speed_travel = 150
|
|
||||||
speed_layer_0 = 30
|
|
||||||
skirt_speed = 30
|
|
@ -1,5 +0,0 @@
|
|||||||
[general]
|
|
||||||
version = 1
|
|
||||||
name = Normal Quality
|
|
||||||
|
|
||||||
[settings]
|
|
@ -1,9 +0,0 @@
|
|||||||
[general]
|
|
||||||
version = 1
|
|
||||||
name = Ulti Quality
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
layer_height = 0.04
|
|
||||||
shell_thickness = 1.6
|
|
||||||
top_bottom_thickness = 0.8
|
|
||||||
infill_sparse_density = 14
|
|
@ -4,5 +4,7 @@ name = High Quality
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
layer_height = 0.06
|
layer_height = 0.06
|
||||||
infill_sparse_density = 12
|
speed_wall_0 = 30
|
||||||
|
speed_topbottom = 15
|
||||||
|
speed_infill = 80
|
||||||
|
|
14
resources/profiles/general/Low+Quality.cfg
Normal file
14
resources/profiles/general/Low+Quality.cfg
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Low Quality
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
infill_sparse_density = 10
|
||||||
|
layer_height = 0.15
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
speed_wall_0 = 40
|
||||||
|
speed_wall_x = 80
|
||||||
|
speed_infill = 100
|
||||||
|
shell_thickness = 1
|
||||||
|
speed_topbottom = 30
|
||||||
|
|
9
resources/profiles/general/Normal+Quality.cfg
Normal file
9
resources/profiles/general/Normal+Quality.cfg
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_topbottom = 15
|
||||||
|
speed_infill = 80
|
||||||
|
|
10
resources/profiles/general/Ulti+Quality.cfg
Normal file
10
resources/profiles/general/Ulti+Quality.cfg
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Ulti Quality
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
layer_height = 0.04
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_topbottom = 15
|
||||||
|
speed_infill = 80
|
||||||
|
|
12
resources/profiles/materials/abs.cfg
Normal file
12
resources/profiles/materials/abs.cfg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
type = material
|
||||||
|
name = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
material_bed_temperature = 100
|
||||||
|
platform_adhesion = Brim
|
||||||
|
material_flow = 107
|
||||||
|
material_print_temperature = 250
|
||||||
|
cool_fan_speed = 50
|
||||||
|
cool_fan_speed_max = 50
|
12
resources/profiles/materials/cpe.cfg
Normal file
12
resources/profiles/materials/cpe.cfg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
type = material
|
||||||
|
name = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
material_bed_temperature = 60
|
||||||
|
platform_adhesion = Brim
|
||||||
|
material_flow = 100
|
||||||
|
material_print_temperature = 250
|
||||||
|
cool_fan_speed = 50
|
||||||
|
cool_fan_speed_max = 50
|
12
resources/profiles/materials/pla.cfg
Normal file
12
resources/profiles/materials/pla.cfg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
type = material
|
||||||
|
name = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
material_bed_temperature = 60
|
||||||
|
platform_adhesion = Skirt
|
||||||
|
material_flow = 100
|
||||||
|
material_print_temperature = 210
|
||||||
|
cool_fan_speed = 100
|
||||||
|
cool_fan_speed_max = 100
|
51
resources/profiles/ultimaker2+/abs_0.25_high.curaprofile
Normal file
51
resources/profiles/ultimaker2+/abs_0.25_high.curaprofile
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
cool_min_layer_time = 2
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
cool_min_speed = 25
|
||||||
|
brim_line_count = 32
|
||||||
|
top_thickness = 0.72
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 20
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
layer_height = 0.06
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_infill = 30
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
infill_sparse_density = 22
|
||||||
|
shell_thickness = 0.88
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 25
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
51
resources/profiles/ultimaker2+/abs_0.4_fast.curaprofile
Normal file
51
resources/profiles/ultimaker2+/abs_0.4_fast.curaprofile
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
speed_travel = 150
|
||||||
|
cool_min_speed = 20
|
||||||
|
brim_line_count = 20
|
||||||
|
top_thickness = 0.75
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 40
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.15
|
||||||
|
speed_wall_0 = 30
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 30
|
||||||
|
speed_infill = 55
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
infill_sparse_density = 18
|
||||||
|
shell_thickness = 0.7
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 40
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
bottom_thickness = 0.75
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
top_bottom_thickness = 0.75
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
51
resources/profiles/ultimaker2+/abs_0.4_high.curaprofile
Normal file
51
resources/profiles/ultimaker2+/abs_0.4_high.curaprofile
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
cool_min_speed = 20
|
||||||
|
brim_line_count = 20
|
||||||
|
top_thickness = 0.72
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 30
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.06
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_infill = 45
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
infill_sparse_density = 22
|
||||||
|
shell_thickness = 1.05
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 30
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
46
resources/profiles/ultimaker2+/abs_0.4_normal.curaprofile
Normal file
46
resources/profiles/ultimaker2+/abs_0.4_normal.curaprofile
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
cool_min_speed = 20
|
||||||
|
brim_line_count = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 30
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_infill = 45
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
shell_thickness = 1.05
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 30
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
50
resources/profiles/ultimaker2+/abs_0.6_normal.curaprofile
Normal file
50
resources/profiles/ultimaker2+/abs_0.6_normal.curaprofile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.6 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
cool_min_speed = 20
|
||||||
|
brim_line_count = 14
|
||||||
|
top_thickness = 1.2
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 25
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.53
|
||||||
|
layer_height = 0.15
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_infill = 55
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
shell_thickness = 1.59
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 30
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
layer_height_0 = 0.39
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
50
resources/profiles/ultimaker2+/abs_0.8_fast.curaprofile
Normal file
50
resources/profiles/ultimaker2+/abs_0.8_fast.curaprofile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
support_enable = False
|
||||||
|
retraction_combing = All
|
||||||
|
cool_min_speed = 15
|
||||||
|
brim_line_count = 10
|
||||||
|
top_thickness = 1.2
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_lift_head = True
|
||||||
|
speed_print = 20
|
||||||
|
retraction_hop = 0.0
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
layer_height = 0.2
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_infill = 40
|
||||||
|
infill_before_walls = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
shell_thickness = 2.1
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
raft_airgap = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_wall_x = 30
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
adhesion_type = brim
|
||||||
|
support_pattern = lines
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
|
50
resources/profiles/ultimaker2+/cpe_0.25_high.curaprofile
Normal file
50
resources/profiles/ultimaker2+/cpe_0.25_high.curaprofile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_hop = 0.0
|
||||||
|
support_enable = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 2
|
||||||
|
layer_height = 0.06
|
||||||
|
raft_margin = 5.0
|
||||||
|
speed_infill = 30
|
||||||
|
speed_layer_0 = 20
|
||||||
|
brim_line_count = 32
|
||||||
|
cool_lift_head = True
|
||||||
|
retraction_speed = 40.0
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 20
|
||||||
|
shell_thickness = 0.88
|
||||||
|
speed_wall_0 = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
support_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
material_bed_temperature = 70
|
||||||
|
top_thickness = 0.72
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
speed_wall_x = 25
|
||||||
|
infill_overlap = 17
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
|
50
resources/profiles/ultimaker2+/cpe_0.4_fast.curaprofile
Normal file
50
resources/profiles/ultimaker2+/cpe_0.4_fast.curaprofile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_hop = 0.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
speed_travel = 150
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
layer_height = 0.15
|
||||||
|
raft_margin = 5.0
|
||||||
|
speed_infill = 45
|
||||||
|
bottom_thickness = 0.75
|
||||||
|
brim_line_count = 20
|
||||||
|
cool_lift_head = True
|
||||||
|
retraction_speed = 40.0
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 30
|
||||||
|
shell_thickness = 0.7
|
||||||
|
speed_wall_0 = 30
|
||||||
|
material_flow = 100.0
|
||||||
|
support_pattern = lines
|
||||||
|
infill_sparse_density = 18
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
material_bed_temperature = 70
|
||||||
|
top_thickness = 0.75
|
||||||
|
top_bottom_thickness = 0.75
|
||||||
|
speed_wall_x = 40
|
||||||
|
infill_overlap = 17
|
||||||
|
infill_before_walls = False
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
|
50
resources/profiles/ultimaker2+/cpe_0.4_high.curaprofile
Normal file
50
resources/profiles/ultimaker2+/cpe_0.4_high.curaprofile
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_hop = 0.0
|
||||||
|
support_enable = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
layer_height = 0.06
|
||||||
|
raft_margin = 5.0
|
||||||
|
speed_infill = 45
|
||||||
|
speed_layer_0 = 20
|
||||||
|
brim_line_count = 20
|
||||||
|
cool_lift_head = True
|
||||||
|
retraction_speed = 40.0
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 20
|
||||||
|
shell_thickness = 1.05
|
||||||
|
speed_wall_0 = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
support_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
material_bed_temperature = 70
|
||||||
|
top_thickness = 0.72
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
speed_wall_x = 30
|
||||||
|
infill_overlap = 15
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
|
45
resources/profiles/ultimaker2+/cpe_0.4_normal.curaprofile
Normal file
45
resources/profiles/ultimaker2+/cpe_0.4_normal.curaprofile
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_hop = 0.0
|
||||||
|
support_enable = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
support_pattern = lines
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
infill_before_walls = False
|
||||||
|
speed_layer_0 = 20
|
||||||
|
brim_line_count = 20
|
||||||
|
cool_lift_head = True
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 20
|
||||||
|
shell_thickness = 1.05
|
||||||
|
speed_wall_0 = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
retraction_speed = 40.0
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
material_bed_temperature = 70
|
||||||
|
speed_wall_x = 30
|
||||||
|
infill_overlap = 15
|
||||||
|
speed_infill = 45
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
|
49
resources/profiles/ultimaker2+/cpe_0.6_normal.curaprofile
Normal file
49
resources/profiles/ultimaker2+/cpe_0.6_normal.curaprofile
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.6 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_hop = 0.0
|
||||||
|
support_enable = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
support_pattern = lines
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
layer_height = 0.15
|
||||||
|
speed_infill = 40
|
||||||
|
speed_layer_0 = 20
|
||||||
|
brim_line_count = 14
|
||||||
|
cool_lift_head = True
|
||||||
|
retraction_speed = 40.0
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 20
|
||||||
|
shell_thickness = 1.59
|
||||||
|
speed_wall_0 = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
layer_height_0 = 0.39
|
||||||
|
material_bed_temperature = 70
|
||||||
|
top_thickness = 1.2
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
speed_wall_x = 30
|
||||||
|
infill_overlap = 17
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.53
|
||||||
|
|
49
resources/profiles/ultimaker2+/cpe_0.8_fast.curaprofile
Normal file
49
resources/profiles/ultimaker2+/cpe_0.8_fast.curaprofile
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
retraction_hop = 0.0
|
||||||
|
support_enable = False
|
||||||
|
raft_airgap = 0.0
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
support_pattern = lines
|
||||||
|
retraction_combing = All
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
layer_height = 0.2
|
||||||
|
speed_infill = 40
|
||||||
|
speed_layer_0 = 20
|
||||||
|
brim_line_count = 10
|
||||||
|
cool_lift_head = True
|
||||||
|
retraction_speed = 40.0
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_print = 20
|
||||||
|
shell_thickness = 2.1
|
||||||
|
speed_wall_0 = 20
|
||||||
|
material_flow = 100.0
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
material_bed_temperature = 70
|
||||||
|
top_thickness = 1.2
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
speed_wall_x = 30
|
||||||
|
infill_overlap = 17
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
speed_topbottom = 20
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
|
48
resources/profiles/ultimaker2+/pla_0.25_high.curaprofile
Normal file
48
resources/profiles/ultimaker2+/pla_0.25_high.curaprofile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
top_thickness = 0.72
|
||||||
|
speed_layer_0 = 20
|
||||||
|
speed_print = 20
|
||||||
|
speed_wall_0 = 20
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
shell_thickness = 0.88
|
||||||
|
infill_overlap = 15
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
layer_height = 0.06
|
||||||
|
brim_line_count = 36
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 20
|
||||||
|
support_pattern = lines
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
infill_sparse_density = 22
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
speed_infill = 30
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
speed_wall_x = 25
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
|
47
resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile
Normal file
47
resources/profiles/ultimaker2+/pla_0.4_fast.curaprofile
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
top_thickness = 0.75
|
||||||
|
speed_print = 40
|
||||||
|
speed_wall_0 = 40
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
shell_thickness = 0.7
|
||||||
|
infill_sparse_density = 18
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
layer_height = 0.15
|
||||||
|
brim_line_count = 22
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
infill_overlap = 15
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 30
|
||||||
|
support_pattern = lines
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
speed_travel = 150
|
||||||
|
skirt_gap = 3.0
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
bottom_thickness = 0.75
|
||||||
|
speed_wall_x = 50
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
top_bottom_thickness = 0.75
|
||||||
|
support_enable = False
|
||||||
|
|
48
resources/profiles/ultimaker2+/pla_0.4_high.curaprofile
Normal file
48
resources/profiles/ultimaker2+/pla_0.4_high.curaprofile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
top_thickness = 0.72
|
||||||
|
speed_layer_0 = 20
|
||||||
|
speed_print = 30
|
||||||
|
speed_wall_0 = 30
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
shell_thickness = 1.05
|
||||||
|
infill_overlap = 15
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
layer_height = 0.06
|
||||||
|
brim_line_count = 22
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 20
|
||||||
|
support_pattern = lines
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
infill_sparse_density = 22
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
speed_infill = 50
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
bottom_thickness = 0.72
|
||||||
|
speed_wall_x = 40
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
|
43
resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile
Normal file
43
resources/profiles/ultimaker2+/pla_0.4_normal.curaprofile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
shell_thickness = 1.05
|
||||||
|
speed_print = 30
|
||||||
|
speed_wall_0 = 30
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
speed_layer_0 = 20
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skirt_gap = 3.0
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
brim_line_count = 22
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
infill_overlap = 15
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 20
|
||||||
|
support_pattern = lines
|
||||||
|
speed_infill = 50
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
speed_wall_x = 40
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
|
47
resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile
Normal file
47
resources/profiles/ultimaker2+/pla_0.6_normal.curaprofile
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.6 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
top_thickness = 1.2
|
||||||
|
speed_layer_0 = 20
|
||||||
|
speed_print = 25
|
||||||
|
speed_wall_0 = 25
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
shell_thickness = 1.59
|
||||||
|
infill_overlap = 15
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
layer_height = 0.15
|
||||||
|
brim_line_count = 15
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 20
|
||||||
|
support_pattern = lines
|
||||||
|
layer_height_0 = 0.39
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
speed_infill = 55
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
speed_wall_x = 40
|
||||||
|
machine_nozzle_size = 0.53
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
|
47
resources/profiles/ultimaker2+/pla_0.8_fast.curaprofile
Normal file
47
resources/profiles/ultimaker2+/pla_0.8_fast.curaprofile
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Prints
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
retraction_combing = All
|
||||||
|
top_thickness = 1.2
|
||||||
|
speed_layer_0 = 20
|
||||||
|
speed_print = 20
|
||||||
|
speed_wall_0 = 25
|
||||||
|
raft_interface_line_spacing = 3.0
|
||||||
|
shell_thickness = 2.1
|
||||||
|
infill_overlap = 15
|
||||||
|
retraction_hop = 0.0
|
||||||
|
material_bed_temperature = 70
|
||||||
|
skin_no_small_gaps_heuristic = False
|
||||||
|
retraction_speed = 40.0
|
||||||
|
raft_surface_line_width = 0.4
|
||||||
|
raft_base_line_width = 1.0
|
||||||
|
raft_margin = 5.0
|
||||||
|
adhesion_type = brim
|
||||||
|
skirt_minimal_length = 150.0
|
||||||
|
layer_height = 0.2
|
||||||
|
brim_line_count = 11
|
||||||
|
infill_before_walls = False
|
||||||
|
raft_surface_thickness = 0.27
|
||||||
|
raft_airgap = 0.0
|
||||||
|
skirt_gap = 3.0
|
||||||
|
raft_interface_line_width = 0.4
|
||||||
|
speed_topbottom = 20
|
||||||
|
support_pattern = lines
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
material_flow = 100.0
|
||||||
|
cool_fan_speed_min = 100
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
cool_fan_speed_max = 100
|
||||||
|
speed_infill = 40
|
||||||
|
magic_mesh_surface_mode = False
|
||||||
|
bottom_thickness = 1.2
|
||||||
|
speed_wall_x = 30
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
raft_surface_line_spacing = 3.0
|
||||||
|
support_enable = False
|
||||||
|
|
@ -31,6 +31,7 @@ Item
|
|||||||
|
|
||||||
property alias addMachine: addMachineAction;
|
property alias addMachine: addMachineAction;
|
||||||
property alias configureMachines: settingsAction;
|
property alias configureMachines: settingsAction;
|
||||||
|
property alias addProfile: addProfileAction;
|
||||||
property alias manageProfiles: manageProfilesAction;
|
property alias manageProfiles: manageProfilesAction;
|
||||||
|
|
||||||
property alias preferences: preferencesAction;
|
property alias preferences: preferencesAction;
|
||||||
@ -95,6 +96,12 @@ Item
|
|||||||
iconName: "configure";
|
iconName: "configure";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Action
|
||||||
|
{
|
||||||
|
id: addProfileAction;
|
||||||
|
text: catalog.i18nc("@action:inmenu menubar:profile","&Add Profile...");
|
||||||
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: manageProfilesAction;
|
id: manageProfilesAction;
|
||||||
|
@ -92,7 +92,7 @@ UM.MainWindow
|
|||||||
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
||||||
enabled: UM.Selection.hasSelection;
|
enabled: UM.Selection.hasSelection;
|
||||||
iconName: "document-save-as";
|
iconName: "document-save-as";
|
||||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName);
|
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName, false);
|
||||||
}
|
}
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
@ -108,7 +108,7 @@ UM.MainWindow
|
|||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
text: model.description;
|
text: model.description;
|
||||||
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName);
|
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName, false);
|
||||||
}
|
}
|
||||||
onObjectAdded: saveAllMenu.insertItem(index, object)
|
onObjectAdded: saveAllMenu.insertItem(index, object)
|
||||||
onObjectRemoved: saveAllMenu.removeItem(object)
|
onObjectRemoved: saveAllMenu.removeItem(object)
|
||||||
@ -230,6 +230,7 @@ UM.MainWindow
|
|||||||
|
|
||||||
MenuSeparator { }
|
MenuSeparator { }
|
||||||
|
|
||||||
|
MenuItem { action: actions.addProfile; }
|
||||||
MenuItem { action: actions.manageProfiles; }
|
MenuItem { action: actions.manageProfiles; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,6 +462,7 @@ UM.MainWindow
|
|||||||
|
|
||||||
addMachineAction: actions.addMachine;
|
addMachineAction: actions.addMachine;
|
||||||
configureMachinesAction: actions.configureMachines;
|
configureMachinesAction: actions.configureMachines;
|
||||||
|
addProfileAction: actions.addProfile;
|
||||||
manageProfilesAction: actions.manageProfiles;
|
manageProfilesAction: actions.manageProfiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -473,7 +475,7 @@ UM.MainWindow
|
|||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
Label
|
Label
|
||||||
{
|
{
|
||||||
text: UM.ActiveTool.properties.Rotation != undefined ? "%1°".arg(UM.ActiveTool.properties.Rotation) : "";
|
text: UM.ActiveTool.properties.getValue("Rotation") != undefined ? "%1°".arg(UM.ActiveTool.properties.getValue("Rotation")) : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
visible: UM.ActiveTool.valid && UM.ActiveTool.properties.Rotation != undefined;
|
visible: UM.ActiveTool.valid && UM.ActiveTool.properties.Rotation != undefined;
|
||||||
@ -578,6 +580,7 @@ UM.MainWindow
|
|||||||
reloadAll.onTriggered: Printer.reloadAll()
|
reloadAll.onTriggered: Printer.reloadAll()
|
||||||
|
|
||||||
addMachine.onTriggered: addMachineWizard.visible = true;
|
addMachine.onTriggered: addMachineWizard.visible = true;
|
||||||
|
addProfile.onTriggered: { UM.MachineManager.createProfile(); preferences.visible = true; preferences.setPage(4); }
|
||||||
|
|
||||||
preferences.onTriggered: { preferences.visible = true; preferences.setPage(0); }
|
preferences.onTriggered: { preferences.visible = true; preferences.setPage(0); }
|
||||||
configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
|
configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
|
||||||
@ -670,7 +673,6 @@ UM.MainWindow
|
|||||||
id: addMachineWizard
|
id: addMachineWizard
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AboutDialog
|
AboutDialog
|
||||||
{
|
{
|
||||||
id: aboutDialog
|
id: aboutDialog
|
||||||
|
@ -59,16 +59,13 @@ UM.PreferencesPage
|
|||||||
id: languageList
|
id: languageList
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
// append({ text: catalog.i18nc("@item:inlistbox", "Bulgarian"), code: "bg" })
|
|
||||||
// append({ text: catalog.i18nc("@item:inlistbox", "Czech"), code: "cs" })
|
|
||||||
append({ text: catalog.i18nc("@item:inlistbox", "English"), code: "en" })
|
append({ text: catalog.i18nc("@item:inlistbox", "English"), code: "en" })
|
||||||
append({ text: catalog.i18nc("@item:inlistbox", "Finnish"), code: "fi" })
|
append({ text: catalog.i18nc("@item:inlistbox", "Finnish"), code: "fi" })
|
||||||
append({ text: catalog.i18nc("@item:inlistbox", "French"), code: "fr" })
|
append({ text: catalog.i18nc("@item:inlistbox", "French"), code: "fr" })
|
||||||
append({ text: catalog.i18nc("@item:inlistbox", "German"), code: "de" })
|
append({ text: catalog.i18nc("@item:inlistbox", "German"), code: "de" })
|
||||||
// append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" })
|
append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" })
|
||||||
append({ text: catalog.i18nc("@item:inlistbox", "Polish"), code: "pl" })
|
append({ text: catalog.i18nc("@item:inlistbox", "Dutch"), code: "nl" })
|
||||||
// append({ text: catalog.i18nc("@item:inlistbox", "Russian"), code: "ru" })
|
append({ text: catalog.i18nc("@item:inlistbox", "Spanish"), code: "es" })
|
||||||
// append({ text: catalog.i18nc("@item:inlistbox", "Spanish"), code: "es" })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
// Copyright (c) 2015 Ultimaker B.V.
|
|
||||||
// Cura is released under the terms of the AGPLv3 or higher.
|
|
||||||
|
|
||||||
import QtQuick 2.2
|
|
||||||
import QtQuick.Controls 1.1
|
|
||||||
import QtQuick.Window 2.1
|
|
||||||
|
|
||||||
import UM 1.1 as UM
|
|
||||||
|
|
||||||
UM.Dialog
|
|
||||||
{
|
|
||||||
id: base
|
|
||||||
|
|
||||||
//: About dialog title
|
|
||||||
title: catalog.i18nc("@title:window","Load profile")
|
|
||||||
width: 400
|
|
||||||
height: childrenRect.height
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
|
||||||
id: body
|
|
||||||
|
|
||||||
//: About dialog application description
|
|
||||||
text: catalog.i18nc("@label","Selecting this profile overwrites some of your customised settings. Do you want to merge the new settings into your current profile or do you want to load a clean copy of the profile?")
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
width: parent.width
|
|
||||||
anchors.top: parent.top
|
|
||||||
anchors.margins: UM.Theme.sizes.default_margin.height
|
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
|
||||||
}
|
|
||||||
|
|
||||||
Label
|
|
||||||
{
|
|
||||||
id: show_details
|
|
||||||
|
|
||||||
//: About dialog application author note
|
|
||||||
text: catalog.i18nc("@label","Show details.")
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
anchors.top: body.bottom
|
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
|
||||||
}
|
|
||||||
|
|
||||||
rightButtons: Row
|
|
||||||
{
|
|
||||||
spacing: UM.Theme.sizes.default_margin.width
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
text: catalog.i18nc("@action:button","Merge settings");
|
|
||||||
}
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
text: catalog.i18nc("@action:button","Reset profile");
|
|
||||||
}
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
text: catalog.i18nc("@action:button","Cancel");
|
|
||||||
|
|
||||||
onClicked: base.visible = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
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