mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-09-27 22:13:16 +08:00
Merge branch '2.1' of https://github.com/Ultimaker/Cura
This commit is contained in:
commit
a9bd73f32a
@ -5,8 +5,8 @@ Name[de]=Cura
|
|||||||
GenericName=3D Printing Software
|
GenericName=3D Printing Software
|
||||||
GenericName[de]=3D-Druck-Software
|
GenericName[de]=3D-Druck-Software
|
||||||
Comment=
|
Comment=
|
||||||
Exec=/usr/bin/cura_app.py
|
Exec=/usr/bin/cura_app.py %f
|
||||||
TryExec=/usr/bin/cura_app.py
|
TryExec=/usr/bin/cura_app.py %f
|
||||||
Icon=/usr/share/cura/resources/images/cura-icon.png
|
Icon=/usr/share/cura/resources/images/cura-icon.png
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
@ -9,8 +9,10 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|||||||
# In case of printing all at once this is the same as the convex hull. For one at the time this is the area without the head.
|
# In case of printing all at once this is the same as the convex hull. For one at the time this is the area without the head.
|
||||||
self._convex_hull_boundary = None
|
self._convex_hull_boundary = None
|
||||||
|
|
||||||
# In case of printing all at once this is the same as the convex hull. For one at the time this is area with full head
|
# In case of printing all at once this is the same as the convex hull. For one at the time this is area with intersection of mirrored head
|
||||||
self._convex_hull_head = None
|
self._convex_hull_head = None
|
||||||
|
# In case of printing all at once this is the same as the convex hull. For one at the time this is area with intersection of full head
|
||||||
|
self._convex_hull_head_full = None
|
||||||
|
|
||||||
self._convex_hull_node = None
|
self._convex_hull_node = None
|
||||||
self._convex_hull_job = None
|
self._convex_hull_job = None
|
||||||
@ -28,6 +30,11 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|||||||
def getConvexHull(self):
|
def getConvexHull(self):
|
||||||
return self._convex_hull
|
return self._convex_hull
|
||||||
|
|
||||||
|
def getConvexHullHeadFull(self):
|
||||||
|
if not self._convex_hull_head_full:
|
||||||
|
return self.getConvexHull()
|
||||||
|
return self._convex_hull_head_full
|
||||||
|
|
||||||
def getConvexHullHead(self):
|
def getConvexHullHead(self):
|
||||||
if not self._convex_hull_head:
|
if not self._convex_hull_head:
|
||||||
return self.getConvexHull()
|
return self.getConvexHull()
|
||||||
@ -41,6 +48,9 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|||||||
def setConvexHullBoundary(self, hull):
|
def setConvexHullBoundary(self, hull):
|
||||||
self._convex_hull_boundary = hull
|
self._convex_hull_boundary = hull
|
||||||
|
|
||||||
|
def setConvexHullHeadFull(self, hull):
|
||||||
|
self._convex_hull_head_full = hull
|
||||||
|
|
||||||
def setConvexHullHead(self, hull):
|
def setConvexHullHead(self, hull):
|
||||||
self._convex_hull_head = hull
|
self._convex_hull_head = hull
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ class ConvexHullJob(Job):
|
|||||||
mesh = self._node.getMeshData()
|
mesh = self._node.getMeshData()
|
||||||
vertex_data = mesh.getTransformed(self._node.getWorldTransformation()).getVertices()
|
vertex_data = mesh.getTransformed(self._node.getWorldTransformation()).getVertices()
|
||||||
# Don't use data below 0. TODO; We need a better check for this as this gives poor results for meshes with long edges.
|
# Don't use data below 0. TODO; We need a better check for this as this gives poor results for meshes with long edges.
|
||||||
vertex_data = vertex_data[vertex_data[:,1]>0]
|
vertex_data = vertex_data[vertex_data[:,1] >= 0]
|
||||||
hull = Polygon(numpy.rint(vertex_data[:, [0, 2]]).astype(int))
|
hull = Polygon(numpy.rint(vertex_data[:, [0, 2]]).astype(int))
|
||||||
|
|
||||||
# First, calculate the normal convex hull around the points
|
# First, calculate the normal convex hull around the points
|
||||||
@ -55,12 +55,16 @@ class ConvexHullJob(Job):
|
|||||||
# Printing one at a time and it's not an object in a group
|
# Printing one at a time and it's not an object in a group
|
||||||
self._node.callDecoration("setConvexHullBoundary", copy.deepcopy(hull))
|
self._node.callDecoration("setConvexHullBoundary", copy.deepcopy(hull))
|
||||||
head_and_fans = Polygon(numpy.array(profile.getSettingValue("machine_head_with_fans_polygon"), numpy.float32))
|
head_and_fans = Polygon(numpy.array(profile.getSettingValue("machine_head_with_fans_polygon"), numpy.float32))
|
||||||
|
# Full head hull is used to actually check the order.
|
||||||
|
full_head_hull = hull.getMinkowskiHull(head_and_fans)
|
||||||
|
self._node.callDecoration("setConvexHullHeadFull", full_head_hull)
|
||||||
mirrored = copy.deepcopy(head_and_fans)
|
mirrored = copy.deepcopy(head_and_fans)
|
||||||
mirrored.mirror([0, 0], [0, 1]) #Mirror horizontally.
|
mirrored.mirror([0, 0], [0, 1]) #Mirror horizontally.
|
||||||
mirrored.mirror([0, 0], [1, 0]) #Mirror vertically.
|
mirrored.mirror([0, 0], [1, 0]) #Mirror vertically.
|
||||||
head_and_fans = head_and_fans.intersectionConvexHulls(mirrored)
|
head_and_fans = head_and_fans.intersectionConvexHulls(mirrored)
|
||||||
head_hull = hull.getMinkowskiHull(head_and_fans)
|
# Min head hull is used for the push free
|
||||||
self._node.callDecoration("setConvexHullHead", head_hull)
|
min_head_hull = hull.getMinkowskiHull(head_and_fans)
|
||||||
|
self._node.callDecoration("setConvexHullHead", min_head_hull)
|
||||||
hull = hull.getMinkowskiHull(Polygon(numpy.array(profile.getSettingValue("machine_head_polygon"),numpy.float32)))
|
hull = hull.getMinkowskiHull(Polygon(numpy.array(profile.getSettingValue("machine_head_polygon"),numpy.float32)))
|
||||||
else:
|
else:
|
||||||
self._node.callDecoration("setConvexHullHead", None)
|
self._node.callDecoration("setConvexHullHead", None)
|
||||||
|
@ -78,6 +78,8 @@ class CuraApplication(QtApplication):
|
|||||||
if not hasattr(sys, "frozen"):
|
if not hasattr(sys, "frozen"):
|
||||||
Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)), ".."))
|
Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)), ".."))
|
||||||
|
|
||||||
|
self._open_file_queue = [] #Files to open when plug-ins are loaded.
|
||||||
|
|
||||||
super().__init__(name = "cura", version = CuraVersion)
|
super().__init__(name = "cura", version = CuraVersion)
|
||||||
|
|
||||||
self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png")))
|
self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png")))
|
||||||
@ -130,6 +132,10 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
self._recent_files.append(QUrl.fromLocalFile(f))
|
self._recent_files.append(QUrl.fromLocalFile(f))
|
||||||
|
|
||||||
|
@pyqtSlot(result = QUrl)
|
||||||
|
def getDefaultPath(self):
|
||||||
|
return QUrl.fromLocalFile(os.path.expanduser("~/"))
|
||||||
|
|
||||||
## Handle loading of all plugin types (and the backend explicitly)
|
## Handle loading of all plugin types (and the backend explicitly)
|
||||||
# \sa PluginRegistery
|
# \sa PluginRegistery
|
||||||
def _loadPlugins(self):
|
def _loadPlugins(self):
|
||||||
@ -144,6 +150,8 @@ class CuraApplication(QtApplication):
|
|||||||
if self.getBackend() == None:
|
if self.getBackend() == None:
|
||||||
raise RuntimeError("Could not load the backend plugin!")
|
raise RuntimeError("Could not load the backend plugin!")
|
||||||
|
|
||||||
|
self._plugins_loaded = True
|
||||||
|
|
||||||
def addCommandLineOptions(self, parser):
|
def addCommandLineOptions(self, parser):
|
||||||
super().addCommandLineOptions(parser)
|
super().addCommandLineOptions(parser)
|
||||||
parser.add_argument("file", nargs="*", help="Files to load after starting the application.")
|
parser.add_argument("file", nargs="*", help="Files to load after starting the application.")
|
||||||
@ -201,13 +209,18 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
for file in self.getCommandLineOption("file", []):
|
for file in self.getCommandLineOption("file", []):
|
||||||
self._openFile(file)
|
self._openFile(file)
|
||||||
|
for file_name in self._open_file_queue: #Open all the files that were queued up while plug-ins were loading.
|
||||||
|
self._openFile(file_name)
|
||||||
|
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
|
||||||
# Handle Qt events
|
# Handle Qt events
|
||||||
def event(self, event):
|
def event(self, event):
|
||||||
if event.type() == QEvent.FileOpen:
|
if event.type() == QEvent.FileOpen:
|
||||||
|
if self._plugins_loaded:
|
||||||
self._openFile(event.file())
|
self._openFile(event.file())
|
||||||
|
else:
|
||||||
|
self._open_file_queue.append(event.file())
|
||||||
|
|
||||||
return super().event(event)
|
return super().event(event)
|
||||||
|
|
||||||
@ -268,7 +281,7 @@ class CuraApplication(QtApplication):
|
|||||||
|
|
||||||
count += 1
|
count += 1
|
||||||
if not scene_boundingbox:
|
if not scene_boundingbox:
|
||||||
scene_boundingbox = node.getBoundingBox()
|
scene_boundingbox = copy.deepcopy(node.getBoundingBox())
|
||||||
else:
|
else:
|
||||||
scene_boundingbox += node.getBoundingBox()
|
scene_boundingbox += node.getBoundingBox()
|
||||||
|
|
||||||
@ -536,6 +549,7 @@ class CuraApplication(QtApplication):
|
|||||||
group_decorator = GroupDecorator()
|
group_decorator = GroupDecorator()
|
||||||
group_node.addDecorator(group_decorator)
|
group_node.addDecorator(group_decorator)
|
||||||
group_node.setParent(self.getController().getScene().getRoot())
|
group_node.setParent(self.getController().getScene().getRoot())
|
||||||
|
group_node.setSelectable(True)
|
||||||
center = Selection.getSelectionCenter()
|
center = Selection.getSelectionCenter()
|
||||||
group_node.setPosition(center)
|
group_node.setPosition(center)
|
||||||
group_node.setCenterPosition(center)
|
group_node.setCenterPosition(center)
|
||||||
|
@ -174,32 +174,12 @@ class Polygon():
|
|||||||
MoveRetractionType = 9
|
MoveRetractionType = 9
|
||||||
|
|
||||||
def __init__(self, mesh, type, data, line_width):
|
def __init__(self, mesh, type, data, line_width):
|
||||||
super().__init__()
|
|
||||||
self._mesh = mesh
|
self._mesh = mesh
|
||||||
self._type = type
|
self._type = type
|
||||||
self._data = data
|
self._data = data
|
||||||
self._line_width = line_width / 1000
|
self._line_width = line_width / 1000
|
||||||
|
|
||||||
if type == self.Inset0Type:
|
self._color = self.__color_map[type]
|
||||||
self._color = Color(1.0, 0.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.InsetXType:
|
|
||||||
self._color = Color(0.0, 1.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.SkinType:
|
|
||||||
self._color = Color(1.0, 1.0, 0.0, 1.0)
|
|
||||||
elif self._type == self.SupportType:
|
|
||||||
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.SkirtType:
|
|
||||||
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.InfillType:
|
|
||||||
self._color = Color(1.0, 0.74, 0.0, 1.0)
|
|
||||||
elif self._type == self.SupportInfillType:
|
|
||||||
self._color = Color(0.0, 1.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.MoveCombingType:
|
|
||||||
self._color = Color(0.0, 0.0, 1.0, 1.0)
|
|
||||||
elif self._type == self.MoveRetractionType:
|
|
||||||
self._color = Color(0.5, 0.5, 1.0, 1.0)
|
|
||||||
else:
|
|
||||||
self._color = Color(1.0, 1.0, 1.0, 1.0)
|
|
||||||
|
|
||||||
def build(self, offset, vertices, colors, indices):
|
def build(self, offset, vertices, colors, indices):
|
||||||
self._begin = offset
|
self._begin = offset
|
||||||
@ -260,3 +240,16 @@ class Polygon():
|
|||||||
normals[:,2] /= lengths
|
normals[:,2] /= lengths
|
||||||
|
|
||||||
return normals
|
return normals
|
||||||
|
|
||||||
|
__color_map = {
|
||||||
|
NoneType: Color(1.0, 1.0, 1.0, 1.0),
|
||||||
|
Inset0Type: Color(1.0, 0.0, 0.0, 1.0),
|
||||||
|
InsetXType: Color(0.0, 1.0, 0.0, 1.0),
|
||||||
|
SkinType: Color(1.0, 1.0, 0.0, 1.0),
|
||||||
|
SupportType: Color(0.0, 1.0, 1.0, 1.0),
|
||||||
|
SkirtType: Color(0.0, 1.0, 1.0, 1.0),
|
||||||
|
InfillType: Color(1.0, 0.74, 0.0, 1.0),
|
||||||
|
SupportInfillType: Color(0.0, 1.0, 1.0, 1.0),
|
||||||
|
MoveCombingType: Color(0.0, 0.0, 1.0, 1.0),
|
||||||
|
MoveRetractionType: Color(0.5, 0.5, 1.0, 1.0),
|
||||||
|
}
|
||||||
|
@ -30,10 +30,11 @@ class OneAtATimeIterator(Iterator.Iterator):
|
|||||||
self._node_stack = node_list[:]
|
self._node_stack = node_list[:]
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Copy the list
|
||||||
self._original_node_list = node_list[:]
|
self._original_node_list = node_list[:]
|
||||||
|
|
||||||
## Initialise the hit map (pre-compute all hits between all objects)
|
## Initialise the hit map (pre-compute all hits between all objects)
|
||||||
self._hit_map = [[self._checkHit(j,i) for i in node_list] for j in node_list]
|
self._hit_map = [[self._checkHit(i,j) for i in node_list] for j in node_list]
|
||||||
|
|
||||||
# Check if we have to files that block eachother. If this is the case, there is no solution!
|
# Check if we have to files that block eachother. If this is the case, there is no solution!
|
||||||
for a in range(0,len(node_list)):
|
for a in range(0,len(node_list)):
|
||||||
@ -69,14 +70,16 @@ class OneAtATimeIterator(Iterator.Iterator):
|
|||||||
def _checkHitMultiple(self, node, other_nodes):
|
def _checkHitMultiple(self, node, other_nodes):
|
||||||
node_index = self._original_node_list.index(node)
|
node_index = self._original_node_list.index(node)
|
||||||
for other_node in other_nodes:
|
for other_node in other_nodes:
|
||||||
if self._hit_map[node_index][self._original_node_list.index(other_node)]:
|
other_node_index = self._original_node_list.index(other_node)
|
||||||
|
if self._hit_map[node_index][other_node_index]:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _checkBlockMultiple(self, node, other_nodes):
|
def _checkBlockMultiple(self, node, other_nodes):
|
||||||
node_index = self._original_node_list.index(node)
|
node_index = self._original_node_list.index(node)
|
||||||
for other_node in other_nodes:
|
for other_node in other_nodes:
|
||||||
if self._hit_map[self._original_node_list.index(other_node)][node_index] and node_index != self._original_node_list.index(other_node):
|
other_node_index = self._original_node_list.index(other_node)
|
||||||
|
if self._hit_map[other_node_index][node_index] and node_index != other_node_index:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -91,7 +94,7 @@ class OneAtATimeIterator(Iterator.Iterator):
|
|||||||
if a == b:
|
if a == b:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
overlap = a.callDecoration("getConvexHullBoundary").intersectsPolygon(b.callDecoration("getConvexHullHead"))
|
overlap = a.callDecoration("getConvexHullBoundary").intersectsPolygon(b.callDecoration("getConvexHullHeadFull"))
|
||||||
if overlap:
|
if overlap:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
|
@ -60,12 +60,16 @@ class PlatformPhysics:
|
|||||||
|
|
||||||
build_volume_bounding_box = copy.deepcopy(self._build_volume.getBoundingBox())
|
build_volume_bounding_box = copy.deepcopy(self._build_volume.getBoundingBox())
|
||||||
build_volume_bounding_box.setBottom(-9001) # Ignore intersections with the bottom
|
build_volume_bounding_box.setBottom(-9001) # Ignore intersections with the bottom
|
||||||
|
node._outside_buildarea = False
|
||||||
|
|
||||||
# Mark the node as outside the build volume if the bounding box test fails.
|
# Mark the node as outside the build volume if the bounding box test fails.
|
||||||
if build_volume_bounding_box.intersectsBox(bbox) != AxisAlignedBox.IntersectionResult.FullIntersection:
|
if build_volume_bounding_box.intersectsBox(bbox) != AxisAlignedBox.IntersectionResult.FullIntersection:
|
||||||
node._outside_buildarea = True
|
node._outside_buildarea = True
|
||||||
else:
|
else:
|
||||||
node._outside_buildarea = False
|
# When printing one at a time too high objects are not printable.
|
||||||
|
if Application.getInstance().getMachineManager().getWorkingProfile().getSettingValue("print_sequence") == "one_at_a_time":
|
||||||
|
if node.getBoundingBox().height > Application.getInstance().getMachineManager().getWorkingProfile().getSettingValue("gantry_height"):
|
||||||
|
node._outside_buildarea = True
|
||||||
|
|
||||||
# Move it downwards if bottom is above platform
|
# Move it downwards if bottom is above platform
|
||||||
move_vector = Vector()
|
move_vector = Vector()
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
from PyQt5.QtCore import QObject, QDateTime, QTimer, pyqtSignal, pyqtSlot, pyqtProperty
|
from PyQt5.QtCore import QObject, QDateTime, QTimer, pyqtSignal, pyqtSlot, pyqtProperty
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Settings.MachineSettings import MachineSettings
|
|
||||||
from UM.Resources import Resources
|
from UM.Resources import Resources
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Qt.Duration import Duration
|
from UM.Qt.Duration import Duration
|
||||||
|
@ -6,7 +6,6 @@ class ZOffsetDecorator(SceneNodeDecorator):
|
|||||||
self._z_offset = 0
|
self._z_offset = 0
|
||||||
|
|
||||||
def setZOffset(self, offset):
|
def setZOffset(self, offset):
|
||||||
print("setZOffset", offset)
|
|
||||||
self._z_offset = offset
|
self._z_offset = offset
|
||||||
|
|
||||||
def getZOffset(self):
|
def getZOffset(self):
|
||||||
|
@ -13,7 +13,6 @@ class AutoSave(Extension):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
#Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged)
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._triggerTimer)
|
Preferences.getInstance().preferenceChanged.connect(self._triggerTimer)
|
||||||
|
|
||||||
machine_manager = Application.getInstance().getMachineManager()
|
machine_manager = Application.getInstance().getMachineManager()
|
||||||
@ -52,8 +51,11 @@ class AutoSave(Extension):
|
|||||||
self._saving = True # To prevent the save process from triggering another autosave.
|
self._saving = True # To prevent the save process from triggering another autosave.
|
||||||
Logger.log("d", "Autosaving preferences, instances and profiles")
|
Logger.log("d", "Autosaving preferences, instances and profiles")
|
||||||
|
|
||||||
|
machine_manager = Application.getInstance().getMachineManager()
|
||||||
|
|
||||||
|
machine_manager.saveVisibility()
|
||||||
|
machine_manager.saveMachineInstances()
|
||||||
|
machine_manager.saveProfiles()
|
||||||
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
Preferences.getInstance().writeToFile(Resources.getStoragePath(Resources.Preferences, Application.getInstance().getApplicationName() + ".cfg"))
|
||||||
Application.getInstance().getMachineManager().saveMachineInstances()
|
|
||||||
Application.getInstance().getMachineManager().saveProfiles()
|
|
||||||
|
|
||||||
self._saving = False
|
self._saving = False
|
||||||
|
@ -26,6 +26,8 @@ import numpy
|
|||||||
|
|
||||||
from PyQt5.QtCore import QTimer
|
from PyQt5.QtCore import QTimer
|
||||||
|
|
||||||
|
import Arcus
|
||||||
|
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
catalog = i18nCatalog("cura")
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
@ -73,6 +75,7 @@ class CuraEngineBackend(Backend):
|
|||||||
self._restart = False
|
self._restart = False
|
||||||
self._enabled = True
|
self._enabled = True
|
||||||
self._always_restart = True
|
self._always_restart = True
|
||||||
|
self._process_layers_job = None #The currently active job to process layers, or None if it is not processing layers.
|
||||||
|
|
||||||
self._message = None
|
self._message = None
|
||||||
|
|
||||||
@ -120,6 +123,10 @@ class CuraEngineBackend(Backend):
|
|||||||
self.slicingCancelled.emit()
|
self.slicingCancelled.emit()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if self._process_layers_job:
|
||||||
|
self._process_layers_job.abort()
|
||||||
|
self._process_layers_job = None
|
||||||
|
|
||||||
if self._profile.hasErrorValue():
|
if self._profile.hasErrorValue():
|
||||||
Logger.log("w", "Profile has error values. Aborting slicing")
|
Logger.log("w", "Profile has error values. Aborting slicing")
|
||||||
if self._message:
|
if self._message:
|
||||||
@ -179,6 +186,15 @@ class CuraEngineBackend(Backend):
|
|||||||
|
|
||||||
self._onChanged()
|
self._onChanged()
|
||||||
|
|
||||||
|
def _onSocketError(self, error):
|
||||||
|
super()._onSocketError(error)
|
||||||
|
|
||||||
|
self._slicing = False
|
||||||
|
self.processingProgress.emit(0)
|
||||||
|
|
||||||
|
if error.getErrorCode() not in [Arcus.ErrorCode.BindFailedError, Arcus.ErrorCode.ConnectionResetError, Arcus.ErrorCode.Debug]:
|
||||||
|
Logger.log("e", "A socket error caused the connection to be reset")
|
||||||
|
|
||||||
def _onActiveProfileChanged(self):
|
def _onActiveProfileChanged(self):
|
||||||
if self._profile:
|
if self._profile:
|
||||||
self._profile.settingValueChanged.disconnect(self._onSettingChanged)
|
self._profile.settingValueChanged.disconnect(self._onSettingChanged)
|
||||||
@ -193,8 +209,8 @@ class CuraEngineBackend(Backend):
|
|||||||
|
|
||||||
def _onSlicedObjectListMessage(self, message):
|
def _onSlicedObjectListMessage(self, message):
|
||||||
if self._layer_view_active:
|
if self._layer_view_active:
|
||||||
job = ProcessSlicedObjectListJob.ProcessSlicedObjectListJob(message)
|
self._process_layers_job = ProcessSlicedObjectListJob.ProcessSlicedObjectListJob(message)
|
||||||
job.start()
|
self._process_layers_job.start()
|
||||||
else :
|
else :
|
||||||
self._stored_layer_data = message
|
self._stored_layer_data = message
|
||||||
|
|
||||||
@ -258,8 +274,8 @@ class CuraEngineBackend(Backend):
|
|||||||
# There is data and we're not slicing at the moment
|
# There is data and we're not slicing at the moment
|
||||||
# if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment.
|
# if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment.
|
||||||
if self._stored_layer_data and not self._slicing:
|
if self._stored_layer_data and not self._slicing:
|
||||||
job = ProcessSlicedObjectListJob.ProcessSlicedObjectListJob(self._stored_layer_data)
|
self._process_layers_job = ProcessSlicedObjectListJob.ProcessSlicedObjectListJob(self._stored_layer_data)
|
||||||
job.start()
|
self._process_layers_job.start()
|
||||||
self._stored_layer_data = None
|
self._stored_layer_data = None
|
||||||
else:
|
else:
|
||||||
self._layer_view_active = False
|
self._layer_view_active = False
|
||||||
|
@ -10,6 +10,8 @@ from UM.Mesh.MeshData import MeshData
|
|||||||
from UM.Message import Message
|
from UM.Message import Message
|
||||||
from UM.i18n import i18nCatalog
|
from UM.i18n import i18nCatalog
|
||||||
|
|
||||||
|
from UM.Math.Vector import Vector
|
||||||
|
|
||||||
from cura import LayerData
|
from cura import LayerData
|
||||||
from cura import LayerDataDecorator
|
from cura import LayerDataDecorator
|
||||||
|
|
||||||
@ -24,12 +26,26 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
self._message = message
|
self._message = message
|
||||||
self._scene = Application.getInstance().getController().getScene()
|
self._scene = Application.getInstance().getController().getScene()
|
||||||
self._progress = None
|
self._progress = None
|
||||||
|
self._abort_requested = False
|
||||||
|
|
||||||
|
## Aborts the processing of layers.
|
||||||
|
#
|
||||||
|
# This abort is made on a best-effort basis, meaning that the actual
|
||||||
|
# job thread will check once in a while to see whether an abort is
|
||||||
|
# requested and then stop processing by itself. There is no guarantee
|
||||||
|
# that the abort will stop the job any time soon or even at all.
|
||||||
|
def abort(self):
|
||||||
|
self._abort_requested = True
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView":
|
if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView":
|
||||||
self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1)
|
self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1)
|
||||||
self._progress.show()
|
self._progress.show()
|
||||||
Job.yieldThread()
|
Job.yieldThread()
|
||||||
|
if self._abort_requested:
|
||||||
|
if self._progress:
|
||||||
|
self._progress.hide()
|
||||||
|
return
|
||||||
|
|
||||||
Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged)
|
Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged)
|
||||||
|
|
||||||
@ -43,15 +59,13 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
else:
|
else:
|
||||||
object_id_map[id(node)] = node
|
object_id_map[id(node)] = node
|
||||||
Job.yieldThread()
|
Job.yieldThread()
|
||||||
|
if self._abort_requested:
|
||||||
|
if self._progress:
|
||||||
|
self._progress.hide()
|
||||||
|
return
|
||||||
|
|
||||||
settings = Application.getInstance().getMachineManager().getWorkingProfile()
|
settings = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
center = None
|
|
||||||
if not settings.getSettingValue("machine_center_is_zero"):
|
|
||||||
center = numpy.array([settings.getSettingValue("machine_width") / 2, 0.0, -settings.getSettingValue("machine_depth") / 2])
|
|
||||||
else:
|
|
||||||
center = numpy.array([0.0, 0.0, 0.0])
|
|
||||||
|
|
||||||
mesh = MeshData()
|
mesh = MeshData()
|
||||||
layer_data = LayerData.LayerData()
|
layer_data = LayerData.LayerData()
|
||||||
|
|
||||||
@ -79,34 +93,50 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
|
|
||||||
points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
|
points = numpy.fromstring(polygon.points, dtype="i8") # Convert bytearray to numpy array
|
||||||
points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
|
points = points.reshape((-1,2)) # We get a linear list of pairs that make up the points, so make numpy interpret them correctly.
|
||||||
points = numpy.asarray(points, dtype=numpy.float32)
|
|
||||||
points /= 1000
|
|
||||||
points = numpy.insert(points, 1, (layer.height / 1000), axis = 1)
|
|
||||||
|
|
||||||
points[:,2] *= -1
|
# Create a new 3D-array, copy the 2D points over and insert the right height.
|
||||||
|
# This uses manual array creation + copy rather than numpy.insert since this is
|
||||||
|
# faster.
|
||||||
|
new_points = numpy.empty((len(points), 3), numpy.float32)
|
||||||
|
new_points[:,0] = points[:,0]
|
||||||
|
new_points[:,1] = layer.height
|
||||||
|
new_points[:,2] = -points[:,1]
|
||||||
|
|
||||||
points -= center
|
new_points /= 1000
|
||||||
|
|
||||||
layer_data.addPolygon(layer.id, polygon.type, points, polygon.line_width)
|
|
||||||
|
|
||||||
|
layer_data.addPolygon(layer.id, polygon.type, new_points, polygon.line_width)
|
||||||
|
Job.yieldThread()
|
||||||
|
Job.yieldThread()
|
||||||
current_layer += 1
|
current_layer += 1
|
||||||
progress = (current_layer / layer_count) * 100
|
progress = (current_layer / layer_count) * 100
|
||||||
# TODO: Rebuild the layer data mesh once the layer has been processed.
|
# TODO: Rebuild the layer data mesh once the layer has been processed.
|
||||||
# This needs some work in LayerData so we can add the new layers instead of recreating the entire mesh.
|
# This needs some work in LayerData so we can add the new layers instead of recreating the entire mesh.
|
||||||
|
|
||||||
|
if self._abort_requested:
|
||||||
|
if self._progress:
|
||||||
|
self._progress.hide()
|
||||||
|
return
|
||||||
if self._progress:
|
if self._progress:
|
||||||
self._progress.setProgress(progress)
|
self._progress.setProgress(progress)
|
||||||
|
|
||||||
# We are done processing all the layers we got from the engine, now create a mesh out of the data
|
# We are done processing all the layers we got from the engine, now create a mesh out of the data
|
||||||
layer_data.build()
|
layer_data.build()
|
||||||
|
|
||||||
|
if self._abort_requested:
|
||||||
|
if self._progress:
|
||||||
|
self._progress.hide()
|
||||||
|
return
|
||||||
|
|
||||||
#Add layerdata decorator to scene node to indicate that the node has layerdata
|
#Add layerdata decorator to scene node to indicate that the node has layerdata
|
||||||
decorator = LayerDataDecorator.LayerDataDecorator()
|
decorator = LayerDataDecorator.LayerDataDecorator()
|
||||||
decorator.setLayerData(layer_data)
|
decorator.setLayerData(layer_data)
|
||||||
new_node.addDecorator(decorator)
|
new_node.addDecorator(decorator)
|
||||||
|
|
||||||
new_node.setMeshData(mesh)
|
new_node.setMeshData(mesh)
|
||||||
new_node.setParent(self._scene.getRoot())
|
new_node.setParent(self._scene.getRoot()) #Note: After this we can no longer abort!
|
||||||
|
|
||||||
|
if not settings.getSettingValue("machine_center_is_zero"):
|
||||||
|
new_node.setPosition(Vector(-settings.getSettingValue("machine_width") / 2, 0.0, settings.getSettingValue("machine_depth") / 2))
|
||||||
|
|
||||||
if self._progress:
|
if self._progress:
|
||||||
self._progress.setProgress(100)
|
self._progress.setProgress(100)
|
||||||
@ -123,6 +153,7 @@ class ProcessSlicedObjectListJob(Job):
|
|||||||
if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView":
|
if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView":
|
||||||
if not self._progress:
|
if not self._progress:
|
||||||
self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, 0)
|
self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, 0)
|
||||||
|
if self._progress.getProgress() != 100:
|
||||||
self._progress.show()
|
self._progress.show()
|
||||||
else:
|
else:
|
||||||
if self._progress:
|
if self._progress:
|
||||||
|
@ -61,6 +61,8 @@ class StartSliceJob(Job):
|
|||||||
if temp_list:
|
if temp_list:
|
||||||
object_groups.append(temp_list)
|
object_groups.append(temp_list)
|
||||||
Job.yieldThread()
|
Job.yieldThread()
|
||||||
|
if len(object_groups) == 0:
|
||||||
|
Logger.log("w", "No objects suitable for one at a time found, or no correct order found")
|
||||||
else:
|
else:
|
||||||
temp_list = []
|
temp_list = []
|
||||||
for node in DepthFirstIterator(self._scene.getRoot()):
|
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||||
@ -79,14 +81,16 @@ class StartSliceJob(Job):
|
|||||||
|
|
||||||
self._sendSettings(self._profile)
|
self._sendSettings(self._profile)
|
||||||
|
|
||||||
slice_message = self._socket.createMessage("cura.proto.Slice");
|
slice_message = self._socket.createMessage("cura.proto.Slice")
|
||||||
|
|
||||||
for group in object_groups:
|
for group in object_groups:
|
||||||
group_message = slice_message.addRepeatedMessage("object_lists");
|
group_message = slice_message.addRepeatedMessage("object_lists")
|
||||||
|
if group[0].getParent().callDecoration("isGroup"):
|
||||||
|
self._handlePerObjectSettings(group[0].getParent(), group_message)
|
||||||
for object in group:
|
for object in group:
|
||||||
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
|
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
|
||||||
|
|
||||||
obj = group_message.addRepeatedMessage("objects");
|
obj = group_message.addRepeatedMessage("objects")
|
||||||
obj.id = id(object)
|
obj.id = id(object)
|
||||||
|
|
||||||
verts = numpy.array(mesh_data.getVertices())
|
verts = numpy.array(mesh_data.getVertices())
|
||||||
@ -142,7 +146,6 @@ class StartSliceJob(Job):
|
|||||||
object_settings = node.callDecoration("getAllSettingValues")
|
object_settings = node.callDecoration("getAllSettingValues")
|
||||||
if not object_settings:
|
if not object_settings:
|
||||||
return
|
return
|
||||||
|
|
||||||
for key, value in object_settings.items():
|
for key, value in object_settings.items():
|
||||||
setting = message.addRepeatedMessage("settings")
|
setting = message.addRepeatedMessage("settings")
|
||||||
setting.name = key
|
setting.name = key
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
from UM.Application import Application #To get the machine manager to create the new profile in.
|
from UM.Application import Application #To get the machine manager to create the new profile in.
|
||||||
from UM.Settings.Profile import Profile
|
from UM.Settings.Profile import Profile
|
||||||
from UM.Settings.ProfileReader import ProfileReader
|
from UM.Settings.ProfileReader import ProfileReader
|
||||||
|
from UM.Logger import Logger
|
||||||
import re #Regular expressions for parsing escape characters in the settings.
|
import re #Regular expressions for parsing escape characters in the settings.
|
||||||
|
|
||||||
## A class that reads profile data from g-code files.
|
## A class that reads profile data from g-code files.
|
||||||
@ -40,6 +41,9 @@ class GCodeProfileReader(ProfileReader):
|
|||||||
# specified file was no g-code or contained no parsable profile, \code
|
# specified file was no g-code or contained no parsable profile, \code
|
||||||
# None \endcode is returned.
|
# None \endcode is returned.
|
||||||
def read(self, file_name):
|
def read(self, file_name):
|
||||||
|
if file_name.split(".")[-1] != "gcode":
|
||||||
|
return None
|
||||||
|
|
||||||
prefix = ";SETTING_" + str(GCodeProfileReader.version) + " "
|
prefix = ";SETTING_" + str(GCodeProfileReader.version) + " "
|
||||||
prefix_length = len(prefix)
|
prefix_length = len(prefix)
|
||||||
|
|
||||||
@ -62,6 +66,10 @@ class GCodeProfileReader(ProfileReader):
|
|||||||
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False)
|
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False)
|
||||||
try:
|
try:
|
||||||
profile.unserialise(serialised)
|
profile.unserialise(serialised)
|
||||||
|
profile.setType(None) #Force type to none so it's correctly added.
|
||||||
|
profile.setReadOnly(False)
|
||||||
|
profile.setDirty(True)
|
||||||
except Exception as e: #Not a valid g-code file.
|
except Exception as e: #Not a valid g-code file.
|
||||||
|
Logger.log("e", "Unable to serialise the profile: %s", str(e))
|
||||||
return None
|
return None
|
||||||
return profile
|
return profile
|
@ -6,6 +6,7 @@ from UM.Logger import Logger
|
|||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
import io
|
import io
|
||||||
import re #For escaping characters in the settings.
|
import re #For escaping characters in the settings.
|
||||||
|
import copy
|
||||||
|
|
||||||
|
|
||||||
class GCodeWriter(MeshWriter):
|
class GCodeWriter(MeshWriter):
|
||||||
@ -57,7 +58,8 @@ class GCodeWriter(MeshWriter):
|
|||||||
prefix = ";SETTING_" + str(GCodeWriter.version) + " " #The prefix to put before each line.
|
prefix = ";SETTING_" + str(GCodeWriter.version) + " " #The prefix to put before each line.
|
||||||
prefix_length = len(prefix)
|
prefix_length = len(prefix)
|
||||||
|
|
||||||
serialised = profile.serialise()
|
#Serialise a deepcopy to remove the defaults from the profile
|
||||||
|
serialised = copy.deepcopy(profile).serialise()
|
||||||
|
|
||||||
#Escape characters that have a special meaning in g-code comments.
|
#Escape characters that have a special meaning in g-code comments.
|
||||||
pattern = re.compile("|".join(GCodeWriter.escape_characters.keys()))
|
pattern = re.compile("|".join(GCodeWriter.escape_characters.keys()))
|
||||||
|
@ -33,8 +33,8 @@ class ImageReader(MeshReader):
|
|||||||
depth = img.height()
|
depth = img.height()
|
||||||
|
|
||||||
largest = max(width, depth)
|
largest = max(width, depth)
|
||||||
width = width / largest * self._ui.defaultWidth
|
width = width / largest * self._ui.default_width
|
||||||
depth = depth / largest * self._ui.defaultDepth
|
depth = depth / largest * self._ui.default_depth
|
||||||
|
|
||||||
self._ui.setWidthAndDepth(width, depth)
|
self._ui.setWidthAndDepth(width, depth)
|
||||||
self._ui.showConfigUI()
|
self._ui.showConfigUI()
|
||||||
@ -112,7 +112,7 @@ class ImageReader(MeshReader):
|
|||||||
height_data = 1 - height_data
|
height_data = 1 - height_data
|
||||||
|
|
||||||
for i in range(0, blur_iterations):
|
for i in range(0, blur_iterations):
|
||||||
copy = numpy.pad(height_data, ((1, 1), (1, 1)), mode='edge')
|
copy = numpy.pad(height_data, ((1, 1), (1, 1)), mode= "edge")
|
||||||
|
|
||||||
height_data += copy[1:-1, 2:]
|
height_data += copy[1:-1, 2:]
|
||||||
height_data += copy[1:-1, :-2]
|
height_data += copy[1:-1, :-2]
|
||||||
|
@ -24,12 +24,12 @@ class ImageReaderUI(QObject):
|
|||||||
self._ui_view = None
|
self._ui_view = None
|
||||||
self.show_config_ui_trigger.connect(self._actualShowConfigUI)
|
self.show_config_ui_trigger.connect(self._actualShowConfigUI)
|
||||||
|
|
||||||
self.defaultWidth = 120
|
self.default_width = 120
|
||||||
self.defaultDepth = 120
|
self.default_depth = 120
|
||||||
|
|
||||||
self._aspect = 1
|
self._aspect = 1
|
||||||
self._width = self.defaultWidth
|
self._width = self.default_width
|
||||||
self._depth = self.defaultDepth
|
self._depth = self.default_depth
|
||||||
|
|
||||||
self.base_height = 1
|
self.base_height = 1
|
||||||
self.peak_height = 10
|
self.peak_height = 10
|
||||||
|
@ -10,16 +10,23 @@ from UM.Signal import Signal
|
|||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Math.Color import Color
|
from UM.Math.Color import Color
|
||||||
from UM.Mesh.MeshData import MeshData
|
from UM.Mesh.MeshData import MeshData
|
||||||
|
from UM.Job import Job
|
||||||
|
from UM.Message import Message
|
||||||
|
|
||||||
from UM.View.RenderBatch import RenderBatch
|
from UM.View.RenderBatch import RenderBatch
|
||||||
from UM.View.GL.OpenGL import OpenGL
|
from UM.View.GL.OpenGL import OpenGL
|
||||||
|
|
||||||
from cura.ConvexHullNode import ConvexHullNode
|
from cura.ConvexHullNode import ConvexHullNode
|
||||||
|
|
||||||
from PyQt5 import QtCore, QtWidgets
|
from PyQt5.QtCore import Qt, QTimer
|
||||||
|
from PyQt5.QtWidgets import QApplication
|
||||||
|
|
||||||
from . import LayerViewProxy
|
from . import LayerViewProxy
|
||||||
|
|
||||||
|
import time
|
||||||
|
from UM.i18n import i18nCatalog
|
||||||
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
## View used to display g-code paths.
|
## View used to display g-code paths.
|
||||||
class LayerView(View):
|
class LayerView(View):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -29,15 +36,23 @@ class LayerView(View):
|
|||||||
self._num_layers = 0
|
self._num_layers = 0
|
||||||
self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100)
|
self._layer_percentage = 0 # what percentage of layers need to be shown (SLider gives value between 0 - 100)
|
||||||
self._proxy = LayerViewProxy.LayerViewProxy()
|
self._proxy = LayerViewProxy.LayerViewProxy()
|
||||||
self._controller.getScene().sceneChanged.connect(self._onSceneChanged)
|
self._controller.getScene().getRoot().childrenChanged.connect(self._onSceneChanged)
|
||||||
self._max_layers = 10
|
self._max_layers = 10
|
||||||
self._current_layer_num = 10
|
self._current_layer_num = 10
|
||||||
self._current_layer_mesh = None
|
self._current_layer_mesh = None
|
||||||
self._current_layer_jumps = None
|
self._current_layer_jumps = None
|
||||||
|
self._top_layers_job = None
|
||||||
self._activity = False
|
self._activity = False
|
||||||
|
|
||||||
self._solid_layers = 5
|
self._solid_layers = 5
|
||||||
|
|
||||||
|
self._top_layer_timer = QTimer()
|
||||||
|
self._top_layer_timer.setInterval(50)
|
||||||
|
self._top_layer_timer.setSingleShot(True)
|
||||||
|
self._top_layer_timer.timeout.connect(self._startUpdateTopLayers)
|
||||||
|
|
||||||
|
self._busy = False
|
||||||
|
|
||||||
def getActivity(self):
|
def getActivity(self):
|
||||||
return self._activity
|
return self._activity
|
||||||
|
|
||||||
@ -50,6 +65,16 @@ class LayerView(View):
|
|||||||
def getMaxLayers(self):
|
def getMaxLayers(self):
|
||||||
return self._max_layers
|
return self._max_layers
|
||||||
|
|
||||||
|
busyChanged = Signal()
|
||||||
|
|
||||||
|
def isBusy(self):
|
||||||
|
return self._busy
|
||||||
|
|
||||||
|
def setBusy(self, busy):
|
||||||
|
if busy != self._busy:
|
||||||
|
self._busy = busy
|
||||||
|
self.busyChanged.emit()
|
||||||
|
|
||||||
def resetLayerData(self):
|
def resetLayerData(self):
|
||||||
self._current_layer_mesh = None
|
self._current_layer_mesh = None
|
||||||
self._current_layer_jumps = None
|
self._current_layer_jumps = None
|
||||||
@ -89,50 +114,10 @@ class LayerView(View):
|
|||||||
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
# This uses glDrawRangeElements internally to only draw a certain range of lines.
|
||||||
renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, range = (start, end))
|
renderer.queueNode(node, mesh = layer_data, mode = RenderBatch.RenderMode.Lines, range = (start, end))
|
||||||
|
|
||||||
# We currently recreate the current "solid" layers every time a
|
|
||||||
if not self._current_layer_mesh:
|
|
||||||
self._current_layer_mesh = MeshData()
|
|
||||||
for i in range(self._solid_layers):
|
|
||||||
layer = self._current_layer_num - i
|
|
||||||
if layer < 0:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
layer_mesh = layer_data.getLayer(layer).createMesh()
|
|
||||||
if not layer_mesh or layer_mesh.getVertices() is None:
|
|
||||||
continue
|
|
||||||
except:
|
|
||||||
continue
|
|
||||||
if self._current_layer_mesh: #Threading thing; Switching between views can cause the current layer mesh to be deleted.
|
|
||||||
self._current_layer_mesh.addVertices(layer_mesh.getVertices())
|
|
||||||
|
|
||||||
# Scale layer color by a brightness factor based on the current layer number
|
|
||||||
# This will result in a range of 0.5 - 1.0 to multiply colors by.
|
|
||||||
brightness = (2.0 - (i / self._solid_layers)) / 2.0
|
|
||||||
if self._current_layer_mesh:
|
|
||||||
self._current_layer_mesh.addColors(layer_mesh.getColors() * brightness)
|
|
||||||
if self._current_layer_mesh:
|
if self._current_layer_mesh:
|
||||||
renderer.queueNode(node, mesh = self._current_layer_mesh)
|
renderer.queueNode(node, mesh = self._current_layer_mesh)
|
||||||
|
|
||||||
if not self._current_layer_jumps:
|
if self._current_layer_jumps:
|
||||||
self._current_layer_jumps = MeshData()
|
|
||||||
for i in range(1):
|
|
||||||
layer = self._current_layer_num - i
|
|
||||||
if layer < 0:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
layer_mesh = layer_data.getLayer(layer).createJumps()
|
|
||||||
if not layer_mesh or layer_mesh.getVertices() is None:
|
|
||||||
continue
|
|
||||||
except:
|
|
||||||
continue
|
|
||||||
|
|
||||||
self._current_layer_jumps.addVertices(layer_mesh.getVertices())
|
|
||||||
|
|
||||||
# Scale layer color by a brightness factor based on the current layer number
|
|
||||||
# This will result in a range of 0.5 - 1.0 to multiply colors by.
|
|
||||||
brightness = (2.0 - (i / self._solid_layers)) / 2.0
|
|
||||||
self._current_layer_jumps.addColors(layer_mesh.getColors() * brightness)
|
|
||||||
|
|
||||||
renderer.queueNode(node, mesh = self._current_layer_jumps)
|
renderer.queueNode(node, mesh = self._current_layer_jumps)
|
||||||
|
|
||||||
def setLayer(self, value):
|
def setLayer(self, value):
|
||||||
@ -145,6 +130,9 @@ class LayerView(View):
|
|||||||
|
|
||||||
self._current_layer_mesh = None
|
self._current_layer_mesh = None
|
||||||
self._current_layer_jumps = None
|
self._current_layer_jumps = None
|
||||||
|
|
||||||
|
self._top_layer_timer.start()
|
||||||
|
|
||||||
self.currentLayerNumChanged.emit()
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
||||||
currentLayerNumChanged = Signal()
|
currentLayerNumChanged = Signal()
|
||||||
@ -177,6 +165,7 @@ class LayerView(View):
|
|||||||
else:
|
else:
|
||||||
self.setLayer(int(self._max_layers))
|
self.setLayer(int(self._max_layers))
|
||||||
self.maxLayersChanged.emit()
|
self.maxLayersChanged.emit()
|
||||||
|
self._top_layer_timer.start()
|
||||||
|
|
||||||
maxLayersChanged = Signal()
|
maxLayersChanged = Signal()
|
||||||
currentLayerNumChanged = Signal()
|
currentLayerNumChanged = Signal()
|
||||||
@ -190,8 +179,8 @@ class LayerView(View):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def event(self, event):
|
def event(self, event):
|
||||||
modifiers = QtWidgets.QApplication.keyboardModifiers()
|
modifiers = QApplication.keyboardModifiers()
|
||||||
ctrl_is_active = modifiers == QtCore.Qt.ControlModifier
|
ctrl_is_active = modifiers == Qt.ControlModifier
|
||||||
if event.type == Event.KeyPressEvent and ctrl_is_active:
|
if event.type == Event.KeyPressEvent and ctrl_is_active:
|
||||||
if event.key == KeyEvent.UpKey:
|
if event.key == KeyEvent.UpKey:
|
||||||
self.setLayer(self._current_layer_num + 1)
|
self.setLayer(self._current_layer_num + 1)
|
||||||
@ -199,3 +188,86 @@ class LayerView(View):
|
|||||||
if event.key == KeyEvent.DownKey:
|
if event.key == KeyEvent.DownKey:
|
||||||
self.setLayer(self._current_layer_num - 1)
|
self.setLayer(self._current_layer_num - 1)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def _startUpdateTopLayers(self):
|
||||||
|
if self._top_layers_job:
|
||||||
|
self._top_layers_job.finished.disconnect(self._updateCurrentLayerMesh)
|
||||||
|
self._top_layers_job.cancel()
|
||||||
|
|
||||||
|
self.setBusy(True)
|
||||||
|
|
||||||
|
self._top_layers_job = _CreateTopLayersJob(self._controller.getScene(), self._current_layer_num, self._solid_layers)
|
||||||
|
self._top_layers_job.finished.connect(self._updateCurrentLayerMesh)
|
||||||
|
self._top_layers_job.start()
|
||||||
|
|
||||||
|
def _updateCurrentLayerMesh(self, job):
|
||||||
|
self.setBusy(False)
|
||||||
|
|
||||||
|
if not job.getResult():
|
||||||
|
return
|
||||||
|
|
||||||
|
self._current_layer_mesh = job.getResult().get("layers")
|
||||||
|
self._current_layer_jumps = job.getResult().get("jumps")
|
||||||
|
self._controller.getScene().sceneChanged.emit(self._controller.getScene().getRoot())
|
||||||
|
|
||||||
|
self._top_layers_job = None
|
||||||
|
|
||||||
|
class _CreateTopLayersJob(Job):
|
||||||
|
def __init__(self, scene, layer_number, solid_layers):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self._scene = scene
|
||||||
|
self._layer_number = layer_number
|
||||||
|
self._solid_layers = solid_layers
|
||||||
|
self._cancel = False
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
layer_data = None
|
||||||
|
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||||
|
layer_data = node.callDecoration("getLayerData")
|
||||||
|
if layer_data:
|
||||||
|
break
|
||||||
|
|
||||||
|
if self._cancel or not layer_data:
|
||||||
|
return
|
||||||
|
|
||||||
|
layer_mesh = MeshData()
|
||||||
|
for i in range(self._solid_layers):
|
||||||
|
layer_number = self._layer_number - i
|
||||||
|
if layer_number < 0:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
layer = layer_data.getLayer(layer_number).createMesh()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
return
|
||||||
|
|
||||||
|
if not layer or layer.getVertices() is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
layer_mesh.addVertices(layer.getVertices())
|
||||||
|
|
||||||
|
# Scale layer color by a brightness factor based on the current layer number
|
||||||
|
# This will result in a range of 0.5 - 1.0 to multiply colors by.
|
||||||
|
brightness = (2.0 - (i / self._solid_layers)) / 2.0
|
||||||
|
layer_mesh.addColors(layer.getColors() * brightness)
|
||||||
|
|
||||||
|
if self._cancel:
|
||||||
|
return
|
||||||
|
|
||||||
|
Job.yieldThread()
|
||||||
|
|
||||||
|
if self._cancel:
|
||||||
|
return
|
||||||
|
|
||||||
|
Job.yieldThread()
|
||||||
|
jump_mesh = layer_data.getLayer(self._layer_number).createJumps()
|
||||||
|
if not jump_mesh or jump_mesh.getVertices() is None:
|
||||||
|
jump_mesh = None
|
||||||
|
|
||||||
|
self.setResult({ "layers": layer_mesh, "jumps": jump_mesh })
|
||||||
|
|
||||||
|
def cancel(self):
|
||||||
|
self._cancel = True
|
||||||
|
super().cancel()
|
||||||
|
@ -10,35 +10,96 @@ import UM 1.0 as UM
|
|||||||
|
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
width: UM.Theme.sizes.button.width
|
width: UM.Theme.getSize("button").width
|
||||||
height: UM.Theme.sizes.slider_layerview_size.height
|
height: UM.Theme.getSize("slider_layerview_size").height
|
||||||
|
|
||||||
Slider
|
Slider
|
||||||
{
|
{
|
||||||
id: slider
|
id: slider
|
||||||
width: UM.Theme.sizes.slider_layerview_size.width
|
width: UM.Theme.getSize("slider_layerview_size").width
|
||||||
height: UM.Theme.sizes.slider_layerview_size.height
|
height: UM.Theme.getSize("slider_layerview_size").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.slider_layerview_margin.width/2
|
anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width/2
|
||||||
orientation: Qt.Vertical
|
orientation: Qt.Vertical
|
||||||
minimumValue: 0;
|
minimumValue: 0;
|
||||||
maximumValue: UM.LayerView.numLayers;
|
maximumValue: UM.LayerView.numLayers;
|
||||||
stepSize: 1
|
stepSize: 1
|
||||||
|
|
||||||
|
property real pixelsPerStep: ((height - UM.Theme.getSize("slider_handle").height) / (maximumValue - minimumValue)) * stepSize;
|
||||||
|
|
||||||
value: UM.LayerView.currentLayer
|
value: UM.LayerView.currentLayer
|
||||||
onValueChanged: UM.LayerView.setCurrentLayer(value)
|
onValueChanged: UM.LayerView.setCurrentLayer(value)
|
||||||
|
|
||||||
style: UM.Theme.styles.layerViewSlider
|
style: UM.Theme.styles.slider;
|
||||||
|
|
||||||
|
Rectangle
|
||||||
|
{
|
||||||
|
x: parent.width + UM.Theme.getSize("slider_layerview_background").width / 2;
|
||||||
|
y: parent.height - (parent.value * parent.pixelsPerStep) - UM.Theme.getSize("slider_handle").height * 1.25;
|
||||||
|
|
||||||
|
height: UM.Theme.getSize("slider_handle").height + UM.Theme.getSize("default_margin").height
|
||||||
|
width: valueLabel.width + UM.Theme.getSize("default_margin").width
|
||||||
|
Behavior on height { NumberAnimation { duration: 50; } }
|
||||||
|
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width;
|
||||||
|
border.color: UM.Theme.getColor("slider_groove_border");
|
||||||
|
|
||||||
|
visible: UM.LayerView.getLayerActivity && Printer.getPlatformActivity ? true : false
|
||||||
|
|
||||||
|
TextField
|
||||||
|
{
|
||||||
|
id: valueLabel
|
||||||
|
property string maxValue: slider.maximumValue + 1
|
||||||
|
text: slider.value + 1
|
||||||
|
horizontalAlignment: TextInput.AlignRight;
|
||||||
|
onEditingFinished:
|
||||||
|
{
|
||||||
|
if(valueLabel.text != '')
|
||||||
|
{
|
||||||
|
slider.value = valueLabel.text - 1
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
validator: IntValidator { bottom: 1; top: slider.maximumValue + 1; }
|
||||||
|
|
||||||
|
anchors.left: parent.left;
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2;
|
||||||
|
anchors.verticalCenter: parent.verticalCenter;
|
||||||
|
|
||||||
|
width: UM.Theme.getSize("line").width * maxValue.length;
|
||||||
|
|
||||||
|
style: TextFieldStyle
|
||||||
|
{
|
||||||
|
textColor: UM.Theme.getColor("setting_control_text");
|
||||||
|
font: UM.Theme.getFont("default");
|
||||||
|
background: Item { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BusyIndicator
|
||||||
|
{
|
||||||
|
id: busyIndicator;
|
||||||
|
anchors.left: parent.right;
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2;
|
||||||
|
anchors.verticalCenter: parent.verticalCenter;
|
||||||
|
|
||||||
|
width: UM.Theme.getSize("slider_handle").height;
|
||||||
|
height: width;
|
||||||
|
|
||||||
|
running: UM.LayerView.busy;
|
||||||
|
visible: UM.LayerView.busy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
z: slider.z - 1
|
z: slider.z - 1
|
||||||
width: UM.Theme.sizes.slider_layerview_background.width
|
width: UM.Theme.getSize("slider_layerview_background").width
|
||||||
height: slider.height + UM.Theme.sizes.default_margin.height * 2
|
height: slider.height + UM.Theme.getSize("default_margin").height * 2
|
||||||
color: UM.Theme.colors.tool_panel_background;
|
color: UM.Theme.getColor("tool_panel_background");
|
||||||
border.width: UM.Theme.sizes.default_lining.width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
border.color: UM.Theme.colors.lining
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: sliderMouseArea
|
id: sliderMouseArea
|
||||||
|
@ -34,6 +34,15 @@ class LayerViewProxy(QObject):
|
|||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
return active_view.getCurrentLayer()
|
return active_view.getCurrentLayer()
|
||||||
|
|
||||||
|
busyChanged = pyqtSignal()
|
||||||
|
@pyqtProperty(bool, notify = busyChanged)
|
||||||
|
def busy(self):
|
||||||
|
active_view = self._controller.getActiveView()
|
||||||
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
|
return active_view.isBusy()
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
@pyqtSlot(int)
|
@pyqtSlot(int)
|
||||||
def setCurrentLayer(self, layer_num):
|
def setCurrentLayer(self, layer_num):
|
||||||
active_view = self._controller.getActiveView()
|
active_view = self._controller.getActiveView()
|
||||||
@ -50,8 +59,12 @@ class LayerViewProxy(QObject):
|
|||||||
def _onMaxLayersChanged(self):
|
def _onMaxLayersChanged(self):
|
||||||
self.maxLayersChanged.emit()
|
self.maxLayersChanged.emit()
|
||||||
|
|
||||||
|
def _onBusyChanged(self):
|
||||||
|
self.busyChanged.emit()
|
||||||
|
|
||||||
def _onActiveViewChanged(self):
|
def _onActiveViewChanged(self):
|
||||||
active_view = self._controller.getActiveView()
|
active_view = self._controller.getActiveView()
|
||||||
if type(active_view) == LayerView.LayerView.LayerView:
|
if type(active_view) == LayerView.LayerView.LayerView:
|
||||||
active_view.currentLayerNumChanged.connect(self._onLayerChanged)
|
active_view.currentLayerNumChanged.connect(self._onLayerChanged)
|
||||||
active_view.maxLayersChanged.connect(self._onMaxLayersChanged)
|
active_view.maxLayersChanged.connect(self._onMaxLayersChanged)
|
||||||
|
active_view.busyChanged.connect(self._onBusyChanged)
|
||||||
|
@ -63,9 +63,10 @@ class LegacyProfileReader(ProfileReader):
|
|||||||
# file could not be read or didn't contain a valid profile, \code None
|
# file could not be read or didn't contain a valid profile, \code None
|
||||||
# \endcode is returned.
|
# \endcode is returned.
|
||||||
def read(self, file_name):
|
def read(self, file_name):
|
||||||
|
if file_name.split(".")[-1] != "ini":
|
||||||
|
return None
|
||||||
Logger.log("i", "Importing legacy profile from file " + file_name + ".")
|
Logger.log("i", "Importing legacy profile from file " + file_name + ".")
|
||||||
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False) #Create an empty profile.
|
profile = Profile(machine_manager = Application.getInstance().getMachineManager(), read_only = False) #Create an empty profile.
|
||||||
profile.setName("Imported Legacy Profile")
|
|
||||||
|
|
||||||
parser = configparser.ConfigParser(interpolation = None)
|
parser = configparser.ConfigParser(interpolation = None)
|
||||||
try:
|
try:
|
||||||
@ -123,5 +124,5 @@ class LegacyProfileReader(ProfileReader):
|
|||||||
|
|
||||||
if len(profile.getChangedSettings()) == 0:
|
if len(profile.getChangedSettings()) == 0:
|
||||||
Logger.log("i", "A legacy profile was imported but everything evaluates to the defaults, creating an empty profile.")
|
Logger.log("i", "A legacy profile was imported but everything evaluates to the defaults, creating an empty profile.")
|
||||||
|
profile.setDirty(True)
|
||||||
return profile
|
return profile
|
@ -70,7 +70,7 @@ class PerObjectSettingsModel(ListModel):
|
|||||||
def _updateModel(self):
|
def _updateModel(self):
|
||||||
self.clear()
|
self.clear()
|
||||||
for node in BreadthFirstIterator(self._root):
|
for node in BreadthFirstIterator(self._root):
|
||||||
if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable():
|
if type(node) is not SceneNode or not node.isSelectable():
|
||||||
continue
|
continue
|
||||||
node_profile = node.callDecoration("getProfile")
|
node_profile = node.callDecoration("getProfile")
|
||||||
if not node_profile:
|
if not node_profile:
|
||||||
|
@ -22,34 +22,12 @@ Item {
|
|||||||
anchors.top: parent.top;
|
anchors.top: parent.top;
|
||||||
anchors.left: parent.left;
|
anchors.left: parent.left;
|
||||||
|
|
||||||
spacing: UM.Theme.sizes.default_margin.height;
|
spacing: UM.Theme.getSize("default_margin").height;
|
||||||
|
|
||||||
UM.SettingItem {
|
|
||||||
id: profileSelection
|
|
||||||
|
|
||||||
width: UM.Theme.sizes.setting.width;
|
|
||||||
height: UM.Theme.sizes.setting.height;
|
|
||||||
|
|
||||||
name: catalog.i18nc("@label", "Object profile")
|
|
||||||
type: "enum"
|
|
||||||
indent: false
|
|
||||||
|
|
||||||
style: UM.Theme.styles.setting_item;
|
|
||||||
|
|
||||||
options: UM.ProfilesModel { addUseGlobal: true }
|
|
||||||
|
|
||||||
value: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).profile
|
|
||||||
|
|
||||||
onItemValueChanged: {
|
|
||||||
var item = UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex);
|
|
||||||
UM.ActiveTool.properties.getValue("Model").setObjectProfile(item.id, value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: customisedSettings
|
id: customisedSettings
|
||||||
spacing: UM.Theme.sizes.default_lining.height;
|
spacing: UM.Theme.getSize("default_lining").height;
|
||||||
width: UM.Theme.sizes.setting.width + UM.Theme.sizes.setting.height/2;
|
width: UM.Theme.getSize("setting").width + UM.Theme.getSize("setting").height/2;
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
id: settings;
|
id: settings;
|
||||||
@ -57,8 +35,8 @@ Item {
|
|||||||
model: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).settings
|
model: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).settings
|
||||||
|
|
||||||
UM.SettingItem {
|
UM.SettingItem {
|
||||||
width: UM.Theme.sizes.setting.width;
|
width: UM.Theme.getSize("setting").width;
|
||||||
height: UM.Theme.sizes.setting.height;
|
height: UM.Theme.getSize("setting").height;
|
||||||
|
|
||||||
name: model.label;
|
name: model.label;
|
||||||
type: model.type;
|
type: model.type;
|
||||||
@ -66,6 +44,7 @@ Item {
|
|||||||
description: model.description;
|
description: model.description;
|
||||||
unit: model.unit;
|
unit: model.unit;
|
||||||
valid: model.valid;
|
valid: model.valid;
|
||||||
|
visible: !model.global_only
|
||||||
options: model.options
|
options: model.options
|
||||||
indent: false
|
indent: false
|
||||||
|
|
||||||
@ -79,8 +58,8 @@ Item {
|
|||||||
{
|
{
|
||||||
anchors.left: parent.right;
|
anchors.left: parent.right;
|
||||||
|
|
||||||
width: UM.Theme.sizes.setting.height;
|
width: UM.Theme.getSize("setting").height;
|
||||||
height: UM.Theme.sizes.setting.height;
|
height: UM.Theme.getSize("setting").height;
|
||||||
|
|
||||||
onClicked: UM.ActiveTool.properties.getValue("Model").removeSettingOverride(UM.ActiveTool.properties.getValue("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)
|
||||||
|
|
||||||
@ -97,8 +76,8 @@ Item {
|
|||||||
height: parent.height/2
|
height: parent.height/2
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: width
|
sourceSize.height: width
|
||||||
color: control.hovered ? UM.Theme.colors.setting_control_button_hover : UM.Theme.colors.setting_control_button
|
color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
|
||||||
source: UM.Theme.icons.cross1
|
source: UM.Theme.getIcon("cross1")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -110,8 +89,7 @@ Item {
|
|||||||
Button
|
Button
|
||||||
{
|
{
|
||||||
id: customise_settings_button;
|
id: customise_settings_button;
|
||||||
anchors.right: profileSelection.right;
|
height: UM.Theme.getSize("setting").height;
|
||||||
height: UM.Theme.sizes.setting.height;
|
|
||||||
visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
|
visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
|
||||||
|
|
||||||
text: catalog.i18nc("@action:button", "Add Setting");
|
text: catalog.i18nc("@action:button", "Add Setting");
|
||||||
@ -122,16 +100,16 @@ Item {
|
|||||||
{
|
{
|
||||||
width: control.width;
|
width: control.width;
|
||||||
height: control.height;
|
height: control.height;
|
||||||
border.width: UM.Theme.sizes.default_lining.width;
|
border.width: UM.Theme.getSize("default_lining").width;
|
||||||
border.color: control.pressed ? UM.Theme.colors.action_button_active_border :
|
border.color: control.pressed ? UM.Theme.getColor("action_button_active_border") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered_border : UM.Theme.colors.action_button_border
|
control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border")
|
||||||
color: control.pressed ? UM.Theme.colors.action_button_active :
|
color: control.pressed ? UM.Theme.getColor("action_button_active") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered : UM.Theme.colors.action_button
|
control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
|
||||||
}
|
}
|
||||||
label: Label
|
label: Label
|
||||||
{
|
{
|
||||||
text: control.text;
|
text: control.text;
|
||||||
color: UM.Theme.colors.setting_control_text;
|
color: UM.Theme.getColor("setting_control_text");
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,7 +158,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
width: view.width - UM.Theme.sizes.default_margin.width * 2;
|
width: view.width - UM.Theme.getSize("default_margin").width * 2;
|
||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
@ -211,11 +189,11 @@ Item {
|
|||||||
}
|
}
|
||||||
label: Row
|
label: Row
|
||||||
{
|
{
|
||||||
spacing: UM.Theme.sizes.default_margin.width;
|
spacing: UM.Theme.getSize("default_margin").width;
|
||||||
Image
|
Image
|
||||||
{
|
{
|
||||||
anchors.verticalCenter: parent.verticalCenter;
|
anchors.verticalCenter: parent.verticalCenter;
|
||||||
source: control.checked ? UM.Theme.icons.arrow_right : UM.Theme.icons.arrow_bottom;
|
source: control.checked ? UM.Theme.getIcon("arrow_right") : UM.Theme.getIcon("arrow_bottom");
|
||||||
}
|
}
|
||||||
Label
|
Label
|
||||||
{
|
{
|
||||||
@ -259,7 +237,7 @@ Item {
|
|||||||
|
|
||||||
delegate: ToolButton {
|
delegate: ToolButton {
|
||||||
id: button;
|
id: button;
|
||||||
x: model.depth * UM.Theme.sizes.default_margin.width;
|
x: model.depth * UM.Theme.getSize("default_margin").width;
|
||||||
text: model.name;
|
text: model.name;
|
||||||
tooltip: model.description;
|
tooltip: model.description;
|
||||||
visible: !model.global_only
|
visible: !model.global_only
|
||||||
|
@ -5,6 +5,7 @@ from UM.Tool import Tool
|
|||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
from UM.Preferences import Preferences
|
||||||
|
|
||||||
from . import PerObjectSettingsModel
|
from . import PerObjectSettingsModel
|
||||||
|
|
||||||
@ -15,6 +16,9 @@ class PerObjectSettingsTool(Tool):
|
|||||||
|
|
||||||
self.setExposedProperties("Model", "SelectedIndex")
|
self.setExposedProperties("Model", "SelectedIndex")
|
||||||
|
|
||||||
|
Preferences.getInstance().preferenceChanged.connect(self._onPreferenceChanged)
|
||||||
|
self._onPreferenceChanged("cura/active_mode")
|
||||||
|
|
||||||
def event(self, event):
|
def event(self, event):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -27,6 +31,17 @@ class PerObjectSettingsTool(Tool):
|
|||||||
return PerObjectSettingsModel.PerObjectSettingsModel(self._model)
|
return PerObjectSettingsModel.PerObjectSettingsModel(self._model)
|
||||||
|
|
||||||
def getSelectedIndex(self):
|
def getSelectedIndex(self):
|
||||||
selected_object_id = id(Selection.getSelectedObject(0))
|
try:
|
||||||
|
selected_object = Selection.getSelectedObject(0)
|
||||||
|
if selected_object.getParent().callDecoration("isGroup"):
|
||||||
|
selected_object = selected_object.getParent()
|
||||||
|
except:
|
||||||
|
selected_object = None
|
||||||
|
selected_object_id = id(selected_object)
|
||||||
index = self.getModel().find("id", selected_object_id)
|
index = self.getModel().find("id", selected_object_id)
|
||||||
return index
|
return index
|
||||||
|
|
||||||
|
def _onPreferenceChanged(self, preference):
|
||||||
|
if preference == "cura/active_mode":
|
||||||
|
enabled = Preferences.getInstance().getValue(preference)==1
|
||||||
|
Application.getInstance().getController().toolEnabledChanged.emit(self._plugin_id, enabled)
|
@ -18,6 +18,7 @@ class SettingOverrideModel(ListModel):
|
|||||||
OptionsRole = Qt.UserRole + 8
|
OptionsRole = Qt.UserRole + 8
|
||||||
WarningDescriptionRole = Qt.UserRole + 9
|
WarningDescriptionRole = Qt.UserRole + 9
|
||||||
ErrorDescriptionRole = Qt.UserRole + 10
|
ErrorDescriptionRole = Qt.UserRole + 10
|
||||||
|
GlobalOnlyRole = Qt.UserRole + 11
|
||||||
|
|
||||||
def __init__(self, node, parent = None):
|
def __init__(self, node, parent = None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
@ -28,6 +29,10 @@ class SettingOverrideModel(ListModel):
|
|||||||
self._node.decoratorsChanged.connect(self._onDecoratorsChanged)
|
self._node.decoratorsChanged.connect(self._onDecoratorsChanged)
|
||||||
self._onDecoratorsChanged(None)
|
self._onDecoratorsChanged(None)
|
||||||
|
|
||||||
|
self._activeProfile = Application.getInstance().getMachineManager().getWorkingProfile() #To be able to get notified when a setting changes.
|
||||||
|
self._activeProfile.settingValueChanged.connect(self._onProfileSettingValueChanged)
|
||||||
|
Application.getInstance().getMachineManager().activeProfileChanged.connect(self._onProfileChanged)
|
||||||
|
|
||||||
self.addRoleName(self.KeyRole, "key")
|
self.addRoleName(self.KeyRole, "key")
|
||||||
self.addRoleName(self.LabelRole, "label")
|
self.addRoleName(self.LabelRole, "label")
|
||||||
self.addRoleName(self.DescriptionRole, "description")
|
self.addRoleName(self.DescriptionRole, "description")
|
||||||
@ -38,6 +43,7 @@ class SettingOverrideModel(ListModel):
|
|||||||
self.addRoleName(self.OptionsRole, "options")
|
self.addRoleName(self.OptionsRole, "options")
|
||||||
self.addRoleName(self.WarningDescriptionRole, "warning_description")
|
self.addRoleName(self.WarningDescriptionRole, "warning_description")
|
||||||
self.addRoleName(self.ErrorDescriptionRole, "error_description")
|
self.addRoleName(self.ErrorDescriptionRole, "error_description")
|
||||||
|
self.addRoleName(self.GlobalOnlyRole, "global_only")
|
||||||
|
|
||||||
@pyqtSlot(str, "QVariant")
|
@pyqtSlot(str, "QVariant")
|
||||||
def setSettingValue(self, key, value):
|
def setSettingValue(self, key, value):
|
||||||
@ -68,6 +74,35 @@ class SettingOverrideModel(ListModel):
|
|||||||
model.appendItem({"value": str(value), "name": str(name)})
|
model.appendItem({"value": str(value), "name": str(name)})
|
||||||
return model
|
return model
|
||||||
|
|
||||||
|
## Updates the active profile in this model if the active profile is
|
||||||
|
# changed.
|
||||||
|
#
|
||||||
|
# This links the settingValueChanged of the new profile to this model's
|
||||||
|
# _onSettingValueChanged function, so that it properly listens to those
|
||||||
|
# events again.
|
||||||
|
def _onProfileChanged(self):
|
||||||
|
if self._activeProfile: #Unlink from the old profile.
|
||||||
|
self._activeProfile.settingValueChanged.disconnect(self._onProfileSettingValueChanged)
|
||||||
|
old_profile = self._activeProfile
|
||||||
|
self._activeProfile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
self._activeProfile.settingValueChanged.connect(self._onProfileSettingValueChanged) #Re-link to the new profile.
|
||||||
|
for setting_name in old_profile.getChangedSettings().keys(): #Update all changed settings in the old and new profiles.
|
||||||
|
self._onProfileSettingValueChanged(setting_name)
|
||||||
|
for setting_name in self._activeProfile.getChangedSettings().keys():
|
||||||
|
self._onProfileSettingValueChanged(setting_name)
|
||||||
|
|
||||||
|
## Updates the global_only property of a setting once a setting value
|
||||||
|
# changes.
|
||||||
|
#
|
||||||
|
# This method should only get called on settings that are dependent on the
|
||||||
|
# changed setting.
|
||||||
|
#
|
||||||
|
# \param setting_name The setting that needs to be updated.
|
||||||
|
def _onProfileSettingValueChanged(self, setting_name):
|
||||||
|
index = self.find("key", setting_name)
|
||||||
|
if index != -1:
|
||||||
|
self.setProperty(index, "global_only", Application.getInstance().getMachineManager().getActiveMachineInstance().getMachineDefinition().getSetting(setting_name).getGlobalOnly())
|
||||||
|
|
||||||
def _onSettingsChanged(self):
|
def _onSettingsChanged(self):
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
@ -84,7 +119,8 @@ class SettingOverrideModel(ListModel):
|
|||||||
"valid": setting.validate(value),
|
"valid": setting.validate(value),
|
||||||
"options": self._createOptionsModel(setting.getOptions()),
|
"options": self._createOptionsModel(setting.getOptions()),
|
||||||
"warning_description": setting.getWarningDescription(),
|
"warning_description": setting.getWarningDescription(),
|
||||||
"error_description": setting.getErrorDescription()
|
"error_description": setting.getErrorDescription(),
|
||||||
|
"global_only": setting.getGlobalOnly()
|
||||||
})
|
})
|
||||||
|
|
||||||
items.sort(key = lambda i: i["key"])
|
items.sort(key = lambda i: i["key"])
|
||||||
@ -98,3 +134,4 @@ class SettingOverrideModel(ListModel):
|
|||||||
if index != -1:
|
if index != -1:
|
||||||
self.setProperty(index, "value", str(value))
|
self.setProperty(index, "value", str(value))
|
||||||
self.setProperty(index, "valid", setting.validate(value))
|
self.setProperty(index, "valid", setting.validate(value))
|
||||||
|
self.setProperty(index, "global_only", setting.getGlobalOnly())
|
@ -33,14 +33,17 @@ class SolidView(View):
|
|||||||
if not self._disabled_shader:
|
if not self._disabled_shader:
|
||||||
self._disabled_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader"))
|
self._disabled_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader"))
|
||||||
self._disabled_shader.setUniformValue("u_diffuseColor", [0.68, 0.68, 0.68, 1.0])
|
self._disabled_shader.setUniformValue("u_diffuseColor", [0.68, 0.68, 0.68, 1.0])
|
||||||
|
self._disabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0)))
|
||||||
|
|
||||||
if Application.getInstance().getMachineManager().getWorkingProfile():
|
if Application.getInstance().getMachineManager().getWorkingProfile():
|
||||||
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
profile = Application.getInstance().getMachineManager().getWorkingProfile()
|
||||||
|
|
||||||
if profile.getSettingValue("support_enable") or not Preferences.getInstance().getValue("view/show_overhang"):
|
if Preferences.getInstance().getValue("view/show_overhang"):
|
||||||
angle = profile.getSettingValue("support_angle")
|
angle = profile.getSettingValue("support_angle")
|
||||||
if angle != None:
|
if angle != None:
|
||||||
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(90 - angle)))
|
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(90 - angle)))
|
||||||
|
else:
|
||||||
|
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) #Overhang angle of 0 causes no area at all to be marked as overhang.
|
||||||
else:
|
else:
|
||||||
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0)))
|
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0)))
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ UM.Dialog
|
|||||||
anchors.fill: parent;
|
anchors.fill: parent;
|
||||||
Row
|
Row
|
||||||
{
|
{
|
||||||
spacing: UM.Theme.sizes.default_margin.width;
|
spacing: UM.Theme.getSize("default_margin").width;
|
||||||
Text
|
Text
|
||||||
{
|
{
|
||||||
//: USB Printing dialog label, %1 is head temperature
|
//: USB Printing dialog label, %1 is head temperature
|
||||||
|
@ -54,10 +54,11 @@ UM.Dialog
|
|||||||
|
|
||||||
ProgressBar
|
ProgressBar
|
||||||
{
|
{
|
||||||
id: prog;
|
id: prog
|
||||||
value: manager.progress
|
value: manager.progress
|
||||||
minimumValue: 0;
|
minimumValue: 0
|
||||||
maximumValue: 100;
|
maximumValue: 100
|
||||||
|
indeterminate: manager.progress < 100
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
left: parent.left;
|
left: parent.left;
|
||||||
|
@ -106,6 +106,7 @@ class USBPrinterManager(QObject, SignalEmitter, OutputDevicePlugin, Extension):
|
|||||||
try:
|
try:
|
||||||
self._printer_connections[printer_connection].updateFirmware(Resources.getPath(CuraApplication.ResourceTypes.Firmware, self._getDefaultFirmwareName()))
|
self._printer_connections[printer_connection].updateFirmware(Resources.getPath(CuraApplication.ResourceTypes.Firmware, self._getDefaultFirmwareName()))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
|
self._printer_connections[printer_connection].setProgress(100, 100)
|
||||||
Logger.log("w", "No firmware found for printer %s", printer_connection)
|
Logger.log("w", "No firmware found for printer %s", printer_connection)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -132,31 +133,38 @@ class USBPrinterManager(QObject, SignalEmitter, OutputDevicePlugin, Extension):
|
|||||||
return USBPrinterManager._instance
|
return USBPrinterManager._instance
|
||||||
|
|
||||||
def _getDefaultFirmwareName(self):
|
def _getDefaultFirmwareName(self):
|
||||||
machine_type = Application.getInstance().getMachineManager().getActiveMachineInstance().getMachineDefinition().getId()
|
machine_instance = Application.getInstance().getMachineManager().getActiveMachineInstance()
|
||||||
firmware_name = ""
|
machine_type = machine_instance.getMachineDefinition().getId()
|
||||||
baudrate = 250000
|
baudrate = 250000
|
||||||
if sys.platform.startswith("linux"):
|
if sys.platform.startswith("linux"):
|
||||||
baudrate = 115200
|
baudrate = 115200
|
||||||
if machine_type == "ultimaker_original":
|
if machine_type == "ultimaker_original":
|
||||||
firmware_name = "MarlinUltimaker"
|
firmware_name = "MarlinUltimaker"
|
||||||
|
if machine_instance.getMachineSettingValue("machine_heated_bed"): #Has heated bed upgrade kit?
|
||||||
|
firmware_name += "-HBK"
|
||||||
firmware_name += "-%d" % (baudrate)
|
firmware_name += "-%d" % (baudrate)
|
||||||
|
return firmware_name + ".hex"
|
||||||
elif machine_type == "ultimaker_original_plus":
|
elif machine_type == "ultimaker_original_plus":
|
||||||
firmware_name = "MarlinUltimaker-UMOP-%d" % (baudrate)
|
firmware_name = "MarlinUltimaker-UMOP-%d" % (baudrate)
|
||||||
elif machine_type == "Witbox":
|
return firmware_name + ".hex"
|
||||||
|
elif machine_type == "bq_witbox":
|
||||||
return "MarlinWitbox.hex"
|
return "MarlinWitbox.hex"
|
||||||
elif machine_type == "ultimaker2go":
|
elif machine_type == "ultimaker2_go":
|
||||||
return "MarlinUltimaker2go.hex"
|
return "MarlinUltimaker2go.hex"
|
||||||
elif machine_type == "ultimaker2extended":
|
elif machine_type == "ultimaker2_extended":
|
||||||
return "MarlinUltimaker2extended.hex"
|
return "MarlinUltimaker2extended.hex"
|
||||||
elif machine_type == "ultimaker2":
|
elif machine_type == "ultimaker2":
|
||||||
return "MarlinUltimaker2.hex"
|
return "MarlinUltimaker2.hex"
|
||||||
|
elif machine_type == "ultimaker2plus":
|
||||||
|
return "MarlinUltimaker2plus.hex"
|
||||||
|
elif machine_type == "ultimaker2_extended_plus":
|
||||||
|
return "MarlinUltimaker2extended-plus.hex"
|
||||||
|
else:
|
||||||
|
Logger.log("e", "I don't know of any firmware for machine %s.", machine_type)
|
||||||
|
raise FileNotFoundError()
|
||||||
|
|
||||||
##TODO: Add check for multiple extruders
|
##TODO: Add check for multiple extruders
|
||||||
|
|
||||||
if firmware_name != "":
|
|
||||||
firmware_name += ".hex"
|
|
||||||
return firmware_name
|
|
||||||
|
|
||||||
def _addRemovePorts(self, serial_ports):
|
def _addRemovePorts(self, serial_ports):
|
||||||
# First, find and add all new or changed keys
|
# First, find and add all new or changed keys
|
||||||
for serial_port in list(serial_ports):
|
for serial_port in list(serial_ports):
|
||||||
|
BIN
resources/images/Ultimaker2ExtendedPlusbackplate.png
Normal file
BIN
resources/images/Ultimaker2ExtendedPlusbackplate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
BIN
resources/images/Ultimaker2Plusbackplate.png
Normal file
BIN
resources/images/Ultimaker2Plusbackplate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
Before Width: | Height: | Size: 13 KiB |
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"id": "rigidbotbig",
|
"id": "rigidbot",
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"name": "RigidBot",
|
"name": "RigidBot",
|
||||||
"manufacturer": "Other",
|
"manufacturer": "Other",
|
||||||
@ -8,7 +8,7 @@
|
|||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"machine_settings": {
|
||||||
|
|
||||||
"machine_width": { "default": 254 },
|
"machine_width": { "default": 254 },
|
||||||
"machine_depth": { "default": 254 },
|
"machine_depth": { "default": 254 },
|
||||||
@ -32,8 +32,10 @@
|
|||||||
},
|
},
|
||||||
"machine_end_gcode": {
|
"machine_end_gcode": {
|
||||||
"default": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+10 E-1 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG1 Y230 F3000 ;move Y so the head is out of the way and Plate is moved forward\nM84 ;steppers off\nG90 ;absolute positioning\n;{profile_string}"
|
"default": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+10 E-1 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG1 Y230 F3000 ;move Y so the head is out of the way and Plate is moved forward\nM84 ;steppers off\nG90 ;absolute positioning\n;{profile_string}"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
"layer_height": { "default": 0.2 },
|
"layer_height": { "default": 0.2 },
|
||||||
"shell_thickness": { "default": 0.8 },
|
"shell_thickness": { "default": 0.8 },
|
||||||
"wall_thickness": { "default": 0.8 },
|
"wall_thickness": { "default": 0.8 },
|
||||||
@ -49,7 +51,7 @@
|
|||||||
"speed_infill": { "default": 100.0, "visible": true },
|
"speed_infill": { "default": 100.0, "visible": true },
|
||||||
"speed_topbottom": { "default": 15.0, "visible": true },
|
"speed_topbottom": { "default": 15.0, "visible": true },
|
||||||
"speed_travel": { "default": 150.0, "visible": true },
|
"speed_travel": { "default": 150.0, "visible": true },
|
||||||
"speed_layer_0": { "min_value": 0.1, "default": 15.0, "visible": true },
|
"speed_layer_0": { "min_value": "0.1", "default": 15.0, "visible": true },
|
||||||
"infill_overlap": { "default": 0.04, "inherit_function": "0.1 * line_width if infill_sparse_density < 95 else 0" },
|
"infill_overlap": { "default": 0.04, "inherit_function": "0.1 * line_width if infill_sparse_density < 95 else 0" },
|
||||||
"cool_fan_enabled": { "default": false, "visible": true },
|
"cool_fan_enabled": { "default": false, "visible": true },
|
||||||
"cool_fan_speed": { "default": 0.0, "visible": true },
|
"cool_fan_speed": { "default": 0.0, "visible": true },
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"overrides": {
|
"machine_settings": {
|
||||||
|
|
||||||
"machine_width": { "default": 400 },
|
"machine_width": { "default": 400 },
|
||||||
"machine_depth": { "default": 300 },
|
"machine_depth": { "default": 300 },
|
||||||
@ -30,8 +30,10 @@
|
|||||||
},
|
},
|
||||||
"machine_end_gcode": {
|
"machine_end_gcode": {
|
||||||
"default": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+10 E-1 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG1 Y230 F3000 ;move Y so the head is out of the way and Plate is moved forward\nM84 ;steppers off\nG90 ;absolute positioning\n;{profile_string}"
|
"default": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+10 E-1 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG1 Y230 F3000 ;move Y so the head is out of the way and Plate is moved forward\nM84 ;steppers off\nG90 ;absolute positioning\n;{profile_string}"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
"layer_height": { "default": 0.2 },
|
"layer_height": { "default": 0.2 },
|
||||||
"shell_thickness": { "default": 0.8},
|
"shell_thickness": { "default": 0.8},
|
||||||
"wall_thickness": { "default": 0.8 },
|
"wall_thickness": { "default": 0.8 },
|
||||||
@ -47,8 +49,8 @@
|
|||||||
"speed_infill": { "default": 100.0, "visible": true },
|
"speed_infill": { "default": 100.0, "visible": true },
|
||||||
"speed_topbottom": { "default": 15.0, "visible": true },
|
"speed_topbottom": { "default": 15.0, "visible": true },
|
||||||
"speed_travel": { "default": 150.0, "visible": true },
|
"speed_travel": { "default": 150.0, "visible": true },
|
||||||
"speed_layer_0": { "min_value": 0.1, "default": 15.0, "visible": true },
|
"speed_layer_0": { "min_value": "0.1", "default": 15.0, "visible": true },
|
||||||
"infill_overlap": { "default": 0.04, "inherit_function": "0.1 * line_width if infill_sparse_density < 95 else 0" },
|
"infill_overlap": { "default": 10.0 },
|
||||||
"cool_fan_enabled": { "default": false, "visible": true},
|
"cool_fan_enabled": { "default": false, "visible": true},
|
||||||
"cool_fan_speed": { "default": 0.0, "visible": true },
|
"cool_fan_speed": { "default": 0.0, "visible": true },
|
||||||
"skirt_line_count": { "default": 3, "active_if": { "setting": "adhesion_type", "value": "None" } },
|
"skirt_line_count": { "default": 3, "active_if": { "setting": "adhesion_type", "value": "None" } },
|
||||||
|
@ -45,7 +45,8 @@
|
|||||||
"max_value_warning": "150",
|
"max_value_warning": "150",
|
||||||
"default": 60,
|
"default": 60,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -61,7 +62,8 @@
|
|||||||
"default": 0.4,
|
"default": 0.4,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -88,7 +90,8 @@
|
|||||||
"type": "int",
|
"type": "int",
|
||||||
"default": 0,
|
"default": 0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "16"
|
"max_value": "16",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_extruder_nr": {
|
"support_extruder_nr": {
|
||||||
"label": "Support Extruder",
|
"label": "Support Extruder",
|
||||||
@ -97,6 +100,7 @@
|
|||||||
"default": 0,
|
"default": 0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "16",
|
"max_value": "16",
|
||||||
|
"global_only": true,
|
||||||
"children": {
|
"children": {
|
||||||
"support_infill_extruder_nr": {
|
"support_infill_extruder_nr": {
|
||||||
"label": "Support Infill Extruder",
|
"label": "Support Infill Extruder",
|
||||||
@ -104,7 +108,8 @@
|
|||||||
"type": "int",
|
"type": "int",
|
||||||
"default": 0,
|
"default": 0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "16"
|
"max_value": "16",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_extruder_nr_layer_0": {
|
"support_extruder_nr_layer_0": {
|
||||||
"label": "First Layer Support Extruder",
|
"label": "First Layer Support Extruder",
|
||||||
@ -112,7 +117,8 @@
|
|||||||
"type": "int",
|
"type": "int",
|
||||||
"default": 0,
|
"default": 0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "16"
|
"max_value": "16",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_roof_extruder_nr": {
|
"support_roof_extruder_nr": {
|
||||||
"label": "Support Roof Extruder",
|
"label": "Support Roof Extruder",
|
||||||
@ -122,6 +128,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "16",
|
"max_value": "16",
|
||||||
"enabled": "support_roof_enable"
|
"enabled": "support_roof_enable"
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -132,7 +139,8 @@
|
|||||||
"description": "Print a tower next to the print which serves to prime the material after each nozzle switch.",
|
"description": "Print a tower next to the print which serves to prime the material after each nozzle switch.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"default": false
|
"default": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"prime_tower_size": {
|
"prime_tower_size": {
|
||||||
"label": "Prime Tower Size",
|
"label": "Prime Tower Size",
|
||||||
@ -144,7 +152,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"inherit_function": "15 if prime_tower_enable else 0",
|
"inherit_function": "15 if prime_tower_enable else 0",
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"prime_tower_position_x": {
|
"prime_tower_position_x": {
|
||||||
"label": "Prime Tower X Position",
|
"label": "Prime Tower X Position",
|
||||||
@ -155,7 +164,8 @@
|
|||||||
"default": 200,
|
"default": 200,
|
||||||
"min_value_warning": "-1000",
|
"min_value_warning": "-1000",
|
||||||
"max_value_warning": "1000",
|
"max_value_warning": "1000",
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"prime_tower_position_y": {
|
"prime_tower_position_y": {
|
||||||
"label": "Prime Tower Y Position",
|
"label": "Prime Tower Y Position",
|
||||||
@ -166,7 +176,8 @@
|
|||||||
"default": 200,
|
"default": 200,
|
||||||
"min_value_warning": "-1000",
|
"min_value_warning": "-1000",
|
||||||
"max_value_warning": "1000",
|
"max_value_warning": "1000",
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"prime_tower_flow": {
|
"prime_tower_flow": {
|
||||||
"label": "Prime Tower Flow",
|
"label": "Prime Tower Flow",
|
||||||
@ -178,14 +189,16 @@
|
|||||||
"min_value": "5",
|
"min_value": "5",
|
||||||
"min_value_warning": "50",
|
"min_value_warning": "50",
|
||||||
"max_value_warning": "150",
|
"max_value_warning": "150",
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"prime_tower_wipe_enabled": {
|
"prime_tower_wipe_enabled": {
|
||||||
"label": "Wipe Nozzle on Prime tower",
|
"label": "Wipe Nozzle on Prime tower",
|
||||||
"description": "After printing the prime tower with the one nozzle, wipe the oozed material from the other nozzle off on the prime tower.",
|
"description": "After printing the prime tower with the one nozzle, wipe the oozed material from the other nozzle off on the prime tower.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"enabled": "prime_tower_enable"
|
"enabled": "prime_tower_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"multiple_mesh_overlap": {
|
"multiple_mesh_overlap": {
|
||||||
"label": "Dual Extrusion Overlap",
|
"label": "Dual Extrusion Overlap",
|
||||||
@ -195,13 +208,15 @@
|
|||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"default": 0.15,
|
"default": 0.15,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "1.0"
|
"max_value_warning": "1.0",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"ooze_shield_enabled": {
|
"ooze_shield_enabled": {
|
||||||
"label": "Enable Ooze Shield",
|
"label": "Enable Ooze Shield",
|
||||||
"description": "Enable exterior ooze shield. This will create a shell around the object which is likely to wipe a second nozzle if it's at the same height as the first nozzle.",
|
"description": "Enable exterior ooze shield. This will create a shell around the object which is likely to wipe a second nozzle if it's at the same height as the first nozzle.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"ooze_shield_angle": {
|
"ooze_shield_angle": {
|
||||||
"label": "Ooze Shield Angle",
|
"label": "Ooze Shield Angle",
|
||||||
@ -212,7 +227,8 @@
|
|||||||
"max_value": "90",
|
"max_value": "90",
|
||||||
"default": 60,
|
"default": 60,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "ooze_shield_enabled"
|
"enabled": "ooze_shield_enabled",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"ooze_shield_dist": {
|
"ooze_shield_dist": {
|
||||||
"label": "Ooze Shields Distance",
|
"label": "Ooze Shields Distance",
|
||||||
@ -223,12 +239,24 @@
|
|||||||
"max_value_warning": "30",
|
"max_value_warning": "30",
|
||||||
"default": 2,
|
"default": 2,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "ooze_shield_enabled"
|
"enabled": "ooze_shield_enabled",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"material": {
|
"material": {
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"material_standby_temperature": {
|
||||||
|
"label": "Standby Temperature",
|
||||||
|
"description": "The temperature of the nozzle when another nozzle is currently used for printing.",
|
||||||
|
"unit": "°C",
|
||||||
|
"type": "float",
|
||||||
|
"default": 150,
|
||||||
|
"min_value": "0",
|
||||||
|
"max_value_warning": "260",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
|
},
|
||||||
"switch_extruder_retraction_amount": {
|
"switch_extruder_retraction_amount": {
|
||||||
"label": "Nozzle Switch Retraction Distance",
|
"label": "Nozzle Switch Retraction Distance",
|
||||||
"description": "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone.",
|
"description": "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone.",
|
||||||
@ -239,7 +267,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "machine_heat_zone_length",
|
"inherit_function": "machine_heat_zone_length",
|
||||||
"enabled": "retraction_enable"
|
"enabled": "retraction_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"switch_extruder_retraction_speeds": {
|
"switch_extruder_retraction_speeds": {
|
||||||
"label": "Nozzle Switch Retraction Speed",
|
"label": "Nozzle Switch Retraction Speed",
|
||||||
@ -252,6 +281,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "retraction_enable",
|
"enabled": "retraction_enable",
|
||||||
|
"global_only": true,
|
||||||
"children": {
|
"children": {
|
||||||
"switch_extruder_retraction_speed": {
|
"switch_extruder_retraction_speed": {
|
||||||
"label": "Nozzle Switch Retract Speed",
|
"label": "Nozzle Switch Retract Speed",
|
||||||
@ -262,7 +292,8 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "retraction_enable"
|
"enabled": "retraction_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"switch_extruder_prime_speed": {
|
"switch_extruder_prime_speed": {
|
||||||
"label": "Nozzle Switch Prime Speed",
|
"label": "Nozzle Switch Prime Speed",
|
||||||
@ -273,7 +304,8 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "retraction_enable"
|
"enabled": "retraction_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@
|
|||||||
"machine": {
|
"machine": {
|
||||||
"label": "Machine",
|
"label": "Machine",
|
||||||
"visible": true,
|
"visible": true,
|
||||||
"icon": "category_layer_height",
|
"icon": "category_machine",
|
||||||
"settings": {
|
"settings": {
|
||||||
"machine_nozzle_size": {
|
"machine_nozzle_size": {
|
||||||
"label": "Nozzle Diameter",
|
"label": "Nozzle Diameter",
|
||||||
@ -210,8 +210,8 @@
|
|||||||
"default": 0.1,
|
"default": 0.1,
|
||||||
"min_value": "0.001",
|
"min_value": "0.001",
|
||||||
"min_value_warning": "0.04",
|
"min_value_warning": "0.04",
|
||||||
"max_value_warning": "0.32",
|
"max_value_warning": "0.8 * machine_nozzle_size",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"layer_height_0": {
|
"layer_height_0": {
|
||||||
"label": "Initial Layer Height",
|
"label": "Initial Layer Height",
|
||||||
@ -221,9 +221,9 @@
|
|||||||
"default": 0.3,
|
"default": 0.3,
|
||||||
"min_value": "0.001",
|
"min_value": "0.001",
|
||||||
"min_value_warning": "0.04",
|
"min_value_warning": "0.04",
|
||||||
"max_value_warning": "0.32",
|
"max_value_warning": "0.8 * machine_nozzle_size",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"line_width": {
|
"line_width": {
|
||||||
"label": "Line Width",
|
"label": "Line Width",
|
||||||
@ -231,7 +231,7 @@
|
|||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"min_value_warning": "0.2",
|
"min_value_warning": "0.2",
|
||||||
"max_value_warning": "5",
|
"max_value_warning": "2 * machine_nozzle_size",
|
||||||
"default": 0.4,
|
"default": 0.4,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
@ -281,7 +281,8 @@
|
|||||||
"max_value_warning": "5",
|
"max_value_warning": "5",
|
||||||
"default": 0.4,
|
"default": 0.4,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"skin_line_width": {
|
"skin_line_width": {
|
||||||
"label": "Top/bottom line width",
|
"label": "Top/bottom line width",
|
||||||
@ -315,7 +316,8 @@
|
|||||||
"default": 0.4,
|
"default": 0.4,
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable"
|
"enabled": "support_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_roof_line_width": {
|
"support_roof_line_width": {
|
||||||
"label": "Support Roof line width",
|
"label": "Support Roof line width",
|
||||||
@ -326,7 +328,8 @@
|
|||||||
"max_value_warning": "machine_nozzle_size * 2",
|
"max_value_warning": "machine_nozzle_size * 2",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_roof_enable"
|
"enabled": "support_roof_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -346,6 +349,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"min_value_warning": "0.2",
|
"min_value_warning": "0.2",
|
||||||
"max_value_warning": "5",
|
"max_value_warning": "5",
|
||||||
|
"visible": false,
|
||||||
"children": {
|
"children": {
|
||||||
"wall_thickness": {
|
"wall_thickness": {
|
||||||
"label": "Wall Thickness",
|
"label": "Wall Thickness",
|
||||||
@ -356,7 +360,7 @@
|
|||||||
"min_value_warning": "0.2",
|
"min_value_warning": "0.2",
|
||||||
"max_value_warning": "5",
|
"max_value_warning": "5",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": true,
|
||||||
"children": {
|
"children": {
|
||||||
"wall_line_count": {
|
"wall_line_count": {
|
||||||
"label": "Wall Line Count",
|
"label": "Wall Line Count",
|
||||||
@ -365,7 +369,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1)"
|
"inherit_function": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -386,7 +390,7 @@
|
|||||||
"max_value": "5",
|
"max_value": "5",
|
||||||
"min_value_warning": "0.6",
|
"min_value_warning": "0.6",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": true,
|
||||||
"children": {
|
"children": {
|
||||||
"top_thickness": {
|
"top_thickness": {
|
||||||
"label": "Top Thickness",
|
"label": "Top Thickness",
|
||||||
@ -463,7 +467,7 @@
|
|||||||
"label": "Compensate Wall Overlaps",
|
"label": "Compensate Wall Overlaps",
|
||||||
"description": "Compensate the flow for parts of a wall being laid down where there already is a piece of a wall. These overlaps occur in thin pieces in a model. Gcode generation might be slowed down considerably.",
|
"description": "Compensate the flow for parts of a wall being laid down where there already is a piece of a wall. These overlaps occur in thin pieces in a model. Gcode generation might be slowed down considerably.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": true,
|
||||||
"visible": false
|
"visible": false
|
||||||
},
|
},
|
||||||
"fill_perimeter_gaps": {
|
"fill_perimeter_gaps": {
|
||||||
@ -630,7 +634,9 @@
|
|||||||
"description": "Change the temperature for each layer automatically with the average flow speed of that layer.",
|
"description": "Change the temperature for each layer automatically with the average flow speed of that layer.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": true
|
"visible": false,
|
||||||
|
"enabled": "False",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_print_temperature": {
|
"material_print_temperature": {
|
||||||
"label": "Printing Temperature",
|
"label": "Printing Temperature",
|
||||||
@ -648,7 +654,8 @@
|
|||||||
"unit": "",
|
"unit": "",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"default": "[[3.5,200],[7.0,240]]",
|
"default": "[[3.5,200],[7.0,240]]",
|
||||||
"enabled": "material_flow_dependent_temperature"
|
"enabled": "material_flow_dependent_temperature",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_standby_temperature": {
|
"material_standby_temperature": {
|
||||||
"label": "Standby Temperature",
|
"label": "Standby Temperature",
|
||||||
@ -658,7 +665,7 @@
|
|||||||
"default": 150,
|
"default": 150,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "260",
|
"max_value_warning": "260",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": true
|
||||||
},
|
},
|
||||||
"material_extrusion_cool_down_speed": {
|
"material_extrusion_cool_down_speed": {
|
||||||
"label": "Extrusion Cool Down Speed Modifier",
|
"label": "Extrusion Cool Down Speed Modifier",
|
||||||
@ -668,7 +675,9 @@
|
|||||||
"default": 0.5,
|
"default": 0.5,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True",
|
||||||
|
"enabled": "material_flow_dependent_temperature or machine_extruder_count > 1",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"material_bed_temperature": {
|
"material_bed_temperature": {
|
||||||
"label": "Bed Temperature",
|
"label": "Bed Temperature",
|
||||||
@ -679,7 +688,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "260",
|
"max_value_warning": "260",
|
||||||
"enabled": "machine_heated_bed",
|
"enabled": "machine_heated_bed",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"material_diameter": {
|
"material_diameter": {
|
||||||
"label": "Diameter",
|
"label": "Diameter",
|
||||||
@ -690,7 +699,7 @@
|
|||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"min_value_warning": "0.4",
|
"min_value_warning": "0.4",
|
||||||
"max_value_warning": "3.5",
|
"max_value_warning": "3.5",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"material_flow": {
|
"material_flow": {
|
||||||
"label": "Flow",
|
"label": "Flow",
|
||||||
@ -786,7 +795,7 @@
|
|||||||
"description": "This setting limits the number of retractions occurring within the Minimum Extrusion Distance Window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues.",
|
"description": "This setting limits the number of retractions occurring within the Minimum Extrusion Distance Window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues.",
|
||||||
"default": 8,
|
"default": 8,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "20",
|
"max_value_warning": "100",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
@ -909,7 +918,8 @@
|
|||||||
"max_value_warning": "150",
|
"max_value_warning": "150",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "support_roof_enable"
|
"enabled": "support_roof_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"speed_support_roof": {
|
"speed_support_roof": {
|
||||||
"label": "Support Roof Speed",
|
"label": "Support Roof Speed",
|
||||||
@ -922,7 +932,8 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "support_roof_enable",
|
"enabled": "support_roof_enable",
|
||||||
"inherit_function": "parent_value / 60 * 40"
|
"inherit_function": "parent_value / 60 * 40",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -936,7 +947,8 @@
|
|||||||
"default": 120,
|
"default": 120,
|
||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"inherit_function": "speed_print if magic_spiralize else 120"
|
"inherit_function": "speed_print if magic_spiralize else 120",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"speed_layer_0": {
|
"speed_layer_0": {
|
||||||
"label": "Bottom Layer Speed",
|
"label": "Bottom Layer Speed",
|
||||||
@ -957,7 +969,8 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "speed_layer_0"
|
"inherit_function": "speed_layer_0",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"speed_slowdown_layers": {
|
"speed_slowdown_layers": {
|
||||||
"label": "Number of Slower Layers",
|
"label": "Number of Slower Layers",
|
||||||
@ -966,7 +979,8 @@
|
|||||||
"default": 4,
|
"default": 4,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -980,7 +994,8 @@
|
|||||||
"description": "Combing keeps the head within the interior of the print whenever possible when traveling from one part of the print to another and does not use retraction. If combing is disabled, the print head moves straight from the start point to the end point and it will always retract.",
|
"description": "Combing keeps the head within the interior of the print whenever possible when traveling from one part of the print to another and does not use retraction. If combing is disabled, the print head moves straight from the start point to the end point and it will always retract.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
"visible": false
|
"visible": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"travel_avoid_other_parts": {
|
"travel_avoid_other_parts": {
|
||||||
"label": "Avoid Printed Parts",
|
"label": "Avoid Printed Parts",
|
||||||
@ -989,7 +1004,7 @@
|
|||||||
"default": true,
|
"default": true,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "retraction_combing",
|
"enabled": "retraction_combing",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"travel_avoid_distance": {
|
"travel_avoid_distance": {
|
||||||
"label": "Avoid Distance",
|
"label": "Avoid Distance",
|
||||||
@ -1002,7 +1017,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "retraction_combing",
|
"enabled": "retraction_combing",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1011,7 +1026,8 @@
|
|||||||
"description": "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to lay down the last piece of the extrusion path in order to reduce stringing.",
|
"description": "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to lay down the last piece of the extrusion path in order to reduce stringing.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": true
|
"visible": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"coasting_volume": {
|
"coasting_volume": {
|
||||||
"label": "Coasting Volume",
|
"label": "Coasting Volume",
|
||||||
@ -1023,7 +1039,8 @@
|
|||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "coasting_enable"
|
"enabled": "coasting_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"coasting_min_volume": {
|
"coasting_min_volume": {
|
||||||
"label": "Minimal Volume Before Coasting",
|
"label": "Minimal Volume Before Coasting",
|
||||||
@ -1034,7 +1051,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "coasting_enable"
|
"enabled": "coasting_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"coasting_speed": {
|
"coasting_speed": {
|
||||||
"label": "Coasting Speed",
|
"label": "Coasting Speed",
|
||||||
@ -1046,7 +1064,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": false,
|
"inherit": false,
|
||||||
"enabled": "coasting_enable"
|
"enabled": "coasting_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1060,7 +1079,7 @@
|
|||||||
"description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.",
|
"description": "Enable the cooling fan during the print. The extra cooling from the cooling fan helps parts with small cross sections that print each layer quickly.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_speed": {
|
"cool_fan_speed": {
|
||||||
"label": "Fan Speed",
|
"label": "Fan Speed",
|
||||||
@ -1072,11 +1091,11 @@
|
|||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "100.0 if parent_value else 0.0",
|
"inherit_function": "100.0 if parent_value else 0.0",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_speed_min": {
|
"cool_fan_speed_min": {
|
||||||
"label": "Normal Fan Speed",
|
"label": "Minimum Fan Speed",
|
||||||
"description": "Normally the fan runs at the minimum fan speed. If a layer takes less than Shortest Layer Time Normal Fan Speed, the fan speed adjusts from Normal Fan Speed towards Maximum Fan Speed.",
|
"description": "Normally the fan runs at the minimum fan speed. If the layer is slowed down due to minimum layer time, the fan speed adjusts between minimum and maximum fan speed.",
|
||||||
"unit": "%",
|
"unit": "%",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
@ -1084,11 +1103,11 @@
|
|||||||
"inherit_function": "parent_value",
|
"inherit_function": "parent_value",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"cool_fan_speed_max": {
|
"cool_fan_speed_max": {
|
||||||
"label": "Maximum Fan Speed",
|
"label": "Maximum Fan Speed",
|
||||||
"description": "If a layer is slowed down due to minimum layer time, the fan speed will be the Maximum Fan Speed.",
|
"description": "Normally the fan runs at the minimum fan speed. If the layer is slowed down due to minimum layer time, the fan speed adjusts between minimum and maximum fan speed.",
|
||||||
"unit": "%",
|
"unit": "%",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"min_value": "max(0, cool_fan_speed_min)",
|
"min_value": "max(0, cool_fan_speed_min)",
|
||||||
@ -1096,33 +1115,33 @@
|
|||||||
"inherit": false,
|
"inherit": false,
|
||||||
"default": 100,
|
"default": 100,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cool_fan_full_at_height": {
|
"cool_fan_full_at_height": {
|
||||||
"label": "Slow Fan Down Below Height",
|
"label": "Fan Full on at Height",
|
||||||
"description": "The height at which the fan is set to Normal Fan Speed. For the layers below this the fan speed is scaled linearly with the fan off on the first layer.",
|
"description": "The height at which the fan is turned on completely. For the layers below this the fan speed is scaled linearly with the fan off for the first layer.",
|
||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 0.5,
|
"default": 0.5,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"cool_fan_full_layer": {
|
"cool_fan_full_layer": {
|
||||||
"label": "Slow Fan Down Below Layer",
|
"label": "Fan Full on at Layer",
|
||||||
"description": "The layer number at which the fan is set to Normal Fan Speed. For the layers below this the fan speed is scaled linearly with the fan off on the first layer.",
|
"description": "The layer number at which the fan is turned on completely. For the layers below this the fan speed is scaled linearly with the fan off for the first layer.",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"default": 4,
|
"default": 4,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "int((parent_value - layer_height_0 + 0.001) / layer_height)",
|
"inherit_function": "int((parent_value - layer_height_0 + 0.001) / layer_height)",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1135,18 +1154,18 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "600",
|
"max_value_warning": "600",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"cool_min_layer_time_fan_speed_max": {
|
"cool_min_layer_time_fan_speed_max": {
|
||||||
"label": "Shortest Layer Time Normal Fan Speed",
|
"label": "Minimum Layer Time Full Fan Speed",
|
||||||
"description": "The minimum time spent in a layer which will cause the fan to be at normal speed. All layers taking shorter than this time will get increased fan speeds, up to Maximum Fan Speed for layers taking Minmal Layer Time. All layers taking longer than this time will have Normal Fan Speed.",
|
"description": "The minimum time spent in a layer which will cause the fan to be at maximum speed. The fan speed increases linearly from minimum fan speed for layers taking the minimum layer time to maximum fan speed for layers taking the time specified here.",
|
||||||
"unit": "sec",
|
"unit": "sec",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 10,
|
"default": 10,
|
||||||
"min_value": "cool_min_layer_time",
|
"min_value": "cool_min_layer_time",
|
||||||
"max_value_warning": "600",
|
"max_value_warning": "600",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"cool_min_speed": {
|
"cool_min_speed": {
|
||||||
"label": "Minimum Speed",
|
"label": "Minimum Speed",
|
||||||
@ -1157,7 +1176,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"cool_lift_head": {
|
"cool_lift_head": {
|
||||||
"label": "Lift Head",
|
"label": "Lift Head",
|
||||||
@ -1165,13 +1184,14 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"draft_shield_enabled": {
|
"draft_shield_enabled": {
|
||||||
"label": "Enable Draft Shield",
|
"label": "Enable Draft Shield",
|
||||||
"description": "Enable exterior draft shield. This will create a wall around the object which traps (hot) air and shields against gusts of wind. Especially useful for materials which warp easily.",
|
"description": "Enable exterior draft shield. This will create a wall around the object which traps (hot) air and shields against gusts of wind. Especially useful for materials which warp easily.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false
|
"default": false,
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"draft_shield_dist": {
|
"draft_shield_dist": {
|
||||||
"label": "Draft Shield X/Y Distance",
|
"label": "Draft Shield X/Y Distance",
|
||||||
@ -1182,7 +1202,8 @@
|
|||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"default": 10,
|
"default": 10,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "draft_shield_enabled"
|
"enabled": "draft_shield_enabled",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"draft_shield_height_limitation": {
|
"draft_shield_height_limitation": {
|
||||||
"label": "Draft Shield Limitation",
|
"label": "Draft Shield Limitation",
|
||||||
@ -1194,7 +1215,8 @@
|
|||||||
},
|
},
|
||||||
"default": "full",
|
"default": "full",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "draft_shield_enabled"
|
"enabled": "draft_shield_enabled",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"draft_shield_height": {
|
"draft_shield_height": {
|
||||||
"label": "Draft Shield Height",
|
"label": "Draft Shield Height",
|
||||||
@ -1206,7 +1228,8 @@
|
|||||||
"default": 0,
|
"default": 0,
|
||||||
"inherit_function": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0",
|
"inherit_function": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "draft_shield_height_limitation == \"limited\""
|
"enabled": "draft_shield_height_limitation == \"limited\"",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1219,7 +1242,7 @@
|
|||||||
"label": "Enable Support",
|
"label": "Enable Support",
|
||||||
"description": "Enable exterior support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.",
|
"description": "Enable exterior support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air.",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true
|
"default": false
|
||||||
},
|
},
|
||||||
"support_type": {
|
"support_type": {
|
||||||
"label": "Placement",
|
"label": "Placement",
|
||||||
@ -1239,7 +1262,7 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "90",
|
"max_value": "90",
|
||||||
"default": 60,
|
"default": 50,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable"
|
"enabled": "support_enable"
|
||||||
},
|
},
|
||||||
@ -1304,6 +1327,8 @@
|
|||||||
"unit": "°",
|
"unit": "°",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"min_value": "-90",
|
"min_value": "-90",
|
||||||
|
"min_value_warning": "-45",
|
||||||
|
"max_value_warning": "45",
|
||||||
"max_value": "90",
|
"max_value": "90",
|
||||||
"default": 30,
|
"default": 30,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
@ -1393,6 +1418,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"enabled":"support_roof_enable",
|
"enabled":"support_roof_enable",
|
||||||
|
"global_only": true,
|
||||||
"children": {
|
"children": {
|
||||||
"support_roof_line_distance": {
|
"support_roof_line_distance": {
|
||||||
"label": "Support Roof Line Distance",
|
"label": "Support Roof Line Distance",
|
||||||
@ -1403,7 +1429,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit_function": "0 if parent_value == 0 else (support_roof_line_width * 100) / parent_value",
|
"inherit_function": "0 if parent_value == 0 else (support_roof_line_width * 100) / parent_value",
|
||||||
"enabled": "support_roof_enable"
|
"enabled": "support_roof_enable",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1420,7 +1447,8 @@
|
|||||||
"zigzag": "Zig Zag"
|
"zigzag": "Zig Zag"
|
||||||
},
|
},
|
||||||
"default": "concentric",
|
"default": "concentric",
|
||||||
"enabled": "support_roof_enable"
|
"enabled": "support_roof_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_use_towers": {
|
"support_use_towers": {
|
||||||
"label": "Use towers",
|
"label": "Use towers",
|
||||||
@ -1446,12 +1474,27 @@
|
|||||||
"description": "The diameter of a special tower.",
|
"description": "The diameter of a special tower.",
|
||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"default": 1,
|
"default": 3.0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"min_value_warning": "support_minimal_diameter",
|
"min_value_warning": "support_minimal_diameter",
|
||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable"
|
"enabled": "support_enable and support_use_towers",
|
||||||
|
"children": {
|
||||||
|
"support_minimal_diameter": {
|
||||||
|
"label": "Minimum Diameter",
|
||||||
|
"description": "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.",
|
||||||
|
"unit": "mm",
|
||||||
|
"type": "float",
|
||||||
|
"default": 3.0,
|
||||||
|
"min_value": "0",
|
||||||
|
"max_value_warning": "10",
|
||||||
|
"max_value": "support_tower_diameter",
|
||||||
|
"inherit": true,
|
||||||
|
"visible": false,
|
||||||
|
"enabled": "support_enable and support_use_towers"
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"support_tower_roof_angle": {
|
"support_tower_roof_angle": {
|
||||||
"label": "Tower Roof Angle",
|
"label": "Tower Roof Angle",
|
||||||
@ -1477,7 +1520,8 @@
|
|||||||
},
|
},
|
||||||
"default": "zigzag",
|
"default": "zigzag",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable"
|
"enabled": "support_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_connect_zigzags": {
|
"support_connect_zigzags": {
|
||||||
"label": "Connect ZigZags",
|
"label": "Connect ZigZags",
|
||||||
@ -1485,7 +1529,8 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true,
|
"default": true,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable"
|
"enabled": "support_enable",
|
||||||
|
"global_only": true
|
||||||
},
|
},
|
||||||
"support_infill_rate": {
|
"support_infill_rate": {
|
||||||
"label": "Fill Amount",
|
"label": "Fill Amount",
|
||||||
@ -1497,7 +1542,7 @@
|
|||||||
"default": 15,
|
"default": 15,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
|
"global_only": true,
|
||||||
"children": {
|
"children": {
|
||||||
"support_line_distance": {
|
"support_line_distance": {
|
||||||
"label": "Line distance",
|
"label": "Line distance",
|
||||||
@ -1508,7 +1553,8 @@
|
|||||||
"default": 2.66,
|
"default": 2.66,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "support_enable",
|
"enabled": "support_enable",
|
||||||
"inherit_function": "(support_line_width * 100) / parent_value"
|
"inherit_function": "(support_line_width * 100) / parent_value",
|
||||||
|
"global_only": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1528,7 +1574,8 @@
|
|||||||
"brim": "Brim",
|
"brim": "Brim",
|
||||||
"raft": "Raft"
|
"raft": "Raft"
|
||||||
},
|
},
|
||||||
"default": "skirt"
|
"default": "skirt",
|
||||||
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"skirt_line_count": {
|
"skirt_line_count": {
|
||||||
"label": "Skirt Line Count",
|
"label": "Skirt Line Count",
|
||||||
@ -1538,7 +1585,8 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"enabled": "adhesion_type == \"skirt\"",
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"skirt_gap": {
|
"skirt_gap": {
|
||||||
"label": "Skirt Distance",
|
"label": "Skirt Distance",
|
||||||
@ -1549,7 +1597,8 @@
|
|||||||
"min_value_warning": "0",
|
"min_value_warning": "0",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"enabled": "adhesion_type == \"skirt\"",
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"skirt_minimal_length": {
|
"skirt_minimal_length": {
|
||||||
"label": "Skirt Minimum Length",
|
"label": "Skirt Minimum Length",
|
||||||
@ -1561,29 +1610,32 @@
|
|||||||
"min_value_warning": "25",
|
"min_value_warning": "25",
|
||||||
"max_value_warning": "2500",
|
"max_value_warning": "2500",
|
||||||
"enabled": "adhesion_type == \"skirt\"",
|
"enabled": "adhesion_type == \"skirt\"",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"brim_width": {
|
"brim_width": {
|
||||||
"label": "Brim Width",
|
"label": "Brim Width",
|
||||||
"description": "The distance from the model to the end of the brim. A larger brim sticks better to the build platform, but also makes your effective print area smaller.",
|
"description": "The distance from the model to the end of the brim. A larger brim sticks better to the build platform, but also makes your effective print area smaller.",
|
||||||
"type": "float",
|
"type": "float",
|
||||||
"unit": "mm",
|
"unit": "mm",
|
||||||
"default": 5.0,
|
"default": 8.0,
|
||||||
"min_value": "0.0",
|
"min_value": "0.0",
|
||||||
"max_value_warning": "100.0",
|
"max_value_warning": "100.0",
|
||||||
"enabled": "adhesion_type == \"brim\"",
|
"enabled": "adhesion_type == \"brim\"",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
|
"visible": true,
|
||||||
"children": {
|
"children": {
|
||||||
"brim_line_count": {
|
"brim_line_count": {
|
||||||
"label": "Brim Line Count",
|
"label": "Brim Line Count",
|
||||||
"description": "The number of lines used for a brim. More lines means a larger brim which sticks better to the build plate, but this also makes your effective print area smaller.",
|
"description": "The number of lines used for a brim. More lines means a larger brim which sticks better to the build plate, but this also makes your effective print area smaller.",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"default": 13,
|
"default": 20,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "300",
|
"max_value_warning": "300",
|
||||||
"inherit_function": "math.ceil(parent_value / skirt_line_width)",
|
"inherit_function": "math.ceil(parent_value / skirt_line_width)",
|
||||||
"enabled": "adhesion_type == \"brim\"",
|
"enabled": "adhesion_type == \"brim\"",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1595,7 +1647,9 @@
|
|||||||
"default": 5,
|
"default": 5,
|
||||||
"min_value_warning": "0",
|
"min_value_warning": "0",
|
||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_airgap": {
|
"raft_airgap": {
|
||||||
"label": "Raft Air-gap",
|
"label": "Raft Air-gap",
|
||||||
@ -1605,7 +1659,9 @@
|
|||||||
"default": 0.35,
|
"default": 0.35,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "1.0",
|
"max_value_warning": "1.0",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": true
|
||||||
},
|
},
|
||||||
"raft_surface_layers": {
|
"raft_surface_layers": {
|
||||||
"label": "Raft Top Layers",
|
"label": "Raft Top Layers",
|
||||||
@ -1614,7 +1670,9 @@
|
|||||||
"default": 2,
|
"default": 2,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": true
|
||||||
},
|
},
|
||||||
"raft_surface_thickness": {
|
"raft_surface_thickness": {
|
||||||
"label": "Raft Top Layer Thickness",
|
"label": "Raft Top Layer Thickness",
|
||||||
@ -1624,7 +1682,9 @@
|
|||||||
"default": 0.1,
|
"default": 0.1,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_surface_line_width": {
|
"raft_surface_line_width": {
|
||||||
"label": "Raft Top Line Width",
|
"label": "Raft Top Line Width",
|
||||||
@ -1634,7 +1694,9 @@
|
|||||||
"default": 0.3,
|
"default": 0.3,
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "machine_nozzle_size * 2",
|
"max_value_warning": "machine_nozzle_size * 2",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_surface_line_spacing": {
|
"raft_surface_line_spacing": {
|
||||||
"label": "Raft Top Spacing",
|
"label": "Raft Top Spacing",
|
||||||
@ -1645,7 +1707,9 @@
|
|||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "5.0",
|
"max_value_warning": "5.0",
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"inherit_function": "raft_surface_line_width"
|
"inherit_function": "raft_surface_line_width",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_interface_thickness": {
|
"raft_interface_thickness": {
|
||||||
"label": "Raft Middle Thickness",
|
"label": "Raft Middle Thickness",
|
||||||
@ -1655,7 +1719,9 @@
|
|||||||
"default": 0.27,
|
"default": 0.27,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "5.0",
|
"max_value_warning": "5.0",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_interface_line_width": {
|
"raft_interface_line_width": {
|
||||||
"label": "Raft Middle Line Width",
|
"label": "Raft Middle Line Width",
|
||||||
@ -1665,7 +1731,9 @@
|
|||||||
"default": 1,
|
"default": 1,
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "machine_nozzle_size * 2",
|
"max_value_warning": "machine_nozzle_size * 2",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_interface_line_spacing": {
|
"raft_interface_line_spacing": {
|
||||||
"label": "Raft Middle Spacing",
|
"label": "Raft Middle Spacing",
|
||||||
@ -1675,7 +1743,9 @@
|
|||||||
"default": 1.0,
|
"default": 1.0,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "15.0",
|
"max_value_warning": "15.0",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_base_thickness": {
|
"raft_base_thickness": {
|
||||||
"label": "Raft Base Thickness",
|
"label": "Raft Base Thickness",
|
||||||
@ -1685,7 +1755,9 @@
|
|||||||
"default": 0.3,
|
"default": 0.3,
|
||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value_warning": "5.0",
|
"max_value_warning": "5.0",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_base_line_width": {
|
"raft_base_line_width": {
|
||||||
"label": "Raft Base Line Width",
|
"label": "Raft Base Line Width",
|
||||||
@ -1695,7 +1767,9 @@
|
|||||||
"default": 1,
|
"default": 1,
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "machine_nozzle_size * 2",
|
"max_value_warning": "machine_nozzle_size * 2",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_base_line_spacing": {
|
"raft_base_line_spacing": {
|
||||||
"label": "Raft Line Spacing",
|
"label": "Raft Line Spacing",
|
||||||
@ -1705,7 +1779,9 @@
|
|||||||
"default": 3.0,
|
"default": 3.0,
|
||||||
"min_value": "0.0001",
|
"min_value": "0.0001",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_speed": {
|
"raft_speed": {
|
||||||
"label": "Raft Print Speed",
|
"label": "Raft Print Speed",
|
||||||
@ -1717,6 +1793,8 @@
|
|||||||
"max_value_warning": "200",
|
"max_value_warning": "200",
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"inherit_function": "speed_print / 60 * 30",
|
"inherit_function": "speed_print / 60 * 30",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false,
|
||||||
"children": {
|
"children": {
|
||||||
"raft_surface_speed": {
|
"raft_surface_speed": {
|
||||||
"label": "Raft Surface Print Speed",
|
"label": "Raft Surface Print Speed",
|
||||||
@ -1727,7 +1805,9 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "100",
|
"max_value_warning": "100",
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"inherit_function": "parent_value"
|
"inherit_function": "parent_value",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_interface_speed": {
|
"raft_interface_speed": {
|
||||||
"label": "Raft Interface Print Speed",
|
"label": "Raft Interface Print Speed",
|
||||||
@ -1738,7 +1818,9 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "150",
|
"max_value_warning": "150",
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"inherit_function": "0.5 * parent_value"
|
"inherit_function": "0.5 * parent_value",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
},
|
},
|
||||||
"raft_base_speed": {
|
"raft_base_speed": {
|
||||||
"label": "Raft Base Print Speed",
|
"label": "Raft Base Print Speed",
|
||||||
@ -1749,7 +1831,9 @@
|
|||||||
"min_value": "0.1",
|
"min_value": "0.1",
|
||||||
"max_value_warning": "200",
|
"max_value_warning": "200",
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"inherit_function": "0.5 * parent_value"
|
"inherit_function": "0.5 * parent_value",
|
||||||
|
"global_only": "True",
|
||||||
|
"visible": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1761,6 +1845,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
|
"global_only": "True",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "adhesion_type == \"raft\"",
|
"enabled": "adhesion_type == \"raft\"",
|
||||||
"children": {
|
"children": {
|
||||||
@ -1772,6 +1857,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
|
"global_only": "True",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\""
|
||||||
@ -1784,6 +1870,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
|
"global_only": "True",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\""
|
||||||
@ -1796,6 +1883,7 @@
|
|||||||
"min_value": "0",
|
"min_value": "0",
|
||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"default": 100,
|
"default": 100,
|
||||||
|
"global_only": "True",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "adhesion_type == \"raft\""
|
"enabled": "adhesion_type == \"raft\""
|
||||||
@ -1865,7 +1953,7 @@
|
|||||||
"surface": "Surface",
|
"surface": "Surface",
|
||||||
"both": "Both"
|
"both": "Both"
|
||||||
},
|
},
|
||||||
"default": "Normal",
|
"default": "normal",
|
||||||
"visible": false
|
"visible": false
|
||||||
},
|
},
|
||||||
"magic_spiralize": {
|
"magic_spiralize": {
|
||||||
@ -1874,7 +1962,7 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"magic_fuzzy_skin_enabled": {
|
"magic_fuzzy_skin_enabled": {
|
||||||
"label": "Fuzzy Skin",
|
"label": "Fuzzy Skin",
|
||||||
@ -1926,7 +2014,7 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": false,
|
"default": false,
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_height": {
|
"wireframe_height": {
|
||||||
"label": "WP Connection Height",
|
"label": "WP Connection Height",
|
||||||
@ -1938,7 +2026,7 @@
|
|||||||
"max_value_warning": "20",
|
"max_value_warning": "20",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_roof_inset": {
|
"wireframe_roof_inset": {
|
||||||
"label": "WP Roof Inset Distance",
|
"label": "WP Roof Inset Distance",
|
||||||
@ -1952,7 +2040,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"inherit_function": "wireframe_height",
|
"inherit_function": "wireframe_height",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_printspeed": {
|
"wireframe_printspeed": {
|
||||||
"label": "WP speed",
|
"label": "WP speed",
|
||||||
@ -1964,7 +2052,7 @@
|
|||||||
"max_value_warning": "50",
|
"max_value_warning": "50",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"wireframe_printspeed_bottom": {
|
"wireframe_printspeed_bottom": {
|
||||||
"label": "WP Bottom Printing Speed",
|
"label": "WP Bottom Printing Speed",
|
||||||
@ -1977,7 +2065,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_up": {
|
"wireframe_printspeed_up": {
|
||||||
"label": "WP Upward Printing Speed",
|
"label": "WP Upward Printing Speed",
|
||||||
@ -1990,7 +2078,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_down": {
|
"wireframe_printspeed_down": {
|
||||||
"label": "WP Downward Printing Speed",
|
"label": "WP Downward Printing Speed",
|
||||||
@ -2003,7 +2091,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_printspeed_flat": {
|
"wireframe_printspeed_flat": {
|
||||||
"label": "WP Horizontal Printing Speed",
|
"label": "WP Horizontal Printing Speed",
|
||||||
@ -2016,7 +2104,7 @@
|
|||||||
"visible": false,
|
"visible": false,
|
||||||
"inherit": true,
|
"inherit": true,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2030,7 +2118,7 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\"",
|
"global_only": "True",
|
||||||
"children": {
|
"children": {
|
||||||
"wireframe_flow_connection": {
|
"wireframe_flow_connection": {
|
||||||
"label": "WP Connection Flow",
|
"label": "WP Connection Flow",
|
||||||
@ -2042,7 +2130,7 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_flow_flat": {
|
"wireframe_flow_flat": {
|
||||||
"label": "WP Flat Flow",
|
"label": "WP Flat Flow",
|
||||||
@ -2054,7 +2142,7 @@
|
|||||||
"type": "float",
|
"type": "float",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2068,7 +2156,7 @@
|
|||||||
"max_value_warning": "1",
|
"max_value_warning": "1",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_bottom_delay": {
|
"wireframe_bottom_delay": {
|
||||||
"label": "WP Bottom Delay",
|
"label": "WP Bottom Delay",
|
||||||
@ -2080,7 +2168,7 @@
|
|||||||
"max_value_warning": "1",
|
"max_value_warning": "1",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_flat_delay": {
|
"wireframe_flat_delay": {
|
||||||
"label": "WP Flat Delay",
|
"label": "WP Flat Delay",
|
||||||
@ -2092,7 +2180,7 @@
|
|||||||
"max_value_warning": "0.5",
|
"max_value_warning": "0.5",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_up_half_speed": {
|
"wireframe_up_half_speed": {
|
||||||
"label": "WP Ease Upward",
|
"label": "WP Ease Upward",
|
||||||
@ -2104,7 +2192,7 @@
|
|||||||
"max_value_warning": "5.0",
|
"max_value_warning": "5.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_top_jump": {
|
"wireframe_top_jump": {
|
||||||
"label": "WP Knot Size",
|
"label": "WP Knot Size",
|
||||||
@ -2116,7 +2204,7 @@
|
|||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_fall_down": {
|
"wireframe_fall_down": {
|
||||||
"label": "WP Fall Down",
|
"label": "WP Fall Down",
|
||||||
@ -2128,7 +2216,7 @@
|
|||||||
"max_value_warning": "wireframe_height",
|
"max_value_warning": "wireframe_height",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_drag_along": {
|
"wireframe_drag_along": {
|
||||||
"label": "WP Drag along",
|
"label": "WP Drag along",
|
||||||
@ -2140,7 +2228,7 @@
|
|||||||
"max_value_warning": "wireframe_height",
|
"max_value_warning": "wireframe_height",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_strategy": {
|
"wireframe_strategy": {
|
||||||
"label": "WP Strategy",
|
"label": "WP Strategy",
|
||||||
@ -2154,7 +2242,7 @@
|
|||||||
"default": "compensate",
|
"default": "compensate",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_straight_before_down": {
|
"wireframe_straight_before_down": {
|
||||||
"label": "WP Straighten Downward Lines",
|
"label": "WP Straighten Downward Lines",
|
||||||
@ -2166,7 +2254,7 @@
|
|||||||
"max_value": "100",
|
"max_value": "100",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_roof_fall_down": {
|
"wireframe_roof_fall_down": {
|
||||||
"label": "WP Roof Fall Down",
|
"label": "WP Roof Fall Down",
|
||||||
@ -2178,7 +2266,7 @@
|
|||||||
"max_value_warning": "wireframe_roof_inset",
|
"max_value_warning": "wireframe_roof_inset",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_roof_drag_along": {
|
"wireframe_roof_drag_along": {
|
||||||
"label": "WP Roof Drag Along",
|
"label": "WP Roof Drag Along",
|
||||||
@ -2190,7 +2278,7 @@
|
|||||||
"max_value_warning": "10",
|
"max_value_warning": "10",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_roof_outer_delay": {
|
"wireframe_roof_outer_delay": {
|
||||||
"label": "WP Roof Outer Delay",
|
"label": "WP Roof Outer Delay",
|
||||||
@ -2202,7 +2290,7 @@
|
|||||||
"max_value_warning": "2.0",
|
"max_value_warning": "2.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
},
|
},
|
||||||
"wireframe_nozzle_clearance": {
|
"wireframe_nozzle_clearance": {
|
||||||
"label": "WP Nozzle Clearance",
|
"label": "WP Nozzle Clearance",
|
||||||
@ -2214,7 +2302,7 @@
|
|||||||
"max_value_warning": "10.0",
|
"max_value_warning": "10.0",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"enabled": "wireframe_enabled",
|
"enabled": "wireframe_enabled",
|
||||||
"global_only": "print_sequence != \"one_at_a_time\""
|
"global_only": "True"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"id": "innovo-inventor",
|
"id": "innovo-inventor",
|
||||||
"name": "Innovo INVENTOR",
|
|
||||||
"manufacturer": "INNOVO",
|
|
||||||
"author": "AR",
|
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"icon": "",
|
"name": "Innovo INVENTOR",
|
||||||
|
"manufacturer": "Other",
|
||||||
|
"author": "AR",
|
||||||
"platform": "inventor_platform.stl",
|
"platform": "inventor_platform.stl",
|
||||||
"platform_texture": "",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
"machine_settings": {
|
"machine_settings": {
|
||||||
"machine_width": {"default": 340},
|
"machine_width": {"default": 340},
|
||||||
"machine_height": {"default": 290},
|
"machine_height": {"default": 290},
|
||||||
@ -24,7 +24,8 @@
|
|||||||
"machine_nozzle_offset_y_1": {"default": 15},
|
"machine_nozzle_offset_y_1": {"default": 15},
|
||||||
"machine_gcode_flavor": {"default": "RepRap (Marlin/Sprinter)"},
|
"machine_gcode_flavor": {"default": "RepRap (Marlin/Sprinter)"},
|
||||||
"machine_start_gcode": {"default": "G28 ; Home extruder\nM107 ; Turn off fan\nG90 ; Absolute positioning\nM82 ; Extruder in absolute mode\n{IF_BED}M190 S{BED}\n{IF_EXT0}M104 T0 S{TEMP0}\n{IF_EXT0}M109 T0 S{TEMP0}\n{IF_EXT1}M104 T1 S{TEMP1}\n{IF_EXT1}M109 T1 S{TEMP1}\nG32 S3 ; auto level\nG92 E0 ; Reset extruder position"},
|
"machine_start_gcode": {"default": "G28 ; Home extruder\nM107 ; Turn off fan\nG90 ; Absolute positioning\nM82 ; Extruder in absolute mode\n{IF_BED}M190 S{BED}\n{IF_EXT0}M104 T0 S{TEMP0}\n{IF_EXT0}M109 T0 S{TEMP0}\n{IF_EXT1}M104 T1 S{TEMP1}\n{IF_EXT1}M109 T1 S{TEMP1}\nG32 S3 ; auto level\nG92 E0 ; Reset extruder position"},
|
||||||
"machine_end_gcode": {"default": "M104 S0\nG91 ; relative positioning\nG1 E-2 F5000; retract 2mm\nG28 Z; move bed down\nG90 ; absolute positioning\nM84 ; disable motors"}
|
"machine_end_gcode": {"default": "M104 S0\nG91 ; relative positioning\nG1 E-2 F5000; retract 2mm\nG28 Z; move bed down\nG90 ; absolute positioning\nM84 ; disable motors"},
|
||||||
|
"machine_platform_offset": {"default": [-180, -0.25, 160]}
|
||||||
},
|
},
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
15
resources/machines/ultimaker.json
Normal file
15
resources/machines/ultimaker.json
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker_base",
|
||||||
|
"version": 1,
|
||||||
|
"visible": false,
|
||||||
|
"name": "Ultimaker",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"inherits": "fdmprinter.json",
|
||||||
|
|
||||||
|
"machine_preferences": {
|
||||||
|
"prefered_profile": "Normal Quality",
|
||||||
|
"prefered_variant": "0.4 mm",
|
||||||
|
"prefered_material": "PLA"
|
||||||
|
}
|
||||||
|
}
|
@ -9,11 +9,14 @@
|
|||||||
"platform_texture": "Ultimaker2backplate.png",
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
|
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "ultimaker.json",
|
||||||
|
|
||||||
|
"pages": [
|
||||||
|
"SelectUpgradedPartsUM2"
|
||||||
|
],
|
||||||
|
|
||||||
"machine_extruder_trains": {
|
"machine_extruder_trains": [
|
||||||
"0": {
|
{
|
||||||
"machine_nozzle_heat_up_speed": {
|
"machine_nozzle_heat_up_speed": {
|
||||||
"default": 2.0
|
"default": 2.0
|
||||||
},
|
},
|
||||||
@ -33,8 +36,8 @@
|
|||||||
"default": 16
|
"default": 16
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
],
|
||||||
"overrides": {
|
"machine_settings": {
|
||||||
"machine_start_gcode" : { "default": "" },
|
"machine_start_gcode" : { "default": "" },
|
||||||
"machine_end_gcode" : { "default": "" },
|
"machine_end_gcode" : { "default": "" },
|
||||||
"machine_width": { "default": 230 },
|
"machine_width": { "default": 230 },
|
||||||
@ -80,11 +83,17 @@
|
|||||||
|
|
||||||
"machine_nozzle_tip_outer_diameter": { "default": 1.0 },
|
"machine_nozzle_tip_outer_diameter": { "default": 1.0 },
|
||||||
"machine_nozzle_head_distance": { "default": 3.0 },
|
"machine_nozzle_head_distance": { "default": 3.0 },
|
||||||
"machine_nozzle_expansion_angle": { "default": 45 },
|
"machine_nozzle_expansion_angle": { "default": 45 }
|
||||||
|
},
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
"material_print_temperature": { "enabled": "False" },
|
"material_print_temperature": { "enabled": "False" },
|
||||||
"material_bed_temperature": { "enabled": "False" },
|
"material_bed_temperature": { "enabled": "False" },
|
||||||
"material_diameter": { "enabled": "False" },
|
"material_diameter": { "enabled": "False" },
|
||||||
"material_flow": { "enabled": "False" }
|
"material_flow": { "enabled": "False" },
|
||||||
|
"retraction_amount": { "enabled": "False" },
|
||||||
|
"retraction_speed": { "enabled": "False" },
|
||||||
|
"retraction_retract_speed": { "enabled": "False" },
|
||||||
|
"retraction_prime_speed": { "enabled": "False" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,11 @@
|
|||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2.json",
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
"overrides": {
|
"pages": [
|
||||||
|
"SelectUpgradedPartsUM2"
|
||||||
|
],
|
||||||
|
|
||||||
|
"machine_settings": {
|
||||||
"machine_width": { "default": 230 },
|
"machine_width": { "default": 230 },
|
||||||
"machine_depth": { "default": 225 },
|
"machine_depth": { "default": 225 },
|
||||||
"machine_height": { "default": 315 }
|
"machine_height": { "default": 315 }
|
||||||
|
20
resources/machines/ultimaker2_extended_olsson.json
Normal file
20
resources/machines/ultimaker2_extended_olsson.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_extended_olsson_base",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 Extended with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
|
"machine_settings": {
|
||||||
|
"machine_width": { "default": 230 },
|
||||||
|
"machine_depth": { "default": 225 },
|
||||||
|
"machine_height": { "default": 310 },
|
||||||
|
"machine_show_variants": { "default": true },
|
||||||
|
"gantry_height": { "default": 50 }
|
||||||
|
}
|
||||||
|
}
|
17
resources/machines/ultimaker2_extended_olsson_025.json
Normal file
17
resources/machines/ultimaker2_extended_olsson_025.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_extended_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 Extended with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_extended_olsson.json",
|
||||||
|
"variant": "0.25 mm",
|
||||||
|
"profiles_machine": "ultimaker2_olsson",
|
||||||
|
"machine_settings": {
|
||||||
|
"machine_nozzle_size": { "default": 0.25 }
|
||||||
|
}
|
||||||
|
}
|
18
resources/machines/ultimaker2_extended_olsson_040.json
Normal file
18
resources/machines/ultimaker2_extended_olsson_040.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_extended_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 Extended with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_extended_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.4 mm",
|
||||||
|
"profiles_machine": "ultimaker2_olsson",
|
||||||
|
"machine_settings": {
|
||||||
|
"machine_nozzle_size": { "default": 0.40 }
|
||||||
|
}
|
||||||
|
}
|
18
resources/machines/ultimaker2_extended_olsson_060.json
Normal file
18
resources/machines/ultimaker2_extended_olsson_060.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_extended_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 Extended with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_extended_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.6 mm",
|
||||||
|
"profiles_machine": "ultimaker2_olsson",
|
||||||
|
"machine_settings": {
|
||||||
|
"machine_nozzle_size": { "default": 0.60 }
|
||||||
|
}
|
||||||
|
}
|
18
resources/machines/ultimaker2_extended_olsson_080.json
Normal file
18
resources/machines/ultimaker2_extended_olsson_080.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_extended_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 Extended with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"visible": false,
|
||||||
|
"inherits": "ultimaker2_extended_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.8 mm",
|
||||||
|
"profiles_machine": "ultimaker2_olsson",
|
||||||
|
"machine_settings": {
|
||||||
|
"machine_nozzle_size": { "default": 0.80 }
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.25 mm",
|
"variant": "0.25 mm",
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.4 mm",
|
"variant": "0.4 mm",
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.6 mm",
|
"variant": "0.6 mm",
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2_extended_plus.json",
|
"inherits": "ultimaker2_extended_plus.json",
|
||||||
"variant": "0.8 mm",
|
"variant": "0.8 mm",
|
||||||
|
16
resources/machines/ultimaker2_olsson.json
Normal file
16
resources/machines/ultimaker2_olsson.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_olsson_base",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2.json",
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_show_variants": { "default": true }
|
||||||
|
}
|
||||||
|
}
|
21
resources/machines/ultimaker2_olsson_025.json
Normal file
21
resources/machines/ultimaker2_olsson_025.json
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.25 mm",
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.25 },
|
||||||
|
|
||||||
|
"coasting_volume": { "default": 0.1 },
|
||||||
|
"coasting_min_volume": { "default": 0.17 }
|
||||||
|
}
|
||||||
|
}
|
18
resources/machines/ultimaker2_olsson_040.json
Normal file
18
resources/machines/ultimaker2_olsson_040.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.4 mm",
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.40 }
|
||||||
|
}
|
||||||
|
}
|
19
resources/machines/ultimaker2_olsson_060.json
Normal file
19
resources/machines/ultimaker2_olsson_060.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.6 mm",
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.60 },
|
||||||
|
"coasting_volume": { "default": 1.36 }
|
||||||
|
}
|
||||||
|
}
|
19
resources/machines/ultimaker2_olsson_080.json
Normal file
19
resources/machines/ultimaker2_olsson_080.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"id": "ultimaker2_olsson",
|
||||||
|
"version": 1,
|
||||||
|
"name": "Ultimaker 2 with Olsson Block",
|
||||||
|
"manufacturer": "Ultimaker",
|
||||||
|
"author": "Ultimaker",
|
||||||
|
"platform": "ultimaker2_platform.obj",
|
||||||
|
"platform_texture": "Ultimaker2backplate.png",
|
||||||
|
"visible": false,
|
||||||
|
"file_formats": "text/x-gcode",
|
||||||
|
"inherits": "ultimaker2_olsson.json",
|
||||||
|
|
||||||
|
"variant": "0.8 mm",
|
||||||
|
|
||||||
|
"overrides": {
|
||||||
|
"machine_nozzle_size": { "default": 0.80 },
|
||||||
|
"coasting_volume": { "default": 3.22 }
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||||
"visible": false,
|
"visible": false,
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2.json",
|
"inherits": "ultimaker2.json",
|
||||||
@ -16,28 +16,26 @@
|
|||||||
"machine_height": { "default": 200 },
|
"machine_height": { "default": 200 },
|
||||||
"machine_show_variants": { "default": true },
|
"machine_show_variants": { "default": true },
|
||||||
"gantry_height": { "default": 50 },
|
"gantry_height": { "default": 50 },
|
||||||
"shell_thickness": { "default": 1.2 },
|
"machine_head_with_fans_polygon":
|
||||||
"top_bottom_thickness": { "inherit_function": "(parent_value / 3) * 2" },
|
{
|
||||||
"travel_compensate_overlapping_walls_enabled": { "default": true },
|
"default": [
|
||||||
"skin_alternate_rotation": { "default": true },
|
[
|
||||||
"skin_outline_count": { "default": 2 },
|
-44,
|
||||||
"infill_sparse_density": { "default": 10 },
|
14
|
||||||
"infill_overlap": { "default": 0.056, "inherit_function": "0.14 * line_width if infill_sparse_density < 95 else 0" },
|
],
|
||||||
"infill_wipe_dist": { "default": 0.35, "inherit_function": "wall_line_width_0" },
|
[
|
||||||
"retraction_amount": { "default": 6 },
|
-44,
|
||||||
"retraction_min_travel": { "default": 4.5 },
|
-34
|
||||||
"retraction_count_max": { "default": 6 },
|
],
|
||||||
"retraction_extrusion_window": { "default": 6.0 },
|
[
|
||||||
"speed_print": { "default": 50 },
|
64,
|
||||||
"speed_wall": { "inherit_function": "parent_value / 50 * 30" },
|
14
|
||||||
"speed_wall_x": { "inherit_function": "speed_print / 50 * 40" },
|
],
|
||||||
"speed_topbottom": { "inherit_function": "parent_value / 50 * 20" },
|
[
|
||||||
"speed_layer_0": { "default": 20 },
|
64,
|
||||||
"skirt_speed": { "default": 20 },
|
-34
|
||||||
"travel_avoid_distance": { "default": 1.0 },
|
]
|
||||||
"coasting_enable": { "default": true },
|
]
|
||||||
"coasting_volume": { "default": 0.4 },
|
}
|
||||||
"support_angle": { "default": 50 },
|
|
||||||
"adhesion_type": { "default": "brim" }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
@ -13,16 +13,6 @@
|
|||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"machine_nozzle_size": { "default": 0.25 },
|
"machine_nozzle_size": { "default": 0.25 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.06 },
|
|
||||||
"layer_height_0": { "default": 0.15 },
|
|
||||||
|
|
||||||
"infill_sparse_density": { "default": 12 },
|
|
||||||
"speed_print": { "default": 30 },
|
|
||||||
"speed_wall": { "inherit_function": "parent_value / 30 * 20" },
|
|
||||||
"speed_wall_x": { "inherit_function": "speed_print / 30 * 25" },
|
|
||||||
"speed_topbottom": { "inherit_function": "parent_value / 30 * 20" },
|
|
||||||
|
|
||||||
"coasting_volume": { "default": 0.1 },
|
"coasting_volume": { "default": 0.1 },
|
||||||
"coasting_min_volume": { "default": 0.17 }
|
"coasting_min_volume": { "default": 0.17 }
|
||||||
}
|
}
|
||||||
|
@ -5,16 +5,13 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
"variant": "0.4 mm",
|
"variant": "0.4 mm",
|
||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"machine_nozzle_size": { "default": 0.40 },
|
"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" }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
@ -13,18 +13,6 @@
|
|||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"machine_nozzle_size": { "default": 0.60 },
|
"machine_nozzle_size": { "default": 0.60 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.15 },
|
|
||||||
"layer_height_0": { "default": 0.4 },
|
|
||||||
|
|
||||||
"shell_thickness": { "default": 1.8 },
|
|
||||||
|
|
||||||
"infill_sparse_density": { "default": 15 },
|
|
||||||
"speed_print": { "default": 55 },
|
|
||||||
"speed_wall": { "inherit_function": "parent_value / 55 * 25" },
|
|
||||||
"speed_wall_x": { "inherit_function": "speed_print / 55 * 40" },
|
|
||||||
"speed_topbottom": { "inherit_function": "parent_value / 55 * 20" },
|
|
||||||
|
|
||||||
"coasting_volume": { "default": 1.36 }
|
"coasting_volume": { "default": 1.36 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"manufacturer": "Ultimaker",
|
"manufacturer": "Ultimaker",
|
||||||
"author": "Ultimaker",
|
"author": "Ultimaker",
|
||||||
"platform": "ultimaker2_platform.obj",
|
"platform": "ultimaker2_platform.obj",
|
||||||
"platform_texture": "ultimaker2plus_backplate.png",
|
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "ultimaker2plus.json",
|
"inherits": "ultimaker2plus.json",
|
||||||
|
|
||||||
@ -13,19 +13,6 @@
|
|||||||
|
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"machine_nozzle_size": { "default": 0.80 },
|
"machine_nozzle_size": { "default": 0.80 },
|
||||||
|
|
||||||
"layer_height": { "default": 0.2 },
|
|
||||||
"layer_height_0": { "default": 0.5 },
|
|
||||||
|
|
||||||
"shell_thickness": { "default": 2.4 },
|
|
||||||
"top_bottom_thickness": { "inherit_function": "parent_value / 2" },
|
|
||||||
|
|
||||||
"infill_sparse_density": { "default": 16 },
|
|
||||||
"speed_print": { "default": 40 },
|
|
||||||
"speed_wall": { "inherit_function": "parent_value / 40 * 20" },
|
|
||||||
"speed_wall_x": { "inherit_function": "speed_print / 40 * 30" },
|
|
||||||
"speed_topbottom": { "inherit_function": "parent_value / 40 * 20" },
|
|
||||||
|
|
||||||
"coasting_volume": { "default": 3.22 }
|
"coasting_volume": { "default": 3.22 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"icon": "icon_ultimaker.png",
|
"icon": "icon_ultimaker.png",
|
||||||
"platform": "ultimaker_platform.stl",
|
"platform": "ultimaker_platform.stl",
|
||||||
"file_formats": "text/x-gcode",
|
"file_formats": "text/x-gcode",
|
||||||
"inherits": "fdmprinter.json",
|
"inherits": "ultimaker.json",
|
||||||
|
|
||||||
"pages": [
|
"pages": [
|
||||||
"SelectUpgradedParts",
|
"SelectUpgradedParts",
|
||||||
|
@ -5,7 +5,7 @@ name = ABS
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
material_bed_temperature = 100
|
material_bed_temperature = 100
|
||||||
platform_adhesion = Brim
|
platform_adhesion = brim
|
||||||
material_flow = 107
|
material_flow = 107
|
||||||
material_print_temperature = 250
|
material_print_temperature = 250
|
||||||
cool_fan_speed = 50
|
cool_fan_speed = 50
|
||||||
|
@ -5,7 +5,7 @@ name = CPE
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
material_bed_temperature = 60
|
material_bed_temperature = 60
|
||||||
platform_adhesion = Brim
|
platform_adhesion = brim
|
||||||
material_flow = 100
|
material_flow = 100
|
||||||
material_print_temperature = 250
|
material_print_temperature = 250
|
||||||
cool_fan_speed = 50
|
cool_fan_speed = 50
|
||||||
|
@ -5,7 +5,7 @@ name = PLA
|
|||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
material_bed_temperature = 60
|
material_bed_temperature = 60
|
||||||
platform_adhesion = Skirt
|
platform_adhesion = skirt
|
||||||
material_flow = 100
|
material_flow = 100
|
||||||
material_print_temperature = 210
|
material_print_temperature = 210
|
||||||
cool_fan_speed = 100
|
cool_fan_speed = 100
|
||||||
|
26
resources/profiles/ultimaker2+/abs_0.25_normal.curaprofile
Normal file
26
resources/profiles/ultimaker2+/abs_0.25_normal.curaprofile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
layer_height = 0.06
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
speed_wall_x = 25
|
||||||
|
wall_thickness = 0.88
|
||||||
|
speed_infill = 30
|
||||||
|
speed_topbottom = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
speed_print = 20
|
||||||
|
cool_min_speed = 25
|
||||||
|
line_width = 0.22
|
||||||
|
infill_sparse_density = 22
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
speed_wall_0 = 20
|
||||||
|
cool_min_layer_time = 2
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
@ -1,51 +1,26 @@
|
|||||||
[general]
|
[general]
|
||||||
version = 1
|
version = 1
|
||||||
name = Fast Prints
|
name = Fast Print
|
||||||
machine_type = ultimaker2plus
|
machine_type = ultimaker2plus
|
||||||
machine_variant = 0.4 mm
|
machine_variant = 0.4 mm
|
||||||
material = ABS
|
material = ABS
|
||||||
|
|
||||||
[settings]
|
[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
|
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 = 0.0525
|
|
||||||
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
|
top_bottom_thickness = 0.75
|
||||||
skirt_gap = 3.0
|
layer_height_0 = 0.26
|
||||||
raft_interface_line_width = 0.4
|
speed_print = 40
|
||||||
|
speed_wall_x = 40
|
||||||
|
wall_thickness = 0.7
|
||||||
|
speed_infill = 55
|
||||||
|
speed_topbottom = 30
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_min_speed = 20
|
||||||
|
line_width = 0.35
|
||||||
|
infill_sparse_density = 18
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
speed_travel = 150
|
||||||
|
speed_wall_0 = 30
|
||||||
adhesion_type = brim
|
adhesion_type = brim
|
||||||
support_pattern = lines
|
cool_lift_head = True
|
||||||
raft_surface_line_width = 0.4
|
cool_fan_speed_min = 50
|
||||||
raft_surface_line_spacing = 3.0
|
|
||||||
|
|
@ -6,46 +6,21 @@ machine_variant = 0.4 mm
|
|||||||
material = ABS
|
material = ABS
|
||||||
|
|
||||||
[settings]
|
[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
|
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 = 0.0525
|
|
||||||
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
|
top_bottom_thickness = 0.72
|
||||||
skirt_gap = 3.0
|
layer_height_0 = 0.26
|
||||||
raft_interface_line_width = 0.4
|
speed_print = 30
|
||||||
|
speed_wall_x = 30
|
||||||
|
wall_thickness = 1.05
|
||||||
|
speed_infill = 45
|
||||||
|
speed_topbottom = 20
|
||||||
adhesion_type = brim
|
adhesion_type = brim
|
||||||
support_pattern = lines
|
cool_min_speed = 20
|
||||||
raft_surface_line_width = 0.4
|
line_width = 0.35
|
||||||
raft_surface_line_spacing = 3.0
|
infill_sparse_density = 22
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
speed_wall_0 = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
@ -6,41 +6,18 @@ machine_variant = 0.4 mm
|
|||||||
material = ABS
|
material = ABS
|
||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
raft_surface_thickness = 0.27
|
layer_height_0 = 0.26
|
||||||
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
|
speed_print = 30
|
||||||
retraction_hop = 0.0
|
speed_wall_x = 30
|
||||||
|
wall_thickness = 1.05
|
||||||
|
speed_infill = 45
|
||||||
|
speed_topbottom = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_min_speed = 20
|
||||||
|
line_width = 0.35
|
||||||
machine_nozzle_size = 0.35
|
machine_nozzle_size = 0.35
|
||||||
speed_wall_0 = 20
|
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 = 0.0525
|
|
||||||
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
|
adhesion_type = brim
|
||||||
support_pattern = lines
|
cool_lift_head = True
|
||||||
raft_surface_line_width = 0.4
|
cool_fan_speed_min = 50
|
||||||
raft_surface_line_spacing = 3.0
|
|
||||||
|
|
||||||
|
@ -6,45 +6,20 @@ machine_variant = 0.6 mm
|
|||||||
material = ABS
|
material = ABS
|
||||||
|
|
||||||
[settings]
|
[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
|
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 = 0.0795
|
|
||||||
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
|
top_bottom_thickness = 1.2
|
||||||
skirt_gap = 3.0
|
layer_height_0 = 0.39
|
||||||
raft_interface_line_width = 0.4
|
speed_print = 25
|
||||||
|
speed_wall_x = 30
|
||||||
|
wall_thickness = 1.59
|
||||||
|
speed_infill = 55
|
||||||
|
speed_topbottom = 20
|
||||||
adhesion_type = brim
|
adhesion_type = brim
|
||||||
support_pattern = lines
|
cool_min_speed = 20
|
||||||
raft_surface_line_width = 0.4
|
line_width = 0.53
|
||||||
raft_surface_line_spacing = 3.0
|
machine_nozzle_size = 0.53
|
||||||
|
speed_wall_0 = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
25
resources/profiles/ultimaker2+/abs_0.8_normal.curaprofile
Normal file
25
resources/profiles/ultimaker2+/abs_0.8_normal.curaprofile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = ABS
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
layer_height = 0.2
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
speed_print = 20
|
||||||
|
speed_wall_x = 30
|
||||||
|
wall_thickness = 2.1
|
||||||
|
speed_infill = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_min_speed = 15
|
||||||
|
line_width = 0.7
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
speed_wall_0 = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
26
resources/profiles/ultimaker2+/cpe_0.25_normal.curaprofile
Normal file
26
resources/profiles/ultimaker2+/cpe_0.25_normal.curaprofile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
infill_overlap = 17
|
||||||
|
layer_height = 0.06
|
||||||
|
wall_thickness = 0.88
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
speed_wall_x = 25
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
speed_infill = 30
|
||||||
|
speed_topbottom = 20
|
||||||
|
cool_min_layer_time = 2
|
||||||
|
speed_print = 20
|
||||||
|
line_width = 0.22
|
||||||
|
infill_sparse_density = 22
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
speed_wall_0 = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
@ -1,50 +1,27 @@
|
|||||||
[general]
|
[general]
|
||||||
version = 1
|
version = 1
|
||||||
name = Fast Prints
|
name = Fast Print
|
||||||
machine_type = ultimaker2plus
|
machine_type = ultimaker2plus
|
||||||
machine_variant = 0.4 mm
|
machine_variant = 0.4 mm
|
||||||
material = CPE
|
material = CPE
|
||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
cool_fan_speed_min = 50
|
infill_overlap = 17
|
||||||
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
|
cool_min_layer_time = 3
|
||||||
layer_height = 0.15
|
layer_height = 0.15
|
||||||
raft_margin = 5.0
|
wall_thickness = 0.7
|
||||||
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
|
layer_height_0 = 0.26
|
||||||
material_bed_temperature = 70
|
speed_print = 30
|
||||||
top_thickness = 0.75
|
|
||||||
top_bottom_thickness = 0.75
|
|
||||||
speed_wall_x = 40
|
speed_wall_x = 40
|
||||||
infill_overlap = 0.0595
|
top_bottom_thickness = 0.75
|
||||||
infill_before_walls = False
|
speed_infill = 45
|
||||||
skirt_minimal_length = 150.0
|
|
||||||
speed_topbottom = 20
|
speed_topbottom = 20
|
||||||
skirt_gap = 3.0
|
speed_travel = 150
|
||||||
raft_base_line_width = 1.0
|
line_width = 0.35
|
||||||
|
infill_sparse_density = 18
|
||||||
machine_nozzle_size = 0.35
|
machine_nozzle_size = 0.35
|
||||||
|
speed_wall_0 = 30
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
@ -6,45 +6,20 @@ machine_variant = 0.4 mm
|
|||||||
material = CPE
|
material = CPE
|
||||||
|
|
||||||
[settings]
|
[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
|
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
|
top_bottom_thickness = 0.72
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
speed_print = 20
|
||||||
speed_wall_x = 30
|
speed_wall_x = 30
|
||||||
infill_overlap = 0.0525
|
wall_thickness = 1.05
|
||||||
infill_before_walls = False
|
speed_infill = 45
|
||||||
raft_surface_line_width = 0.4
|
|
||||||
skirt_minimal_length = 150.0
|
|
||||||
speed_topbottom = 20
|
speed_topbottom = 20
|
||||||
skirt_gap = 3.0
|
adhesion_type = brim
|
||||||
raft_base_line_width = 1.0
|
line_width = 0.35
|
||||||
|
infill_sparse_density = 22
|
||||||
machine_nozzle_size = 0.35
|
machine_nozzle_size = 0.35
|
||||||
|
speed_wall_0 = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
@ -6,40 +6,17 @@ machine_variant = 0.4 mm
|
|||||||
material = CPE
|
material = CPE
|
||||||
|
|
||||||
[settings]
|
[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
|
layer_height_0 = 0.26
|
||||||
material_bed_temperature = 70
|
speed_print = 20
|
||||||
speed_wall_x = 30
|
speed_wall_x = 30
|
||||||
infill_overlap = 0.0525
|
wall_thickness = 1.05
|
||||||
speed_infill = 45
|
speed_infill = 45
|
||||||
skirt_minimal_length = 150.0
|
|
||||||
speed_topbottom = 20
|
speed_topbottom = 20
|
||||||
skirt_gap = 3.0
|
cool_min_layer_time = 3
|
||||||
raft_base_line_width = 1.0
|
line_width = 0.35
|
||||||
machine_nozzle_size = 0.35
|
machine_nozzle_size = 0.35
|
||||||
|
speed_wall_0 = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
@ -6,44 +6,20 @@ machine_variant = 0.6 mm
|
|||||||
material = CPE
|
material = CPE
|
||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
cool_fan_speed_min = 50
|
infill_overlap = 17
|
||||||
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
|
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
|
top_bottom_thickness = 1.2
|
||||||
|
layer_height_0 = 0.39
|
||||||
speed_wall_x = 30
|
speed_wall_x = 30
|
||||||
infill_overlap = 0.0901
|
wall_thickness = 1.59
|
||||||
infill_before_walls = False
|
speed_infill = 40
|
||||||
raft_surface_line_width = 0.4
|
|
||||||
skirt_minimal_length = 150.0
|
|
||||||
speed_topbottom = 20
|
speed_topbottom = 20
|
||||||
skirt_gap = 3.0
|
cool_min_layer_time = 3
|
||||||
raft_base_line_width = 1.0
|
speed_print = 20
|
||||||
|
line_width = 0.53
|
||||||
machine_nozzle_size = 0.53
|
machine_nozzle_size = 0.53
|
||||||
|
speed_wall_0 = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
||||||
|
25
resources/profiles/ultimaker2+/cpe_0.8_normal.curaprofile
Normal file
25
resources/profiles/ultimaker2+/cpe_0.8_normal.curaprofile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = CPE
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
infill_overlap = 17
|
||||||
|
layer_height = 0.2
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
speed_wall_x = 30
|
||||||
|
wall_thickness = 2.1
|
||||||
|
speed_infill = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
cool_min_layer_time = 3
|
||||||
|
speed_print = 20
|
||||||
|
line_width = 0.7
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
speed_wall_0 = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
cool_lift_head = True
|
||||||
|
cool_fan_speed_min = 50
|
||||||
|
|
31
resources/profiles/ultimaker2+/pla_0.25_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2+/pla_0.25_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
layer_height = 0.06
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
shell_thickness = 0.88
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
infill_wipe_dist = 0.1
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 30
|
||||||
|
speed_wall_0 = 20
|
||||||
|
speed_wall_x = 25
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
@ -1,47 +1,32 @@
|
|||||||
[general]
|
[general]
|
||||||
version = 1
|
version = 1
|
||||||
name = Fast Prints
|
name = Fast Print
|
||||||
machine_type = ultimaker2plus
|
machine_type = ultimaker2plus
|
||||||
machine_variant = 0.4 mm
|
machine_variant = 0.4 mm
|
||||||
material = PLA
|
material = PLA
|
||||||
|
|
||||||
[settings]
|
[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 = 0.0525
|
|
||||||
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
|
machine_nozzle_size = 0.35
|
||||||
top_bottom_thickness = 0.75
|
layer_height = 0.15
|
||||||
support_enable = False
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 0.7
|
||||||
|
top_bottom_thickness = 0.6
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 18
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 60
|
||||||
|
speed_wall_0 = 40
|
||||||
|
speed_wall_x = 50
|
||||||
|
speed_topbottom = 30
|
||||||
|
speed_travel = 150
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
||||||
|
@ -6,43 +6,26 @@ machine_variant = 0.4 mm
|
|||||||
material = PLA
|
material = PLA
|
||||||
|
|
||||||
[settings]
|
[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 = 0.0525
|
|
||||||
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
|
machine_nozzle_size = 0.35
|
||||||
raft_surface_line_spacing = 3.0
|
layer_height = 0.06
|
||||||
support_enable = False
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.05
|
||||||
|
top_bottom_thickness = 0.84
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
@ -6,38 +6,26 @@ machine_variant = 0.4 mm
|
|||||||
material = PLA
|
material = PLA
|
||||||
|
|
||||||
[settings]
|
[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 = 0.0525
|
|
||||||
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
|
machine_nozzle_size = 0.35
|
||||||
raft_surface_line_spacing = 3.0
|
layer_height = 0.1
|
||||||
support_enable = False
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.05
|
||||||
|
top_bottom_thickness = 0.8
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
||||||
|
31
resources/profiles/ultimaker2+/pla_0.4_ulti.curaprofile
Normal file
31
resources/profiles/ultimaker2+/pla_0.4_ulti.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Ulti Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.04
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.4
|
||||||
|
top_bottom_thickness = 1.12
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 25
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
@ -6,42 +6,26 @@ machine_variant = 0.6 mm
|
|||||||
material = PLA
|
material = PLA
|
||||||
|
|
||||||
[settings]
|
[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 = 0.0795
|
|
||||||
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
|
machine_nozzle_size = 0.53
|
||||||
raft_surface_line_spacing = 3.0
|
layer_height = 0.15
|
||||||
support_enable = False
|
layer_height_0 = 0.4
|
||||||
|
shell_thickness = 1.59
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_wipe_dist = 0.3
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 55
|
||||||
|
speed_wall_0 = 25
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1.2
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 20
|
||||||
|
adhesion_type = brim
|
||||||
|
31
resources/profiles/ultimaker2+/pla_0.8_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2+/pla_0.8_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2plus
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
material = PLA
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
layer_height = 0.2
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
shell_thickness = 2.1
|
||||||
|
top_bottom_thickness = 1.6
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_wipe_dist = 0.4
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 40
|
||||||
|
speed_wall_0 = 20
|
||||||
|
speed_wall_x = 30
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1.6
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 25
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.25_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.25_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.25 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.22
|
||||||
|
layer_height = 0.06
|
||||||
|
layer_height_0 = 0.15
|
||||||
|
shell_thickness = 0.88
|
||||||
|
top_bottom_thickness = 0.72
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
infill_overlap = 0.022
|
||||||
|
infill_wipe_dist = 0.1
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 30
|
||||||
|
speed_wall_0 = 20
|
||||||
|
speed_wall_x = 25
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
32
resources/profiles/ultimaker2_olsson/0.4_fast.curaprofile
Normal file
32
resources/profiles/ultimaker2_olsson/0.4_fast.curaprofile
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Fast Print
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.15
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 0.7
|
||||||
|
top_bottom_thickness = 0.6
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 18
|
||||||
|
infill_overlap = 0.035
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 60
|
||||||
|
speed_wall_0 = 40
|
||||||
|
speed_wall_x = 50
|
||||||
|
speed_topbottom = 30
|
||||||
|
speed_travel = 150
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.4_high.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.4_high.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = High Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.06
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.05
|
||||||
|
top_bottom_thickness = 0.84
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 22
|
||||||
|
infill_overlap = 0.035
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.4_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.4_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.1
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.05
|
||||||
|
top_bottom_thickness = 0.8
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_overlap = 0.035
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.4_ulti.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.4_ulti.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Ulti Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.4 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.35
|
||||||
|
layer_height = 0.04
|
||||||
|
layer_height_0 = 0.26
|
||||||
|
shell_thickness = 1.4
|
||||||
|
top_bottom_thickness = 1.12
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 25
|
||||||
|
infill_overlap = 0.035
|
||||||
|
infill_wipe_dist = 0.2
|
||||||
|
retraction_amount = 5.5
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 50
|
||||||
|
speed_wall_0 = 30
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 15
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.6_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.6_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.6 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.53
|
||||||
|
layer_height = 0.15
|
||||||
|
layer_height_0 = 0.4
|
||||||
|
shell_thickness = 1.59
|
||||||
|
top_bottom_thickness = 1.2
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_overlap = 0.053
|
||||||
|
infill_wipe_dist = 0.3
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 55
|
||||||
|
speed_wall_0 = 25
|
||||||
|
speed_wall_x = 40
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1.2
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 20
|
||||||
|
adhesion_type = brim
|
31
resources/profiles/ultimaker2_olsson/0.8_normal.curaprofile
Normal file
31
resources/profiles/ultimaker2_olsson/0.8_normal.curaprofile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[general]
|
||||||
|
version = 1
|
||||||
|
name = Normal Quality
|
||||||
|
machine_type = ultimaker2_olsson
|
||||||
|
machine_variant = 0.8 mm
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
machine_nozzle_size = 0.7
|
||||||
|
layer_height = 0.2
|
||||||
|
layer_height_0 = 0.5
|
||||||
|
shell_thickness = 2.1
|
||||||
|
top_bottom_thickness = 1.6
|
||||||
|
top_bottom_pattern = lines
|
||||||
|
infill_sparse_density = 20
|
||||||
|
infill_overlap = 0.07
|
||||||
|
infill_wipe_dist = 0.4
|
||||||
|
retraction_amount = 6
|
||||||
|
retraction_min_travel = 0.5
|
||||||
|
retraction_count_max = 30
|
||||||
|
retraction_extrusion_window = 6
|
||||||
|
speed_infill = 40
|
||||||
|
speed_wall_0 = 20
|
||||||
|
speed_wall_x = 30
|
||||||
|
speed_topbottom = 20
|
||||||
|
speed_layer_0 = 25
|
||||||
|
skirt_speed = 25
|
||||||
|
speed_slowdown_layers = 2
|
||||||
|
travel_avoid_distance = 1.6
|
||||||
|
cool_fan_full_layer = 2
|
||||||
|
cool_min_layer_time_fan_speed_max = 25
|
||||||
|
adhesion_type = brim
|
@ -24,7 +24,7 @@ UM.Dialog
|
|||||||
width: parent.width * 0.75
|
width: parent.width * 0.75
|
||||||
height: width * (1/4.25)
|
height: width * (1/4.25)
|
||||||
|
|
||||||
source: UM.Theme.images.logo
|
source: UM.Theme.getImage("logo")
|
||||||
|
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: height
|
sourceSize.height: height
|
||||||
@ -38,7 +38,7 @@ UM.Dialog
|
|||||||
id: version
|
id: version
|
||||||
|
|
||||||
text: "Cura %1".arg(UM.Application.version)
|
text: "Cura %1".arg(UM.Application.version)
|
||||||
font: UM.Theme.fonts.large
|
font: UM.Theme.getFont("large")
|
||||||
anchors.horizontalCenter : logo.horizontalCenter
|
anchors.horizontalCenter : logo.horizontalCenter
|
||||||
anchors.horizontalCenterOffset : (logo.width * 0.25)
|
anchors.horizontalCenterOffset : (logo.width * 0.25)
|
||||||
anchors.top: logo.bottom
|
anchors.top: logo.bottom
|
||||||
|
@ -92,7 +92,7 @@ UM.MainWindow
|
|||||||
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
||||||
enabled: UM.Selection.hasSelection;
|
enabled: UM.Selection.hasSelection;
|
||||||
iconName: "document-save-as";
|
iconName: "document-save-as";
|
||||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName, false);
|
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName, { "filter_by_machine": false });
|
||||||
}
|
}
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
@ -108,7 +108,7 @@ UM.MainWindow
|
|||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
text: model.description;
|
text: model.description;
|
||||||
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName, false);
|
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName, { "filter_by_machine": false });
|
||||||
}
|
}
|
||||||
onObjectAdded: saveAllMenu.insertItem(index, object)
|
onObjectAdded: saveAllMenu.insertItem(index, object)
|
||||||
onObjectRemoved: saveAllMenu.removeItem(object)
|
onObjectRemoved: saveAllMenu.removeItem(object)
|
||||||
@ -214,13 +214,24 @@ UM.MainWindow
|
|||||||
|
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
|
id: profileMenuInstantiator
|
||||||
model: UM.ProfilesModel { }
|
model: UM.ProfilesModel { }
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: model.name;
|
text: model.name;
|
||||||
checkable: true;
|
checkable: true;
|
||||||
checked: model.active;
|
checked: model.active;
|
||||||
exclusiveGroup: profileMenuGroup;
|
exclusiveGroup: profileMenuGroup;
|
||||||
onTriggered: UM.MachineManager.setActiveProfile(model.name)
|
onTriggered:
|
||||||
|
{
|
||||||
|
UM.MachineManager.setActiveProfile(model.name);
|
||||||
|
if (!model.active) {
|
||||||
|
//Selecting a profile was canceled; undo menu selection
|
||||||
|
profileMenuInstantiator.model.setProperty(index, "active", false);
|
||||||
|
var activeProfileName = UM.MachineManager.activeProfile;
|
||||||
|
var activeProfileIndex = profileMenuInstantiator.model.find("name", activeProfileName);
|
||||||
|
profileMenuInstantiator.model.setProperty(activeProfileIndex, "active", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: profileMenu.insertItem(index, object)
|
onObjectAdded: profileMenu.insertItem(index, object)
|
||||||
onObjectRemoved: profileMenu.removeItem(object)
|
onObjectRemoved: profileMenu.removeItem(object)
|
||||||
@ -326,8 +337,8 @@ UM.MainWindow
|
|||||||
{
|
{
|
||||||
bottom: parent.bottom;
|
bottom: parent.bottom;
|
||||||
right: sidebar.left;
|
right: sidebar.left;
|
||||||
bottomMargin: UM.Theme.sizes.default_margin.height;
|
bottomMargin: UM.Theme.getSize("default_margin").height;
|
||||||
rightMargin: UM.Theme.sizes.default_margin.width;
|
rightMargin: UM.Theme.getSize("default_margin").width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,7 +347,7 @@ UM.MainWindow
|
|||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
horizontalCenter: parent.horizontalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
horizontalCenterOffset: -(UM.Theme.sizes.sidebar.width/ 2)
|
horizontalCenterOffset: -(UM.Theme.getSize("sidebar").width/ 2)
|
||||||
top: parent.verticalCenter;
|
top: parent.verticalCenter;
|
||||||
bottom: parent.bottom;
|
bottom: parent.bottom;
|
||||||
}
|
}
|
||||||
@ -350,10 +361,10 @@ UM.MainWindow
|
|||||||
//anchors.right: parent.right;
|
//anchors.right: parent.right;
|
||||||
//anchors.bottom: parent.bottom
|
//anchors.bottom: parent.bottom
|
||||||
anchors.top: viewModeButton.bottom
|
anchors.top: viewModeButton.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height;
|
anchors.topMargin: UM.Theme.getSize("default_margin").height;
|
||||||
anchors.left: viewModeButton.left;
|
anchors.left: viewModeButton.left;
|
||||||
//anchors.bottom: buttons.top;
|
//anchors.bottom: buttons.top;
|
||||||
//anchors.bottomMargin: UM.Theme.sizes.default_margin.height;
|
//anchors.bottomMargin: UM.Theme.getSize("default_margin").height;
|
||||||
|
|
||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
|
|
||||||
@ -365,15 +376,15 @@ UM.MainWindow
|
|||||||
id: openFileButton;
|
id: openFileButton;
|
||||||
//style: UM.Backend.progress < 0 ? UM.Theme.styles.open_file_button : UM.Theme.styles.tool_button;
|
//style: UM.Backend.progress < 0 ? UM.Theme.styles.open_file_button : UM.Theme.styles.tool_button;
|
||||||
text: catalog.i18nc("@action:button","Open File");
|
text: catalog.i18nc("@action:button","Open File");
|
||||||
iconSource: UM.Theme.icons.load
|
iconSource: UM.Theme.getIcon("load")
|
||||||
style: UM.Theme.styles.tool_button
|
style: UM.Theme.styles.tool_button
|
||||||
tooltip: '';
|
tooltip: '';
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
top: parent.top;
|
top: parent.top;
|
||||||
//topMargin: UM.Theme.sizes.loadfile_margin.height
|
//topMargin: UM.Theme.getSize("loadfile_margin").height
|
||||||
left: parent.left;
|
left: parent.left;
|
||||||
//leftMargin: UM.Theme.sizes.loadfile_margin.width
|
//leftMargin: UM.Theme.getSize("loadfile_margin").width
|
||||||
}
|
}
|
||||||
action: actions.open;
|
action: actions.open;
|
||||||
}
|
}
|
||||||
@ -384,14 +395,14 @@ UM.MainWindow
|
|||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: UM.Theme.sizes.default_margin.width;
|
leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
bottomMargin: UM.Theme.sizes.default_margin.height;
|
bottomMargin: UM.Theme.getSize("default_margin").height;
|
||||||
}
|
}
|
||||||
|
|
||||||
source: UM.Theme.images.logo;
|
source: UM.Theme.getImage("logo");
|
||||||
width: UM.Theme.sizes.logo.width;
|
width: UM.Theme.getSize("logo").width;
|
||||||
height: UM.Theme.sizes.logo.height;
|
height: UM.Theme.getSize("logo").height;
|
||||||
z: -1;
|
z: -1;
|
||||||
|
|
||||||
sourceSize.width: width;
|
sourceSize.width: width;
|
||||||
@ -405,11 +416,11 @@ UM.MainWindow
|
|||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
top: toolbar.bottom;
|
top: toolbar.bottom;
|
||||||
topMargin: UM.Theme.sizes.window_margin.height;
|
topMargin: UM.Theme.getSize("window_margin").height;
|
||||||
left: parent.left;
|
left: parent.left;
|
||||||
}
|
}
|
||||||
text: catalog.i18nc("@action:button","View Mode");
|
text: catalog.i18nc("@action:button","View Mode");
|
||||||
iconSource: UM.Theme.icons.viewmode;
|
iconSource: UM.Theme.getIcon("viewmode");
|
||||||
|
|
||||||
style: UM.Theme.styles.tool_button;
|
style: UM.Theme.styles.tool_button;
|
||||||
tooltip: '';
|
tooltip: '';
|
||||||
@ -442,7 +453,7 @@ UM.MainWindow
|
|||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: openFileButton.bottom;
|
top: openFileButton.bottom;
|
||||||
topMargin: UM.Theme.sizes.window_margin.height;
|
topMargin: UM.Theme.getSize("window_margin").height;
|
||||||
left: parent.left;
|
left: parent.left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -458,18 +469,28 @@ UM.MainWindow
|
|||||||
right: parent.right;
|
right: parent.right;
|
||||||
}
|
}
|
||||||
|
|
||||||
width: UM.Theme.sizes.sidebar.width;
|
width: UM.Theme.getSize("sidebar").width;
|
||||||
|
|
||||||
addMachineAction: actions.addMachine;
|
addMachineAction: actions.addMachine;
|
||||||
configureMachinesAction: actions.configureMachines;
|
configureMachinesAction: actions.configureMachines;
|
||||||
addProfileAction: actions.addProfile;
|
addProfileAction: actions.addProfile;
|
||||||
manageProfilesAction: actions.manageProfiles;
|
manageProfilesAction: actions.manageProfiles;
|
||||||
|
|
||||||
|
configureSettingsAction: Action
|
||||||
|
{
|
||||||
|
onTriggered:
|
||||||
|
{
|
||||||
|
preferences.visible = true;
|
||||||
|
preferences.setPage(2);
|
||||||
|
preferences.getCurrentItem().scrollToSection(source.key);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle
|
Rectangle
|
||||||
{
|
{
|
||||||
x: base.mouseX + UM.Theme.sizes.default_margin.width;
|
x: base.mouseX + UM.Theme.getSize("default_margin").width;
|
||||||
y: base.mouseY + UM.Theme.sizes.default_margin.height;
|
y: base.mouseY + UM.Theme.getSize("default_margin").height;
|
||||||
|
|
||||||
width: childrenRect.width;
|
width: childrenRect.width;
|
||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
@ -491,25 +512,22 @@ UM.MainWindow
|
|||||||
{
|
{
|
||||||
//; Remove & re-add the general page as we want to use our own instead of uranium standard.
|
//; Remove & re-add the general page as we want to use our own instead of uranium standard.
|
||||||
removePage(0);
|
removePage(0);
|
||||||
insertPage(0, catalog.i18nc("@title:tab","General"), generalPage);
|
insertPage(0, catalog.i18nc("@title:tab","General"), Qt.resolvedUrl("GeneralPage.qml"));
|
||||||
|
|
||||||
//: View preferences page title
|
//: View preferences page title
|
||||||
insertPage(1, catalog.i18nc("@title:tab","View"), viewPage);
|
insertPage(1, catalog.i18nc("@title:tab","View"), Qt.resolvedUrl("ViewPage.qml"));
|
||||||
|
|
||||||
//Force refresh
|
//Force refresh
|
||||||
setPage(0)
|
setPage(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
onVisibleChanged:
|
||||||
visible: false
|
|
||||||
GeneralPage
|
|
||||||
{
|
{
|
||||||
id: generalPage
|
if(!visible)
|
||||||
}
|
|
||||||
|
|
||||||
ViewPage
|
|
||||||
{
|
{
|
||||||
id: viewPage
|
// When the dialog closes, switch to the General page.
|
||||||
|
// This prevents us from having a heavy page like Setting Visiblity active in the background.
|
||||||
|
setPage(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -582,7 +600,7 @@ UM.MainWindow
|
|||||||
addMachine.onTriggered: addMachineWizard.visible = true;
|
addMachine.onTriggered: addMachineWizard.visible = true;
|
||||||
addProfile.onTriggered: { UM.MachineManager.createProfile(); preferences.visible = true; preferences.setPage(4); }
|
addProfile.onTriggered: { UM.MachineManager.createProfile(); preferences.visible = true; preferences.setPage(4); }
|
||||||
|
|
||||||
preferences.onTriggered: { preferences.visible = true; preferences.setPage(0); }
|
preferences.onTriggered: { preferences.visible = true; }
|
||||||
configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
|
configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
|
||||||
manageProfiles.onTriggered: { preferences.visible = true; preferences.setPage(4); }
|
manageProfiles.onTriggered: { preferences.visible = true; preferences.setPage(4); }
|
||||||
|
|
||||||
@ -649,7 +667,7 @@ UM.MainWindow
|
|||||||
//TODO: Support multiple file selection, workaround bug in KDE file dialog
|
//TODO: Support multiple file selection, workaround bug in KDE file dialog
|
||||||
//selectMultiple: true
|
//selectMultiple: true
|
||||||
nameFilters: UM.MeshFileHandler.supportedReadFileTypes;
|
nameFilters: UM.MeshFileHandler.supportedReadFileTypes;
|
||||||
|
folder: Printer.getDefaultPath()
|
||||||
onAccepted:
|
onAccepted:
|
||||||
{
|
{
|
||||||
//Because several implementations of the file dialog only update the folder
|
//Because several implementations of the file dialog only update the folder
|
||||||
@ -688,11 +706,6 @@ UM.MainWindow
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted:
|
|
||||||
{
|
|
||||||
UM.Theme.load(UM.Resources.getPath(UM.Resources.Themes, "cura"))
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer
|
Timer
|
||||||
{
|
{
|
||||||
id: startupTimer;
|
id: startupTimer;
|
||||||
|
@ -25,7 +25,6 @@ Rectangle {
|
|||||||
property variant printDuration: PrintInformation.currentPrintTime;
|
property variant printDuration: PrintInformation.currentPrintTime;
|
||||||
property real printMaterialAmount: PrintInformation.materialAmount;
|
property real printMaterialAmount: PrintInformation.materialAmount;
|
||||||
|
|
||||||
width: UM.Theme.sizes.jobspecs.width
|
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
|
|
||||||
@ -80,7 +79,7 @@ Rectangle {
|
|||||||
id: jobNameRow
|
id: jobNameRow
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
height: UM.Theme.sizes.jobspecs_line.height
|
height: UM.Theme.getSize("jobspecs_line").height
|
||||||
visible: base.activity
|
visible: base.activity
|
||||||
|
|
||||||
Item
|
Item
|
||||||
@ -93,8 +92,8 @@ Rectangle {
|
|||||||
id: printJobPencilIcon
|
id: printJobPencilIcon
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: UM.Theme.sizes.save_button_specs_icons.width
|
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||||
height: UM.Theme.sizes.save_button_specs_icons.height
|
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||||
|
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
@ -108,12 +107,12 @@ Rectangle {
|
|||||||
color: "transparent"
|
color: "transparent"
|
||||||
UM.RecolorImage
|
UM.RecolorImage
|
||||||
{
|
{
|
||||||
width: UM.Theme.sizes.save_button_specs_icons.width
|
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||||
height: UM.Theme.sizes.save_button_specs_icons.height
|
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: width
|
sourceSize.height: width
|
||||||
color: control.hovered ? UM.Theme.colors.setting_control_button_hover : UM.Theme.colors.text
|
color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("text");
|
||||||
source: UM.Theme.icons.pencil;
|
source: UM.Theme.getIcon("pencil");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -123,15 +122,16 @@ Rectangle {
|
|||||||
{
|
{
|
||||||
id: printJobTextfield
|
id: printJobTextfield
|
||||||
anchors.right: printJobPencilIcon.left
|
anchors.right: printJobPencilIcon.left
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width/2
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width/2
|
||||||
height: UM.Theme.sizes.jobspecs_line.height
|
height: UM.Theme.getSize("jobspecs_line").height
|
||||||
width: base.width
|
width: __contentWidth + UM.Theme.getSize("default_margin").width
|
||||||
|
maximumLength: 120
|
||||||
property int unremovableSpacing: 5
|
property int unremovableSpacing: 5
|
||||||
text: ''
|
text: ''
|
||||||
horizontalAlignment: TextInput.AlignRight
|
horizontalAlignment: TextInput.AlignRight
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
if(text != ''){
|
if(text != ''){
|
||||||
//this prevent that is sets an empty string as jobname
|
//Prevent that jobname is set to an empty string
|
||||||
Printer.setJobName(text)
|
Printer.setJobName(text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,8 +144,8 @@ Rectangle {
|
|||||||
regExp: /^[^\\ \/ \.]*$/
|
regExp: /^[^\\ \/ \.]*$/
|
||||||
}
|
}
|
||||||
style: TextFieldStyle{
|
style: TextFieldStyle{
|
||||||
textColor: UM.Theme.colors.setting_control_text;
|
textColor: UM.Theme.getColor("setting_control_text");
|
||||||
font: UM.Theme.fonts.default_bold;
|
font: UM.Theme.getFont("default_bold");
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
opacity: 0
|
opacity: 0
|
||||||
border.width: 0
|
border.width: 0
|
||||||
@ -159,10 +159,10 @@ Rectangle {
|
|||||||
id: boundingSpec
|
id: boundingSpec
|
||||||
anchors.top: jobNameRow.bottom
|
anchors.top: jobNameRow.bottom
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
height: UM.Theme.sizes.jobspecs_line.height
|
height: UM.Theme.getSize("jobspecs_line").height
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
font: UM.Theme.fonts.small
|
font: UM.Theme.getFont("small")
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.getColor("text_subtext")
|
||||||
text: Printer.getSceneBoundingBoxString
|
text: Printer.getSceneBoundingBoxString
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ Rectangle {
|
|||||||
id: specsRow
|
id: specsRow
|
||||||
anchors.top: boundingSpec.bottom
|
anchors.top: boundingSpec.bottom
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
height: UM.Theme.sizes.jobspecs_line.height
|
height: UM.Theme.getSize("jobspecs_line").height
|
||||||
|
|
||||||
Item{
|
Item{
|
||||||
width: parent.width
|
width: parent.width
|
||||||
@ -179,42 +179,42 @@ Rectangle {
|
|||||||
UM.RecolorImage {
|
UM.RecolorImage {
|
||||||
id: timeIcon
|
id: timeIcon
|
||||||
anchors.right: timeSpec.left
|
anchors.right: timeSpec.left
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width/2
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width/2
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: UM.Theme.sizes.save_button_specs_icons.width
|
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||||
height: UM.Theme.sizes.save_button_specs_icons.height
|
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: width
|
sourceSize.height: width
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.getColor("text_subtext")
|
||||||
source: UM.Theme.icons.print_time;
|
source: UM.Theme.getIcon("print_time");
|
||||||
}
|
}
|
||||||
Label{
|
Label{
|
||||||
id: timeSpec
|
id: timeSpec
|
||||||
anchors.right: lengthIcon.left
|
anchors.right: lengthIcon.left
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font: UM.Theme.fonts.small
|
font: UM.Theme.getFont("small")
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.getColor("text_subtext")
|
||||||
text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short)
|
text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short)
|
||||||
}
|
}
|
||||||
UM.RecolorImage {
|
UM.RecolorImage {
|
||||||
id: lengthIcon
|
id: lengthIcon
|
||||||
anchors.right: lengthSpec.left
|
anchors.right: lengthSpec.left
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width/2
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width/2
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: UM.Theme.sizes.save_button_specs_icons.width
|
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||||
height: UM.Theme.sizes.save_button_specs_icons.height
|
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: width
|
sourceSize.height: width
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.getColor("text_subtext")
|
||||||
source: UM.Theme.icons.category_material;
|
source: UM.Theme.getIcon("category_material");
|
||||||
}
|
}
|
||||||
Label{
|
Label{
|
||||||
id: lengthSpec
|
id: lengthSpec
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font: UM.Theme.fonts.small
|
font: UM.Theme.getFont("small")
|
||||||
color: UM.Theme.colors.text_subtext
|
color: UM.Theme.getColor("text_subtext")
|
||||||
text: base.printMaterialAmount <= 0 ? catalog.i18nc("@label", "0.0 m") : catalog.i18nc("@label", "%1 m").arg(base.printMaterialAmount)
|
text: base.printMaterialAmount <= 0 ? catalog.i18nc("@label", "0.0 m") : catalog.i18nc("@label", "%1 m").arg(base.printMaterialAmount)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,18 +18,18 @@ Item{
|
|||||||
Rectangle{
|
Rectangle{
|
||||||
id: globalProfileRow
|
id: globalProfileRow
|
||||||
anchors.top: base.top
|
anchors.top: base.top
|
||||||
height: UM.Theme.sizes.sidebar_setup.height
|
height: UM.Theme.getSize("sidebar_setup").height
|
||||||
width: base.width
|
width: base.width
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
id: globalProfileLabel
|
id: globalProfileLabel
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: catalog.i18nc("@label","Profile:");
|
text: catalog.i18nc("@label","Profile:");
|
||||||
width: parent.width/100*45
|
width: parent.width/100*45
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -37,9 +37,9 @@ Item{
|
|||||||
id: globalProfileSelection
|
id: globalProfileSelection
|
||||||
text: UM.MachineManager.activeProfile
|
text: UM.MachineManager.activeProfile
|
||||||
width: parent.width/100*55
|
width: parent.width/100*55
|
||||||
height: UM.Theme.sizes.setting_control.height
|
height: UM.Theme.getSize("setting_control").height
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
tooltip: UM.MachineManager.activeProfile
|
tooltip: UM.MachineManager.activeProfile
|
||||||
style: UM.Theme.styles.sidebar_header_button
|
style: UM.Theme.styles.sidebar_header_button
|
||||||
@ -49,6 +49,7 @@ Item{
|
|||||||
id: profileSelectionMenu
|
id: profileSelectionMenu
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
|
id: profileSelectionInstantiator
|
||||||
model: UM.ProfilesModel { }
|
model: UM.ProfilesModel { }
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
@ -56,7 +57,17 @@ Item{
|
|||||||
checkable: true;
|
checkable: true;
|
||||||
checked: model.active;
|
checked: model.active;
|
||||||
exclusiveGroup: profileSelectionMenuGroup;
|
exclusiveGroup: profileSelectionMenuGroup;
|
||||||
onTriggered: UM.MachineManager.setActiveProfile(model.name)
|
onTriggered:
|
||||||
|
{
|
||||||
|
UM.MachineManager.setActiveProfile(model.name);
|
||||||
|
if (!model.active) {
|
||||||
|
//Selecting a profile was canceled; undo menu selection
|
||||||
|
profileSelectionInstantiator.model.setProperty(index, "active", false);
|
||||||
|
var activeProfileName = UM.MachineManager.activeProfile;
|
||||||
|
var activeProfileIndex = profileSelectionInstantiator.model.find("name", activeProfileName);
|
||||||
|
profileSelectionInstantiator.model.setProperty(activeProfileIndex, "active", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: profileSelectionMenu.insertItem(index, object)
|
onObjectAdded: profileSelectionMenu.insertItem(index, object)
|
||||||
onObjectRemoved: profileSelectionMenu.removeItem(object)
|
onObjectRemoved: profileSelectionMenu.removeItem(object)
|
||||||
|
@ -16,7 +16,7 @@ Rectangle {
|
|||||||
property int backendState: UM.Backend.state;
|
property int backendState: UM.Backend.state;
|
||||||
property bool activity: Printer.getPlatformActivity;
|
property bool activity: Printer.getPlatformActivity;
|
||||||
//Behavior on progress { NumberAnimation { duration: 250; } }
|
//Behavior on progress { NumberAnimation { duration: 250; } }
|
||||||
property int totalHeight: childrenRect.height + UM.Theme.sizes.default_margin.height
|
property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
|
||||||
property string fileBaseName
|
property string fileBaseName
|
||||||
property string statusText: {
|
property string statusText: {
|
||||||
if(base.backendState == 0) {
|
if(base.backendState == 0) {
|
||||||
@ -34,32 +34,32 @@ Rectangle {
|
|||||||
|
|
||||||
Label {
|
Label {
|
||||||
id: statusLabel
|
id: statusLabel
|
||||||
width: parent.width - 2 * UM.Theme.sizes.default_margin.width
|
width: parent.width - 2 * UM.Theme.getSize("default_margin").width
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
color: UM.Theme.colors.text
|
color: UM.Theme.getColor("text")
|
||||||
font: UM.Theme.fonts.large
|
font: UM.Theme.getFont("large")
|
||||||
text: statusText;
|
text: statusText;
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
id: progressBar
|
id: progressBar
|
||||||
width: parent.width - 2 * UM.Theme.sizes.default_margin.width
|
width: parent.width - 2 * UM.Theme.getSize("default_margin").width
|
||||||
height: UM.Theme.sizes.progressbar.height
|
height: UM.Theme.getSize("progressbar").height
|
||||||
anchors.top: statusLabel.bottom
|
anchors.top: statusLabel.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height/4
|
anchors.topMargin: UM.Theme.getSize("default_margin").height/4
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
radius: UM.Theme.sizes.progressbar_radius.width
|
radius: UM.Theme.getSize("progressbar_radius").width
|
||||||
color: UM.Theme.colors.progressbar_background
|
color: UM.Theme.getColor("progressbar_background")
|
||||||
|
|
||||||
Rectangle{
|
Rectangle{
|
||||||
width: Math.max(parent.width * base.progress)
|
width: Math.max(parent.width * base.progress)
|
||||||
height: parent.height
|
height: parent.height
|
||||||
color: UM.Theme.colors.progressbar_control
|
color: UM.Theme.getColor("progressbar_control")
|
||||||
radius: UM.Theme.sizes.progressbar_radius.width
|
radius: UM.Theme.getSize("progressbar_radius").width
|
||||||
visible: base.backendState == 1 ? true : false
|
visible: base.backendState == 1 ? true : false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,48 +69,48 @@ Rectangle {
|
|||||||
width: base.width
|
width: base.width
|
||||||
height: saveToButton.height
|
height: saveToButton.height
|
||||||
anchors.top: progressBar.bottom
|
anchors.top: progressBar.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
id: saveToButton
|
id: saveToButton
|
||||||
property int resizedWidth
|
|
||||||
x: base.width - saveToButton.resizedWidth - UM.Theme.sizes.default_margin.width - UM.Theme.sizes.save_button_save_to_button.height + UM.Theme.sizes.save_button_save_to_button.width
|
|
||||||
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
|
tooltip: UM.OutputDeviceManager.activeDeviceDescription;
|
||||||
enabled: base.backendState == 2 && base.activity == true
|
enabled: base.backendState == 2 && base.activity == true
|
||||||
height: UM.Theme.sizes.save_button_save_to_button.height
|
height: UM.Theme.getSize("save_button_save_to_button").height
|
||||||
width: 150
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
anchors.right: deviceSelectionMenu.left;
|
||||||
|
anchors.rightMargin: -3 * UM.Theme.getSize("default_lining").width;
|
||||||
|
|
||||||
text: UM.OutputDeviceManager.activeDeviceShortDescription
|
text: UM.OutputDeviceManager.activeDeviceShortDescription
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, Printer.jobName, true)
|
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, Printer.jobName, { "filter_by_machine": true })
|
||||||
}
|
}
|
||||||
|
|
||||||
style: ButtonStyle {
|
style: ButtonStyle {
|
||||||
background: Rectangle {
|
background:
|
||||||
//opacity: control.enabled ? 1.0 : 0.5
|
Rectangle
|
||||||
//Behavior on opacity { NumberAnimation { duration: 50; } }
|
{
|
||||||
border.width: UM.Theme.sizes.default_lining.width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
border.color: !control.enabled ? UM.Theme.colors.action_button_disabled_border :
|
border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active_border :
|
control.pressed ? UM.Theme.getColor("action_button_active_border") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered_border : UM.Theme.colors.action_button_border
|
control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border")
|
||||||
color: !control.enabled ? UM.Theme.colors.action_button_disabled :
|
color: !control.enabled ? UM.Theme.getColor("action_button_disabled") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active :
|
control.pressed ? UM.Theme.getColor("action_button_active") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered : UM.Theme.colors.action_button
|
control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
|
||||||
Behavior on color { ColorAnimation { duration: 50; } }
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
width: {
|
|
||||||
saveToButton.resizedWidth = actualLabel.width + (UM.Theme.sizes.default_margin.width * 2)
|
implicitWidth: actualLabel.contentWidth + (UM.Theme.getSize("default_margin").width * 2)
|
||||||
return saveToButton.resizedWidth
|
|
||||||
}
|
|
||||||
Label {
|
Label {
|
||||||
id: actualLabel
|
id: actualLabel
|
||||||
//Behavior on opacity { NumberAnimation { duration: 50; } }
|
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
color: !control.enabled ? UM.Theme.colors.action_button_disabled_text :
|
color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active_text :
|
control.pressed ? UM.Theme.getColor("action_button_active_text") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered_text : UM.Theme.colors.action_button_text
|
control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text")
|
||||||
font: UM.Theme.fonts.action_button
|
font: UM.Theme.getFont("action_button")
|
||||||
text: control.text;
|
text: control.text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -123,39 +123,41 @@ Rectangle {
|
|||||||
tooltip: catalog.i18nc("@info:tooltip","Select the active output device");
|
tooltip: catalog.i18nc("@info:tooltip","Select the active output device");
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
|
||||||
width: UM.Theme.sizes.save_button_save_to_button.height
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
height: UM.Theme.sizes.save_button_save_to_button.height
|
width: UM.Theme.getSize("save_button_save_to_button").height
|
||||||
|
height: UM.Theme.getSize("save_button_save_to_button").height
|
||||||
enabled: base.backendState == 2 && base.activity == true
|
enabled: base.backendState == 2 && base.activity == true
|
||||||
|
|
||||||
//iconSource: UM.Theme.icons[UM.OutputDeviceManager.activeDeviceIconName];
|
//iconSource: UM.Theme.icons[UM.OutputDeviceManager.activeDeviceIconName];
|
||||||
|
|
||||||
style: ButtonStyle {
|
style: ButtonStyle {
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
id: deviceSelectionIcon
|
id: deviceSelectionIcon
|
||||||
border.width: UM.Theme.sizes.default_lining.width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
border.color: !control.enabled ? UM.Theme.colors.action_button_disabled_border :
|
border.color: !control.enabled ? UM.Theme.getColor("action_button_disabled_border") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active_border :
|
control.pressed ? UM.Theme.getColor("action_button_active_border") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered_border : UM.Theme.colors.action_button_border
|
control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border")
|
||||||
color: !control.enabled ? UM.Theme.colors.action_button_disabled :
|
color: !control.enabled ? UM.Theme.getColor("action_button_disabled") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active :
|
control.pressed ? UM.Theme.getColor("action_button_active") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered : UM.Theme.colors.action_button
|
control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
|
||||||
Behavior on color { ColorAnimation { duration: 50; } }
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.save_button_text_margin.width / 2;
|
anchors.leftMargin: UM.Theme.getSize("save_button_text_margin").width / 2;
|
||||||
width: parent.height
|
width: parent.height
|
||||||
height: parent.height
|
height: parent.height
|
||||||
|
|
||||||
UM.RecolorImage {
|
UM.RecolorImage {
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
width: UM.Theme.sizes.standard_arrow.width
|
width: UM.Theme.getSize("standard_arrow").width
|
||||||
height: UM.Theme.sizes.standard_arrow.height
|
height: UM.Theme.getSize("standard_arrow").height
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: height
|
sourceSize.height: height
|
||||||
color: !control.enabled ? UM.Theme.colors.action_button_disabled_text :
|
color: !control.enabled ? UM.Theme.getColor("action_button_disabled_text") :
|
||||||
control.pressed ? UM.Theme.colors.action_button_active_text :
|
control.pressed ? UM.Theme.getColor("action_button_active_text") :
|
||||||
control.hovered ? UM.Theme.colors.action_button_hovered_text : UM.Theme.colors.action_button_text;
|
control.hovered ? UM.Theme.getColor("action_button_hovered_text") : UM.Theme.getColor("action_button_text");
|
||||||
source: UM.Theme.icons.arrow_bottom;
|
source: UM.Theme.getIcon("arrow_bottom");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
label: Label{ }
|
label: Label{ }
|
||||||
|
@ -16,9 +16,10 @@ Rectangle
|
|||||||
property Action configureMachinesAction;
|
property Action configureMachinesAction;
|
||||||
property Action addProfileAction;
|
property Action addProfileAction;
|
||||||
property Action manageProfilesAction;
|
property Action manageProfilesAction;
|
||||||
|
property Action configureSettingsAction;
|
||||||
property int currentModeIndex;
|
property int currentModeIndex;
|
||||||
|
|
||||||
color: UM.Theme.colors.sidebar;
|
color: UM.Theme.getColor("sidebar");
|
||||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||||
|
|
||||||
function showTooltip(item, position, text)
|
function showTooltip(item, position, text)
|
||||||
@ -56,10 +57,10 @@ Rectangle
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: headerSeparator
|
id: headerSeparator
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: UM.Theme.sizes.sidebar_lining.height
|
height: UM.Theme.getSize("sidebar_lining").height
|
||||||
color: UM.Theme.colors.sidebar_lining
|
color: UM.Theme.getColor("sidebar_lining")
|
||||||
anchors.top: header.bottom
|
anchors.top: header.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileSetup {
|
ProfileSetup {
|
||||||
@ -67,7 +68,7 @@ Rectangle
|
|||||||
addProfileAction: base.addProfileAction
|
addProfileAction: base.addProfileAction
|
||||||
manageProfilesAction: base.manageProfilesAction
|
manageProfilesAction: base.manageProfilesAction
|
||||||
anchors.top: settingsModeSelection.bottom
|
anchors.top: settingsModeSelection.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: totalHeightProfileSetup
|
height: totalHeightProfileSetup
|
||||||
}
|
}
|
||||||
@ -94,22 +95,22 @@ Rectangle
|
|||||||
id: settingsModeLabel
|
id: settingsModeLabel
|
||||||
text: catalog.i18nc("@label:listbox","Setup");
|
text: catalog.i18nc("@label:listbox","Setup");
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
anchors.top: headerSeparator.bottom
|
anchors.top: headerSeparator.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
width: parent.width/100*45
|
width: parent.width/100*45
|
||||||
font: UM.Theme.fonts.large;
|
font: UM.Theme.getFont("large");
|
||||||
color: UM.Theme.colors.text
|
color: UM.Theme.getColor("text")
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: settingsModeSelection
|
id: settingsModeSelection
|
||||||
width: parent.width/100*55
|
width: parent.width/100*55
|
||||||
height: UM.Theme.sizes.sidebar_header_mode_toggle.height
|
height: UM.Theme.getSize("sidebar_header_mode_toggle").height
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.top: headerSeparator.bottom
|
anchors.top: headerSeparator.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
Component{
|
Component{
|
||||||
id: wizardDelegate
|
id: wizardDelegate
|
||||||
Button {
|
Button {
|
||||||
@ -126,20 +127,20 @@ Rectangle
|
|||||||
|
|
||||||
style: ButtonStyle {
|
style: ButtonStyle {
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
border.width: UM.Theme.sizes.default_lining.width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
border.color: control.checked ? UM.Theme.colors.toggle_checked_border :
|
border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
|
||||||
control.pressed ? UM.Theme.colors.toggle_active_border :
|
control.pressed ? UM.Theme.getColor("toggle_active_border") :
|
||||||
control.hovered ? UM.Theme.colors.toggle_hovered_border : UM.Theme.colors.toggle_unchecked_border
|
control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
|
||||||
color: control.checked ? UM.Theme.colors.toggle_checked :
|
color: control.checked ? UM.Theme.getColor("toggle_checked") :
|
||||||
control.pressed ? UM.Theme.colors.toggle_active :
|
control.pressed ? UM.Theme.getColor("toggle_active") :
|
||||||
control.hovered ? UM.Theme.colors.toggle_hovered : UM.Theme.colors.toggle_unchecked
|
control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
|
||||||
Behavior on color { ColorAnimation { duration: 50; } }
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
Label {
|
Label {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
color: control.checked ? UM.Theme.colors.toggle_checked_text :
|
color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
|
||||||
control.pressed ? UM.Theme.colors.toggle_active_text :
|
control.pressed ? UM.Theme.getColor("toggle_active_text") :
|
||||||
control.hovered ? UM.Theme.colors.toggle_hovered_text : UM.Theme.colors.toggle_unchecked_text
|
control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
|
||||||
font: UM.Theme.fonts.default
|
font: UM.Theme.getFont("default")
|
||||||
text: control.text;
|
text: control.text;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,7 +166,7 @@ Rectangle
|
|||||||
|
|
||||||
anchors.bottom: footerSeparator.top
|
anchors.bottom: footerSeparator.top
|
||||||
anchors.top: profileItem.bottom
|
anchors.top: profileItem.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: base.left
|
anchors.left: base.left
|
||||||
anchors.right: base.right
|
anchors.right: base.right
|
||||||
|
|
||||||
@ -201,10 +202,10 @@ Rectangle
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: footerSeparator
|
id: footerSeparator
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: UM.Theme.sizes.sidebar_lining.height
|
height: UM.Theme.getSize("sidebar_lining").height
|
||||||
color: UM.Theme.colors.sidebar_lining
|
color: UM.Theme.getColor("sidebar_lining")
|
||||||
anchors.bottom: saveButton.top
|
anchors.bottom: saveButton.top
|
||||||
anchors.bottomMargin: UM.Theme.sizes.default_margin.height
|
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
}
|
}
|
||||||
|
|
||||||
SaveButton
|
SaveButton
|
||||||
@ -239,7 +240,7 @@ Rectangle
|
|||||||
id: sidebarAdvanced;
|
id: sidebarAdvanced;
|
||||||
visible: false;
|
visible: false;
|
||||||
|
|
||||||
configureSettings: base.configureMachinesAction;
|
configureSettings: base.configureSettingsAction;
|
||||||
onShowTooltip: base.showTooltip(item, location, text)
|
onShowTooltip: base.showTooltip(item, location, text)
|
||||||
onHideTooltip: base.hideTooltip()
|
onHideTooltip: base.hideTooltip()
|
||||||
}
|
}
|
||||||
|
@ -21,27 +21,27 @@ Item
|
|||||||
width: base.width
|
width: base.width
|
||||||
height: 0
|
height: 0
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
color: UM.Theme.colors.sidebar_header_bar
|
color: UM.Theme.getColor("sidebar_header_bar")
|
||||||
}
|
}
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
id: printjobTabLabel
|
id: printjobTabLabel
|
||||||
text: catalog.i18nc("@label:listbox","Print Job");
|
text: catalog.i18nc("@label:listbox","Print Job");
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
anchors.top: sidebarTabRow.bottom
|
anchors.top: sidebarTabRow.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
width: parent.width/100*45
|
width: parent.width/100*45
|
||||||
font: UM.Theme.fonts.large;
|
font: UM.Theme.getFont("large");
|
||||||
color: UM.Theme.colors.text
|
color: UM.Theme.getColor("text")
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: machineSelectionRow
|
id: machineSelectionRow
|
||||||
width: base.width
|
width: base.width
|
||||||
height: UM.Theme.sizes.sidebar_setup.height
|
height: UM.Theme.getSize("sidebar_setup").height
|
||||||
anchors.top: printjobTabLabel.bottom
|
anchors.top: printjobTabLabel.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
@ -49,20 +49,20 @@ Item
|
|||||||
//: Machine selection label
|
//: Machine selection label
|
||||||
text: catalog.i18nc("@label:listbox","Printer:");
|
text: catalog.i18nc("@label:listbox","Printer:");
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolButton {
|
ToolButton {
|
||||||
id: machineSelection
|
id: machineSelection
|
||||||
text: UM.MachineManager.activeMachineInstance;
|
text: UM.MachineManager.activeMachineInstance;
|
||||||
width: parent.width/100*55
|
width: parent.width/100*55
|
||||||
height: UM.Theme.sizes.setting_control.height
|
height: UM.Theme.getSize("setting_control").height
|
||||||
tooltip: UM.MachineManager.activeMachineInstance;
|
tooltip: UM.MachineManager.activeMachineInstance;
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
style: UM.Theme.styles.sidebar_header_button
|
style: UM.Theme.styles.sidebar_header_button
|
||||||
|
|
||||||
@ -97,30 +97,30 @@ Item
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: variantRow
|
id: variantRow
|
||||||
anchors.top: machineSelectionRow.bottom
|
anchors.top: machineSelectionRow.bottom
|
||||||
anchors.topMargin: UM.MachineManager.hasVariants ? UM.Theme.sizes.default_margin.height : 0
|
anchors.topMargin: UM.MachineManager.hasVariants ? UM.Theme.getSize("default_margin").height : 0
|
||||||
width: base.width
|
width: base.width
|
||||||
height: UM.MachineManager.hasVariants ? UM.Theme.sizes.sidebar_setup.height : 0
|
height: UM.MachineManager.hasVariants ? UM.Theme.getSize("sidebar_setup").height : 0
|
||||||
visible: UM.MachineManager.hasVariants
|
visible: UM.MachineManager.hasVariants
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
id: variantLabel
|
id: variantLabel
|
||||||
text: catalog.i18nc("@label","Nozzle:");
|
text: catalog.i18nc("@label","Nozzle:");
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: parent.width/100*45
|
width: parent.width/100*45
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolButton {
|
ToolButton {
|
||||||
id: variantSelection
|
id: variantSelection
|
||||||
text: UM.MachineManager.activeMachineVariant
|
text: UM.MachineManager.activeMachineVariant
|
||||||
width: parent.width/100*55
|
width: parent.width/100*55
|
||||||
height: UM.Theme.sizes.setting_control.height
|
height: UM.Theme.getSize("setting_control").height
|
||||||
tooltip: UM.MachineManager.activeMachineVariant;
|
tooltip: UM.MachineManager.activeMachineVariant;
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
style: UM.Theme.styles.sidebar_header_button
|
style: UM.Theme.styles.sidebar_header_button
|
||||||
|
|
||||||
@ -129,6 +129,7 @@ Item
|
|||||||
id: variantsSelectionMenu
|
id: variantsSelectionMenu
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
|
id: variantSelectionInstantiator
|
||||||
model: UM.MachineVariantsModel { id: variantsModel }
|
model: UM.MachineVariantsModel { id: variantsModel }
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
@ -136,7 +137,17 @@ Item
|
|||||||
checkable: true;
|
checkable: true;
|
||||||
checked: model.active;
|
checked: model.active;
|
||||||
exclusiveGroup: variantSelectionMenuGroup;
|
exclusiveGroup: variantSelectionMenuGroup;
|
||||||
onTriggered: UM.MachineManager.setActiveMachineVariant(variantsModel.getItem(index).name)
|
onTriggered:
|
||||||
|
{
|
||||||
|
UM.MachineManager.setActiveMachineVariant(variantsModel.getItem(index).name);
|
||||||
|
if (typeof(model) !== "undefined" && !model.active) {
|
||||||
|
//Selecting a variant was canceled; undo menu selection
|
||||||
|
variantSelectionInstantiator.model.setProperty(index, "active", false);
|
||||||
|
var activeMachineVariantName = UM.MachineManager.activeMachineVariant;
|
||||||
|
var activeMachineVariantIndex = variantSelectionInstantiator.model.find("name", activeMachineVariantName);
|
||||||
|
variantSelectionInstantiator.model.setProperty(activeMachineVariantIndex, "active", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: variantsSelectionMenu.insertItem(index, object)
|
onObjectAdded: variantsSelectionMenu.insertItem(index, object)
|
||||||
onObjectRemoved: variantsSelectionMenu.removeItem(object)
|
onObjectRemoved: variantsSelectionMenu.removeItem(object)
|
||||||
@ -150,30 +161,30 @@ Item
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: materialSelectionRow
|
id: materialSelectionRow
|
||||||
anchors.top: variantRow.bottom
|
anchors.top: variantRow.bottom
|
||||||
anchors.topMargin: UM.MachineManager.hasMaterials ? UM.Theme.sizes.default_margin.height : 0
|
anchors.topMargin: UM.MachineManager.hasMaterials ? UM.Theme.getSize("default_margin").height : 0
|
||||||
width: base.width
|
width: base.width
|
||||||
height: UM.MachineManager.hasMaterials ? UM.Theme.sizes.sidebar_setup.height : 0
|
height: UM.MachineManager.hasMaterials ? UM.Theme.getSize("sidebar_setup").height : 0
|
||||||
visible: UM.MachineManager.hasMaterials
|
visible: UM.MachineManager.hasMaterials
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
id: materialSelectionLabel
|
id: materialSelectionLabel
|
||||||
text: catalog.i18nc("@label","Material:");
|
text: catalog.i18nc("@label","Material:");
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
width: parent.width/100*45
|
width: parent.width/100*45
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolButton {
|
ToolButton {
|
||||||
id: materialSelection
|
id: materialSelection
|
||||||
text: UM.MachineManager.activeMaterial
|
text: UM.MachineManager.activeMaterial
|
||||||
width: parent.width/100*55
|
width: parent.width/100*55
|
||||||
height: UM.Theme.sizes.setting_control.height
|
height: UM.Theme.getSize("setting_control").height
|
||||||
tooltip: UM.MachineManager.activeMaterial;
|
tooltip: UM.MachineManager.activeMaterial;
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.rightMargin: UM.Theme.sizes.default_margin.width
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
style: UM.Theme.styles.sidebar_header_button
|
style: UM.Theme.styles.sidebar_header_button
|
||||||
|
|
||||||
@ -182,6 +193,7 @@ Item
|
|||||||
id: materialSelectionMenu
|
id: materialSelectionMenu
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
|
id: materialSelectionInstantiator
|
||||||
model: UM.MachineMaterialsModel { id: machineMaterialsModel }
|
model: UM.MachineMaterialsModel { id: machineMaterialsModel }
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
@ -189,7 +201,17 @@ Item
|
|||||||
checkable: true;
|
checkable: true;
|
||||||
checked: model.active;
|
checked: model.active;
|
||||||
exclusiveGroup: materialSelectionMenuGroup;
|
exclusiveGroup: materialSelectionMenuGroup;
|
||||||
onTriggered: UM.MachineManager.setActiveMaterial(machineMaterialsModel.getItem(index).name)
|
onTriggered:
|
||||||
|
{
|
||||||
|
UM.MachineManager.setActiveMaterial(machineMaterialsModel.getItem(index).name);
|
||||||
|
if (typeof(model) !== "undefined" && !model.active) {
|
||||||
|
//Selecting a material was canceled; undo menu selection
|
||||||
|
materialSelectionInstantiator.model.setProperty(index, "active", false);
|
||||||
|
var activeMaterialName = UM.MachineManager.activeMaterial;
|
||||||
|
var activeMaterialIndex = materialSelectionInstantiator.model.find("name", activeMaterialName);
|
||||||
|
materialSelectionInstantiator.model.setProperty(activeMaterialIndex, "active", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: materialSelectionMenu.insertItem(index, object)
|
onObjectAdded: materialSelectionMenu.insertItem(index, object)
|
||||||
onObjectRemoved: materialSelectionMenu.removeItem(object)
|
onObjectRemoved: materialSelectionMenu.removeItem(object)
|
||||||
|
@ -27,19 +27,19 @@ Item
|
|||||||
id: infillCellLeft
|
id: infillCellLeft
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
width: base.width/100* 35 - UM.Theme.sizes.default_margin.width
|
width: base.width/100* 35 - UM.Theme.getSize("default_margin").width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
id: infillLabel
|
id: infillLabel
|
||||||
//: Infill selection label
|
//: Infill selection label
|
||||||
text: catalog.i18nc("@label","Infill:");
|
text: catalog.i18nc("@label","Infill:");
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Item
|
|||||||
|
|
||||||
height: childrenRect.height;
|
height: childrenRect.height;
|
||||||
width: base.width / 100 * 65
|
width: base.width / 100 * 65
|
||||||
spacing: UM.Theme.sizes.default_margin.width
|
spacing: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
anchors.left: infillCellLeft.right
|
anchors.left: infillCellLeft.right
|
||||||
anchors.top: infillCellLeft.top
|
anchors.top: infillCellLeft.top
|
||||||
@ -81,23 +81,32 @@ Item
|
|||||||
Rectangle{
|
Rectangle{
|
||||||
id: infillIconLining
|
id: infillIconLining
|
||||||
|
|
||||||
width: (infillCellRight.width - 3 * UM.Theme.sizes.default_margin.width) / 4;
|
width: (infillCellRight.width - 3 * UM.Theme.getSize("default_margin").width) / 4;
|
||||||
height: width
|
height: width
|
||||||
|
|
||||||
border.color: (infillListView.activeIndex == index) ? UM.Theme.colors.setting_control_selected :
|
border.color: {
|
||||||
(mousearea.containsMouse ? UM.Theme.colors.setting_control_border_highlight : UM.Theme.colors.setting_control_border)
|
if(infillListView.activeIndex == index)
|
||||||
border.width: UM.Theme.sizes.default_lining.width
|
{
|
||||||
color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_selected : "transparent"
|
return UM.Theme.getColor("setting_control_selected")
|
||||||
|
}
|
||||||
|
else if(mousearea.containsMouse)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("setting_control_border_highlight")
|
||||||
|
}
|
||||||
|
return UM.Theme.getColor("setting_control_border")
|
||||||
|
}
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
color: infillListView.activeIndex == index ? UM.Theme.getColor("setting_control_selected") : "transparent"
|
||||||
|
|
||||||
UM.RecolorImage {
|
UM.RecolorImage {
|
||||||
id: infillIcon
|
id: infillIcon
|
||||||
anchors.fill: parent;
|
anchors.fill: parent;
|
||||||
anchors.margins: UM.Theme.sizes.infill_button_margin.width
|
anchors.margins: UM.Theme.getSize("infill_button_margin").width
|
||||||
|
|
||||||
sourceSize.width: width
|
sourceSize.width: width
|
||||||
sourceSize.height: width
|
sourceSize.height: width
|
||||||
source: UM.Theme.icons[model.icon];
|
source: UM.Theme.getIcon(model.icon);
|
||||||
color: (infillListView.activeIndex == index) ? UM.Theme.colors.text_white : UM.Theme.colors.text
|
color: (infillListView.activeIndex == index) ? UM.Theme.getColor("text_white") : UM.Theme.getColor("text")
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
@ -107,7 +116,6 @@ Item
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
if (infillListView.activeIndex != index)
|
if (infillListView.activeIndex != index)
|
||||||
{
|
{
|
||||||
infillListView.activeIndex = index
|
|
||||||
UM.MachineManager.setSettingValue("infill_sparse_density", model.percentage)
|
UM.MachineManager.setSettingValue("infill_sparse_density", model.percentage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -123,7 +131,7 @@ Item
|
|||||||
id: infillLabel
|
id: infillLabel
|
||||||
anchors.top: infillIconLining.bottom
|
anchors.top: infillIconLining.bottom
|
||||||
anchors.horizontalCenter: infillIconLining.horizontalCenter
|
anchors.horizontalCenter: infillIconLining.horizontalCenter
|
||||||
color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_text : UM.Theme.colors.setting_control_border
|
color: infillListView.activeIndex == index ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_border")
|
||||||
text: name
|
text: name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,25 +181,25 @@ Item
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: helpersCellLeft
|
id: helpersCellLeft
|
||||||
anchors.top: infillCellRight.bottom
|
anchors.top: infillCellRight.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
width: parent.width/100*35 - UM.Theme.sizes.default_margin.width
|
width: parent.width/100*35 - UM.Theme.getSize("default_margin").width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
|
|
||||||
Label{
|
Label{
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: UM.Theme.sizes.default_margin.width
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
//: Helpers selection label
|
//: Helpers selection label
|
||||||
text: catalog.i18nc("@label:listbox","Helpers:");
|
text: catalog.i18nc("@label:listbox","Helpers:");
|
||||||
font: UM.Theme.fonts.default;
|
font: UM.Theme.getFont("default");
|
||||||
color: UM.Theme.colors.text;
|
color: UM.Theme.getColor("text");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: helpersCellRight
|
id: helpersCellRight
|
||||||
anchors.top: helpersCellLeft.top
|
anchors.top: helpersCellLeft.top
|
||||||
anchors.left: helpersCellLeft.right
|
anchors.left: helpersCellLeft.right
|
||||||
width: parent.width/100*65 - UM.Theme.sizes.default_margin.width
|
width: parent.width/100*65 - UM.Theme.getSize("default_margin").width
|
||||||
height: childrenRect.height
|
height: childrenRect.height
|
||||||
|
|
||||||
CheckBox{
|
CheckBox{
|
||||||
@ -211,8 +219,7 @@ Item
|
|||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
parent.checked = !parent.checked
|
UM.MachineManager.setSettingValue("adhesion_type", !parent.checked?"brim":"skirt")
|
||||||
UM.MachineManager.setSettingValue("adhesion_type", parent.checked?"brim":"skirt")
|
|
||||||
}
|
}
|
||||||
onEntered:
|
onEntered:
|
||||||
{
|
{
|
||||||
@ -232,7 +239,7 @@ Item
|
|||||||
property bool hovered_ex: false
|
property bool hovered_ex: false
|
||||||
|
|
||||||
anchors.top: brimCheckBox.bottom
|
anchors.top: brimCheckBox.bottom
|
||||||
anchors.topMargin: UM.Theme.sizes.default_margin.height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
|
|
||||||
//: Setting enable support checkbox
|
//: Setting enable support checkbox
|
||||||
@ -245,8 +252,7 @@ Item
|
|||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
parent.checked = !parent.checked
|
UM.MachineManager.setSettingValue("support_enable", !parent.checked)
|
||||||
UM.MachineManager.setSettingValue("support_enable", parent.checked)
|
|
||||||
}
|
}
|
||||||
onEntered:
|
onEntered:
|
||||||
{
|
{
|
||||||
|
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