mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-07-25 08:24:26 +08:00
Merge branch 'feature_wall_wipe' of github.com:Ultimaker/Cura into feature_wall_wipe
This commit is contained in:
commit
41595f8025
7
.gitignore
vendored
7
.gitignore
vendored
@ -26,3 +26,10 @@ LC_MESSAGES
|
||||
|
||||
# Debian packaging
|
||||
debian*
|
||||
|
||||
#Externally located plug-ins.
|
||||
plugins/Doodle3D-cura-plugin
|
||||
plugins/GodMode
|
||||
plugins/PostProcessingPlugin
|
||||
plugins/UM3NetworkPrinting
|
||||
plugins/X3GWriter
|
@ -43,6 +43,8 @@ if(NOT APPLE AND NOT WIN32)
|
||||
DESTINATION lib/python${PYTHON_VERSION_MAJOR}/dist-packages/cura)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/cura.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
||||
install(FILES cura.appdata.xml
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/appdata)
|
||||
install(FILES cura.sharedmimeinfo
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
|
||||
RENAME cura.xml )
|
||||
|
31
cura.appdata.xml
Normal file
31
cura.appdata.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2016 Richard Hughes <richard@hughsie.com> -->
|
||||
<component type="desktop">
|
||||
<id>cura.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>AGPL-3.0 and CC-BY-SA-4.0</project_license>
|
||||
<name>Cura</name>
|
||||
<summary>The world's most advanced 3d printer software</summary>
|
||||
<description>
|
||||
<p>
|
||||
Cura creates a seamless integration between hardware, software and
|
||||
materials for the best 3D printing experience around.
|
||||
Cura supports the 3MF, OBJ and STL file formats and is available on
|
||||
Windows, Mac and Linux.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Novices can start printing right away</li>
|
||||
<li>Experts are able to customize 200 settings to achieve the best results</li>
|
||||
<li>Optimized profiles for Ultimaker materials</li>
|
||||
<li>Supported by a global network of Ultimaker certified service partners</li>
|
||||
<li>Print multiple objects at once with different settings for each object</li>
|
||||
<li>Cura supports STL, 3MF and OBJ file formats</li>
|
||||
<li>Open source and completely free</li>
|
||||
</ul>
|
||||
</description>
|
||||
<screenshots>
|
||||
<screenshot type="default" width="1280" height="720">http://software.ultimaker.com/Cura.png</screenshot>
|
||||
</screenshots>
|
||||
<url type="homepage">https://ultimaker.com/en/products/cura-software</url>
|
||||
<translation type="gettext">Cura</translation>
|
||||
</component>
|
@ -5,6 +5,7 @@ Name[de]=Cura
|
||||
GenericName=3D Printing Software
|
||||
GenericName[de]=3D-Druck-Software
|
||||
Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great.
|
||||
Comment[de]=Cura wandelt 3D-Modelle in Pfade für einen 3D-Drucker um. Es bereitet Ihren Druck für maximale Genauigkeit, minimale Druckzeit und guter Zuverlässigkeit mit vielen zusätzlichen Funktionen vor, damit Ihr Druck großartig wird.
|
||||
Exec=@CMAKE_INSTALL_FULL_BINDIR@/cura %F
|
||||
TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura
|
||||
Icon=@CMAKE_INSTALL_FULL_DATADIR@/cura/resources/images/cura-icon.png
|
||||
|
@ -33,6 +33,9 @@ PRIME_CLEARANCE = 1.5
|
||||
## Build volume is a special kind of node that is responsible for rendering the printable area & disallowed areas.
|
||||
class BuildVolume(SceneNode):
|
||||
VolumeOutlineColor = Color(12, 169, 227, 255)
|
||||
XAxisColor = Color(255, 0, 0, 255)
|
||||
YAxisColor = Color(0, 0, 255, 255)
|
||||
ZAxisColor = Color(0, 255, 0, 255)
|
||||
|
||||
raftThicknessChanged = Signal()
|
||||
|
||||
@ -45,6 +48,10 @@ class BuildVolume(SceneNode):
|
||||
|
||||
self._shader = None
|
||||
|
||||
self._origin_mesh = None
|
||||
self._origin_line_length = 20
|
||||
self._origin_line_width = 0.5
|
||||
|
||||
self._grid_mesh = None
|
||||
self._grid_shader = None
|
||||
|
||||
@ -128,6 +135,7 @@ class BuildVolume(SceneNode):
|
||||
self._grid_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "grid.shader"))
|
||||
|
||||
renderer.queueNode(self, mode = RenderBatch.RenderMode.Lines)
|
||||
renderer.queueNode(self, mesh = self._origin_mesh)
|
||||
renderer.queueNode(self, mesh = self._grid_mesh, shader = self._grid_shader, backface_cull = True)
|
||||
if self._disallowed_area_mesh:
|
||||
renderer.queueNode(self, mesh = self._disallowed_area_mesh, shader = self._shader, transparent = True, backface_cull = True, sort = -9)
|
||||
@ -170,6 +178,37 @@ class BuildVolume(SceneNode):
|
||||
|
||||
self.setMeshData(mb.build())
|
||||
|
||||
mb = MeshBuilder()
|
||||
|
||||
# Indication of the machine origin
|
||||
if self._global_container_stack.getProperty("machine_center_is_zero", "value"):
|
||||
origin = (Vector(min_w, min_h, min_d) + Vector(max_w, min_h, max_d)) / 2
|
||||
else:
|
||||
origin = Vector(min_w, min_h, max_d)
|
||||
|
||||
mb.addCube(
|
||||
width = self._origin_line_length,
|
||||
height = self._origin_line_width,
|
||||
depth = self._origin_line_width,
|
||||
center = origin + Vector(self._origin_line_length / 2, 0, 0),
|
||||
color = self.XAxisColor
|
||||
)
|
||||
mb.addCube(
|
||||
width = self._origin_line_width,
|
||||
height = self._origin_line_length,
|
||||
depth = self._origin_line_width,
|
||||
center = origin + Vector(0, self._origin_line_length / 2, 0),
|
||||
color = self.YAxisColor
|
||||
)
|
||||
mb.addCube(
|
||||
width = self._origin_line_width,
|
||||
height = self._origin_line_width,
|
||||
depth = self._origin_line_length,
|
||||
center = origin - Vector(0, 0, self._origin_line_length / 2),
|
||||
color = self.ZAxisColor
|
||||
)
|
||||
self._origin_mesh = mb.build()
|
||||
|
||||
mb = MeshBuilder()
|
||||
mb.addQuad(
|
||||
Vector(min_w, min_h - 0.2, min_d),
|
||||
@ -481,6 +520,15 @@ class BuildVolume(SceneNode):
|
||||
def _getSettingFromAdhesionExtruder(self, setting_key, property = "value"):
|
||||
return self._getSettingFromExtruder(setting_key, "adhesion_extruder_nr", property)
|
||||
|
||||
## Private convenience function to get a setting from every extruder.
|
||||
#
|
||||
# For single extrusion machines, this gets the setting from the global
|
||||
# stack.
|
||||
#
|
||||
# \return A sequence of setting values, one for each extruder.
|
||||
def _getSettingFromAllExtruders(self, setting_key, property = "value"):
|
||||
return ExtruderManager.getInstance().getAllExtruderSettings(setting_key, property)
|
||||
|
||||
## Private convenience function to get a setting from the support infill
|
||||
# extruder.
|
||||
#
|
||||
@ -553,7 +601,7 @@ class BuildVolume(SceneNode):
|
||||
raise Exception("Unknown bed adhesion type. Did you forget to update the build volume calculations for your new bed adhesion type?")
|
||||
|
||||
support_expansion = 0
|
||||
if self._getSettingFromSupportInfillExtruder("support_offset"):
|
||||
if self._getSettingFromSupportInfillExtruder("support_offset") and self._global_container_stack.getProperty("support_enable", "value"):
|
||||
support_expansion += self._getSettingFromSupportInfillExtruder("support_offset")
|
||||
|
||||
farthest_shield_distance = 0
|
||||
@ -563,10 +611,12 @@ class BuildVolume(SceneNode):
|
||||
farthest_shield_distance = max(farthest_shield_distance, container_stack.getProperty("ooze_shield_dist", "value"))
|
||||
|
||||
move_from_wall_radius = 0 # Moves that start from outer wall.
|
||||
if self._getSettingFromAdhesionExtruder("infill_wipe_dist"):
|
||||
move_from_wall_radius = max(move_from_wall_radius, self._getSettingFromAdhesionExtruder("infill_wipe_dist"))
|
||||
if self._getSettingFromAdhesionExtruder("travel_avoid_distance"):
|
||||
move_from_wall_radius = max(move_from_wall_radius, self._getSettingFromAdhesionExtruder("travel_avoid_distance"))
|
||||
move_from_wall_radius = max(move_from_wall_radius, max(self._getSettingFromAllExtruders("infill_wipe_dist")))
|
||||
avoid_enabled_per_extruder = self._getSettingFromAllExtruders(("travel_avoid_other_parts"))
|
||||
avoid_distance_per_extruder = self._getSettingFromAllExtruders("travel_avoid_distance")
|
||||
for index, avoid_other_parts_enabled in enumerate(avoid_enabled_per_extruder): #For each extruder (or just global).
|
||||
if avoid_other_parts_enabled:
|
||||
move_from_wall_radius = max(move_from_wall_radius, avoid_distance_per_extruder[index]) #Index of the same extruder.
|
||||
|
||||
#Now combine our different pieces of data to get the final border size.
|
||||
#Support expansion is added to the bed adhesion, since the bed adhesion goes around support.
|
||||
@ -582,4 +632,4 @@ class BuildVolume(SceneNode):
|
||||
_prime_settings = ["extruder_prime_pos_x", "extruder_prime_pos_y", "extruder_prime_pos_z"]
|
||||
_tower_settings = ["prime_tower_enable", "prime_tower_size", "prime_tower_position_x", "prime_tower_position_y"]
|
||||
_ooze_shield_settings = ["ooze_shield_enabled", "ooze_shield_dist"]
|
||||
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset"]
|
||||
_distance_settings = ["infill_wipe_dist", "travel_avoid_distance", "support_offset", "support_enable", "travel_avoid_other_parts"]
|
||||
|
@ -382,7 +382,7 @@ class CuraApplication(QtApplication):
|
||||
|
||||
if path:
|
||||
instance.setPath(path)
|
||||
with SaveFile(path, "wt", -1, "utf-8") as f:
|
||||
with SaveFile(path, "wt") as f:
|
||||
f.write(data)
|
||||
|
||||
for stack in ContainerRegistry.getInstance().findContainerStacks():
|
||||
@ -409,7 +409,7 @@ class CuraApplication(QtApplication):
|
||||
path = Resources.getStoragePath(self.ResourceTypes.ExtruderStack, file_name)
|
||||
if path:
|
||||
stack.setPath(path)
|
||||
with SaveFile(path, "wt", -1, "utf-8") as f:
|
||||
with SaveFile(path, "wt") as f:
|
||||
f.write(data)
|
||||
|
||||
|
||||
@ -549,11 +549,12 @@ class CuraApplication(QtApplication):
|
||||
qmlRegisterType(cura.Settings.ExtrudersModel, "Cura", 1, 0, "ExtrudersModel")
|
||||
|
||||
qmlRegisterType(cura.Settings.ContainerSettingsModel, "Cura", 1, 0, "ContainerSettingsModel")
|
||||
qmlRegisterType(cura.Settings.ProfilesModel, "Cura", 1, 0, "ProfilesModel")
|
||||
qmlRegisterSingletonType(cura.Settings.ProfilesModel, "Cura", 1, 0, "ProfilesModel", cura.Settings.ProfilesModel.createProfilesModel)
|
||||
qmlRegisterType(cura.Settings.QualityAndUserProfilesModel, "Cura", 1, 0, "QualityAndUserProfilesModel")
|
||||
qmlRegisterType(cura.Settings.UserProfilesModel, "Cura", 1, 0, "UserProfilesModel")
|
||||
qmlRegisterType(cura.Settings.MaterialSettingsVisibilityHandler, "Cura", 1, 0, "MaterialSettingsVisibilityHandler")
|
||||
qmlRegisterType(cura.Settings.QualitySettingsModel, "Cura", 1, 0, "QualitySettingsModel")
|
||||
qmlRegisterType(cura.Settings.MachineNameValidator, "Cura", 1, 0, "MachineNameValidator")
|
||||
|
||||
qmlRegisterSingletonType(cura.Settings.ContainerManager, "Cura", 1, 0, "ContainerManager", cura.Settings.ContainerManager.createContainerManager)
|
||||
|
||||
|
@ -82,7 +82,7 @@ class PlatformPhysics:
|
||||
|
||||
# Move it downwards if bottom is above platform
|
||||
move_vector = Vector()
|
||||
if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")): #If an object is grouped, don't move it down
|
||||
if Preferences.getInstance().getValue("physics/automatic_drop_down") and not (node.getParent() and node.getParent().callDecoration("isGroup")) and node.isEnabled(): #If an object is grouped, don't move it down
|
||||
z_offset = node.callDecoration("getZOffset") if node.getDecorator(ZOffsetDecorator.ZOffsetDecorator) else 0
|
||||
move_vector = move_vector.set(y=-bbox.bottom + z_offset)
|
||||
|
||||
|
@ -3,21 +3,22 @@
|
||||
|
||||
from UM.Operations.Operation import Operation
|
||||
from UM.Operations.GroupedOperation import GroupedOperation
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
|
||||
## A specialised operation designed specifically to modify the previous operation.
|
||||
class PlatformPhysicsOperation(Operation):
|
||||
def __init__(self, node, translation):
|
||||
super().__init__()
|
||||
self._node = node
|
||||
self._old_position = node.getPosition()
|
||||
self._new_position = node.getPosition() + translation
|
||||
self._old_transformation = node.getLocalTransformation()
|
||||
self._translation = translation
|
||||
self._always_merge = True
|
||||
|
||||
def undo(self):
|
||||
self._node.setPosition(self._old_position)
|
||||
self._node.setTransformation(self._old_transformation)
|
||||
|
||||
def redo(self):
|
||||
self._node.setPosition(self._new_position)
|
||||
self._node.translate(self._translation, SceneNode.TransformSpace.World)
|
||||
|
||||
def mergeWith(self, other):
|
||||
group = GroupedOperation()
|
||||
@ -28,4 +29,4 @@ class PlatformPhysicsOperation(Operation):
|
||||
return group
|
||||
|
||||
def __repr__(self):
|
||||
return "PlatformPhysicsOperation(new_position = {0})".format(self._new_position)
|
||||
return "PlatformPhysicsOperation(translation = {0})".format(self._translation)
|
||||
|
@ -49,7 +49,7 @@ class PrinterOutputDevice(QObject, OutputDevice):
|
||||
self._printer_state = ""
|
||||
self._printer_type = "unknown"
|
||||
|
||||
def requestWrite(self, node, file_name = None, filter_by_machine = False):
|
||||
def requestWrite(self, nodes, file_name = None, filter_by_machine = False):
|
||||
raise NotImplementedError("requestWrite needs to be implemented")
|
||||
|
||||
## Signals
|
||||
|
@ -27,10 +27,17 @@ class QualityManager:
|
||||
# specified then the currently selected machine definition is used.
|
||||
# \param material_containers (Optional) \type{List[ContainerInstance]} If nothing is specified then
|
||||
# the current set of selected materials is used.
|
||||
# \return the matching quality containers \type{List[ContainerInstance]}
|
||||
# \return the matching quality container \type{ContainerInstance}
|
||||
def findQualityByName(self, quality_name, machine_definition=None, material_containers=None):
|
||||
criteria = {"type": "quality", "name": quality_name}
|
||||
return self._getFilteredContainersForStack(machine_definition, material_containers, **criteria)
|
||||
result = self._getFilteredContainersForStack(machine_definition, material_containers, **criteria)
|
||||
|
||||
# Fall back to using generic materials and qualities if nothing could be found.
|
||||
if not result and material_containers and len(material_containers) == 1:
|
||||
basic_materials = self._getBasicMaterials(material_containers[0])
|
||||
result = self._getFilteredContainersForStack(machine_definition, basic_materials, **criteria)
|
||||
|
||||
return result[0] if result else None
|
||||
|
||||
## Find a quality changes container by name.
|
||||
#
|
||||
@ -82,8 +89,9 @@ class QualityManager:
|
||||
# \param material_containers (Optional) \type{List[ContainerInstance]} If nothing is specified then
|
||||
# the current set of selected materials is used.
|
||||
# \return the matching quality container \type{ContainerInstance}
|
||||
def findQualityByQualityType(self, quality_type, machine_definition=None, material_containers=None):
|
||||
criteria = {"type": "quality"}
|
||||
def findQualityByQualityType(self, quality_type, machine_definition=None, material_containers=None, **kwargs):
|
||||
criteria = kwargs
|
||||
criteria["type"] = "quality"
|
||||
if quality_type:
|
||||
criteria["quality_type"] = quality_type
|
||||
result = self._getFilteredContainersForStack(machine_definition, material_containers, **criteria)
|
||||
@ -160,7 +168,8 @@ class QualityManager:
|
||||
# \return \type{List[InstanceContainer]} a list of the basic materials or an empty list if one could not be found.
|
||||
def _getBasicMaterials(self, material_container):
|
||||
base_material = material_container.getMetaDataEntry("material")
|
||||
if material_container.getDefinition().getMetaDataEntry("has_machine_quality"):
|
||||
material_container_definition = material_container.getDefinition()
|
||||
if material_container_definition and material_container_definition.getMetaDataEntry("has_machine_quality"):
|
||||
definition_id = material_container.getDefinition().getMetaDataEntry("quality_definition", material_container.getDefinition().getId())
|
||||
else:
|
||||
definition_id = "fdmprinter"
|
||||
@ -218,7 +227,7 @@ class QualityManager:
|
||||
result = []
|
||||
for container in containers:
|
||||
# If the machine specifies we should filter by material, exclude containers that do not match any active material.
|
||||
if filter_by_material and container.getMetaDataEntry("material") not in material_ids:
|
||||
if filter_by_material and container.getMetaDataEntry("material") not in material_ids and not "global_quality" in kwargs:
|
||||
continue
|
||||
result.append(container)
|
||||
return result
|
||||
|
@ -32,14 +32,27 @@ class SetParentOperation(Operation.Operation):
|
||||
# \param new_parent The new parent. Note: this argument can be None, which would hide the node from the scene.
|
||||
def _set_parent(self, new_parent):
|
||||
if new_parent:
|
||||
self._node.setPosition(self._node.getWorldPosition() - new_parent.getWorldPosition())
|
||||
current_parent = self._node.getParent()
|
||||
if current_parent:
|
||||
self._node.scale(current_parent.getScale() / new_parent.getScale())
|
||||
self._node.rotate(current_parent.getOrientation())
|
||||
else:
|
||||
self._node.scale(Vector(1, 1, 1) / new_parent.getScale())
|
||||
self._node.rotate(new_parent.getOrientation().getInverse())
|
||||
# Special casing for groups that have been removed.
|
||||
# In that case we want to put them back where they belong before checking the depth difference.
|
||||
# If we don't, we always get 0.
|
||||
old_parent = new_parent.callDecoration("getOldParent")
|
||||
if old_parent:
|
||||
new_parent.callDecoration("getNode").setParent(old_parent)
|
||||
|
||||
# Based on the depth difference, we need to do something different.
|
||||
depth_difference = current_parent.getDepth() - new_parent.getDepth()
|
||||
child_transformation = self._node.getLocalTransformation()
|
||||
if depth_difference > 0:
|
||||
parent_transformation = current_parent.getLocalTransformation()
|
||||
# A node in the chain was removed, so we need to squash the parent info into all the nodes, so positions remain the same.
|
||||
self._node.setTransformation(parent_transformation.multiply(child_transformation))
|
||||
else:
|
||||
# A node is inserted into the chain, so use the inverse of the parent to set the transformation of it's children.
|
||||
parent_transformation = new_parent.getLocalTransformation()
|
||||
result = parent_transformation.getInverse().multiply(child_transformation, copy = True)
|
||||
self._node.setTransformation(result)
|
||||
|
||||
self._node.setParent(new_parent)
|
||||
|
||||
|
@ -611,13 +611,12 @@ class ContainerManager(QObject):
|
||||
|
||||
if base_name is None:
|
||||
base_name = quality_name
|
||||
|
||||
# Try to find a Quality with the name.
|
||||
containers = QualityManager.getInstance().findQualityByName(quality_name, machine_definition, material_instances)
|
||||
if containers:
|
||||
container = containers[0]
|
||||
container = QualityManager.getInstance().findQualityByName(quality_name, machine_definition, material_instances)
|
||||
if container:
|
||||
UM.Logger.log("d", "We found a quality to duplicate.")
|
||||
return self._duplicateQualityForMachineType(container, base_name, machine_definition)
|
||||
|
||||
UM.Logger.log("d", "We found a quality_changes to duplicate.")
|
||||
# Assume it is a quality changes.
|
||||
return self._duplicateQualityChangesForMachineType(quality_name, base_name, machine_definition)
|
||||
|
||||
@ -650,7 +649,10 @@ class ContainerManager(QObject):
|
||||
new_change_instances = []
|
||||
for container in QualityManager.getInstance().findQualityChangesByName(quality_changes_name,
|
||||
machine_definition):
|
||||
new_unique_id = self._createUniqueId(container.getId(), base_name)
|
||||
base_id = container.getMetaDataEntry("extruder")
|
||||
if not base_id:
|
||||
base_id = container.getDefinition().getId()
|
||||
new_unique_id = self._createUniqueId(base_id, base_name)
|
||||
new_container = container.duplicate(new_unique_id, base_name)
|
||||
new_change_instances.append(new_container)
|
||||
self._container_registry.addContainer(new_container)
|
||||
|
@ -165,20 +165,19 @@ class CuraContainerRegistry(ContainerRegistry):
|
||||
profile_or_list = profile_reader.read(file_name) # Try to open the file with the profile reader.
|
||||
except Exception as e:
|
||||
# Note that this will fail quickly. That is, if any profile reader throws an exception, it will stop reading. It will only continue reading if the reader returned None.
|
||||
Logger.log("e", "Failed to import profile from %s: %s while using profile reader", file_name, str(e), profile_reader.getPluginId())
|
||||
Logger.log("e", "Failed to import profile from %s: %s while using profile reader. Got exception %s", file_name,profile_reader.getPluginId(), str(e))
|
||||
return { "status": "error", "message": catalog.i18nc("@info:status", "Failed to import profile from <filename>{0}</filename>: <message>{1}</message>", file_name, str(e))}
|
||||
if profile_or_list: # Success!
|
||||
name_seed = os.path.splitext(os.path.basename(file_name))[0]
|
||||
new_name = self.uniqueName(name_seed)
|
||||
if type(profile_or_list) is not list:
|
||||
profile = profile_or_list
|
||||
self._configureProfile(profile, name_seed)
|
||||
self._configureProfile(profile, name_seed, new_name)
|
||||
return { "status": "ok", "message": catalog.i18nc("@info:status", "Successfully imported profile {0}", profile.getName()) }
|
||||
else:
|
||||
profile_index = -1
|
||||
global_profile = None
|
||||
|
||||
new_name = self.uniqueName(name_seed)
|
||||
|
||||
for profile in profile_or_list:
|
||||
if profile_index >= 0:
|
||||
if len(machine_extruders) > profile_index:
|
||||
|
@ -50,8 +50,11 @@ class ExtruderManager(QObject):
|
||||
@pyqtProperty(int, notify = extrudersChanged)
|
||||
def extruderCount(self):
|
||||
if not UM.Application.getInstance().getGlobalContainerStack():
|
||||
return 0 # No active machine, so no extruders.
|
||||
return len(self._extruder_trains[UM.Application.getInstance().getGlobalContainerStack().getId()])
|
||||
return 0 # No active machine, so no extruders.
|
||||
try:
|
||||
return len(self._extruder_trains[UM.Application.getInstance().getGlobalContainerStack().getId()])
|
||||
except KeyError:
|
||||
return 0
|
||||
|
||||
@pyqtProperty("QVariantMap", notify=extrudersChanged)
|
||||
def extruderIds(self):
|
||||
@ -265,18 +268,26 @@ class ExtruderManager(QObject):
|
||||
container_registry.addContainer(container_stack)
|
||||
|
||||
def getAllExtruderValues(self, setting_key):
|
||||
return self.getAllExtruderSettings(setting_key, "value")
|
||||
|
||||
## Gets a property of a setting for all extruders.
|
||||
#
|
||||
# \param setting_key \type{str} The setting to get the property of.
|
||||
# \param property \type{str} The property to get.
|
||||
# \return \type{List} the list of results
|
||||
def getAllExtruderSettings(self, setting_key, property):
|
||||
global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||
multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1
|
||||
if not multi_extrusion:
|
||||
return [global_container_stack.getProperty(setting_key, "value")]
|
||||
if global_container_stack.getProperty("machine_extruder_count", "value") <= 1:
|
||||
return [global_container_stack.getProperty(setting_key, property)]
|
||||
|
||||
result = []
|
||||
for index in self.extruderIds:
|
||||
extruder_stack_id = self.extruderIds[str(index)]
|
||||
stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id=extruder_stack_id)[0]
|
||||
result.append(stack.getProperty(setting_key, "value"))
|
||||
stack = UM.Settings.ContainerRegistry.getInstance().findContainerStacks(id = extruder_stack_id)[0]
|
||||
result.append(stack.getProperty(setting_key, property))
|
||||
return result
|
||||
|
||||
|
||||
## Removes the container stack and user profile for the extruders for a specific machine.
|
||||
#
|
||||
# \param machine_id The machine to remove the extruders for.
|
||||
|
@ -34,7 +34,7 @@ class MachineManager(QObject):
|
||||
self.globalContainerChanged.connect(self.activeVariantChanged)
|
||||
self.globalContainerChanged.connect(self.activeQualityChanged)
|
||||
|
||||
self._active_stack_valid = None
|
||||
self._stacks_have_errors = None
|
||||
self._onGlobalContainerChanged()
|
||||
|
||||
ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderStackChanged)
|
||||
@ -74,7 +74,7 @@ class MachineManager(QObject):
|
||||
self._auto_hotends_changed = {}
|
||||
|
||||
self._material_incompatible_message = Message(catalog.i18nc("@info:status",
|
||||
"The selected material is imcompatible with the selected machine or configuration."))
|
||||
"The selected material is incompatible with the selected machine or configuration."))
|
||||
|
||||
globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value)
|
||||
activeMaterialChanged = pyqtSignal()
|
||||
@ -85,6 +85,7 @@ class MachineManager(QObject):
|
||||
globalValueChanged = pyqtSignal() # Emitted whenever a value inside global container is changed.
|
||||
activeStackValueChanged = pyqtSignal() # Emitted whenever a value inside the active stack is changed.
|
||||
activeStackValidationChanged = pyqtSignal() # Emitted whenever a validation inside active container is changed
|
||||
stacksValidationChanged = pyqtSignal() # Emitted whenever a validation is changed
|
||||
|
||||
blurSettings = pyqtSignal() # Emitted to force fields in the advanced sidebar to un-focus, so they update properly
|
||||
|
||||
@ -225,15 +226,36 @@ class MachineManager(QObject):
|
||||
self._global_container_stack.nameChanged.connect(self._onMachineNameChanged)
|
||||
self._global_container_stack.containersChanged.connect(self._onInstanceContainersChanged)
|
||||
self._global_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
||||
material = self._global_container_stack.findContainer({"type": "material"})
|
||||
material.nameChanged.connect(self._onMaterialNameChanged)
|
||||
|
||||
quality = self._global_container_stack.findContainer({"type": "quality"})
|
||||
quality.nameChanged.connect(self._onQualityNameChanged)
|
||||
if self._global_container_stack.getProperty("machine_extruder_count", "value") > 1:
|
||||
# For multi-extrusion machines, we do not want variant or material profiles in the stack,
|
||||
# because these are extruder specific and may cause wrong values to be used for extruders
|
||||
# that did not specify a value in the extruder.
|
||||
global_variant = self._global_container_stack.findContainer(type = "variant")
|
||||
if global_variant != self._empty_variant_container:
|
||||
self._global_container_stack.replaceContainer(self._global_container_stack.getContainerIndex(global_variant), self._empty_variant_container)
|
||||
|
||||
global_material = self._global_container_stack.findContainer(type = "material")
|
||||
if global_material != self._empty_material_container:
|
||||
self._global_container_stack.replaceContainer(self._global_container_stack.getContainerIndex(global_material), self._empty_material_container)
|
||||
|
||||
else:
|
||||
material = self._global_container_stack.findContainer({"type": "material"})
|
||||
material.nameChanged.connect(self._onMaterialNameChanged)
|
||||
|
||||
quality = self._global_container_stack.findContainer({"type": "quality"})
|
||||
quality.nameChanged.connect(self._onQualityNameChanged)
|
||||
|
||||
|
||||
## Update self._stacks_valid according to _checkStacksForErrors and emit if change.
|
||||
def _updateStacksHaveErrors(self):
|
||||
old_stacks_have_errors = self._stacks_have_errors
|
||||
self._stacks_have_errors = self._checkStacksHaveErrors()
|
||||
if old_stacks_have_errors != self._stacks_have_errors:
|
||||
self.stacksValidationChanged.emit()
|
||||
|
||||
def _onActiveExtruderStackChanged(self):
|
||||
self.blurSettings.emit() # Ensure no-one has focus.
|
||||
|
||||
old_active_container_stack = self._active_container_stack
|
||||
|
||||
if self._active_container_stack and self._active_container_stack != self._global_container_stack:
|
||||
@ -246,10 +268,7 @@ class MachineManager(QObject):
|
||||
else:
|
||||
self._active_container_stack = self._global_container_stack
|
||||
|
||||
old_active_stack_valid = self._active_stack_valid
|
||||
self._active_stack_valid = not self._checkStackForErrors(self._active_container_stack)
|
||||
if old_active_stack_valid != self._active_stack_valid:
|
||||
self.activeStackValidationChanged.emit()
|
||||
self._updateStacksHaveErrors()
|
||||
|
||||
if old_active_container_stack != self._active_container_stack:
|
||||
# Many methods and properties related to the active quality actually depend
|
||||
@ -272,18 +291,18 @@ class MachineManager(QObject):
|
||||
self.activeStackValueChanged.emit()
|
||||
|
||||
if property_name == "validationState":
|
||||
if self._active_stack_valid:
|
||||
if not self._stacks_have_errors:
|
||||
# fast update, we only have to look at the current changed property
|
||||
if self._active_container_stack.getProperty(key, "settable_per_extruder"):
|
||||
changed_validation_state = self._active_container_stack.getProperty(key, property_name)
|
||||
else:
|
||||
changed_validation_state = self._global_container_stack.getProperty(key, property_name)
|
||||
if changed_validation_state in (UM.Settings.ValidatorState.Exception, UM.Settings.ValidatorState.MaximumError, UM.Settings.ValidatorState.MinimumError):
|
||||
self._active_stack_valid = False
|
||||
self.activeStackValidationChanged.emit()
|
||||
self._stacks_have_errors = True
|
||||
self.stacksValidationChanged.emit()
|
||||
else:
|
||||
if not self._checkStackForErrors(self._active_container_stack) and not self._checkStackForErrors(self._global_container_stack):
|
||||
self._active_stack_valid = True
|
||||
self.activeStackValidationChanged.emit()
|
||||
# Normal check
|
||||
self._updateStacksHaveErrors()
|
||||
|
||||
@pyqtSlot(str)
|
||||
def setActiveMachine(self, stack_id):
|
||||
@ -337,15 +356,17 @@ class MachineManager(QObject):
|
||||
def _createUniqueName(self, container_type, current_name, new_name, fallback_name):
|
||||
return UM.Settings.ContainerRegistry.getInstance().createUniqueName(container_type, current_name, new_name, fallback_name)
|
||||
|
||||
## Convenience function to check if a stack has errors.
|
||||
def _checkStackForErrors(self, stack):
|
||||
if stack is None:
|
||||
return False
|
||||
def _checkStacksHaveErrors(self):
|
||||
if self._global_container_stack is not None and self._global_container_stack.hasErrors():
|
||||
return True
|
||||
|
||||
for key in stack.getAllKeys():
|
||||
validation_state = stack.getProperty(key, "validationState")
|
||||
if validation_state in (UM.Settings.ValidatorState.Exception, UM.Settings.ValidatorState.MaximumError, UM.Settings.ValidatorState.MinimumError):
|
||||
if self._global_container_stack is None:
|
||||
return False
|
||||
stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
||||
for stack in stacks:
|
||||
if stack.hasErrors():
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
## Remove all instances from the top instanceContainer (effectively removing all user-changed settings)
|
||||
@ -405,12 +426,12 @@ class MachineManager(QObject):
|
||||
for container in send_emits_containers:
|
||||
container.sendPostponedEmits()
|
||||
|
||||
## Check if the global profile does not contain error states
|
||||
# Note that the _active_stack_valid is cached due to performance issues
|
||||
# Calling _checkStackForErrors on every change is simply too expensive
|
||||
@pyqtProperty(bool, notify = activeStackValidationChanged)
|
||||
def isActiveStackValid(self):
|
||||
return bool(self._active_stack_valid)
|
||||
## Check if none of the stacks contain error states
|
||||
# Note that the _stacks_have_errors is cached due to performance issues
|
||||
# Calling _checkStack(s)ForErrors on every change is simply too expensive
|
||||
@pyqtProperty(bool, notify = stacksValidationChanged)
|
||||
def stacksHaveErrors(self):
|
||||
return bool(self._stacks_have_errors)
|
||||
|
||||
@pyqtProperty(str, notify = activeStackChanged)
|
||||
def activeUserProfileId(self):
|
||||
@ -566,7 +587,7 @@ class MachineManager(QObject):
|
||||
quality = self._active_container_stack.findContainer(type = "quality")
|
||||
if quality:
|
||||
return Util.parseBool(quality.getMetaDataEntry("supported", True))
|
||||
return ""
|
||||
return False
|
||||
|
||||
## Get the Quality ID associated with the currently active extruder
|
||||
# Note that this only returns the "quality", not the "quality_changes"
|
||||
@ -754,6 +775,8 @@ class MachineManager(QObject):
|
||||
result = []
|
||||
empty_quality_changes = self._empty_quality_changes_container
|
||||
global_container_stack = self._global_container_stack
|
||||
if not global_container_stack:
|
||||
return []
|
||||
global_machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.getBottom())
|
||||
|
||||
extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||
@ -769,8 +792,13 @@ class MachineManager(QObject):
|
||||
|
||||
if extruder_stacks:
|
||||
# Add an extra entry for the global stack.
|
||||
result.append({"stack": global_container_stack, "quality": result[0]["quality"],
|
||||
"quality_changes": empty_quality_changes})
|
||||
global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [], global_quality = "True")
|
||||
|
||||
if not global_quality:
|
||||
global_quality = self._empty_quality_container
|
||||
|
||||
result.append({"stack": global_container_stack, "quality": global_quality, "quality_changes": empty_quality_changes})
|
||||
|
||||
return result
|
||||
|
||||
## Determine the quality and quality changes settings for the current machine for a quality changes name.
|
||||
@ -793,7 +821,10 @@ class MachineManager(QObject):
|
||||
# For the global stack, find a quality which matches the quality_type in
|
||||
# the quality changes profile and also satisfies any material constraints.
|
||||
quality_type = global_quality_changes.getMetaDataEntry("quality_type")
|
||||
global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material])
|
||||
if global_container_stack.getProperty("machine_extruder_count", "value") > 1:
|
||||
global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [], global_quality = True)
|
||||
else:
|
||||
global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material])
|
||||
|
||||
# Find the values for each extruder.
|
||||
extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||
@ -814,9 +845,10 @@ class MachineManager(QObject):
|
||||
result.append({"stack": stack, "quality": quality, "quality_changes": quality_changes})
|
||||
|
||||
if extruder_stacks:
|
||||
# Duplicate the quality from the 1st extruder into the global stack. If anyone
|
||||
# then looks in the global stack, they should get a reasonable view.
|
||||
result.append({"stack": global_container_stack, "quality": result[0]["quality"], "quality_changes": global_quality_changes})
|
||||
global_quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material], global_quality = "True")
|
||||
if not global_quality:
|
||||
global_quality = self._empty_quality_container
|
||||
result.append({"stack": global_container_stack, "quality": global_quality, "quality_changes": global_quality_changes})
|
||||
else:
|
||||
result.append({"stack": global_container_stack, "quality": global_quality, "quality_changes": global_quality_changes})
|
||||
|
||||
|
66
cura/Settings/MachineNameValidator.py
Normal file
66
cura/Settings/MachineNameValidator.py
Normal file
@ -0,0 +1,66 @@
|
||||
# Copyright (c) 2016 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from PyQt5.QtCore import pyqtSlot, pyqtProperty, QObject, pyqtSignal, QRegExp
|
||||
from PyQt5.QtGui import QValidator
|
||||
import os #For statvfs.
|
||||
import urllib #To escape machine names for how they're saved to file.
|
||||
|
||||
import UM.Resources
|
||||
import UM.Settings.ContainerRegistry
|
||||
import UM.Settings.InstanceContainer
|
||||
|
||||
## Are machine names valid?
|
||||
#
|
||||
# Performs checks based on the length of the name.
|
||||
class MachineNameValidator(QObject):
|
||||
def __init__(self, parent = None):
|
||||
super().__init__(parent)
|
||||
|
||||
#Compute the validation regex for printer names. This is limited by the maximum file name length.
|
||||
try:
|
||||
filename_max_length = os.statvfs(UM.Resources.getDataStoragePath()).f_namemax
|
||||
except AttributeError: #Doesn't support statvfs. Probably because it's not a Unix system.
|
||||
filename_max_length = 255 #Assume it's Windows on NTFS.
|
||||
machine_name_max_length = filename_max_length - len("_current_settings.") - len(UM.Settings.ContainerRegistry.getMimeTypeForContainer(UM.Settings.InstanceContainer).preferredSuffix)
|
||||
# Characters that urllib.parse.quote_plus escapes count for 12! So now
|
||||
# we must devise a regex that allows only 12 normal characters or 1
|
||||
# special character, and that up to [machine_name_max_length / 12] times.
|
||||
maximum_special_characters = int(machine_name_max_length / 12)
|
||||
unescaped = r"[a-zA-Z0-9_\-\.\/]"
|
||||
self.machine_name_regex = r"^((" + unescaped + "){0,12}|.){0," + str(maximum_special_characters) + r"}$"
|
||||
|
||||
validationChanged = pyqtSignal()
|
||||
|
||||
## Check if a specified machine name is allowed.
|
||||
#
|
||||
# \param name The machine name to check.
|
||||
# \param position The current position of the cursor in the text box.
|
||||
# \return ``QValidator.Invalid`` if it's disallowed, or
|
||||
# ``QValidator.Acceptable`` if it's allowed.
|
||||
def validate(self, name, position):
|
||||
#Check for file name length of the current settings container (which is the longest file we're saving with the name).
|
||||
try:
|
||||
filename_max_length = os.statvfs(UM.Resources.getDataStoragePath()).f_namemax
|
||||
except AttributeError: #Doesn't support statvfs. Probably because it's not a Unix system.
|
||||
filename_max_length = 255 #Assume it's Windows on NTFS.
|
||||
escaped_name = urllib.parse.quote_plus(name)
|
||||
current_settings_filename = escaped_name + "_current_settings." + UM.Settings.ContainerRegistry.getMimeTypeForContainer(UM.Settings.InstanceContainer).preferredSuffix
|
||||
if len(current_settings_filename) > filename_max_length:
|
||||
return QValidator.Invalid
|
||||
|
||||
return QValidator.Acceptable #All checks succeeded.
|
||||
|
||||
## Updates the validation state of a machine name text field.
|
||||
@pyqtSlot(str)
|
||||
def updateValidation(self, new_name):
|
||||
is_valid = self.validate(new_name, 0)
|
||||
if is_valid == QValidator.Acceptable:
|
||||
self.validation_regex = "^.*$" #Matches anything.
|
||||
else:
|
||||
self.validation_regex = "a^" #Never matches (unless you manage to get "a" before the start of the string... good luck).
|
||||
self.validationChanged.emit()
|
||||
|
||||
@pyqtProperty("QRegExp", notify=validationChanged)
|
||||
def machineNameRegex(self):
|
||||
return QRegExp(self.machine_name_regex)
|
@ -25,6 +25,21 @@ class ProfilesModel(InstanceContainersModel):
|
||||
Application.getInstance().getMachineManager().activeStackChanged.connect(self._update)
|
||||
Application.getInstance().getMachineManager().activeMaterialChanged.connect(self._update)
|
||||
|
||||
# Factory function, used by QML
|
||||
@staticmethod
|
||||
def createProfilesModel(engine, js_engine):
|
||||
return ProfilesModel.getInstance()
|
||||
|
||||
## Get the singleton instance for this class.
|
||||
@classmethod
|
||||
def getInstance(cls):
|
||||
# Note: Explicit use of class name to prevent issues with inheritance.
|
||||
if ProfilesModel.__instance is None:
|
||||
ProfilesModel.__instance = cls()
|
||||
return ProfilesModel.__instance
|
||||
|
||||
__instance = None
|
||||
|
||||
## Fetch the list of containers to display.
|
||||
#
|
||||
# See UM.Settings.Models.InstanceContainersModel._fetchInstanceContainers().
|
||||
@ -56,6 +71,8 @@ class ProfilesModel(InstanceContainersModel):
|
||||
machine_manager = Application.getInstance().getMachineManager()
|
||||
|
||||
unit = global_container_stack.getBottom().getProperty("layer_height", "unit")
|
||||
if not unit:
|
||||
unit = ""
|
||||
|
||||
for item in super()._recomputeItems():
|
||||
profile = container_registry.findContainers(id = item["id"])
|
||||
@ -80,7 +97,10 @@ class ProfilesModel(InstanceContainersModel):
|
||||
quality = quality_result["quality"]
|
||||
break
|
||||
else: #No global container stack in the results:
|
||||
quality = quality_results[0]["quality"] #Take any of the extruders.
|
||||
if quality_results:
|
||||
quality = quality_results[0]["quality"] #Take any of the extruders.
|
||||
else:
|
||||
quality = None
|
||||
if quality and quality.hasProperty("layer_height", "value"):
|
||||
item["layer_height"] = str(quality.getProperty("layer_height", "value")) + unit
|
||||
yield item
|
||||
|
@ -5,6 +5,7 @@ from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
|
||||
import UM.Settings
|
||||
from UM.Application import Application
|
||||
import cura.Settings
|
||||
from UM.Logger import Logger
|
||||
|
||||
|
||||
## The settingInheritance manager is responsible for checking each setting in order to see if one of the "deeper"
|
||||
@ -38,6 +39,26 @@ class SettingInheritanceManager(QObject):
|
||||
result.append(key)
|
||||
return result
|
||||
|
||||
@pyqtSlot(str, str, result = "QStringList")
|
||||
def getOverridesForExtruder(self, key, extruder_index):
|
||||
multi_extrusion = self._global_container_stack.getProperty("machine_extruder_count", "value") > 1
|
||||
if not multi_extrusion:
|
||||
return self._settings_with_inheritance_warning
|
||||
extruder = cura.Settings.ExtruderManager.getInstance().getExtruderStack(extruder_index)
|
||||
if not extruder:
|
||||
Logger.log("w", "Unable to find extruder for current machine with index %s", extruder_index)
|
||||
return []
|
||||
|
||||
definitions = self._global_container_stack.getBottom().findDefinitions(key=key)
|
||||
if not definitions:
|
||||
return
|
||||
result = []
|
||||
for key in definitions[0].getAllKeys():
|
||||
if self._settingIsOverwritingInheritance(key, extruder):
|
||||
result.append(key)
|
||||
|
||||
return result
|
||||
|
||||
@pyqtSlot(str)
|
||||
def manualRemoveOverride(self, key):
|
||||
if key in self._settings_with_inheritance_warning:
|
||||
@ -56,9 +77,11 @@ class SettingInheritanceManager(QObject):
|
||||
if new_active_stack != self._active_container_stack: # Check if changed
|
||||
if self._active_container_stack: # Disconnect signal from old container (if any)
|
||||
self._active_container_stack.propertyChanged.disconnect(self._onPropertyChanged)
|
||||
self._active_container_stack.containersChanged.disconnect(self._onContainersChanged)
|
||||
|
||||
self._active_container_stack = new_active_stack
|
||||
self._active_container_stack.propertyChanged.connect(self._onPropertyChanged)
|
||||
self._active_container_stack.containersChanged.connect(self._onContainersChanged)
|
||||
self._update() # Ensure that the settings_with_inheritance_warning list is populated.
|
||||
|
||||
def _onPropertyChanged(self, key, property_name):
|
||||
@ -113,22 +136,23 @@ class SettingInheritanceManager(QObject):
|
||||
return self._settings_with_inheritance_warning
|
||||
|
||||
## Check if a setting has an inheritance function that is overwritten
|
||||
def _settingIsOverwritingInheritance(self, key):
|
||||
def _settingIsOverwritingInheritance(self, key, stack = None):
|
||||
has_setting_function = False
|
||||
stack = self._active_container_stack
|
||||
if not stack:
|
||||
stack = self._active_container_stack
|
||||
containers = []
|
||||
|
||||
## Check if the setting has a user state. If not, it is never overwritten.
|
||||
has_user_state = self._active_container_stack.getProperty(key, "state") == UM.Settings.InstanceState.User
|
||||
has_user_state = stack.getProperty(key, "state") == UM.Settings.InstanceState.User
|
||||
if not has_user_state:
|
||||
return False
|
||||
|
||||
## If a setting is not enabled, don't label it as overwritten (It's never visible anyway).
|
||||
if not self._active_container_stack.getProperty(key, "enabled"):
|
||||
if not stack.getProperty(key, "enabled"):
|
||||
return False
|
||||
|
||||
## Also check if the top container is not a setting function (this happens if the inheritance is restored).
|
||||
if isinstance(self._active_container_stack.getTop().getProperty(key, "value"), UM.Settings.SettingFunction):
|
||||
if isinstance(stack.getTop().getProperty(key, "value"), UM.Settings.SettingFunction):
|
||||
return False
|
||||
|
||||
## Mash all containers for all the stacks together.
|
||||
@ -178,8 +202,10 @@ class SettingInheritanceManager(QObject):
|
||||
self._onActiveExtruderChanged()
|
||||
|
||||
def _onContainersChanged(self, container):
|
||||
self._onActiveExtruderChanged()
|
||||
# TODO: Multiple container changes in sequence now cause quite a few recalculations.
|
||||
# This isn't that big of an issue, but it could be in the future.
|
||||
self._update()
|
||||
|
||||
@staticmethod
|
||||
def createSettingInheritanceManager(engine=None, script_engine=None):
|
||||
return SettingInheritanceManager()
|
||||
return SettingInheritanceManager()
|
||||
|
@ -61,6 +61,15 @@ class SettingOverrideDecorator(SceneNodeDecorator):
|
||||
def getActiveExtruder(self):
|
||||
return self._extruder_stack
|
||||
|
||||
## Gets the currently active extruders position
|
||||
#
|
||||
# \return An extruder's position, or None if no position info is available.
|
||||
def getActiveExtruderPosition(self):
|
||||
containers = ContainerRegistry.getInstance().findContainers(id = self.getActiveExtruder())
|
||||
if containers:
|
||||
container_stack = containers[0]
|
||||
return container_stack.getMetaDataEntry("position", default=None)
|
||||
|
||||
def _onSettingChanged(self, instance, property_name): # Reminder: 'property' is a built-in function
|
||||
if property_name == "value": # Only reslice if the value has changed.
|
||||
Application.getInstance().getBackend().forceSlice()
|
||||
|
@ -8,6 +8,7 @@ from .CuraContainerRegistry import CuraContainerRegistry
|
||||
from .ExtruderManager import ExtruderManager
|
||||
from .ExtrudersModel import ExtrudersModel
|
||||
from .MachineManager import MachineManager
|
||||
from .MachineNameValidator import MachineNameValidator
|
||||
from .MaterialSettingsVisibilityHandler import MaterialSettingsVisibilityHandler
|
||||
from .SettingOverrideDecorator import SettingOverrideDecorator
|
||||
from .QualitySettingsModel import QualitySettingsModel
|
||||
|
BIN
docs/Cura_Data_Model.odg
Normal file
BIN
docs/Cura_Data_Model.odg
Normal file
Binary file not shown.
@ -11,9 +11,8 @@ from UM.Scene.GroupDecorator import GroupDecorator
|
||||
import UM.Application
|
||||
from UM.Job import Job
|
||||
|
||||
from UM.Math.Quaternion import Quaternion
|
||||
|
||||
import math
|
||||
import os.path
|
||||
import zipfile
|
||||
|
||||
try:
|
||||
@ -31,9 +30,12 @@ class ThreeMFReader(MeshReader):
|
||||
"3mf": "http://schemas.microsoft.com/3dmanufacturing/core/2015/02",
|
||||
"cura": "http://software.ultimaker.com/xml/cura/3mf/2015/10"
|
||||
}
|
||||
self._base_name = ""
|
||||
self._unit = None
|
||||
|
||||
def _createNodeFromObject(self, object, name = ""):
|
||||
node = SceneNode()
|
||||
node.setName(name)
|
||||
mesh_builder = MeshBuilder()
|
||||
vertex_list = []
|
||||
|
||||
@ -42,8 +44,7 @@ class ThreeMFReader(MeshReader):
|
||||
for component in components:
|
||||
id = component.get("objectid")
|
||||
new_object = self._root.find("./3mf:resources/3mf:object[@id='{0}']".format(id), self._namespaces)
|
||||
|
||||
new_node = self._createNodeFromObject(new_object)
|
||||
new_node = self._createNodeFromObject(new_object, self._base_name + "_" + str(id))
|
||||
node.addChild(new_node)
|
||||
transform = component.get("transform")
|
||||
if transform is not None:
|
||||
@ -54,10 +55,6 @@ class ThreeMFReader(MeshReader):
|
||||
vertex_list.append([vertex.get("x"), vertex.get("y"), vertex.get("z")])
|
||||
Job.yieldThread()
|
||||
|
||||
# If this object has no vertices and just one child, just return the child.
|
||||
if len(vertex_list) == 0 and len(node.getChildren()) == 1:
|
||||
return node.getChildren()[0]
|
||||
|
||||
if len(node.getChildren()) > 0:
|
||||
group_decorator = GroupDecorator()
|
||||
node.addDecorator(group_decorator)
|
||||
@ -76,20 +73,10 @@ class ThreeMFReader(MeshReader):
|
||||
|
||||
Job.yieldThread()
|
||||
|
||||
# Rotate the model; We use a different coordinate frame.
|
||||
rotation = Matrix()
|
||||
rotation.setByRotationAxis(-0.5 * math.pi, Vector(1, 0, 0))
|
||||
flip_matrix = Matrix()
|
||||
|
||||
flip_matrix._data[1, 1] = 0
|
||||
flip_matrix._data[1, 2] = 1
|
||||
flip_matrix._data[2, 1] = 1
|
||||
flip_matrix._data[2, 2] = 0
|
||||
|
||||
# TODO: We currently do not check for normals and simply recalculate them.
|
||||
mesh_builder.calculateNormals()
|
||||
mesh_builder.setFileName(name)
|
||||
mesh_data = mesh_builder.build().getTransformed(flip_matrix)
|
||||
mesh_data = mesh_builder.build()
|
||||
|
||||
if len(mesh_data.getVertices()):
|
||||
node.setMeshData(mesh_data)
|
||||
@ -122,31 +109,71 @@ class ThreeMFReader(MeshReader):
|
||||
temp_mat._data[1, 3] = splitted_transformation[10]
|
||||
temp_mat._data[2, 3] = splitted_transformation[11]
|
||||
|
||||
flip_matrix = Matrix()
|
||||
flip_matrix._data[1, 1] = 0
|
||||
flip_matrix._data[1, 2] = 1
|
||||
flip_matrix._data[2, 1] = 1
|
||||
flip_matrix._data[2, 2] = 0
|
||||
temp_mat.multiply(flip_matrix)
|
||||
|
||||
return temp_mat
|
||||
|
||||
def read(self, file_name):
|
||||
result = SceneNode()
|
||||
group_decorator = GroupDecorator()
|
||||
result.addDecorator(group_decorator)
|
||||
# The base object of 3mf is a zipped archive.
|
||||
archive = zipfile.ZipFile(file_name, "r")
|
||||
self._base_name = os.path.basename(file_name)
|
||||
try:
|
||||
self._root = ET.parse(archive.open("3D/3dmodel.model"))
|
||||
self._unit = self._root.getroot().get("unit")
|
||||
|
||||
build_items = self._root.findall("./3mf:build/3mf:item", self._namespaces)
|
||||
|
||||
for build_item in build_items:
|
||||
id = build_item.get("objectid")
|
||||
object = self._root.find("./3mf:resources/3mf:object[@id='{0}']".format(id), self._namespaces)
|
||||
build_item_node = self._createNodeFromObject(object)
|
||||
if "type" in object.attrib:
|
||||
if object.attrib["type"] == "support" or object.attrib["type"] == "other":
|
||||
# Ignore support objects, as cura does not support these.
|
||||
# We can't guarantee that they wont be made solid.
|
||||
# We also ignore "other", as I have no idea what to do with them.
|
||||
Logger.log("w", "3MF file contained an object of type %s which is not supported by Cura", object.attrib["type"])
|
||||
continue
|
||||
elif object.attrib["type"] == "solidsupport" or object.attrib["type"] == "model":
|
||||
pass # Load these as normal
|
||||
else:
|
||||
# We should technically fail at this point because it's an invalid 3MF, but try to continue anyway.
|
||||
Logger.log("e", "3MF file contained an object of type %s which is not supported by the 3mf spec",
|
||||
object.attrib["type"])
|
||||
continue
|
||||
|
||||
build_item_node = self._createNodeFromObject(object, self._base_name + "_" + str(id))
|
||||
transform = build_item.get("transform")
|
||||
if transform is not None:
|
||||
build_item_node.setTransformation(self._createMatrixFromTransformationString(transform))
|
||||
global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||
|
||||
# Create a transformation Matrix to convert from 3mf worldspace into ours.
|
||||
# First step: flip the y and z axis.
|
||||
transformation_matrix = Matrix()
|
||||
transformation_matrix._data[1, 1] = 0
|
||||
transformation_matrix._data[1, 2] = 1
|
||||
transformation_matrix._data[2, 1] = -1
|
||||
transformation_matrix._data[2, 2] = 0
|
||||
|
||||
# Second step: 3MF defines the left corner of the machine as center, whereas cura uses the center of the
|
||||
# build volume.
|
||||
if global_container_stack:
|
||||
translation_vector = Vector(x = -global_container_stack.getProperty("machine_width", "value") / 2,
|
||||
y = -global_container_stack.getProperty("machine_depth", "value") / 2,
|
||||
z = 0)
|
||||
translation_matrix = Matrix()
|
||||
translation_matrix.setByTranslation(translation_vector)
|
||||
transformation_matrix.multiply(translation_matrix)
|
||||
|
||||
# Third step: 3MF also defines a unit, wheras Cura always assumes mm.
|
||||
scale_matrix = Matrix()
|
||||
scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit))
|
||||
transformation_matrix.multiply(scale_matrix)
|
||||
|
||||
# Pre multiply the transformation with the loaded transformation, so the data is handled correctly.
|
||||
build_item_node.setTransformation(build_item_node.getLocalTransformation().preMultiply(transformation_matrix))
|
||||
|
||||
result.addChild(build_item_node)
|
||||
|
||||
except Exception as e:
|
||||
@ -157,10 +184,35 @@ class ThreeMFReader(MeshReader):
|
||||
except:
|
||||
return None
|
||||
|
||||
global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
|
||||
|
||||
if global_container_stack:
|
||||
translation = Vector(x=-global_container_stack.getProperty("machine_width", "value") / 2, y=0,
|
||||
z=global_container_stack.getProperty("machine_depth", "value") / 2)
|
||||
result.translate(translation, SceneNode.TransformSpace.World)
|
||||
result.setEnabled(False) # The result should not be moved in any way, so disable it.
|
||||
return result
|
||||
|
||||
## Create a scale vector based on a unit string.
|
||||
# The core spec defines the following:
|
||||
# * micron
|
||||
# * millimeter (default)
|
||||
# * centimeter
|
||||
# * inch
|
||||
# * foot
|
||||
# * meter
|
||||
def _getScaleFromUnit(self, unit):
|
||||
if unit is None:
|
||||
unit = "millimeter"
|
||||
if unit == "micron":
|
||||
scale = 0.001
|
||||
elif unit == "millimeter":
|
||||
scale = 1
|
||||
elif unit == "centimeter":
|
||||
scale = 10
|
||||
elif unit == "inch":
|
||||
scale = 25.4
|
||||
elif unit == "foot":
|
||||
scale = 304.8
|
||||
elif unit == "meter":
|
||||
scale = 1000
|
||||
else:
|
||||
Logger.log("w", "Unrecognised unit %s used. Assuming mm instead", unit)
|
||||
scale = 1
|
||||
|
||||
return Vector(scale, scale, scale)
|
@ -3,25 +3,35 @@
|
||||
The layer height of each profile is now shown in the profile selection menu.
|
||||
|
||||
*Bug fixes
|
||||
Upgrading from version 2.1 on OSX works again.
|
||||
You can import g-code from related machines as profile.
|
||||
Fixed inheritance taking from the wrong extruder.
|
||||
Moved z-hop and extruder selection settings to a better category.
|
||||
Editing material settings has actual effect on the prints again
|
||||
Upgrading from version 2.1 on OSX works again
|
||||
You can import g-code from related machines as profile
|
||||
Fixed inheritance taking from the wrong extruder
|
||||
The i-symbol is updated properly
|
||||
Fixed a freeze that could sometimes occur while printing via Wi-Fi
|
||||
|
||||
[2.3.0]
|
||||
*Multi Extrusion Support
|
||||
Machines with multiple extruders are now supported. Ultimaker 3 printers and Ultimaker Original printers with dual extrusion upgrade kit are currently supported.
|
||||
|
||||
*Network Printing for Ultimaker 3
|
||||
Sending a print to an Ultimaker 3 remotely via the network is now possible. Requires Wi-Fi or LAN to connect to the printer.
|
||||
|
||||
*Print Monitoring for Ultimaker 3
|
||||
You can monitor your print on an Ultimaker 3 with a live camera feed. Requires Wi-Fi or LAN to connect to the printer.
|
||||
|
||||
*Material and Print Core Synchronization
|
||||
Connecting to an Ultimaker 3 now gives you the option to synchronize the materials in Cura with what is loaded in the printer.
|
||||
|
||||
*Speed improvements
|
||||
The first thing you will notice is the speed. STL loading is now 10 to 20 times faster, layerview is significantly faster and slicing speed is slightly improved.
|
||||
|
||||
*Multi Extrusion Support
|
||||
Machines with multiple extruders are now supported. If you’ve got the Ultimaker Original with the dual extrusion upgrade kit, we’ve got you covered.
|
||||
|
||||
*Custom Machine Support
|
||||
It’s now much easier to use Cura with custom machines. You can edit the machine settings when you load a new custom machine.
|
||||
The first thing you will notice is the speed. STL loading is now 10 to 20 times faster, layer view is significantly faster and slicing speed is slightly improved.
|
||||
|
||||
*Improved Position Tool
|
||||
Place objects precisely where you want them by manually entering the values for the position.
|
||||
|
||||
*Custom Machine Support
|
||||
It’s now much easier to use Cura with custom machines. You can edit the machine settings when you load a new custom machine.
|
||||
|
||||
*Improved Grouping
|
||||
It's now possible to transform objects that are already grouped.
|
||||
Select an individual item in a group or merged object and edit as usual. Just Ctrl + Click and edit away.
|
||||
@ -30,7 +40,7 @@ Select an individual item in a group or merged object and edit as usual. Just Ct
|
||||
Profile management is improved. You can now easily see and track changes made to your profiles.
|
||||
|
||||
*Improved Setting Visibility
|
||||
Make multiple settings visible at once. The Visibility Overview setting indicates why a setting is not shown in the sidebar even if it is enabled.
|
||||
Make multiple settings visible at the same time with a checkbox. The Visibility Overview setting indicates why a setting is not shown in the sidebar even if it is enabled.
|
||||
|
||||
*Improved time estimation
|
||||
Time estimations are more accurate. Based on our test time estimations should be within 5% accuracy for Ultimaker printers.
|
||||
@ -46,10 +56,10 @@ Configurations from older installations of Cura 2.1 are automatically imported i
|
||||
|
||||
*Slicing features
|
||||
*Infill Types
|
||||
We've introduced two new infill types: Tetrahedral and Cubic. They change along with the Z-axis for more uniform strength in all directions. There are now 7 infill types to choose from.
|
||||
Two new infill types are now introduced: Tetrahedral and Cubic. They change along with the Z-axis for more uniform strength in all directions. There are now seven infill types to choose from.
|
||||
|
||||
*Gradual Infill
|
||||
Now you can change the density of the infill based on the distance from the top layers. Your objects print faster, use less material, while top surfaces have the same quality.
|
||||
Gradual infill lets users adjust infill density, based on the distance from the top layers. This offers faster printing and reduced material requirements, whilst maintaining surface quality.
|
||||
|
||||
*Set Acceleration and Jerk by Feature
|
||||
You can now set Jerk and Acceleration by feature-type (infill, walls, top/bottom, etc), for more precision.
|
||||
@ -66,7 +76,7 @@ Can’t avoid previously printed parts by horizontal moves? The Z Hop Only Over
|
||||
*Skin and Wall Overlap
|
||||
The Skin Overlap setting allows you to overlap the skin lines with the walls for better adhesion.
|
||||
|
||||
*Control Initial Layer Travel Speed
|
||||
*Adjust Initial Layer Travel Speed
|
||||
Set the travel speed of the initial layer(s) to reduce risk of extruder pulling the print from the bed.
|
||||
|
||||
*Support Interface
|
||||
@ -76,39 +86,39 @@ It is now possible to print a support bottom as well as a support roof. Support
|
||||
Deleting grouped objects
|
||||
Duplicating groups
|
||||
Bridging
|
||||
Drag and drop on the first run on Windows
|
||||
Drag and drop (first Windows run)
|
||||
Unretraction speeds
|
||||
Bottom layer in Spiralize mode
|
||||
Overlap Compensation
|
||||
Retractions on Raft
|
||||
Retractions now occur after each object printed in one-at-a-time mode.
|
||||
Rafts are no longer printed outside of build area.
|
||||
Spiralize no longer only spiralizes the first printed segment only.
|
||||
Line distance is now the actual line distance.
|
||||
Enabling raft doesn’t influence at which height the model is sliced any more.
|
||||
Brim is now always printed just once.
|
||||
Support roofs now only occur just below overhang.
|
||||
Raft retractions
|
||||
Retractions now occur after each object printed in one-at-a-time mode
|
||||
Rafts are no longer printed outside of build area
|
||||
Spiralize no longer limited to the first printed segment only
|
||||
Line distance is now the actual line distance
|
||||
Enabling raft doesn’t influence at which height the model is sliced any more
|
||||
Brim is now always printed just once
|
||||
Support roofs now only occur just below overhang
|
||||
|
||||
*Minor changes
|
||||
Messages are now displayed 30 seconds instead of 10, making it less likely that certain messages are missed.
|
||||
You are now notified if you try to save to a locked SD card.
|
||||
Engine log is now included in the application log.
|
||||
Undo and Redo now work correctly with multiple operations.
|
||||
The last used folder is now remembered (instead of defaulting to home folder).
|
||||
Import X3D files.
|
||||
Made it possible to add multiple Per Model Settings at once.
|
||||
Bed Level and Checkup procedures for UMO+ can now be done without re-adding machine.
|
||||
Combing is applied in more cases and results in better paths.
|
||||
Infill thickness now supports Grid infill also for even multiples of the layer height.
|
||||
Support is no longer removed by unprintable thin parts of the model.
|
||||
Support is now generated on each layer it’s supposed to.
|
||||
Support doesn't go outside overhang areas any more.
|
||||
Support doesn't remove brim around the object any more.
|
||||
Brim is now also generated under the support.
|
||||
Draft shield and Ooze shield get their own brim or raft.
|
||||
Settings shared between skirt and brim now also activate when brim is selected.
|
||||
Compensate overlapping wall parts now also works for inner walls.
|
||||
You can now adjust the speed at which the bed is lowered each layer.
|
||||
Message display time increased to 30 seconds
|
||||
Notification if you try to save to a locked SD card
|
||||
Engine log now included in the application log
|
||||
Undo and Redo now function with multiple operations
|
||||
The last used folder is now remembered rather than defaulting to home folder
|
||||
Import X3D files
|
||||
Made it possible to add multiple Per Model Settings at once
|
||||
Bed Level and Checkup procedures for UMO+ can be performed without re-adding machine
|
||||
Combing applied in more cases and results in better paths
|
||||
Infill thickness now supports Grid infill also for even multiples of the layer height
|
||||
Support is no longer removed by unprintable thin parts of the model
|
||||
Support generated on each appropriate layer
|
||||
Support no longer goes outside overhang areas
|
||||
Support no longer removes brim around the object
|
||||
Brim is now also generated under the support
|
||||
Draft and Ooze shield get their own brim or raft
|
||||
Settings shared between skirt and brim now also activate when brim is selected
|
||||
Compensate overlapping wall parts now also works for inner walls
|
||||
Bed lowering speed can be adjusted for each layer
|
||||
|
||||
[2.1.3]
|
||||
|
||||
|
@ -230,7 +230,7 @@ class CuraEngineBackend(Backend):
|
||||
if job.getResult() == StartSliceJob.StartJobResult.MaterialIncompatible:
|
||||
if Application.getInstance().getPlatformActivity:
|
||||
self._error_message = Message(catalog.i18nc("@info:status",
|
||||
"The selected material is imcompatible with the selected machine or configuration."))
|
||||
"The selected material is incompatible with the selected machine or configuration."))
|
||||
self._error_message.show()
|
||||
self.backendStateChange.emit(BackendState.Error)
|
||||
else:
|
||||
|
@ -75,7 +75,7 @@ class StartSliceJob(Job):
|
||||
return
|
||||
|
||||
# Don't slice if there is a setting with an error value.
|
||||
if not Application.getInstance().getMachineManager().isActiveStackValid:
|
||||
if Application.getInstance().getMachineManager().stacksHaveErrors:
|
||||
self.setResult(StartJobResult.SettingError)
|
||||
return
|
||||
|
||||
|
@ -47,7 +47,17 @@ class GCodeWriter(MeshWriter):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
def write(self, stream, node, mode = MeshWriter.OutputMode.TextMode):
|
||||
## Writes the g-code for the entire scene to a stream.
|
||||
#
|
||||
# Note that even though the function accepts a collection of nodes, the
|
||||
# entire scene is always written to the file since it is not possible to
|
||||
# separate the g-code for just specific nodes.
|
||||
#
|
||||
# \param stream The stream to write the g-code to.
|
||||
# \param nodes This is ignored.
|
||||
# \param mode Additional information on how to format the g-code in the
|
||||
# file. This must always be text mode.
|
||||
def write(self, stream, nodes, mode = MeshWriter.OutputMode.TextMode):
|
||||
if mode != MeshWriter.OutputMode.TextMode:
|
||||
Logger.log("e", "GCode Writer does not support non-text mode.")
|
||||
return False
|
||||
|
@ -66,8 +66,11 @@ class LegacyProfileReader(ProfileReader):
|
||||
def read(self, file_name):
|
||||
if file_name.split(".")[-1] != "ini":
|
||||
return None
|
||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||
if not global_container_stack:
|
||||
return None
|
||||
|
||||
multi_extrusion = Application.getInstance().getGlobalContainerStack().getProperty("machine_extruder_count", "value") > 1
|
||||
multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1
|
||||
if multi_extrusion:
|
||||
Logger.log("e", "Unable to import legacy profile %s. Multi extrusion is not supported", file_name)
|
||||
raise Exception("Unable to import legacy profile. Multi extrusion is not supported")
|
||||
@ -117,7 +120,7 @@ class LegacyProfileReader(ProfileReader):
|
||||
if "translation" not in dict_of_doom:
|
||||
Logger.log("e", "Dictionary of Doom has no translation. Is it the correct JSON file?")
|
||||
return None
|
||||
current_printer_definition = Application.getInstance().getGlobalContainerStack().getBottom()
|
||||
current_printer_definition = global_container_stack.getBottom()
|
||||
profile.setDefinition(current_printer_definition)
|
||||
for new_setting in dict_of_doom["translation"]: #Evaluate all new settings that would get a value from the translations.
|
||||
old_setting_expression = dict_of_doom["translation"][new_setting]
|
||||
@ -137,5 +140,5 @@ class LegacyProfileReader(ProfileReader):
|
||||
Logger.log("i", "A legacy profile was imported but everything evaluates to the defaults, creating an empty profile.")
|
||||
profile.setDirty(True)
|
||||
profile.addMetaDataEntry("type", "quality_changes")
|
||||
profile.addMetaDataEntry("quality", "normal")
|
||||
profile.addMetaDataEntry("quality_type", "normal")
|
||||
return profile
|
@ -84,11 +84,20 @@ class PerObjectSettingsTool(Tool):
|
||||
default_stack = ExtruderManager.getInstance().getExtruderStack(0)
|
||||
if default_stack:
|
||||
default_stack_id = default_stack.getId()
|
||||
else: default_stack_id = global_container_stack.getId()
|
||||
else:
|
||||
default_stack_id = global_container_stack.getId()
|
||||
|
||||
root_node = Application.getInstance().getController().getScene().getRoot()
|
||||
for node in DepthFirstIterator(root_node):
|
||||
node.callDecoration("setActiveExtruder", default_stack_id)
|
||||
new_stack_id = default_stack_id
|
||||
# Get position of old extruder stack for this node
|
||||
old_extruder_pos = node.callDecoration("getActiveExtruderPosition")
|
||||
if old_extruder_pos is not None:
|
||||
# Fetch current (new) extruder stack at position
|
||||
new_stack = ExtruderManager.getInstance().getExtruderStack(old_extruder_pos)
|
||||
if new_stack:
|
||||
new_stack_id = new_stack.getId()
|
||||
node.callDecoration("setActiveExtruder", new_stack_id)
|
||||
|
||||
self._updateEnabled()
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
# Copyright (c) 2016 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import os.path
|
||||
|
||||
from UM.Application import Application
|
||||
@ -17,7 +20,7 @@ class RemovableDriveOutputDevice(OutputDevice):
|
||||
super().__init__(device_id)
|
||||
|
||||
self.setName(device_name)
|
||||
self.setShortDescription(catalog.i18nc("@action:button", "Save to Removable Drive"))
|
||||
self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Save to Removable Drive"))
|
||||
self.setDescription(catalog.i18nc("@item:inlistbox", "Save to Removable Drive {0}").format(device_name))
|
||||
self.setIconName("save_sd")
|
||||
self.setPriority(1)
|
||||
@ -25,7 +28,16 @@ class RemovableDriveOutputDevice(OutputDevice):
|
||||
self._writing = False
|
||||
self._stream = None
|
||||
|
||||
def requestWrite(self, node, file_name = None, filter_by_machine = False):
|
||||
## Request the specified nodes to be written to the removable drive.
|
||||
#
|
||||
# \param nodes A collection of scene nodes that should be written to the
|
||||
# removable drive.
|
||||
# \param file_name \type{string} A suggestion for the file name to write
|
||||
# to. If none is provided, a file name will be made from the names of the
|
||||
# meshes.
|
||||
# \param limit_mimetypes Should we limit the available MIME types to the
|
||||
# MIME types available to the currently active machine?
|
||||
def requestWrite(self, nodes, file_name = None, filter_by_machine = False):
|
||||
filter_by_machine = True # This plugin is indended to be used by machine (regardless of what it was told to do)
|
||||
if self._writing:
|
||||
raise OutputDeviceError.DeviceBusyError()
|
||||
@ -50,15 +62,7 @@ class RemovableDriveOutputDevice(OutputDevice):
|
||||
extension = file_formats[0]["extension"]
|
||||
|
||||
if file_name is None:
|
||||
for n in BreadthFirstIterator(node):
|
||||
if n.getMeshData():
|
||||
file_name = n.getName()
|
||||
if file_name:
|
||||
break
|
||||
|
||||
if not file_name:
|
||||
Logger.log("e", "Could not determine a proper file name when trying to write to %s, aborting", self.getName())
|
||||
raise OutputDeviceError.WriteRequestFailedError()
|
||||
file_name = self._automaticFileName(nodes)
|
||||
|
||||
if extension: # Not empty string.
|
||||
extension = "." + extension
|
||||
@ -67,8 +71,8 @@ class RemovableDriveOutputDevice(OutputDevice):
|
||||
try:
|
||||
Logger.log("d", "Writing to %s", file_name)
|
||||
# Using buffering greatly reduces the write time for many lines of gcode
|
||||
self._stream = open(file_name, "wt", buffering = 1)
|
||||
job = WriteMeshJob(writer, self._stream, node, MeshWriter.OutputMode.TextMode)
|
||||
self._stream = open(file_name, "wt", buffering = 1, encoding = "utf-8")
|
||||
job = WriteMeshJob(writer, self._stream, nodes, MeshWriter.OutputMode.TextMode)
|
||||
job.setFileName(file_name)
|
||||
job.progress.connect(self._onProgress)
|
||||
job.finished.connect(self._onFinished)
|
||||
@ -88,6 +92,22 @@ class RemovableDriveOutputDevice(OutputDevice):
|
||||
Logger.log("e", "Operating system would not let us write to %s: %s", file_name, str(e))
|
||||
raise OutputDeviceError.WriteRequestFailedError(catalog.i18nc("@info:status", "Could not save to <filename>{0}</filename>: <message>{1}</message>").format(file_name, str(e))) from e
|
||||
|
||||
## Generate a file name automatically for the specified nodes to be saved
|
||||
# in.
|
||||
#
|
||||
# The name generated will be the name of one of the nodes. Which node that
|
||||
# is can not be guaranteed.
|
||||
#
|
||||
# \param nodes A collection of nodes for which to generate a file name.
|
||||
def _automaticFileName(self, nodes):
|
||||
for root in nodes:
|
||||
for child in BreadthFirstIterator(root):
|
||||
if child.getMeshData():
|
||||
name = child.getName()
|
||||
if name:
|
||||
return name
|
||||
raise OutputDeviceError.WriteRequestFailedError("Could not find a file name when trying to write to {device}.".format(device = self.getName()))
|
||||
|
||||
def _onProgress(self, job, progress):
|
||||
if hasattr(job, "_message"):
|
||||
job._message.setProgress(progress)
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2015 Ultimaker B.V.
|
||||
# Copyright (c) 2016 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from .avr_isp import stk500v2, ispBase, intelHex
|
||||
@ -25,7 +25,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||
def __init__(self, serial_port):
|
||||
super().__init__(serial_port)
|
||||
self.setName(catalog.i18nc("@item:inmenu", "USB printing"))
|
||||
self.setShortDescription(catalog.i18nc("@action:button", "Print via USB"))
|
||||
self.setShortDescription(catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print via USB"))
|
||||
self.setDescription(catalog.i18nc("@info:tooltip", "Print via USB"))
|
||||
self.setIconName("print")
|
||||
self.setConnectionText(catalog.i18nc("@info:status", "Connected via USB"))
|
||||
@ -426,7 +426,14 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
|
||||
self._error_state = error
|
||||
self.onError.emit()
|
||||
|
||||
def requestWrite(self, node, file_name = None, filter_by_machine = False):
|
||||
## Request the current scene to be sent to a USB-connected printer.
|
||||
#
|
||||
# \param nodes A collection of scene nodes to send. This is ignored.
|
||||
# \param file_name \type{string} A suggestion for a file name to write.
|
||||
# This is ignored.
|
||||
# \param filter_by_machine Whether to filter MIME types by machine. This
|
||||
# is ignored.
|
||||
def requestWrite(self, nodes, file_name = None, filter_by_machine = False):
|
||||
Application.getInstance().showPrintMonitor.emit(True)
|
||||
self.startPrint()
|
||||
|
||||
|
@ -111,7 +111,7 @@ class MachineInstance:
|
||||
user_profile_file = os.path.join(user_storage, urllib.parse.quote_plus(self._name) + "_current_settings.inst.cfg")
|
||||
if not os.path.exists(user_storage):
|
||||
os.makedirs(user_storage)
|
||||
with open(user_profile_file, "w") as file_handle:
|
||||
with open(user_profile_file, "w", encoding = "utf-8") as file_handle:
|
||||
user_profile.write(file_handle)
|
||||
version_upgrade_manager.upgradeExtraFile(user_storage, urllib.parse.quote_plus(self._name), "user")
|
||||
|
||||
|
@ -23,6 +23,10 @@ fragment =
|
||||
uniform vec4 u_outline_color;
|
||||
uniform vec4 u_error_color;
|
||||
|
||||
const vec3 x_axis = vec3(1.0, 0.0, 0.0);
|
||||
const vec3 y_axis = vec3(0.0, 1.0, 0.0);
|
||||
const vec3 z_axis = vec3(0.0, 0.0, 1.0);
|
||||
|
||||
varying vec2 v_uvs;
|
||||
|
||||
float kernel[9];
|
||||
@ -51,7 +55,15 @@ fragment =
|
||||
sum += color * (kernel[i] / u_outline_strength);
|
||||
}
|
||||
|
||||
gl_FragColor = mix(result, vec4(abs(sum.a)) * u_outline_color, abs(sum.a));
|
||||
vec4 layer1 = texture2D(u_layer1, v_uvs);
|
||||
if((layer1.rgb == x_axis || layer1.rgb == y_axis || layer1.rgb == z_axis))
|
||||
{
|
||||
gl_FragColor = result;
|
||||
}
|
||||
else
|
||||
{
|
||||
gl_FragColor = mix(result, vec4(abs(sum.a)) * u_outline_color, abs(sum.a));
|
||||
}
|
||||
}
|
||||
|
||||
[defaults]
|
||||
|
@ -411,6 +411,8 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
|
||||
else:
|
||||
Logger.log("d", "Unsupported material setting %s", key)
|
||||
|
||||
self.addMetaDataEntry("compatible", global_compatibility)
|
||||
|
||||
self._dirty = False
|
||||
|
||||
machines = data.iterfind("./um:settings/um:machine", self.__namespaces)
|
||||
@ -447,6 +449,8 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
|
||||
new_material.setName(self.getName())
|
||||
new_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
||||
new_material.setDefinition(definition)
|
||||
# Don't use setMetadata, as that overrides it for all materials with same base file
|
||||
new_material.getMetaData()["compatible"] = machine_compatibility
|
||||
|
||||
for key, value in global_setting_values.items():
|
||||
new_material.setProperty(key, "value", value, definition)
|
||||
@ -492,7 +496,8 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
|
||||
new_hotend_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
||||
new_hotend_material.setDefinition(definition)
|
||||
new_hotend_material.addMetaDataEntry("variant", variant_containers[0].id)
|
||||
new_hotend_material.addMetaDataEntry("compatible", hotend_compatibility)
|
||||
# Don't use setMetadata, as that overrides it for all materials with same base file
|
||||
new_hotend_material.getMetaData()["compatible"] = hotend_compatibility
|
||||
|
||||
for key, value in global_setting_values.items():
|
||||
new_hotend_material.setProperty(key, "value", value, definition)
|
||||
@ -506,14 +511,6 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
|
||||
new_hotend_material._dirty = False
|
||||
UM.Settings.ContainerRegistry.getInstance().addContainer(new_hotend_material)
|
||||
|
||||
if not global_compatibility:
|
||||
# Change the type of this container so it is not shown as an option in menus.
|
||||
# This uses InstanceContainer.setMetaDataEntry because otherwise all containers that
|
||||
# share this basefile are also updated.
|
||||
dirty = self.isDirty()
|
||||
super().setMetaDataEntry("type", "incompatible_material")
|
||||
super().setDirty(dirty) # reset dirty flag after setMetaDataEntry
|
||||
|
||||
def _addSettingElement(self, builder, instance):
|
||||
try:
|
||||
key = UM.Dictionary.findKey(self.__material_property_setting_map, instance.definition.key)
|
||||
|
@ -276,7 +276,9 @@
|
||||
"label": "Disallowed areas",
|
||||
"description": "A list of polygons with areas the print head is not allowed to enter.",
|
||||
"type": "polygons",
|
||||
"default_value": [],
|
||||
"default_value":
|
||||
[
|
||||
],
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
@ -390,7 +392,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"machine_max_feedrate_x": {
|
||||
"machine_max_feedrate_x":
|
||||
{
|
||||
"label": "Maximum Speed X",
|
||||
"description": "The maximum speed for the motor of the X-direction.",
|
||||
"unit": "mm/s",
|
||||
@ -400,7 +403,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_feedrate_y": {
|
||||
"machine_max_feedrate_y":
|
||||
{
|
||||
"label": "Maximum Speed Y",
|
||||
"description": "The maximum speed for the motor of the Y-direction.",
|
||||
"unit": "mm/s",
|
||||
@ -410,7 +414,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_feedrate_z": {
|
||||
"machine_max_feedrate_z":
|
||||
{
|
||||
"label": "Maximum Speed Z",
|
||||
"description": "The maximum speed for the motor of the Z-direction.",
|
||||
"unit": "mm/s",
|
||||
@ -420,7 +425,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_feedrate_e": {
|
||||
"machine_max_feedrate_e":
|
||||
{
|
||||
"label": "Maximum Feedrate",
|
||||
"description": "The maximum speed of the filament.",
|
||||
"unit": "mm/s",
|
||||
@ -430,7 +436,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_acceleration_x": {
|
||||
"machine_max_acceleration_x":
|
||||
{
|
||||
"label": "Maximum Acceleration X",
|
||||
"description": "Maximum acceleration for the motor of the X-direction",
|
||||
"unit": "mm/s²",
|
||||
@ -440,7 +447,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_acceleration_y": {
|
||||
"machine_max_acceleration_y":
|
||||
{
|
||||
"label": "Maximum Acceleration Y",
|
||||
"description": "Maximum acceleration for the motor of the Y-direction.",
|
||||
"unit": "mm/s²",
|
||||
@ -450,7 +458,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_acceleration_z": {
|
||||
"machine_max_acceleration_z":
|
||||
{
|
||||
"label": "Maximum Acceleration Z",
|
||||
"description": "Maximum acceleration for the motor of the Z-direction.",
|
||||
"unit": "mm/s²",
|
||||
@ -460,7 +469,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_acceleration_e": {
|
||||
"machine_max_acceleration_e":
|
||||
{
|
||||
"label": "Maximum Filament Acceleration",
|
||||
"description": "Maximum acceleration for the motor of the filament.",
|
||||
"unit": "mm/s²",
|
||||
@ -470,7 +480,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_acceleration": {
|
||||
"machine_acceleration":
|
||||
{
|
||||
"label": "Default Acceleration",
|
||||
"description": "The default acceleration of print head movement.",
|
||||
"unit": "mm/s²",
|
||||
@ -480,7 +491,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_jerk_xy": {
|
||||
"machine_max_jerk_xy":
|
||||
{
|
||||
"label": "Default X-Y Jerk",
|
||||
"description": "Default jerk for movement in the horizontal plane.",
|
||||
"unit": "mm/s",
|
||||
@ -490,7 +502,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_jerk_z": {
|
||||
"machine_max_jerk_z":
|
||||
{
|
||||
"label": "Default Z Jerk",
|
||||
"description": "Default jerk for the motor of the Z-direction.",
|
||||
"unit": "mm/s",
|
||||
@ -500,7 +513,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_max_jerk_e": {
|
||||
"machine_max_jerk_e":
|
||||
{
|
||||
"label": "Default Filament Jerk",
|
||||
"description": "Default jerk for the motor of the filament.",
|
||||
"unit": "mm/s",
|
||||
@ -510,7 +524,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"machine_minimum_feedrate": {
|
||||
"machine_minimum_feedrate":
|
||||
{
|
||||
"label": "Minimum Feedrate",
|
||||
"description": "The minimal movement speed of the print head.",
|
||||
"unit": "mm/s",
|
||||
@ -579,7 +594,7 @@
|
||||
"minimum_value": "0.0001",
|
||||
"minimum_value_warning": "0.75 * machine_nozzle_size",
|
||||
"maximum_value_warning": "2 * machine_nozzle_size",
|
||||
"value":"line_width",
|
||||
"value": "line_width",
|
||||
"default_value": 0.4,
|
||||
"type": "float",
|
||||
"settable_per_mesh": true,
|
||||
@ -594,7 +609,7 @@
|
||||
"minimum_value_warning": "0.75 * machine_nozzle_size if outer_inset_first else 0.1 * machine_nozzle_size",
|
||||
"maximum_value_warning": "2 * machine_nozzle_size",
|
||||
"default_value": 0.4,
|
||||
"value":"wall_line_width",
|
||||
"value": "wall_line_width",
|
||||
"type": "float",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
@ -607,7 +622,7 @@
|
||||
"minimum_value_warning": "0.5 * machine_nozzle_size",
|
||||
"maximum_value_warning": "2 * machine_nozzle_size",
|
||||
"default_value": 0.4,
|
||||
"value":"wall_line_width",
|
||||
"value": "wall_line_width",
|
||||
"type": "float",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
@ -849,7 +864,7 @@
|
||||
"maximum_value_warning": "machine_nozzle_size",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"outer_inset_first":
|
||||
"outer_inset_first":
|
||||
{
|
||||
"label": "Outer Before Inner Walls",
|
||||
"description": "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs.",
|
||||
@ -874,7 +889,8 @@
|
||||
"settable_per_mesh": true,
|
||||
"children":
|
||||
{
|
||||
"travel_compensate_overlapping_walls_0_enabled": {
|
||||
"travel_compensate_overlapping_walls_0_enabled":
|
||||
{
|
||||
"label": "Compensate Outer Wall Overlaps",
|
||||
"description": "Compensate the flow for parts of an outer wall being printed where there is already a wall in place.",
|
||||
"type": "bool",
|
||||
@ -882,7 +898,8 @@
|
||||
"value": "travel_compensate_overlapping_walls_enabled",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"travel_compensate_overlapping_walls_x_enabled": {
|
||||
"travel_compensate_overlapping_walls_x_enabled":
|
||||
{
|
||||
"label": "Compensate Inner Wall Overlaps",
|
||||
"description": "Compensate the flow for parts of an inner wall being printed where there is already a wall in place.",
|
||||
"type": "bool",
|
||||
@ -1010,7 +1027,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skin_overlap": {
|
||||
"skin_overlap":
|
||||
{
|
||||
"label": "Skin Overlap Percentage",
|
||||
"description": "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin.",
|
||||
"unit": "%",
|
||||
@ -1021,8 +1039,10 @@
|
||||
"value": "5 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "top_bottom_pattern != 'concentric'",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"skin_overlap_mm": {
|
||||
"children":
|
||||
{
|
||||
"skin_overlap_mm":
|
||||
{
|
||||
"label": "Skin Overlap",
|
||||
"description": "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin.",
|
||||
"unit": "mm",
|
||||
@ -1033,9 +1053,9 @@
|
||||
"value": "skin_line_width * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0",
|
||||
"enabled": "top_bottom_pattern != 'concentric'",
|
||||
"settable_per_mesh": true
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
"infill_wipe_dist":
|
||||
{
|
||||
"label": "Infill Wipe Distance",
|
||||
@ -1143,7 +1163,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_extrusion_cool_down_speed": {
|
||||
"material_extrusion_cool_down_speed":
|
||||
{
|
||||
"label": "Extrusion Cool Down Speed Modifier",
|
||||
"description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.",
|
||||
"unit": "°C/s",
|
||||
@ -1156,7 +1177,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_bed_temperature": {
|
||||
"material_bed_temperature":
|
||||
{
|
||||
"label": "Build Plate Temperature",
|
||||
"description": "The temperature used for the heated build plate. Set at 0 to pre-heat the printer manually.",
|
||||
"unit": "°C",
|
||||
@ -1171,7 +1193,8 @@
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false
|
||||
},
|
||||
"material_diameter": {
|
||||
"material_diameter":
|
||||
{
|
||||
"label": "Diameter",
|
||||
"description": "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament.",
|
||||
"unit": "mm",
|
||||
@ -1183,7 +1206,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"material_flow": {
|
||||
"material_flow":
|
||||
{
|
||||
"label": "Flow",
|
||||
"description": "Flow compensation: the amount of material extruded is multiplied by this value.",
|
||||
"unit": "%",
|
||||
@ -1194,7 +1218,8 @@
|
||||
"maximum_value_warning": "150",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"retraction_enable": {
|
||||
"retraction_enable":
|
||||
{
|
||||
"label": "Enable Retraction",
|
||||
"description": "Retract the filament when the nozzle is moving over a non-printed area. ",
|
||||
"type": "bool",
|
||||
@ -1202,7 +1227,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_amount": {
|
||||
"retraction_amount":
|
||||
{
|
||||
"label": "Retraction Distance",
|
||||
"description": "The length of material retracted during a retraction move.",
|
||||
"unit": "mm",
|
||||
@ -1214,7 +1240,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_speed": {
|
||||
"retraction_speed":
|
||||
{
|
||||
"label": "Retraction Speed",
|
||||
"description": "The speed at which the filament is retracted and primed during a retraction move.",
|
||||
"unit": "mm/s",
|
||||
@ -1227,8 +1254,10 @@
|
||||
"enabled": "retraction_enable",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"children": {
|
||||
"retraction_retract_speed": {
|
||||
"children":
|
||||
{
|
||||
"retraction_retract_speed":
|
||||
{
|
||||
"label": "Retraction Retract Speed",
|
||||
"description": "The speed at which the filament is retracted during a retraction move.",
|
||||
"unit": "mm/s",
|
||||
@ -1243,7 +1272,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_prime_speed": {
|
||||
"retraction_prime_speed":
|
||||
{
|
||||
"label": "Retraction Prime Speed",
|
||||
"description": "The speed at which the filament is primed during a retraction move.",
|
||||
"unit": "mm/s",
|
||||
@ -1260,7 +1290,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"retraction_extra_prime_amount": {
|
||||
"retraction_extra_prime_amount":
|
||||
{
|
||||
"label": "Retraction Extra Prime Amount",
|
||||
"description": "Some material can ooze away during a travel move, which can be compensated for here.",
|
||||
"unit": "mm³",
|
||||
@ -1272,7 +1303,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_min_travel": {
|
||||
"retraction_min_travel":
|
||||
{
|
||||
"label": "Retraction Minimum Travel",
|
||||
"description": "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area.",
|
||||
"unit": "mm",
|
||||
@ -1285,7 +1317,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_count_max": {
|
||||
"retraction_count_max":
|
||||
{
|
||||
"label": "Maximum Retraction Count",
|
||||
"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_value": 90,
|
||||
@ -1296,7 +1329,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"retraction_extrusion_window": {
|
||||
"retraction_extrusion_window":
|
||||
{
|
||||
"label": "Minimum Extrusion Distance Window",
|
||||
"description": "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited.",
|
||||
"unit": "mm",
|
||||
@ -1560,7 +1594,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"speed_layer_0": {
|
||||
"speed_layer_0":
|
||||
{
|
||||
"label": "Initial Layer Speed",
|
||||
"description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate.",
|
||||
"unit": "mm/s",
|
||||
@ -1601,7 +1636,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"skirt_brim_speed": {
|
||||
"skirt_brim_speed":
|
||||
{
|
||||
"label": "Skirt/Brim Speed",
|
||||
"description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed.",
|
||||
"unit": "mm/s",
|
||||
@ -1664,9 +1700,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
|
||||
|
||||
"acceleration_enabled": {
|
||||
"acceleration_enabled":
|
||||
{
|
||||
"label": "Enable Acceleration Control",
|
||||
"description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.",
|
||||
"type": "bool",
|
||||
@ -1675,7 +1710,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"acceleration_print": {
|
||||
"acceleration_print":
|
||||
{
|
||||
"label": "Print Acceleration",
|
||||
"description": "The acceleration with which printing happens.",
|
||||
"unit": "mm/s²",
|
||||
@ -1686,8 +1722,10 @@
|
||||
"default_value": 3000,
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"acceleration_infill": {
|
||||
"children":
|
||||
{
|
||||
"acceleration_infill":
|
||||
{
|
||||
"label": "Infill Acceleration",
|
||||
"description": "The acceleration with which infill is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1700,7 +1738,8 @@
|
||||
"enabled": "resolveOrValue('acceleration_enabled') and infill_sparse_density > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"acceleration_wall": {
|
||||
"acceleration_wall":
|
||||
{
|
||||
"label": "Wall Acceleration",
|
||||
"description": "The acceleration with which the walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1712,8 +1751,10 @@
|
||||
"value": "acceleration_print",
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"acceleration_wall_0": {
|
||||
"children":
|
||||
{
|
||||
"acceleration_wall_0":
|
||||
{
|
||||
"label": "Outer Wall Acceleration",
|
||||
"description": "The acceleration with which the outermost walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1726,7 +1767,8 @@
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"acceleration_wall_x": {
|
||||
"acceleration_wall_x":
|
||||
{
|
||||
"label": "Inner Wall Acceleration",
|
||||
"description": "The acceleration with which all inner walls are printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1741,7 +1783,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"acceleration_topbottom": {
|
||||
"acceleration_topbottom":
|
||||
{
|
||||
"label": "Top/Bottom Acceleration",
|
||||
"description": "The acceleration with which top/bottom layers are printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1754,7 +1797,8 @@
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"acceleration_support": {
|
||||
"acceleration_support":
|
||||
{
|
||||
"label": "Support Acceleration",
|
||||
"description": "The acceleration with which the support structure is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1768,8 +1812,10 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "support_extruder_nr",
|
||||
"settable_per_extruder": true,
|
||||
"children": {
|
||||
"acceleration_support_infill": {
|
||||
"children":
|
||||
{
|
||||
"acceleration_support_infill":
|
||||
{
|
||||
"label": "Support Infill Acceleration",
|
||||
"description": "The acceleration with which the infill of support is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1784,7 +1830,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"acceleration_support_interface": {
|
||||
"acceleration_support_interface":
|
||||
{
|
||||
"label": "Support Interface Acceleration",
|
||||
"description": "The acceleration with which the roofs and bottoms of support are printed. Printing them at lower accelerations can improve overhang quality.",
|
||||
"unit": "mm/s²",
|
||||
@ -1801,7 +1848,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"acceleration_prime_tower": {
|
||||
"acceleration_prime_tower":
|
||||
{
|
||||
"label": "Prime Tower Acceleration",
|
||||
"description": "The acceleration with which the prime tower is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -1816,7 +1864,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"acceleration_travel": {
|
||||
"acceleration_travel":
|
||||
{
|
||||
"label": "Travel Acceleration",
|
||||
"description": "The acceleration with which travel moves are made.",
|
||||
"unit": "mm/s²",
|
||||
@ -1829,7 +1878,8 @@
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": false
|
||||
},
|
||||
"acceleration_layer_0": {
|
||||
"acceleration_layer_0":
|
||||
{
|
||||
"label": "Initial Layer Acceleration",
|
||||
"description": "The acceleration for the initial layer.",
|
||||
"unit": "mm/s²",
|
||||
@ -1841,7 +1891,8 @@
|
||||
"maximum_value_warning": "10000",
|
||||
"enabled": "resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"children":
|
||||
{
|
||||
"acceleration_print_layer_0":
|
||||
{
|
||||
"label": "Initial Layer Print Acceleration",
|
||||
@ -1873,7 +1924,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"acceleration_skirt_brim": {
|
||||
"acceleration_skirt_brim":
|
||||
{
|
||||
"label": "Skirt/Brim Acceleration",
|
||||
"description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.",
|
||||
"unit": "mm/s²",
|
||||
@ -1887,8 +1939,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
|
||||
"jerk_enabled": {
|
||||
"jerk_enabled":
|
||||
{
|
||||
"label": "Enable Jerk Control",
|
||||
"description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.",
|
||||
"type": "bool",
|
||||
@ -1897,7 +1949,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"jerk_print": {
|
||||
"jerk_print":
|
||||
{
|
||||
"label": "Print Jerk",
|
||||
"description": "The maximum instantaneous velocity change of the print head.",
|
||||
"unit": "mm/s",
|
||||
@ -1908,8 +1961,10 @@
|
||||
"default_value": 20,
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"jerk_infill": {
|
||||
"children":
|
||||
{
|
||||
"jerk_infill":
|
||||
{
|
||||
"label": "Infill Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which infill is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1922,7 +1977,8 @@
|
||||
"enabled": "resolveOrValue('jerk_enabled') and infill_sparse_density > 0",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"jerk_wall": {
|
||||
"jerk_wall":
|
||||
{
|
||||
"label": "Wall Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the walls are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1934,8 +1990,10 @@
|
||||
"value": "jerk_print",
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"jerk_wall_0": {
|
||||
"children":
|
||||
{
|
||||
"jerk_wall_0":
|
||||
{
|
||||
"label": "Outer Wall Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the outermost walls are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1948,7 +2006,8 @@
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"jerk_wall_x": {
|
||||
"jerk_wall_x":
|
||||
{
|
||||
"label": "Inner Wall Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which all inner walls are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1963,7 +2022,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jerk_topbottom": {
|
||||
"jerk_topbottom":
|
||||
{
|
||||
"label": "Top/Bottom Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which top/bottom layers are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1976,7 +2036,8 @@
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"jerk_support": {
|
||||
"jerk_support":
|
||||
{
|
||||
"label": "Support Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the support structure is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -1990,8 +2051,10 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"limit_to_extruder": "support_extruder_nr",
|
||||
"children": {
|
||||
"jerk_support_infill": {
|
||||
"children":
|
||||
{
|
||||
"jerk_support_infill":
|
||||
{
|
||||
"label": "Support Infill Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the infill of support is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -2006,7 +2069,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true
|
||||
},
|
||||
"jerk_support_interface": {
|
||||
"jerk_support_interface":
|
||||
{
|
||||
"label": "Support Interface Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the roofs and bottoms of support are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -2023,7 +2087,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jerk_prime_tower": {
|
||||
"jerk_prime_tower":
|
||||
{
|
||||
"label": "Prime Tower Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the prime tower is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -2038,7 +2103,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jerk_travel": {
|
||||
"jerk_travel":
|
||||
{
|
||||
"label": "Travel Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which travel moves are made.",
|
||||
"unit": "mm/s",
|
||||
@ -2051,7 +2117,8 @@
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": false
|
||||
},
|
||||
"jerk_layer_0": {
|
||||
"jerk_layer_0":
|
||||
{
|
||||
"label": "Initial Layer Jerk",
|
||||
"description": "The print maximum instantaneous velocity change for the initial layer.",
|
||||
"unit": "mm/s",
|
||||
@ -2063,7 +2130,8 @@
|
||||
"maximum_value_warning": "50",
|
||||
"enabled": "resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": true,
|
||||
"children": {
|
||||
"children":
|
||||
{
|
||||
"jerk_print_layer_0":
|
||||
{
|
||||
"label": "Initial Layer Print Jerk",
|
||||
@ -2095,7 +2163,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"jerk_skirt_brim": {
|
||||
"jerk_skirt_brim":
|
||||
{
|
||||
"label": "Skirt/Brim Jerk",
|
||||
"description": "The maximum instantaneous velocity change with which the skirt and brim are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -2306,7 +2375,7 @@
|
||||
"cool_min_layer_time":
|
||||
{
|
||||
"label": "Minimum Layer Time",
|
||||
"description": "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer.",
|
||||
"description": "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.",
|
||||
"unit": "s",
|
||||
"type": "float",
|
||||
"default_value": 5,
|
||||
@ -2473,7 +2542,8 @@
|
||||
"limit_to_extruder": "support_infill_extruder_nr",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"children": {
|
||||
"children":
|
||||
{
|
||||
"support_line_distance":
|
||||
{
|
||||
"label": "Support Line Distance",
|
||||
@ -2548,11 +2618,13 @@
|
||||
"enabled": "support_enable",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_xy_overrides_z": {
|
||||
"support_xy_overrides_z":
|
||||
{
|
||||
"label": "Support Distance Priority",
|
||||
"description": "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs.",
|
||||
"type": "enum",
|
||||
"options": {
|
||||
"options":
|
||||
{
|
||||
"xy_overrides_z": "X/Y overrides Z",
|
||||
"z_overrides_xy": "Z overrides X/Y"
|
||||
},
|
||||
@ -2561,7 +2633,8 @@
|
||||
"enabled": "support_enable",
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"support_xy_distance_overhang": {
|
||||
"support_xy_distance_overhang":
|
||||
{
|
||||
"label": "Minimum Support X/Y Distance",
|
||||
"description": "Distance of the support structure from the overhang in the X/Y directions. ",
|
||||
"unit": "mm",
|
||||
@ -2959,7 +3032,8 @@
|
||||
"settable_per_extruder": true,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
"layer_0_z_overlap": {
|
||||
"layer_0_z_overlap":
|
||||
{
|
||||
"label": "Initial Layer Z Overlap",
|
||||
"description": "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.",
|
||||
"unit": "mm",
|
||||
@ -3197,7 +3271,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"raft_acceleration": {
|
||||
"raft_acceleration":
|
||||
{
|
||||
"label": "Raft Print Acceleration",
|
||||
"description": "The acceleration with which the raft is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -3210,8 +3285,10 @@
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')",
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr",
|
||||
"children": {
|
||||
"raft_surface_acceleration": {
|
||||
"children":
|
||||
{
|
||||
"raft_surface_acceleration":
|
||||
{
|
||||
"label": "Raft Top Print Acceleration",
|
||||
"description": "The acceleration with which the top raft layers are printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -3225,7 +3302,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_acceleration": {
|
||||
"raft_interface_acceleration":
|
||||
{
|
||||
"label": "Raft Middle Print Acceleration",
|
||||
"description": "The acceleration with which the middle raft layer is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -3239,7 +3317,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_acceleration": {
|
||||
"raft_base_acceleration":
|
||||
{
|
||||
"label": "Raft Base Print Acceleration",
|
||||
"description": "The acceleration with which the base raft layer is printed.",
|
||||
"unit": "mm/s²",
|
||||
@ -3255,7 +3334,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"raft_jerk": {
|
||||
"raft_jerk":
|
||||
{
|
||||
"label": "Raft Print Jerk",
|
||||
"description": "The jerk with which the raft is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -3268,8 +3348,10 @@
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')",
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr",
|
||||
"children": {
|
||||
"raft_surface_jerk": {
|
||||
"children":
|
||||
{
|
||||
"raft_surface_jerk":
|
||||
{
|
||||
"label": "Raft Top Print Jerk",
|
||||
"description": "The jerk with which the top raft layers are printed.",
|
||||
"unit": "mm/s",
|
||||
@ -3283,7 +3365,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_interface_jerk": {
|
||||
"raft_interface_jerk":
|
||||
{
|
||||
"label": "Raft Middle Print Jerk",
|
||||
"description": "The jerk with which the middle raft layer is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -3297,7 +3380,8 @@
|
||||
"settable_per_mesh": false,
|
||||
"limit_to_extruder": "adhesion_extruder_nr"
|
||||
},
|
||||
"raft_base_jerk": {
|
||||
"raft_base_jerk":
|
||||
{
|
||||
"label": "Raft Base Print Jerk",
|
||||
"description": "The jerk with which the base raft layer is printed.",
|
||||
"unit": "mm/s",
|
||||
@ -3313,7 +3397,8 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"raft_fan_speed": {
|
||||
"raft_fan_speed":
|
||||
{
|
||||
"label": "Raft Fan Speed",
|
||||
"description": "The fan speed for the raft.",
|
||||
"unit": "%",
|
||||
@ -3558,6 +3643,17 @@
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"settable_per_mesh": true
|
||||
},
|
||||
"carve_multiple_volumes":
|
||||
{
|
||||
"label": "Remove Mesh Intersection",
|
||||
"description": "Remove areas where multiple objects are overlapping with each other. This may be used if merged dual material objects overlap with each other.",
|
||||
"type": "bool",
|
||||
"default_value": true,
|
||||
"value": "machine_extruder_count > 1",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3694,13 +3790,15 @@
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": false
|
||||
},
|
||||
"conical_overhang_enabled": {
|
||||
"conical_overhang_enabled":
|
||||
{
|
||||
"label": "Make Overhang Printable",
|
||||
"description": "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical.",
|
||||
"type": "bool",
|
||||
"default_value": false
|
||||
},
|
||||
"conical_overhang_angle": {
|
||||
"conical_overhang_angle":
|
||||
{
|
||||
"label": "Maximum Model Angle",
|
||||
"description": "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way.",
|
||||
"unit": "°",
|
||||
|
51
resources/definitions/printrbot_play.def.json
Normal file
51
resources/definitions/printrbot_play.def.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"id": "printrbot_play",
|
||||
"version": 2,
|
||||
"name": "Printrbot Play",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Chris Pearson",
|
||||
"manufacturer": "Printrbot",
|
||||
"category": "Other",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "printrbot_play.stl"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Printrbot Play" },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"machine_width": { "default_value": 100 },
|
||||
"machine_depth": { "default_value": 100 },
|
||||
"machine_height": { "default_value": 130 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 0.7 },
|
||||
"retraction_speed": { "default_value": 45},
|
||||
"adhesion_type": { "default_value": "skirt" },
|
||||
"machine_head_with_fans_polygon": { "default_value": [[-32,999],[37,999],[37,-32],[-32,-32]] },
|
||||
"gantry_height": { "default_value": 55 },
|
||||
"speed_print": { "default_value": 50 },
|
||||
"speed_travel": { "default_value": 55 },
|
||||
"machine_max_feedrate_x": {"default_value": 125},
|
||||
"machine_max_feedrate_y": {"default_value": 125},
|
||||
"machine_max_feedrate_z": { "default_value": 5 },
|
||||
"machine_max_acceleration_x": { "default_value": 2000 },
|
||||
"machine_max_acceleration_y": { "default_value": 2000 },
|
||||
"machine_max_acceleration_z": { "default_value": 30 },
|
||||
"machine_max_acceleration_e": { "default_value": 10000 },
|
||||
"machine_max_jerk_xy": { "default_value": 20 },
|
||||
"machine_max_jerk_z": { "default_value": 0.4 },
|
||||
"machine_max_jerk_e": { "default_value": 5.0 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM106 ;start with the fan on for filament cooling\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG29 ;run auto bed leveling\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 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+0.5 E-5 X-20 Y-20 F9000 ;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\nM84 ;steppers off\nG90 ;absolute positioning"
|
||||
}
|
||||
}
|
||||
}
|
20
resources/definitions/printrbot_play_heated.def.json
Normal file
20
resources/definitions/printrbot_play_heated.def.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"id": "printrbot_play_heated",
|
||||
"version": 2,
|
||||
"name": "Printrbot Play (Heated Bed)",
|
||||
"inherits": "printrbot_play",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Chris Pearson",
|
||||
"manufacturer": "Printrbot",
|
||||
"category": "Other",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": ""
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Printrbot Play (Heated Bed)" },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_depth": { "default_value": 203 }
|
||||
}
|
||||
}
|
@ -9,6 +9,7 @@
|
||||
"manufacturer": "PrintrBot",
|
||||
"category": "Other",
|
||||
"platform": "printrbot_simple_metal_platform.stl",
|
||||
"platform_offset": [0, -3.45, 0],
|
||||
"file_formats": "text/x-gcode"
|
||||
},
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
"machine_name": { "default_value": "Ultimaker 2" },
|
||||
"machine_start_gcode" : {
|
||||
"default_value": "",
|
||||
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG1 X10 Y0 F4000;move X/Y to min endstops\\nG28 Z0 ;move Z to bottom endstops\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
|
||||
"value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"G21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nG28 Z0 ;move Z to bottom endstops\\nG28 X0 Y0 ;move X/Y to endstops\\nG1 X15 Y0 F4000 ;move X/Y to front of printer\\nG1 Z15.0 F9000 ;move the platform to 15mm\\nG92 E0 ;zero the extruded length\\nG1 F200 E10 ;extrude 10 mm of feed stock\\nG92 E0 ;zero the extruded length again\\nG1 F9000\\n;Put printing message on LCD screen\\nM117 Printing...\""
|
||||
},
|
||||
"machine_end_gcode" : {
|
||||
"default_value": "",
|
||||
|
@ -40,7 +40,7 @@
|
||||
"value": "speed_wall_0"
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 203
|
||||
"default_value": 205
|
||||
},
|
||||
"machine_show_variants": {
|
||||
"default_value": true
|
||||
|
@ -38,8 +38,8 @@
|
||||
"machine_depth": { "default_value": 215 },
|
||||
"machine_height": { "default_value": 200 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 0.8 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 1 },
|
||||
"machine_nozzle_heat_up_speed": { "default_value": 1.4 },
|
||||
"machine_nozzle_cool_down_speed": { "default_value": 0.8 },
|
||||
"machine_head_with_fans_polygon":
|
||||
{
|
||||
"default_value":
|
||||
@ -50,14 +50,12 @@
|
||||
[ 60, -30 ]
|
||||
]
|
||||
},
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"machine_gcode_flavor": { "default_value": "Griffin" },
|
||||
"machine_max_feedrate_x": { "default_value": 300 },
|
||||
"machine_max_feedrate_y": { "default_value": 300 },
|
||||
"machine_max_feedrate_z": { "default_value": 40 },
|
||||
"machine_acceleration": { "default_value": 3000 },
|
||||
"gantry_height": { "default_value": 60 },
|
||||
"machine_use_extruder_offset_to_offset_coords": { "default_value": true },
|
||||
"machine_disallowed_areas": { "default_value": [
|
||||
[[-91.5, -115], [-115, -115], [-115, -104.6], [-91.5, -104.6]],
|
||||
[[-99.5, -104.6], [-115, -104.6], [-115, 104.6], [-99.5, 104.6]],
|
||||
@ -69,16 +67,93 @@
|
||||
[[100.5, -54.5], [100.5, 99.3], [115, 99.3], [115, -54.5]],
|
||||
[[77, 99.3], [77, 115], [115, 115], [115, 99.3]]
|
||||
]},
|
||||
"machine_show_variants": { "default_value": true },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"print_sequence": {"enabled": false},
|
||||
"extruder_prime_pos_abs": { "default_value": true },
|
||||
"extruder_prime_pos_x": { "enabled": false },
|
||||
"extruder_prime_pos_y": { "enabled": false },
|
||||
"machine_start_gcode": { "default_value": "" },
|
||||
"machine_end_gcode": { "default_value": "" },
|
||||
"prime_tower_position_x": { "default_value": 175 },
|
||||
"prime_tower_position_y": { "default_value": 179 },
|
||||
"speed_prime_tower": { "default_value": 30 }
|
||||
|
||||
"extruder_prime_pos_x": { "enabled": false },
|
||||
"extruder_prime_pos_y": { "enabled": false },
|
||||
"print_sequence": {"enabled": false},
|
||||
|
||||
"acceleration_enabled": { "value": "True" },
|
||||
"acceleration_layer_0": { "value": "acceleration_topbottom" },
|
||||
"acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_print": { "value": "4000" },
|
||||
"acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" },
|
||||
"acceleration_support_interface": { "value": "acceleration_topbottom" },
|
||||
"acceleration_topbottom": { "value": "math.ceil(acceleration_print * 500 / 4000)" },
|
||||
"acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 4000)" },
|
||||
"acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 500 / 1000)" },
|
||||
"brim_width": { "value": "3" },
|
||||
"cool_fan_full_at_height": { "value": "layer_height_0 + 4 * layer_height" },
|
||||
"cool_fan_speed": { "value": "50" },
|
||||
"cool_fan_speed_max": { "value": "100" },
|
||||
"cool_min_speed": { "value": "5" },
|
||||
"infill_line_width": { "value": "round(line_width * 0.5 / 0.35, 2)" },
|
||||
"infill_overlap": { "value": "0" },
|
||||
"infill_pattern": { "value": "'triangles'" },
|
||||
"infill_wipe_dist": { "value": "0" },
|
||||
"jerk_enabled": { "value": "True" },
|
||||
"jerk_layer_0": { "value": "jerk_topbottom" },
|
||||
"jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_print": { "value": "25" },
|
||||
"jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" },
|
||||
"jerk_support_interface": { "value": "jerk_topbottom" },
|
||||
"jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" },
|
||||
"jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" },
|
||||
"jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" },
|
||||
"layer_height_0": { "value": "round(machine_nozzle_size / 1.5, 2)" },
|
||||
"line_width": { "value": "machine_nozzle_size * 0.875" },
|
||||
"machine_min_cool_heat_time_window": { "value": "15" },
|
||||
"material_print_temperature": { "value": "200" },
|
||||
"material_standby_temperature": { "value": "100" },
|
||||
"multiple_mesh_overlap": { "value": "0" },
|
||||
"prime_tower_enable": { "value": "True" },
|
||||
"raft_airgap": { "value": "0" },
|
||||
"raft_base_speed": { "value": "20" },
|
||||
"raft_base_thickness": { "value": "0.3" },
|
||||
"raft_interface_line_spacing": { "value": "0.5" },
|
||||
"raft_interface_line_width": { "value": "0.5" },
|
||||
"raft_interface_speed": { "value": "20" },
|
||||
"raft_interface_thickness": { "value": "0.2" },
|
||||
"raft_jerk": { "value": "jerk_layer_0" },
|
||||
"raft_margin": { "value": "10" },
|
||||
"raft_speed": { "value": "25" },
|
||||
"raft_surface_layers": { "value": "1" },
|
||||
"retraction_amount": { "value": "2" },
|
||||
"retraction_count_max": { "value": "10" },
|
||||
"retraction_extrusion_window": { "value": "1" },
|
||||
"retraction_hop": { "value": "2" },
|
||||
"retraction_hop_enabled": { "value": "True" },
|
||||
"retraction_hop_only_when_collides": { "value": "True" },
|
||||
"retraction_min_travel": { "value": "5" },
|
||||
"retraction_prime_speed": { "value": "15" },
|
||||
"skin_overlap": { "value": "10" },
|
||||
"speed_layer_0": { "value": "20" },
|
||||
"speed_prime_tower": { "value": "speed_topbottom" },
|
||||
"speed_print": { "value": "35" },
|
||||
"speed_support": { "value": "speed_wall_0" },
|
||||
"speed_support_interface": { "value": "speed_topbottom" },
|
||||
"speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" },
|
||||
"speed_travel": { "value": "250" },
|
||||
"speed_wall": { "value": "math.ceil(speed_print * 30 / 35)" },
|
||||
"speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 30)" },
|
||||
"speed_wall_x": { "value": "speed_wall" },
|
||||
"support_angle": { "value": "45" },
|
||||
"support_pattern": { "value": "'triangles'" },
|
||||
"support_use_towers": { "value": "False" },
|
||||
"support_xy_distance": { "value": "wall_line_width_0 * 2.5" },
|
||||
"support_xy_distance_overhang": { "value": "wall_line_width_0" },
|
||||
"support_z_distance": { "value": "0" },
|
||||
"switch_extruder_prime_speed": { "value": "15" },
|
||||
"switch_extruder_retraction_amount": { "value": "8" },
|
||||
"top_bottom_thickness": { "value": "1" },
|
||||
"travel_avoid_distance": { "value": "3" },
|
||||
"wall_0_inset": { "value": "0" },
|
||||
"wall_line_width_x": { "value": "round(line_width * 0.3 / 0.35, 2)" },
|
||||
"wall_thickness": { "value": "1" }
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
"platform_texture": "Ultimaker3Extendedbackplate.png",
|
||||
"platform_offset": [0, 0, 0],
|
||||
"has_machine_quality": true,
|
||||
"has_machine_materials": true,
|
||||
"has_machine_materials": true,
|
||||
"has_variant_materials": true,
|
||||
"has_materials": true,
|
||||
"has_variants": true,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1836,8 +1836,8 @@ msgstr "Empfohlen"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Erweitert"
|
||||
msgid "Custom"
|
||||
msgstr "Benutzerdefiniert"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -1916,8 +1916,8 @@ msgstr "Recommended"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Advanced"
|
||||
msgid "Custom"
|
||||
msgstr "Custom"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -1836,8 +1836,8 @@ msgstr "Recomendado"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Avanzado"
|
||||
msgid "Custom"
|
||||
msgstr "Personalizado"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: http://github.com/ultimaker/uranium\n"
|
||||
"POT-Creation-Date: 2016-09-20 14:48+0000\n"
|
||||
"POT-Creation-Date: 2016-10-27 11:28+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
|
@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Uranium json setting files\n"
|
||||
"Report-Msgid-Bugs-To: http://github.com/ultimaker/uranium\n"
|
||||
"POT-Creation-Date: 2016-09-20 14:48+0000\n"
|
||||
"POT-Creation-Date: 2016-10-27 11:28+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE\n"
|
||||
@ -815,6 +815,20 @@ msgid ""
|
||||
"outside of the model."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "outer_inset_first label"
|
||||
msgid "Outer Before Inner Walls"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "outer_inset_first description"
|
||||
msgid ""
|
||||
"Prints walls in order of outside to inside when enabled. This can help "
|
||||
"improve dimensional accuracy in X and Y when using a high viscosity plastic "
|
||||
"like ABS; however it can decrease outer surface print quality, especially on "
|
||||
"overhangs."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "alternate_extra_perimeter label"
|
||||
msgid "Alternate Extra Wall"
|
||||
@ -1310,42 +1324,6 @@ msgid ""
|
||||
"material is limited."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_enabled label"
|
||||
msgid "Z Hop when Retracted"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_enabled description"
|
||||
msgid ""
|
||||
"Whenever a retraction is done, the build plate is lowered to create "
|
||||
"clearance between the nozzle and the print. It prevents the nozzle from "
|
||||
"hitting the print during travel moves, reducing the chance to knock the "
|
||||
"print from the build plate."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_only_when_collides label"
|
||||
msgid "Z Hop Only Over Printed Parts"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_only_when_collides description"
|
||||
msgid ""
|
||||
"Only perform a Z Hop when moving over printed parts which cannot be avoided "
|
||||
"by horizontal motion by Avoid Printed Parts when Traveling."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop label"
|
||||
msgid "Z Hop Height"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop description"
|
||||
msgid "The height difference when performing a Z Hop."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "material_standby_temperature label"
|
||||
msgid "Standby Temperature"
|
||||
@ -1405,19 +1383,6 @@ msgid ""
|
||||
"retraction."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_after_extruder_switch label"
|
||||
msgid "Z Hop After Extruder Switch"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_after_extruder_switch description"
|
||||
msgid ""
|
||||
"After the machine switched from one extruder to the other, the build plate "
|
||||
"is lowered to create clearance between the nozzle and the print. This "
|
||||
"prevents the nozzle from leaving oozed material on the outside of a print."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "speed label"
|
||||
msgid "Speed"
|
||||
@ -2070,6 +2035,55 @@ msgid ""
|
||||
"during travel moves."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_enabled label"
|
||||
msgid "Z Hop when Retracted"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_enabled description"
|
||||
msgid ""
|
||||
"Whenever a retraction is done, the build plate is lowered to create "
|
||||
"clearance between the nozzle and the print. It prevents the nozzle from "
|
||||
"hitting the print during travel moves, reducing the chance to knock the "
|
||||
"print from the build plate."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_only_when_collides label"
|
||||
msgid "Z Hop Only Over Printed Parts"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_only_when_collides description"
|
||||
msgid ""
|
||||
"Only perform a Z Hop when moving over printed parts which cannot be avoided "
|
||||
"by horizontal motion by Avoid Printed Parts when Traveling."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop label"
|
||||
msgid "Z Hop Height"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop description"
|
||||
msgid "The height difference when performing a Z Hop."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_after_extruder_switch label"
|
||||
msgid "Z Hop After Extruder Switch"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "retraction_hop_after_extruder_switch description"
|
||||
msgid ""
|
||||
"After the machine switched from one extruder to the other, the build plate "
|
||||
"is lowered to create clearance between the nozzle and the print. This "
|
||||
"prevents the nozzle from leaving oozed material on the outside of a print."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "cooling label"
|
||||
msgid "Cooling"
|
||||
@ -2176,7 +2190,9 @@ msgctxt "cool_min_layer_time description"
|
||||
msgid ""
|
||||
"The minimum time spent in a layer. This forces the printer to slow down, to "
|
||||
"at least spend the time set here in one layer. This allows the printed "
|
||||
"material to cool down properly before printing the next layer."
|
||||
"material to cool down properly before printing the next layer. Layers may "
|
||||
"still take shorter than the minimal layer time if Lift Head is disabled and "
|
||||
"if the Minimum Speed would otherwise be violated."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
@ -2227,6 +2243,54 @@ msgid ""
|
||||
"severe overhangs."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr label"
|
||||
msgid "Support Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the support. This is used in multi-"
|
||||
"extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_infill_extruder_nr label"
|
||||
msgid "Support Infill Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_infill_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the infill of the support. This is "
|
||||
"used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr_layer_0 label"
|
||||
msgid "First Layer Support Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr_layer_0 description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the first layer of support infill. "
|
||||
"This is used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_extruder_nr label"
|
||||
msgid "Support Interface Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the roofs and bottoms of the support. "
|
||||
"This is used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_type label"
|
||||
msgid "Support Placement"
|
||||
@ -2687,6 +2751,18 @@ msgctxt "adhesion_type option raft"
|
||||
msgid "Raft"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "adhesion_extruder_nr label"
|
||||
msgid "Build Plate Adhesion Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "adhesion_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the skirt/brim/raft. This is used in "
|
||||
"multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "skirt_line_count label"
|
||||
msgid "Skirt Line Count"
|
||||
@ -3100,66 +3176,6 @@ msgctxt "dual description"
|
||||
msgid "Settings used for printing with multiple extruders."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "adhesion_extruder_nr label"
|
||||
msgid "Build Plate Adhesion Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "adhesion_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the skirt/brim/raft. This is used in "
|
||||
"multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr label"
|
||||
msgid "Support Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the support. This is used in multi-"
|
||||
"extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_infill_extruder_nr label"
|
||||
msgid "Support Infill Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_infill_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the infill of the support. This is "
|
||||
"used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr_layer_0 label"
|
||||
msgid "First Layer Support Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_extruder_nr_layer_0 description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the first layer of support infill. "
|
||||
"This is used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_extruder_nr label"
|
||||
msgid "Support Interface Extruder"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_interface_extruder_nr description"
|
||||
msgid ""
|
||||
"The extruder train to use for printing the roofs and bottoms of the support. "
|
||||
"This is used in multi-extrusion."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "prime_tower_enable label"
|
||||
msgid "Enable Prime Tower"
|
||||
@ -3336,6 +3352,18 @@ msgid ""
|
||||
"everything else fails to produce proper GCode."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "carve_multiple_volumes label"
|
||||
msgid "Remove Mesh Intersection"
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "carve_multiple_volumes description"
|
||||
msgid ""
|
||||
"Remove areas where multiple objecs are overlapping with each other. This is "
|
||||
"may be used if merged dual material objects overlap with each other."
|
||||
msgstr ""
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "blackmagic label"
|
||||
msgid "Special Modes"
|
||||
|
@ -1836,8 +1836,8 @@ msgstr "Suositeltu"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Laajennettu"
|
||||
msgid "Custom"
|
||||
msgstr "Mukautettu"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -1836,8 +1836,8 @@ msgstr "Recommandé"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Avancée"
|
||||
msgid "Custom"
|
||||
msgstr "Personnalisé"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -160,13 +160,13 @@ msgstr "Salvato su unità rimovibile {0} come {1}"
|
||||
#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:103
|
||||
msgctxt "@action:button"
|
||||
msgid "Eject"
|
||||
msgstr "Espelli"
|
||||
msgstr "Rimuovi"
|
||||
|
||||
#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:103
|
||||
#, python-brace-format
|
||||
msgctxt "@action"
|
||||
msgid "Eject removable device {0}"
|
||||
msgstr "Espelli il dispositivo rimovibile {0}"
|
||||
msgstr "Rimuovi il dispositivo rimovibile {0}"
|
||||
|
||||
#: /home/ruben/Projects/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:108
|
||||
#, python-brace-format
|
||||
@ -1836,8 +1836,8 @@ msgstr "Consigliata"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Avanzata"
|
||||
msgid "Custom"
|
||||
msgstr "Personalizzata"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
@ -2008,7 +2008,7 @@ msgstr "Sel&eziona tutti i modelli"
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:248
|
||||
msgctxt "@action:inmenu menubar:edit"
|
||||
msgid "&Clear Build Plate"
|
||||
msgstr "&Cancella piano di stampa"
|
||||
msgstr "&Cancellare piano di stampa"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:258
|
||||
msgctxt "@action:inmenu menubar:file"
|
||||
|
@ -2257,12 +2257,12 @@ msgstr "Regola il posizionamento delle strutture di supporto. Il posizionamento
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_type option buildplate"
|
||||
msgid "Touching Buildplate"
|
||||
msgstr "Sostegno solo delle pareti esterne"
|
||||
msgstr "Contatto con il Piano di Stampa"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_type option everywhere"
|
||||
msgid "Everywhere"
|
||||
msgstr "In tutti i possibili punti"
|
||||
msgstr "In Tutti i Possibili Punti"
|
||||
|
||||
#: fdmprinter.def.json
|
||||
msgctxt "support_angle label"
|
||||
|
@ -1836,8 +1836,8 @@ msgstr "Aanbevolen"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Geavanceerd"
|
||||
msgid "Custom"
|
||||
msgstr "Aangepast"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
@ -1836,8 +1836,8 @@ msgstr "Önerilen Ayarlar"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Sidebar.qml:383
|
||||
msgctxt "@title:tab"
|
||||
msgid "Advanced"
|
||||
msgstr "Gelişmiş"
|
||||
msgid "Custom"
|
||||
msgstr "Özel"
|
||||
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:18
|
||||
#: /home/ruben/Projects/Cura/resources/qml/Menus/NozzleMenu.qml:18
|
||||
|
BIN
resources/meshes/printrbot_play.stl
Normal file
BIN
resources/meshes/printrbot_play.stl
Normal file
Binary file not shown.
@ -121,7 +121,7 @@ Item
|
||||
Action
|
||||
{
|
||||
id: updateProfileAction;
|
||||
enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId)
|
||||
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId)
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings");
|
||||
onTriggered: Cura.ContainerManager.updateQualityChanges();
|
||||
}
|
||||
@ -131,13 +131,17 @@ Item
|
||||
id: resetProfileAction;
|
||||
enabled: Cura.MachineManager.hasUserSettings
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Discard current settings");
|
||||
onTriggered: Cura.ContainerManager.clearUserContainers();
|
||||
onTriggered:
|
||||
{
|
||||
forceActiveFocus();
|
||||
Cura.ContainerManager.clearUserContainers();
|
||||
}
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: addProfileAction;
|
||||
enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings
|
||||
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Create profile from current settings...");
|
||||
}
|
||||
|
||||
|
@ -175,6 +175,14 @@ UM.Dialog
|
||||
text: getMachineName()
|
||||
implicitWidth: UM.Theme.getSize("standard_list_input").width
|
||||
maximumLength: 40
|
||||
//validator: Cura.MachineNameValidator { } //TODO: Gives a segfault in PyQt5.6. For now, we must use a signal on text changed.
|
||||
validator: RegExpValidator
|
||||
{
|
||||
regExp: {
|
||||
machineName.machine_name_validator.machineNameRegex
|
||||
}
|
||||
}
|
||||
property var machine_name_validator: Cura.MachineNameValidator { }
|
||||
anchors.bottom:parent.bottom
|
||||
}
|
||||
|
||||
|
@ -539,7 +539,7 @@ UM.MainWindow
|
||||
target: Cura.MachineManager
|
||||
onBlurSettings:
|
||||
{
|
||||
contentItem.focus = true
|
||||
forceActiveFocus()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -153,6 +153,7 @@ Menu
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter";
|
||||
result.compatible = true; //NB: Only checks for compatibility in global version of material, but we don't have machine-specific materials anyway.
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ Menu
|
||||
|
||||
Instantiator
|
||||
{
|
||||
model: Cura.ProfilesModel { }
|
||||
model: Cura.ProfilesModel
|
||||
|
||||
MenuItem
|
||||
{
|
||||
|
@ -251,6 +251,8 @@ UM.ManagementPage
|
||||
{
|
||||
id: renameDialog;
|
||||
object: base.currentItem && base.currentItem.name ? base.currentItem.name : "";
|
||||
property var machine_name_validator: Cura.MachineNameValidator { }
|
||||
validName: renameDialog.newName.match(renameDialog.machine_name_validator.machineNameRegex) != null;
|
||||
onAccepted:
|
||||
{
|
||||
Cura.MachineManager.renameMachine(base.currentItem.id, newName.trim());
|
||||
|
@ -29,7 +29,8 @@ UM.ManagementPage
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
result.definition = "fdmprinter";
|
||||
result.compatible = true; //NB: Only checks for compatibility in global version of material, but we don't have machine-specific materials anyway.
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ UM.ManagementPage
|
||||
Button
|
||||
{
|
||||
text: catalog.i18nc("@label", "Create")
|
||||
enabled: base.canCreateProfile()
|
||||
enabled: base.canCreateProfile() && !Cura.MachineManager.stacksHaveErrors
|
||||
visible: base.canCreateProfile()
|
||||
iconName: "list-add";
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Copyright (c) 2016 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
// Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 1.1
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Copyright (c) 2016 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
// Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 1.1
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Copyright (c) 2016 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
// Cura is released under the terms of the AGPLv3 or higher.
|
||||
// Different than the name suggests, it is not always read-only.
|
||||
|
||||
import QtQuick 2.1
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Copyright (c) 2016 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
// Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 1.1
|
||||
|
@ -197,7 +197,26 @@ Item {
|
||||
// - The type of the value of any deeper container is an "object" (eg; is a function)
|
||||
visible:
|
||||
{
|
||||
return showInheritButton && Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0;
|
||||
if(!base.showInheritButton)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!propertyProvider.properties.enabled)
|
||||
{
|
||||
// Note: This is not strictly necessary since a disabled setting is hidden anyway.
|
||||
// But this will cause the binding to be re-evaluated when the enabled property changes.
|
||||
return false;
|
||||
}
|
||||
if(Cura.SettingInheritanceManager.settingsWithInheritanceWarning.length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(globalPropertyProvider.properties.limit_to_extruder == null || globalPropertyProvider.properties.limit_to_extruder == -1)
|
||||
{
|
||||
return Cura.SettingInheritanceManager.settingsWithInheritanceWarning.indexOf(definition.key) >= 0;
|
||||
}
|
||||
return Cura.SettingInheritanceManager.getOverridesForExtruder(definition.key, globalPropertyProvider.properties.limit_to_extruder).indexOf(definition.key) >= 0;
|
||||
}
|
||||
|
||||
height: parent.height;
|
||||
|
@ -99,9 +99,9 @@ ScrollView
|
||||
when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0);
|
||||
value:
|
||||
{
|
||||
if(!model.settable_per_extruder)
|
||||
if(!model.settable_per_extruder || machineExtruderCount.properties.value == 1)
|
||||
{
|
||||
//Not settable per extruder, so we must pick global.
|
||||
//Not settable per extruder or there only is global, so we must pick global.
|
||||
return Cura.MachineManager.activeMachineId;
|
||||
}
|
||||
if(inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0)
|
||||
|
@ -380,7 +380,7 @@ Rectangle
|
||||
Component.onCompleted:
|
||||
{
|
||||
modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple })
|
||||
modesListModel.append({ text: catalog.i18nc("@title:tab", "Advanced"), item: sidebarAdvanced })
|
||||
modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced })
|
||||
sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true });
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@ definition = fdmprinter
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
global_quality = True
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
|
@ -6,6 +6,7 @@ definition = fdmprinter
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = low
|
||||
global_quality = True
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
|
@ -6,6 +6,7 @@ definition = fdmprinter
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
global_quality = True
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
|
@ -1,125 +1,23 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 5
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.2
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 80
|
||||
material_print_temperature = 240
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 16
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 60
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 60)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 45 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 240
|
||||
prime_tower_size = 16
|
||||
skin_overlap = 20
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 60)
|
||||
speed_wall = =math.ceil(speed_print * 45 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -1,125 +1,23 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 5
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 7
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.15
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 80
|
||||
material_print_temperature = 235
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 16
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 60
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 40 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
cool_min_speed = 7
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 235
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 16
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_wall = =math.ceil(speed_print * 40 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
|
||||
|
@ -1,125 +1,21 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 5
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 12
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.06
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 80
|
||||
material_print_temperature = 225
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 16
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 50
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 50)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
cool_min_speed = 12
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 16
|
||||
speed_print = 50
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 50)
|
||||
|
||||
|
@ -1,125 +1,21 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 5
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 80
|
||||
material_print_temperature = 230
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 16
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 55
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_abs_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 230
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 16
|
||||
speed_print = 55
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
|
||||
|
@ -1,125 +1,22 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.2
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 70
|
||||
material_print_temperature = 250
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 17
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 60
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 60)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 45 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
material_print_temperature = 250
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 17
|
||||
skin_overlap = 20
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 60)
|
||||
speed_wall = =math.ceil(speed_print * 45 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 45)
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -1,125 +1,21 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 7
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.15
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 70
|
||||
material_print_temperature = 245
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 17
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 60
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 40 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
cool_min_speed = 7
|
||||
material_print_temperature = 245
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 17
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_wall = =math.ceil(speed_print * 40 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
|
||||
|
@ -1,125 +1,21 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 12
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.06
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 70
|
||||
material_print_temperature = 235
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 17
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 50
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 50)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
cool_min_speed = 12
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 17
|
||||
speed_print = 50
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 50)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 50)
|
||||
|
||||
|
@ -1,125 +1,21 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 70
|
||||
material_print_temperature = 240
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 17
|
||||
prime_tower_wipe_enabled = True
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 55
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_cpe_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 240
|
||||
material_standby_temperature = 100
|
||||
prime_tower_size = 17
|
||||
speed_print = 55
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
|
||||
|
@ -1,127 +1,33 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = raft
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 40
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 10
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_overlap_mm = 0.05
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.2
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 255
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
ooze_shield_dist = 2
|
||||
ooze_shield_enabled = False
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
retraction_amount = 8
|
||||
retraction_count_max = 25
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_speed = 25
|
||||
skin_overlap = 50
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 10
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_thickness = 1.3
|
||||
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_surface_layers = 2
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
|
||||
brim_width = 7
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
support_bottom_stair_step_height = 0.3
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
adhesion_type = raft
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 10
|
||||
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
material_print_temperature = 255
|
||||
material_standby_temperature = 100
|
||||
ooze_shield_angle = 40
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
skin_overlap = 50
|
||||
speed_layer_0 = 10
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
||||
|
@ -1,125 +1,33 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = raft
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 40
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 10
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_overlap_mm = 0.05
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.15
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 250
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
ooze_shield_dist = 2
|
||||
ooze_shield_enabled = False
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
retraction_amount = 8
|
||||
retraction_count_max = 25
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_speed = 25
|
||||
skin_overlap = 50
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 10
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_surface_layers = 2
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
|
||||
brim_width = 7
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
support_bottom_stair_step_height = 0.3
|
||||
wall_line_width_x = =wall_line_width
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
adhesion_type = raft
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 10
|
||||
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
material_print_temperature = 250
|
||||
material_standby_temperature = 100
|
||||
ooze_shield_angle = 40
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
skin_overlap = 50
|
||||
speed_layer_0 = 10
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
||||
|
@ -1,125 +1,32 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = raft
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 40
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 15
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_overlap_mm = 0.05
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.06
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 245
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
ooze_shield_dist = 2
|
||||
ooze_shield_enabled = False
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
retraction_amount = 8
|
||||
retraction_count_max = 25
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_speed = 25
|
||||
skin_overlap = 50
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 10
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_surface_layers = 2
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
|
||||
brim_width = 7
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
support_bottom_stair_step_height = 0.3
|
||||
wall_line_width_x = =wall_line_width
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
adhesion_type = raft
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 15
|
||||
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
material_standby_temperature = 100
|
||||
ooze_shield_angle = 40
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
skin_overlap = 50
|
||||
speed_layer_0 = 10
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
||||
|
@ -1,125 +1,32 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = raft
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 40
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 12
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_overlap_mm = 0.05
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 245
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
ooze_shield_dist = 2
|
||||
ooze_shield_enabled = False
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
retraction_amount = 8
|
||||
retraction_count_max = 25
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_speed = 25
|
||||
skin_overlap = 50
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 10
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_surface_layers = 2
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
|
||||
brim_width = 7
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
support_bottom_stair_step_height = 0.3
|
||||
wall_line_width_x = =wall_line_width
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_nylon_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
adhesion_type = raft
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 12
|
||||
infill_line_width = =round(line_width * 0.5 / 0.4, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
material_standby_temperature = 100
|
||||
ooze_shield_angle = 40
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
skin_overlap = 50
|
||||
speed_layer_0 = 10
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
||||
|
@ -1,125 +1,26 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.2
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 205
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_size = 15
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 50 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 50)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_fan_speed = 100
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_print_temperature = 205
|
||||
material_standby_temperature = 100
|
||||
prime_tower_enable = False
|
||||
skin_overlap = 20
|
||||
speed_topbottom = =math.ceil(speed_print * 35 / 70)
|
||||
speed_wall = =math.ceil(speed_print * 50 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 35 / 50)
|
||||
top_bottom_thickness = 1
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -1,125 +1,25 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.15
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 200
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_size = 15
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 80
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 80)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 40 / 80)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_fan_speed = 100
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_standby_temperature = 100
|
||||
prime_tower_enable = False
|
||||
speed_print = 80
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 80)
|
||||
speed_wall = =math.ceil(speed_print * 40 / 80)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 30 / 40)
|
||||
top_bottom_thickness = 1
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -1,125 +1,26 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.06
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 195
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 60
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 60)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = 1
|
||||
|
||||
[values]
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_fan_speed = 100
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
cool_min_speed = 10
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_print_temperature = 195
|
||||
material_standby_temperature = 100
|
||||
skin_overlap = 10
|
||||
speed_print = 60
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 60)
|
||||
speed_wall = =math.ceil(speed_print * 30 / 60)
|
||||
top_bottom_thickness = 1
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -1,126 +1,23 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 7
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 200
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_size = 15
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_pla_ultimaker3_AA_0.4
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_fan_speed = 100
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
cool_min_speed = 7
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_standby_temperature = 100
|
||||
prime_tower_enable = False
|
||||
skin_overlap = 10
|
||||
top_bottom_thickness = 1
|
||||
wall_thickness = 1
|
||||
|
||||
|
@ -11,116 +11,3 @@ material = generic_pva_ultimaker3_AA_0.4
|
||||
supported = false
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 3
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 215
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
raft_base_speed = 20
|
||||
raft_base_thickness = 0.3
|
||||
raft_interface_line_spacing = 0.5
|
||||
raft_interface_line_width = 0.5
|
||||
raft_interface_speed = 20
|
||||
raft_interface_thickness = 0.2
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_speed = 25
|
||||
raft_surface_layers = 1
|
||||
retraction_amount = 2
|
||||
retraction_count_max = 10
|
||||
retraction_extrusion_window = =retraction_amount
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_min_travel = 5
|
||||
retraction_prime_speed = 15
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 35
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 20 / 35)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 35)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 25 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 45
|
||||
support_bottom_height = =layer_height * 2
|
||||
support_bottom_stair_step_height = =layer_height
|
||||
support_infill_rate = 30
|
||||
support_interface_enable = True
|
||||
support_join_distance = 3
|
||||
support_line_width = =round(line_width * 0.4 / 0.35, 2)
|
||||
support_offset = 3
|
||||
support_pattern = triangles
|
||||
support_use_towers = False
|
||||
support_xy_distance = =wall_line_width_0 * 3
|
||||
support_xy_distance_overhang = =wall_line_width_0 / 2
|
||||
support_z_distance = 0
|
||||
switch_extruder_prime_speed = 15
|
||||
switch_extruder_retraction_amount = 8
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_top_distance = =support_z_distance
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
material_bed_temperature = 60
|
||||
ooze_shield_dist = 2
|
||||
retraction_speed = 25
|
||||
switch_extruder_retraction_speeds = 20
|
||||
|
@ -11,116 +11,3 @@ weight = 0
|
||||
supported = false
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 80
|
||||
material_print_temperature = 230
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 16
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 55
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
|
@ -11,116 +11,3 @@ weight = 0
|
||||
supported = false
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.85
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_bed_temperature = 70
|
||||
material_print_temperature = 240
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 17
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 55
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 55)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 55)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
|
@ -11,116 +11,3 @@ weight = 0
|
||||
supported = false
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = raft
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 40
|
||||
cool_fan_speed_max = 100
|
||||
cool_min_layer_time = 5
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
cool_min_speed = 12
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_overlap_mm = 0.05
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.9
|
||||
machine_nozzle_heat_up_speed = 1.4
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 245
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 40
|
||||
ooze_shield_dist = 2
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = =round(layer_height_0 * 0.85, 2)
|
||||
raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 2)
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2)
|
||||
retraction_amount = 8
|
||||
retraction_count_max = 25
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_speed = 25
|
||||
skin_overlap = 50
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 10
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
switch_extruder_prime_speed = 30
|
||||
switch_extruder_retraction_amount = 30
|
||||
switch_extruder_retraction_speeds = 40
|
||||
top_bottom_thickness = 1.2
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_thickness = 1.3
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_surface_layers = 2
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
|
||||
brim_width = 7
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
support_bottom_stair_step_height = 0.3
|
||||
wall_line_width_x = =wall_line_width
|
||||
|
@ -11,117 +11,3 @@ weight = 0
|
||||
supported = false
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 7
|
||||
cool_fan_full_at_height = =layer_height_0 + 2 * layer_height
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 7
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.75
|
||||
machine_nozzle_heat_up_speed = 1.6
|
||||
material_bed_temperature = 60
|
||||
material_print_temperature = 200
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
prime_tower_enable = False
|
||||
prime_tower_size = 15
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_base_thickness = =resolveOrValue('layer_height_0') * 1.2
|
||||
raft_speed = =speed_print / 60 * 30
|
||||
raft_interface_speed = =raft_speed * 0.75
|
||||
raft_base_speed = =0.75 * raft_speed
|
||||
raft_acceleration = =acceleration_print
|
||||
raft_jerk = =jerk_print
|
||||
retraction_count_max = 25
|
||||
retraction_extrusion_window = 1
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 70
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 30 / 70)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 70)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 20 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 60
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
support_top_distance = =support_z_distance
|
||||
support_xy_distance = =wall_line_width_0 * 2.5
|
||||
support_xy_distance_overhang = =wall_line_width_0
|
||||
support_z_distance = =layer_height * 2
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_line_width = =line_width
|
||||
support_pattern = zigzag
|
||||
support_infill_rate = 15
|
||||
support_join_distance = 2
|
||||
support_offset = 0.2
|
||||
support_interface_enable = False
|
||||
support_use_towers = True
|
||||
raft_margin = 15
|
||||
raft_airgap = 0.3
|
||||
raft_surface_layers = 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
raft_interface_thickness = =resolveOrValue('layer_height') * 1.5
|
||||
raft_interface_line_width = =line_width * 2
|
||||
raft_interface_line_spacing = =raft_interface_line_width + 0.2
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
support_bottom_height = =extruderValue(support_interface_extruder_nr, 'support_interface_height')
|
||||
retraction_amount = 6.5
|
||||
|
||||
cool_fan_speed = 100
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_min_travel = =line_width * 2
|
||||
retraction_prime_speed = =retraction_speed
|
||||
retraction_speed = 25
|
||||
support_bottom_stair_step_height = 0.3
|
||||
switch_extruder_prime_speed = =switch_extruder_retraction_speeds
|
||||
switch_extruder_retraction_amount = =machine_heat_zone_length
|
||||
switch_extruder_retraction_speeds = 20
|
||||
|
@ -1,126 +1,16 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 3
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.2
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 225
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
raft_base_speed = 20
|
||||
raft_base_thickness = 0.3
|
||||
raft_interface_line_spacing = 0.5
|
||||
raft_interface_line_width = 0.5
|
||||
raft_interface_speed = 20
|
||||
raft_interface_thickness = 0.2
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_speed = 25
|
||||
raft_surface_layers = 1
|
||||
retraction_amount = 2
|
||||
retraction_count_max = 10
|
||||
retraction_extrusion_window = =retraction_amount
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_min_travel = 5
|
||||
retraction_prime_speed = 15
|
||||
skin_overlap = 20
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 35
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 20 / 35)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 35)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 25 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 45
|
||||
support_bottom_height = =layer_height * 2
|
||||
support_bottom_stair_step_height = =layer_height
|
||||
support_infill_rate = 25
|
||||
support_interface_enable = True
|
||||
support_join_distance = 3
|
||||
support_line_width = =round(line_width * 0.4 / 0.35, 2)
|
||||
support_offset = 3
|
||||
support_pattern = triangles
|
||||
support_use_towers = False
|
||||
support_xy_distance = =wall_line_width_0 * 3
|
||||
support_xy_distance_overhang = =wall_line_width_0 / 2
|
||||
support_z_distance = 0
|
||||
switch_extruder_prime_speed = 15
|
||||
switch_extruder_retraction_amount = 8
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_top_distance = =support_z_distance
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
material_bed_temperature = 60
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_speed = 25
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = -2
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
material_print_temperature = 225
|
||||
material_standby_temperature = 100
|
||||
skin_overlap = 20
|
||||
|
||||
|
@ -1,125 +1,16 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = -1
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 3
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.15
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 220
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
raft_base_speed = 20
|
||||
raft_base_thickness = 0.3
|
||||
raft_interface_line_spacing = 0.5
|
||||
raft_interface_line_width = 0.5
|
||||
raft_interface_speed = 20
|
||||
raft_interface_thickness = 0.2
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_speed = 25
|
||||
raft_surface_layers = 1
|
||||
retraction_amount = 2
|
||||
retraction_count_max = 10
|
||||
retraction_extrusion_window = =retraction_amount
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_min_travel = 5
|
||||
retraction_prime_speed = 15
|
||||
skin_overlap = 15
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 35
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 20 / 35)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 35)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 25 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 45
|
||||
support_bottom_height = =layer_height * 2
|
||||
support_bottom_stair_step_height = =layer_height
|
||||
support_infill_rate = 25
|
||||
support_interface_enable = True
|
||||
support_join_distance = 3
|
||||
support_line_width = =round(line_width * 0.4 / 0.35, 2)
|
||||
support_offset = 3
|
||||
support_pattern = triangles
|
||||
support_use_towers = False
|
||||
support_xy_distance = =wall_line_width_0 * 3
|
||||
support_xy_distance_overhang = =wall_line_width_0 / 2
|
||||
support_z_distance = 0
|
||||
switch_extruder_prime_speed = 15
|
||||
switch_extruder_retraction_amount = 8
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
support_top_distance = =support_z_distance
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
material_bed_temperature = 60
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_speed = 25
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = -1
|
||||
type = quality
|
||||
quality_type = fast
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
material_print_temperature = 220
|
||||
material_standby_temperature = 100
|
||||
skin_overlap = 15
|
||||
|
||||
|
@ -1,126 +1,15 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = 0
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 3
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.06
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 215
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
raft_base_speed = 20
|
||||
raft_base_thickness = 0.3
|
||||
raft_interface_line_spacing = 0.5
|
||||
raft_interface_line_width = 0.5
|
||||
raft_interface_speed = 20
|
||||
raft_interface_thickness = 0.2
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_speed = 25
|
||||
raft_surface_layers = 1
|
||||
retraction_amount = 2
|
||||
retraction_count_max = 10
|
||||
retraction_extrusion_window = =retraction_amount
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_min_travel = 5
|
||||
retraction_prime_speed = 15
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 35
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 20 / 35)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 35)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 25 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 45
|
||||
support_bottom_height = =layer_height * 2
|
||||
support_bottom_stair_step_height = =layer_height
|
||||
support_infill_rate = 35
|
||||
support_interface_enable = True
|
||||
support_join_distance = 3
|
||||
support_line_width = =round(line_width * 0.4 / 0.35, 2)
|
||||
support_offset = 3
|
||||
support_pattern = triangles
|
||||
support_use_towers = False
|
||||
support_xy_distance = =wall_line_width_0 * 3
|
||||
support_xy_distance_overhang = =wall_line_width_0 / 2
|
||||
support_z_distance = 0
|
||||
switch_extruder_prime_speed = 15
|
||||
switch_extruder_retraction_amount = 8
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_top_distance = =support_z_distance
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
material_bed_temperature = 60
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_speed = 25
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = 0
|
||||
type = quality
|
||||
quality_type = high
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
support_infill_rate = 35
|
||||
material_standby_temperature = 100
|
||||
|
||||
|
@ -1,126 +1,15 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = 0
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
acceleration_enabled = True
|
||||
acceleration_infill = =acceleration_print
|
||||
acceleration_layer_0 = =acceleration_topbottom
|
||||
acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_print = 4000
|
||||
acceleration_support = =math.ceil(acceleration_print * 2000 / 4000)
|
||||
acceleration_support_infill = =acceleration_support
|
||||
acceleration_support_interface = =acceleration_topbottom
|
||||
acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000)
|
||||
acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000)
|
||||
acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000)
|
||||
acceleration_wall_x = =acceleration_wall
|
||||
adhesion_type = brim
|
||||
brim_width = 3
|
||||
cool_fan_full_at_height = =layer_height_0 + 4 * layer_height
|
||||
cool_fan_speed = 50
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 5
|
||||
infill_line_width = =round(line_width * 0.5 / 0.35, 2)
|
||||
infill_pattern = triangles
|
||||
infill_sparse_density = 20
|
||||
infill_wipe_dist = 0
|
||||
jerk_enabled = True
|
||||
jerk_infill = =jerk_print
|
||||
jerk_layer_0 = =jerk_topbottom
|
||||
jerk_prime_tower = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_print = 25
|
||||
jerk_support = =math.ceil(jerk_print * 15 / 25)
|
||||
jerk_support_infill = =jerk_support
|
||||
jerk_support_interface = =jerk_topbottom
|
||||
jerk_topbottom = =math.ceil(jerk_print * 5 / 25)
|
||||
jerk_wall = =math.ceil(jerk_print * 10 / 25)
|
||||
jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10)
|
||||
jerk_wall_x = =jerk_wall
|
||||
layer_height = 0.1
|
||||
layer_height_0 = =round(machine_nozzle_size / 1.5, 2)
|
||||
line_width = =machine_nozzle_size * 0.875
|
||||
machine_min_cool_heat_time_window = 15
|
||||
machine_nozzle_cool_down_speed = 0.8
|
||||
machine_nozzle_heat_up_speed = 1.5
|
||||
material_print_temperature = 215
|
||||
material_standby_temperature = 100
|
||||
multiple_mesh_overlap = 0
|
||||
ooze_shield_angle = 60
|
||||
ooze_shield_enabled = False
|
||||
prime_tower_enable = True
|
||||
prime_tower_size = 15
|
||||
prime_tower_wipe_enabled = True
|
||||
raft_acceleration = =acceleration_layer_0
|
||||
raft_airgap = 0
|
||||
raft_base_speed = 20
|
||||
raft_base_thickness = 0.3
|
||||
raft_interface_line_spacing = 0.5
|
||||
raft_interface_line_width = 0.5
|
||||
raft_interface_speed = 20
|
||||
raft_interface_thickness = 0.2
|
||||
raft_jerk = =jerk_layer_0
|
||||
raft_margin = 10
|
||||
raft_speed = 25
|
||||
raft_surface_layers = 1
|
||||
retraction_amount = 2
|
||||
retraction_count_max = 10
|
||||
retraction_extrusion_window = =retraction_amount
|
||||
retraction_hop = 2
|
||||
retraction_hop_enabled = True
|
||||
retraction_hop_only_when_collides = True
|
||||
retraction_min_travel = 5
|
||||
retraction_prime_speed = 15
|
||||
skin_overlap = 10
|
||||
speed_infill = =speed_print
|
||||
speed_layer_0 = 20
|
||||
speed_prime_tower = =speed_topbottom
|
||||
speed_print = 35
|
||||
speed_support = =speed_wall_0
|
||||
speed_support_interface = =speed_topbottom
|
||||
speed_topbottom = =math.ceil(speed_print * 20 / 35)
|
||||
speed_travel = 250
|
||||
speed_wall = =math.ceil(speed_print * 30 / 35)
|
||||
speed_wall_0 = =math.ceil(speed_wall * 25 / 30)
|
||||
speed_wall_x = =speed_wall
|
||||
support_angle = 45
|
||||
support_bottom_height = =layer_height * 2
|
||||
support_bottom_stair_step_height = =layer_height
|
||||
support_infill_rate = 30
|
||||
support_interface_enable = True
|
||||
support_join_distance = 3
|
||||
support_line_width = =round(line_width * 0.4 / 0.35, 2)
|
||||
support_offset = 3
|
||||
support_pattern = triangles
|
||||
support_use_towers = False
|
||||
support_xy_distance = =wall_line_width_0 * 3
|
||||
support_xy_distance_overhang = =wall_line_width_0 / 2
|
||||
support_z_distance = 0
|
||||
switch_extruder_prime_speed = 15
|
||||
switch_extruder_retraction_amount = 8
|
||||
top_bottom_thickness = 1
|
||||
travel_avoid_distance = 3
|
||||
travel_compensate_overlapping_walls_enabled = True
|
||||
wall_0_inset = 0
|
||||
wall_line_width_x = =round(line_width * 0.3 / 0.35, 2)
|
||||
wall_thickness = 1
|
||||
|
||||
support_top_distance = =support_z_distance
|
||||
support_bottom_distance = =support_z_distance / 2
|
||||
raft_surface_thickness = =resolveOrValue('layer_height')
|
||||
cool_fan_speed_max = =cool_fan_speed
|
||||
|
||||
cool_min_layer_time_fan_speed_max = 10
|
||||
infill_overlap_mm = =infill_line_width * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0
|
||||
material_bed_temperature = 60
|
||||
ooze_shield_dist = 2
|
||||
retraction_extra_prime_amount = 0
|
||||
retraction_speed = 25
|
||||
switch_extruder_retraction_speeds = 20
|
||||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
weight = 0
|
||||
type = quality
|
||||
quality_type = normal
|
||||
material = generic_pva_ultimaker3_BB_0.4
|
||||
|
||||
[values]
|
||||
support_infill_rate = 30
|
||||
material_standby_temperature = 100
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Draft Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = draft
|
||||
global_quality = True
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
@ -0,0 +1,13 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = Fast Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = fast
|
||||
global_quality = True
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
@ -0,0 +1,13 @@
|
||||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
quality_type = high
|
||||
global_quality = True
|
||||
weight = 0
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
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