Merge branch 'master' into CS-234_network_plugin_code_quality

This commit is contained in:
ChrisTerBeke 2019-07-29 08:47:13 +02:00
commit 8f37c83b9c
58 changed files with 403 additions and 168 deletions

View File

@ -598,7 +598,7 @@ class MachineManager(QObject):
def activeStack(self) -> Optional["ExtruderStack"]:
return self._active_container_stack
@pyqtProperty(str, notify=activeMaterialChanged)
@pyqtProperty(str, notify = activeMaterialChanged)
def activeMaterialId(self) -> str:
if self._active_container_stack:
material = self._active_container_stack.material
@ -985,10 +985,13 @@ class MachineManager(QObject):
self._application.globalContainerStackChanged.emit()
self.forceUpdateAllSettings()
# Note that this function is deprecated, but the decorators for this don't play well together!
# @deprecated("use Cura.MachineManager.activeMachine.extruders instead", "4.2")
@pyqtSlot(int, result = QObject)
def getExtruder(self, position: int) -> Optional[ExtruderStack]:
return self._getExtruder(position)
# This is a workaround for the deprecated decorator and the pyqtSlot not playing well together.
@deprecated("use Cura.MachineManager.activeMachine.extruders instead", "4.2")
def _getExtruder(self, position) -> Optional[ExtruderStack]:
if self._global_container_stack:
return self._global_container_stack.extruders.get(str(position))
return None

View File

@ -134,6 +134,14 @@ class StartSliceJob(Job):
self.setResult(StartJobResult.BuildPlateError)
return
# Wait for error checker to be done.
while CuraApplication.getInstance().getMachineErrorChecker().needToWaitForResult:
time.sleep(0.1)
if CuraApplication.getInstance().getMachineErrorChecker().hasError:
self.setResult(StartJobResult.SettingError)
return
# Don't slice if the buildplate or the nozzle type is incompatible with the materials
if not CuraApplication.getInstance().getMachineManager().variantBuildplateCompatible and \
not CuraApplication.getInstance().getMachineManager().variantBuildplateUsable:

View File

@ -14,6 +14,9 @@ _renamed_profiles = {"generic_pla_0.4_coarse": "jbo_generic_pla_0.4_coarse",
"generic_petg_0.4_medium": "jbo_generic_petg_medium",
}
_removed_settings = {
"start_layers_at_same_position"
}
## Upgrades configurations from the state they were in at version 4.2 to the
# state they should be in at version 4.3.
@ -41,19 +44,24 @@ class VersionUpgrade42to43(VersionUpgrade):
#
# This renames the renamed settings in the containers.
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
parser = configparser.ConfigParser(interpolation=None)
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Update version number.
parser["metadata"]["setting_version"] = "9"
if "values" in parser:
for key in _removed_settings:
if key in parser["values"]:
del parser["values"][key]
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
## Upgrades stacks to have the new version number.
def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
parser = configparser.ConfigParser(interpolation=None)
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Update version number.

View File

@ -201,12 +201,6 @@
"extruder_prime_pos_x": { "default_value": 0.0, "enabled": false },
"extruder_prime_pos_y": { "default_value": 0.0, "enabled": false },
"extruder_prime_pos_z": { "default_value": 0.0, "enabled": false },
"start_layers_at_same_position":
{
"default_value": false,
"enabled": false,
"value": false
},
"layer_start_x":
{
"default_value": 105.0,

View File

@ -3772,17 +3772,6 @@
"settable_per_mesh": false,
"settable_per_extruder": true
},
"start_layers_at_same_position":
{
"label": "Start Layers with the Same Part",
"description": "In each layer start with printing the object near the same point, so that we don't start a new layer with printing the piece which the previous layer ended with. This makes for better overhangs and small parts, but increases printing time.",
"type": "bool",
"default_value": false,
"enabled": false,
"settable_per_mesh": false,
"settable_per_extruder": false,
"settable_per_meshgroup": true
},
"layer_start_x":
{
"label": "Layer Start X",

View File

@ -80,7 +80,6 @@
"raft_surface_layers": { "default_value": 1 },
"skirt_line_count": { "default_value": 2},
"brim_width" : { "default_value": 5},
"start_layers_at_same_position": { "default_value": true},
"retraction_combing": { "default_value": "noskin" },
"retraction_amount" : { "default_value": 4.5},
"retraction_speed" : { "default_value": 40},

View File

@ -14,6 +14,7 @@
"has_machine_materials": true,
"has_variants": true,
"preferred_variant_name": "Standard 0.6",
"preferred_material": "emotiontech_pla",
"preferred_quality_type": "e",
"variants_name": "Print Head",
"machine_extruder_trains":

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:32+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:34+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-05-28 09:34+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2017-09-27 12:27+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2017-08-11 14:31+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2017-09-27 12:27+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:35+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-03-14 14:31+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:46+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-05-28 09:49+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:50+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-27 13:29+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-05-27 22:32+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:51+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-18 11:27+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-05-28 09:51+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-03-14 14:15+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-14 14:15+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-14 14:15+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-28 09:52+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-14 14:47+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-03-14 14:49+0100\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-13 14:00+0200\n"

54
resources/i18n/zh_TW/cura.po Executable file → Normal file
View File

@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-07-16 14:38+0200\n"
"PO-Revision-Date: 2019-05-24 21:46+0800\n"
"PO-Revision-Date: 2019-07-20 20:39+0800\n"
"Last-Translator: Zhang Heh Ji <dinowchang@gmail.com>\n"
"Language-Team: Zhang Heh Ji <dinowchang@gmail.com>\n"
"Language: zh_TW\n"
@ -88,7 +88,7 @@ msgstr "列印參數已被合併並啟用。"
#: /home/ruben/Projects/Cura/plugins/AMFReader/__init__.py:15
msgctxt "@item:inlistbox"
msgid "AMF File"
msgstr ""
msgstr "AMF 檔案"
#: /home/ruben/Projects/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:37
msgctxt "@item:inmenu"
@ -930,7 +930,7 @@ msgstr "無效的檔案網址:"
#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:925
msgctxt "@info:message Followed by a list of settings."
msgid "Settings have been changed to match the current availability of extruders:"
msgstr ""
msgstr "設定已被更改為符合目前擠出機:"
#: /home/ruben/Projects/Cura/cura/Settings/MachineManager.py:927
msgctxt "@info:title"
@ -1395,7 +1395,7 @@ msgstr "日誌"
#: /home/ruben/Projects/Cura/cura/CrashHandler.py:322
msgctxt "@title:groupbox"
msgid "User description (Note: Developers may not speak your language, please use English if possible)"
msgstr ""
msgstr "使用者描述(注意:開發人員可能不會說您的語言,請盡可能使用英語)"
#: /home/ruben/Projects/Cura/cura/CrashHandler.py:342
msgctxt "@action:button"
@ -1931,7 +1931,7 @@ msgstr "玻璃"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrintJobCard.qml:249
msgctxt "@info"
msgid "Please update your printer's firmware to manage the queue remotely."
msgstr ""
msgstr "請更新你印表機的韌體以便遠端管理工作隊列。"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:241
msgctxt "@info"
@ -1996,12 +1996,12 @@ msgstr "已排入隊列"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml:67
msgctxt "@label link to connect manager"
msgid "Manage in browser"
msgstr ""
msgstr "使用瀏覽器管理"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml:100
msgctxt "@label"
msgid "There are no print jobs in the queue. Slice and send a job to add one."
msgstr ""
msgstr "目前沒有列印作業在隊列中。可透過切片並傳送列印作來增加一個。"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorQueue.qml:116
msgctxt "@label"
@ -2036,12 +2036,12 @@ msgstr "連接到網路印表機"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:81
msgctxt "@label"
msgid "To print directly to your printer over the network, please make sure your printer is connected to the network using a network cable or by connecting your printer to your WIFI network. If you don't connect Cura with your printer, you can still use a USB drive to transfer g-code files to your printer."
msgstr ""
msgstr "要透過網路列印,請確認你的印表機已透過網路線或 WIFI 連接到網路。若你無法讓 Cura 與印表機連線,你仍然可以使用 USB 裝置將 G-code 檔案傳輸到印表機。"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:81
msgctxt "@label"
msgid "Select your printer from the list below:"
msgstr ""
msgstr "從下列清單中選擇你的印表機:"
#: /home/ruben/Projects/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:101
msgctxt "@action:button"
@ -2340,6 +2340,10 @@ msgid ""
"- Check if the printer is connected to the network.\n"
"- Check if you are signed in to discover cloud-connected printers."
msgstr ""
"請確認你的印表機有連接:\n"
"- 檢查印表機是否已打開。\n"
"- 檢查印表機是否已連接到網路。\n"
"- 檢查是否已登入以尋找雲端連接的印表機。"
#: /home/ruben/Projects/Cura/plugins/MonitorStage/MonitorMain.qml:117
msgctxt "@info"
@ -3255,7 +3259,7 @@ msgstr "是否跟隨滑鼠方向進行縮放?"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:371
msgctxt "@info:tooltip"
msgid "Zooming towards the mouse is not supported in the orthogonal perspective."
msgstr ""
msgstr "正交透視不支援游標縮放功能。"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:376
msgctxt "@action:button"
@ -3305,20 +3309,20 @@ msgstr "強制分層檢視相容模式(需要重新啟動)"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:465
msgctxt "@info:tooltip"
msgid "What type of camera rendering should be used?"
msgstr ""
msgstr "使用哪種類型的攝影機渲染?"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:472
msgctxt "@window:text"
msgid "Camera rendering: "
msgstr ""
msgstr "攝影機渲染:"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:483
msgid "Perspective"
msgstr ""
msgstr "透視"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:484
msgid "Orthogonal"
msgstr ""
msgstr "正交"
#: /home/ruben/Projects/Cura/resources/qml/Preferences/GeneralPage.qml:515
msgctxt "@label"
@ -3999,17 +4003,17 @@ msgstr "視角位置(&C"
#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:44
msgctxt "@action:inmenu menubar:view"
msgid "Camera view"
msgstr ""
msgstr "攝影機檢視"
#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:47
msgctxt "@action:inmenu menubar:view"
msgid "Perspective"
msgstr ""
msgstr "透視"
#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:59
msgctxt "@action:inmenu menubar:view"
msgid "Orthographic"
msgstr ""
msgstr "正交"
#: /home/ruben/Projects/Cura/resources/qml/Menus/ViewMenu.qml:80
msgctxt "@action:inmenu menubar:view"
@ -4156,7 +4160,7 @@ msgstr "檢示類型"
#: /home/ruben/Projects/Cura/resources/qml/ObjectSelector.qml:59
msgctxt "@label"
msgid "Object list"
msgstr ""
msgstr "物件清單"
#: /home/ruben/Projects/Cura/resources/qml/Account/UserOperations.qml:22
msgctxt "@label The argument is a username."
@ -4227,7 +4231,7 @@ msgstr "無法切片"
#: /home/ruben/Projects/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:103
msgctxt "@button"
msgid "Processing"
msgstr ""
msgstr "處理中"
#: /home/ruben/Projects/Cura/resources/qml/ActionPanel/SliceProcessWidget.qml:103
msgctxt "@button"
@ -4297,7 +4301,7 @@ msgstr "切換全螢幕"
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:96
msgctxt "@action:inmenu"
msgid "Exit Full Screen"
msgstr ""
msgstr "離開全螢幕"
#: /home/ruben/Projects/Cura/resources/qml/Actions.qml:103
msgctxt "@action:inmenu menubar:edit"
@ -5141,12 +5145,12 @@ msgstr "參數撫平器"
#: AMFReader/plugin.json
msgctxt "description"
msgid "Provides support for reading AMF files."
msgstr ""
msgstr "提供對讀取 AMF 格式檔案的支援。"
#: AMFReader/plugin.json
msgctxt "name"
msgid "AMF Reader"
msgstr ""
msgstr "AMF 讀取器"
#: USBPrinting/plugin.json
msgctxt "description"
@ -5411,12 +5415,12 @@ msgstr "升級版本 3.0 到 3.1"
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
msgctxt "description"
msgid "Upgrades configurations from Cura 4.1 to Cura 4.2."
msgstr ""
msgstr "將設定從 Cura 4.1 版本升級至 4.2 版本。"
#: VersionUpgrade/VersionUpgrade41to42/plugin.json
msgctxt "name"
msgid "Version Upgrade 4.1 to 4.2"
msgstr ""
msgstr "升級版本 4.1 到 4.2"
#: VersionUpgrade/VersionUpgrade26to27/plugin.json
msgctxt "description"

View File

@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-03-03 14:09+0800\n"

114
resources/i18n/zh_TW/fdmprinter.def.json.po Executable file → Normal file
View File

@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Cura 4.1\n"
"Project-Id-Version: Cura 4.2\n"
"Report-Msgid-Bugs-To: r.dulek@ultimaker.com\n"
"POT-Creation-Date: 2019-07-16 14:38+0000\n"
"PO-Revision-Date: 2019-05-28 10:26+0200\n"
"PO-Revision-Date: 2019-07-23 21:08+0800\n"
"Last-Translator: Zhang Heh Ji <dinowchang@gmail.com>\n"
"Language-Team: Zhang Heh Ji <dinowchang@gmail.com>\n"
"Language: zh_TW\n"
@ -338,7 +338,7 @@ msgstr "擠出機必須保持不活動以便噴頭冷卻的最短時間。擠出
#: fdmprinter.def.json
msgctxt "machine_gcode_flavor label"
msgid "G-code Flavor"
msgstr ""
msgstr "G-code 類型"
#: fdmprinter.def.json
msgctxt "machine_gcode_flavor description"
@ -1298,7 +1298,7 @@ msgstr "接縫偏好設定"
#: fdmprinter.def.json
msgctxt "z_seam_corner description"
msgid "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate."
msgstr ""
msgstr "控制模型輪廓上的轉角是否影響接縫的位置。「無」表示轉角不影響接縫位置。「隱藏接縫」讓接縫盡量出現在凹角。「暴露接縫」讓接縫盡量出現在凸角。「隱藏或暴露接縫」讓接縫盡量出現在凹角或凸角。「智慧隱藏」允許使用凹角或凸角,但如果狀況合適,會盡可能地選擇凹角。"
#: fdmprinter.def.json
msgctxt "z_seam_corner option z_seam_corner_none"
@ -1323,7 +1323,7 @@ msgstr "隱藏或暴露接縫"
#: fdmprinter.def.json
msgctxt "z_seam_corner option z_seam_corner_weighted"
msgid "Smart Hiding"
msgstr ""
msgstr "智慧隱藏"
#: fdmprinter.def.json
msgctxt "z_seam_relative label"
@ -1338,12 +1338,12 @@ msgstr "啟用時Z 接縫座標為相對於各個部分中心的值。關閉
#: fdmprinter.def.json
msgctxt "skin_no_small_gaps_heuristic label"
msgid "No Skin in Z Gaps"
msgstr ""
msgstr "Z 間隙無表層"
#: fdmprinter.def.json
msgctxt "skin_no_small_gaps_heuristic description"
msgid "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air."
msgstr ""
msgstr "當模型具有僅幾層的小垂直間隙時,通常在那些層周圍的狹窄空間中應該存在表層。如果垂直間隙非常小,啟用此設定會停止自動產生表層。這樣可以縮短列印時間和切片時間,但技術上會使填充暴露出來。"
#: fdmprinter.def.json
msgctxt "skin_outline_count label"
@ -1882,7 +1882,7 @@ msgstr "列印空間溫度"
#: fdmprinter.def.json
msgctxt "build_volume_temperature description"
msgid "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted."
msgstr ""
msgstr "列印的環境溫度。如果設為 0則不會調整列印空間溫度。"
#: fdmprinter.def.json
msgctxt "material_print_temperature label"
@ -1997,82 +1997,82 @@ msgstr "收縮率百分比。"
#: fdmprinter.def.json
msgctxt "material_crystallinity label"
msgid "Crystalline Material"
msgstr ""
msgstr "晶狀耗材"
#: fdmprinter.def.json
msgctxt "material_crystallinity description"
msgid "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?"
msgstr ""
msgstr "這種耗材高溫時是脆斷的類型(晶狀),還是拉絲的類型(非晶狀)?"
#: fdmprinter.def.json
msgctxt "material_anti_ooze_retracted_position label"
msgid "Anti-ooze Retracted Position"
msgstr ""
msgstr "防滲漏回抽位置"
#: fdmprinter.def.json
msgctxt "material_anti_ooze_retracted_position description"
msgid "How far the material needs to be retracted before it stops oozing."
msgstr ""
msgstr "停止滲漏要回抽耗材多長的距離。"
#: fdmprinter.def.json
msgctxt "material_anti_ooze_retraction_speed label"
msgid "Anti-ooze Retraction Speed"
msgstr ""
msgstr "防滲漏回抽速度"
#: fdmprinter.def.json
msgctxt "material_anti_ooze_retraction_speed description"
msgid "How fast the material needs to be retracted during a filament switch to prevent oozing."
msgstr ""
msgstr "在耗材切換回抽時,需要多快的速度來防止滲漏。"
#: fdmprinter.def.json
msgctxt "material_break_preparation_retracted_position label"
msgid "Break Preparation Retracted Position"
msgstr ""
msgstr "回抽切斷前位置"
#: fdmprinter.def.json
msgctxt "material_break_preparation_retracted_position description"
msgid "How far the filament can be stretched before it breaks, while heated."
msgstr ""
msgstr "在加熱時,耗材在脆斷前可以拉伸多長的距離。"
#: fdmprinter.def.json
msgctxt "material_break_preparation_speed label"
msgid "Break Preparation Retraction Speed"
msgstr ""
msgstr "回抽切斷前速度"
#: fdmprinter.def.json
msgctxt "material_break_preparation_speed description"
msgid "How fast the filament needs to be retracted just before breaking it off in a retraction."
msgstr ""
msgstr "回抽切斷前,耗材回抽的速度"
#: fdmprinter.def.json
msgctxt "material_break_retracted_position label"
msgid "Break Retracted Position"
msgstr ""
msgstr "回抽切斷位置"
#: fdmprinter.def.json
msgctxt "material_break_retracted_position description"
msgid "How far to retract the filament in order to break it cleanly."
msgstr ""
msgstr "要讓耗材脆斷需要回抽長的距離。"
#: fdmprinter.def.json
msgctxt "material_break_speed label"
msgid "Break Retraction Speed"
msgstr ""
msgstr "回抽切斷速度"
#: fdmprinter.def.json
msgctxt "material_break_speed description"
msgid "The speed at which to retract the filament in order to break it cleanly."
msgstr ""
msgstr "要讓耗材脆斷要回抽多快。"
#: fdmprinter.def.json
msgctxt "material_break_temperature label"
msgid "Break Temperature"
msgstr ""
msgstr "切斷溫度"
#: fdmprinter.def.json
msgctxt "material_break_temperature description"
msgid "The temperature at which the filament is broken for a clean break."
msgstr ""
msgstr "要讓耗材脆斷所需的溫度。"
#: fdmprinter.def.json
msgctxt "material_flow label"
@ -2087,112 +2087,112 @@ msgstr "流量補償:擠出的耗材量乘以此值。"
#: fdmprinter.def.json
msgctxt "wall_material_flow label"
msgid "Wall Flow"
msgstr ""
msgstr "牆壁流量"
#: fdmprinter.def.json
msgctxt "wall_material_flow description"
msgid "Flow compensation on wall lines."
msgstr ""
msgstr "牆壁線條的流量補償。"
#: fdmprinter.def.json
msgctxt "wall_0_material_flow label"
msgid "Outer Wall Flow"
msgstr ""
msgstr "外壁流量"
#: fdmprinter.def.json
msgctxt "wall_0_material_flow description"
msgid "Flow compensation on the outermost wall line."
msgstr ""
msgstr "外壁線條的流量補償。"
#: fdmprinter.def.json
msgctxt "wall_x_material_flow label"
msgid "Inner Wall(s) Flow"
msgstr ""
msgstr "內壁流量"
#: fdmprinter.def.json
msgctxt "wall_x_material_flow description"
msgid "Flow compensation on wall lines for all wall lines except the outermost one."
msgstr ""
msgstr "最外層牆壁以外的牆壁線條的流量補償。"
#: fdmprinter.def.json
msgctxt "skin_material_flow label"
msgid "Top/Bottom Flow"
msgstr ""
msgstr "頂部/底部流量"
#: fdmprinter.def.json
msgctxt "skin_material_flow description"
msgid "Flow compensation on top/bottom lines."
msgstr ""
msgstr "頂部/底部線條的流量補償。"
#: fdmprinter.def.json
msgctxt "roofing_material_flow label"
msgid "Top Surface Skin Flow"
msgstr ""
msgstr "頂部表層流量"
#: fdmprinter.def.json
msgctxt "roofing_material_flow description"
msgid "Flow compensation on lines of the areas at the top of the print."
msgstr ""
msgstr "頂部區域線條的流量補償。"
#: fdmprinter.def.json
msgctxt "infill_material_flow label"
msgid "Infill Flow"
msgstr ""
msgstr "填充流量"
#: fdmprinter.def.json
msgctxt "infill_material_flow description"
msgid "Flow compensation on infill lines."
msgstr ""
msgstr "填充線條的流量補償。"
#: fdmprinter.def.json
msgctxt "skirt_brim_material_flow label"
msgid "Skirt/Brim Flow"
msgstr ""
msgstr "外圍/邊緣流量"
#: fdmprinter.def.json
msgctxt "skirt_brim_material_flow description"
msgid "Flow compensation on skirt or brim lines."
msgstr ""
msgstr "外圍/邊緣線條的流量補償。"
#: fdmprinter.def.json
msgctxt "support_material_flow label"
msgid "Support Flow"
msgstr ""
msgstr "支撐流量"
#: fdmprinter.def.json
msgctxt "support_material_flow description"
msgid "Flow compensation on support structure lines."
msgstr ""
msgstr "支撐結構線條的流量補償。"
#: fdmprinter.def.json
msgctxt "support_interface_material_flow label"
msgid "Support Interface Flow"
msgstr ""
msgstr "支撐介面流量"
#: fdmprinter.def.json
msgctxt "support_interface_material_flow description"
msgid "Flow compensation on lines of support roof or floor."
msgstr ""
msgstr "支撐頂板或底板線條的流量補償。"
#: fdmprinter.def.json
msgctxt "support_roof_material_flow label"
msgid "Support Roof Flow"
msgstr ""
msgstr "支撐頂板流量"
#: fdmprinter.def.json
msgctxt "support_roof_material_flow description"
msgid "Flow compensation on support roof lines."
msgstr ""
msgstr "支撐頂板線條的流量補償。"
#: fdmprinter.def.json
msgctxt "support_bottom_material_flow label"
msgid "Support Floor Flow"
msgstr ""
msgstr "支撐底板流量"
#: fdmprinter.def.json
msgctxt "support_bottom_material_flow description"
msgid "Flow compensation on support floor lines."
msgstr ""
msgstr "支撐底板線條的流量補償。"
#: fdmprinter.def.json
msgctxt "prime_tower_flow label"
@ -2202,7 +2202,7 @@ msgstr "換料塔流量"
#: fdmprinter.def.json
msgctxt "prime_tower_flow description"
msgid "Flow compensation on prime tower lines."
msgstr ""
msgstr "換料塔線條的流量補償。"
#: fdmprinter.def.json
msgctxt "material_flow_layer_0 label"
@ -2322,7 +2322,7 @@ msgstr "限制支撐回抽"
#: fdmprinter.def.json
msgctxt "limit_support_retractions description"
msgid "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure."
msgstr ""
msgstr "當從支撐直線移動到另一支撐時,省略回抽。啟用此功能可節省列印時間,但會導致支撐內部有較多的牽絲。"
#: fdmprinter.def.json
msgctxt "material_standby_temperature label"
@ -2377,12 +2377,12 @@ msgstr "噴頭切換回抽後耗材被推回的速度。"
#: fdmprinter.def.json
msgctxt "switch_extruder_extra_prime_amount label"
msgid "Nozzle Switch Extra Prime Amount"
msgstr ""
msgstr "噴頭切換額外裝填量"
#: fdmprinter.def.json
msgctxt "switch_extruder_extra_prime_amount description"
msgid "Extra material to prime after nozzle switching."
msgstr ""
msgstr "噴頭切換後額外裝填的耗材量。"
#: fdmprinter.def.json
msgctxt "speed label"
@ -2577,12 +2577,12 @@ msgstr "列印外圍和邊緣的速度。一般情况是以起始層速度列印
#: fdmprinter.def.json
msgctxt "speed_z_hop label"
msgid "Z Hop Speed"
msgstr ""
msgstr "Z 抬升速度"
#: fdmprinter.def.json
msgctxt "speed_z_hop description"
msgid "The speed at which the vertical Z movement is made for Z Hops. This is typically lower than the print speed since the build plate or machine's gantry is harder to move."
msgstr ""
msgstr "Z 抬升時 Z 軸垂直移動的速度。這通常低於列印速度,因為列印平台或機器的吊車較難移動。"
#: fdmprinter.def.json
msgctxt "speed_slowdown_layers label"
@ -3637,7 +3637,7 @@ msgstr "支撐結合距離"
#: fdmprinter.def.json
msgctxt "support_join_distance description"
msgid "The maximum distance between support structures in the X/Y directions. When separate structures are closer together than this value, the structures merge into one."
msgstr ""
msgstr "支撐結構間在 X/Y 方向的最大距離。當結構與結構靠近到小於此值時,這些結構將合併為一個。"
#: fdmprinter.def.json
msgctxt "support_offset label"
@ -4017,12 +4017,12 @@ msgstr "特殊塔的直徑。"
#: fdmprinter.def.json
msgctxt "support_tower_maximum_supported_diameter label"
msgid "Maximum Tower-Supported Diameter"
msgstr ""
msgstr "最大塔型支撐直徑"
#: fdmprinter.def.json
msgctxt "support_tower_maximum_supported_diameter description"
msgid "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower."
msgstr ""
msgstr "塔型支撐使用的區域在 X/Y 方向的最大直徑。"
#: fdmprinter.def.json
msgctxt "support_tower_roof_angle label"
@ -4861,7 +4861,7 @@ msgstr "平滑螺旋輪廓"
#: fdmprinter.def.json
msgctxt "smooth_spiralized_contours description"
msgid "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details."
msgstr ""
msgstr "平滑螺旋輪廓可以減少 Z 縫的出現Z 縫應在列印品上幾乎看不到,但在分層檢視中仍然可見)。請注意,平滑操作將傾向於模糊精細的表面細節。"
#: fdmprinter.def.json
msgctxt "relative_extrusion label"
@ -5361,7 +5361,7 @@ msgstr "啟用錐形支撐"
#: fdmprinter.def.json
msgctxt "support_conical_enabled description"
msgid "Make support areas smaller at the bottom than at the overhang."
msgstr ""
msgstr "讓底部的支撐區域小於突出部分的支撐區域。"
#: fdmprinter.def.json
msgctxt "support_conical_angle label"

View File

@ -13,7 +13,6 @@ Item
{
id: base
property QtObject materialManager: CuraApplication.getMaterialManager()
// Keep PreferencesDialog happy
property var resetEnabled: false
property var currentItem: null
@ -49,15 +48,6 @@ Item
// When loaded, try to select the active material in the tree
Component.onCompleted: resetExpandedActiveMaterial()
Connections
{
target: Cura.MachineManager
onActiveMaterialChanged:
{
resetExpandedActiveMaterial()
}
}
// Every time the selected item has changed, notify to the details panel
onCurrentItemChanged:
{
@ -119,7 +109,7 @@ Item
onClicked:
{
forceActiveFocus();
base.newRootMaterialIdToSwitchTo = base.materialManager.createMaterial();
base.newRootMaterialIdToSwitchTo = CuraApplication.getMaterialManager().createMaterial();
base.toActivateNewMaterial = true;
}
}
@ -134,7 +124,7 @@ Item
onClicked:
{
forceActiveFocus();
base.newRootMaterialIdToSwitchTo = base.materialManager.duplicateMaterial(base.currentItem.container_node);
base.newRootMaterialIdToSwitchTo = CuraApplication.getMaterialManager().duplicateMaterial(base.currentItem.container_node);
base.toActivateNewMaterial = true;
}
}
@ -145,7 +135,7 @@ Item
id: removeMenuButton
text: catalog.i18nc("@action:button", "Remove")
iconName: "list-remove"
enabled: base.hasCurrentItem && !base.currentItem.is_read_only && !base.isCurrentItemActivated && base.materialManager.canMaterialBeRemoved(base.currentItem.container_node)
enabled: base.hasCurrentItem && !base.currentItem.is_read_only && !base.isCurrentItemActivated && CuraApplication.getMaterialManager().canMaterialBeRemoved(base.currentItem.container_node)
onClicked:
{
forceActiveFocus();
@ -294,7 +284,7 @@ Item
{
// Set the active material as the fallback. It will be selected when the current material is deleted
base.newRootMaterialIdToSwitchTo = base.active_root_material_id
base.materialManager.removeMaterial(base.currentItem.container_node);
CuraApplication.getMaterialManager().removeMaterial(base.currentItem.container_node);
}
}

View File

@ -82,10 +82,10 @@ Rectangle
{
if (materialSlot.is_favorite)
{
base.materialManager.removeFavorite(material.root_material_id)
CuraApplication.getMaterialManager().removeFavorite(material.root_material_id)
return
}
base.materialManager.addFavorite(material.root_material_id)
CuraApplication.getMaterialManager().addFavorite(material.root_material_id)
return
}
style: ButtonStyle

View File

@ -14,8 +14,6 @@ TabView
{
id: base
property QtObject materialManager: CuraApplication.getMaterialManager()
property QtObject properties
property var currentMaterialNode: null
@ -567,7 +565,7 @@ TabView
}
// update the values
base.materialManager.setMaterialName(base.currentMaterialNode, new_name)
CuraApplication.getMaterialManager().setMaterialName(base.currentMaterialNode, new_name)
properties.name = new_name
}

View File

@ -203,7 +203,6 @@ travel_retract_before_outer_wall
travel_avoid_other_parts
travel_avoid_supports
travel_avoid_distance
start_layers_at_same_position
layer_start_x
layer_start_y
retraction_hop_enabled

View File

@ -1,3 +1,66 @@
[4.2.0]
*Orthographic view.
When preparing prints, professional users wanted more control over the 3D view type, so this version introduces an orthographic view, which is the same view type used by most professional CAD software packages. Find the orthographic view in View > Camera view > Orthographic, and compare the dimensions of your model to your CAD design with ease.
*Object list.
Easily identify corresponding filenames and models with this new popup list. Click a model in the viewport and its filename will highlight, or click a filename in the list and the corresponding model will highlight. The open or hidden state of the list will persist between sessions. How convenient.
*Print previews.
Some improvements have been made to print previews displayed in the monitor tab, Ultimaker Connect, or the Ultimaker S5 interface. In some instances, previews were clipped at the bottom or side, and sometimes models outside of the build plate area were visible. This is all fixed now.
*AMF file compatibility.
Ultimaker Cura now supports AMF (Additive manufacturing file format) files out-of-the-box, thanks to an AMF file reader contributed by fieldOfView.
*Slice button delay.
After clicking Slice, a lack of response could lead to frustrated buttonclicking. This version changes the button text to read Processing during any pre-slicing delay.
*Layer view line type.
The line type color scheme in the layer view has been tweaked with new colors for infill and support interfaces so that they can be distinguished better.
*Nozzle switch prime distance.
Certain materials “ooze” more than others during retraction and long moves. vgribinchuk has contributed a new setting that lets you finetune the restart distance, so that the full extrusion width is achieved when resuming a print.
*Smart Z seam.
A new option to increase the aesthetic quality of your prints has been added to custom mode, under Z seam settings. Smart Z seam works by analyzing your models geometry and automatically choosing when to hide or expose the seam, so that visible seams on outer walls are kept to a minimum.
*Separate Z axis movements.
Z axis movement handling has been improved to reduce the chance of print head collisions with prints.
*Flow per feature.
You can now adjust material flow for specific features of your print, such as walls, infill, support, prime towers, and adhesion. This allows line spacing to be controlled separately from flow settings.
*Merge infill lines.
We did some finetuning of the CuraEngine to improve print quality by filling thin infill areas more precisely and efficiently, and reducing movements that caused excessive gantry vibration.
*Z hop speed.
The Z hop speed for printers with no specific speed value would default to 299792458000 (light speed!) The new Z hop speed setting ensures that all Z hops are performed at a more sensible speed, which you can control.
*Support tower diameter.
The Minimum diameter setting for support towers has been renamed to Maximum Tower-Supported Diameter, which is more accurate and more specific because it mentions towers.
*Square prime towers.
Circular prime towers are now the default option. Square prime towers have been eradicated forever.
*Third-party printer order.
The add printer menu now includes third-party printers that are ordered by manufacturer, so that specific machines can be found easily. Printer definitions. New machine definitions added for:
- Anet A6 contributed by markbernard
- Stereotech ST320 and START contributed by frylock34
- Erzay3D contributed by Robokinetics
- FL Sun QQ contributed by curso007
- GeeTech A30 contributed by curso007
*Creawsome mod.
This version has pulled the Creawsome mod, made by trouch, which adds a lot of print profiles for Creality printers. It includes definitions for Creality CR10 Mini, CR10s, CR10s Pro, CR20, CR20 Pro, Ender 2, Ender 4 and Ender 5, and updates the definitions for CR10, CR10s4, CR10s5 and Ender3. The CRX is untouched. Pull requests are now submitted that merge the mod into mainline Cura.
* Bug fixes
- Noto Sans. Noto Sans was introduced as the default font in Ultimaker Cura some versions ago, but until now it wouldnt render properly in the application unless already installed on your computer. This release forces the application to render Noto Sans even when its not installed as a font on your computer. Fun fact: Ultimaker recently rebranded, and we made Noto Sans our corporate font as well.
- Reslice with per-model settings. When slicing a model with per-model settings, a change of one of the per model settings would not trigger a reslice. This has been fixed. Serial port interruptions. This version adds a way to stop serial connections if you add command line parameters.
- Print one-at-a-time blob. In print-one-at-a-time mode, prime blobs could cause obstructions and cause prints to fail. This has been fixed.
- Prime tower brim overlap fix. Fixed an issue where models on the build plate could overlap with brims of other models.
- Wrong printer name. Fixed an issue where Ultimaker 3D printers that are synchronized over the network would display Extruder 1 in place of the printers hostname.
- Unnecessary travel at print start. Fixed an issue where printing without a prime blob would cause the print head to make a 10 mm travel move for no reason.
- Stair step height. This version fixes support stair step height, which influences the adhesion between the model and support printed on top (supports everywhere). For now, this bug has had no influence on PVA supported prints.
[4.1.0]
*Draggable settings panels
There was a lot of feedback from the 4.0 release about the collapsible settings panels. Based on this feedback, we decided to make them completely draggable. The print settings panel (prepare stage) and the color scheme panel (preview stage) can now be dragged and positioned anywhere in the 3D viewer. A double click of the header will reset each to their default position.

View File

@ -0,0 +1,179 @@
# Copyright (c) 2019 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
import argparse #To get the source directory from command line arguments.
import os #To find files from the source.
import os.path #To find files from the source and the destination path.
cura_files = {"cura", "fdmprinter.def.json", "fdmextruder.def.json"}
uranium_files = {"uranium"}
## Imports translation files from Lionbridge.
#
# Lionbridge has a bit of a weird export feature. It exports it to the same
# file type as what we imported, so that's a .pot file. However this .pot file
# only contains the translations, so the header is completely empty. We need
# to merge those translations into our existing files so that the header is
# preserved.
def lionbridge_import(source: str) -> None:
print("Importing from:", source)
print("Importing to Cura:", destination_cura())
print("Importing to Uranium:", destination_uranium())
for language in (directory for directory in os.listdir(source) if os.path.isdir(os.path.join(source, directory))):
print("================ Processing language:", language, "================")
directory = os.path.join(source, language)
for file_pot in (file for file in os.listdir(directory) if file.endswith(".pot")):
source_file = file_pot[:-4] #Strip extension.
if source_file in cura_files:
destination_file = os.path.join(destination_cura(), language.replace("-", "_"), source_file + ".po")
print("Merging", source_file, "(Cura) into", destination_file)
elif source_file in uranium_files:
destination_file = os.path.join(destination_uranium(), language.replace("-", "_"), source_file + ".po")
print("Merging", source_file, "(Uranium) into", destination_file)
else:
raise Exception("Unknown file: " + source_file + "... Is this Cura or Uranium?")
with open(os.path.join(directory, file_pot)) as f:
source_str = f.read()
with open(destination_file) as f:
destination_str = f.read()
result = merge(source_str, destination_str)
with open(destination_file, "w") as f:
f.write(result)
## Gets the destination path to copy the translations for Cura to.
# \return Destination path for Cura.
def destination_cura() -> str:
return os.path.abspath(os.path.join(__file__, "..", "..", "resources", "i18n"))
## Gets the destination path to copy the translations for Uranium to.
# \return Destination path for Uranium.
def destination_uranium() -> str:
try:
import UM
except ImportError:
relative_path = os.path.join(__file__, "..", "..", "..", "Uranium", "resources", "i18n", "uranium.pot")
print(os.path.abspath(relative_path))
if os.path.exists(relative_path):
return os.path.abspath(relative_path)
else:
raise Exception("Can't find Uranium. Please put UM on the PYTHONPATH or put the Uranium folder next to the Cura folder.")
return os.path.abspath(os.path.join(UM.__file__, "..", "..", "resources", "i18n"))
## Merges translations from the source file into the destination file if they
# were missing in the destination file.
# \param source The contents of the source .po file.
# \param destination The contents of the destination .po file.
def merge(source: str, destination: str) -> str:
result_lines = []
last_destination = {
"msgctxt": "\"\"\n",
"msgid": "\"\"\n",
"msgstr": "\"\"\n",
"msgid_plural": "\"\"\n"
}
current_state = "none"
for line in destination.split("\n"):
if line.startswith("msgctxt \""):
current_state = "msgctxt"
line = line[8:]
last_destination[current_state] = ""
elif line.startswith("msgid \""):
current_state = "msgid"
line = line[6:]
last_destination[current_state] = ""
elif line.startswith("msgstr \""):
current_state = "msgstr"
line = line[7:]
last_destination[current_state] = ""
elif line.startswith("msgid_plural \""):
current_state = "msgid_plural"
line = line[13:]
last_destination[current_state] = ""
if line.startswith("\"") and line.endswith("\""):
last_destination[current_state] += line + "\n"
else: #White lines or comment lines trigger us to search for the translation in the source file.
if last_destination["msgstr"] == "\"\"\n" and last_destination["msgid"] != "\"\"\n": #No translation for this yet!
last_destination["msgstr"] = find_translation(source, last_destination["msgctxt"], last_destination["msgid"]) #Actually place the translation in.
if last_destination["msgctxt"] != "\"\"\n" or last_destination["msgid"] != "\"\"\n" or last_destination["msgid_plural"] != "\"\"\n" or last_destination["msgstr"] != "\"\"\n":
if last_destination["msgctxt"] != "\"\"\n":
result_lines.append("msgctxt {msgctxt}".format(msgctxt = last_destination["msgctxt"][:-1])) #The [:-1] to strip the last newline.
result_lines.append("msgid {msgid}".format(msgid = last_destination["msgid"][:-1]))
if last_destination["msgid_plural"] != "\"\"\n":
result_lines.append("msgid_plural {msgid_plural}".format(msgid_plural = last_destination["msgid_plural"][:-1]))
else:
result_lines.append("msgstr {msgstr}".format(msgstr = last_destination["msgstr"][:-1]))
last_destination = {
"msgctxt": "\"\"\n",
"msgid": "\"\"\n",
"msgstr": "\"\"\n",
"msgid_plural": "\"\"\n"
}
result_lines.append(line) #This line itself.
return "\n".join(result_lines)
## Finds a translation in the source file.
# \param source The contents of the source .po file.
# \param msgctxt The ctxt of the translation to find.
# \param msgid The id of the translation to find.
def find_translation(source: str, msgctxt: str, msgid: str) -> str:
last_source = {
"msgctxt": "\"\"\n",
"msgid": "\"\"\n",
"msgstr": "\"\"\n",
"msgid_plural": "\"\"\n"
}
current_state = "none"
for line in source.split("\n"):
if line.startswith("msgctxt \""):
current_state = "msgctxt"
line = line[8:]
last_source[current_state] = ""
elif line.startswith("msgid \""):
current_state = "msgid"
line = line[6:]
last_source[current_state] = ""
elif line.startswith("msgstr \""):
current_state = "msgstr"
line = line[7:]
last_source[current_state] = ""
elif line.startswith("msgid_plural \""):
current_state = "msgid_plural"
line = line[13:]
last_source[current_state] = ""
if line.startswith("\"") and line.endswith("\""):
last_source[current_state] += line + "\n"
else: #White lines trigger us to process this translation. Is it the correct one?
#Process the source and destination keys for comparison independent of newline technique.
source_ctxt = "".join((line.strip()[1:-1] for line in last_source["msgctxt"].split("\n")))
source_id = "".join((line.strip()[1:-1] for line in last_source["msgid"].split("\n")))
dest_ctxt = "".join((line.strip()[1:-1] for line in msgctxt.split("\n")))
dest_id = "".join((line.strip()[1:-1] for line in msgid.split("\n")))
if source_ctxt == dest_ctxt and source_id == dest_id:
if last_source["msgstr"] == "\"\"\n" and last_source["msgid_plural"] == "\"\"\n":
print("!!! Empty translation for {" + dest_ctxt + "}", dest_id, "!!!")
return last_source["msgstr"]
last_source = {
"msgctxt": "\"\"\n",
"msgid": "\"\"\n",
"msgstr": "\"\"\n",
"msgid_plural": "\"\"\n"
}
#Still here? Then the entire msgctxt+msgid combination was not found at all.
print("!!! Missing translation for {" + msgctxt.strip() + "}", msgid.strip(), "!!!")
return "\"\"\n"
if __name__ == "__main__":
argparser = argparse.ArgumentParser(description = "Import translation files from Lionbridge.")
argparser.add_argument("source")
args = argparser.parse_args()
lionbridge_import(args.source)