mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-05 13:03:59 -06:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
48cba91b16
134 changed files with 542 additions and 149 deletions
39
Jenkinsfile
vendored
Normal file
39
Jenkinsfile
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
parallel_nodes(['linux && cura', 'windows && cura']) {
|
||||
// Prepare building
|
||||
stage('Prepare') {
|
||||
// Ensure we start with a clean build directory.
|
||||
step([$class: 'WsCleanup'])
|
||||
|
||||
// Checkout whatever sources are linked to this pipeline.
|
||||
checkout scm
|
||||
}
|
||||
|
||||
// If any error occurs during building, we want to catch it and continue with the "finale" stage.
|
||||
catchError {
|
||||
// Building and testing should happen in a subdirectory.
|
||||
dir('build') {
|
||||
// Perform the "build". Since Uranium is Python code, this basically only ensures CMake is setup.
|
||||
stage('Build') {
|
||||
// Ensure CMake is setup. Note that since this is Python code we do not really "build" it.
|
||||
cmake("..", "-DCMAKE_PREFIX_PATH=${env.CURA_ENVIRONMENT_PATH} -DCMAKE_BUILD_TYPE=Release -DURANIUM_SCRIPTS_DIR=")
|
||||
}
|
||||
|
||||
// Try and run the unit tests. If this stage fails, we consider the build to be "unstable".
|
||||
stage('Unit Test') {
|
||||
try {
|
||||
make('test')
|
||||
} catch(e) {
|
||||
currentBuild.result = "UNSTABLE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Perform any post-build actions like notification and publishing of unit tests.
|
||||
stage('Finalize') {
|
||||
// Publish the test results to Jenkins.
|
||||
junit allowEmptyResults: true, testResults: 'build/junit*.xml'
|
||||
|
||||
notify_build_result(env.CURA_EMAIL_RECIPIENTS, '#cura-dev', ['master', '2.'])
|
||||
}
|
||||
}
|
|
@ -4,6 +4,8 @@
|
|||
enable_testing()
|
||||
include(CMakeParseArguments)
|
||||
|
||||
find_package(PythonInterp 3.5.0 REQUIRED)
|
||||
|
||||
function(cura_add_test)
|
||||
set(_single_args NAME DIRECTORY PYTHONPATH)
|
||||
cmake_parse_arguments("" "" "${_single_args}" "" ${ARGN})
|
||||
|
@ -28,7 +30,7 @@ function(cura_add_test)
|
|||
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT PYTHONPATH=${_PYTHONPATH})
|
||||
endfunction()
|
||||
|
||||
cura_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH ${CMAKE_SOURCE_DIR})
|
||||
cura_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH "${CMAKE_SOURCE_DIR}/../Uranium:${CMAKE_SOURCE_DIR}")
|
||||
|
||||
file(GLOB_RECURSE _plugins plugins/*/__init__.py)
|
||||
foreach(_plugin ${_plugins})
|
||||
|
|
|
@ -1,9 +1,59 @@
|
|||
[2.5.0]
|
||||
*Layerview double slider.
|
||||
The layerview now has a nice slider with double handles where you can drag maximum layer, minimum layer and the layer range. Thansk to community member Aldo Hoeben for this feature.
|
||||
*Speed.
|
||||
We’ve given the system a tweak, to make changing printers, profiles, materials and print cores even quicker than ever. That means less hanging around, more time printing. We’ve also adjusted the start-up speed, which is now five seconds faster.
|
||||
|
||||
*Included PauseBackendPlugin.
|
||||
This enables pausing the backend and manually start the backend. Thanks to community member Aldo Hoeben for this feature.
|
||||
*Speedup engine – Multi-threading.
|
||||
This is one of the most significant improvements, making slicing even faster. Just like computers with multiple cores, Cura can process multiple operations at the same time. How’s that for efficient?
|
||||
|
||||
*Better layout for 3D layer view options.
|
||||
Need things to be a bit clearer? We’ve now incorporated an improved layer view for computers that support OpenGL 4.1. For OpenGL 2.0 we will automatically switch to the old layer view. Thanks to community member Aldo Hoeben for the fancy double handle slider.
|
||||
|
||||
*Disable automatic slicing.
|
||||
Some users told us that slicing slowed down their workflow when it auto-starts, and to improve the user experience, we added an option to disable auto-slicing if required. Thanks to community member Aldo Hoeben for contributing to this one.
|
||||
|
||||
*Solidworks & Cura macro.
|
||||
This macro is designed to run inside SolidWorks, open Cura and load the current document / part. You should also be able to add this macro to your toolbar inside Solidworks.
|
||||
|
||||
*Auto-scale off by default.
|
||||
This change needs no explanation!
|
||||
|
||||
*Preheat the build plate (with a connected printer).
|
||||
You can now set your Ultimaker 3 to preheat the build plate, which reduces the downtime, letting you manually speed up your printing workflow. All you need to do is use the ‘preheat’ function in the Print Monitor screen, and set the correct temperature for the active material(s).
|
||||
|
||||
*G-code reader.
|
||||
The g-code reader has been reintroduced, which means you can load g-code from file and display it in layer view. You can also print saved g-code files with Cura, share and re-use them, and you can check that your printed object looks right via the g-code viewer.
|
||||
|
||||
*Switching profiles.
|
||||
When you change a printing profile after customizing print settings, you have an option (shown in a popup) to transfer your customizations to the new profile or discard those modifications and continue with default settings instead. We’ve made this dialog window more informative and intuitive.
|
||||
|
||||
*Print cost calculation.
|
||||
Cura now contains code to help you calculate the cost of your print. To do so, you’ll need to enter a cost per spool and an amount of materials per spool. You can also set the cost per material and gain better control of your expenses. Thanks to our community member Aldo Hoeben for adding this feature.
|
||||
|
||||
*Bug fixes
|
||||
|
||||
Property renaming: Properties that start with ‘get’ have been renamed to avoid confusion.
|
||||
Window overflow: This is now fixed.
|
||||
Multiple machine prefixes: Multiple machine prefixes are gone when loading and saving projects.
|
||||
Removal of file extension: When you save a file or project (without changing the file type), no file extension is added to the name. It’s only when you change to another file type that the extension is added.
|
||||
Ultimaker 3 Extended connectivity: Selecting Ultimaker 3 Extended in Cura let you connect and print with Ultimaker 3, without any warning. This now has been fixed.
|
||||
Different Y / Z colors: Y and Z colors in the tool menu are now different to the colors on the build plate.
|
||||
No collision areas: No collision areas were generated for some models.
|
||||
Perimeter gaps: Perimeter gaps are not filled often enough; we’ve now amended this.
|
||||
File location after restart: The old version of Cura didn’t remember the last opened file location after it’s been restarted. Now it does!
|
||||
Project name: The project name changes after the project is opened.
|
||||
Slicing when error value is given (print core 2): When a support is printed with extruder 2 (PVA), some support settings will trigger a slice when an error value is given. We’ve now sorted this out.
|
||||
Support Towers: Support Towers can now be disabled.
|
||||
Support bottoms: When putting one object on top of another with some space in between, and selecting support with support bottom interface, no support bottom is printed. This has now been resolved.
|
||||
Summary box size: We’ve enlarged the summary box when saving your project.
|
||||
Cubic subdivision infill: In the past, the cubic subdivision infill sometimes didn’t produce the infill (WIN) – this has now been addressed.
|
||||
Spiralize outer contour and fill small gaps: When combining Fill Gaps Between Walls with Spiralize Outer Contour, the model gets a massive infill.
|
||||
Experimental post-processing plugin: Since the TwaekAtZ post-processing plugin is not officially supported, we added the ‘Experimental’ tag.
|
||||
|
||||
*3rd party printers (bug fixes)
|
||||
|
||||
Folgertech printer definition has been added
|
||||
Hello BEE Prusa printer definition has been added
|
||||
Material profiles for Cartesio printers have been updated
|
||||
|
||||
[2.4.0]
|
||||
*Project saving & opening
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
# Copyright (c) 2017 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import configparser #To parse the files we need to upgrade and write the new files.
|
||||
import io #To serialise configparser output to a string.
|
||||
|
||||
from UM.VersionUpgrade import VersionUpgrade
|
||||
|
||||
_removed_settings = { #Settings that were removed in 2.5.
|
||||
"start_layers_at_same_position"
|
||||
}
|
||||
|
||||
## A collection of functions that convert the configuration of the user in Cura
|
||||
# 2.4 to a configuration for Cura 2.5.
|
||||
#
|
||||
# All of these methods are essentially stateless.
|
||||
class VersionUpgrade24to25(VersionUpgrade):
|
||||
## Gets the version number from a CFG file in Uranium's 2.4 format.
|
||||
#
|
||||
# Since the format may change, this is implemented for the 2.4 format only
|
||||
# and needs to be included in the version upgrade system rather than
|
||||
# globally in Uranium.
|
||||
#
|
||||
# \param serialised The serialised form of a CFG file.
|
||||
# \return The version number stored in the CFG file.
|
||||
# \raises ValueError The format of the version number in the file is
|
||||
# incorrect.
|
||||
# \raises KeyError The format of the file is incorrect.
|
||||
def getCfgVersion(self, serialised):
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialised)
|
||||
return int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised.
|
||||
|
||||
## Upgrades the preferences file from version 2.4 to 2.5.
|
||||
#
|
||||
# \param serialised The serialised form of a preferences file.
|
||||
# \param filename The name of the file to upgrade.
|
||||
def upgradePreferences(self, serialised, filename):
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialised)
|
||||
|
||||
#Remove settings from the visible_settings.
|
||||
if parser.has_section("general") and "visible_settings" in parser["general"]:
|
||||
visible_settings = parser["general"]["visible_settings"].split(";")
|
||||
visible_settings = filter(lambda setting: setting not in _removed_settings, visible_settings)
|
||||
parser["general"]["visible_settings"] = ";".join(visible_settings)
|
||||
|
||||
#Change the version number in the file.
|
||||
if parser.has_section("general"): #It better have!
|
||||
parser["general"]["version"] = "5"
|
||||
|
||||
#Re-serialise the file.
|
||||
output = io.StringIO()
|
||||
parser.write(output)
|
||||
return [filename], [output.getvalue()]
|
||||
|
||||
## Upgrades an instance container from version 2.4 to 2.5.
|
||||
#
|
||||
# \param serialised The serialised form of a quality profile.
|
||||
# \param filename The name of the file to upgrade.
|
||||
def upgradeInstanceContainer(self, serialised, filename):
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(serialised)
|
||||
|
||||
#Remove settings from the [values] section.
|
||||
if parser.has_section("values"):
|
||||
for removed_setting in (_removed_settings & parser["values"].keys()): #Both in keys that need to be removed and in keys present in the file.
|
||||
del parser["values"][removed_setting]
|
||||
|
||||
#Change the version number in the file.
|
||||
if parser.has_section("general"):
|
||||
parser["general"]["version"] = "3"
|
||||
|
||||
#Re-serialise the file.
|
||||
output = io.StringIO()
|
||||
parser.write(output)
|
||||
return [filename], [output.getvalue()]
|
44
plugins/VersionUpgrade/VersionUpgrade24to25/__init__.py
Normal file
44
plugins/VersionUpgrade/VersionUpgrade24to25/__init__.py
Normal file
|
@ -0,0 +1,44 @@
|
|||
# Copyright (c) 2017 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from . import VersionUpgrade24to25
|
||||
|
||||
from UM.i18n import i18nCatalog
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
upgrade = VersionUpgrade24to25.VersionUpgrade24to25()
|
||||
|
||||
def getMetaData():
|
||||
return {
|
||||
"plugin": {
|
||||
"name": catalog.i18nc("@label", "Version Upgrade 2.4 to 2.5"),
|
||||
"author": "Ultimaker",
|
||||
"version": "1.0",
|
||||
"description": catalog.i18nc("@info:whatsthis", "Upgrades configurations from Cura 2.4 to Cura 2.5."),
|
||||
"api": 3
|
||||
},
|
||||
"version_upgrade": {
|
||||
# From To Upgrade function
|
||||
("preferences", 4): ("preferences", 5, upgrade.upgradePreferences),
|
||||
("quality", 2): ("quality", 3, upgrade.upgradeInstanceContainer),
|
||||
("variant", 2): ("variant", 3, upgrade.upgradeInstanceContainer), #We can re-use upgradeContainerStack since there is nothing specific to quality, variant or user profiles being changed.
|
||||
("user", 2): ("user", 3, upgrade.upgradeInstanceContainer)
|
||||
},
|
||||
"sources": {
|
||||
"quality": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./quality"}
|
||||
},
|
||||
"preferences": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"."}
|
||||
},
|
||||
"user": {
|
||||
"get_version": upgrade.getCfgVersion,
|
||||
"location": {"./user"}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def register(app):
|
||||
return { "version_upgrade": upgrade }
|
|
@ -0,0 +1,190 @@
|
|||
# Copyright (c) 2017 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import configparser #To check whether the appropriate exceptions are raised.
|
||||
import pytest #To register tests with.
|
||||
|
||||
import VersionUpgrade24to25 #The module we're testing.
|
||||
|
||||
## Creates an instance of the upgrader to test with.
|
||||
@pytest.fixture
|
||||
def upgrader():
|
||||
return VersionUpgrade24to25.VersionUpgrade24to25()
|
||||
|
||||
test_cfg_version_good_data = [
|
||||
{
|
||||
"test_name": "Simple",
|
||||
"file_data": """[general]
|
||||
version = 1
|
||||
""",
|
||||
"version": 1
|
||||
},
|
||||
{
|
||||
"test_name": "Other Data Around",
|
||||
"file_data": """[nonsense]
|
||||
life = good
|
||||
|
||||
[general]
|
||||
version = 3
|
||||
|
||||
[values]
|
||||
layer_height = 0.12
|
||||
infill_sparse_density = 42
|
||||
""",
|
||||
"version": 3
|
||||
},
|
||||
{
|
||||
"test_name": "Negative Version", #Why not?
|
||||
"file_data": """[general]
|
||||
version = -20
|
||||
""",
|
||||
"version": -20
|
||||
}
|
||||
]
|
||||
|
||||
## Tests the technique that gets the version number from CFG files.
|
||||
#
|
||||
# \param data The parametrised data to test with. It contains a test name
|
||||
# to debug with, the serialised contents of a CFG file and the correct
|
||||
# version number in that CFG file.
|
||||
# \param upgrader The instance of the upgrade class to test.
|
||||
@pytest.mark.parametrize("data", test_cfg_version_good_data)
|
||||
def test_cfgVersionGood(data, upgrader):
|
||||
version = upgrader.getCfgVersion(data["file_data"])
|
||||
assert version == data["version"]
|
||||
|
||||
test_cfg_version_bad_data = [
|
||||
{
|
||||
"test_name": "Empty",
|
||||
"file_data": "",
|
||||
"exception": configparser.Error #Explicitly not specified further which specific error we're getting, because that depends on the implementation of configparser.
|
||||
},
|
||||
{
|
||||
"test_name": "No General",
|
||||
"file_data": """[values]
|
||||
layer_height = 0.1337
|
||||
""",
|
||||
"exception": configparser.Error
|
||||
},
|
||||
{
|
||||
"test_name": "No Version",
|
||||
"file_data": """[general]
|
||||
true = false
|
||||
""",
|
||||
"exception": configparser.Error
|
||||
},
|
||||
{
|
||||
"test_name": "Not a Number",
|
||||
"file_data": """[general]
|
||||
version = not-a-text-version-number
|
||||
""",
|
||||
"exception": ValueError
|
||||
}
|
||||
]
|
||||
|
||||
## Tests whether getting a version number from bad CFG files gives an
|
||||
# exception.
|
||||
#
|
||||
# \param data The parametrised data to test with. It contains a test name
|
||||
# to debug with, the serialised contents of a CFG file and the class of
|
||||
# exception it needs to throw.
|
||||
# \param upgrader The instance of the upgrader to test.
|
||||
@pytest.mark.parametrize("data", test_cfg_version_bad_data)
|
||||
def test_cfgVersionBad(data, upgrader):
|
||||
with pytest.raises(data["exception"]):
|
||||
upgrader.getCfgVersion(data["file_data"])
|
||||
|
||||
test_upgrade_preferences_removed_settings_data = [
|
||||
{
|
||||
"test_name": "Removed Setting",
|
||||
"file_data": """[general]
|
||||
visible_settings = baby;you;know;how;I;like;to;start_layers_at_same_position
|
||||
""",
|
||||
},
|
||||
{
|
||||
"test_name": "No Removed Setting",
|
||||
"file_data": """[general]
|
||||
visible_settings = baby;you;now;how;I;like;to;eat;chocolate;muffins
|
||||
"""
|
||||
},
|
||||
{
|
||||
"test_name": "No Visible Settings Key",
|
||||
"file_data": """[general]
|
||||
cura = cool
|
||||
"""
|
||||
},
|
||||
{
|
||||
"test_name": "No General Category",
|
||||
"file_data": """[foos]
|
||||
foo = bar
|
||||
"""
|
||||
}
|
||||
]
|
||||
|
||||
## Tests whether the settings that should be removed are removed for the 2.5
|
||||
# version of preferences.
|
||||
@pytest.mark.parametrize("data", test_upgrade_preferences_removed_settings_data)
|
||||
def test_upgradePreferencesRemovedSettings(data, upgrader):
|
||||
#Get the settings from the original file.
|
||||
original_parser = configparser.ConfigParser(interpolation = None)
|
||||
original_parser.read_string(data["file_data"])
|
||||
settings = set()
|
||||
if original_parser.has_section("general") and "visible_settings" in original_parser["general"]:
|
||||
settings = set(original_parser["general"]["visible_settings"].split(";"))
|
||||
|
||||
#Perform the upgrade.
|
||||
_, upgraded_preferences = upgrader.upgradePreferences(data["file_data"], "<string>")
|
||||
upgraded_preferences = upgraded_preferences[0]
|
||||
|
||||
#Find whether the removed setting is removed from the file now.
|
||||
settings -= VersionUpgrade24to25._removed_settings
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(upgraded_preferences)
|
||||
assert (parser.has_section("general") and "visible_settings" in parser["general"]) == (len(settings) > 0) #If there are settings, there must also be a preference.
|
||||
if settings:
|
||||
assert settings == set(parser["general"]["visible_settings"].split(";"))
|
||||
|
||||
test_upgrade_instance_container_removed_settings_data = [
|
||||
{
|
||||
"test_name": "Removed Setting",
|
||||
"file_data": """[values]
|
||||
layer_height = 0.1337
|
||||
start_layers_at_same_position = True
|
||||
"""
|
||||
},
|
||||
{
|
||||
"test_name": "No Removed Setting",
|
||||
"file_data": """[values]
|
||||
oceans_number = 11
|
||||
"""
|
||||
},
|
||||
{
|
||||
"test_name": "No Values Category",
|
||||
"file_data": """[general]
|
||||
type = instance_container
|
||||
"""
|
||||
}
|
||||
]
|
||||
|
||||
## Tests whether the settings that should be removed are removed for the 2.5
|
||||
# version of instance containers.
|
||||
@pytest.mark.parametrize("data", test_upgrade_instance_container_removed_settings_data)
|
||||
def test_upgradeInstanceContainerRemovedSettings(data, upgrader):
|
||||
#Get the settings from the original file.
|
||||
original_parser = configparser.ConfigParser(interpolation = None)
|
||||
original_parser.read_string(data["file_data"])
|
||||
settings = set()
|
||||
if original_parser.has_section("values"):
|
||||
settings = set(original_parser["values"])
|
||||
|
||||
#Perform the upgrade.
|
||||
_, upgraded_container = upgrader.upgradeInstanceContainer(data["file_data"], "<string>")
|
||||
upgraded_container = upgraded_container[0]
|
||||
|
||||
#Find whether the forbidden setting is still in the container.
|
||||
settings -= VersionUpgrade24to25._removed_settings
|
||||
parser = configparser.ConfigParser(interpolation = None)
|
||||
parser.read_string(upgraded_container)
|
||||
assert parser.has_section("values") == (len(settings) > 0) #If there are settings, there must also be the values category.
|
||||
if settings:
|
||||
assert settings == set(parser["values"])
|
|
@ -58,7 +58,7 @@
|
|||
"value": "100"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": ";End GCode\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F{speed_travel} ;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"
|
||||
"default_value": ";End GCode\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 E-5 X-20 Y-20 ;retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG0 Z{machine_height} ;move the platform all the way down\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nM84 ;steppers off\nG90 ;absolute positioning\nM117 Done"
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
|
@ -70,7 +70,7 @@
|
|||
"default_value": "Renkforce RF100"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": ";Sliced at: {day} {date} {time}\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F{speed_travel} ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F{speed_travel}\nM117 Printing..."
|
||||
"default_value": ";Start GCode\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\n;Put printing message on LCD screen\nM117 Printing..."
|
||||
},
|
||||
"machine_width": {
|
||||
"value": "100"
|
||||
|
|
|
@ -47,7 +47,7 @@ UM.Dialog
|
|||
|
||||
Label
|
||||
{
|
||||
text: "You have customized some profile settings.\nWould you like to keep or discard those settings?"
|
||||
text: catalog.i18nc("@text:window", "You have customized some profile settings.\nWould you like to keep or discard those settings?")
|
||||
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||
font: UM.Theme.getFont("default")
|
||||
wrapMode: Text.WordWrap
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_pri3
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = abax_pri3
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_pri3
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_pri5
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = abax_pri5
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_pri5
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_titan
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = abax_titan
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = abax_titan
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = fdmprinter
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Low Quality
|
||||
definition = fdmprinter
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = fdmprinter
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = High Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Not Supported
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Fast Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Normal Quality
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Superdraft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Verydraft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Draft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Superdraft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Verydraft Print
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Not Supported
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Not Supported
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[general]
|
||||
version = 2
|
||||
version = 3
|
||||
name = Not Supported
|
||||
definition = ultimaker3
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue