mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-15 19:05:51 +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)
|
||||
foreach(po_file ${po_files})
|
||||
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()
|
||||
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(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.sharedmimeinfo
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
|
||||
RENAME cura.xml )
|
||||
else()
|
||||
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)
|
||||
|
@ -10,6 +10,6 @@ TryExec=/usr/bin/cura_app.py
|
||||
Icon=/usr/share/cura/resources/images/cura-icon.png
|
||||
Terminal=false
|
||||
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;
|
||||
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
|
||||
|
||||
profile = Application.getInstance().getMachineManager().getActiveProfile()
|
||||
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||
if profile:
|
||||
skirt_size = self._getSkirtSize(profile)
|
||||
|
||||
@ -176,7 +176,7 @@ class BuildVolume(SceneNode):
|
||||
if self._active_profile:
|
||||
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:
|
||||
self._active_profile.settingValueChanged.connect(self._onSettingValueChanged)
|
||||
self._updateDisallowedAreas()
|
||||
|
@ -17,6 +17,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
||||
|
||||
self._profile = None
|
||||
Application.getInstance().getMachineManager().activeProfileChanged.connect(self._onActiveProfileChanged)
|
||||
Application.getInstance().getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineInstanceChanged)
|
||||
self._onActiveProfileChanged()
|
||||
|
||||
## Force that a new (empty) object is created upon copy.
|
||||
@ -62,11 +63,19 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
||||
if self._profile:
|
||||
self._profile.settingValueChanged.disconnect(self._onSettingValueChanged)
|
||||
|
||||
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
|
||||
self._profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||
|
||||
if self._profile:
|
||||
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):
|
||||
if setting == "print_sequence":
|
||||
if self._convex_hull_job:
|
||||
|
@ -49,7 +49,7 @@ class ConvexHullJob(Job):
|
||||
# This is done because of rounding errors.
|
||||
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.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
|
||||
@ -64,12 +64,17 @@ class ConvexHullJob(Job):
|
||||
hull = hull.getMinkowskiHull(Polygon(numpy.array(profile.getSettingValue("machine_head_polygon"),numpy.float32)))
|
||||
else:
|
||||
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())
|
||||
self._node.callDecoration("setConvexHullNode", hull_node)
|
||||
self._node.callDecoration("setConvexHull", hull)
|
||||
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")
|
||||
if job:
|
||||
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
|
||||
# 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
|
||||
from OpenGL import GL
|
||||
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.
|
||||
import ctypes
|
||||
from ctypes.util import find_library
|
||||
ctypes.CDLL(find_library('GL'), ctypes.RTLD_GLOBAL)
|
||||
|
||||
try:
|
||||
from cura.CuraVersion import CuraVersion
|
||||
@ -100,10 +102,12 @@ class CuraApplication(QtApplication):
|
||||
self._platform_activity = False
|
||||
self._scene_boundingbox = AxisAlignedBox()
|
||||
self._job_name = None
|
||||
self._center_after_select = False
|
||||
|
||||
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
|
||||
self.getMachineManager().addMachineRequested.connect(self._onAddMachineRequested)
|
||||
self.getController().getScene().sceneChanged.connect(self.updatePlatformActivity)
|
||||
self.getController().toolOperationStopped.connect(self._onToolOperationStopped)
|
||||
|
||||
Resources.addType(self.ResourceTypes.QmlFiles, "qml")
|
||||
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.")
|
||||
|
||||
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");
|
||||
|
||||
i18nCatalog.setTagReplacements({
|
||||
@ -231,9 +232,7 @@ class CuraApplication(QtApplication):
|
||||
else:
|
||||
self.getController().setActiveTool("TranslateTool")
|
||||
if Preferences.getInstance().getValue("view/center_on_select"):
|
||||
self._camera_animation.setStart(self.getController().getTool("CameraTool").getOrigin())
|
||||
self._camera_animation.setTarget(Selection.getSelectedObject(0).getWorldPosition())
|
||||
self._camera_animation.start()
|
||||
self._center_after_select = True
|
||||
else:
|
||||
if self.getController().getActiveTool():
|
||||
self._previous_active_tool = self.getController().getActiveTool().getPluginId()
|
||||
@ -241,6 +240,13 @@ class CuraApplication(QtApplication):
|
||||
else:
|
||||
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()
|
||||
activityChanged = pyqtSignal()
|
||||
sceneBoundingBoxChanged = pyqtSignal()
|
||||
@ -493,18 +499,18 @@ class CuraApplication(QtApplication):
|
||||
|
||||
@pyqtSlot(str, result = "QVariant")
|
||||
def getSettingValue(self, key):
|
||||
if not self.getMachineManager().getActiveProfile():
|
||||
if not self.getMachineManager().getWorkingProfile():
|
||||
return None
|
||||
return self.getMachineManager().getActiveProfile().getSettingValue(key)
|
||||
return self.getMachineManager().getWorkingProfile().getSettingValue(key)
|
||||
#return self.getActiveMachine().getSettingValueByKey(key)
|
||||
|
||||
## Change setting by key value pair
|
||||
@pyqtSlot(str, "QVariant")
|
||||
def setSettingValue(self, key, value):
|
||||
if not self.getMachineManager().getActiveProfile():
|
||||
if not self.getMachineManager().getWorkingProfile():
|
||||
return
|
||||
|
||||
self.getMachineManager().getActiveProfile().setSettingValue(key, value)
|
||||
self.getMachineManager().getWorkingProfile().setSettingValue(key, value)
|
||||
|
||||
@pyqtSlot()
|
||||
def mergeSelected(self):
|
||||
|
@ -140,26 +140,7 @@ class Layer():
|
||||
if polygon.type == Polygon.MoveCombingType or polygon.type == Polygon.MoveRetractionType:
|
||||
points[:,1] += 0.01
|
||||
|
||||
# Calculate normals for the entire polygon using numpy.
|
||||
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
|
||||
normals = polygon.getNormals()
|
||||
|
||||
# Scale all by the line width of the polygon so we can easily offset.
|
||||
normals *= (polygon.lineWidth / 2)
|
||||
@ -199,16 +180,33 @@ class Polygon():
|
||||
self._data = data
|
||||
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):
|
||||
self._begin = offset
|
||||
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[:, :]
|
||||
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):
|
||||
indices[i, 0] = i
|
||||
@ -218,26 +216,7 @@ class Polygon():
|
||||
indices[self._end, 1] = self._begin
|
||||
|
||||
def getColor(self):
|
||||
if self._type == self.Inset0Type:
|
||||
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)
|
||||
return self._color
|
||||
|
||||
def vertexCount(self):
|
||||
return len(self._data)
|
||||
@ -257,3 +236,27 @@ class Polygon():
|
||||
@property
|
||||
def lineWidth(self):
|
||||
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:
|
||||
continue
|
||||
|
||||
if node.getBoundingBox().height > Application.getInstance().getMachineManager().getActiveProfile().getSettingValue("gantry_height"):
|
||||
if node.getBoundingBox().height > Application.getInstance().getMachineManager().getWorkingProfile().getSettingValue("gantry_height"):
|
||||
return
|
||||
if node.callDecoration("getConvexHull"):
|
||||
node_list.append(node)
|
||||
|
@ -66,6 +66,6 @@ class PrintInformation(QObject):
|
||||
self.currentPrintTimeChanged.emit()
|
||||
|
||||
# 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.materialAmountChanged.emit()
|
||||
|
15
cura_app.py
15
cura_app.py
@ -12,15 +12,12 @@ def exceptHook(type, value, traceback):
|
||||
|
||||
sys.excepthook = exceptHook
|
||||
|
||||
try:
|
||||
from google.protobuf.pyext import _message
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "cpp"
|
||||
|
||||
if True: # To make the code style checker stop complaining
|
||||
import cura.CuraApplication
|
||||
# Workaround for a race condition on certain systems where there
|
||||
# is a race condition between Arcus and PyQt. Importing Arcus
|
||||
# first seems to prevent Sip from going into a state where it
|
||||
# tries to create PyQt objects on a non-main thread.
|
||||
import Arcus
|
||||
import cura.CuraApplication
|
||||
|
||||
if sys.platform == "win32" and hasattr(sys, "frozen"):
|
||||
import os
|
||||
|
@ -13,68 +13,47 @@ class AutoSave(Extension):
|
||||
def __init__(self):
|
||||
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()
|
||||
|
||||
self._profile = None
|
||||
machine_manager.activeProfileChanged.connect(self._onActiveProfileChanged)
|
||||
machine_manager.profileNameChanged.connect(self._onProfilesChanged)
|
||||
machine_manager.profilesChanged.connect(self._onProfilesChanged)
|
||||
machine_manager.machineInstanceNameChanged.connect(self._onInstanceNameChanged)
|
||||
machine_manager.machineInstancesChanged.connect(self._onInstancesChanged)
|
||||
Application
|
||||
machine_manager.profileNameChanged.connect(self._triggerTimer)
|
||||
machine_manager.profilesChanged.connect(self._triggerTimer)
|
||||
machine_manager.machineInstanceNameChanged.connect(self._triggerTimer)
|
||||
machine_manager.machineInstancesChanged.connect(self._triggerTimer)
|
||||
self._onActiveProfileChanged()
|
||||
|
||||
Preferences.getInstance().addPreference("cura/autosave_delay", 1000 * 10)
|
||||
|
||||
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.timeout.connect(self._onTimeout)
|
||||
|
||||
self._save_preferences = False
|
||||
self._save_profiles = False
|
||||
self._save_instances = False
|
||||
self._saving = False
|
||||
|
||||
def _onPreferenceChanged(self, preference):
|
||||
self._save_preferences = True
|
||||
self._change_timer.start()
|
||||
|
||||
def _onSettingValueChanged(self, setting):
|
||||
self._save_profiles = True
|
||||
def _triggerTimer(self, *args):
|
||||
if not self._saving:
|
||||
self._change_timer.start()
|
||||
|
||||
def _onActiveProfileChanged(self):
|
||||
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:
|
||||
self._profile.settingValueChanged.connect(self._onSettingValueChanged)
|
||||
|
||||
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()
|
||||
self._profile.settingValueChanged.connect(self._triggerTimer)
|
||||
|
||||
def _onTimeout(self):
|
||||
self._saving = True # To prevent the save process from triggering another autosave.
|
||||
Logger.log("d", "Autosaving preferences, instances and profiles")
|
||||
|
||||
if self._save_preferences:
|
||||
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
||||
|
||||
if self._save_instances:
|
||||
Application.getInstance().getMachineManager().saveMachineInstances()
|
||||
|
||||
if self._save_profiles:
|
||||
Application.getInstance().getMachineManager().saveProfiles()
|
||||
|
||||
self._save_preferences = False
|
||||
self._save_instances = False
|
||||
self._save_profiles = False
|
||||
self._saving = 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.Signal import Signal
|
||||
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.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||
from UM.Message import Message
|
||||
from UM.PluginRegistry import PluginRegistry
|
||||
|
||||
from cura.OneAtATimeIterator import OneAtATimeIterator
|
||||
from . import Cura_pb2
|
||||
from . import ProcessSlicedObjectListJob
|
||||
from . import ProcessGCodeJob
|
||||
from . import StartSliceJob
|
||||
@ -61,11 +62,12 @@ class CuraEngineBackend(Backend):
|
||||
self._change_timer.setSingleShot(True)
|
||||
self._change_timer.timeout.connect(self.slice)
|
||||
|
||||
self._message_handlers[Cura_pb2.SlicedObjectList] = self._onSlicedObjectListMessage
|
||||
self._message_handlers[Cura_pb2.Progress] = self._onProgressMessage
|
||||
self._message_handlers[Cura_pb2.GCodeLayer] = self._onGCodeLayerMessage
|
||||
self._message_handlers[Cura_pb2.GCodePrefix] = self._onGCodePrefixMessage
|
||||
self._message_handlers[Cura_pb2.ObjectPrintTime] = self._onObjectPrintTimeMessage
|
||||
self._message_handlers["cura.proto.SlicedObjectList"] = self._onSlicedObjectListMessage
|
||||
self._message_handlers["cura.proto.Progress"] = self._onProgressMessage
|
||||
self._message_handlers["cura.proto.GCodeLayer"] = self._onGCodeLayerMessage
|
||||
self._message_handlers["cura.proto.GCodePrefix"] = self._onGCodePrefixMessage
|
||||
self._message_handlers["cura.proto.ObjectPrintTime"] = self._onObjectPrintTimeMessage
|
||||
self._message_handlers["cura.proto.SlicingFinished"] = self._onSlicingFinishedMessage
|
||||
|
||||
self._slicing = False
|
||||
self._restart = False
|
||||
@ -74,6 +76,8 @@ class CuraEngineBackend(Backend):
|
||||
|
||||
self._message = None
|
||||
|
||||
self.backendQuit.connect(self._onBackendQuit)
|
||||
|
||||
self.backendConnected.connect(self._onBackendConnected)
|
||||
Application.getInstance().getController().toolOperationStarted.connect(self._onToolOperationStarted)
|
||||
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.
|
||||
|
||||
self.processingProgress.emit(0.0)
|
||||
self.backendStateChange.emit(BackendState.NOT_STARTED)
|
||||
if self._message:
|
||||
self._message.setProgress(-1)
|
||||
#else:
|
||||
@ -148,6 +153,7 @@ class CuraEngineBackend(Backend):
|
||||
Logger.log("d", "Killing engine process")
|
||||
try:
|
||||
self._process.terminate()
|
||||
self._process = None
|
||||
except: # terminating a process that is already terminating causes an exception, silently ignore this.
|
||||
pass
|
||||
|
||||
@ -177,7 +183,7 @@ class CuraEngineBackend(Backend):
|
||||
if self._profile:
|
||||
self._profile.settingValueChanged.disconnect(self._onSettingChanged)
|
||||
|
||||
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
|
||||
self._profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||
if self._profile:
|
||||
self._profile.settingValueChanged.connect(self._onSettingChanged)
|
||||
self._onChanged()
|
||||
@ -197,15 +203,10 @@ class CuraEngineBackend(Backend):
|
||||
self._message.setProgress(round(message.amount * 100))
|
||||
|
||||
self.processingProgress.emit(message.amount)
|
||||
self.backendStateChange.emit(BackendState.PROCESSING)
|
||||
|
||||
def _onGCodeLayerMessage(self, message):
|
||||
self._scene.gcode_list.append(message.data.decode("utf-8", "replace"))
|
||||
|
||||
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)
|
||||
def _onSlicingFinishedMessage(self, message):
|
||||
self.backendStateChange.emit(BackendState.DONE)
|
||||
self.processingProgress.emit(1.0)
|
||||
|
||||
self._slicing = False
|
||||
@ -215,23 +216,17 @@ class CuraEngineBackend(Backend):
|
||||
self._message.hide()
|
||||
self._message = None
|
||||
|
||||
if self._always_restart:
|
||||
try:
|
||||
self._process.terminate()
|
||||
self._createSocket()
|
||||
except: # terminating a process that is already terminating causes an exception, silently ignore this.
|
||||
pass
|
||||
def _onGCodeLayerMessage(self, message):
|
||||
self._scene.gcode_list.append(message.data.decode("utf-8", "replace"))
|
||||
|
||||
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)
|
||||
|
||||
def _createSocket(self):
|
||||
super()._createSocket()
|
||||
|
||||
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)
|
||||
super()._createSocket(os.path.abspath(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "Cura.proto")))
|
||||
|
||||
## Manually triggers a reslice
|
||||
def forceSlice(self):
|
||||
@ -254,7 +249,6 @@ class CuraEngineBackend(Backend):
|
||||
|
||||
def _onToolOperationStopped(self, tool):
|
||||
self._enabled = True # Tool stop, start listening for changes again.
|
||||
self._onChanged()
|
||||
|
||||
def _onActiveViewChanged(self):
|
||||
if Application.getInstance().getController().getActiveView():
|
||||
@ -270,7 +264,11 @@ class CuraEngineBackend(Backend):
|
||||
else:
|
||||
self._layer_view_active = False
|
||||
|
||||
|
||||
def _onInstanceChanged(self):
|
||||
self._terminate()
|
||||
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
|
||||
Job.yieldThread()
|
||||
|
||||
settings = Application.getInstance().getMachineManager().getActiveProfile()
|
||||
settings = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||
|
||||
center = None
|
||||
if not settings.getSettingValue("machine_center_is_zero"):
|
||||
@ -56,21 +56,27 @@ class ProcessSlicedObjectListJob(Job):
|
||||
layer_data = LayerData.LayerData()
|
||||
|
||||
layer_count = 0
|
||||
for object in self._message.objects:
|
||||
layer_count += len(object.layers)
|
||||
for i in range(self._message.repeatedMessageCount("objects")):
|
||||
layer_count += self._message.getRepeatedMessage("objects", i).repeatedMessageCount("layers")
|
||||
|
||||
current_layer = 0
|
||||
for object in self._message.objects:
|
||||
for i in range(self._message.repeatedMessageCount("objects")):
|
||||
object = self._message.getRepeatedMessage("objects", i)
|
||||
try:
|
||||
node = object_id_map[object.id]
|
||||
except KeyError:
|
||||
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.setLayerHeight(layer.id, layer.height)
|
||||
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 = 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)
|
||||
@ -83,8 +89,6 @@ class ProcessSlicedObjectListJob(Job):
|
||||
|
||||
layer_data.addPolygon(layer.id, polygon.type, points, polygon.line_width)
|
||||
|
||||
Job.yieldThread()
|
||||
|
||||
current_layer += 1
|
||||
progress = (current_layer / layer_count) * 100
|
||||
# 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 . import Cura_pb2
|
||||
|
||||
## Formatter class that handles token expansion in start/end gcod
|
||||
class GcodeStartEndFormatter(Formatter):
|
||||
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)
|
||||
|
||||
slice_message = Cura_pb2.Slice()
|
||||
slice_message = self._socket.createMessage("cura.proto.Slice");
|
||||
|
||||
for group in object_groups:
|
||||
group_message = slice_message.object_lists.add()
|
||||
group_message = slice_message.addRepeatedMessage("object_lists");
|
||||
for object in group:
|
||||
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
|
||||
|
||||
obj = group_message.objects.add()
|
||||
obj = group_message.addRepeatedMessage("objects");
|
||||
obj.id = id(object)
|
||||
|
||||
verts = numpy.array(mesh_data.getVertices())
|
||||
verts[:,[1,2]] = verts[:,[2,1]]
|
||||
verts[:,1] *= -1
|
||||
obj.vertices = verts.tostring()
|
||||
|
||||
obj.vertices = verts
|
||||
|
||||
self._handlePerObjectSettings(object, obj)
|
||||
|
||||
@ -115,13 +114,13 @@ class StartSliceJob(Job):
|
||||
return str(value).encode("utf-8")
|
||||
|
||||
def _sendSettings(self, profile):
|
||||
msg = Cura_pb2.SettingList()
|
||||
msg = self._socket.createMessage("cura.proto.SettingList");
|
||||
settings = profile.getAllSettingValues(include_machine = True)
|
||||
start_gcode = settings["machine_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
|
||||
for key, value in settings.items():
|
||||
s = msg.settings.add()
|
||||
s = msg.addRepeatedMessage("settings")
|
||||
s.name = key
|
||||
if key == "machine_start_gcode" or key == "machine_end_gcode":
|
||||
s.value = self._expandGcodeTokens(key, value, settings)
|
||||
@ -134,7 +133,7 @@ class StartSliceJob(Job):
|
||||
profile = node.callDecoration("getProfile")
|
||||
if profile:
|
||||
for key, value in profile.getAllSettingValues().items():
|
||||
setting = message.settings.add()
|
||||
setting = message.addRepeatedMessage("settings")
|
||||
setting.name = key
|
||||
setting.value = str(value).encode()
|
||||
|
||||
@ -145,7 +144,7 @@ class StartSliceJob(Job):
|
||||
return
|
||||
|
||||
for key, value in object_settings.items():
|
||||
setting = message.settings.add()
|
||||
setting = message.addRepeatedMessage("settings")
|
||||
setting.name = key
|
||||
setting.value = str(value).encode()
|
||||
|
||||
|
@ -40,7 +40,7 @@ class GCodeWriter(MeshWriter):
|
||||
if gcode_list:
|
||||
for gcode in gcode_list:
|
||||
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)
|
||||
return True
|
||||
|
||||
|
@ -10,16 +10,13 @@ import UM 1.1 as UM
|
||||
|
||||
UM.Dialog
|
||||
{
|
||||
width: 350*Screen.devicePixelRatio;
|
||||
minimumWidth: 350*Screen.devicePixelRatio;
|
||||
maximumWidth: 350*Screen.devicePixelRatio;
|
||||
width: 350 * Screen.devicePixelRatio;
|
||||
minimumWidth: 350 * Screen.devicePixelRatio;
|
||||
maximumWidth: 350 * Screen.devicePixelRatio;
|
||||
|
||||
height: 220*Screen.devicePixelRatio;
|
||||
minimumHeight: 220*Screen.devicePixelRatio;
|
||||
maximumHeight: 220*Screen.devicePixelRatio;
|
||||
|
||||
|
||||
modality: Qt.Modal
|
||||
height: 250 * Screen.devicePixelRatio;
|
||||
minimumHeight: 250 * Screen.devicePixelRatio;
|
||||
maximumHeight: 250 * Screen.devicePixelRatio;
|
||||
|
||||
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.\"")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
Text {
|
||||
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.")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
Text {
|
||||
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.")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
Text {
|
||||
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")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
Text {
|
||||
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.")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
//Empty label so 2 column layout works.
|
||||
Text {
|
||||
@ -159,7 +151,6 @@ UM.Dialog
|
||||
text: catalog.i18nc("@info:tooltip","The amount of smoothing to apply to the image.")
|
||||
Row {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
Text {
|
||||
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:
|
||||
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.currentLayerNumChanged.emit()
|
||||
else:
|
||||
self.setLayer(int(self._max_layers))
|
||||
self.maxLayersChanged.emit()
|
||||
|
||||
maxLayersChanged = Signal()
|
||||
currentLayerNumChanged = Signal()
|
||||
|
@ -24,16 +24,11 @@ class PerObjectSettingsModel(ListModel):
|
||||
super().__init__(parent)
|
||||
self._scene = Application.getInstance().getController().getScene()
|
||||
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.XRole,"x")
|
||||
self.addRoleName(self.YRole,"y")
|
||||
self.addRoleName(self.MaterialRole, "material")
|
||||
self.addRoleName(self.ProfileRole, "profile")
|
||||
self.addRoleName(self.SettingsRole, "settings")
|
||||
self._updateModel()
|
||||
|
||||
@pyqtSlot("quint64", str)
|
||||
def setObjectProfile(self, object_id, profile_name):
|
||||
@ -72,27 +67,11 @@ class PerObjectSettingsModel(ListModel):
|
||||
if len(node.callDecoration("getAllSettings")) == 0:
|
||||
node.removeDecorator(SettingOverrideDecorator)
|
||||
|
||||
def _updatePositions(self, source):
|
||||
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):
|
||||
def _updateModel(self):
|
||||
self.clear()
|
||||
camera = Application.getInstance().getController().getScene().getActiveCamera()
|
||||
for node in BreadthFirstIterator(self._root):
|
||||
if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable():
|
||||
continue
|
||||
|
||||
projected_position = camera.project(node.getWorldPosition())
|
||||
|
||||
node_profile = node.callDecoration("getProfile")
|
||||
if not node_profile:
|
||||
node_profile = "global"
|
||||
@ -101,8 +80,6 @@ class PerObjectSettingsModel(ListModel):
|
||||
|
||||
self.appendItem({
|
||||
"id": id(node),
|
||||
"x": float(projected_position[0]),
|
||||
"y": float(projected_position[1]),
|
||||
"material": "",
|
||||
"profile": node_profile,
|
||||
"settings": SettingOverrideModel.SettingOverrideModel(node)
|
||||
|
@ -10,8 +10,7 @@ import UM 1.1 as UM
|
||||
|
||||
Item {
|
||||
id: base;
|
||||
property int currentIndex: UM.ActiveTool.properties.SelectedIndex;
|
||||
property string printSequence: UM.ActiveTool.properties.PrintSequence;
|
||||
property int currentIndex: UM.ActiveTool.properties.getValue("SelectedIndex")
|
||||
|
||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
||||
|
||||
@ -25,14 +24,6 @@ Item {
|
||||
|
||||
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 {
|
||||
id: profileSelection
|
||||
|
||||
@ -47,11 +38,11 @@ Item {
|
||||
|
||||
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: {
|
||||
var item = UM.ActiveTool.properties.Model.getItem(base.currentIndex);
|
||||
UM.ActiveTool.properties.Model.setObjectProfile(item.id, value)
|
||||
var item = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex);
|
||||
UM.ActiveTool.properties.getValue("Model").setObjectProfile(item.id, value)
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,7 +54,7 @@ Item {
|
||||
Repeater {
|
||||
id: settings;
|
||||
|
||||
model: UM.ActiveTool.properties.Model.getItem(base.currentIndex).settings
|
||||
model: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).settings
|
||||
|
||||
UM.SettingItem {
|
||||
width: UM.Theme.sizes.setting.width;
|
||||
@ -91,7 +82,7 @@ Item {
|
||||
width: 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
|
||||
{
|
||||
@ -202,6 +193,7 @@ Item {
|
||||
|
||||
width: parent.width;
|
||||
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 {
|
||||
id: categoryHeader;
|
||||
@ -237,8 +229,6 @@ Item {
|
||||
|
||||
property variant settingsModel: model.settings;
|
||||
|
||||
visible: model.visible;
|
||||
|
||||
Column {
|
||||
id: settingsColumn;
|
||||
|
||||
@ -272,10 +262,12 @@ Item {
|
||||
x: model.depth * UM.Theme.sizes.default_margin.width;
|
||||
text: model.name;
|
||||
tooltip: model.description;
|
||||
visible: !model.global_only
|
||||
height: model.global_only ? 0 : undefined
|
||||
|
||||
onClicked: {
|
||||
var object_id = UM.ActiveTool.properties.Model.getItem(base.currentIndex).id;
|
||||
UM.ActiveTool.properties.Model.addSettingOverride(object_id, model.key);
|
||||
var object_id = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).id;
|
||||
UM.ActiveTool.properties.getValue("Model").addSettingOverride(object_id, model.key);
|
||||
settingPickDialog.visible = false;
|
||||
}
|
||||
|
||||
|
@ -4,26 +4,29 @@
|
||||
from UM.Tool import Tool
|
||||
from UM.Scene.Selection import Selection
|
||||
from UM.Application import Application
|
||||
from UM.Qt.ListModel import ListModel
|
||||
|
||||
from . import PerObjectSettingsModel
|
||||
|
||||
class PerObjectSettingsTool(Tool):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._model = None
|
||||
|
||||
self.setExposedProperties("Model", "SelectedIndex", "PrintSequence")
|
||||
self.setExposedProperties("Model", "SelectedIndex")
|
||||
|
||||
def event(self, event):
|
||||
return False
|
||||
|
||||
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):
|
||||
selected_object_id = id(Selection.getSelectedObject(0))
|
||||
index = self.getModel().find("id", selected_object_id)
|
||||
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.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
|
||||
|
||||
def requestWrite(self, node, file_name = None):
|
||||
def requestWrite(self, node, file_name = None, filter_by_machine = False):
|
||||
if self._writing:
|
||||
raise OutputDeviceError.DeviceBusyError()
|
||||
|
||||
file_type = Preferences.getInstance().getValue("removable_drive/file_type")
|
||||
gcode_writer = Application.getInstance().getMeshFileHandler().getWriterByMimeType(file_type)
|
||||
if not gcode_writer:
|
||||
Logger.log("e", "Could not find writer for MIME type %s, not writing to removable drive %s", file_type, self.getName())
|
||||
file_formats = Application.getInstance().getMeshFileHandler().getSupportedFileTypesWrite() #Formats supported by this application.
|
||||
if filter_by_machine:
|
||||
machine_file_formats = Application.getInstance().getMachineManager().getActiveMachineInstance().getMachineDefinition().getFileFormats()
|
||||
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()
|
||||
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:
|
||||
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())
|
||||
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:
|
||||
Logger.log("d", "Writing to %s", file_name)
|
||||
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.progress.connect(self._onProgress)
|
||||
job.finished.connect(self._onFinished)
|
||||
|
@ -44,7 +44,7 @@ class SliceInfo(Extension):
|
||||
def _onWriteStarted(self, output_device):
|
||||
if not Preferences.getInstance().getValue("info/send_slice_info"):
|
||||
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
|
||||
#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.setUniformValue("u_diffuseColor", [0.68, 0.68, 0.68, 1.0])
|
||||
|
||||
if Application.getInstance().getMachineManager().getActiveProfile():
|
||||
profile = Application.getInstance().getMachineManager().getActiveProfile()
|
||||
if Application.getInstance().getMachineManager().getWorkingProfile():
|
||||
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||
|
||||
if profile.getSettingValue("support_enable") or not Preferences.getInstance().getValue("view/show_overhang"):
|
||||
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"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Language-Team: none\n"
|
||||
"Language: en\n"
|
||||
@ -28,10 +28,7 @@ msgid ""
|
||||
"<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>"
|
||||
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>"
|
||||
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>"
|
||||
|
||||
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
||||
msgctxt "@action:button"
|
||||
@ -155,7 +152,7 @@ msgstr "Ejected {0}. You can now safely remove the drive."
|
||||
#, python-brace-format
|
||||
msgctxt "@info:status"
|
||||
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
|
||||
msgctxt "@label"
|
||||
@ -165,7 +162,7 @@ msgstr "Removable Drive Output Device Plugin"
|
||||
#: /home/tamara/2.1/Cura/plugins/RemovableDriveOutputDevice/__init__.py:14
|
||||
msgctxt "@info:whatsthis"
|
||||
msgid "Provides removable drive hotplugging and writing support"
|
||||
msgstr "Provides removable drive hotplugging and writing support"
|
||||
msgstr "Provides removable drive hot plugging and writing support"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ChangeLogPlugin/ChangeLog.py:34
|
||||
msgctxt "@item:inmenu"
|
||||
@ -231,7 +228,7 @@ msgstr "Update Firmware"
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
||||
msgctxt "@info"
|
||||
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
|
||||
msgctxt "@item:inmenu"
|
||||
@ -257,15 +254,13 @@ msgstr "USB printing"
|
||||
msgctxt "@info:whatsthis"
|
||||
msgid ""
|
||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||
msgstr ""
|
||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||
msgstr "Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:35
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"Cura automatically sends slice info. You can disable this in preferences"
|
||||
msgstr ""
|
||||
"Cura automatically sends slice info. You can disable this in preferences"
|
||||
msgstr "Cura automatically sends slice info. You can disable this in preferences"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
||||
msgctxt "@action:button"
|
||||
@ -425,7 +420,7 @@ msgstr "Firmware Update"
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:38
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@label"
|
||||
@ -490,7 +485,7 @@ msgstr "Height (mm)"
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
@ -500,7 +495,7 @@ msgstr "Base (mm)"
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
@ -510,7 +505,7 @@ msgstr "Width (mm)"
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
@ -524,11 +519,7 @@ msgid ""
|
||||
"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."
|
||||
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 behavior "
|
||||
"such that black pixels represent high points on the mesh and white pixels "
|
||||
"represent low points on the mesh."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
||||
msgctxt "@item:inlistbox"
|
||||
@ -560,9 +551,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
||||
"to 'All at Once'."
|
||||
msgstr ""
|
||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
||||
"to 'All at Once'."
|
||||
msgstr "Per Object Settings behaviour may be unexpected when 'Print sequence' is set to 'All at Once'."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:42
|
||||
msgctxt "@label"
|
||||
@ -577,7 +566,7 @@ msgstr "Add Setting"
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
||||
msgctxt "@title:window"
|
||||
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
|
||||
msgctxt "@label:textbox"
|
||||
@ -651,10 +640,7 @@ msgid ""
|
||||
"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?"
|
||||
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?"
|
||||
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?"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:38
|
||||
msgctxt "@label"
|
||||
@ -749,7 +735,7 @@ msgstr "Delete Object"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Actions.qml:144
|
||||
msgctxt "@action:inmenu"
|
||||
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
|
||||
msgctxt "@action:inmenu menubar:edit"
|
||||
@ -814,8 +800,7 @@ msgstr "Hollow"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
||||
msgctxt "@label"
|
||||
msgid "No (0%) infill will leave your model hollow at the cost of low strength"
|
||||
msgstr ""
|
||||
"No (0%) infill will leave your model hollow at the cost of low strength"
|
||||
msgstr "No (0%) infill will leave your model hollow at the cost of low strength"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:243
|
||||
msgctxt "@label"
|
||||
@ -862,9 +847,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
||||
"your object which is easy to cut off afterwards."
|
||||
msgstr ""
|
||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
||||
"your object which is easy to cut off afterwards."
|
||||
msgstr "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
|
||||
msgctxt "@option:check"
|
||||
@ -876,9 +859,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"Enable printing support structures. This will build up supporting structures "
|
||||
"below the model to prevent the model from sagging or printing in mid air."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:14
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:492
|
||||
@ -920,15 +901,13 @@ msgstr "Polish"
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"You will need to restart the application for language changes to have effect."
|
||||
msgstr ""
|
||||
"You will need to restart the application for language changes to have effect."
|
||||
msgstr "You will need to restart the application for language changes to have effect."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
||||
msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Should objects on the platform be moved so that they no longer intersect."
|
||||
msgstr ""
|
||||
"Should objects on the platform be moved so that they no longer intersect."
|
||||
msgstr "Should objects on the platform be moved so that they no longer intersect."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
||||
msgctxt "@option:check"
|
||||
@ -939,8 +918,7 @@ msgstr "Ensure objects are kept apart"
|
||||
msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Should opened files be scaled to the build volume if they are too large?"
|
||||
msgstr ""
|
||||
"Should opened files be scaled to the build volume if they are too large?"
|
||||
msgstr "Should opened files be scaled to the build volume if they are too large?"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
||||
msgctxt "@option:check"
|
||||
@ -953,10 +931,7 @@ msgid ""
|
||||
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
||||
"models, IP addresses or other personally identifiable information is sent or "
|
||||
"stored."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:150
|
||||
msgctxt "@option:check"
|
||||
@ -973,9 +948,7 @@ msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
||||
"will nog print properly."
|
||||
msgstr ""
|
||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
||||
"will nog print properly."
|
||||
msgstr "Highlight unsupported areas of the model in red. Without support these areas will not print properly."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:42
|
||||
msgctxt "@option:check"
|
||||
@ -987,14 +960,12 @@ msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Moves the camera so the object is in the center of the view when an object "
|
||||
"is selected"
|
||||
msgstr ""
|
||||
"Moves the camera so the object is in the center of the view when an object "
|
||||
"is selected"
|
||||
msgstr "Moves the camera so the object is in the centre of the view when an object is selected"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
||||
msgctxt "@action:button"
|
||||
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/AddMachine.qml:275
|
||||
@ -1007,9 +978,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"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"
|
||||
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"
|
||||
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"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UltimakerCheckup.qml:100
|
||||
msgctxt "@action:button"
|
||||
@ -1107,14 +1076,12 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
||||
"would like to know which upgrades you have in your machine:"
|
||||
msgstr ""
|
||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
||||
"would like to know which upgrades you have in your machine:"
|
||||
msgstr "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
|
||||
msgctxt "@option:check"
|
||||
msgid "Extruder driver ugrades"
|
||||
msgstr "Extruder driver ugrades"
|
||||
msgstr "Extruder driver upgrades"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:63
|
||||
msgctxt "@option:check"
|
||||
@ -1133,11 +1100,7 @@ msgid ""
|
||||
"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"
|
||||
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 webshop "
|
||||
"or found on thingiverse as thing:26094"
|
||||
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"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
||||
msgctxt "@label"
|
||||
@ -1149,9 +1112,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"This printer name has already been used. Please choose a different printer "
|
||||
"name."
|
||||
msgstr ""
|
||||
"This printer name has already been used. Please choose a different printer "
|
||||
"name."
|
||||
msgstr "This printer name has already been used. Please choose a different printer name."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:245
|
||||
msgctxt "@label:textbox"
|
||||
@ -1180,10 +1141,7 @@ msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:62
|
||||
msgctxt "@label"
|
||||
@ -1191,10 +1149,7 @@ msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
||||
msgctxt "@action:button"
|
||||
@ -1204,12 +1159,12 @@ msgstr "Move to Next Position"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:109
|
||||
msgctxt "@action:button"
|
||||
msgid "Skip Bedleveling"
|
||||
msgstr "Skip Bedleveling"
|
||||
msgstr "Skip Bed Levelling"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@label"
|
||||
@ -1217,28 +1172,21 @@ msgid ""
|
||||
"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."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
||||
"to make better prints, and make calibration easier."
|
||||
msgstr ""
|
||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
||||
"to make better prints, and make calibration easier."
|
||||
msgstr "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
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"Cura requires these new features and thus your firmware will most likely "
|
||||
"need to be upgraded. You can do so now."
|
||||
msgstr ""
|
||||
"Cura requires these new features and thus your firmware will most likely "
|
||||
"need to be upgraded. You can do so now."
|
||||
msgstr "Cura requires these new features and thus your firmware will most likely need to be upgraded. You can do this now."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
||||
msgctxt "@action:button"
|
||||
@ -1253,7 +1201,7 @@ msgstr "Skip Upgrade"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
||||
msgctxt "@label:PrintjobStatus"
|
||||
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
|
||||
msgctxt "@label:PrintjobStatus"
|
||||
@ -1289,8 +1237,7 @@ msgstr "End-to-end solution for fused filament 3D printing."
|
||||
msgctxt "@info:credit"
|
||||
msgid ""
|
||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||
msgstr ""
|
||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||
msgstr "Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:16
|
||||
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"
|
||||
"Report-Msgid-Bugs-To: \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"
|
||||
"Language-Team: \n"
|
||||
"Language: fi_FI\n"
|
||||
@ -30,10 +30,7 @@ msgid ""
|
||||
"<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>"
|
||||
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>"
|
||||
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>"
|
||||
|
||||
#: /home/tamara/2.1/Cura/cura/CrashHandler.py:52
|
||||
msgctxt "@action:button"
|
||||
@ -56,25 +53,25 @@ msgstr "Ladataan käyttöliittymää..."
|
||||
#, python-format
|
||||
msgctxt "@info"
|
||||
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
|
||||
msgctxt "@label"
|
||||
msgid "Cura Profile Reader"
|
||||
msgstr ""
|
||||
msgstr "Cura-profiilin lukija"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileReader/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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/CuraProfileWriter/__init__.py:21
|
||||
#, fuzzy
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Cura Profile"
|
||||
msgstr "&Profiili"
|
||||
msgstr "Cura-profiili"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:12
|
||||
#, fuzzy
|
||||
@ -91,12 +88,12 @@ msgstr "Näyttää kerrosnäkymän."
|
||||
#: /home/tamara/2.1/Cura/plugins/XRayView/__init__.py:19
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "X-Ray"
|
||||
msgstr ""
|
||||
msgstr "Kerros"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:12
|
||||
msgctxt "@label"
|
||||
msgid "3MF Reader"
|
||||
msgstr "3MF Reader"
|
||||
msgstr "3MF-lukija"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/3MFReader/__init__.py:15
|
||||
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
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@info:whatsthis"
|
||||
@ -179,7 +176,7 @@ msgstr "Tukee irrotettavan aseman kytkemistä lennossa ja sille kirjoittamista"
|
||||
#, fuzzy
|
||||
msgctxt "@item:inmenu"
|
||||
msgid "Show Changelog"
|
||||
msgstr "Muutosloki"
|
||||
msgstr "Näytä muutosloki"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ChangeLogPlugin/__init__.py:12
|
||||
#, 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
|
||||
msgctxt "@info:status"
|
||||
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:120
|
||||
@ -217,7 +214,7 @@ msgstr "Linkki CuraEngine-viipalointiin taustalla"
|
||||
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:12
|
||||
msgctxt "@label"
|
||||
msgid "GCode Writer"
|
||||
msgstr "GCode Writer"
|
||||
msgstr "GCode-kirjoitin"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/GCodeWriter/__init__.py:15
|
||||
msgctxt "@info:whatsthis"
|
||||
@ -244,7 +241,7 @@ msgstr "Päivitä laiteohjelmisto"
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/USBPrinterManager.py:101
|
||||
msgctxt "@info"
|
||||
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
|
||||
msgctxt "@item:inmenu"
|
||||
@ -254,7 +251,7 @@ msgstr "USB-tulostus"
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:36
|
||||
msgctxt "@action:button"
|
||||
msgid "Print with USB"
|
||||
msgstr "Tulosta USB:llä"
|
||||
msgstr "Tulostus USB:n kautta"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/PrinterConnection.py:37
|
||||
msgctxt "@info:tooltip"
|
||||
@ -270,17 +267,13 @@ msgstr "USB-tulostus"
|
||||
msgctxt "@info:whatsthis"
|
||||
msgid ""
|
||||
"Accepts G-Code and sends them to a printer. Plugin can also update firmware."
|
||||
msgstr ""
|
||||
"Hyväksyy G-Code-määrittelyt ja lähettää ne tulostimeen. Lisäosa voi myös "
|
||||
"päivittää laiteohjelmiston."
|
||||
msgstr "Hyväksyy GCode-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
|
||||
msgctxt "@info"
|
||||
msgid ""
|
||||
"Cura automatically sends slice info. You can disable this in preferences"
|
||||
msgstr ""
|
||||
"Cura lähettää automaattisesti viipalointitietoa. Voit lisäasetuksista kytkeä "
|
||||
"sen pois käytöstä"
|
||||
msgstr "Cura lähettää automaattisesti viipalointitietoa. Voit lisäasetuksista kytkeä sen pois käytöstä"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/SliceInfo.py:36
|
||||
msgctxt "@action:button"
|
||||
@ -295,69 +288,67 @@ msgstr "Viipalointitiedot"
|
||||
#: /home/tamara/2.1/Cura/plugins/SliceInfoPlugin/__init__.py:13
|
||||
msgctxt "@info:whatsthis"
|
||||
msgid "Submits anonymous slice info. Can be disabled through preferences."
|
||||
msgstr ""
|
||||
"Lähettää anonyymiä viipalointitietoa. Voidaan lisäasetuksista kytkeä pois "
|
||||
"käytöstä."
|
||||
msgstr "Lähettää anonyymiä viipalointitietoa. Voidaan lisäasetuksista kytkeä pois käytöstä."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:12
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Cura Profile Writer"
|
||||
msgstr "GCode Writer"
|
||||
msgstr "Cura-profiilin kirjoitin"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/CuraProfileWriter/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Image Reader"
|
||||
msgstr "3MF Reader"
|
||||
msgstr "Kuvanlukija"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:15
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "JPG Image"
|
||||
msgstr ""
|
||||
msgstr "JPG-kuva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:25
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "JPEG Image"
|
||||
msgstr ""
|
||||
msgstr "JPEG-kuva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:29
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "PNG Image"
|
||||
msgstr ""
|
||||
msgstr "PNG-kuva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:33
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "BMP Image"
|
||||
msgstr ""
|
||||
msgstr "BMP-kuva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/__init__.py:37
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "GIF Image"
|
||||
msgstr ""
|
||||
msgstr "GIF-kuva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:12
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "GCode Profile Reader"
|
||||
msgstr "GCode Writer"
|
||||
msgstr "GCode-profiilin lukija"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/GCodeProfileReader/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
#, fuzzy
|
||||
@ -369,13 +360,13 @@ msgstr "GCode-tiedosto"
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Solid View"
|
||||
msgstr "Kiinteä"
|
||||
msgstr "Kiinteä näkymä"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/SolidView/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
#, fuzzy
|
||||
@ -401,50 +392,50 @@ msgstr "Kerrokset"
|
||||
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:12
|
||||
msgctxt "@label"
|
||||
msgid "Auto Save"
|
||||
msgstr ""
|
||||
msgstr "Automaattitallennus"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/AutoSave/__init__.py:15
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
msgctxt "@label"
|
||||
msgid "Per Object Settings Tool"
|
||||
msgstr ""
|
||||
msgstr "Kappalekohtaisten asetusten työkalu"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Per Object Settings"
|
||||
msgstr "&Yhdistä kappaleet"
|
||||
msgstr "Kappalekohtaiset asetukset"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/__init__.py:20
|
||||
msgctxt "@info:tooltip"
|
||||
msgid "Configure Per Object Settings"
|
||||
msgstr ""
|
||||
msgstr "Määritä kappalekohtaiset asetukset"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:12
|
||||
msgctxt "@label"
|
||||
msgid "Legacy Cura Profile Reader"
|
||||
msgstr ""
|
||||
msgstr "Aikaisempien Cura-profiilien lukija"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/LegacyProfileReader/__init__.py:15
|
||||
#, fuzzy
|
||||
msgctxt "@info:whatsthis"
|
||||
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
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Cura 15.04 profiles"
|
||||
msgstr ""
|
||||
msgstr "Cura 15.04 -profiilit"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/USBPrinting/FirmwareUpdateWindow.qml:20
|
||||
msgctxt "@title:window"
|
||||
@ -512,47 +503,47 @@ msgstr "Peruuta"
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:24
|
||||
msgctxt "@title:window"
|
||||
msgid "Convert Image..."
|
||||
msgstr ""
|
||||
msgstr "Muunna kuva..."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:38
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
msgid "Height (mm)"
|
||||
msgstr ""
|
||||
msgstr "Korkeus (mm)"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:62
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
msgid "Base (mm)"
|
||||
msgstr ""
|
||||
msgstr "Pohja (mm)"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:86
|
||||
msgctxt "@info:tooltip"
|
||||
msgid "The width in millimeters on the build plate."
|
||||
msgstr ""
|
||||
msgstr "Leveys millimetreinä alustalla."
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:92
|
||||
msgctxt "@action:label"
|
||||
msgid "Width (mm)"
|
||||
msgstr ""
|
||||
msgstr "Leveys (mm)"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:111
|
||||
msgctxt "@info:tooltip"
|
||||
msgid "The depth in millimeters on the build plate"
|
||||
msgstr ""
|
||||
msgstr "Syvyys millimetreinä alustalla"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:117
|
||||
msgctxt "@action:label"
|
||||
msgid "Depth (mm)"
|
||||
msgstr ""
|
||||
msgstr "Syvyys (mm)"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:135
|
||||
msgctxt "@info:tooltip"
|
||||
@ -561,70 +552,70 @@ msgid ""
|
||||
"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."
|
||||
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
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Lighter is higher"
|
||||
msgstr ""
|
||||
msgstr "Vaaleampi on korkeampi"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:149
|
||||
msgctxt "@item:inlistbox"
|
||||
msgid "Darker is higher"
|
||||
msgstr ""
|
||||
msgstr "Tummempi on korkeampi"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:159
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@action:label"
|
||||
msgid "Smoothing"
|
||||
msgstr ""
|
||||
msgstr "Tasoitus"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/ImageReader/ConfigUI.qml:193
|
||||
msgctxt "@action:button"
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
msgstr "OK"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:31
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"Per Object Settings behavior may be unexpected when 'Print sequence' is set "
|
||||
"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
|
||||
msgctxt "@label"
|
||||
msgid "Object profile"
|
||||
msgstr ""
|
||||
msgstr "Kappaleprofiili"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:126
|
||||
#, fuzzy
|
||||
msgctxt "@action:button"
|
||||
msgid "Add Setting"
|
||||
msgstr "&Asetukset"
|
||||
msgstr "Lisää asetus"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:166
|
||||
msgctxt "@title:window"
|
||||
msgid "Pick a Setting to Customize"
|
||||
msgstr ""
|
||||
msgstr "Valitse mukautettava asetus"
|
||||
|
||||
#: /home/tamara/2.1/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:177
|
||||
msgctxt "@label:textbox"
|
||||
msgid "Filter..."
|
||||
msgstr ""
|
||||
msgstr "Suodatin..."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:198
|
||||
msgctxt "@label"
|
||||
msgid "00h 00min"
|
||||
msgstr ""
|
||||
msgstr "00 h 00 min"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
||||
msgctxt "@label"
|
||||
msgid "0.0 m"
|
||||
msgstr ""
|
||||
msgstr "0,0 m"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/JobSpecs.qml:218
|
||||
#, fuzzy
|
||||
@ -636,29 +627,29 @@ msgstr "%1 m"
|
||||
#, fuzzy
|
||||
msgctxt "@label:listbox"
|
||||
msgid "Print Job"
|
||||
msgstr "Tulosta"
|
||||
msgstr "Tulostustyö"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:50
|
||||
#, fuzzy
|
||||
msgctxt "@label:listbox"
|
||||
msgid "Printer:"
|
||||
msgstr "Tulosta"
|
||||
msgstr "Tulostin:"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarHeader.qml:107
|
||||
msgctxt "@label"
|
||||
msgid "Nozzle:"
|
||||
msgstr ""
|
||||
msgstr "Suutin:"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:89
|
||||
#, fuzzy
|
||||
msgctxt "@label:listbox"
|
||||
msgid "Setup"
|
||||
msgstr "Tulostusasetukset"
|
||||
msgstr "Asetukset"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:215
|
||||
msgctxt "@title:tab"
|
||||
msgid "Simple"
|
||||
msgstr "Suppea"
|
||||
msgstr "Yksinkertainen"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Sidebar.qml:216
|
||||
msgctxt "@title:tab"
|
||||
@ -682,7 +673,7 @@ msgstr "Lisää tulostin"
|
||||
#, fuzzy
|
||||
msgctxt "@title:window"
|
||||
msgid "Load profile"
|
||||
msgstr "&Profiili"
|
||||
msgstr "Lataa profiili"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:24
|
||||
msgctxt "@label"
|
||||
@ -690,29 +681,29 @@ msgid ""
|
||||
"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?"
|
||||
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
|
||||
msgctxt "@label"
|
||||
msgid "Show details."
|
||||
msgstr ""
|
||||
msgstr "Näytä tiedot."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:50
|
||||
#, fuzzy
|
||||
msgctxt "@action:button"
|
||||
msgid "Merge settings"
|
||||
msgstr "&Yhdistä kappaleet"
|
||||
msgstr "Yhdistä asetukset"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/LoadProfileDialog.qml:54
|
||||
msgctxt "@action:button"
|
||||
msgid "Reset profile"
|
||||
msgstr ""
|
||||
msgstr "Nollaa profiili"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/ProfileSetup.qml:28
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Profile:"
|
||||
msgstr "&Profiili"
|
||||
msgstr "Profiili:"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/EngineLog.qml:15
|
||||
#, fuzzy
|
||||
@ -868,24 +859,24 @@ msgstr "Täyttö:"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:237
|
||||
msgctxt "@label"
|
||||
msgid "Hollow"
|
||||
msgstr ""
|
||||
msgstr "Ontto"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:239
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@label"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
msgstr "Harva"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:245
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@label"
|
||||
@ -915,26 +906,26 @@ msgstr "Avustimet:"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:296
|
||||
msgctxt "@option:check"
|
||||
msgid "Generate Brim"
|
||||
msgstr ""
|
||||
msgstr "Muodosta reunus"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:312
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"Enable printing a brim. This will add a single-layer-thick flat area around "
|
||||
"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
|
||||
msgctxt "@option:check"
|
||||
msgid "Generate Support Structure"
|
||||
msgstr ""
|
||||
msgstr "Muodosta tukirakenne"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SidebarSimple.qml:346
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"Enable printing support structures. This will build up supporting structures "
|
||||
"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/Cura.qml:492
|
||||
@ -946,7 +937,7 @@ msgstr "Yleiset"
|
||||
#, fuzzy
|
||||
msgctxt "@label"
|
||||
msgid "Language:"
|
||||
msgstr "Kieli"
|
||||
msgstr "Kieli:"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:64
|
||||
msgctxt "@item:inlistbox"
|
||||
@ -977,16 +968,13 @@ msgstr "puola"
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"You will need to restart the application for language changes to have effect."
|
||||
msgstr ""
|
||||
"Sovellus on käynnistettävä uudelleen, jotta kielimuutokset tulevat voimaan."
|
||||
msgstr "Sovellus on käynnistettävä uudelleen, jotta kielimuutokset tulevat voimaan."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:117
|
||||
msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Should objects on the platform be moved so that they no longer intersect."
|
||||
msgstr ""
|
||||
"Pitäisikö kappaleita alustalla siirtää niin, etteivät ne enää leikkaa "
|
||||
"toisiaan?"
|
||||
msgstr "Pitäisikö kappaleita alustalla siirtää niin, etteivät ne enää leikkaa toisiaan?"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:122
|
||||
msgctxt "@option:check"
|
||||
@ -998,15 +986,13 @@ msgstr "Pidä kappaleet erillään"
|
||||
msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Should opened files be scaled to the build volume if they are too large?"
|
||||
msgstr ""
|
||||
"Pitäisikö avoimia tiedostoja skaalata rakennustilavuuteen, jos ne ovat liian "
|
||||
"isoja?"
|
||||
msgstr "Pitäisikö avoimia tiedostoja skaalata rakennustilavuuteen, jos ne ovat liian isoja?"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:136
|
||||
#, fuzzy
|
||||
msgctxt "@option:check"
|
||||
msgid "Scale large files"
|
||||
msgstr "Skaalaa liian isot tiedostot"
|
||||
msgstr "Skaalaa isot tiedostot"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/GeneralPage.qml:145
|
||||
msgctxt "@info:tooltip"
|
||||
@ -1014,10 +1000,7 @@ msgid ""
|
||||
"Should anonymous data about your print be sent to Ultimaker? Note, no "
|
||||
"models, IP addresses or other personally identifiable information is sent or "
|
||||
"stored."
|
||||
msgstr ""
|
||||
"Pitäisikö anonyymejä tietoja tulosteesta lähettää Ultimakerille? Huomaa, "
|
||||
"että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä "
|
||||
"eikä tallenneta."
|
||||
msgstr "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
|
||||
#, fuzzy
|
||||
@ -1036,9 +1019,7 @@ msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Highlight unsupported areas of the model in red. Without support these areas "
|
||||
"will nog print properly."
|
||||
msgstr ""
|
||||
"Korostaa mallin vailla tukea olevat alueet punaisella. Ilman tukea nämä "
|
||||
"alueet eivät tulostu kunnolla."
|
||||
msgstr "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
|
||||
#, fuzzy
|
||||
@ -1051,9 +1032,7 @@ msgctxt "@info:tooltip"
|
||||
msgid ""
|
||||
"Moves the camera so the object is in the center of the view when an object "
|
||||
"is selected"
|
||||
msgstr ""
|
||||
"Siirtää kameraa siten, että kappale on näkymän keskellä, kun kappale on "
|
||||
"valittu"
|
||||
msgstr "Siirtää kameraa siten, että kappale on näkymän keskellä, kun kappale on valittu"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/ViewPage.qml:54
|
||||
msgctxt "@action:button"
|
||||
@ -1071,9 +1050,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"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"
|
||||
msgstr ""
|
||||
"Ultimakerille on hyvä tehdä muutamia toimintatarkastuksia. Voit jättää tämän "
|
||||
"vaiheen väliin, jos tiedät laitteesi olevan toimintakunnossa"
|
||||
msgstr "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
|
||||
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
|
||||
msgctxt "@label"
|
||||
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/AddMachine.qml:269
|
||||
@ -1171,9 +1148,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"To assist you in having better default settings for your Ultimaker. Cura "
|
||||
"would like to know which upgrades you have in your machine:"
|
||||
msgstr ""
|
||||
"Saat paremmat oletusasetukset Ultimakeriin. Cura haluaisi tietää, mitä "
|
||||
"päivityksiä laitteessasi on:"
|
||||
msgstr "Saat paremmat oletusasetukset Ultimakeriin. Cura haluaisi tietää, mitä päivityksiä laitteessasi on:"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/SelectUpgradedParts.qml:57
|
||||
msgctxt "@option:check"
|
||||
@ -1184,7 +1159,7 @@ msgstr "Suulakekäytön päivitykset"
|
||||
#, fuzzy
|
||||
msgctxt "@option:check"
|
||||
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
|
||||
msgctxt "@option:check"
|
||||
@ -1198,12 +1173,7 @@ msgid ""
|
||||
"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"
|
||||
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 kovasti luotettavuuden parantamiseksi. Tämä "
|
||||
"päivityspaketti voidaan ostaa Ultimakerin verkkokaupasta tai se löytyy "
|
||||
"thingiverse-sivustolta numerolla: 26094"
|
||||
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"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/AddMachine.qml:108
|
||||
#, fuzzy
|
||||
@ -1216,7 +1186,7 @@ msgctxt "@label"
|
||||
msgid ""
|
||||
"This printer name has already been used. Please choose a different printer "
|
||||
"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
|
||||
#, fuzzy
|
||||
@ -1246,9 +1216,7 @@ msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Voit säätää alustaa, jotta tulosteista tulisi hyviä. Kun napsautat 'Siirry "
|
||||
"seuraavaan positioon', suutin siirtyy eri positioihin, joita voidaan säätää."
|
||||
msgstr "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
|
||||
msgctxt "@label"
|
||||
@ -1256,10 +1224,7 @@ msgid ""
|
||||
"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."
|
||||
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."
|
||||
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."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:77
|
||||
msgctxt "@action:button"
|
||||
@ -1274,7 +1239,7 @@ msgstr "Ohita pöydän tasaus"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/Bedleveling.qml:123
|
||||
msgctxt "@label"
|
||||
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
|
||||
msgctxt "@label"
|
||||
@ -1282,28 +1247,21 @@ msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Laiteohjelmisto on suoraan 3D-tulostimessa toimiva ohjelma. Laiteohjelmisto "
|
||||
"ohjaa askelmoottoreita, säätää lämpötilaa ja loppujen lopuksi saa tulostimen "
|
||||
"toimimaan."
|
||||
msgstr "Laiteohjelmisto on suoraan 3D-tulostimessa toimiva ohjelma. Laiteohjelmisto ohjaa askelmoottoreita, säätää lämpötilaa ja saa tulostimen toimimaan."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:43
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"The firmware shipping with new Ultimakers works, but upgrades have been made "
|
||||
"to make better prints, and make calibration easier."
|
||||
msgstr ""
|
||||
"Uusien Ultimakerien mukana toimitettu laiteohjelmisto toimii, mutta "
|
||||
"päivityksillä saadaan parempia tulosteita ja kalibrointi helpottuu."
|
||||
msgstr "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
|
||||
msgctxt "@label"
|
||||
msgid ""
|
||||
"Cura requires these new features and thus your firmware will most likely "
|
||||
"need to be upgraded. You can do so now."
|
||||
msgstr ""
|
||||
"Cura tarvitsee näitä uusia ominaisuuksia ja siten laiteohjelmisto on "
|
||||
"todennäköisesti päivitettävä. Voit tehdä sen nyt."
|
||||
msgstr "Cura tarvitsee näitä uusia ominaisuuksia, joten laiteohjelmisto on todennäköisesti päivitettävä. Voit tehdä sen nyt."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/WizardPages/UpgradeFirmware.qml:64
|
||||
msgctxt "@action:button"
|
||||
@ -1318,12 +1276,12 @@ msgstr "Ohita päivitys"
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:23
|
||||
msgctxt "@label:PrintjobStatus"
|
||||
msgid "Please load a 3d model"
|
||||
msgstr ""
|
||||
msgstr "Ole hyvä ja lataa 3D-malli"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:25
|
||||
msgctxt "@label:PrintjobStatus"
|
||||
msgid "Preparing to slice..."
|
||||
msgstr ""
|
||||
msgstr "Valmistellaan viipalointia..."
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:28
|
||||
#, fuzzy
|
||||
@ -1334,12 +1292,12 @@ msgstr "Viipaloidaan..."
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:30
|
||||
msgctxt "@label:PrintjobStatus"
|
||||
msgid "Ready to "
|
||||
msgstr ""
|
||||
msgstr "Valmis "
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/SaveButton.qml:122
|
||||
msgctxt "@info:tooltip"
|
||||
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
|
||||
msgctxt "@title:window"
|
||||
@ -1355,9 +1313,7 @@ msgstr "Kokonaisvaltainen sulatettavan tulostuslangan 3D-tulostusratkaisu."
|
||||
msgctxt "@info:credit"
|
||||
msgid ""
|
||||
"Cura has been developed by Ultimaker B.V. in cooperation with the community."
|
||||
msgstr ""
|
||||
"Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön "
|
||||
"kanssa."
|
||||
msgstr "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
|
||||
#, fuzzy
|
||||
@ -1405,7 +1361,7 @@ msgstr "&Näytä"
|
||||
#, fuzzy
|
||||
msgctxt "@title:menu menubar:toplevel"
|
||||
msgid "&Printer"
|
||||
msgstr "Tulosta"
|
||||
msgstr "&Tulostin"
|
||||
|
||||
#: /home/tamara/2.1/Cura/resources/qml/Cura.qml:213
|
||||
#, 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",
|
||||
"author": "RBC",
|
||||
"platform": "rigidbot_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,7 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "RBC",
|
||||
"platform": "rigidbotbig_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "BQ",
|
||||
"platform": "bq_hephestos_platform.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "BQ",
|
||||
"platform": "bq_hephestos_2_platform.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "BQ",
|
||||
"platform": "bq_hephestos_platform.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "BQ",
|
||||
"platform": "bq_witbox_platform.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"author": "BQ",
|
||||
"platform": "bq_witbox_platform.stl",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -2,7 +2,7 @@
|
||||
"version": 1,
|
||||
"id": "dual_extrusion",
|
||||
"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",
|
||||
|
||||
"visible": false,
|
||||
|
@ -5,88 +5,117 @@
|
||||
"name": "FDM Printer Base Description",
|
||||
"author": "Ultimaker B.V.",
|
||||
"manufacturer": "Ultimaker",
|
||||
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g",
|
||||
|
||||
"add_pages": [],
|
||||
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"description": "The width (X-direction) of the printable area.",
|
||||
"default": 100
|
||||
"default": 100,
|
||||
"global_only": true
|
||||
},
|
||||
"machine_depth": {
|
||||
"description": "The depth (Y-direction) of the printable area.",
|
||||
"default": 100
|
||||
"default": 100,
|
||||
"global_only": true
|
||||
},
|
||||
"machine_height": {
|
||||
"description": "The height (Z-direction) of the printable area.",
|
||||
"default": 100
|
||||
"default": 100,
|
||||
"global_only": true
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"description": "Whether the machine has a heated bed present.",
|
||||
"default": false
|
||||
"default": false,
|
||||
"global_only": true
|
||||
},
|
||||
"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.",
|
||||
"default": false
|
||||
"default": false,
|
||||
"global_only": true
|
||||
},
|
||||
"machine_extruder_count": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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": {
|
||||
"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 },
|
||||
"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,
|
||||
"global_only": true
|
||||
},
|
||||
"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.",
|
||||
"default": 2.0, "SEE_machine_extruder_trains": true },
|
||||
"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,
|
||||
"global_only": true
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"description": "The type of gcode to be generated.",
|
||||
"default": "RepRap"
|
||||
"default": "RepRap",
|
||||
"global_only": true
|
||||
},
|
||||
"machine_disallowed_areas": {
|
||||
"description": "A list of polygons with areas the print head is not allowed to enter.",
|
||||
"type": "polygons",
|
||||
"default": []
|
||||
"default": [],
|
||||
"global_only": true
|
||||
},
|
||||
"machine_platform_offset": {
|
||||
"description": "Where to display the platform mesh.",
|
||||
@ -94,10 +123,11 @@
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
],
|
||||
"global_only": true
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"description": "A 2D silhouette of the print head (fan caps excluded).",
|
||||
"description": "A 2D silhouette of the print head.",
|
||||
"type": "polygon",
|
||||
"default": [
|
||||
[
|
||||
@ -116,10 +146,11 @@
|
||||
1,
|
||||
1
|
||||
]
|
||||
]
|
||||
],
|
||||
"global_only": true
|
||||
},
|
||||
"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",
|
||||
"default": [
|
||||
[
|
||||
@ -138,11 +169,13 @@
|
||||
-20,
|
||||
-10
|
||||
]
|
||||
]
|
||||
],
|
||||
"global_only": true
|
||||
},
|
||||
"gantry_height": {
|
||||
"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": {
|
||||
@ -161,7 +194,8 @@
|
||||
"max_value_warning": "10",
|
||||
"visible": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"global_only": true
|
||||
},
|
||||
"resolution": {
|
||||
"label": "Quality",
|
||||
@ -188,7 +222,8 @@
|
||||
"min_value": "0.001",
|
||||
"min_value_warning": "0.04",
|
||||
"max_value_warning": "0.32",
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"line_width": {
|
||||
"label": "Line Width",
|
||||
@ -547,12 +582,12 @@
|
||||
"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.",
|
||||
"unit": "mm",
|
||||
"unit": "%",
|
||||
"type": "float",
|
||||
"default": 0.04,
|
||||
"min_value_warning": "0",
|
||||
"max_value_warning": "machine_nozzle_size",
|
||||
"inherit_function": "0.1 * line_width if infill_sparse_density < 95 else 0.0",
|
||||
"default": 10,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "100",
|
||||
"inherit_function": "10 if infill_sparse_density < 95 else 0",
|
||||
"visible": false
|
||||
},
|
||||
"infill_wipe_dist": {
|
||||
@ -622,7 +657,8 @@
|
||||
"type": "float",
|
||||
"default": 150,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "260"
|
||||
"max_value_warning": "260",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"material_extrusion_cool_down_speed": {
|
||||
"label": "Extrusion Cool Down Speed Modifier",
|
||||
@ -631,7 +667,8 @@
|
||||
"type": "float",
|
||||
"default": 0.5,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "10.0"
|
||||
"max_value_warning": "10.0",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"material_bed_temperature": {
|
||||
"label": "Bed Temperature",
|
||||
@ -641,7 +678,8 @@
|
||||
"default": 60,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "260",
|
||||
"enabled": "machine_heated_bed"
|
||||
"enabled": "machine_heated_bed",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"material_diameter": {
|
||||
"label": "Diameter",
|
||||
@ -651,7 +689,8 @@
|
||||
"default": 2.85,
|
||||
"min_value": "0.0001",
|
||||
"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": {
|
||||
"label": "Flow",
|
||||
@ -749,7 +788,6 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "20",
|
||||
"type": "int",
|
||||
"min_value": "1",
|
||||
"visible": false,
|
||||
"inherit": false,
|
||||
"enabled": "retraction_enable"
|
||||
@ -760,7 +798,7 @@
|
||||
"unit": "mm",
|
||||
"type": "float",
|
||||
"default": 4.5,
|
||||
"min_value": "0.0",
|
||||
"min_value": "0",
|
||||
"max_value_warning": "retraction_amount * 2",
|
||||
"visible": false,
|
||||
"inherit_function": "retraction_amount",
|
||||
@ -861,9 +899,9 @@
|
||||
"inherit_function": "speed_print",
|
||||
"enabled": "support_enable",
|
||||
"children": {
|
||||
"speed_support_infill": {
|
||||
"label": "Support Infill 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.",
|
||||
"speed_support_lines": {
|
||||
"label": "Support Wall Speed",
|
||||
"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",
|
||||
"type": "float",
|
||||
"default": 60,
|
||||
@ -951,6 +989,7 @@
|
||||
"default": true,
|
||||
"visible": false,
|
||||
"enabled": "retraction_combing",
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"travel_avoid_distance": {
|
||||
"label": "Avoid Distance",
|
||||
@ -962,7 +1001,8 @@
|
||||
"max_value_warning": "machine_nozzle_tip_outer_diameter * 5",
|
||||
"visible": false,
|
||||
"inherit": false,
|
||||
"enabled": "retraction_combing"
|
||||
"enabled": "retraction_combing",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -986,8 +1026,8 @@
|
||||
"enabled": "coasting_enable"
|
||||
},
|
||||
"coasting_min_volume": {
|
||||
"label": "Minimum 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.",
|
||||
"label": "Minimal Volume Before Coasting",
|
||||
"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³",
|
||||
"type": "float",
|
||||
"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.",
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"cool_fan_speed": {
|
||||
"label": "Fan Speed",
|
||||
@ -1031,6 +1072,7 @@
|
||||
"default": 100,
|
||||
"visible": false,
|
||||
"inherit_function": "100.0 if parent_value else 0.0",
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"cool_fan_speed_min": {
|
||||
"label": "Minimum Fan Speed",
|
||||
@ -1040,7 +1082,8 @@
|
||||
"min_value": "0",
|
||||
"max_value": "100",
|
||||
"default": 100,
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"cool_fan_speed_max": {
|
||||
"label": "Maximum Fan Speed",
|
||||
@ -1050,7 +1093,8 @@
|
||||
"min_value": "0",
|
||||
"max_value": "100",
|
||||
"default": 100,
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1065,6 +1109,7 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "10.0",
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"cool_fan_full_layer": {
|
||||
"label": "Fan Full on at Layer",
|
||||
@ -1074,7 +1119,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "100",
|
||||
"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,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "600",
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"cool_min_layer_time_fan_speed_max": {
|
||||
"label": "Minimum Layer Time Full Fan Speed",
|
||||
@ -1096,7 +1143,8 @@
|
||||
"default": 10,
|
||||
"min_value": "cool_min_layer_time",
|
||||
"max_value_warning": "600",
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"cool_min_speed": {
|
||||
"label": "Minimum Speed",
|
||||
@ -1106,14 +1154,16 @@
|
||||
"default": 10,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "100",
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"cool_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.",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"draft_shield_enabled": {
|
||||
"label": "Enable Draft Shield",
|
||||
@ -1204,7 +1254,7 @@
|
||||
},
|
||||
"support_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",
|
||||
"type": "float",
|
||||
"min_value": "0",
|
||||
@ -1485,7 +1535,8 @@
|
||||
"default": 1,
|
||||
"min_value": "0",
|
||||
"max_value_warning": "10",
|
||||
"enabled": "adhesion_type == \"skirt\""
|
||||
"enabled": "adhesion_type == \"skirt\"",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"skirt_gap": {
|
||||
"label": "Skirt Distance",
|
||||
@ -1495,7 +1546,8 @@
|
||||
"default": 3,
|
||||
"min_value_warning": "0",
|
||||
"max_value_warning": "100",
|
||||
"enabled": "adhesion_type == \"skirt\""
|
||||
"enabled": "adhesion_type == \"skirt\"",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"skirt_minimal_length": {
|
||||
"label": "Skirt Minimum Length",
|
||||
@ -1506,7 +1558,8 @@
|
||||
"min_value": "0",
|
||||
"min_value_warning": "25",
|
||||
"max_value_warning": "2500",
|
||||
"enabled": "adhesion_type == \"skirt\""
|
||||
"enabled": "adhesion_type == \"skirt\"",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"brim_width": {
|
||||
"label": "Brim Width",
|
||||
@ -1517,6 +1570,7 @@
|
||||
"min_value": "0.0",
|
||||
"max_value_warning": "100.0",
|
||||
"enabled": "adhesion_type == \"brim\"",
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"brim_line_count": {
|
||||
"label": "Brim Line Count",
|
||||
@ -1526,7 +1580,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "300",
|
||||
"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.",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"magic_fuzzy_skin_enabled": {
|
||||
"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.",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"visible": false
|
||||
"visible": false,
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_height": {
|
||||
"label": "WP Connection Height",
|
||||
@ -1878,7 +1935,8 @@
|
||||
"min_value": "0.0001",
|
||||
"max_value_warning": "20",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_roof_inset": {
|
||||
"label": "WP Roof Inset Distance",
|
||||
@ -1891,7 +1949,8 @@
|
||||
"max_value_warning": "20",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled",
|
||||
"inherit_function": "wireframe_height"
|
||||
"inherit_function": "wireframe_height",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_printspeed": {
|
||||
"label": "WP speed",
|
||||
@ -1903,6 +1962,7 @@
|
||||
"max_value_warning": "50",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"wireframe_printspeed_bottom": {
|
||||
"label": "WP Bottom Printing Speed",
|
||||
@ -1914,7 +1974,8 @@
|
||||
"max_value_warning": "50",
|
||||
"visible": false,
|
||||
"inherit": true,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_printspeed_up": {
|
||||
"label": "WP Upward Printing Speed",
|
||||
@ -1926,7 +1987,8 @@
|
||||
"max_value_warning": "50",
|
||||
"visible": false,
|
||||
"inherit": true,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_printspeed_down": {
|
||||
"label": "WP Downward Printing Speed",
|
||||
@ -1938,7 +2000,8 @@
|
||||
"max_value_warning": "50",
|
||||
"visible": false,
|
||||
"inherit": true,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_printspeed_flat": {
|
||||
"label": "WP Horizontal Printing Speed",
|
||||
@ -1950,7 +2013,8 @@
|
||||
"max_value_warning": "100",
|
||||
"visible": false,
|
||||
"inherit": true,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1964,6 +2028,7 @@
|
||||
"type": "float",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
||||
"children": {
|
||||
"wireframe_flow_connection": {
|
||||
"label": "WP Connection Flow",
|
||||
@ -1974,7 +2039,8 @@
|
||||
"max_value_warning": "100",
|
||||
"type": "float",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_flow_flat": {
|
||||
"label": "WP Flat Flow",
|
||||
@ -1985,7 +2051,8 @@
|
||||
"max_value_warning": "100",
|
||||
"type": "float",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1998,7 +2065,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "1",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_bottom_delay": {
|
||||
"label": "WP Bottom Delay",
|
||||
@ -2009,7 +2077,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "1",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_flat_delay": {
|
||||
"label": "WP Flat Delay",
|
||||
@ -2020,7 +2089,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "0.5",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_up_half_speed": {
|
||||
"label": "WP Ease Upward",
|
||||
@ -2031,7 +2101,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "5.0",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_top_jump": {
|
||||
"label": "WP Knot Size",
|
||||
@ -2042,7 +2113,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "2.0",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_fall_down": {
|
||||
"label": "WP Fall Down",
|
||||
@ -2053,7 +2125,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "wireframe_height",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_drag_along": {
|
||||
"label": "WP Drag along",
|
||||
@ -2064,7 +2137,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "wireframe_height",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_strategy": {
|
||||
"label": "WP Strategy",
|
||||
@ -2077,7 +2151,8 @@
|
||||
},
|
||||
"default": "compensate",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_straight_before_down": {
|
||||
"label": "WP Straighten Downward Lines",
|
||||
@ -2088,7 +2163,8 @@
|
||||
"min_value": "0",
|
||||
"max_value": "100",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_roof_fall_down": {
|
||||
"label": "WP Roof Fall Down",
|
||||
@ -2099,7 +2175,8 @@
|
||||
"min_value_warning": "0",
|
||||
"max_value_warning": "wireframe_roof_inset",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_roof_drag_along": {
|
||||
"label": "WP Roof Drag Along",
|
||||
@ -2110,7 +2187,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "10",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_roof_outer_delay": {
|
||||
"label": "WP Roof Outer Delay",
|
||||
@ -2121,7 +2199,8 @@
|
||||
"min_value": "0",
|
||||
"max_value_warning": "2.0",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
},
|
||||
"wireframe_nozzle_clearance": {
|
||||
"label": "WP Nozzle Clearance",
|
||||
@ -2132,7 +2211,8 @@
|
||||
"min_value_warning": "0",
|
||||
"max_value_warning": "10.0",
|
||||
"visible": false,
|
||||
"enabled": "wireframe_enabled"
|
||||
"enabled": "wireframe_enabled",
|
||||
"global_only": "print_sequence != \"one_at_a_time\""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Other",
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "grr_neo_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
"visible": "true",
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
"manufacturer": "Other",
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "",
|
||||
"file_formats": "application/x3g",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"machine_settings": {
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Other",
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"platform": "makerstarter_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Other",
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"platform": "prusai3_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -7,6 +7,7 @@
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "Ultimaker2backplate.png",
|
||||
"file_formats": "text/x-gcode",
|
||||
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "Ultimaker2Extendedbackplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -7,6 +7,7 @@
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"visible": false,
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2plus.json",
|
||||
|
||||
"machine_settings": {
|
||||
|
@ -6,8 +6,10 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2_extended_plus.json",
|
||||
"variant": "0.25mm Nozzle",
|
||||
"variant": "0.25 mm",
|
||||
"profiles_machine": "ultimaker2plus",
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.25 }
|
||||
}
|
||||
|
@ -6,8 +6,10 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2_extended_plus.json",
|
||||
"variant": "0.40mm Nozzle",
|
||||
"variant": "0.4 mm",
|
||||
"profiles_machine": "ultimaker2plus",
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.40 }
|
||||
}
|
||||
|
@ -6,8 +6,10 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2_extended_plus.json",
|
||||
"variant": "0.60mm Nozzle",
|
||||
"variant": "0.6 mm",
|
||||
"profiles_machine": "ultimaker2plus",
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.60 }
|
||||
}
|
||||
|
@ -6,8 +6,10 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2_extended_plus.json",
|
||||
"variant": "0.80mm Nozzle",
|
||||
"variant": "0.8 mm",
|
||||
"profiles_machine": "ultimaker2plus",
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.80 }
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
"icon": "icon_ultimaker2.png",
|
||||
"platform": "ultimaker2go_platform.obj",
|
||||
"platform_texture": "Ultimaker2Gobackplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2.json",
|
||||
|
||||
"overrides": {
|
||||
|
@ -7,18 +7,15 @@
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
"visible": false,
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2.json",
|
||||
|
||||
"machine_settings": {
|
||||
"overrides": {
|
||||
"machine_width": { "default": 230 },
|
||||
"machine_depth": { "default": 225 },
|
||||
"machine_height": { "default": 200 },
|
||||
"machine_show_variants": { "default": true },
|
||||
"gantry_height": { "default": 50 }
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"gantry_height": { "default": 50 },
|
||||
"shell_thickness": { "default": 1.2 },
|
||||
"top_bottom_thickness": { "inherit_function": "(parent_value / 3) * 2" },
|
||||
"travel_compensate_overlapping_walls_enabled": { "default": true },
|
||||
|
@ -6,16 +6,14 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2plus.json",
|
||||
|
||||
"variant": "0.25mm Nozzle",
|
||||
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.25 }
|
||||
},
|
||||
"variant": "0.25 mm",
|
||||
|
||||
"overrides": {
|
||||
"machine_nozzle_size": { "default": 0.25 },
|
||||
|
||||
"layer_height": { "default": 0.06 },
|
||||
"layer_height_0": { "default": 0.15 },
|
||||
|
||||
|
@ -6,16 +6,14 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2plus.json",
|
||||
|
||||
"variant": "0.40mm Nozzle",
|
||||
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.40 }
|
||||
},
|
||||
"variant": "0.4 mm",
|
||||
|
||||
"overrides": {
|
||||
"machine_nozzle_size": { "default": 0.40 },
|
||||
|
||||
"wall_line_width_0": { "inherit_function": "parent_value * 0.875" },
|
||||
"skin_line_width": { "inherit_function": "parent_value * 0.875" }
|
||||
}
|
||||
|
@ -6,16 +6,14 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2plus.json",
|
||||
|
||||
"variant": "0.60mm Nozzle",
|
||||
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.60 }
|
||||
},
|
||||
"variant": "0.6 mm",
|
||||
|
||||
"overrides": {
|
||||
"machine_nozzle_size": { "default": 0.60 },
|
||||
|
||||
"layer_height": { "default": 0.15 },
|
||||
"layer_height_0": { "default": 0.4 },
|
||||
|
||||
|
@ -6,16 +6,14 @@
|
||||
"author": "Ultimaker",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "ultimaker2plus_backplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker2plus.json",
|
||||
|
||||
"variant": "0.80mm Nozzle",
|
||||
|
||||
"machine_settings": {
|
||||
"machine_nozzle_size": { "default": 0.80 }
|
||||
},
|
||||
"variant": "0.8 mm",
|
||||
|
||||
"overrides": {
|
||||
"machine_nozzle_size": { "default": 0.80 },
|
||||
|
||||
"layer_height": { "default": 0.2 },
|
||||
"layer_height_0": { "default": 0.5 },
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
"author": "Ultimaker",
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "ultimaker_platform.stl",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "fdmprinter.json",
|
||||
|
||||
"pages": [
|
||||
|
@ -7,7 +7,7 @@
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "UltimakerPlusbackplate.png",
|
||||
|
||||
"file_formats": "text/x-gcode",
|
||||
"inherits": "ultimaker_original.json",
|
||||
|
||||
"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]
|
||||
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 configureMachines: settingsAction;
|
||||
property alias addProfile: addProfileAction;
|
||||
property alias manageProfiles: manageProfilesAction;
|
||||
|
||||
property alias preferences: preferencesAction;
|
||||
@ -95,6 +96,12 @@ Item
|
||||
iconName: "configure";
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: addProfileAction;
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Add Profile...");
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: manageProfilesAction;
|
||||
|
@ -92,7 +92,7 @@ UM.MainWindow
|
||||
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
||||
enabled: UM.Selection.hasSelection;
|
||||
iconName: "document-save-as";
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName);
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName, false);
|
||||
}
|
||||
Menu
|
||||
{
|
||||
@ -108,7 +108,7 @@ UM.MainWindow
|
||||
MenuItem
|
||||
{
|
||||
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)
|
||||
onObjectRemoved: saveAllMenu.removeItem(object)
|
||||
@ -230,6 +230,7 @@ UM.MainWindow
|
||||
|
||||
MenuSeparator { }
|
||||
|
||||
MenuItem { action: actions.addProfile; }
|
||||
MenuItem { action: actions.manageProfiles; }
|
||||
}
|
||||
|
||||
@ -461,6 +462,7 @@ UM.MainWindow
|
||||
|
||||
addMachineAction: actions.addMachine;
|
||||
configureMachinesAction: actions.configureMachines;
|
||||
addProfileAction: actions.addProfile;
|
||||
manageProfilesAction: actions.manageProfiles;
|
||||
}
|
||||
|
||||
@ -473,7 +475,7 @@ UM.MainWindow
|
||||
height: childrenRect.height;
|
||||
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;
|
||||
@ -578,6 +580,7 @@ UM.MainWindow
|
||||
reloadAll.onTriggered: Printer.reloadAll()
|
||||
|
||||
addMachine.onTriggered: addMachineWizard.visible = true;
|
||||
addProfile.onTriggered: { UM.MachineManager.createProfile(); preferences.visible = true; preferences.setPage(4); }
|
||||
|
||||
preferences.onTriggered: { preferences.visible = true; preferences.setPage(0); }
|
||||
configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
|
||||
@ -670,7 +673,6 @@ UM.MainWindow
|
||||
id: addMachineWizard
|
||||
}
|
||||
|
||||
|
||||
AboutDialog
|
||||
{
|
||||
id: aboutDialog
|
||||
|
@ -59,16 +59,13 @@ UM.PreferencesPage
|
||||
id: languageList
|
||||
|
||||
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", "Finnish"), code: "fi" })
|
||||
append({ text: catalog.i18nc("@item:inlistbox", "French"), code: "fr" })
|
||||
append({ text: catalog.i18nc("@item:inlistbox", "German"), code: "de" })
|
||||
// append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" })
|
||||
append({ text: catalog.i18nc("@item:inlistbox", "Polish"), code: "pl" })
|
||||
// append({ text: catalog.i18nc("@item:inlistbox", "Russian"), code: "ru" })
|
||||
// append({ text: catalog.i18nc("@item:inlistbox", "Spanish"), code: "es" })
|
||||
append({ text: catalog.i18nc("@item:inlistbox", "Italian"), code: "it" })
|
||||
append({ text: catalog.i18nc("@item:inlistbox", "Dutch"), code: "nl" })
|
||||
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