From 5dfbea2c10c52bf1ff489b80e5a47dd6927469e6 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 17 Dec 2021 14:55:13 +0100 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 79e58944b3c08e429d7dbb6592d0b758fbc9c3c4 Author: YuSanka Date: Fri Dec 17 14:38:49 2021 +0100 Localization: Fixed some phrases for RU dictionary (see last comments to https://github.com/prusa3d/PrusaSlicer/pull/7501) + Fixed no needed formatting in CA dictionary commit 44536ecebc41551a8129650cf882d2aefccbe1a5 Merge: 47df9458f 96485a044 Author: YuSanka Date: Fri Dec 17 14:26:01 2021 +0100 Merge branch 'master' of https://github.com/AndylgTom/Slic3r into AndylgTom-master commit 96485a044a51d97828b7e77cfd8af12e7bb35152 Author: Andy Date: Thu Dec 16 23:41:46 2021 +0700 Update PrusaSlicer_ru.po Пофиксил указанные замечания commit 52f7b9e5b62895dfab906150e25b6da4d260fcc1 Author: AndylgTom Date: Wed Dec 15 15:56:31 2021 +0700 Russian localization update for PrusaSlicer-2.4.0-rc Russian localization update for PrusaSlicer-2.4.0-rc+win64-202112141553 Please check those lines where there are three questions "???". There are 12 such lines. Обновление русской локализации для PrusaSlicer-2.4.0-rc+win64-202112141553 Прошу проверить те строки, где встречаются три вопроса "???". Таких строк 12. commit 387ca46d8a101ee9b01963c379bef7bca45f0dfb Author: Andy Date: Thu Jan 14 11:53:08 2021 +0700 Update PrusaSlicer_ru.po commit ddef2cd1ef728be28aae62e9269fa3e65d8a1d32 Author: Andy Date: Thu Jan 14 11:49:59 2021 +0700 Update PrusaSlicer_ru.po commit 94e3946875865f141aff61fabcc121d81775b0ac Author: Andy Date: Thu Jan 14 11:20:53 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0e97fd9e4ee92d1c2d525401d3294cf9b872bc27 Author: Andy Date: Thu Jan 14 11:20:27 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit fc452d215ec6d724794a1799d297cc31fe412234 Author: Andy Date: Thu Jan 14 11:18:05 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 702b0f5a322d122cb028b748ae044c5d88b0ef24 Author: Andy Date: Thu Jan 14 11:14:32 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 3b56531fb06bbb49a620154524a1a75371ea73e5 Author: Andy Date: Thu Jan 14 11:13:19 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0d5fcd9d801e4ff0aeb432f61f730d68a12bb9a5 Author: Andy Date: Thu Jan 14 11:13:01 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0e0047d0742ba597b8854f8a9bc72002c9e429ce Author: Andy Date: Thu Jan 14 11:11:06 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0d3ec8517034df62ebd0923bbc05f3c63d316684 Author: Andy Date: Thu Jan 14 11:10:42 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 596df1a6909e58cbbb6b0bbc1a30cbfaff2460e2 Author: Andy Date: Thu Jan 14 11:10:10 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 2086358438670eebe51f7241a59bea1dbcce9eda Author: Andy Date: Thu Jan 14 00:36:19 2021 +0700 Update PrusaSlicer_ru.po USB-разъём commit e2adfc752742861f2242caa7db893e317d3e4382 Author: Andy Date: Thu Jan 14 00:20:01 2021 +0700 Update PrusaSlicer_ru.po нить -> пруток commit 3db9c2f678e5bb3f56a7192e66b75a7852c66b60 Author: Andy Date: Tue Jan 12 23:10:22 2021 +0700 Update PrusaSlicer_ru.po commit 6f8a9de9247334e2ec683a234feb10371c1dc0e6 Author: Andy Date: Tue Jan 12 23:01:41 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 57c0ad1c27c70bb3d18403c067a3842f598bd191 Author: Andy Date: Tue Jan 12 23:00:03 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 8db333ac63e8962efd0bcf3efbc632164172be95 Author: Andy Date: Tue Jan 12 22:41:27 2021 +0700 Update PrusaSlicer_ru.po commit e7cdc325209e187c8fec54bf02606172e3bd3b89 Author: Andy Date: Tue Jan 12 22:38:56 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 943c514d8c5f8000174dfe51e6c5feead5849b67 Author: Andy Date: Tue Jan 12 22:17:26 2021 +0700 Update PrusaSlicer_ru.po Выбор\... commit d83a85f2418f24d8793c90ab0e705003c739a4e0 Author: Andy Date: Tue Jan 12 22:08:26 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 792849721a975d7bbd8b99f23e0584d31042766b Author: Andy Date: Tue Jan 12 21:44:58 2021 +0700 Update PrusaSlicer_ru.po commit ef19ef3030b79045bc0e1f483530b8cd7a1da11d Author: Andy Date: Tue Jan 12 21:41:25 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit a21dee7052f1c79853c9316a1a9b5bfe3d716428 Author: Andy Date: Tue Jan 12 21:33:15 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 07f3da91472824409fdf95cf4660959ad652c334 Author: Andy Date: Tue Jan 12 21:32:21 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit e1f948b37955b88209c087d52ff20e1bc6640683 Author: Andy Date: Tue Jan 12 21:20:31 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit d74900bacac7ba9eb340dcd07b36098d23369e64 Author: Andy Date: Tue Jan 12 21:19:35 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit d64d56191d924b897b030a03a791741c6be07657 Author: Andy Date: Tue Jan 12 21:18:39 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 49f071ec9d22dbecb47102e0f658cc137f9b9639 Author: Andy Date: Tue Jan 12 21:17:51 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 2af9eaad0016ec6c9c4f4b4cef1658d6f16a3e08 Author: Andy Date: Tue Jan 12 21:17:11 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit b0042f9077d803bb1fdb04abb3d844b0291411e9 Author: Andy Date: Tue Jan 12 21:16:22 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit dddfd61936ae9f09ef757e7e76af07cfb375f028 Author: Andy Date: Tue Jan 12 21:14:52 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 7466bbc37d971dbe67b072f2d7350393c196a4e5 Author: Andy Date: Tue Jan 12 21:14:21 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 759130b8116eaec794fd964edcee49d0d62f291d Author: Andy Date: Tue Jan 12 21:13:34 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit c66d33000be4c6625d754e9066dc7ac930ae59da Author: Andy Date: Tue Jan 12 21:12:33 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit cb75e4bf61161bf2ed75998ae13b63a1990310ad Author: Andy Date: Tue Jan 12 21:10:06 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 65d0167bc2f1d8937edfd3c91f28ba1005d885cf Author: Andy Date: Tue Jan 12 21:09:05 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 4c43e1c28f61976324cbbad3d89277d3e9abe051 Author: Andy Date: Tue Jan 12 21:07:35 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit a75b38ada68240e0df9dfb754eab08651775ea41 Author: Andy Date: Tue Jan 12 21:06:25 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit ed56a52747483262440e0331ec2d8518e1f81dc2 Author: Andy Date: Tue Jan 12 21:05:15 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit c1f2f58d1d0f888f875f0db0d0580f3063f0e178 Author: Andy Date: Tue Jan 12 21:04:43 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit e4e6519006c23f0a7d0029db41c2ed6ed4ff918a Author: Andy Date: Tue Jan 12 21:03:53 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit fb7de82d9d672040ac632c2fe9d3c69c67da85a8 Author: Andy Date: Tue Jan 12 21:03:11 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit ce2182117d5e3f2e76c2ab0ffc0f9bd2ccf97f37 Author: Andy Date: Tue Jan 12 21:02:10 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit e46e0584e21c72116a866c7c20275e32ce387315 Author: Andy Date: Tue Jan 12 21:01:43 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit fa1dfe5add4dde9e73561d15568720321b8edbc7 Author: Andy Date: Tue Jan 12 21:00:49 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 17a6da79188fbd7878b3007016e0313f193e6a67 Author: Andy Date: Tue Jan 12 21:00:18 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 00d675e20e79915f46a8ace8ef4f5d3c19f84fec Author: Andy Date: Tue Jan 12 20:59:22 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0d60f4db0b20350f75d1b2c804b9f89b23784b4c Author: Andy Date: Tue Jan 12 20:58:50 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 29218c1cc1c154b0be3545ddde67eafce4af01c7 Author: Andy Date: Tue Jan 12 20:58:24 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit a051c50e4bdd7c6b6e69d86e231eddfe7e2f3e1b Author: Andy Date: Tue Jan 12 20:57:44 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit ea7d25cd85f934c6a59eac5afe5fcbc93c496b3a Author: Andy Date: Tue Jan 12 20:56:43 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 40382f84cd8c3673ce7e3f6a21811308bb271cf5 Author: Andy Date: Tue Jan 12 20:56:06 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 481f96827a7f0ce1d3ad256b3966642d59272fcf Author: Andy Date: Tue Jan 12 20:53:29 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 372052034ab50618232507663da6ff411c244d38 Author: Andy Date: Tue Jan 12 20:52:47 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 11eb973a47a77b3b1b392a6534b0575d5c6e2fa3 Author: Andy Date: Tue Jan 12 20:51:51 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit c363477b2b84f3065f65b5fd5f4e4c1fd51a09f7 Author: Andy Date: Tue Jan 12 20:50:33 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 732fbf1d9cdb8b185c6a4bc423d0fd9a386e52a1 Author: Andy Date: Tue Jan 12 20:49:51 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 36e88e76aaaa4e106e483330f3a2a4c9d89c48d7 Author: Andy Date: Tue Jan 12 20:49:25 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit dbc1f2eeab9a2b15bf09779960feff881c8d788c Author: Andy Date: Tue Jan 12 20:48:32 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 1ca4e35ffd4dca4d779e91886134ee1cef5b294c Author: Andy Date: Tue Jan 12 20:47:50 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 209779fcd6f008f827b2a1991bad74ed010514e6 Author: Andy Date: Tue Jan 12 20:46:59 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 29bc1b370b444e51ebe0a3e66139f3bc833ea4ce Author: Andy Date: Tue Jan 12 20:46:03 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit cea039e9a60f5808be296fff69e43ea27b6a2714 Author: Andy Date: Tue Jan 12 20:45:18 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit be48ee82d2a066df2dc6e4daaa2876a962ae4804 Author: Andy Date: Tue Jan 12 20:44:48 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit f61990e12db90385a66e992d55f4cd9b10b907b8 Author: Andy Date: Tue Jan 12 20:44:15 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 0aadf3d551f3abbca81af1daf6956fc7fce9affe Author: Andy Date: Tue Jan 12 20:43:44 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 2ae2e9402bc39717f4804089b4466e77c0dff18a Author: Andy Date: Tue Jan 12 20:43:13 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 4cdea4b9fa6911140e1a6c68f8084ac85181dab8 Author: Andy Date: Tue Jan 12 20:42:44 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 2289cc62215ceee9825787348a2cb12c3cd8327f Author: Andy Date: Tue Jan 12 20:42:27 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit f8e844f43ff98c61b1dc1b31bef614a45b63651b Author: Andy Date: Tue Jan 12 20:42:02 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 45d11889748eedfb6fe868b33af4d155dca98bd6 Author: Andy Date: Tue Jan 12 20:41:35 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit e1a5b07c12a889996243353e97f6c2794d62e569 Author: Andy Date: Tue Jan 12 20:40:43 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 679fe59818b5e797140ef6d52966461f1496bbe6 Author: Andy Date: Tue Jan 12 20:39:50 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit abdb6d17d51e73075ae15e107abf4d3af0d950d5 Author: Andy Date: Tue Jan 12 20:38:44 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 1c55ed72425bd7329d26f26a3ddad12b109aaeb5 Author: Andy Date: Tue Jan 12 20:38:13 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit d1cdff3ee7fb3f5079a4a393f0cad7871c22d9ee Author: Andy Date: Tue Jan 12 20:38:03 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 49e22e3341dfba5064b1ea6ee2e9e7e315385cc8 Author: Andy Date: Tue Jan 12 20:37:06 2021 +0700 Update resources/localization/ru/PrusaSlicer_ru.po Co-authored-by: Oleksandra Yushchenko commit 74620d591da0742350b3b41952a66354f0f63c96 Author: Andy Date: Tue Jan 12 16:36:41 2021 +0700 Update PrusaSlicer_ru.po commit c220687f7e1d21798dd90d1be15e62decda548fb Author: AndylgTom Date: Sun Jan 10 03:00:24 2021 +0700 Updating the Russian translation PrusaSlicer-2.3.0-rc3 Updating the Russian translation PrusaSlicer-2.3.0-rc3 by Andylg --- resources/localization/ca/PrusaSlicer.mo | Bin 369402 -> 370867 bytes resources/localization/ca/PrusaSlicer_ca.po | 3 - resources/localization/ru/PrusaSlicer.mo | Bin 377402 -> 503400 bytes resources/localization/ru/PrusaSlicer_ru.po | 7044 +++----- src/avrdude/avrdude.conf.tmp | 14984 ------------------ 5 files changed, 2044 insertions(+), 19987 deletions(-) delete mode 100644 src/avrdude/avrdude.conf.tmp diff --git a/resources/localization/ca/PrusaSlicer.mo b/resources/localization/ca/PrusaSlicer.mo index c8d9bc23cf538d2a653a2dad1ea5656df39585da..17d5befdf5327483dc771b99941310c01270aa2e 100644 GIT binary patch delta 63517 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 GIQ}0VXMghm delta 62301 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�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 YE{bo!GIgDRf_6K1_wAzLCaW0xKMwk`jQ{`u diff --git a/resources/localization/ru/PrusaSlicer_ru.po b/resources/localization/ru/PrusaSlicer_ru.po index 1a9dd2828..0ae40ea2e 100644 --- a/resources/localization/ru/PrusaSlicer_ru.po +++ b/resources/localization/ru/PrusaSlicer_ru.po @@ -8,16 +8,15 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-12-14 16:21+0100\n" -"PO-Revision-Date: 2021-02-03 14:06+0100\n" -"Last-Translator: Oleksandra Iushchenko \n" -"Language-Team: Andylg \n" -"Language: ru_RU\n" +"PO-Revision-Date: 2021-12-15 15:35+0700\n" +"Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 2.4.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"X-Generator: Poedit 3.0\n" +"Last-Translator: Andylg andylg@yandex.ru\n" +"Language: ru\n" #: src/slic3r/GUI/AboutDialog.cpp:45 src/slic3r/GUI/AboutDialog.cpp:303 msgid "Portions copyright" @@ -29,20 +28,15 @@ msgstr "Copyright" #. TRN "Slic3r _is licensed under the_ License" #: src/slic3r/GUI/AboutDialog.cpp:141 -msgid "" -"License agreements of all following programs (libraries) are part of " -"application license agreement" -msgstr "" -"Лицензионные соглашения всех следующих программ (библиотек) являются частью " -"лицензионного соглашения" +msgid "License agreements of all following programs (libraries) are part of application license agreement" +msgstr "Лицензионные соглашения всех следующих программ (библиотек) являются частью лицензионного соглашения" #: src/slic3r/GUI/AboutDialog.cpp:210 #, c-format, boost-format msgid "About %s" msgstr "О %s" -#: src/slic3r/GUI/AboutDialog.cpp:242 src/slic3r/GUI/AboutDialog.cpp:367 -#: src/slic3r/GUI/GUI_App.cpp:262 +#: src/slic3r/GUI/AboutDialog.cpp:242 src/slic3r/GUI/AboutDialog.cpp:367 src/slic3r/GUI/GUI_App.cpp:262 msgid "Version" msgstr "Версия" @@ -56,23 +50,12 @@ msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, version 3" #: src/slic3r/GUI/AboutDialog.cpp:271 -msgid "" -"PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " -"community." -msgstr "" -"PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " -"community." +msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." +msgstr "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap community." #: src/slic3r/GUI/AboutDialog.cpp:272 -msgid "" -"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " -"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " -"numerous others." -msgstr "" -"Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " -"Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " -"numerous others. Если вы нашли ошибки в русском переводе пишите на " -"andylg@yandex.ru." +msgid "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others." +msgstr "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and numerous others. Если вы нашли ошибки в русском переводе пишите на andylg@yandex.ru." #: src/slic3r/GUI/AboutDialog.cpp:308 msgid "Copy Version Info" @@ -80,23 +63,14 @@ msgstr "Скопировать информацию о версии" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:79 #, c-format, boost-format -msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it." -msgstr "" -"При работе с %s произошла ошибка. Скорее всего, это было вызвано нехваткой " -"памяти. Если вы уверены, что в вашей системе достаточно оперативной памяти, " -"но тем не менее произошла эта ошибка, сообщите нам об этом." +msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it." +msgstr "При работе с %s произошла ошибка. Скорее всего, это было вызвано нехваткой памяти. Если вы уверены, что в вашей системе достаточно оперативной памяти, но тем не менее произошла эта ошибка, сообщите нам об этом." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:85 -msgid "" -"Please save your project and restart PrusaSlicer. We would be glad if you " -"reported the issue." -msgstr "" +msgid "Please save your project and restart PrusaSlicer. We would be glad if you reported the issue." +msgstr "Пожалуйста, сохраните проект и перезапустите PrusaSlicer. Мы будем благодарны, если вы сообщите о вашей проблеме." -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:162 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:204 +#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:162 src/slic3r/GUI/BackgroundSlicingProcess.cpp:204 msgid "Slicing complete" msgstr "Нарезка завершена" @@ -107,92 +81,68 @@ msgstr "MSLA файл экспортирован в %1%" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:286 msgid "Access violation" -msgstr "" +msgstr "Нарушение прав доступа" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:288 msgid "Illegal instruction" -msgstr "" +msgstr "Недопустима инструкция" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:290 msgid "Divide by zero" -msgstr "" +msgstr "Деление на ноль не допускается" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:292 msgid "Overflow" -msgstr "" +msgstr "Переполнение" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:294 msgid "Underflow" -msgstr "" +msgstr "Недополнение" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:297 msgid "Floating reserved operand" -msgstr "" +msgstr "Плавающий зарезервированный операнд" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:300 msgid "Stack overflow" -msgstr "" +msgstr "Переполнение стека" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:659 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:726 +#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:659 src/slic3r/GUI/BackgroundSlicingProcess.cpp:726 msgid "Running post-processing scripts" msgstr "Запуск скриптов постобработки" -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:690 -#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:710 +#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:690 src/slic3r/GUI/BackgroundSlicingProcess.cpp:710 msgid "Unknown error occured during exporting G-code." msgstr "При экспорте G-кода произошла неизвестная ошибка." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:695 #, boost-format msgid "" -"Copying of the temporary G-code to the output G-code failed. Maybe the SD " -"card is write locked?\n" +"Copying of the temporary G-code to the output G-code failed. Maybe the SD card is write locked?\n" "Error message: %1%" msgstr "" -"Не удалось скопировать временный G-код в местонахождение выходного G-код " -"файла. Может ваша SD карта защищена от записи?\n" +"Не удалось скопировать временный G-код в местонахождение выходного G-код файла. Может ваша SD карта защищена от записи?\n" "Сообщение об ошибке: %1%" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:698 #, boost-format -msgid "" -"Copying of the temporary G-code to the output G-code failed. There might be " -"problem with target device, please try exporting again or using different " -"device. The corrupted output G-code is at %1%.tmp." -msgstr "" -"Не удалось скопировать временный G-код в местонахождение выходного G-код " -"файла. Возможно, проблема с устройством назначения, попробуйте снова " -"выполнить экспорт или использовать другое устройство. Повреждённый выходной " -"G-код файл находится в %1%.tmp." +msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." +msgstr "Не удалось скопировать временный G-код в местонахождение выходного G-код файла. Возможно, проблема с устройством назначения, попробуйте снова выполнить экспорт или использовать другое устройство. Повреждённый выходной G-код файл находится в %1%.tmp." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:701 #, boost-format -msgid "" -"Renaming of the G-code after copying to the selected destination folder has " -"failed. Current path is %1%.tmp. Please try exporting again." -msgstr "" -"Не удалось переименовать G-код после копирования в выбранную папку " -"назначения. Текущий путь %1%.tmp. Пожалуйста, попробуйте экспортировать ещё " -"раз." +msgid "Renaming of the G-code after copying to the selected destination folder has failed. Current path is %1%.tmp. Please try exporting again." +msgstr "Не удалось переименовать G-код после копирования в выбранную папку назначения. Текущий путь %1%.tmp. Пожалуйста, попробуйте экспортировать ещё раз." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:704 #, boost-format -msgid "" -"Copying of the temporary G-code has finished but the original code at %1% " -"couldn't be opened during copy check. The output G-code is at %2%.tmp." -msgstr "" -"Копирование временного G-кода завершено, но исходный код в %1% не удалось " -"открыть во время проверки копии. Выходной G-код находится в %2%.tmp." +msgid "Copying of the temporary G-code has finished but the original code at %1% couldn't be opened during copy check. The output G-code is at %2%.tmp." +msgstr "Копирование временного G-кода завершено, но исходный код в %1% не удалось открыть во время проверки копии. Выходной G-код находится в %2%.tmp." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:707 #, boost-format -msgid "" -"Copying of the temporary G-code has finished but the exported code couldn't " -"be opened during copy check. The output G-code is at %1%.tmp." -msgstr "" -"Копирование временного G-кода завершено, но экспортированный код не удалось " -"открыть во время проверки копии. Выходной G-код находится в %1%.tmp." +msgid "Copying of the temporary G-code has finished but the exported code couldn't be opened during copy check. The output G-code is at %1%.tmp." +msgstr "Копирование временного G-кода завершено, но экспортированный код не удалось открыть во время проверки копии. Выходной G-код находится в %1%.tmp." #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:715 #, boost-format @@ -201,20 +151,14 @@ msgstr "Файл G-кода экспортирован в %1%" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:729 msgid "Copying of the temporary G-code to the output G-code failed" -msgstr "" -"Не удалось скопировать временный G-код в местонахождение выходного G-код " -"файла" +msgstr "Не удалось скопировать временный G-код в местонахождение выходного G-код файла" #: src/slic3r/GUI/BackgroundSlicingProcess.cpp:751 #, boost-format msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" -msgstr "" -"Планирование загрузки на `%1%`. Смотрите Окна -> Очередь загрузки на хост " -"печати" +msgstr "Планирование загрузки на `%1%`. Смотрите Окна -> Очередь загрузки на хост печати" -#: src/slic3r/GUI/BedShapeDialog.cpp:31 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:218 src/slic3r/GUI/Plater.cpp:204 -#: src/slic3r/GUI/Tab.cpp:2727 +#: src/slic3r/GUI/BedShapeDialog.cpp:31 src/slic3r/GUI/GUI_ObjectManipulation.cpp:218 src/slic3r/GUI/Plater.cpp:204 src/slic3r/GUI/Tab.cpp:2727 msgid "Size" msgstr "Размер" @@ -231,70 +175,26 @@ msgid "Size in X and Y of the rectangular plate." msgstr "Размеры прямоугольного стола в XY координатах." #: src/slic3r/GUI/BedShapeDialog.cpp:58 -msgid "" -"Distance of the 0,0 G-code coordinate from the front left corner of the " -"rectangle." -msgstr "" -"Расстояние до точки начало координат. Отсчёт от левого переднего угла " -"прямоугольного стола." +msgid "Distance of the 0,0 G-code coordinate from the front left corner of the rectangle." +msgstr "Расстояние до точки начало координат. Отсчёт от левого переднего угла прямоугольного стола." -#: src/slic3r/GUI/BedShapeDialog.cpp:64 src/slic3r/GUI/ConfigWizard.cpp:262 -#: src/slic3r/GUI/ConfigWizard.cpp:1476 src/slic3r/GUI/ConfigWizard.cpp:1490 -#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:100 -#: src/slic3r/GUI/GCodeViewer.cpp:3166 src/slic3r/GUI/GCodeViewer.cpp:3172 -#: src/slic3r/GUI/GCodeViewer.cpp:3180 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:145 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:134 -#: src/slic3r/GUI/WipeTowerDialog.cpp:116 src/libslic3r/PrintConfig.cpp:250 -#: src/libslic3r/PrintConfig.cpp:267 src/libslic3r/PrintConfig.cpp:274 -#: src/libslic3r/PrintConfig.cpp:437 src/libslic3r/PrintConfig.cpp:497 -#: src/libslic3r/PrintConfig.cpp:523 src/libslic3r/PrintConfig.cpp:598 -#: src/libslic3r/PrintConfig.cpp:606 src/libslic3r/PrintConfig.cpp:656 -#: src/libslic3r/PrintConfig.cpp:787 src/libslic3r/PrintConfig.cpp:798 -#: src/libslic3r/PrintConfig.cpp:816 src/libslic3r/PrintConfig.cpp:997 -#: src/libslic3r/PrintConfig.cpp:1212 src/libslic3r/PrintConfig.cpp:1279 -#: src/libslic3r/PrintConfig.cpp:1289 src/libslic3r/PrintConfig.cpp:1563 -#: src/libslic3r/PrintConfig.cpp:1757 src/libslic3r/PrintConfig.cpp:1818 -#: src/libslic3r/PrintConfig.cpp:1836 src/libslic3r/PrintConfig.cpp:1854 -#: src/libslic3r/PrintConfig.cpp:1917 src/libslic3r/PrintConfig.cpp:1927 -#: src/libslic3r/PrintConfig.cpp:2041 src/libslic3r/PrintConfig.cpp:2050 -#: src/libslic3r/PrintConfig.cpp:2069 src/libslic3r/PrintConfig.cpp:2090 -#: src/libslic3r/PrintConfig.cpp:2102 src/libslic3r/PrintConfig.cpp:2110 -#: src/libslic3r/PrintConfig.cpp:2151 src/libslic3r/PrintConfig.cpp:2159 -#: src/libslic3r/PrintConfig.cpp:2169 src/libslic3r/PrintConfig.cpp:2177 -#: src/libslic3r/PrintConfig.cpp:2185 src/libslic3r/PrintConfig.cpp:2247 -#: src/libslic3r/PrintConfig.cpp:2477 src/libslic3r/PrintConfig.cpp:2547 -#: src/libslic3r/PrintConfig.cpp:2564 src/libslic3r/PrintConfig.cpp:2665 -#: src/libslic3r/PrintConfig.cpp:2674 src/libslic3r/PrintConfig.cpp:2724 -#: src/libslic3r/PrintConfig.cpp:2876 src/libslic3r/PrintConfig.cpp:2964 -#: src/libslic3r/PrintConfig.cpp:2971 src/libslic3r/PrintConfig.cpp:2978 -#: src/libslic3r/PrintConfig.cpp:2992 src/libslic3r/PrintConfig.cpp:3016 -#: src/libslic3r/PrintConfig.cpp:3026 src/libslic3r/PrintConfig.cpp:3036 -#: src/libslic3r/PrintConfig.cpp:3220 src/libslic3r/PrintConfig.cpp:3261 -#: src/libslic3r/PrintConfig.cpp:3421 src/libslic3r/PrintConfig.cpp:3430 -#: src/libslic3r/PrintConfig.cpp:3439 src/libslic3r/PrintConfig.cpp:3449 -#: src/libslic3r/PrintConfig.cpp:3514 src/libslic3r/PrintConfig.cpp:3524 -#: src/libslic3r/PrintConfig.cpp:3536 src/libslic3r/PrintConfig.cpp:3556 -#: src/libslic3r/PrintConfig.cpp:3566 src/libslic3r/PrintConfig.cpp:3576 -#: src/libslic3r/PrintConfig.cpp:3594 src/libslic3r/PrintConfig.cpp:3609 -#: src/libslic3r/PrintConfig.cpp:3623 src/libslic3r/PrintConfig.cpp:3634 -#: src/libslic3r/PrintConfig.cpp:3647 src/libslic3r/PrintConfig.cpp:3692 -#: src/libslic3r/PrintConfig.cpp:3702 src/libslic3r/PrintConfig.cpp:3711 -#: src/libslic3r/PrintConfig.cpp:3721 src/libslic3r/PrintConfig.cpp:3737 +#: src/slic3r/GUI/BedShapeDialog.cpp:64 src/slic3r/GUI/ConfigWizard.cpp:262 src/slic3r/GUI/ConfigWizard.cpp:1476 src/slic3r/GUI/ConfigWizard.cpp:1490 src/slic3r/GUI/ExtruderSequenceDialog.cpp:100 src/slic3r/GUI/GCodeViewer.cpp:3166 src/slic3r/GUI/GCodeViewer.cpp:3172 src/slic3r/GUI/GCodeViewer.cpp:3180 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 src/slic3r/GUI/GUI_ObjectLayers.cpp:145 src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 src/slic3r/GUI/ObjectDataViewModel.cpp:134 +#: src/slic3r/GUI/WipeTowerDialog.cpp:116 src/libslic3r/PrintConfig.cpp:250 src/libslic3r/PrintConfig.cpp:267 src/libslic3r/PrintConfig.cpp:274 src/libslic3r/PrintConfig.cpp:437 src/libslic3r/PrintConfig.cpp:497 src/libslic3r/PrintConfig.cpp:523 src/libslic3r/PrintConfig.cpp:598 src/libslic3r/PrintConfig.cpp:606 +#: src/libslic3r/PrintConfig.cpp:656 src/libslic3r/PrintConfig.cpp:787 src/libslic3r/PrintConfig.cpp:798 src/libslic3r/PrintConfig.cpp:816 src/libslic3r/PrintConfig.cpp:997 src/libslic3r/PrintConfig.cpp:1212 src/libslic3r/PrintConfig.cpp:1279 src/libslic3r/PrintConfig.cpp:1289 src/libslic3r/PrintConfig.cpp:1563 +#: src/libslic3r/PrintConfig.cpp:1757 src/libslic3r/PrintConfig.cpp:1818 src/libslic3r/PrintConfig.cpp:1836 src/libslic3r/PrintConfig.cpp:1854 src/libslic3r/PrintConfig.cpp:1917 src/libslic3r/PrintConfig.cpp:1927 src/libslic3r/PrintConfig.cpp:2041 src/libslic3r/PrintConfig.cpp:2050 src/libslic3r/PrintConfig.cpp:2069 +#: src/libslic3r/PrintConfig.cpp:2090 src/libslic3r/PrintConfig.cpp:2102 src/libslic3r/PrintConfig.cpp:2110 src/libslic3r/PrintConfig.cpp:2151 src/libslic3r/PrintConfig.cpp:2159 src/libslic3r/PrintConfig.cpp:2169 src/libslic3r/PrintConfig.cpp:2177 src/libslic3r/PrintConfig.cpp:2185 src/libslic3r/PrintConfig.cpp:2247 +#: src/libslic3r/PrintConfig.cpp:2477 src/libslic3r/PrintConfig.cpp:2547 src/libslic3r/PrintConfig.cpp:2564 src/libslic3r/PrintConfig.cpp:2665 src/libslic3r/PrintConfig.cpp:2674 src/libslic3r/PrintConfig.cpp:2724 src/libslic3r/PrintConfig.cpp:2876 src/libslic3r/PrintConfig.cpp:2964 src/libslic3r/PrintConfig.cpp:2971 +#: src/libslic3r/PrintConfig.cpp:2978 src/libslic3r/PrintConfig.cpp:2992 src/libslic3r/PrintConfig.cpp:3016 src/libslic3r/PrintConfig.cpp:3026 src/libslic3r/PrintConfig.cpp:3036 src/libslic3r/PrintConfig.cpp:3220 src/libslic3r/PrintConfig.cpp:3261 src/libslic3r/PrintConfig.cpp:3421 src/libslic3r/PrintConfig.cpp:3430 +#: src/libslic3r/PrintConfig.cpp:3439 src/libslic3r/PrintConfig.cpp:3449 src/libslic3r/PrintConfig.cpp:3514 src/libslic3r/PrintConfig.cpp:3524 src/libslic3r/PrintConfig.cpp:3536 src/libslic3r/PrintConfig.cpp:3556 src/libslic3r/PrintConfig.cpp:3566 src/libslic3r/PrintConfig.cpp:3576 src/libslic3r/PrintConfig.cpp:3594 +#: src/libslic3r/PrintConfig.cpp:3609 src/libslic3r/PrintConfig.cpp:3623 src/libslic3r/PrintConfig.cpp:3634 src/libslic3r/PrintConfig.cpp:3647 src/libslic3r/PrintConfig.cpp:3692 src/libslic3r/PrintConfig.cpp:3702 src/libslic3r/PrintConfig.cpp:3711 src/libslic3r/PrintConfig.cpp:3721 src/libslic3r/PrintConfig.cpp:3737 #: src/libslic3r/PrintConfig.cpp:3761 msgid "mm" msgstr "мм" #: src/slic3r/GUI/BedShapeDialog.cpp:66 -msgid "" -"Diameter of the print bed. It is assumed that origin (0,0) is located in the " -"center." -msgstr "" -"Диаметр стола. Предполагается, что начало координат (0,0) находится в центре." +msgid "Diameter of the print bed. It is assumed that origin (0,0) is located in the center." +msgstr "Диаметр стола. Предполагается, что начало координат (0,0) находится в центре." #: src/slic3r/GUI/BedShapeDialog.cpp:79 msgid "Rectangular" @@ -304,13 +204,11 @@ msgstr "Прямоугольная" msgid "Circular" msgstr "Круглая" -#: src/slic3r/GUI/BedShapeDialog.cpp:81 src/slic3r/GUI/GUI_Preview.cpp:252 -#: src/libslic3r/ExtrusionEntity.cpp:331 src/libslic3r/ExtrusionEntity.cpp:366 +#: src/slic3r/GUI/BedShapeDialog.cpp:81 src/slic3r/GUI/GUI_Preview.cpp:252 src/libslic3r/ExtrusionEntity.cpp:331 src/libslic3r/ExtrusionEntity.cpp:366 msgid "Custom" msgstr "Пользовательская" -#: src/slic3r/GUI/BedShapeDialog.cpp:104 src/slic3r/GUI/BedShapeDialog.cpp:179 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1702 +#: src/slic3r/GUI/BedShapeDialog.cpp:104 src/slic3r/GUI/BedShapeDialog.cpp:179 src/slic3r/GUI/GUI_ObjectList.cpp:1702 msgid "Shape" msgstr "Форма" @@ -318,8 +216,7 @@ msgstr "Форма" msgid "Load shape from STL..." msgstr "Загрузка формы стола из STL файла..." -#: src/slic3r/GUI/BedShapeDialog.cpp:249 src/slic3r/GUI/GCodeViewer.cpp:3695 -#: src/slic3r/GUI/MainFrame.cpp:2140 +#: src/slic3r/GUI/BedShapeDialog.cpp:249 src/slic3r/GUI/GCodeViewer.cpp:3695 src/slic3r/GUI/MainFrame.cpp:2140 msgid "Settings" msgstr "Настройки" @@ -331,8 +228,7 @@ msgstr "Текстура" msgid "Load..." msgstr "Загрузить..." -#: src/slic3r/GUI/BedShapeDialog.cpp:292 src/slic3r/GUI/BedShapeDialog.cpp:362 -#: src/slic3r/GUI/Tab.cpp:3702 +#: src/slic3r/GUI/BedShapeDialog.cpp:292 src/slic3r/GUI/BedShapeDialog.cpp:362 src/slic3r/GUI/Tab.cpp:3702 msgid "Remove" msgstr "Удалить" @@ -348,8 +244,7 @@ msgstr "Модель" msgid "Choose an STL file to import bed shape from:" msgstr "Выберите STL файл для импорта формы стола из:" -#: src/slic3r/GUI/BedShapeDialog.cpp:514 src/slic3r/GUI/BedShapeDialog.cpp:562 -#: src/slic3r/GUI/BedShapeDialog.cpp:584 +#: src/slic3r/GUI/BedShapeDialog.cpp:514 src/slic3r/GUI/BedShapeDialog.cpp:562 src/slic3r/GUI/BedShapeDialog.cpp:584 msgid "Invalid file format." msgstr "Неверный формат файла." @@ -362,11 +257,8 @@ msgid "The selected file contains no geometry." msgstr "Выбранный файл не содержит геометрии." #: src/slic3r/GUI/BedShapeDialog.cpp:537 -msgid "" -"The selected file contains several disjoint areas. This is not supported." -msgstr "" -"Выбранный файл содержит несколько не пересекающихся областей. Такие файлы не " -"поддерживаются." +msgid "The selected file contains several disjoint areas. This is not supported." +msgstr "Выбранный файл содержит несколько не пересекающихся областей. Такие файлы не поддерживаются." #: src/slic3r/GUI/BedShapeDialog.cpp:552 msgid "Choose a file to import bed texture from (PNG/SVG):" @@ -410,19 +302,15 @@ msgstr "Завершено" #: src/slic3r/GUI/ButtonsDescription.cpp:42 msgid "Revert color to default" -msgstr "" +msgstr "Вернуть цвет к стандартному" #: src/slic3r/GUI/ButtonsDescription.cpp:57 msgid "Value is the same as the system value" msgstr "Значение совпадает с системным значением" #: src/slic3r/GUI/ButtonsDescription.cpp:58 -msgid "" -"Value was changed and is not equal to the system value or the last saved " -"preset" -msgstr "" -"Значение изменено и не равно системному значению или последнему сохранённому " -"профилю" +msgid "Value was changed and is not equal to the system value or the last saved preset" +msgstr "Значение изменено и не равно системному значению или последнему сохранённому профилю" #: src/slic3r/GUI/ButtonsDescription.cpp:62 msgid "Buttons And Text Colors Description" @@ -434,10 +322,11 @@ msgid "" "\n" "The layer height will be reset to 0.01." msgstr "" +"Нулевая высота слоя недопустима.\n" +"\n" +"Высота первого слоя будет сброшена на 0.01." -#: src/slic3r/GUI/ConfigManipulation.cpp:50 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29 src/slic3r/GUI/Tab.cpp:1449 -#: src/libslic3r/PrintConfig.cpp:263 +#: src/slic3r/GUI/ConfigManipulation.cpp:50 src/slic3r/GUI/GUI_ObjectLayers.cpp:29 src/slic3r/GUI/Tab.cpp:1449 src/libslic3r/PrintConfig.cpp:263 msgid "Layer height" msgstr "Высота слоя" @@ -447,13 +336,15 @@ msgid "" "\n" "The first layer height will be reset to 0.01." msgstr "" +"Нулевая высота первого слоя недопустима.\n" +"\n" +"Высота первого слоя будет сброшена на 0.01." #: src/slic3r/GUI/ConfigManipulation.cpp:62 src/libslic3r/PrintConfig.cpp:1208 msgid "First layer height" msgstr "Высота первого слоя" #: src/slic3r/GUI/ConfigManipulation.cpp:82 -#, fuzzy, c-format, boost-format msgid "" "The Spiral Vase mode requires:\n" "- one perimeter\n" @@ -463,18 +354,17 @@ msgid "" "- Ensure vertical shell thickness enabled\n" "- Detect thin walls disabled" msgstr "" -"Требования для режима \"Спиральная ваза\" - т.е. печати внешнего контура по " -"спирали:\n" +"Требования для режима «Спиральная ваза» - т.е. печати внешнего контура по спирали:\n" "- одностеночный периметр\n" "- отсутствие верхних сплошных слоёв\n" "- плотность заполнения 0%\n" "- отсутствие поддержки\n" -"- включено \"Обеспечивать вертикальную толщину оболочки\"\n" -"- отключено \"Обнаружение тонких стенок\"" +"- включено «Обеспечивать вертикальную толщину оболочки»\n" +"- отключено «Обнаружение тонких стенок»" #: src/slic3r/GUI/ConfigManipulation.cpp:90 msgid "Shall I adjust those settings in order to enable Spiral Vase?" -msgstr "Изменить эти настройки, чтобы включить режим \"Спиральная ваза\"?" +msgstr "Изменить эти настройки, чтобы включить режим «Спиральная ваза»?" #: src/slic3r/GUI/ConfigManipulation.cpp:91 msgid "Spiral Vase" @@ -483,26 +373,22 @@ msgstr "Спиральная ваза" #: src/slic3r/GUI/ConfigManipulation.cpp:121 msgid "" "The Wipe Tower currently supports the non-soluble supports only\n" -"if they are printed with the current extruder without triggering a tool " -"change.\n" -"(both support_material_extruder and support_material_interface_extruder need " -"to be set to 0)." +"if they are printed with the current extruder without triggering a tool change.\n" +"(both support_material_extruder and support_material_interface_extruder need to be set to 0)." msgstr "" "В настоящее время режим черновой башни поддерживает нерастворимую поддержку\n" "только в том случае, если она печатается текущим экструдером, без запуска\n" -"смены инструмента. (Значения \"Экструдер, печатающий поддержки/подложки/юбки" -"\"\n" -"и \"Экструдер, печатающий связующий слой поддержки/подложки\" должны быть\n" +"смены инструмента. (Значения «Экструдер, печатающий поддержки/подложки/юбки»\n" +"и «Экструдер, печатающий связующий слой поддержки/подложки» должны быть\n" "установлены в 0)." #: src/slic3r/GUI/ConfigManipulation.cpp:125 msgid "Shall I adjust those settings in order to enable the Wipe Tower?" msgstr "Изменить эти настройки, чтобы включить черновую башню?" -#: src/slic3r/GUI/ConfigManipulation.cpp:126 -#: src/slic3r/GUI/ConfigManipulation.cpp:146 +#: src/slic3r/GUI/ConfigManipulation.cpp:126 src/slic3r/GUI/ConfigManipulation.cpp:146 msgid "Wipe Tower" -msgstr "Черновая башня" +msgstr "Черновой башни" #: src/slic3r/GUI/ConfigManipulation.cpp:142 msgid "" @@ -541,16 +427,9 @@ msgstr "Шаблон заполнения %1% не поддерживает 100% msgid "Shall I switch to rectilinear fill pattern?" msgstr "Заменить его на прямолинейный (Rectilinear)?" -#: src/slic3r/GUI/ConfigManipulation.cpp:199 -#: src/slic3r/GUI/GUI_Factories.cpp:55 src/slic3r/GUI/GUI_Factories.cpp:128 -#: src/slic3r/GUI/Plater.cpp:460 src/slic3r/GUI/Tab.cpp:1502 -#: src/slic3r/GUI/Tab.cpp:1504 src/libslic3r/PrintConfig.cpp:452 -#: src/libslic3r/PrintConfig.cpp:693 src/libslic3r/PrintConfig.cpp:717 -#: src/libslic3r/PrintConfig.cpp:1071 src/libslic3r/PrintConfig.cpp:1085 -#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1369 -#: src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1448 -#: src/libslic3r/PrintConfig.cpp:1468 src/libslic3r/PrintConfig.cpp:1487 -#: src/libslic3r/PrintConfig.cpp:2308 src/libslic3r/PrintConfig.cpp:2325 +#: src/slic3r/GUI/ConfigManipulation.cpp:199 src/slic3r/GUI/GUI_Factories.cpp:55 src/slic3r/GUI/GUI_Factories.cpp:128 src/slic3r/GUI/Plater.cpp:460 src/slic3r/GUI/Tab.cpp:1502 src/slic3r/GUI/Tab.cpp:1504 src/libslic3r/PrintConfig.cpp:452 src/libslic3r/PrintConfig.cpp:693 src/libslic3r/PrintConfig.cpp:717 +#: src/libslic3r/PrintConfig.cpp:1071 src/libslic3r/PrintConfig.cpp:1085 src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1369 src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1448 src/libslic3r/PrintConfig.cpp:1468 src/libslic3r/PrintConfig.cpp:1487 src/libslic3r/PrintConfig.cpp:2308 +#: src/libslic3r/PrintConfig.cpp:2325 msgid "Infill" msgstr "Заполнение" @@ -586,8 +465,7 @@ msgstr "Перед откатом к прежнему" msgid "User" msgstr "Пользователь" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:28 -#: src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/ExtrusionEntity.cpp:317 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:28 src/slic3r/GUI/GUI_Preview.cpp:238 src/libslic3r/ExtrusionEntity.cpp:317 msgid "Unknown" msgstr "Неизвестно" @@ -611,9 +489,7 @@ msgstr "пруток" msgid "SLA print" msgstr "Профиль SLA печати" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 -#: src/slic3r/GUI/ConfigWizard.cpp:755 src/slic3r/GUI/GUI.cpp:340 -#: src/slic3r/GUI/Plater.cpp:820 src/libslic3r/Preset.cpp:1326 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 src/slic3r/GUI/ConfigWizard.cpp:755 src/slic3r/GUI/GUI.cpp:340 src/slic3r/GUI/Plater.cpp:820 src/libslic3r/Preset.cpp:1326 msgid "SLA material" msgstr "Профиль SLA материала" @@ -674,16 +550,11 @@ msgstr "Все стандартные" msgid "Standard" msgstr "Стандартные" -#: src/slic3r/GUI/ConfigWizard.cpp:331 src/slic3r/GUI/ConfigWizard.cpp:651 -#: src/slic3r/GUI/Preferences.cpp:413 src/slic3r/GUI/Tab.cpp:3784 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1153 +#: src/slic3r/GUI/ConfigWizard.cpp:331 src/slic3r/GUI/ConfigWizard.cpp:651 src/slic3r/GUI/Preferences.cpp:413 src/slic3r/GUI/Tab.cpp:3784 src/slic3r/GUI/UnsavedChangesDialog.cpp:1153 msgid "All" msgstr "Все" -#: src/slic3r/GUI/ConfigWizard.cpp:332 src/slic3r/GUI/ConfigWizard.cpp:652 -#: src/slic3r/GUI/DoubleSlider.cpp:2030 src/slic3r/GUI/Plater.cpp:432 -#: src/slic3r/GUI/Plater.cpp:578 src/slic3r/GUI/Preferences.cpp:415 -#: src/libslic3r/PrintConfig.cpp:1268 +#: src/slic3r/GUI/ConfigWizard.cpp:332 src/slic3r/GUI/ConfigWizard.cpp:652 src/slic3r/GUI/DoubleSlider.cpp:2030 src/slic3r/GUI/Plater.cpp:432 src/slic3r/GUI/Plater.cpp:578 src/slic3r/GUI/Preferences.cpp:415 src/libslic3r/PrintConfig.cpp:1268 msgid "None" msgstr "Нет" @@ -703,22 +574,16 @@ msgstr "Начало" #: src/slic3r/GUI/ConfigWizard.cpp:490 #, c-format, boost-format -msgid "" -"Hello, welcome to %s! This %s helps you with the initial configuration; just " -"a few settings and you will be ready to print." -msgstr "" -"Приветствуем вас в %s! Этот мастер настройки %s поможет вам с начальной " -"настройкой программы." +msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print." +msgstr "Приветствуем вас в %s! Этот %s поможет вам с начальной настройкой программы." #: src/slic3r/GUI/ConfigWizard.cpp:495 msgid "Remove user profiles (a snapshot will be taken beforehand)" msgstr "Удалить профили пользователя (снапшот будет сделан заранее)" #: src/slic3r/GUI/ConfigWizard.cpp:498 -msgid "" -"Perform desktop integration (Sets this binary to be searchable by the " -"system)." -msgstr "" +msgid "Perform desktop integration (Sets this binary to be searchable by the system)." +msgstr "Выполнить интеграцию с рабочим столом (делает этот двоичный файл доступным для поиска системой)." #: src/slic3r/GUI/ConfigWizard.cpp:550 #, c-format, boost-format @@ -737,47 +602,39 @@ msgstr "Производитель:" msgid "Profile:" msgstr "Профиль:" -#: src/slic3r/GUI/ConfigWizard.cpp:720 src/slic3r/GUI/ConfigWizard.cpp:892 -#: src/slic3r/GUI/ConfigWizard.cpp:952 src/slic3r/GUI/ConfigWizard.cpp:1088 +#: src/slic3r/GUI/ConfigWizard.cpp:720 src/slic3r/GUI/ConfigWizard.cpp:892 src/slic3r/GUI/ConfigWizard.cpp:952 src/slic3r/GUI/ConfigWizard.cpp:1088 msgid "(All)" msgstr "(Все)" #: src/slic3r/GUI/ConfigWizard.cpp:752 #, boost-format -msgid "" -"%1% marked with * are not compatible with some installed " -"printers." -msgstr "" +msgid "%1% marked with * are not compatible with some installed printers." +msgstr "%1% помеченные знаком *, не несовместимы с некоторыми установленными принтерами." -#: src/slic3r/GUI/ConfigWizard.cpp:752 src/slic3r/GUI/ConfigWizard.cpp:2043 -#: src/slic3r/GUI/ConfigWizard.cpp:2910 +#: src/slic3r/GUI/ConfigWizard.cpp:752 src/slic3r/GUI/ConfigWizard.cpp:2043 src/slic3r/GUI/ConfigWizard.cpp:2910 msgid "Filaments" msgstr "Пластиковые нити (прутки)" #: src/slic3r/GUI/ConfigWizard.cpp:752 msgid "SLA materials" -msgstr "" +msgstr "SLA материалы (фотополимерная смола)" #: src/slic3r/GUI/ConfigWizard.cpp:755 #, boost-format msgid "All installed printers are compatible with the selected %1%." -msgstr "" +msgstr "Все установленные принтеры совместимы с выбранным прутком %1%." #: src/slic3r/GUI/ConfigWizard.cpp:755 src/libslic3r/Preset.cpp:1324 msgid "filament" msgstr "пруток" #: src/slic3r/GUI/ConfigWizard.cpp:778 -msgid "" -"Only the following installed printers are compatible with the selected " -"filaments" -msgstr "" +msgid "Only the following installed printers are compatible with the selected filaments" +msgstr "Только следующие установленные принтеры совместимы с выбранными пластиковыми нитями." #: src/slic3r/GUI/ConfigWizard.cpp:779 -msgid "" -"Only the following installed printers are compatible with the selected SLA " -"materials" -msgstr "" +msgid "Only the following installed printers are compatible with the selected SLA materials" +msgstr "Только следующие установленные принтеры совместимы с выбранными SLA материалами" #: src/slic3r/GUI/ConfigWizard.cpp:1175 msgid "Custom Printer Setup" @@ -809,16 +666,8 @@ msgstr "Проверка обновлений" #: src/slic3r/GUI/ConfigWizard.cpp:1218 #, c-format, boost-format -msgid "" -"If enabled, %s checks for new application versions online. When a new " -"version becomes available, a notification is displayed at the next " -"application startup (never during program usage). This is only a " -"notification mechanisms, no automatic installation is done." -msgstr "" -"Если включено, %s проверяет наличие новых версий программы в сети. Если " -"доступна новая версия, при следующем запуске отображается уведомление (не во " -"время работы программы). Автоматическая установка не производится. Вы " -"увидите только уведомление." +msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done." +msgstr "Если включено, %s проверяет наличие новых версий программы в сети. Если доступна новая версия, при следующем запуске отображается уведомление (не во время работы программы). Автоматическая установка не производится. Вы увидите только уведомление." #: src/slic3r/GUI/ConfigWizard.cpp:1224 src/slic3r/GUI/Preferences.cpp:173 msgid "Update built-in Presets automatically" @@ -826,54 +675,32 @@ msgstr "Обновлять встроенные профили автомати #: src/slic3r/GUI/ConfigWizard.cpp:1228 #, c-format, boost-format -msgid "" -"If enabled, %s downloads updates of built-in system presets in the " -"background.These updates are downloaded into a separate temporary location." -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"Если включено, %s будет загружать обновления встроенных системных профилей в " -"фоновом режиме. Эти обновления загружаются в отдельную временную папку. " -"Когда новые профили становятся доступны, они предлагаются при запуске " -"приложения." +msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup." +msgstr "Если включено, %s будет загружать обновления встроенных системных профилей в фоновом режиме. Эти обновления загружаются в отдельную временную папку. Когда новые профили становятся доступны, они предлагаются при запуске приложения." #: src/slic3r/GUI/ConfigWizard.cpp:1231 -msgid "" -"Updates are never applied without user's consent and never overwrite user's " -"customized settings." -msgstr "" -"Обновления никогда не применяются без согласия пользователя и никогда не " -"перезаписывают пользовательские настройки." +msgid "Updates are never applied without user's consent and never overwrite user's customized settings." +msgstr "Обновления никогда не применяются без согласия пользователя и никогда не перезаписывают пользовательские настройки." #: src/slic3r/GUI/ConfigWizard.cpp:1236 -msgid "" -"Additionally a backup snapshot of the whole configuration is created before " -"an update is applied." -msgstr "" -"Кроме того, перед обновлением создаётся резервная копия всей конфигурации " -"(снапшот)." +msgid "Additionally a backup snapshot of the whole configuration is created before an update is applied." +msgstr "Кроме того, перед обновлением создаётся резервная копия всей конфигурации (снапшот)." -#: src/slic3r/GUI/ConfigWizard.cpp:1243 src/slic3r/GUI/GUI_Factories.cpp:726 -#: src/slic3r/GUI/Plater.cpp:3499 +#: src/slic3r/GUI/ConfigWizard.cpp:1243 src/slic3r/GUI/GUI_Factories.cpp:726 src/slic3r/GUI/Plater.cpp:3499 msgid "Reload from disk" msgstr "Перезагрузить с диска" #: src/slic3r/GUI/ConfigWizard.cpp:1246 -msgid "" -"Export full pathnames of models and parts sources into 3mf and amf files" +msgid "Export full pathnames of models and parts sources into 3mf and amf files" msgstr "При экспорте в 3mf и amf, сохранять полные пути к исходным файлам" #: src/slic3r/GUI/ConfigWizard.cpp:1250 msgid "" -"If enabled, allows the Reload from disk command to automatically find and " -"load the files when invoked.\n" -"If not enabled, the Reload from disk command will ask to select each file " -"using an open file dialog." +"If enabled, allows the Reload from disk command to automatically find and load the files when invoked.\n" +"If not enabled, the Reload from disk command will ask to select each file using an open file dialog." msgstr "" -"Если включено, при выполнении команды \"Перезагрузить с диска\" программа " -"будут автоматически находить и загружать файлы проекта. \n" -"В противном случае, будет предложено выбрать каждый файл с помощью " -"диалогового окна открытия файла." +"Если включено, при выполнении команды «Перезагрузить с диска» программа будут автоматически находить и загружать файлы проекта. \n" +"В противном случае, будет предложено выбрать каждый файл с помощью диалогового окна открытия файла." #: src/slic3r/GUI/ConfigWizard.cpp:1259 msgid "Files association" @@ -895,15 +722,11 @@ msgstr "Режим просмотра" msgid "" "PrusaSlicer's user interfaces comes in three variants:\n" "Simple, Advanced, and Expert.\n" -"The Simple mode shows only the most frequently used settings relevant for " -"regular 3D printing. The other two offer progressively more sophisticated " -"fine-tuning, they are suitable for advanced and expert users, respectively." +"The Simple mode shows only the most frequently used settings relevant for regular 3D printing. The other two offer progressively more sophisticated fine-tuning, they are suitable for advanced and expert users, respectively." msgstr "" "Пользовательский интерфейс PrusaSlicer представлен тремя вариантами:\n" "Простой, Расширенный, Продвинутый.\n" -"В простом режиме отображаются только наиболее часто используемые параметры " -"3D-печати. Два других предлагают более тонкую расширенную настройку. Они " -"подходят для продвинутых и опытных пользователей." +"В простом режиме отображаются только наиболее часто используемые параметры 3D-печати. Два других предлагают более тонкую расширенную настройку. Они подходят для продвинутых и опытных пользователей." #: src/slic3r/GUI/ConfigWizard.cpp:1279 msgid "Simple mode" @@ -954,9 +777,7 @@ msgstr "Форма и размеры стола" msgid "Set the shape of your printer's bed." msgstr "Задайте форму и размеры вашего стола." -#: src/slic3r/GUI/ConfigWizard.cpp:1433 src/slic3r/GUI/Field.cpp:255 -#: src/slic3r/GUI/Field.cpp:324 src/slic3r/GUI/Field.cpp:1563 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:429 +#: src/slic3r/GUI/ConfigWizard.cpp:1433 src/slic3r/GUI/Field.cpp:255 src/slic3r/GUI/Field.cpp:324 src/slic3r/GUI/Field.cpp:1563 src/slic3r/GUI/GUI_ObjectLayers.cpp:429 msgid "Invalid numeric input." msgstr "Неправильное числовое значение." @@ -981,12 +802,8 @@ msgid "Enter the diameter of your filament." msgstr "Введите диаметр прутка." #: src/slic3r/GUI/ConfigWizard.cpp:1486 -msgid "" -"Good precision is required, so use a caliper and do multiple measurements " -"along the filament, then compute the average." -msgstr "" -"Необходима хорошая точность, поэтому используйте штангенциркуль и выполните " -"несколько измерений вдоль прутка, а затем вычислите среднее значение." +msgid "Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average." +msgstr "Необходима хорошая точность, поэтому используйте штангенциркуль и выполните несколько измерений вдоль прутка, а затем вычислите среднее значение." #: src/slic3r/GUI/ConfigWizard.cpp:1489 msgid "Filament Diameter:" @@ -1012,27 +829,17 @@ msgstr "Как правило для PLA это 160-230 °C, а для ABS 215-2 msgid "Extrusion Temperature:" msgstr "Температура экструзии:" -#: src/slic3r/GUI/ConfigWizard.cpp:1568 src/slic3r/GUI/ConfigWizard.cpp:1582 -#: src/libslic3r/PrintConfig.cpp:395 src/libslic3r/PrintConfig.cpp:1188 -#: src/libslic3r/PrintConfig.cpp:1243 src/libslic3r/PrintConfig.cpp:2786 +#: src/slic3r/GUI/ConfigWizard.cpp:1568 src/slic3r/GUI/ConfigWizard.cpp:1582 src/libslic3r/PrintConfig.cpp:395 src/libslic3r/PrintConfig.cpp:1188 src/libslic3r/PrintConfig.cpp:1243 src/libslic3r/PrintConfig.cpp:2786 msgid "°C" msgstr "°C" #: src/slic3r/GUI/ConfigWizard.cpp:1577 -msgid "" -"Enter the bed temperature needed for getting your filament to stick to your " -"heated bed." -msgstr "" -"Введите температуру стола, необходимую для того, чтобы пруток прилипал к " -"нему." +msgid "Enter the bed temperature needed for getting your filament to stick to your heated bed." +msgstr "Введите температуру стола, необходимую для того, чтобы пруток прилипал к нему." #: src/slic3r/GUI/ConfigWizard.cpp:1578 -msgid "" -"A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have " -"no heated bed." -msgstr "" -"Как правило для PLA это 60 °C, а для ABS 110 °С. Если у вас не подогреваемый " -"стол, установите 0." +msgid "A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have no heated bed." +msgstr "Как правило для PLA это 60 °C, а для ABS 110 °С. Если у вас не подогреваемый стол, установите 0." #: src/slic3r/GUI/ConfigWizard.cpp:1581 msgid "Bed Temperature:" @@ -1052,21 +859,15 @@ msgstr "Принтеры, печатающие по технологии мас #: src/slic3r/GUI/ConfigWizard.cpp:2338 #, boost-format -msgid "" -"Following printer profiles has no default filament: %1%Please select one " -"manually." -msgstr "" +msgid "Following printer profiles has no default filament: %1%Please select one manually." +msgstr "В следующих профилях принтера отсутствует пруток по умолчанию: %1%Пожалуйста, выберите его вручную." #: src/slic3r/GUI/ConfigWizard.cpp:2339 #, boost-format -msgid "" -"Following printer profiles has no default material: %1%Please select one " -"manually." -msgstr "" +msgid "Following printer profiles has no default material: %1%Please select one manually." +msgstr "В следующих профилях принтера отсутствует материал по умолчанию: %1%Пожалуйста, выберите его вручную." -#: src/slic3r/GUI/ConfigWizard.cpp:2340 src/slic3r/GUI/ConfigWizard.cpp:2438 -#: src/slic3r/GUI/DoubleSlider.cpp:2521 src/slic3r/GUI/DoubleSlider.cpp:2542 -#: src/slic3r/GUI/GUI.cpp:232 +#: src/slic3r/GUI/ConfigWizard.cpp:2340 src/slic3r/GUI/ConfigWizard.cpp:2438 src/slic3r/GUI/DoubleSlider.cpp:2521 src/slic3r/GUI/DoubleSlider.cpp:2542 src/slic3r/GUI/GUI.cpp:232 msgid "Notice" msgstr "Примечание" @@ -1076,7 +877,7 @@ msgstr "В следующих моделях FFF принтеров не выб #: src/slic3r/GUI/ConfigWizard.cpp:2463 msgid "Do you want to select default filaments for these FFF printer models?" -msgstr "Выбрать пруки по умолчанию для этих моделей FFF принтеров?" +msgstr "Выбрать прутки по умолчанию для этих моделей FFF принтеров?" #: src/slic3r/GUI/ConfigWizard.cpp:2477 msgid "The following SLA printer models have no materials selected:" @@ -1084,56 +885,54 @@ msgstr "В следующих моделях SLA принтеров не выб #: src/slic3r/GUI/ConfigWizard.cpp:2481 msgid "Do you want to select default SLA materials for these printer models?" -msgstr "" -"Выбрать фотополимерный смолы по умолчанию для этих моделей SLA принтеров?" +msgstr "Выбрать фотополимерный смолы по умолчанию для этих моделей SLA принтеров?" #: src/slic3r/GUI/ConfigWizard.cpp:2523 msgid "Configuration is edited in ConfigWizard" -msgstr "" +msgstr "Редактирование конфигурации с помощью мастера настроек" #: src/slic3r/GUI/ConfigWizard.cpp:2566 msgid "All user presets will be deleted." -msgstr "" +msgstr "Все пользовательские профили будут удалены." #: src/slic3r/GUI/ConfigWizard.cpp:2596 msgid "A new vendor was installed and one of its printers will be activated" -msgid_plural "" -"New vendors were installed and one of theirs printers will be activated" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid_plural "New vendors were installed and one of theirs printers will be activated" +msgstr[0] "Новый производитель установлен, и один из его принтеров будет активирован." +msgstr[1] "Новые производители установлены, и один из их принтеров будет активирован." +msgstr[2] "Новые производители установлены, и один из их принтеров будет активирован." #: src/slic3r/GUI/ConfigWizard.cpp:2625 msgid "Do you want to continue changing the configuration?" -msgstr "" +msgstr "Вы хотите внести изменение в конфигурацию?" #: src/slic3r/GUI/ConfigWizard.cpp:2691 msgid "A new Printer was installed and it will be activated." -msgstr "" +msgstr "Новый принтер установлен и будет активирован." #: src/slic3r/GUI/ConfigWizard.cpp:2696 msgid "Some Printers were uninstalled." -msgstr "" +msgstr "Было удалено несколько принтеров." #: src/slic3r/GUI/ConfigWizard.cpp:2717 msgid "A new filament was installed and it will be activated." -msgstr "" +msgstr "Новая пластиковая нить установлена и будет активирована." #: src/slic3r/GUI/ConfigWizard.cpp:2718 msgid "A new SLA material was installed and it will be activated." -msgstr "" +msgstr "Новый SLA материал установлен и будет активирован." #: src/slic3r/GUI/ConfigWizard.cpp:2726 msgid "Some filaments were uninstalled." -msgstr "" +msgstr "Некоторые пластиковые нити были удалены." #: src/slic3r/GUI/ConfigWizard.cpp:2726 msgid "Some SLA materials were uninstalled." -msgstr "" +msgstr "Некоторые SLA материалы были удалены." #: src/slic3r/GUI/ConfigWizard.cpp:2770 msgid "Custom printer was installed and it will be activated." -msgstr "" +msgstr "Пользовательский принтер установлен и будет активирован." #: src/slic3r/GUI/ConfigWizard.cpp:2855 msgid "Select all standard printers" @@ -1151,32 +950,23 @@ msgstr "&Далее >" msgid "&Finish" msgstr "&Завершить" -#: src/slic3r/GUI/ConfigWizard.cpp:2861 -#: src/slic3r/GUI/DesktopIntegrationDialog.cpp:490 -#: src/slic3r/GUI/FirmwareDialog.cpp:153 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:58 -#: src/slic3r/GUI/ProgressStatusBar.cpp:26 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:93 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:878 +#: src/slic3r/GUI/ConfigWizard.cpp:2861 src/slic3r/GUI/DesktopIntegrationDialog.cpp:490 src/slic3r/GUI/FirmwareDialog.cpp:153 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:58 src/slic3r/GUI/ProgressStatusBar.cpp:26 src/slic3r/GUI/SendSystemInfoDialog.cpp:93 src/slic3r/GUI/UnsavedChangesDialog.cpp:878 msgid "Cancel" msgstr "Отмена" #: src/slic3r/GUI/ConfigWizard.cpp:2881 msgid "Prusa FFF Technology Printers" -msgstr "" -"Принтеры Prusa, печатающие по технологии методом наплавления нитей (FFF)" +msgstr "Принтеры Prusa, печатающие по технологии методом наплавления нитей (FFF)" #: src/slic3r/GUI/ConfigWizard.cpp:2889 msgid "Prusa MSLA Technology Printers" -msgstr "" -"Принтеры Prusa, печатающие по технологии масочной ЖК-стереолитографии (MSLA)" +msgstr "Принтеры Prusa, печатающие по технологии масочной ЖК-стереолитографии (MSLA)" #: src/slic3r/GUI/ConfigWizard.cpp:2910 msgid "Filament Profiles Selection" msgstr "Выбор профилей прутка" -#: src/slic3r/GUI/ConfigWizard.cpp:2910 src/slic3r/GUI/ConfigWizard.cpp:2913 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3782 +#: src/slic3r/GUI/ConfigWizard.cpp:2910 src/slic3r/GUI/ConfigWizard.cpp:2913 src/slic3r/GUI/GUI_ObjectList.cpp:3782 msgid "Type:" msgstr "Тип:" @@ -1201,31 +991,24 @@ msgid "Configuration &Wizard" msgstr "&Мастер настройки" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:232 -msgid "" -"Performing desktop integration failed - boost::filesystem::canonical did not " -"return appimage path." -msgstr "" +msgid "Performing desktop integration failed - boost::filesystem::canonical did not return appimage path." +msgstr "Не удалось выполнить интеграцию с рабочим столом - boost::filesystem::canonical не вернул путь к appimage." #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:243 msgid "Performing desktop integration failed - Could not find executable." -msgstr "" +msgstr "Не удалось выполнить интеграцию с рабочим столом - не удалось найти исполняемый файл." #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:378 -msgid "" -"Performing desktop integration failed because the application directory was " -"not found." -msgstr "" +msgid "Performing desktop integration failed because the application directory was not found." +msgstr "Не удалось выполнить интеграцию с рабочим столом - не найден каталог приложения." #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:419 -msgid "" -"Performing desktop integration failed - could not create Gcodeviewer desktop " -"file. PrusaSlicer desktop file was probably created successfully." -msgstr "" +msgid "Performing desktop integration failed - could not create Gcodeviewer desktop file. PrusaSlicer desktop file was probably created successfully." +msgstr "Не удалось выполнить интеграцию с рабочим столом - не удалось установить ссылку на Gcodeviewer на рабочем столе. Ссылка на PrusaSlicer, вероятно, была успешно создана на рабочем столе." -#: src/slic3r/GUI/DesktopIntegrationDialog.cpp:459 -#: src/slic3r/GUI/GUI_App.cpp:2142 +#: src/slic3r/GUI/DesktopIntegrationDialog.cpp:459 src/slic3r/GUI/GUI_App.cpp:2142 msgid "Desktop Integration" -msgstr "" +msgstr "Интеграция с рабочим столом" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:466 msgid "" @@ -1233,14 +1016,15 @@ msgid "" "\n" "Press \"Perform\" to proceed." msgstr "" +"Интеграция с рабочим столом делает этот двоичный файл доступным для поиска системой.\n" +"\n" +"Нажмите «Выполнить», чтобы продолжить." #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:480 msgid "Perform" -msgstr "" +msgstr "Выполнить" -#: src/slic3r/GUI/DesktopIntegrationDialog.cpp:486 -#: src/slic3r/GUI/GLCanvas3D.cpp:4705 src/slic3r/GUI/KBShortcutsDialog.cpp:97 -#: src/slic3r/GUI/MainFrame.cpp:1335 +#: src/slic3r/GUI/DesktopIntegrationDialog.cpp:486 src/slic3r/GUI/GLCanvas3D.cpp:4705 src/slic3r/GUI/KBShortcutsDialog.cpp:97 src/slic3r/GUI/MainFrame.cpp:1335 msgid "Undo" msgstr "Отмена действия" @@ -1282,18 +1066,19 @@ msgstr "" #: src/slic3r/GUI/DoubleSlider.cpp:1396 msgid "Edit current color - Right click the colored slider segment" -msgstr "" -"Изменить текущий цвет - Правая кнопка мыши по цветному сегменту ползунка" +msgstr "Изменить текущий цвет - Правая кнопка мыши по цветному сегменту ползунка" #: src/slic3r/GUI/DoubleSlider.cpp:1398 msgid "This is wipe tower layer" -msgstr "" +msgstr "Это слой черновой башни" #: src/slic3r/GUI/DoubleSlider.cpp:1408 msgid "" "The sequential print is on.\n" "It's impossible to apply any custom G-code for objects printing sequentually." msgstr "" +"Включена последовательная печать.\n" +"При последовательной печати, невозможно применение какого-либо пользовательского G-кода." #: src/slic3r/GUI/DoubleSlider.cpp:1412 msgid "Print mode" @@ -1304,12 +1089,8 @@ msgid "Add extruder change - Left click" msgstr "Добавить маркер смены экструдера - Левая кнопка мыши" #: src/slic3r/GUI/DoubleSlider.cpp:1428 -msgid "" -"Add color change - Left click for predefined color or Shift + Left click for " -"custom color selection" -msgstr "" -"Добавить маркер смены цвета - Левая кнопка мыши для цвета из списка цветов " -"по умолчанию или Shift + Левая кнопка мыши для выбора своего цвета" +msgid "Add color change - Left click for predefined color or Shift + Left click for custom color selection" +msgstr "Добавить маркер смены цвета - Левая кнопка мыши для цвета из списка цветов по умолчанию или Shift + Левая кнопка мыши для выбора своего цвета" #: src/slic3r/GUI/DoubleSlider.cpp:1430 msgid "Add color change - Left click" @@ -1330,18 +1111,16 @@ msgstr "Для добавления другого кода - Правая кн #: src/slic3r/GUI/DoubleSlider.cpp:1440 msgid "" "The sequential print is on.\n" -"It's impossible to apply any custom G-code for objects printing " -"sequentually.\n" +"It's impossible to apply any custom G-code for objects printing sequentually.\n" "This code won't be processed during G-code generation." msgstr "" "Включена последовательная печать.\n" -"При последовательной печати, невозможно применение какого-либо " -"пользовательского G-кода.\n" +"При последовательной печати, невозможно применение какого-либо пользовательского G-кода.\n" "Этот код не будет обрабатываться во время генерации G-кода." #: src/slic3r/GUI/DoubleSlider.cpp:1458 msgid "continue" -msgstr "" +msgstr "продолжить" #: src/slic3r/GUI/DoubleSlider.cpp:1466 #, boost-format @@ -1361,7 +1140,7 @@ msgstr "Пауза печати (\"%1%\")" #: src/slic3r/GUI/DoubleSlider.cpp:1471 #, boost-format msgid "Custom template (\"%1%\")" -msgstr "Пользовательский шаблон \"%1%\")" +msgstr "Пользовательский шаблон (\"%1%\")" #: src/slic3r/GUI/DoubleSlider.cpp:1473 #, boost-format @@ -1382,12 +1161,10 @@ msgstr "" #: src/slic3r/GUI/DoubleSlider.cpp:1485 msgid "" -"There is a color change for extruder that won't be used till the end of " -"print job.\n" +"There is a color change for extruder that won't be used till the end of print job.\n" "This code won't be processed during G-code generation." msgstr "" -"Произведена смена цвета для экструдера, который не будет использоваться до " -"конца печати.\n" +"Произведена смена цвета для экструдера, который не будет использоваться до конца печати.\n" "Этот код не будет обрабатываться во время генерации G-кода." #: src/slic3r/GUI/DoubleSlider.cpp:1488 @@ -1420,8 +1197,7 @@ msgstr "Редактировать маркер - Ctrl + левая кнопка msgid "Edit tick mark - Right click" msgstr "Редактировать маркер - Правая кнопка мыши" -#: src/slic3r/GUI/DoubleSlider.cpp:1602 src/slic3r/GUI/DoubleSlider.cpp:1633 -#: src/slic3r/GUI/GUI_Factories.cpp:778 +#: src/slic3r/GUI/DoubleSlider.cpp:1602 src/slic3r/GUI/DoubleSlider.cpp:1633 src/slic3r/GUI/GUI_Factories.cpp:778 #, c-format, boost-format msgid "Extruder %d" msgstr "Экструдер %d" @@ -1542,23 +1318,19 @@ msgstr "Задать последовательность экструдеров #: src/slic3r/GUI/DoubleSlider.cpp:2051 msgid "Set auto color changes" -msgstr "" +msgstr "Выполнить авторасстановку маркеров смены цвета" #: src/slic3r/GUI/DoubleSlider.cpp:2086 msgid "This action will cause deletion of all ticks on vertical slider." -msgstr "" +msgstr "Это действие приведет к удалению всех маркеров на вертикальном ползунке." #: src/slic3r/GUI/DoubleSlider.cpp:2087 src/slic3r/GUI/Tab.cpp:1318 msgid "" "This action is not revertible.\n" "Do you want to proceed?" -msgstr "" +msgstr "Это действие необратимо. Продолжить?" -#: src/slic3r/GUI/DoubleSlider.cpp:2088 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 src/slic3r/GUI/GUI.cpp:245 -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:645 -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:675 -#: src/slic3r/GUI/WipeTowerDialog.cpp:58 src/slic3r/GUI/WipeTowerDialog.cpp:443 +#: src/slic3r/GUI/DoubleSlider.cpp:2088 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 src/slic3r/GUI/GUI.cpp:245 src/slic3r/GUI/PhysicalPrinterDialog.cpp:645 src/slic3r/GUI/PhysicalPrinterDialog.cpp:675 src/slic3r/GUI/WipeTowerDialog.cpp:58 src/slic3r/GUI/WipeTowerDialog.cpp:443 msgid "Warning" msgstr "Предупреждение" @@ -1573,9 +1345,7 @@ msgstr "Пользовательский G-код для текущего сло #: src/slic3r/GUI/DoubleSlider.cpp:2237 msgid "Enter short message shown on Printer display when a print is paused" -msgstr "" -"Введите короткое сообщение, которое будет отображаться на экране принтера " -"при паузе печати" +msgstr "Введите короткое сообщение, которое будет отображаться на экране принтера при паузе печати" #: src/slic3r/GUI/DoubleSlider.cpp:2238 #, boost-format @@ -1592,20 +1362,15 @@ msgstr "Введите значение для перехода на нужну #: src/slic3r/GUI/DoubleSlider.cpp:2514 msgid "The last color change data was saved for a single extruder printing." -msgstr "" -"Последние данные об изменении цвета были сохранены для одноэкструдерной " -"печати." +msgstr "Последние данные об изменении цвета были сохранены для одноэкструдерной печати." #: src/slic3r/GUI/DoubleSlider.cpp:2515 src/slic3r/GUI/DoubleSlider.cpp:2531 msgid "The last color change data was saved for a multi extruder printing." -msgstr "" -"Последние данные об изменении цвета были сохранены для многоэкструдерной " -"печати." +msgstr "Последние данные об изменении цвета были сохранены для многоэкструдерной печати." #: src/slic3r/GUI/DoubleSlider.cpp:2517 msgid "Your current changes will delete all saved color changes." -msgstr "" -"Текущие изменения приведут к удалению всех сохранённых изменений цвета." +msgstr "Текущие изменения приведут к удалению всех сохранённых изменений цвета." #: src/slic3r/GUI/DoubleSlider.cpp:2518 src/slic3r/GUI/DoubleSlider.cpp:2539 msgid "Are you sure you want to continue?" @@ -1626,27 +1391,15 @@ msgid "Do you want to delete all saved tool changes?" msgstr "Удалить все сохранённые данные о смене инструмента?" #: src/slic3r/GUI/DoubleSlider.cpp:2537 -msgid "" -"The last color change data was saved for a multi extruder printing with tool " -"changes for whole print." -msgstr "" -"Последние данные об изменении цвета были сохранены для многоэкструдерной " -"печати со сменой инструмента для всей печати." +msgid "The last color change data was saved for a multi extruder printing with tool changes for whole print." +msgstr "Последние данные об изменении цвета были сохранены для многоэкструдерной печати со сменой инструмента для всей печати." #: src/slic3r/GUI/DoubleSlider.cpp:2538 msgid "Your current changes will delete all saved extruder (tool) changes." -msgstr "" -"Текущие изменения приведут к удалению всех сохранённых изменений экструдера " -"(инструмента)." +msgstr "Текущие изменения приведут к удалению всех сохранённых изменений экструдера (инструмента)." -#: src/slic3r/GUI/ExtraRenderers.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:538 -#: src/slic3r/GUI/GUI_ObjectList.cpp:550 src/slic3r/GUI/GUI_ObjectList.cpp:979 -#: src/slic3r/GUI/GUI_ObjectList.cpp:1967 -#: src/slic3r/GUI/GUI_ObjectList.cpp:4283 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:250 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:352 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:376 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:607 src/libslic3r/PrintConfig.cpp:774 +#: src/slic3r/GUI/ExtraRenderers.cpp:316 src/slic3r/GUI/GUI_ObjectList.cpp:538 src/slic3r/GUI/GUI_ObjectList.cpp:550 src/slic3r/GUI/GUI_ObjectList.cpp:979 src/slic3r/GUI/GUI_ObjectList.cpp:1967 src/slic3r/GUI/GUI_ObjectList.cpp:4283 src/slic3r/GUI/ObjectDataViewModel.cpp:250 src/slic3r/GUI/ObjectDataViewModel.cpp:352 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:376 src/slic3r/GUI/ObjectDataViewModel.cpp:607 src/libslic3r/PrintConfig.cpp:774 msgid "default" msgstr "по умолчанию" @@ -1656,31 +1409,27 @@ msgstr "Задать последовательность экструдеров #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:46 msgid "Set extruder change for every" -msgstr "Задать смену экструдера на каждом" +msgstr "Смена экструдера на каждом" -#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:60 -#: src/libslic3r/PrintConfig.cpp:639 src/libslic3r/PrintConfig.cpp:1382 -#: src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/PrintConfig.cpp:2254 -#: src/libslic3r/PrintConfig.cpp:2330 src/libslic3r/PrintConfig.cpp:2583 -#: src/libslic3r/PrintConfig.cpp:2631 src/libslic3r/PrintConfig.cpp:2650 +#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:60 src/libslic3r/PrintConfig.cpp:639 src/libslic3r/PrintConfig.cpp:1382 src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/PrintConfig.cpp:2254 src/libslic3r/PrintConfig.cpp:2330 src/libslic3r/PrintConfig.cpp:2583 src/libslic3r/PrintConfig.cpp:2631 src/libslic3r/PrintConfig.cpp:2650 msgid "layers" msgstr "слой(-я)" #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:164 msgid "Random sequence" -msgstr "" +msgstr "Случайная последовательность" #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:166 msgid "If enabled, random sequence of the selected extruders will be used." -msgstr "" +msgstr "Если включено, будет использоваться случайная последовательность выбранных экструдеров." #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:172 msgid "Allow next color repetition" -msgstr "" +msgstr "Разрешить повтор цвета" #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:174 msgid "If enabled, a repetition of the next random color will be allowed." -msgstr "" +msgstr "Если включено, будет разрешено последующее случайное повторение цвета." #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:177 msgid "Set extruder(tool) sequence" @@ -1702,9 +1451,7 @@ msgstr "значение по умолчанию" msgid "parameter name" msgstr "имя параметра" -#: src/slic3r/GUI/Field.cpp:204 src/slic3r/GUI/OptionsGroup.cpp:827 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1066 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1078 +#: src/slic3r/GUI/Field.cpp:204 src/slic3r/GUI/OptionsGroup.cpp:827 src/slic3r/GUI/UnsavedChangesDialog.cpp:1066 src/slic3r/GUI/UnsavedChangesDialog.cpp:1078 msgid "N/A" msgstr "Н/Д" @@ -1726,8 +1473,7 @@ msgstr "" msgid "Parameter validation" msgstr "Проверка правильности параметра" -#: src/slic3r/GUI/Field.cpp:282 src/slic3r/GUI/Field.cpp:390 -#: src/slic3r/GUI/Field.cpp:1575 +#: src/slic3r/GUI/Field.cpp:282 src/slic3r/GUI/Field.cpp:390 src/slic3r/GUI/Field.cpp:1575 msgid "Input value is out of range" msgstr "Введённое значение вне диапазона" @@ -1744,12 +1490,8 @@ msgstr "" #: src/slic3r/GUI/Field.cpp:397 #, boost-format -msgid "" -"Invalid input format. Expected vector of dimensions in the following format: " -"\"%1%\"" -msgstr "" -"Неверный входной формат. Ожидаемый вектор размеров в следующем формате: \"%1%" -"\"" +msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" +msgstr "Неверный входной формат. Ожидаемый вектор размеров в следующем формате: \"%1%\"" #: src/slic3r/GUI/FirmwareDialog.cpp:152 msgid "Flash!" @@ -1794,18 +1536,14 @@ msgstr "" #: src/slic3r/GUI/FirmwareDialog.cpp:421 src/slic3r/GUI/FirmwareDialog.cpp:456 #, c-format, boost-format -msgid "" -"Multiple %s devices found. Please only connect one at a time for flashing." -msgstr "" -"Найдено несколько устройств %s. Для прошивки оставьте только одно " -"подключённое устройство." +msgid "Multiple %s devices found. Please only connect one at a time for flashing." +msgstr "Найдено несколько устройств %s. Для прошивки оставьте только одно подключённое устройство." #: src/slic3r/GUI/FirmwareDialog.cpp:438 #, c-format, boost-format msgid "" "The %s device was not found.\n" -"If the device is connected, please press the Reset button next to the USB " -"connector ..." +"If the device is connected, please press the Reset button next to the USB connector ..." msgstr "" "Устройство %s не найдено.\n" "Если устройство подключено, нажмите кнопку Reset рядом с USB-разъёмом..." @@ -1833,9 +1571,7 @@ msgstr "Прошивальшик" msgid "Firmware image:" msgstr "Файл прошивки (*.hex):" -#: src/slic3r/GUI/FirmwareDialog.cpp:816 -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:297 -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:372 +#: src/slic3r/GUI/FirmwareDialog.cpp:816 src/slic3r/GUI/PhysicalPrinterDialog.cpp:297 src/slic3r/GUI/PhysicalPrinterDialog.cpp:372 msgid "Browse" msgstr "Обзор" @@ -1867,11 +1603,7 @@ msgstr "Готово" msgid "Advanced: Output log" msgstr "Дополнительно: журнал вывода" -#: src/slic3r/GUI/FirmwareDialog.cpp:863 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:310 -#: src/slic3r/GUI/Mouse3DController.cpp:543 -#: src/slic3r/GUI/PrintHostDialogs.cpp:260 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:122 +#: src/slic3r/GUI/FirmwareDialog.cpp:863 src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:310 src/slic3r/GUI/Mouse3DController.cpp:543 src/slic3r/GUI/PrintHostDialogs.cpp:260 src/slic3r/GUI/SendSystemInfoDialog.cpp:122 msgid "Close" msgstr "Закрыть" @@ -1893,41 +1625,39 @@ msgstr "Отмена..." #: src/slic3r/GUI/GalleryDialog.cpp:69 src/slic3r/GUI/MainFrame.cpp:1397 msgid "Shape Gallery" -msgstr "" +msgstr "Библиотека фигур" #: src/slic3r/GUI/GalleryDialog.cpp:76 msgid "Select shape from the gallery" -msgstr "" +msgstr "Выберите фигуру из библиотеки" #: src/slic3r/GUI/GalleryDialog.cpp:100 msgid "Add to bed" -msgstr "" +msgstr "Добавить на стол" #: src/slic3r/GUI/GalleryDialog.cpp:101 msgid "Add selected shape(s) to the bed" -msgstr "" +msgstr "Добавьте выбранную фигуру(-ы) на стол" #: src/slic3r/GUI/GalleryDialog.cpp:117 msgid "Add" -msgstr "" +msgstr "Добавить в библиотеку" #: src/slic3r/GUI/GalleryDialog.cpp:117 msgid "Add one or more custom shapes" -msgstr "" +msgstr "Добавьте одну или несколько пользовательских фигур" -#: src/slic3r/GUI/GalleryDialog.cpp:118 src/slic3r/GUI/GalleryDialog.cpp:508 -#: src/slic3r/GUI/GLCanvas3D.cpp:4496 src/slic3r/GUI/GUI_Factories.cpp:444 -#: src/slic3r/GUI/Tab.cpp:3702 +#: src/slic3r/GUI/GalleryDialog.cpp:118 src/slic3r/GUI/GalleryDialog.cpp:508 src/slic3r/GUI/GLCanvas3D.cpp:4496 src/slic3r/GUI/GUI_Factories.cpp:444 src/slic3r/GUI/Tab.cpp:3702 msgid "Delete" msgstr "Удалить" #: src/slic3r/GUI/GalleryDialog.cpp:118 msgid "Delete one or more custom shape. You can't delete system shapes" -msgstr "" +msgstr "Удалить одну или несколько пользовательских фигур. Системные фигуры нельзя удалить" #: src/slic3r/GUI/GalleryDialog.cpp:402 msgid "Choose one or more files (STL, OBJ):" -msgstr "" +msgstr "Выберите один или несколько файлов (STL, OBJ):" #: src/slic3r/GUI/GalleryDialog.cpp:442 #, boost-format @@ -1935,23 +1665,25 @@ msgid "" "It looks like selected %1%-file has an error or is destructed.\n" "We can't load this file" msgstr "" +"Похоже, что выбранный %1% файл содержит ошибку или уничтожен.\n" +"Загрузка файла невозможна." #: src/slic3r/GUI/GalleryDialog.cpp:453 msgid "Choose one PNG file:" -msgstr "" +msgstr "Выберите один *.png файл:" #: src/slic3r/GUI/GalleryDialog.cpp:466 msgid "Replacing of the PNG" -msgstr "" +msgstr "Замена PNG" #: src/slic3r/GUI/GalleryDialog.cpp:510 msgid "Change thumbnail" -msgstr "" +msgstr "Изменить эскиз" #: src/slic3r/GUI/GalleryDialog.cpp:551 src/slic3r/GUI/GalleryDialog.cpp:556 #, boost-format msgid "Loading of the \"%1%\"" -msgstr "" +msgstr "Загрузка \"%1%\"" #: src/slic3r/GUI/GCodeViewer.cpp:264 msgid "Tool position" @@ -1987,31 +1719,27 @@ msgstr "после" #: src/slic3r/GUI/GCodeViewer.cpp:3180 msgid "from" -msgstr "из" +msgstr "с" #: src/slic3r/GUI/GCodeViewer.cpp:3180 msgid "to" -msgstr "в" +msgstr "до" -#: src/slic3r/GUI/GCodeViewer.cpp:3230 src/slic3r/GUI/GCodeViewer.cpp:3231 -#: src/slic3r/GUI/GCodeViewer.cpp:3280 +#: src/slic3r/GUI/GCodeViewer.cpp:3230 src/slic3r/GUI/GCodeViewer.cpp:3231 src/slic3r/GUI/GCodeViewer.cpp:3280 msgid "Percentage" msgstr "Процент" -#: src/slic3r/GUI/GCodeViewer.cpp:3241 src/slic3r/GUI/GCodeViewer.cpp:3280 -#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:957 +#: src/slic3r/GUI/GCodeViewer.cpp:3241 src/slic3r/GUI/GCodeViewer.cpp:3280 src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:957 msgid "Feature type" msgstr "Типы линий" -#: src/slic3r/GUI/GCodeViewer.cpp:3241 src/slic3r/GUI/GCodeViewer.cpp:3280 -#: src/slic3r/GUI/RammingChart.cpp:90 +#: src/slic3r/GUI/GCodeViewer.cpp:3241 src/slic3r/GUI/GCodeViewer.cpp:3280 src/slic3r/GUI/RammingChart.cpp:90 msgid "Time" msgstr "Время" -#: src/slic3r/GUI/GCodeViewer.cpp:3280 src/slic3r/GUI/GCodeViewer.cpp:3291 -#: src/slic3r/GUI/GCodeViewer.cpp:3552 +#: src/slic3r/GUI/GCodeViewer.cpp:3280 src/slic3r/GUI/GCodeViewer.cpp:3291 src/slic3r/GUI/GCodeViewer.cpp:3552 msgid "Used filament" -msgstr "" +msgstr "Использовано прутка" #: src/slic3r/GUI/GCodeViewer.cpp:3283 msgid "Height (mm)" @@ -2031,25 +1759,21 @@ msgstr "Скорость вентилятора (%)" #: src/slic3r/GUI/GCodeViewer.cpp:3287 msgid "Temperature (°C)" -msgstr "" +msgstr "Температура (°C)" #: src/slic3r/GUI/GCodeViewer.cpp:3288 msgid "Volumetric flow rate (mm³/s)" msgstr "Объёмный расход (мм³/с)" -#: src/slic3r/GUI/GCodeViewer.cpp:3291 src/slic3r/GUI/GUI_Preview.cpp:224 -#: src/slic3r/GUI/GUI_Preview.cpp:957 +#: src/slic3r/GUI/GCodeViewer.cpp:3291 src/slic3r/GUI/GUI_Preview.cpp:224 src/slic3r/GUI/GUI_Preview.cpp:957 msgid "Tool" msgstr "Инструмент" -#: src/slic3r/GUI/GCodeViewer.cpp:3294 src/slic3r/GUI/GUI_Preview.cpp:225 -#: src/slic3r/GUI/GUI_Preview.cpp:956 +#: src/slic3r/GUI/GCodeViewer.cpp:3294 src/slic3r/GUI/GUI_Preview.cpp:225 src/slic3r/GUI/GUI_Preview.cpp:956 msgid "Color Print" msgstr "Цвет печати" -#: src/slic3r/GUI/GCodeViewer.cpp:3332 src/slic3r/GUI/GCodeViewer.cpp:3378 -#: src/slic3r/GUI/GCodeViewer.cpp:3383 src/slic3r/GUI/GUI_ObjectList.cpp:312 -#: src/slic3r/GUI/wxExtensions.cpp:536 src/libslic3r/PrintConfig.cpp:769 +#: src/slic3r/GUI/GCodeViewer.cpp:3332 src/slic3r/GUI/GCodeViewer.cpp:3378 src/slic3r/GUI/GCodeViewer.cpp:3383 src/slic3r/GUI/GUI_ObjectList.cpp:312 src/slic3r/GUI/wxExtensions.cpp:536 src/libslic3r/PrintConfig.cpp:769 msgid "Extruder" msgstr "Экструдер" @@ -2085,10 +1809,9 @@ msgstr "Точное время печати" msgid "Duration" msgstr "Продолжительность" -#: src/slic3r/GUI/GCodeViewer.cpp:3595 src/slic3r/GUI/GUI_Preview.cpp:1048 -#: src/libslic3r/PrintConfig.cpp:2881 +#: src/slic3r/GUI/GCodeViewer.cpp:3595 src/slic3r/GUI/GUI_Preview.cpp:1048 src/libslic3r/PrintConfig.cpp:2881 msgid "Travel" -msgstr "Перемещение" +msgstr "Скорость перемещение по XY" #: src/slic3r/GUI/GCodeViewer.cpp:3598 msgid "Movement" @@ -2098,18 +1821,15 @@ msgstr "Перемещение" msgid "Extrusion" msgstr "Экструзия" -#: src/slic3r/GUI/GCodeViewer.cpp:3600 src/slic3r/GUI/Tab.cpp:1839 -#: src/slic3r/GUI/Tab.cpp:2774 +#: src/slic3r/GUI/GCodeViewer.cpp:3600 src/slic3r/GUI/Tab.cpp:1839 src/slic3r/GUI/Tab.cpp:2774 msgid "Retraction" msgstr "Ретракт (втягивание)" -#: src/slic3r/GUI/GCodeViewer.cpp:3617 src/slic3r/GUI/GCodeViewer.cpp:3620 -#: src/slic3r/GUI/GUI_Preview.cpp:1049 +#: src/slic3r/GUI/GCodeViewer.cpp:3617 src/slic3r/GUI/GCodeViewer.cpp:3620 src/slic3r/GUI/GUI_Preview.cpp:1049 msgid "Wipe" msgstr "Очистка" -#: src/slic3r/GUI/GCodeViewer.cpp:3652 src/slic3r/GUI/GUI_Preview.cpp:257 -#: src/slic3r/GUI/GUI_Preview.cpp:272 +#: src/slic3r/GUI/GCodeViewer.cpp:3652 src/slic3r/GUI/GUI_Preview.cpp:257 src/slic3r/GUI/GUI_Preview.cpp:272 msgid "Options" msgstr "Опции" @@ -2123,7 +1843,7 @@ msgstr "Подача (выдавливание)" #: src/slic3r/GUI/GCodeViewer.cpp:3657 src/slic3r/GUI/GUI_Preview.cpp:1052 msgid "Seams" -msgstr "" +msgstr "Швы" #: src/slic3r/GUI/GCodeViewer.cpp:3658 src/slic3r/GUI/GUI_Preview.cpp:1053 msgid "Tool changes" @@ -2141,26 +1861,21 @@ msgstr "Паузы печати" msgid "Custom G-codes" msgstr "Пользовательский G-код" -#: src/slic3r/GUI/GCodeViewer.cpp:3681 src/slic3r/GUI/GCodeViewer.cpp:3700 -#: src/slic3r/GUI/GUI.cpp:341 src/slic3r/GUI/Plater.cpp:821 -#: src/libslic3r/PrintConfig.cpp:299 +#: src/slic3r/GUI/GCodeViewer.cpp:3681 src/slic3r/GUI/GCodeViewer.cpp:3700 src/slic3r/GUI/GUI.cpp:341 src/slic3r/GUI/Plater.cpp:821 src/libslic3r/PrintConfig.cpp:299 msgid "Printer" msgstr "Профиль принтера" -#: src/slic3r/GUI/GCodeViewer.cpp:3683 src/slic3r/GUI/GCodeViewer.cpp:3705 -#: src/slic3r/GUI/GUI.cpp:337 src/slic3r/GUI/Plater.cpp:817 +#: src/slic3r/GUI/GCodeViewer.cpp:3683 src/slic3r/GUI/GCodeViewer.cpp:3705 src/slic3r/GUI/GUI.cpp:337 src/slic3r/GUI/Plater.cpp:817 msgid "Print settings" msgstr "Профиль печати" -#: src/slic3r/GUI/GCodeViewer.cpp:3686 src/slic3r/GUI/GCodeViewer.cpp:3712 -#: src/slic3r/GUI/GUI.cpp:339 src/slic3r/GUI/Plater.cpp:818 -#: src/slic3r/GUI/Tab.cpp:1939 src/slic3r/GUI/Tab.cpp:1940 +#: src/slic3r/GUI/GCodeViewer.cpp:3686 src/slic3r/GUI/GCodeViewer.cpp:3712 src/slic3r/GUI/GUI.cpp:339 src/slic3r/GUI/Plater.cpp:818 src/slic3r/GUI/Tab.cpp:1939 src/slic3r/GUI/Tab.cpp:1940 msgid "Filament" msgstr "Профиль прутка" #: src/slic3r/GUI/GCodeViewer.cpp:3725 msgid "Estimated printing times" -msgstr "" +msgstr "Расчётное время печати" #: src/slic3r/GUI/GCodeViewer.cpp:3744 msgid "Normal mode" @@ -2170,15 +1885,13 @@ msgstr "Нормальный режим" msgid "Stealth mode" msgstr "Тихий режим" -#: src/slic3r/GUI/GCodeViewer.cpp:3752 src/libslic3r/PrintConfig.cpp:1166 -#: src/libslic3r/PrintConfig.cpp:1184 src/libslic3r/PrintConfig.cpp:1194 -#: src/libslic3r/PrintConfig.cpp:1239 +#: src/slic3r/GUI/GCodeViewer.cpp:3752 src/libslic3r/PrintConfig.cpp:1166 src/libslic3r/PrintConfig.cpp:1184 src/libslic3r/PrintConfig.cpp:1194 src/libslic3r/PrintConfig.cpp:1239 msgid "First layer" msgstr "Первый слой" #: src/slic3r/GUI/GCodeViewer.cpp:3753 msgid "Total" -msgstr "" +msgstr "Общее" #: src/slic3r/GUI/GCodeViewer.cpp:3787 msgid "Show stealth mode" @@ -2188,8 +1901,7 @@ msgstr "Показать в тихом режиме" msgid "Show normal mode" msgstr "Показать в нормальном режиме" -#: src/slic3r/GUI/GLCanvas3D.cpp:225 src/slic3r/GUI/GLCanvas3D.cpp:4643 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:53 +#: src/slic3r/GUI/GLCanvas3D.cpp:225 src/slic3r/GUI/GLCanvas3D.cpp:4643 src/slic3r/GUI/ObjectDataViewModel.cpp:53 msgid "Variable layer height" msgstr "Переменная высота слоёв" @@ -2285,13 +1997,11 @@ msgstr "Переменная высота слоёв - Сгладить всё" msgid "Mirror Object" msgstr "Отражение модели" -#: src/slic3r/GUI/GLCanvas3D.cpp:2573 -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:560 +#: src/slic3r/GUI/GLCanvas3D.cpp:2573 src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:560 msgid "Gizmo-Move" msgstr "Гизмо перемещения" -#: src/slic3r/GUI/GLCanvas3D.cpp:2656 -#: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:562 +#: src/slic3r/GUI/GLCanvas3D.cpp:2656 src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:562 msgid "Gizmo-Rotate" msgstr "Гизмо поворота" @@ -2343,13 +2053,11 @@ msgstr[0] "Повтор %1$d действия" msgstr[1] "Повтор %1$d действий" msgstr[2] "Повтор %1$d действий" -#: src/slic3r/GUI/GLCanvas3D.cpp:3972 src/slic3r/GUI/GLCanvas3D.cpp:4622 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:106 src/slic3r/GUI/Search.cpp:435 +#: src/slic3r/GUI/GLCanvas3D.cpp:3972 src/slic3r/GUI/GLCanvas3D.cpp:4622 src/slic3r/GUI/KBShortcutsDialog.cpp:106 src/slic3r/GUI/Search.cpp:435 msgid "Search" msgstr "Поиск" -#: src/slic3r/GUI/GLCanvas3D.cpp:3986 src/slic3r/GUI/GLCanvas3D.cpp:3994 -#: src/slic3r/GUI/Search.cpp:441 +#: src/slic3r/GUI/GLCanvas3D.cpp:3986 src/slic3r/GUI/GLCanvas3D.cpp:3994 src/slic3r/GUI/Search.cpp:441 msgid "Enter a search term" msgstr "Ввод поискового запроса" @@ -2370,8 +2078,7 @@ msgstr "Расстояние" msgid "Enable rotations (slow)" msgstr "Разрешить вращение (замедление)" -#: src/slic3r/GUI/GLCanvas3D.cpp:4082 src/slic3r/GUI/GLCanvas3D.cpp:4514 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:132 src/slic3r/GUI/Plater.cpp:1666 +#: src/slic3r/GUI/GLCanvas3D.cpp:4082 src/slic3r/GUI/GLCanvas3D.cpp:4514 src/slic3r/GUI/KBShortcutsDialog.cpp:132 src/slic3r/GUI/Plater.cpp:1666 msgid "Arrange" msgstr "Расставить" @@ -2379,8 +2086,7 @@ msgstr "Расставить" msgid "Add..." msgstr "Добавить..." -#: src/slic3r/GUI/GLCanvas3D.cpp:4505 src/slic3r/GUI/KBShortcutsDialog.cpp:96 -#: src/slic3r/GUI/Plater.cpp:5413 +#: src/slic3r/GUI/GLCanvas3D.cpp:4505 src/slic3r/GUI/KBShortcutsDialog.cpp:96 src/slic3r/GUI/Plater.cpp:5413 msgid "Delete all" msgstr "Удалить всё" @@ -2400,8 +2106,7 @@ msgstr "Копировать" msgid "Paste" msgstr "Вставить" -#: src/slic3r/GUI/GLCanvas3D.cpp:4557 src/slic3r/GUI/GUI_Factories.cpp:1089 -#: src/slic3r/GUI/GUI_Factories.cpp:1113 src/slic3r/GUI/GUI_Factories.cpp:1124 +#: src/slic3r/GUI/GLCanvas3D.cpp:4557 src/slic3r/GUI/GUI_Factories.cpp:1089 src/slic3r/GUI/GUI_Factories.cpp:1113 src/slic3r/GUI/GUI_Factories.cpp:1124 msgid "Add instance" msgstr "Добавить копию" @@ -2426,8 +2131,7 @@ msgstr "Правая кнопку мыши, чтобы показать/скры msgid "Next Undo action: %1%" msgstr "Следующее действие отмены: %1%" -#: src/slic3r/GUI/GLCanvas3D.cpp:4744 src/slic3r/GUI/KBShortcutsDialog.cpp:98 -#: src/slic3r/GUI/MainFrame.cpp:1338 +#: src/slic3r/GUI/GLCanvas3D.cpp:4744 src/slic3r/GUI/KBShortcutsDialog.cpp:98 src/slic3r/GUI/MainFrame.cpp:1338 msgid "Redo" msgstr "Повтор действия" @@ -2450,7 +2154,7 @@ msgstr "Обнаружены SLA поддержки вне области печ #: src/slic3r/GUI/GLCanvas3D.cpp:6386 msgid "Some objects are not visible during editing." -msgstr "" +msgstr "При редактировании, те модели с которыми вы не работаете скрываются." #: src/slic3r/GUI/GLCanvas3D.cpp:6388 msgid "" @@ -2468,16 +2172,11 @@ msgstr "Выбор\\Добавление из прямоугольника" msgid "Selection-Remove from rectangle" msgstr "Выбор\\Удаление из прямоугольника" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4320 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:50 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4320 msgid "Cut" msgstr "Разрезать" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 src/slic3r/GUI/GUI_ObjectManipulation.cpp:478 msgid "in" msgstr "дюйм" @@ -2497,42 +2196,27 @@ msgstr "Развернуть нижнюю часть" msgid "Perform cut" msgstr "Выполнить разрез" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:33 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:49 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:33 src/slic3r/GUI/ObjectDataViewModel.cpp:49 msgid "Paint-on supports" msgstr "Рисование поддержек" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:42 -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:39 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:112 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:31 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:42 src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:39 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:112 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:31 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:49 msgid "Clipping of view" msgstr "Отсечение вида" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:43 -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:111 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:32 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:43 src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:40 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:111 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:32 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:50 msgid "Reset direction" msgstr "Сброс направления" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:44 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:113 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:33 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:44 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:113 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:33 msgid "Brush size" msgstr "Размер кисти" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:45 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:114 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:34 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:45 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:114 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:34 msgid "Brush shape" msgstr "Форма кисти" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:46 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:115 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:35 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:46 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:115 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:35 msgid "Left mouse button" msgstr "Левая кнопка мыши" @@ -2540,162 +2224,114 @@ msgstr "Левая кнопка мыши" msgid "Enforce supports" msgstr "Принудительная поддержка" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:48 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:117 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:37 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:48 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:117 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:37 msgid "Right mouse button" msgstr "Правая кнопка мыши" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:474 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:474 msgid "Block supports" msgstr "Блокировка поддержки" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:119 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:39 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:50 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:119 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:39 msgid "Shift + Left mouse button" msgstr "Shift + Левая кнопка мыши" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:469 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:270 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:469 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:40 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:270 msgid "Remove selection" msgstr "Удалить выделенное" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:52 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:41 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:52 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:41 msgid "Remove all selection" msgstr "Удалить всё выделенное" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:53 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:122 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:42 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:53 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:122 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:42 msgid "Circle" msgstr "Круг" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:54 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:123 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:43 -#: src/slic3r/GUI/GUI_Factories.cpp:461 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:54 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:123 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:43 src/slic3r/GUI/GUI_Factories.cpp:461 msgid "Sphere" msgstr "Сфера" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:55 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:124 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:68 -#: src/libslic3r/PrintConfig.cpp:1147 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:55 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:124 src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:68 src/libslic3r/PrintConfig.cpp:1147 msgid "Triangles" msgstr "Треугольники" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:56 msgid "Highlight overhang by angle" -msgstr "" +msgstr "Выделение свеса по углу" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:57 msgid "Enforce" -msgstr "Принудительная" +msgstr "Зафиксировать выделенный угол" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:60 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:126 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:60 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:126 msgid "Tool type" -msgstr "" +msgstr "Тип инструмента" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:61 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:127 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:61 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:127 msgid "Brush" -msgstr "" +msgstr "Кисть" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:62 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:128 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:62 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:128 msgid "Smart fill" -msgstr "" +msgstr "Умная заливка" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:64 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:131 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:64 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:131 msgid "Smart fill angle" -msgstr "" +msgstr "Угол для умной заливки" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:66 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:132 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:66 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:132 msgid "Split triangles" -msgstr "" +msgstr "Делить треугольную сетку" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:67 msgid "On overhangs only" -msgstr "" +msgstr "Только на свесах" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:179 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:199 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:179 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:199 #, boost-format -msgid "" -"Preselects faces by overhang angle. It is possible to restrict paintable " -"facets to only preselected faces when the option \"%1%\" is enabled." -msgstr "" +msgid "Preselects faces by overhang angle. It is possible to restrict paintable facets to only preselected faces when the option \"%1%\" is enabled." +msgstr "Предварительно выбирает грани по углу свеса. Можно ограничить окрашиваемые грани только предварительно выбранными гранями, если включён параметр \"%1%\"." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:231 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:382 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:231 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:382 msgid "Paints facets according to the chosen painting brush." -msgstr "" +msgstr "Окрашивает грани в соответствии с выбранной кистью." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:239 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:395 -msgid "" -"Paints neighboring facets whose relative angle is less or equal to set angle." -msgstr "" +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:239 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:395 +msgid "Paints neighboring facets whose relative angle is less or equal to set angle." +msgstr "Окрашивает соседние грани, относительный угол которых меньше или равен заданному ниже углу." #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:243 #, boost-format msgid "Allows painting only on facets selected by: \"%1%\"" -msgstr "" +msgstr "Позволяет рисовать на выбранных гранях, используя: \"%1%\"" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:258 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:423 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:155 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:258 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:423 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:155 msgid "Paints all facets inside, regardless of their orientation." -msgstr "Закрашивает все грани внутри, независимо от их ориентации." +msgstr "Окрашивает все грани внутри, независимо от их ориентации." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:267 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:432 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:163 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:267 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:432 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:163 msgid "Ignores facets facing away from the camera." msgstr "Игнорирует грани, обращённые в сторону от камеры." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:276 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:441 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:276 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:441 msgid "Paints only one facet." -msgstr "" +msgstr "Окрашивает только одну грань." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:285 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:290 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:307 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:319 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:450 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:455 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:474 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:486 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:137 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:142 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:285 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:290 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:307 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:319 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:450 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:455 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:474 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:486 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:137 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:142 msgid "Alt + Mouse wheel" msgstr "Alt + Колесо мыши" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:296 msgid "Splits bigger facets into smaller ones while the object is painted." -msgstr "" +msgstr "Во время окрашивания модели, делит большие грани на более мелкие." -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:340 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:348 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:505 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:513 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:182 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:190 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:340 src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:348 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:505 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:513 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:182 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:190 msgid "Ctrl + Mouse wheel" msgstr "Ctrl + Колесо мыши" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:353 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:518 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:195 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:353 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:518 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:195 msgid "Reset selection" msgstr "Сброс выбранного" @@ -2727,13 +2363,11 @@ msgstr "Предпросмотр полости и отверстий в мод msgid "Offset" msgstr "Смещение" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:33 -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:57 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:33 src/slic3r/GUI/Jobs/SLAImportJob.cpp:57 msgid "Quality" msgstr "Качество" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:34 -#: src/libslic3r/PrintConfig.cpp:3753 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:34 src/libslic3r/PrintConfig.cpp:3753 msgid "Closing distance" msgstr "Расстояние смыкания полости" @@ -2783,60 +2417,51 @@ msgstr "Перемещение отверстия" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:27 #, boost-format -msgid "" -"Your printer has more extruders than the multi-material painting gizmo " -"supports. For this reason, only the first %1% extruders will be able to be " -"used for painting." -msgstr "" +msgid "Your printer has more extruders than the multi-material painting gizmo supports. For this reason, only the first %1% extruders will be able to be used for painting." +msgstr "Ваш принтер имеет больше экструдеров, чем поддерживается мультиматериальной покраской. По этой причине только первые %1% экструдера могут быть использованы для покраски." -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:45 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:51 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:45 src/slic3r/GUI/ObjectDataViewModel.cpp:51 msgid "Multimaterial painting" -msgstr "" +msgstr "Мультиматериальная покраска" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:116 msgid "First color" -msgstr "" +msgstr "Первый цвет" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:118 msgid "Second color" -msgstr "" +msgstr "Второй цвет" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:120 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:701 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:120 src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:701 msgid "Remove painted color" -msgstr "" +msgstr "Удаление окрашенного участка" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:121 msgid "Clear all" -msgstr "" +msgstr "Очистить всё" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:129 msgid "Bucket fill" -msgstr "" +msgstr "Заливка" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:408 msgid "Paints neighboring facets that have the same color." -msgstr "" +msgstr "Окрашивает соседние грани, имеющие одинаковый цвет." #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:461 msgid "Split bigger facets into smaller ones while the object is painted." -msgstr "" +msgstr "Во время окрашивания модели делит большие грани на более мелкие." #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:704 #, boost-format msgid "Painted using: Extruder %1%" -msgstr "" +msgstr "Окрашено с помощью экструдера %1%" #: src/slic3r/GUI/Gizmos/GLGizmoMove.cpp:55 msgid "Move" msgstr "Перемещение" -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:466 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:543 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:562 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:578 -#: src/libslic3r/PrintConfig.cpp:4374 +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:466 src/slic3r/GUI/GUI_ObjectManipulation.cpp:543 src/slic3r/GUI/GUI_ObjectManipulation.cpp:562 src/slic3r/GUI/GUI_ObjectManipulation.cpp:578 src/libslic3r/PrintConfig.cpp:4374 msgid "Rotate" msgstr "Поворот" @@ -2844,26 +2469,19 @@ msgstr "Поворот" msgid "Optimize orientation" msgstr "Оптимизация положения модели" -#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:552 -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:319 +#: src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp:552 src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:319 msgid "Apply" -msgstr "" +msgstr "Применить" -#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:79 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:216 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:563 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:579 -#: src/libslic3r/PrintConfig.cpp:4389 +#: src/slic3r/GUI/Gizmos/GLGizmoScale.cpp:79 src/slic3r/GUI/GUI_ObjectManipulation.cpp:216 src/slic3r/GUI/GUI_ObjectManipulation.cpp:563 src/slic3r/GUI/GUI_ObjectManipulation.cpp:579 src/libslic3r/PrintConfig.cpp:4389 msgid "Scale" msgstr "Масштаб" -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:36 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:273 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:36 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:273 msgid "Enforce seam" msgstr "Принудительный шов" -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:38 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:275 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:38 src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:275 msgid "Block seam" msgstr "Блокировка шва" @@ -2873,88 +2491,83 @@ msgstr "Рисование шва" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:67 msgid "Mesh name" -msgstr "" +msgstr "Имя сетки" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:69 msgid "Detail level" -msgstr "" +msgstr "Уровень детализации" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:70 msgid "Decimate ratio" -msgstr "" +msgstr "Коэффициент упрощения" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:113 #, boost-format -msgid "" -"Processing model '%1%' with more than 1M triangles could be slow. It is " -"highly recommend to reduce amount of triangles." -msgstr "" +msgid "Processing model '%1%' with more than 1M triangles could be slow. It is highly recommend to reduce amount of triangles." +msgstr "Обработка модели '%1%' с более чем 1 млн треугольников может быть медленной. Настоятельно рекомендуется уменьшить количество треугольников." -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:116 -#: src/slic3r/GUI/GUI_Factories.cpp:705 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:116 src/slic3r/GUI/GUI_Factories.cpp:705 msgid "Simplify model" -msgstr "" +msgstr "Упростить полигональную сетку" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:143 msgid "Simplify" -msgstr "" +msgstr "Упрощение полигональной сетки" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:156 msgid "Simplification is currently only allowed when a single part is selected" -msgstr "" +msgstr "В настоящее время упрощение работает только при выборе одной модели" -#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:157 -#: src/slic3r/GUI/MainFrame.cpp:1162 src/slic3r/GUI/MainFrame.cpp:1619 -#: src/slic3r/GUI/PrintHostDialogs.cpp:372 +#: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:157 src/slic3r/GUI/MainFrame.cpp:1162 src/slic3r/GUI/MainFrame.cpp:1619 src/slic3r/GUI/PrintHostDialogs.cpp:372 msgid "Error" msgstr "Ошибка" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:250 msgid "Extra high" -msgstr "" +msgstr "Очень высокий" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:251 msgid "High" -msgstr "" +msgstr "Высокий" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:252 msgid "Medium" -msgstr "" +msgstr "Средний" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:253 msgid "Low" -msgstr "" +msgstr "Низкий" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:254 msgid "Extra low" -msgstr "" +msgstr "Очень низкий" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:304 #, c-format, boost-format msgid "%d triangles" -msgstr "" +msgstr "Треугольников: %d" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:307 msgid "Show wireframe" -msgstr "" +msgstr "Показывать каркас" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:313 msgid "Operation already cancelling. Please wait few seconds." -msgstr "" +msgstr "Операция уже отменена. Пожалуйста, подождите несколько секунд." #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:322 msgid "Can't apply when proccess preview." -msgstr "" +msgstr "Невозможно применить при предпросмотре." #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:329 #, boost-format msgid "Process %1% / 100" -msgstr "" +msgstr "Обработка %1% / 100" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:479 #, boost-format msgid "Simplify %1%" -msgstr "" +msgstr "Упрощение %1%" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:39 msgid "Head diameter" @@ -2964,8 +2577,7 @@ msgstr "Диаметр носика поддержки" msgid "Lock supports under new islands" msgstr "Блокировка поддержки под новые острова" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:41 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1227 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:41 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1227 msgid "Remove selected points" msgstr "Удалить выбранные точки" @@ -2973,13 +2585,11 @@ msgstr "Удалить выбранные точки" msgid "Remove all points" msgstr "Удалить все точки" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:43 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1230 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:43 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1230 msgid "Apply changes" msgstr "Применить изменения" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 msgid "Discard changes" msgstr "Отменить изменения" @@ -2987,13 +2597,11 @@ msgstr "Отменить изменения" msgid "Minimal points distance" msgstr "Мин. расстояние м/у точками" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/libslic3r/PrintConfig.cpp:3583 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 src/libslic3r/PrintConfig.cpp:3583 msgid "Support points density" msgstr "Плотность точек поддержки" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1233 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1233 msgid "Auto-generate points" msgstr "Сгенерировать точки автоматически" @@ -3027,7 +2635,7 @@ msgstr "Сохранить отредактированные вручную т #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:902 msgid "Save support points?" -msgstr "" +msgstr "Сохранить точки поддержки?" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:962 msgid "Move support point" @@ -3051,17 +2659,13 @@ msgstr "Автогенерация точек поддержки" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1190 msgid "SLA gizmo keyboard shortcuts" -msgstr "Горячие клавиши \"Гизмо SLA\"" +msgstr "Горячие клавиши «Гизмо SLA»" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1201 msgid "Note: some shortcuts work in (non)editing mode only." -msgstr "" -"Примечание: некоторые сочетания клавиш работают только в режиме " -"(не)редактирования." +msgstr "Примечание: некоторые сочетания клавиш работают только в режиме (не)редактирования." -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Left click" msgstr "Левая кнопка мыши" @@ -3077,9 +2681,7 @@ msgstr "Правая кнопка мыши" msgid "Remove point" msgstr "Удалить точку" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 msgid "Drag" msgstr "Перетащить мышь" @@ -3124,9 +2726,8 @@ msgid "Switch to editing mode" msgstr "Переключиться в режим редактирования" #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:196 -msgid "" -"ERROR: Please close all manipulators available from the left toolbar first" -msgstr "" +msgid "ERROR: Please close all manipulators available from the left toolbar first" +msgstr "ОШИБКА: Пожалуйста, сначала завершите все манипуляции на левой панели инструментов" #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:561 msgid "Gizmo-Scale" @@ -3137,54 +2738,46 @@ msgid "Gizmo-Place on Face" msgstr "Гизмо поверхностью на стол" #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:1270 -msgid "" -"You are currently editing SLA support points. Please, apply or discard your " -"changes first." -msgstr "" +msgid "You are currently editing SLA support points. Please, apply or discard your changes first." +msgstr "Сейчас вы редактируете точки SLA поддержки. Пожалуйста, сначала примените или отмените ваши изменения." #: src/slic3r/GUI/GUI.cpp:292 msgid "Undefined" -msgstr "" +msgstr "Не распознан" #: src/slic3r/GUI/GUI.cpp:317 #, boost-format msgid "%1% was substituted with %2%" -msgstr "" +msgstr "%1% была заменена на %2%" #: src/slic3r/GUI/GUI.cpp:326 -msgid "" -"Most likely the configuration was produced by a newer version of PrusaSlicer " -"or by some PrusaSlicer fork." -msgstr "" +msgid "Most likely the configuration was produced by a newer version of PrusaSlicer or by some PrusaSlicer fork." +msgstr "Скорее всего, конфигурация была создана более новой версией PrusaSlicer или каким-нибудь форком PrusaSlicer." #: src/slic3r/GUI/GUI.cpp:327 msgid "The following values were substituted:" -msgstr "" +msgstr "Следующие значения были заменены:" #: src/slic3r/GUI/GUI.cpp:328 msgid "Review the substitutions and adjust them if needed." -msgstr "" +msgstr "Просмотрите замену и при необходимости скорректируйте." #: src/slic3r/GUI/GUI.cpp:338 src/slic3r/GUI/Plater.cpp:819 msgid "SLA print settings" -msgstr "Настройки SLA печати" +msgstr "Профиль SLA печати" #: src/slic3r/GUI/GUI.cpp:342 src/slic3r/GUI/PhysicalPrinterDialog.cpp:157 msgid "Physical Printer" msgstr "Физический принтер" #: src/slic3r/GUI/GUI.cpp:355 -msgid "" -"Configuration bundle was loaded, however some configuration values were not " -"recognized." -msgstr "" +msgid "Configuration bundle was loaded, however some configuration values were not recognized." +msgstr "Пакет конфигурации был загружен, однако некоторые значения конфигурации не были распознаны." #: src/slic3r/GUI/GUI.cpp:365 #, boost-format -msgid "" -"Configuration file \"%1%\" was loaded, however some configuration values " -"were not recognized." -msgstr "" +msgid "Configuration file \"%1%\" was loaded, however some configuration values were not recognized." +msgstr "Файл конфигурации \"%1%\" был загружен, однако некоторые значения конфигурации не были распознаны." #: src/slic3r/GUI/GUI_App.cpp:266 msgid "is based on Slic3r by Alessandro Ranellucci and the RepRap community." @@ -3192,15 +2785,11 @@ msgstr "is based on Slic3r by Alessandro Ranellucci and the RepRap community." #: src/slic3r/GUI/GUI_App.cpp:267 msgid "Developed by Prusa Research." -msgstr "" +msgstr "Разработано Prusa Research." #: src/slic3r/GUI/GUI_App.cpp:269 -msgid "" -"Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas " -"Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others." -msgstr "" -"Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas " -"Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others." +msgid "Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others." +msgstr "Contributions by Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas Meszaros, Lukas Matena, Vojtech Kral, David Kocik and numerous others." #: src/slic3r/GUI/GUI_App.cpp:270 msgid "Artwork model by M Boyer" @@ -3209,22 +2798,28 @@ msgstr "" #: src/slic3r/GUI/GUI_App.cpp:411 #, boost-format msgid "" -"Starting with %1% 2.3, configuration directory on Linux has changed " -"(according to XDG Base Directory Specification) to \n" +"Starting with %1% 2.3, configuration directory on Linux has changed (according to XDG Base Directory Specification) to \n" "%2%.\n" "\n" -"This directory did not exist yet (maybe you run the new version for the " -"first time).\n" +"This directory did not exist yet (maybe you run the new version for the first time).\n" "However, an old %1% configuration directory was detected in \n" "%3%.\n" "\n" -"Consider moving the contents of the old directory to the new location in " -"order to access your profiles, etc.\n" -"Note that if you decide to downgrade %1% in future, it will use the old " -"location again.\n" +"Consider moving the contents of the old directory to the new location in order to access your profiles, etc.\n" +"Note that if you decide to downgrade %1% in future, it will use the old location again.\n" "\n" "What do you want to do now?" msgstr "" +"Начиная с версии %1% 2.3, каталог конфигурации в Linux изменился (согласно спецификации XDG Base Directory) на %2%.\n" +"\n" +"Этот каталог ещё не существует (возможно, вы запускаете новую версию в первый раз).\n" +"Однако в %3% был обнаружен старый каталог конфигурации %1%\n" +".\n" +"\n" +"Переместите содержимое старого каталога в новое местоположение, чтобы получить доступ к вашим профилям и т. д.\n" +"Обратите внимание, что если вы в будущем решите понизить версию %1%, она снова будет использовать данные из старого местоположения.\n" +"\n" +"Что вы хотите сейчас сделать?" #: src/slic3r/GUI/GUI_App.cpp:419 #, c-format, boost-format @@ -3242,15 +2837,11 @@ msgstr "Запустить приложение" #: src/slic3r/GUI/GUI_App.cpp:698 #, c-format, boost-format msgid "" -"%s has encountered an error. It was likely caused by running out of memory. " -"If you are sure you have enough RAM on your system, this may also be a bug " -"and we would be glad if you reported it.\n" +"%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n" "\n" "The application will now terminate." msgstr "" -"При работе с %s произошла с ошибкой. Скорее всего, это было вызвано " -"нехваткой памяти. Если вы уверены, что в вашей системе достаточно " -"оперативной памяти и произошла эта ошибка, сообщите нам об этом.\n" +"При работе с %s произошла с ошибкой. Скорее всего, это было вызвано нехваткой памяти. Если вы уверены, что в вашей системе достаточно оперативной памяти и произошла эта ошибка, сообщите нам об этом.\n" "\n" "Приложение будет закрыто." @@ -3260,15 +2851,11 @@ msgstr "Критическая ошибка" #: src/slic3r/GUI/GUI_App.cpp:705 msgid "" -"PrusaSlicer has encountered a localization error. Please report to " -"PrusaSlicer team, what language was active and in which scenario this issue " -"happened. Thank you.\n" +"PrusaSlicer has encountered a localization error. Please report to PrusaSlicer team, what language was active and in which scenario this issue happened. Thank you.\n" "\n" "The application will now terminate." msgstr "" -"PrusaSlicer обнаружил непредвиденную ошибку в локализации приложения. " -"Пожалуйста, сообщите команде PrusaSlicer, какой язык был активен и при каком " -"сценарии произошла эта ошибка.\n" +"PrusaSlicer обнаружил непредвиденную ошибку в локализации приложения. Пожалуйста, сообщите команде PrusaSlicer, какой язык был активен и при каком сценарии произошла эта ошибка.\n" "Теперь приложение будет закрыто." #: src/slic3r/GUI/GUI_App.cpp:708 @@ -3278,31 +2865,22 @@ msgstr "Критическая ошибка" #: src/slic3r/GUI/GUI_App.cpp:713 #, boost-format msgid "Internal error: %1%" -msgstr "" +msgstr "Внутренняя ошибка: %1%" #: src/slic3r/GUI/GUI_App.cpp:901 src/slic3r/GUI/GUI_App.cpp:1001 -msgid "" -"Error parsing PrusaSlicer config file, it is probably corrupted. Try to " -"manually delete the file to recover from the error. Your user profiles will " -"not be affected." +msgid "Error parsing PrusaSlicer config file, it is probably corrupted. Try to manually delete the file to recover from the error. Your user profiles will not be affected." msgstr "" -"Ошибка обработки конфигурационного файла PrusaSlicer. Вероятно, он " -"повреждён. \n" -"Попробуйте вручную удалить файл для восстановления после ошибки. " -"Пользовательские профили не будут затронуты." +"Ошибка обработки конфигурационного файла PrusaSlicer. Вероятно, он повреждён. \n" +"Попробуйте вручную удалить файл для восстановления после ошибки. Пользовательские профили не будут затронуты." #: src/slic3r/GUI/GUI_App.cpp:907 src/slic3r/GUI/GUI_App.cpp:1007 -msgid "" -"Error parsing PrusaGCodeViewer config file, it is probably corrupted. Try to " -"manually delete the file to recover from the error." -msgstr "" -"Ошибка обработки конфигурационного файла PrusaGCodeViewer. Вероятно, он " -"повреждён. Попробуйте вручную удалить файл для восстановления после ошибки." +msgid "Error parsing PrusaGCodeViewer config file, it is probably corrupted. Try to manually delete the file to recover from the error." +msgstr "Ошибка обработки конфигурационного файла PrusaGCodeViewer. Вероятно, он повреждён. Попробуйте вручную удалить файл для восстановления после ошибки." #: src/slic3r/GUI/GUI_App.cpp:953 #, boost-format msgid "You are opening %1% version %2%." -msgstr "" +msgstr "Вы запустили %1% версии %2%." #: src/slic3r/GUI/GUI_App.cpp:956 #, boost-format @@ -3312,9 +2890,13 @@ msgid "" "created by %1% %4%.\n" "\n" "Shall the newer configuration be imported?\n" -"If so, your active configuration will be backed up before importing the new " -"configuration." +"If so, your active configuration will be backed up before importing the new configuration." msgstr "" +"Текущая конфигурация была создана %1% %2%,\n" +"в то время как более новая конфигурация найденная в %3%\n" +"была создана %1% %4%.\n" +"Импортировать более новую конфигурацию?\n" +"Если да, то перед импортом новой конфигурации будет создана резервная копия активной конфигурации." #: src/slic3r/GUI/GUI_App.cpp:964 #, boost-format @@ -3324,24 +2906,30 @@ msgid "" "\n" "Shall this configuration be imported?" msgstr "" +"В %3% обнаружена существующая конфигурация.\n" +"Она была создана %1% %2%.\n" +"\n" +"Следует ли импортировать эту конфигурацию?" #: src/slic3r/GUI/GUI_App.cpp:972 msgid "Import" -msgstr "" +msgstr "Импорт" #: src/slic3r/GUI/GUI_App.cpp:973 msgid "Don't import" -msgstr "" +msgstr "Не импортировать" #: src/slic3r/GUI/GUI_App.cpp:1050 msgid "" "You are running a 32 bit build of PrusaSlicer on 64-bit Windows.\n" -"32 bit build of PrusaSlicer will likely not be able to utilize all the RAM " -"available in the system.\n" -"Please download and install a 64 bit build of PrusaSlicer from https://www." -"prusa3d.cz/prusaslicer/.\n" +"32 bit build of PrusaSlicer will likely not be able to utilize all the RAM available in the system.\n" +"Please download and install a 64 bit build of PrusaSlicer from https://www.prusa3d.cz/prusaslicer/.\n" "Do you wish to continue?" msgstr "" +"Вы используете 32-битную сборку PrusaSlicer на 64-битной Windows.\n" +"32-битная сборка PrusaSlicer, скорее всего, не сможет использовать всю доступную в системе оперативную память.\n" +"Пожалуйста, загрузите и установите 64-битную сборку PrusaSlicer с сайта https://www.prusa3d.cz/prusaslicer/.\n" +"Продолжить?" #: src/slic3r/GUI/GUI_App.cpp:1097 #, c-format, boost-format @@ -3352,9 +2940,7 @@ msgstr "" "%s\n" "Хотите продолжить?" -#: src/slic3r/GUI/GUI_App.cpp:1099 src/slic3r/GUI/GUI_App.cpp:2969 -#: src/slic3r/GUI/OptionsGroup.cpp:985 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:888 +#: src/slic3r/GUI/GUI_App.cpp:1099 src/slic3r/GUI/GUI_App.cpp:2969 src/slic3r/GUI/OptionsGroup.cpp:985 src/slic3r/GUI/UnsavedChangesDialog.cpp:888 msgid "Remember my choice" msgstr "Запомнить мой выбор" @@ -3365,16 +2951,16 @@ msgstr "Загрузка конфигурации" #: src/slic3r/GUI/GUI_App.cpp:1177 #, boost-format msgid "New release version %1% is available." -msgstr "" +msgstr "Доступна новый релиз программы %1%." #: src/slic3r/GUI/GUI_App.cpp:1178 msgid "See Download page." -msgstr "" +msgstr "Смотреть страницы загрузки." #: src/slic3r/GUI/GUI_App.cpp:1192 #, boost-format msgid "New prerelease version %1% is available." -msgstr "" +msgstr "Доступна новая предрелизная версия %1%." #: src/slic3r/GUI/GUI_App.cpp:1193 msgid "See Releases page." @@ -3385,29 +2971,23 @@ msgid "Preparing settings tabs" msgstr "Подготовка вкладок настроек" #: src/slic3r/GUI/GUI_App.cpp:1585 -msgid "" -"You have the following presets with saved options for \"Print Host upload\"" -msgstr "" -"У вас имеются следующие профили с сохраненными параметрами для загрузки на " -"хост печати" +msgid "You have the following presets with saved options for \"Print Host upload\"" +msgstr "У вас имеются следующие профили с сохраненными параметрами для загрузки на хост печати" #: src/slic3r/GUI/GUI_App.cpp:1589 msgid "" -"But since this version of PrusaSlicer we don't show this information in " -"Printer Settings anymore.\n" +"But since this version of PrusaSlicer we don't show this information in Printer Settings anymore.\n" "Settings will be available in physical printers settings." msgstr "" -"Начиная с этой версии PrusaSlicer мы больше не показываем эту информацию в " -"настройках принтера.\n" +"Начиная с этой версии PrusaSlicer мы больше не показываем эту информацию в настройках принтера.\n" "Теперь эти настройки будут доступны в разделе настройки физических принтеров." #: src/slic3r/GUI/GUI_App.cpp:1591 msgid "" -"By default new Printer devices will be named as \"Printer N\" during its " -"creation.\n" +"By default new Printer devices will be named as \"Printer N\" during its creation.\n" "Note: This name can be changed later from the physical printers settings" msgstr "" -"При создании новых принтеров они будут именоваться как \"Принтер N\".\n" +"При создании новых принтеров они будут именоваться как «Принтер N».\n" "Примечание: это имя можно изменить позже в настройках физических принтеров" #: src/slic3r/GUI/GUI_App.cpp:1595 src/slic3r/GUI/PhysicalPrinterDialog.cpp:722 @@ -3477,7 +3057,7 @@ msgstr "Сделать резервную копию конфигурации ( #: src/slic3r/GUI/GUI_App.cpp:2139 msgid "Check for Configuration Updates" -msgstr "" +msgstr "Проверка наличие обновлений конфигурации" #: src/slic3r/GUI/GUI_App.cpp:2139 msgid "Check for configuration updates" @@ -3539,13 +3119,11 @@ msgstr "Загрузить прошивку в принтер на основе #: src/slic3r/GUI/GUI_App.cpp:2191 msgid "Taking a configuration snapshot" -msgstr "" +msgstr "Создание резервной копии конфигурации (снапшот)" #: src/slic3r/GUI/GUI_App.cpp:2192 -msgid "" -"Some presets are modified and the unsaved changes will not be captured by " -"the configuration snapshot." -msgstr "" +msgid "Some presets are modified and the unsaved changes will not be captured by the configuration snapshot." +msgstr "В некоторых профилях имеются изменения. Несохранённые изменения в них не будут записаны в снапшот." #: src/slic3r/GUI/GUI_App.cpp:2193 msgid "Snapshot name" @@ -3553,12 +3131,12 @@ msgstr "Имя снапшота" #: src/slic3r/GUI/GUI_App.cpp:2209 msgid "Loading a configuration snapshot" -msgstr "" +msgstr "Загрузка резервной копии конфигурации (снапшот)" #: src/slic3r/GUI/GUI_App.cpp:2218 #, boost-format msgid "Continue to activate a configuration snapshot %1%?" -msgstr "" +msgstr "Активировать резервную копию конфигурации %1%?" #: src/slic3r/GUI/GUI_App.cpp:2232 msgid "Failed to activate configuration snapshot." @@ -3566,7 +3144,7 @@ msgstr "Сбой активации снапшота." #: src/slic3r/GUI/GUI_App.cpp:2251 msgid "Restart application" -msgstr "" +msgstr "Перезапустить приложение" #: src/slic3r/GUI/GUI_App.cpp:2285 msgid "Language selection" @@ -3591,25 +3169,25 @@ msgstr "&Настройки" #: src/slic3r/GUI/GUI_App.cpp:2434 src/slic3r/GUI/GUI_App.cpp:2495 msgid "The preset modifications are successfully saved" msgid_plural "The presets modifications are successfully saved" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Изменённый профиль успешно сохранён" +msgstr[1] "Изменённые профили успешно сохранёны" +msgstr[2] "Изменённые профили успешно сохранёны" #: src/slic3r/GUI/GUI_App.cpp:2498 msgid "For new project all modifications will be reseted" -msgstr "" +msgstr "Для нового проекта все изменения будут сброшены" #: src/slic3r/GUI/GUI_App.cpp:2536 msgid "Loading a new project while the current project is modified." -msgstr "" +msgstr "Загрузка нового проекта при существующих изменениях в текущем проекте." #: src/slic3r/GUI/GUI_App.cpp:2539 msgid "Project is loading" -msgstr "" +msgstr "Загрузка проекта" #: src/slic3r/GUI/GUI_App.cpp:2539 msgid "Opening new project while some presets are unsaved." -msgstr "" +msgstr "Открытие нового проекта при несохранении некоторых профилей." #: src/slic3r/GUI/GUI_App.cpp:2558 msgid "The uploads are still ongoing" @@ -3627,14 +3205,13 @@ msgstr "Текущие загрузки" msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "По технологии SLA невозможно напечатать составную модель(и)." -#: src/slic3r/GUI/GUI_App.cpp:2769 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 -#: src/slic3r/GUI/Plater.cpp:2404 +#: src/slic3r/GUI/GUI_App.cpp:2769 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 src/slic3r/GUI/Plater.cpp:2404 msgid "Please check your object list before preset changing." msgstr "Пожалуйста, проверьте список моделей перед изменением профиля." #: src/slic3r/GUI/GUI_App.cpp:2793 msgid "Configuration is editing from ConfigWizard" -msgstr "" +msgstr "Редактирование конфигурации с помощью мастера настроек" #: src/slic3r/GUI/GUI_App.cpp:2818 msgid "Select a gcode file:" @@ -3642,11 +3219,11 @@ msgstr "Выбрать файл G-кода:" #: src/slic3r/GUI/GUI_App.cpp:2968 src/slic3r/GUI/OptionsGroup.cpp:984 msgid "Open hyperlink in default browser?" -msgstr "" +msgstr "Открыть гиперссылку в браузере по умолчанию?" #: src/slic3r/GUI/GUI_App.cpp:2968 src/slic3r/GUI/OptionsGroup.cpp:984 msgid "PrusaSlicer: Open hyperlink" -msgstr "PrusaSlicer: открытие гиперссылки" +msgstr "PrusaSlicer: Открытие гиперссылки" #: src/slic3r/GUI/GUI_Init.cpp:57 src/slic3r/GUI/GUI_Init.cpp:60 msgid "PrusaSlicer GUI initialization failed" @@ -3657,43 +3234,21 @@ msgstr "Ошибка инициализации графического инт msgid "Fatal error, exception catched: %1%" msgstr "Критическая ошибка, обнаружено исключение: %1%" -#: src/slic3r/GUI/GUI_Factories.cpp:54 src/slic3r/GUI/GUI_Factories.cpp:127 -#: src/libslic3r/PrintConfig.cpp:264 src/libslic3r/PrintConfig.cpp:381 -#: src/libslic3r/PrintConfig.cpp:424 src/libslic3r/PrintConfig.cpp:433 -#: src/libslic3r/PrintConfig.cpp:685 src/libslic3r/PrintConfig.cpp:752 -#: src/libslic3r/PrintConfig.cpp:760 src/libslic3r/PrintConfig.cpp:1209 -#: src/libslic3r/PrintConfig.cpp:1296 src/libslic3r/PrintConfig.cpp:1515 -#: src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:1974 -#: src/libslic3r/PrintConfig.cpp:2208 src/libslic3r/PrintConfig.cpp:2794 -#: src/libslic3r/PrintConfig.cpp:2802 src/libslic3r/PrintConfig.cpp:2862 +#: src/slic3r/GUI/GUI_Factories.cpp:54 src/slic3r/GUI/GUI_Factories.cpp:127 src/libslic3r/PrintConfig.cpp:264 src/libslic3r/PrintConfig.cpp:381 src/libslic3r/PrintConfig.cpp:424 src/libslic3r/PrintConfig.cpp:433 src/libslic3r/PrintConfig.cpp:685 src/libslic3r/PrintConfig.cpp:752 src/libslic3r/PrintConfig.cpp:760 +#: src/libslic3r/PrintConfig.cpp:1209 src/libslic3r/PrintConfig.cpp:1296 src/libslic3r/PrintConfig.cpp:1515 src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:1974 src/libslic3r/PrintConfig.cpp:2208 src/libslic3r/PrintConfig.cpp:2794 src/libslic3r/PrintConfig.cpp:2802 src/libslic3r/PrintConfig.cpp:2862 #: src/libslic3r/PrintConfig.cpp:2871 msgid "Layers and Perimeters" msgstr "Слои и периметры" -#: src/slic3r/GUI/GUI_Factories.cpp:56 src/slic3r/GUI/GUI_Factories.cpp:131 -#: src/slic3r/GUI/GUI_Preview.cpp:249 src/slic3r/GUI/Tab.cpp:1546 -#: src/slic3r/GUI/Tab.cpp:1548 src/libslic3r/ExtrusionEntity.cpp:328 -#: src/libslic3r/ExtrusionEntity.cpp:360 src/libslic3r/PrintConfig.cpp:647 -#: src/libslic3r/PrintConfig.cpp:2039 src/libslic3r/PrintConfig.cpp:2048 -#: src/libslic3r/PrintConfig.cpp:2057 src/libslic3r/PrintConfig.cpp:2067 -#: src/libslic3r/PrintConfig.cpp:2076 src/libslic3r/PrintConfig.cpp:2498 -#: src/libslic3r/PrintConfig.cpp:2504 src/libslic3r/PrintConfig.cpp:2512 -#: src/libslic3r/PrintConfig.cpp:2525 src/libslic3r/PrintConfig.cpp:2535 -#: src/libslic3r/PrintConfig.cpp:2543 src/libslic3r/PrintConfig.cpp:2561 -#: src/libslic3r/PrintConfig.cpp:2578 src/libslic3r/PrintConfig.cpp:2599 -#: src/libslic3r/PrintConfig.cpp:2612 src/libslic3r/PrintConfig.cpp:2629 -#: src/libslic3r/PrintConfig.cpp:2647 src/libslic3r/PrintConfig.cpp:2662 -#: src/libslic3r/PrintConfig.cpp:2672 src/libslic3r/PrintConfig.cpp:2681 -#: src/libslic3r/PrintConfig.cpp:2692 src/libslic3r/PrintConfig.cpp:2706 -#: src/libslic3r/PrintConfig.cpp:2722 src/libslic3r/PrintConfig.cpp:2730 -#: src/libslic3r/PrintConfig.cpp:2731 src/libslic3r/PrintConfig.cpp:2740 -#: src/libslic3r/PrintConfig.cpp:2754 src/libslic3r/PrintConfig.cpp:2762 +#: src/slic3r/GUI/GUI_Factories.cpp:56 src/slic3r/GUI/GUI_Factories.cpp:131 src/slic3r/GUI/GUI_Preview.cpp:249 src/slic3r/GUI/Tab.cpp:1546 src/slic3r/GUI/Tab.cpp:1548 src/libslic3r/ExtrusionEntity.cpp:328 src/libslic3r/ExtrusionEntity.cpp:360 src/libslic3r/PrintConfig.cpp:647 src/libslic3r/PrintConfig.cpp:2039 +#: src/libslic3r/PrintConfig.cpp:2048 src/libslic3r/PrintConfig.cpp:2057 src/libslic3r/PrintConfig.cpp:2067 src/libslic3r/PrintConfig.cpp:2076 src/libslic3r/PrintConfig.cpp:2498 src/libslic3r/PrintConfig.cpp:2504 src/libslic3r/PrintConfig.cpp:2512 src/libslic3r/PrintConfig.cpp:2525 src/libslic3r/PrintConfig.cpp:2535 +#: src/libslic3r/PrintConfig.cpp:2543 src/libslic3r/PrintConfig.cpp:2561 src/libslic3r/PrintConfig.cpp:2578 src/libslic3r/PrintConfig.cpp:2599 src/libslic3r/PrintConfig.cpp:2612 src/libslic3r/PrintConfig.cpp:2629 src/libslic3r/PrintConfig.cpp:2647 src/libslic3r/PrintConfig.cpp:2662 src/libslic3r/PrintConfig.cpp:2672 +#: src/libslic3r/PrintConfig.cpp:2681 src/libslic3r/PrintConfig.cpp:2692 src/libslic3r/PrintConfig.cpp:2706 src/libslic3r/PrintConfig.cpp:2722 src/libslic3r/PrintConfig.cpp:2730 src/libslic3r/PrintConfig.cpp:2731 src/libslic3r/PrintConfig.cpp:2740 src/libslic3r/PrintConfig.cpp:2754 src/libslic3r/PrintConfig.cpp:2762 #: src/libslic3r/PrintConfig.cpp:2776 msgid "Support material" msgstr "Поддержка" -#: src/slic3r/GUI/GUI_Factories.cpp:59 src/slic3r/GUI/GUI_Factories.cpp:135 -#: src/libslic3r/PrintConfig.cpp:2998 src/libslic3r/PrintConfig.cpp:3006 +#: src/slic3r/GUI/GUI_Factories.cpp:59 src/slic3r/GUI/GUI_Factories.cpp:135 src/libslic3r/PrintConfig.cpp:2998 src/libslic3r/PrintConfig.cpp:3006 msgid "Wipe options" msgstr "Параметры очистки" @@ -3701,96 +3256,50 @@ msgstr "Параметры очистки" msgid "Pad and Support" msgstr "Подложка и Поддержка" -#: src/slic3r/GUI/GUI_Factories.cpp:129 src/slic3r/GUI/GUI_Preview.cpp:245 -#: src/slic3r/GUI/Tab.cpp:1512 src/libslic3r/ExtrusionEntity.cpp:324 -#: src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:1531 -#: src/libslic3r/PrintConfig.cpp:1537 src/libslic3r/PrintConfig.cpp:1551 -#: src/libslic3r/PrintConfig.cpp:1561 src/libslic3r/PrintConfig.cpp:1569 -#: src/libslic3r/PrintConfig.cpp:1571 +#: src/slic3r/GUI/GUI_Factories.cpp:129 src/slic3r/GUI/GUI_Preview.cpp:245 src/slic3r/GUI/Tab.cpp:1512 src/libslic3r/ExtrusionEntity.cpp:324 src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:1531 src/libslic3r/PrintConfig.cpp:1537 src/libslic3r/PrintConfig.cpp:1551 src/libslic3r/PrintConfig.cpp:1561 +#: src/libslic3r/PrintConfig.cpp:1569 src/libslic3r/PrintConfig.cpp:1571 msgid "Ironing" msgstr "Разглаживание" -#: src/slic3r/GUI/GUI_Factories.cpp:130 src/libslic3r/PrintConfig.cpp:1260 -#: src/libslic3r/PrintConfig.cpp:1261 src/libslic3r/PrintConfig.cpp:1276 -#: src/libslic3r/PrintConfig.cpp:1286 +#: src/slic3r/GUI/GUI_Factories.cpp:130 src/libslic3r/PrintConfig.cpp:1260 src/libslic3r/PrintConfig.cpp:1261 src/libslic3r/PrintConfig.cpp:1276 src/libslic3r/PrintConfig.cpp:1286 msgid "Fuzzy Skin" -msgstr "" +msgstr "Нечёткая оболочка" -#: src/slic3r/GUI/GUI_Factories.cpp:132 src/slic3r/GUI/GUI_Preview.cpp:220 -#: src/slic3r/GUI/Tab.cpp:1580 src/libslic3r/PrintConfig.cpp:484 -#: src/libslic3r/PrintConfig.cpp:740 src/libslic3r/PrintConfig.cpp:1303 -#: src/libslic3r/PrintConfig.cpp:1488 src/libslic3r/PrintConfig.cpp:1570 -#: src/libslic3r/PrintConfig.cpp:1964 src/libslic3r/PrintConfig.cpp:2296 -#: src/libslic3r/PrintConfig.cpp:2349 src/libslic3r/PrintConfig.cpp:2847 +#: src/slic3r/GUI/GUI_Factories.cpp:132 src/slic3r/GUI/GUI_Preview.cpp:220 src/slic3r/GUI/Tab.cpp:1580 src/libslic3r/PrintConfig.cpp:484 src/libslic3r/PrintConfig.cpp:740 src/libslic3r/PrintConfig.cpp:1303 src/libslic3r/PrintConfig.cpp:1488 src/libslic3r/PrintConfig.cpp:1570 src/libslic3r/PrintConfig.cpp:1964 +#: src/libslic3r/PrintConfig.cpp:2296 src/libslic3r/PrintConfig.cpp:2349 src/libslic3r/PrintConfig.cpp:2847 msgid "Speed" msgstr "Скорость" -#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1619 -#: src/slic3r/GUI/Tab.cpp:2273 src/libslic3r/PrintConfig.cpp:770 -#: src/libslic3r/PrintConfig.cpp:1441 src/libslic3r/PrintConfig.cpp:1941 -#: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2591 -#: src/libslic3r/PrintConfig.cpp:2619 +#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1619 src/slic3r/GUI/Tab.cpp:2273 src/libslic3r/PrintConfig.cpp:770 src/libslic3r/PrintConfig.cpp:1441 src/libslic3r/PrintConfig.cpp:1941 src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2591 src/libslic3r/PrintConfig.cpp:2619 msgid "Extruders" msgstr "Экструдеры" -#: src/slic3r/GUI/GUI_Factories.cpp:134 src/libslic3r/PrintConfig.cpp:728 -#: src/libslic3r/PrintConfig.cpp:838 src/libslic3r/PrintConfig.cpp:1195 -#: src/libslic3r/PrintConfig.cpp:1449 src/libslic3r/PrintConfig.cpp:1950 -#: src/libslic3r/PrintConfig.cpp:2337 src/libslic3r/PrintConfig.cpp:2600 -#: src/libslic3r/PrintConfig.cpp:2834 +#: src/slic3r/GUI/GUI_Factories.cpp:134 src/libslic3r/PrintConfig.cpp:728 src/libslic3r/PrintConfig.cpp:838 src/libslic3r/PrintConfig.cpp:1195 src/libslic3r/PrintConfig.cpp:1449 src/libslic3r/PrintConfig.cpp:1950 src/libslic3r/PrintConfig.cpp:2337 src/libslic3r/PrintConfig.cpp:2600 src/libslic3r/PrintConfig.cpp:2834 msgid "Extrusion Width" msgstr "Ширина экструзии" -#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1532 -#: src/libslic3r/PrintConfig.cpp:494 src/libslic3r/PrintConfig.cpp:505 -#: src/libslic3r/PrintConfig.cpp:521 +#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1532 src/libslic3r/PrintConfig.cpp:494 src/libslic3r/PrintConfig.cpp:505 src/libslic3r/PrintConfig.cpp:521 msgid "Skirt and brim" msgstr "Юбка и кайма" -#: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1491 -#: src/slic3r/GUI/Tab.cpp:1524 src/slic3r/GUI/Tab.cpp:1641 -#: src/slic3r/GUI/Tab.cpp:1645 src/slic3r/GUI/Tab.cpp:2000 -#: src/slic3r/GUI/Tab.cpp:2367 src/slic3r/GUI/Tab.cpp:4391 -#: src/libslic3r/PrintConfig.cpp:247 src/libslic3r/PrintConfig.cpp:472 -#: src/libslic3r/PrintConfig.cpp:1390 src/libslic3r/PrintConfig.cpp:1477 -#: src/libslic3r/PrintConfig.cpp:1524 src/libslic3r/PrintConfig.cpp:2474 -#: src/libslic3r/PrintConfig.cpp:2484 src/libslic3r/PrintConfig.cpp:3022 -#: src/libslic3r/PrintConfig.cpp:3218 +#: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1491 src/slic3r/GUI/Tab.cpp:1524 src/slic3r/GUI/Tab.cpp:1641 src/slic3r/GUI/Tab.cpp:1645 src/slic3r/GUI/Tab.cpp:2000 src/slic3r/GUI/Tab.cpp:2367 src/slic3r/GUI/Tab.cpp:4391 src/libslic3r/PrintConfig.cpp:247 src/libslic3r/PrintConfig.cpp:472 +#: src/libslic3r/PrintConfig.cpp:1390 src/libslic3r/PrintConfig.cpp:1477 src/libslic3r/PrintConfig.cpp:1524 src/libslic3r/PrintConfig.cpp:2474 src/libslic3r/PrintConfig.cpp:2484 src/libslic3r/PrintConfig.cpp:3022 src/libslic3r/PrintConfig.cpp:3218 msgid "Advanced" msgstr "Дополнительно" -#: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:428 -#: src/slic3r/GUI/Tab.cpp:4325 src/slic3r/GUI/Tab.cpp:4326 -#: src/libslic3r/PrintConfig.cpp:3412 src/libslic3r/PrintConfig.cpp:3419 -#: src/libslic3r/PrintConfig.cpp:3428 src/libslic3r/PrintConfig.cpp:3437 -#: src/libslic3r/PrintConfig.cpp:3447 src/libslic3r/PrintConfig.cpp:3457 -#: src/libslic3r/PrintConfig.cpp:3494 src/libslic3r/PrintConfig.cpp:3501 -#: src/libslic3r/PrintConfig.cpp:3512 src/libslic3r/PrintConfig.cpp:3522 -#: src/libslic3r/PrintConfig.cpp:3531 src/libslic3r/PrintConfig.cpp:3544 -#: src/libslic3r/PrintConfig.cpp:3554 src/libslic3r/PrintConfig.cpp:3563 -#: src/libslic3r/PrintConfig.cpp:3573 src/libslic3r/PrintConfig.cpp:3584 -#: src/libslic3r/PrintConfig.cpp:3592 +#: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:428 src/slic3r/GUI/Tab.cpp:4325 src/slic3r/GUI/Tab.cpp:4326 src/libslic3r/PrintConfig.cpp:3412 src/libslic3r/PrintConfig.cpp:3419 src/libslic3r/PrintConfig.cpp:3428 src/libslic3r/PrintConfig.cpp:3437 src/libslic3r/PrintConfig.cpp:3447 +#: src/libslic3r/PrintConfig.cpp:3457 src/libslic3r/PrintConfig.cpp:3494 src/libslic3r/PrintConfig.cpp:3501 src/libslic3r/PrintConfig.cpp:3512 src/libslic3r/PrintConfig.cpp:3522 src/libslic3r/PrintConfig.cpp:3531 src/libslic3r/PrintConfig.cpp:3544 src/libslic3r/PrintConfig.cpp:3554 src/libslic3r/PrintConfig.cpp:3563 +#: src/libslic3r/PrintConfig.cpp:3573 src/libslic3r/PrintConfig.cpp:3584 src/libslic3r/PrintConfig.cpp:3592 msgid "Supports" msgstr "Поддержка" -#: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:574 -#: src/slic3r/GUI/Tab.cpp:4366 src/slic3r/GUI/Tab.cpp:4367 -#: src/slic3r/GUI/Tab.cpp:4439 src/libslic3r/PrintConfig.cpp:3600 -#: src/libslic3r/PrintConfig.cpp:3607 src/libslic3r/PrintConfig.cpp:3621 -#: src/libslic3r/PrintConfig.cpp:3632 src/libslic3r/PrintConfig.cpp:3642 -#: src/libslic3r/PrintConfig.cpp:3664 src/libslic3r/PrintConfig.cpp:3675 -#: src/libslic3r/PrintConfig.cpp:3682 src/libslic3r/PrintConfig.cpp:3689 -#: src/libslic3r/PrintConfig.cpp:3700 src/libslic3r/PrintConfig.cpp:3709 -#: src/libslic3r/PrintConfig.cpp:3718 +#: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:574 src/slic3r/GUI/Tab.cpp:4366 src/slic3r/GUI/Tab.cpp:4367 src/slic3r/GUI/Tab.cpp:4439 src/libslic3r/PrintConfig.cpp:3600 src/libslic3r/PrintConfig.cpp:3607 src/libslic3r/PrintConfig.cpp:3621 src/libslic3r/PrintConfig.cpp:3632 +#: src/libslic3r/PrintConfig.cpp:3642 src/libslic3r/PrintConfig.cpp:3664 src/libslic3r/PrintConfig.cpp:3675 src/libslic3r/PrintConfig.cpp:3682 src/libslic3r/PrintConfig.cpp:3689 src/libslic3r/PrintConfig.cpp:3700 src/libslic3r/PrintConfig.cpp:3709 src/libslic3r/PrintConfig.cpp:3718 msgid "Pad" msgstr "Подложка" -#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4384 -#: src/slic3r/GUI/Tab.cpp:4385 src/libslic3r/SLA/Hollowing.cpp:72 -#: src/libslic3r/SLA/Hollowing.cpp:84 src/libslic3r/SLA/Hollowing.cpp:91 -#: src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3728 -#: src/libslic3r/PrintConfig.cpp:3735 src/libslic3r/PrintConfig.cpp:3745 -#: src/libslic3r/PrintConfig.cpp:3754 +#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4384 src/slic3r/GUI/Tab.cpp:4385 src/libslic3r/SLA/Hollowing.cpp:72 src/libslic3r/SLA/Hollowing.cpp:84 src/libslic3r/SLA/Hollowing.cpp:91 src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3728 src/libslic3r/PrintConfig.cpp:3735 +#: src/libslic3r/PrintConfig.cpp:3745 src/libslic3r/PrintConfig.cpp:3754 msgid "Hollowing" msgstr "Полость" @@ -3800,7 +3309,7 @@ msgstr "Добавить элемент" #: src/slic3r/GUI/GUI_Factories.cpp:161 msgid "Add negative volume" -msgstr "" +msgstr "Добавить объём для исключения" #: src/slic3r/GUI/GUI_Factories.cpp:162 msgid "Add modifier" @@ -3818,8 +3327,7 @@ msgstr "Принудительная поддержка" msgid "Select showing settings" msgstr "Выбор параметров отображения" -#: src/slic3r/GUI/GUI_Factories.cpp:407 src/slic3r/GUI/GUI_Factories.cpp:412 -#: src/slic3r/GUI/GUI_Factories.cpp:556 src/slic3r/GUI/GUI_Factories.cpp:562 +#: src/slic3r/GUI/GUI_Factories.cpp:407 src/slic3r/GUI/GUI_Factories.cpp:412 src/slic3r/GUI/GUI_Factories.cpp:556 src/slic3r/GUI/GUI_Factories.cpp:562 #, c-format, boost-format msgid "Quick Add Settings (%s)" msgstr "Быстрое добавление настроек (%s)" @@ -3832,8 +3340,7 @@ msgstr "Удалить выбранную модель" msgid "Load" msgstr "Загрузить" -#: src/slic3r/GUI/GUI_Factories.cpp:461 src/slic3r/GUI/GUI_Factories.cpp:501 -#: src/slic3r/GUI/GUI_Factories.cpp:505 +#: src/slic3r/GUI/GUI_Factories.cpp:461 src/slic3r/GUI/GUI_Factories.cpp:501 src/slic3r/GUI/GUI_Factories.cpp:505 msgid "Box" msgstr "Куб" @@ -3847,11 +3354,11 @@ msgstr "Плита" #: src/slic3r/GUI/GUI_Factories.cpp:471 msgid "Gallery" -msgstr "" +msgstr "Библиотека" #: src/slic3r/GUI/GUI_Factories.cpp:488 src/slic3r/GUI/GUI_Factories.cpp:526 msgid "Height range Modifier" -msgstr "Модификатор переменной высоты слоёв" +msgstr "Модификатор диапазона высоты слоёв" #: src/slic3r/GUI/GUI_Factories.cpp:535 msgid "Add settings" @@ -3891,19 +3398,17 @@ msgstr "Перезагрузить выбранные объёмы с диска #: src/slic3r/GUI/GUI_Factories.cpp:733 src/slic3r/GUI/Plater.cpp:3485 msgid "Replace with STL" -msgstr "" +msgstr "Заменить STL" #: src/slic3r/GUI/GUI_Factories.cpp:733 msgid "Replace the selected volume with new STL" -msgstr "" +msgstr "Заменить выбранный объём новым STL файлом" #: src/slic3r/GUI/GUI_Factories.cpp:740 msgid "Set extruder for selected items" msgstr "Задать экструдер для выбранных частей" -#: src/slic3r/GUI/GUI_Factories.cpp:778 src/slic3r/Utils/Repetier.cpp:126 -#: src/slic3r/Utils/Repetier.cpp:209 src/libslic3r/PrintConfig.cpp:612 -#: src/libslic3r/PrintConfig.cpp:2714 +#: src/slic3r/GUI/GUI_Factories.cpp:778 src/slic3r/Utils/Repetier.cpp:126 src/slic3r/Utils/Repetier.cpp:209 src/libslic3r/PrintConfig.cpp:612 src/libslic3r/PrintConfig.cpp:2714 msgid "Default" msgstr "По умолчанию" @@ -3925,14 +3430,13 @@ msgstr "Отменить преобразование размера из анг #: src/slic3r/GUI/GUI_Factories.cpp:842 src/slic3r/GUI/Plater.cpp:5557 msgid "Convert from meters" -msgstr "" +msgstr "Преобразовать размер из метрической системы мер" #: src/slic3r/GUI/GUI_Factories.cpp:843 src/slic3r/GUI/Plater.cpp:5557 msgid "Revert conversion from meters" -msgstr "" +msgstr "Отменить преобразование размера из метрической системы мер" -#: src/slic3r/GUI/GUI_Factories.cpp:864 src/slic3r/GUI/GUI_ObjectList.cpp:2134 -#: src/libslic3r/PrintConfig.cpp:4365 +#: src/slic3r/GUI/GUI_Factories.cpp:864 src/slic3r/GUI/GUI_ObjectList.cpp:2134 src/libslic3r/PrintConfig.cpp:4365 msgid "Merge" msgstr "Объединить" @@ -3990,10 +3494,9 @@ msgstr "На части" #: src/slic3r/GUI/GUI_Factories.cpp:945 src/slic3r/GUI/GUI_Factories.cpp:980 msgid "Split the selected object into individual parts" -msgstr "" +msgstr "Разделить выбранную модель на отдельные части" -#: src/slic3r/GUI/GUI_Factories.cpp:949 src/slic3r/GUI/GUI_Factories.cpp:959 -#: src/slic3r/GUI/GUI_Factories.cpp:980 src/libslic3r/PrintConfig.cpp:4394 +#: src/slic3r/GUI/GUI_Factories.cpp:949 src/slic3r/GUI/GUI_Factories.cpp:959 src/slic3r/GUI/GUI_Factories.cpp:980 src/libslic3r/PrintConfig.cpp:4394 msgid "Split" msgstr "Разделить" @@ -4041,8 +3544,7 @@ msgstr "Удалить диапазон слоёв" msgid "Add layer range" msgstr "Добавить диапазон слоёв" -#: src/slic3r/GUI/GUI_ObjectList.cpp:297 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:139 +#: src/slic3r/GUI/GUI_ObjectList.cpp:297 src/slic3r/GUI/GUI_ObjectManipulation.cpp:139 msgid "Name" msgstr "Файл" @@ -4052,78 +3554,75 @@ msgstr "Правка" #: src/slic3r/GUI/GUI_ObjectList.cpp:400 msgid "No errors detected" -msgstr "" +msgstr "Ошибок не обнаружено" #: src/slic3r/GUI/GUI_ObjectList.cpp:409 #, c-format, boost-format msgid "Auto-repaired %1$d error" msgid_plural "Auto-repaired %1$d errors" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Исправлена %1$d ошибка" +msgstr[1] "Исправлено %1$d ошибки" +msgstr[2] "Исправлено %1$d ошибок" #: src/slic3r/GUI/GUI_ObjectList.cpp:415 #, c-format, boost-format msgid "%1$d degenerate facet" msgid_plural "%1$d degenerate facets" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d вырожденная грань" +msgstr[1] "%1$d вырожденных граней" +msgstr[2] "%1$d вырожденных граней" #: src/slic3r/GUI/GUI_ObjectList.cpp:417 #, c-format, boost-format msgid "%1$d edge fixed" msgid_plural "%1$d edges fixed" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d ребро починено" +msgstr[1] "%1$d ребра починено" +msgstr[2] "%1$d рёбер починено" #: src/slic3r/GUI/GUI_ObjectList.cpp:419 #, c-format, boost-format msgid "%1$d facet removed" msgid_plural "%1$d facets removed" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d грань удалена" +msgstr[1] "%1$d грани удалено" +msgstr[2] "%1$d граней удалено" #: src/slic3r/GUI/GUI_ObjectList.cpp:421 #, c-format, boost-format msgid "%1$d facet reversed" msgid_plural "%1$d facets reversed" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d грань реверсирована" +msgstr[1] "%1$d грани реверсировано" +msgstr[2] "%1$d граней реверсировано" #: src/slic3r/GUI/GUI_ObjectList.cpp:423 #, c-format, boost-format msgid "%1$d backward edge" msgid_plural "%1$d backward edges" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d вывернутое рёберо" +msgstr[1] "%1$d вывернутых рёбер" +msgstr[2] "%1$d вывернутых рёбер" #: src/slic3r/GUI/GUI_ObjectList.cpp:426 src/slic3r/GUI/GUI_ObjectList.cpp:429 #, c-format, boost-format msgid "%1$d open edge" msgid_plural "%1$d open edges" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d открытое ребро" +msgstr[1] "%1$d открытых ребра" +msgstr[2] "%1$d открытых рёбер" #: src/slic3r/GUI/GUI_ObjectList.cpp:428 msgid "Remaining errors" -msgstr "" +msgstr "Осталось ошибок" #: src/slic3r/GUI/GUI_ObjectList.cpp:436 msgid "Right button click the icon to fix STL through Netfabb" -msgstr "" -"Щёлкните правой кнопкой мыши на восклицательный знак, чтобы исправить STL с " -"помощью сервиса Netfabb." +msgstr "Щёлкните правой кнопкой мыши на восклицательный знак, чтобы исправить STL с помощью сервиса Netfabb." #: src/slic3r/GUI/GUI_ObjectList.cpp:482 msgid "Right button click the icon to change the object settings" -msgstr "" -"Щёлкните правой кнопкой мыши на значок, чтобы изменить настройки модели." +msgstr "Щёлкните правой кнопкой мыши на значок, чтобы изменить настройки модели." #: src/slic3r/GUI/GUI_ObjectList.cpp:484 msgid "Click the icon to change the object settings" @@ -4131,14 +3630,11 @@ msgstr "Щёлкните кнопкой мыши на значок, чтобы #: src/slic3r/GUI/GUI_ObjectList.cpp:488 msgid "Right button click the icon to change the object printable property" -msgstr "" -"Щёлкните правой кнопкой мыши на значок, чтобы разрешить\\запретить печать " -"модели." +msgstr "Щёлкните правой кнопкой мыши на значок, чтобы разрешить/запретить печать модели." #: src/slic3r/GUI/GUI_ObjectList.cpp:490 msgid "Click the icon to change the object printable property" -msgstr "" -"Щёлкните кнопкой мыши на значок, чтобы разрешить\\запретить печать модели." +msgstr "Щёлкните кнопкой мыши на значок, чтобы разрешить/запретить печать модели." #: src/slic3r/GUI/GUI_ObjectList.cpp:616 msgid "Change Extruder" @@ -4152,8 +3648,7 @@ msgstr "Переименование модели" msgid "Rename Sub-object" msgstr "Переименование подобъекта" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1242 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3998 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1242 src/slic3r/GUI/GUI_ObjectList.cpp:3998 msgid "Instances to Separated Objects" msgstr "Копия как отдельная модель" @@ -4179,7 +3674,7 @@ msgstr "Добавление параметров для модели" #: src/slic3r/GUI/GUI_ObjectList.cpp:1339 msgid "Add Settings Bundle for Height range" -msgstr "Добавление набора настроек для переменной высоты слоёв" +msgstr "Добавление набора настроек для диапазона высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:1340 msgid "Add Settings Bundle for Sub-object" @@ -4195,7 +3690,7 @@ msgstr "Загрузка элемента" #: src/slic3r/GUI/GUI_ObjectList.cpp:1412 msgid "Load Modifier" -msgstr "" +msgstr "Загрузить модификатор" #: src/slic3r/GUI/GUI_ObjectList.cpp:1510 src/slic3r/GUI/Plater.cpp:2356 msgid "Loading" @@ -4219,31 +3714,31 @@ msgstr "Сгенерирован" #: src/slic3r/GUI/GUI_ObjectList.cpp:1728 msgid "Add Shape from Gallery" -msgstr "" +msgstr "Добавление фигуры из библиотеки" #: src/slic3r/GUI/GUI_ObjectList.cpp:1728 msgid "Add Shapes from Gallery" -msgstr "" +msgstr "Добавление фигур из библиотеки" #: src/slic3r/GUI/GUI_ObjectList.cpp:1831 msgid "Remove paint-on supports" -msgstr "" +msgstr "Удаление нарисованных поддержек" #: src/slic3r/GUI/GUI_ObjectList.cpp:1838 msgid "Remove paint-on seam" -msgstr "" +msgstr "Удаление нарисованных швов" #: src/slic3r/GUI/GUI_ObjectList.cpp:1845 msgid "Remove Multi Material painting" -msgstr "" +msgstr "Удаление мультиматериальной покраски" #: src/slic3r/GUI/GUI_ObjectList.cpp:1851 msgid "Shift objects to bed" -msgstr "" +msgstr "Перемещение модели на столе" #: src/slic3r/GUI/GUI_ObjectList.cpp:1857 msgid "Remove variable layer height" -msgstr "" +msgstr "Удаление переменной высоты слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:1878 msgid "Delete Settings" @@ -4255,13 +3750,11 @@ msgstr "Удаление всех копий из модели" #: src/slic3r/GUI/GUI_ObjectList.cpp:1918 msgid "Delete Height Range" -msgstr "Удаление переменной высоты слоёв" +msgstr "Удаление диапазона высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:1950 msgid "From Object List You can't delete the last solid part from object." -msgstr "" -"Вы не можете удалить из списка моделей последний твердотельный элемент " -"модели." +msgstr "Вы не можете удалить из списка моделей последний твердотельный элемент модели." #: src/slic3r/GUI/GUI_ObjectList.cpp:1954 msgid "Delete Subobject" @@ -4276,10 +3769,8 @@ msgid "Delete Instance" msgstr "Удаление копии" #: src/slic3r/GUI/GUI_ObjectList.cpp:2005 -msgid "" -"The selected object couldn't be split because it contains only one part." -msgstr "" -"Выбранная модель не может быть разделена, так как она состоит из одной части." +msgid "The selected object couldn't be split because it contains only one part." +msgstr "Выбранная модель не может быть разделена, так как она состоит из одной части." #: src/slic3r/GUI/GUI_ObjectList.cpp:2009 msgid "Split to Parts" @@ -4327,11 +3818,11 @@ msgstr "Манипуляция с копиями" #: src/slic3r/GUI/GUI_ObjectList.cpp:2506 msgid "Height ranges" -msgstr "Переменная высота слоёв" +msgstr "Диапазон высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:2506 msgid "Settings for height range" -msgstr "Настройки для переменной высоты слоёв" +msgstr "Настройки для диапазона высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:2742 msgid "Delete Selected Item" @@ -4341,11 +3832,9 @@ msgstr "Удаление выбранных частей" msgid "Delete Selected" msgstr "Удаление выбранного" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3011 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3039 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3059 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3011 src/slic3r/GUI/GUI_ObjectList.cpp:3039 src/slic3r/GUI/GUI_ObjectList.cpp:3059 msgid "Add Height Range" -msgstr "Добавить переменную высоту слоёв" +msgstr "Добавить диапазон высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:3105 msgid "" @@ -4360,8 +3849,7 @@ msgstr "" #: src/slic3r/GUI/GUI_ObjectList.cpp:3109 msgid "" -"Cannot insert a new layer range between the current and the next layer " -"range.\n" +"Cannot insert a new layer range between the current and the next layer range.\n" "The gap between the current layer range and the next layer range\n" "is thinner than the minimum layer height allowed." msgstr "" @@ -4381,7 +3869,7 @@ msgstr "" #: src/slic3r/GUI/GUI_ObjectList.cpp:3173 msgid "Edit Height Range" -msgstr "Редактирование переменной высоты слоёв" +msgstr "Редактирование диапазона высот слоёв" #: src/slic3r/GUI/GUI_ObjectList.cpp:3492 msgid "Selection-Remove from list" @@ -4395,10 +3883,9 @@ msgstr "Выбор\\Добавление из списка" msgid "Object or Instance" msgstr "Модель или копия" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3642 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3781 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3642 src/slic3r/GUI/GUI_ObjectList.cpp:3781 msgid "Part" -msgstr "элемент" +msgstr "Элемент" #: src/slic3r/GUI/GUI_ObjectList.cpp:3642 msgid "Layer" @@ -4422,8 +3909,7 @@ msgstr "В этом режиме можно выбирать только сущ msgid "of a current Object" msgstr "текущей модели" -#: src/slic3r/GUI/GUI_ObjectList.cpp:3654 -#: src/slic3r/GUI/GUI_ObjectList.cpp:3729 src/slic3r/GUI/Plater.cpp:181 +#: src/slic3r/GUI/GUI_ObjectList.cpp:3654 src/slic3r/GUI/GUI_ObjectList.cpp:3729 src/slic3r/GUI/Plater.cpp:181 msgid "Info" msgstr "Информация" @@ -4433,7 +3919,7 @@ msgstr "Вы не можете изменить тип последнего тв #: src/slic3r/GUI/GUI_ObjectList.cpp:3781 msgid "Negative Volume" -msgstr "" +msgstr "Объём для исключения" #: src/slic3r/GUI/GUI_ObjectList.cpp:3781 msgid "Modifier" @@ -4465,7 +3951,7 @@ msgstr "Переименование" #: src/slic3r/GUI/GUI_ObjectList.cpp:4083 msgid "Repairing model" -msgstr "" +msgstr "Ремонт модели" #: src/slic3r/GUI/GUI_ObjectList.cpp:4112 msgid "Fix through NetFabb" @@ -4473,25 +3959,25 @@ msgstr "Ремонт модели службой Netfabb" #: src/slic3r/GUI/GUI_ObjectList.cpp:4115 msgid "Fixing through NetFabb" -msgstr "" +msgstr "Ремонт модели службой Netfabb" #: src/slic3r/GUI/GUI_ObjectList.cpp:4145 msgid "The following model was repaired successfully" msgid_plural "The following models were repaired successfully" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Следующая модель успешно отремонтирована" +msgstr[1] "Следующие модели успешно отремонтированы" +msgstr[2] "Следующие модели успешно отремонтированы" #: src/slic3r/GUI/GUI_ObjectList.cpp:4151 msgid "Folowing model repair failed" msgid_plural "Folowing models repair failed" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Не удалось починить модель" +msgstr[1] "Не удалось починить модели" +msgstr[2] "Не удалось починить модели" #: src/slic3r/GUI/GUI_ObjectList.cpp:4156 msgid "Repairing was canceled" -msgstr "" +msgstr "Ремонт был отменён" #: src/slic3r/GUI/GUI_ObjectList.cpp:4268 msgid "Change Extruders" @@ -4499,19 +3985,19 @@ msgstr "Смена экструдеров" #: src/slic3r/GUI/GUI_ObjectList.cpp:4408 msgid "Set Printable group" -msgstr "" +msgstr "Задать «Для печати»" #: src/slic3r/GUI/GUI_ObjectList.cpp:4408 msgid "Set Unprintable group" -msgstr "" +msgstr "Задать «Не для печати»" #: src/slic3r/GUI/GUI_ObjectList.cpp:4410 msgid "Set Printable" -msgstr "Задать \"Для печати\"" +msgstr "Задать «Для печати»" #: src/slic3r/GUI/GUI_ObjectList.cpp:4410 msgid "Set Unprintable" -msgstr "Задать \"Не для печати\"" +msgstr "Задать «Не для печати»" #: src/slic3r/GUI/GUI_ObjectList.cpp:4411 msgid "Set Printable Instance" @@ -4521,35 +4007,27 @@ msgstr "Копия для печати" msgid "Set Unprintable Instance" msgstr "Копия не для печати" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:55 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:55 src/slic3r/GUI/GUI_ObjectManipulation.cpp:84 msgid "World coordinates" msgstr "Мировая СК" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:56 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:85 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:56 src/slic3r/GUI/GUI_ObjectManipulation.cpp:85 msgid "Local coordinates" msgstr "Локальная СК" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:60 msgid "Select coordinate space, in which the transformation will be performed." -msgstr "" -"Выберите координатное пространство, в котором будет выполняться " -"преобразование." +msgstr "Выберите координатное пространство, в котором будет выполняться преобразование." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:141 src/libslic3r/GCode.cpp:540 msgid "Object name" msgstr "Имя модели" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:521 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:201 src/slic3r/GUI/GUI_ObjectManipulation.cpp:521 msgid "Position" msgstr "Позиция" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:202 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:522 -#: src/slic3r/GUI/Mouse3DController.cpp:478 -#: src/slic3r/GUI/Mouse3DController.cpp:499 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:202 src/slic3r/GUI/GUI_ObjectManipulation.cpp:522 src/slic3r/GUI/Mouse3DController.cpp:478 src/slic3r/GUI/Mouse3DController.cpp:499 msgid "Rotation" msgstr "Вращение" @@ -4562,9 +4040,7 @@ msgstr "Отразить вдоль оси %c" msgid "Set Mirror" msgstr "Задание отражения" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:324 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:336 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:348 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:324 src/slic3r/GUI/GUI_ObjectManipulation.cpp:336 src/slic3r/GUI/GUI_ObjectManipulation.cpp:348 msgid "Drop to bed" msgstr "Положить на стол" @@ -4576,8 +4052,7 @@ msgstr "Сброс вращения" msgid "Reset Rotation" msgstr "Сброс вращения" -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:398 -#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:400 +#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:398 src/slic3r/GUI/GUI_ObjectManipulation.cpp:400 msgid "Reset scale" msgstr "Сброс масштаба" @@ -4594,11 +4069,8 @@ msgid "Translate" msgstr "Перемещение" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640 -msgid "" -"You cannot use non-uniform scaling mode for multiple objects/parts selection" -msgstr "" -"Нельзя использовать режим неравномерного масштабирования, когда выбрано " -"несколько моделей/частей." +msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection" +msgstr "Нельзя использовать режим неравномерного масштабирования, когда выбрано несколько моделей/частей." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:820 msgid "Set Position" @@ -4614,16 +4086,13 @@ msgstr "Задание масштаба" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:980 msgid "" -"The currently manipulated object is tilted (rotation angles are not " -"multiples of 90°).\n" -"Non-uniform scaling of tilted objects is only possible in the World " -"coordinate system,\n" +"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n" +"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n" "once the rotation is embedded into the object coordinates." msgstr "" "Модель, с которой вы работаете, наклонена (углы поворота не кратен 90 °).\n" "Неравномерное масштабирование наклонных объектов возможно только в мировой \n" -"системе координат, когда информация о вращении записывается в координаты " -"модели." +"системе координат, когда информация о вращении записывается в координаты модели." #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:983 msgid "" @@ -4683,75 +4152,62 @@ msgstr "Отображать" msgid "Feature types" msgstr "Типы линий" -#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/ExtrusionEntity.cpp:318 -#: src/libslic3r/ExtrusionEntity.cpp:340 +#: src/slic3r/GUI/GUI_Preview.cpp:239 src/libslic3r/ExtrusionEntity.cpp:318 src/libslic3r/ExtrusionEntity.cpp:340 msgid "Perimeter" msgstr "Внутренний периметр" -#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/ExtrusionEntity.cpp:319 -#: src/libslic3r/ExtrusionEntity.cpp:342 +#: src/slic3r/GUI/GUI_Preview.cpp:240 src/libslic3r/ExtrusionEntity.cpp:319 src/libslic3r/ExtrusionEntity.cpp:342 msgid "External perimeter" msgstr "Внешний периметр" -#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/ExtrusionEntity.cpp:320 -#: src/libslic3r/ExtrusionEntity.cpp:344 +#: src/slic3r/GUI/GUI_Preview.cpp:241 src/libslic3r/ExtrusionEntity.cpp:320 src/libslic3r/ExtrusionEntity.cpp:344 msgid "Overhang perimeter" msgstr "Нависающий периметр" -#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/ExtrusionEntity.cpp:321 -#: src/libslic3r/ExtrusionEntity.cpp:346 +#: src/slic3r/GUI/GUI_Preview.cpp:242 src/libslic3r/ExtrusionEntity.cpp:321 src/libslic3r/ExtrusionEntity.cpp:346 msgid "Internal infill" msgstr "Заполнение" -#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/ExtrusionEntity.cpp:322 -#: src/libslic3r/ExtrusionEntity.cpp:348 src/libslic3r/PrintConfig.cpp:2336 -#: src/libslic3r/PrintConfig.cpp:2348 +#: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/ExtrusionEntity.cpp:322 src/libslic3r/ExtrusionEntity.cpp:348 src/libslic3r/PrintConfig.cpp:2336 src/libslic3r/PrintConfig.cpp:2348 msgid "Solid infill" msgstr "Сплошное заполнение" -#: src/slic3r/GUI/GUI_Preview.cpp:244 src/libslic3r/ExtrusionEntity.cpp:323 -#: src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:2833 -#: src/libslic3r/PrintConfig.cpp:2846 +#: src/slic3r/GUI/GUI_Preview.cpp:244 src/libslic3r/ExtrusionEntity.cpp:323 src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:2833 src/libslic3r/PrintConfig.cpp:2846 msgid "Top solid infill" msgstr "Верхний сплошной слой" -#: src/slic3r/GUI/GUI_Preview.cpp:246 src/libslic3r/ExtrusionEntity.cpp:325 -#: src/libslic3r/ExtrusionEntity.cpp:354 +#: src/slic3r/GUI/GUI_Preview.cpp:246 src/libslic3r/ExtrusionEntity.cpp:325 src/libslic3r/ExtrusionEntity.cpp:354 msgid "Bridge infill" msgstr "Мосты" -#: src/slic3r/GUI/GUI_Preview.cpp:247 src/libslic3r/ExtrusionEntity.cpp:326 -#: src/libslic3r/ExtrusionEntity.cpp:356 src/libslic3r/PrintConfig.cpp:1302 +#: src/slic3r/GUI/GUI_Preview.cpp:247 src/libslic3r/ExtrusionEntity.cpp:326 src/libslic3r/ExtrusionEntity.cpp:356 src/libslic3r/PrintConfig.cpp:1302 msgid "Gap fill" msgstr "Заполнение пробелов" -#: src/slic3r/GUI/GUI_Preview.cpp:248 src/libslic3r/ExtrusionEntity.cpp:327 -#: src/libslic3r/ExtrusionEntity.cpp:358 +#: src/slic3r/GUI/GUI_Preview.cpp:248 src/libslic3r/ExtrusionEntity.cpp:327 src/libslic3r/ExtrusionEntity.cpp:358 msgid "Skirt/Brim" -msgstr "" +msgstr "Юбка/Кайма" -#: src/slic3r/GUI/GUI_Preview.cpp:250 src/libslic3r/ExtrusionEntity.cpp:329 -#: src/libslic3r/ExtrusionEntity.cpp:362 src/libslic3r/PrintConfig.cpp:2680 +#: src/slic3r/GUI/GUI_Preview.cpp:250 src/libslic3r/ExtrusionEntity.cpp:329 src/libslic3r/ExtrusionEntity.cpp:362 src/libslic3r/PrintConfig.cpp:2680 msgid "Support material interface" msgstr "Связующий слой поддержки" -#: src/slic3r/GUI/GUI_Preview.cpp:251 src/slic3r/GUI/Tab.cpp:1630 -#: src/libslic3r/ExtrusionEntity.cpp:330 src/libslic3r/ExtrusionEntity.cpp:364 +#: src/slic3r/GUI/GUI_Preview.cpp:251 src/slic3r/GUI/Tab.cpp:1630 src/libslic3r/ExtrusionEntity.cpp:330 src/libslic3r/ExtrusionEntity.cpp:364 msgid "Wipe tower" msgstr "Черновая башня" #: src/slic3r/GUI/GUI_Preview.cpp:728 msgid "NOTE:" -msgstr "" +msgstr "Примечание:" #: src/slic3r/GUI/GUI_Preview.cpp:729 #, boost-format msgid "Sliced object \"%1%\" looks like a logo or a sign" -msgstr "" +msgstr "Нарезанная модель \"%1%\" похожа на логотип или знак." #: src/slic3r/GUI/GUI_Preview.cpp:730 msgid "Apply color change automatically" -msgstr "" +msgstr "Автоматически применять изменение цвета" #: src/slic3r/GUI/GUI_Preview.cpp:1057 msgid "Shells" @@ -4765,24 +4221,21 @@ msgstr "Маркер инструмента" msgid "Legend/Estimated printing time" msgstr "Условные обозначения/Расчётное время печати" -#: src/slic3r/GUI/HintNotification.cpp:767 -#: src/slic3r/GUI/HintNotification.cpp:793 -#: src/slic3r/GUI/NotificationManager.cpp:374 -#: src/slic3r/GUI/NotificationManager.cpp:391 +#: src/slic3r/GUI/HintNotification.cpp:767 src/slic3r/GUI/HintNotification.cpp:793 src/slic3r/GUI/NotificationManager.cpp:374 src/slic3r/GUI/NotificationManager.cpp:391 msgid "More" msgstr "Подробнее" #: src/slic3r/GUI/HintNotification.cpp:908 msgid "Open Preferences." -msgstr "" +msgstr "Открыть настройки приложения." #: src/slic3r/GUI/HintNotification.cpp:1000 msgid "Open Documentation in web browser." -msgstr "" +msgstr "Открыть документацию в браузере." #: src/slic3r/GUI/ImGuiWrapper.cpp:532 msgid "Edit" -msgstr "" +msgstr "Изменить" #: src/slic3r/GUI/ImGuiWrapper.cpp:985 src/slic3r/GUI/Search.cpp:479 msgid "Use for search" @@ -4798,9 +4251,7 @@ msgstr "Искать на английском языке" #: src/slic3r/GUI/Jobs/ArrangeJob.cpp:171 msgid "Could not arrange model objects! Some geometries may be invalid." -msgstr "" -"Не удалось расставить части модели! Некоторые геометрии могут быть " -"недопустимыми." +msgstr "Не удалось расставить части модели! Некоторые геометрии могут быть недопустимыми." #: src/slic3r/GUI/Jobs/ArrangeJob.cpp:180 msgid "Arranging" @@ -4817,22 +4268,23 @@ msgstr "Расстановка выполнена." #: src/slic3r/GUI/Jobs/ArrangeJob.cpp:250 #, c-format, boost-format msgid "" -"Arrangement ignored the following objects which can't fit into a single " -"bed:\n" +"Arrangement ignored the following objects which can't fit into a single bed:\n" "%s" msgstr "" +"При расстановке были проигнорированы следующие модели, которые не помещаются на одном столе:\n" +"%s" #: src/slic3r/GUI/Jobs/FillBedJob.cpp:123 msgid "Filling bed" -msgstr "" +msgstr "Заполнение стола" #: src/slic3r/GUI/Jobs/FillBedJob.cpp:134 msgid "Bed filling canceled." -msgstr "" +msgstr "Заполнение стола отменено." #: src/slic3r/GUI/Jobs/FillBedJob.cpp:135 msgid "Bed filling done." -msgstr "" +msgstr "Заполнение стола закончено." #: src/slic3r/GUI/Jobs/Job.cpp:111 msgid "ERROR: not enough resources to execute a new job." @@ -4840,7 +4292,7 @@ msgstr "ОШИБКА: недостаточно ресурсов для выпо #: src/slic3r/GUI/Jobs/PlaterJob.cpp:13 msgid "An unexpected error occured" -msgstr "" +msgstr "Произошла непредвиденная ошибка:" #: src/slic3r/GUI/Jobs/RotoptimizeJob.cpp:59 msgid "Searching for optimal orientation" @@ -4891,10 +4343,8 @@ msgid "Importing SLA archive" msgstr "Импорт SLA архива" #: src/slic3r/GUI/Jobs/SLAImportJob.cpp:158 -msgid "" -"The SLA archive doesn't contain any presets. Please activate some SLA " -"printer preset first before importing that SLA archive." -msgstr "" +msgid "The SLA archive doesn't contain any presets. Please activate some SLA printer preset first before importing that SLA archive." +msgstr "Архив SLA не содержит никаких профилей. Пожалуйста, сначала активируйте какой-нибудь профиль SLA принтера , прежде чем импортировать этот SLA архив." #: src/slic3r/GUI/Jobs/SLAImportJob.cpp:164 msgid "Importing canceled." @@ -4905,10 +4355,8 @@ msgid "Importing done." msgstr "Импорт завершён." #: src/slic3r/GUI/Jobs/SLAImportJob.cpp:210 -msgid "" -"The imported SLA archive did not contain any presets. The current SLA " -"presets were used as fallback." -msgstr "" +msgid "The imported SLA archive did not contain any presets. The current SLA presets were used as fallback." +msgstr "Импортированный SLA архив не содержит никаких профилей. Текущие SLA профили использовались в качестве резервных." #: src/slic3r/GUI/Jobs/SLAImportJob.cpp:223 src/slic3r/GUI/Plater.cpp:2403 msgid "You cannot load SLA project with a multi-part object on the bed" @@ -4954,8 +4402,7 @@ msgstr "Загрузить конфигурацию из ini/amf/3mf/g-кода" msgid "Load Config from ini/amf/3mf/gcode and merge" msgstr "Загрузить конфигурацию из ini/amf/3mf/g-кода и объединить" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:912 -#: src/slic3r/GUI/Plater.cpp:6453 src/libslic3r/PrintConfig.cpp:4265 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:912 src/slic3r/GUI/Plater.cpp:6453 src/libslic3r/PrintConfig.cpp:4265 msgid "Export G-code" msgstr "Экспорт в G-код" @@ -4995,9 +4442,7 @@ msgstr "Копировать в буфер" msgid "Paste from clipboard" msgstr "Вставить из буфера обмена" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:102 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:104 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:209 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:102 src/slic3r/GUI/KBShortcutsDialog.cpp:104 src/slic3r/GUI/KBShortcutsDialog.cpp:209 msgid "Reload plater from disk" msgstr "Перезагрузить стол с диска" @@ -5025,8 +4470,7 @@ msgstr "Переключиться на 3D вид" msgid "Switch to Preview" msgstr "Переключиться на предпросмотр" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 -#: src/slic3r/GUI/PrintHostDialogs.cpp:216 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:114 src/slic3r/GUI/PrintHostDialogs.cpp:216 msgid "Print host upload queue" msgstr "Очередь загрузки на хост печати" @@ -5042,8 +4486,7 @@ msgstr "Позиция камеры" msgid "Show/Hide object/instance labels" msgstr "Показать/Скрыть имена файлов модели/копии" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:46 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:121 src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Preferences.cpp:46 msgid "Preferences" msgstr "Настройки приложения" @@ -5051,8 +4494,7 @@ msgstr "Настройки приложения" msgid "Show keyboard shortcuts list" msgstr "Показать список сочетаний клавиш" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:129 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:213 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:129 src/slic3r/GUI/KBShortcutsDialog.cpp:213 msgid "Commands" msgstr "Команды" @@ -5080,10 +4522,7 @@ msgstr "Активация прямоугольника выделения" msgid "Press to activate deselection rectangle" msgstr "Активация прямоугольника отмены выделения" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:217 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:233 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:248 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:139 src/slic3r/GUI/KBShortcutsDialog.cpp:217 src/slic3r/GUI/KBShortcutsDialog.cpp:233 src/slic3r/GUI/KBShortcutsDialog.cpp:248 msgid "Arrow Up" msgstr "Стрелка вверх" @@ -5091,10 +4530,7 @@ msgstr "Стрелка вверх" msgid "Move selection 10 mm in positive Y direction" msgstr "Перемещение выбранного на 10 мм по оси Y+" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:218 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:234 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:249 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:140 src/slic3r/GUI/KBShortcutsDialog.cpp:218 src/slic3r/GUI/KBShortcutsDialog.cpp:234 src/slic3r/GUI/KBShortcutsDialog.cpp:249 msgid "Arrow Down" msgstr "Стрелка вниз" @@ -5102,10 +4538,7 @@ msgstr "Стрелка вниз" msgid "Move selection 10 mm in negative Y direction" msgstr "Перемещение выбранного на 10 мм по оси Y-" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:219 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:235 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:246 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:141 src/slic3r/GUI/KBShortcutsDialog.cpp:219 src/slic3r/GUI/KBShortcutsDialog.cpp:235 src/slic3r/GUI/KBShortcutsDialog.cpp:246 msgid "Arrow Left" msgstr "Стрелка влево" @@ -5113,10 +4546,7 @@ msgstr "Стрелка влево" msgid "Move selection 10 mm in negative X direction" msgstr "Перемещение выбранного на 10 мм по оси X-" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:220 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:236 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:247 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:142 src/slic3r/GUI/KBShortcutsDialog.cpp:220 src/slic3r/GUI/KBShortcutsDialog.cpp:236 src/slic3r/GUI/KBShortcutsDialog.cpp:247 msgid "Arrow Right" msgstr "Стрелка вправо" @@ -5124,8 +4554,7 @@ msgstr "Стрелка вправо" msgid "Move selection 10 mm in positive X direction" msgstr "Перемещение выбранного на 10 мм по оси X+" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:144 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:143 src/slic3r/GUI/KBShortcutsDialog.cpp:144 msgid "Any arrow" msgstr "Любая стрелка" @@ -5183,15 +4612,15 @@ msgstr "Гизмо точки SLA поддержки" #: src/slic3r/GUI/KBShortcutsDialog.cpp:154 msgid "Gizmo FDM paint-on supports" -msgstr "" +msgstr "Гизмо рисования поддержек (FDM)" #: src/slic3r/GUI/KBShortcutsDialog.cpp:155 msgid "Gizmo FDM paint-on seam" -msgstr "" +msgstr "Гизмо рисования шва (FDM)" #: src/slic3r/GUI/KBShortcutsDialog.cpp:156 msgid "Gizmo Multi Material painting" -msgstr "" +msgstr "Гизмо мультиматериальный покраски" #: src/slic3r/GUI/KBShortcutsDialog.cpp:157 msgid "Unselect gizmo or clear selection" @@ -5231,12 +4660,9 @@ msgstr "Свернуть/Развернуть боковую панель" #: src/slic3r/GUI/KBShortcutsDialog.cpp:166 msgid "Show/Hide 3Dconnexion devices settings dialog, if enabled" -msgstr "" -"Показать/скрыть диалоговое окно настроек устройств 3Dconnexion (если " -"включено)" +msgstr "Показать/скрыть диалоговое окно настроек устройств 3Dconnexion (если включено)" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:169 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:172 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:169 src/slic3r/GUI/KBShortcutsDialog.cpp:172 msgid "Show/Hide 3Dconnexion devices settings dialog" msgstr "" "Показать/Скрыть диалоговое окно настроек \n" @@ -5244,20 +4670,15 @@ msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:170 msgid "Minimize application" -msgstr "" +msgstr "Свернуть приложение" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 src/slic3r/GUI/MainFrame.cpp:284 -#: src/slic3r/GUI/MainFrame.cpp:333 src/slic3r/GUI/MainFrame.cpp:445 -#: src/slic3r/GUI/MainFrame.cpp:448 src/slic3r/GUI/MainFrame.cpp:470 -#: src/slic3r/GUI/MainFrame.cpp:473 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:181 src/slic3r/GUI/MainFrame.cpp:284 src/slic3r/GUI/MainFrame.cpp:333 src/slic3r/GUI/MainFrame.cpp:445 src/slic3r/GUI/MainFrame.cpp:448 src/slic3r/GUI/MainFrame.cpp:470 src/slic3r/GUI/MainFrame.cpp:473 msgid "Plater" msgstr "Стол" #: src/slic3r/GUI/KBShortcutsDialog.cpp:184 msgid "All gizmos: Rotate - left mouse button; Pan - right mouse button" -msgstr "" -"Все гизмо: Вращение камеры - левая кнопка мыши; Перемещение камеры - правая " -"кнопка мыши" +msgstr "Все гизмо: Вращение камеры - левая кнопка мыши; Перемещение камеры - правая кнопка мыши" #: src/slic3r/GUI/KBShortcutsDialog.cpp:185 msgid "Gizmo move: Press to snap by 1mm" @@ -5288,60 +4709,52 @@ msgid "Gizmos" msgstr "Гизмо" #: src/slic3r/GUI/KBShortcutsDialog.cpp:193 -msgid "" -"The following shortcuts are applicable when the specified gizmo is active" +msgid "The following shortcuts are applicable when the specified gizmo is active" msgstr "Следующие сочетания клавиш применимы, когда активна выбранная гизмо" #: src/slic3r/GUI/KBShortcutsDialog.cpp:196 msgid "Set selected items as Printable/Unprintable" -msgstr "" +msgstr "Задать «Для печати»/«Не для печати» для выбранных частей" #: src/slic3r/GUI/KBShortcutsDialog.cpp:197 msgid "Set default extruder for the selected items" -msgstr "" +msgstr "Задать экструдер по умолчанию для выбранных частей" #: src/slic3r/GUI/KBShortcutsDialog.cpp:198 msgid "Set extruder number for the selected items" -msgstr "" +msgstr "Задать номер экструдера для выбранных частей" #: src/slic3r/GUI/KBShortcutsDialog.cpp:201 msgid "Objects List" -msgstr "" +msgstr "Список моделей" #: src/slic3r/GUI/KBShortcutsDialog.cpp:205 src/slic3r/GUI/MainFrame.cpp:1518 msgid "Open a G-code file" msgstr "Выберите G-код файл" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:207 src/slic3r/GUI/MainFrame.cpp:1352 -#: src/slic3r/GUI/MainFrame.cpp:1356 src/slic3r/GUI/MainFrame.cpp:1523 -#: src/slic3r/GUI/MainFrame.cpp:1527 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:207 src/slic3r/GUI/MainFrame.cpp:1352 src/slic3r/GUI/MainFrame.cpp:1356 src/slic3r/GUI/MainFrame.cpp:1523 src/slic3r/GUI/MainFrame.cpp:1527 msgid "Reload the plater from disk" msgstr "Перезагрузить стол с диска" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:217 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:221 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:217 src/slic3r/GUI/KBShortcutsDialog.cpp:221 msgid "Vertical slider - Move active thumb Up" msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вверх" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:218 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:222 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:218 src/slic3r/GUI/KBShortcutsDialog.cpp:222 msgid "Vertical slider - Move active thumb Down" msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вниз" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:219 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:223 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:219 src/slic3r/GUI/KBShortcutsDialog.cpp:223 msgid "Horizontal slider - Move active thumb Left" msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок влево" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:220 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:224 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:220 src/slic3r/GUI/KBShortcutsDialog.cpp:224 msgid "Horizontal slider - Move active thumb Right" msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок вправо" #: src/slic3r/GUI/KBShortcutsDialog.cpp:225 msgid "On/Off one layer mode of the vertical slider" -msgstr "" -"Включение/Отключение функции \"Режим одного слоя\" у вертикального ползунка" +msgstr "Включение/Отключение функции «Режим одного слоя» у вертикального ползунка" #: src/slic3r/GUI/KBShortcutsDialog.cpp:226 msgid "Show/Hide Legend and Estimated printing time" @@ -5349,10 +4762,9 @@ msgstr "Показать/Скрыть условные обозначения/р #: src/slic3r/GUI/KBShortcutsDialog.cpp:227 msgid "Show/Hide G-code window" -msgstr "" +msgstr "Показать/скрыть окно отображения G-кода" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4394 -#: src/slic3r/GUI/Tab.cpp:2794 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4394 src/slic3r/GUI/Tab.cpp:2794 msgid "Preview" msgstr "Предпросмотр нарезки" @@ -5380,10 +4792,7 @@ msgstr "Добавить маркер смены цвета для текуще msgid "Delete color change marker for current layer" msgstr "Удалить маркер смены цвета для текущего слоя" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:239 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:240 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:250 -#: src/slic3r/GUI/KBShortcutsDialog.cpp:251 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:239 src/slic3r/GUI/KBShortcutsDialog.cpp:240 src/slic3r/GUI/KBShortcutsDialog.cpp:250 src/slic3r/GUI/KBShortcutsDialog.cpp:251 msgid "" "Press to speed up 5 times while moving thumb\n" "with arrow keys or mouse wheel" @@ -5396,12 +4805,8 @@ msgid "Vertical Slider" msgstr "Вертикальный ползунок" #: src/slic3r/GUI/KBShortcutsDialog.cpp:243 -msgid "" -"The following shortcuts are applicable in G-code preview when the vertical " -"slider is active" -msgstr "" -"Следующие сочетания клавиш применимы в окне предпросмотра G-кода, когда " -"вертикальный ползунок активен" +msgid "The following shortcuts are applicable in G-code preview when the vertical slider is active" +msgstr "Следующие сочетания клавиш применимы в окне предпросмотра G-кода, когда вертикальный ползунок активен" #: src/slic3r/GUI/KBShortcutsDialog.cpp:246 msgid "Move active thumb Left" @@ -5424,19 +4829,14 @@ msgid "Horizontal Slider" msgstr "Горизонтальный ползунок" #: src/slic3r/GUI/KBShortcutsDialog.cpp:254 -msgid "" -"The following shortcuts are applicable in G-code preview when the horizontal " -"slider is active" -msgstr "" -"Следующие сочетания клавиш применимы в окне предпросмотра G-кода, когда " -"горизонтальный ползунок активен" +msgid "The following shortcuts are applicable in G-code preview when the horizontal slider is active" +msgstr "Следующие сочетания клавиш применимы в окне предпросмотра G-кода, когда горизонтальный ползунок активен" #: src/slic3r/GUI/KBShortcutsDialog.cpp:278 msgid "Keyboard shortcuts" msgstr "Горячие клавиши" -#: src/slic3r/GUI/MainFrame.cpp:75 src/slic3r/GUI/MainFrame.cpp:89 -#: src/slic3r/GUI/MainFrame.cpp:1413 +#: src/slic3r/GUI/MainFrame.cpp:75 src/slic3r/GUI/MainFrame.cpp:89 src/slic3r/GUI/MainFrame.cpp:1413 msgid "Open a new PrusaSlicer instance" msgstr "Запустить новый экземпляр PrusaSlicer" @@ -5458,42 +4858,35 @@ msgstr "Открыть новый просмотрщик G-кода" #: src/slic3r/GUI/MainFrame.cpp:225 msgid "Closing PrusaSlicer. Current project is modified." -msgstr "" +msgstr "Закрытие PrusaSlicer. Текущий проект был изменён." #: src/slic3r/GUI/MainFrame.cpp:232 msgid "PrusaSlicer is closing" -msgstr "" +msgstr "Закрытие PrusaSlicer" #: src/slic3r/GUI/MainFrame.cpp:232 msgid "Closing PrusaSlicer while some presets are modified." -msgstr "" +msgstr "Закрытие PrusaSlicer, при имеющихся изменениях в профилях." -#: src/slic3r/GUI/MainFrame.cpp:285 src/slic3r/GUI/MainFrame.cpp:335 -#: src/slic3r/GUI/Tab.hpp:376 src/slic3r/GUI/Tab.hpp:494 +#: src/slic3r/GUI/MainFrame.cpp:285 src/slic3r/GUI/MainFrame.cpp:335 src/slic3r/GUI/Tab.hpp:376 src/slic3r/GUI/Tab.hpp:494 msgid "Print Settings" msgstr "Настройки печати" -#: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:339 -#: src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 -#: src/slic3r/GUI/Tab.hpp:479 +#: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:339 src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 src/slic3r/GUI/Tab.hpp:479 msgid "Material Settings" msgstr "Настройка материала" -#: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:337 -#: src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 -#: src/slic3r/GUI/Tab.hpp:406 +#: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:337 src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 src/slic3r/GUI/Tab.hpp:406 msgid "Filament Settings" msgstr "Настройки прутка" -#: src/slic3r/GUI/MainFrame.cpp:287 src/slic3r/GUI/MainFrame.cpp:341 -#: src/slic3r/GUI/Tab.hpp:447 +#: src/slic3r/GUI/MainFrame.cpp:287 src/slic3r/GUI/MainFrame.cpp:341 src/slic3r/GUI/Tab.hpp:447 msgid "Printer Settings" msgstr "Настройки принтера" -#: src/slic3r/GUI/MainFrame.cpp:632 src/slic3r/GUI/Plater.cpp:1721 -#: src/slic3r/GUI/Plater.cpp:2795 +#: src/slic3r/GUI/MainFrame.cpp:632 src/slic3r/GUI/Plater.cpp:1721 src/slic3r/GUI/Plater.cpp:2795 msgid "Untitled" -msgstr "" +msgstr "Без названия" #: src/slic3r/GUI/MainFrame.cpp:655 msgid "based on Slic3r" @@ -5561,13 +4954,11 @@ msgstr "Показать окно с информацией о программ #: src/slic3r/GUI/MainFrame.cpp:1097 msgid "Show Tip of the Day" -msgstr "" +msgstr "Показать полезный совет" #: src/slic3r/GUI/MainFrame.cpp:1097 -msgid "" -"Opens Tip of the day notification in bottom right corner or shows another " -"tip if already opened." -msgstr "" +msgid "Opens Tip of the day notification in bottom right corner or shows another tip if already opened." +msgstr "Открывает уведомление о полезном совете в правом нижнем углу или показывает другой совет, если уведомление уже открыто." #: src/slic3r/GUI/MainFrame.cpp:1100 msgid "Show the list of the keyboard shortcuts" @@ -5583,8 +4974,7 @@ msgstr "Изометрическая проекция" #. TRN To be shown in the main menu View->Top #. TRN To be shown in Print Settings "Top solid layers" -#: src/slic3r/GUI/MainFrame.cpp:1118 src/libslic3r/PrintConfig.cpp:2861 -#: src/libslic3r/PrintConfig.cpp:2870 +#: src/slic3r/GUI/MainFrame.cpp:1118 src/libslic3r/PrintConfig.cpp:2861 src/libslic3r/PrintConfig.cpp:2870 msgid "Top" msgstr "Сверху" @@ -5595,8 +4985,7 @@ msgstr "Вид сверху" #. TRN To be shown in the main menu View->Bottom #. TRN To be shown in Print Settings "Bottom solid layers" #. TRN To be shown in Print Settings "Top solid layers" -#: src/slic3r/GUI/MainFrame.cpp:1121 src/libslic3r/PrintConfig.cpp:423 -#: src/libslic3r/PrintConfig.cpp:432 +#: src/slic3r/GUI/MainFrame.cpp:1121 src/libslic3r/PrintConfig.cpp:423 src/libslic3r/PrintConfig.cpp:432 msgid "Bottom" msgstr "Снизу" @@ -5682,7 +5071,7 @@ msgstr "Сохранить текущий файл проекта как" #: src/slic3r/GUI/MainFrame.cpp:1201 msgid "Import STL/OBJ/AM&F/3MF" -msgstr "Загрузить STL/OBJ/AMF/3MF" +msgstr "Загру&зить STL/OBJ/AMF/3MF" #: src/slic3r/GUI/MainFrame.cpp:1201 msgid "Load a model" @@ -5690,7 +5079,7 @@ msgstr "Загрузить модель" #: src/slic3r/GUI/MainFrame.cpp:1205 msgid "Import STL (Imperial Units)" -msgstr "Загрузить STL (английская система мер)" +msgstr "За&грузить STL (английская система мер)" #: src/slic3r/GUI/MainFrame.cpp:1205 msgid "Load an model saved with imperial units" @@ -5698,15 +5087,15 @@ msgstr "Загрузить модель, сохраненную с размер #: src/slic3r/GUI/MainFrame.cpp:1209 msgid "Import SL1 / SL1S Archive" -msgstr "" +msgstr "Загрузить SL1 / SL1S &архив" #: src/slic3r/GUI/MainFrame.cpp:1209 msgid "Load an SL1 / Sl1S archive" -msgstr "" +msgstr "Загрузить SL1 / Sl1S архив" #: src/slic3r/GUI/MainFrame.cpp:1214 msgid "Import &Config" -msgstr "Загрузить текущую конфигурацию" +msgstr "Импортировать &конфигурацию" #: src/slic3r/GUI/MainFrame.cpp:1214 msgid "Load exported configuration file" @@ -5714,7 +5103,7 @@ msgstr "Загрузить сохранённый файл конфигурац #: src/slic3r/GUI/MainFrame.cpp:1217 msgid "Import Config from &Project" -msgstr "Загрузить конфигурацию из проекта" +msgstr "Импортировать конфигурацию из &проекта" #: src/slic3r/GUI/MainFrame.cpp:1217 msgid "Load configuration from project file" @@ -5722,11 +5111,11 @@ msgstr "Загрузить конфигурацию из файла проект #: src/slic3r/GUI/MainFrame.cpp:1221 msgid "Import Config &Bundle" -msgstr "Импортировать все профили" +msgstr "Импортировать &пакет конфигураций" #: src/slic3r/GUI/MainFrame.cpp:1221 msgid "Load presets from a bundle" -msgstr "Импортировать все профили из файла" +msgstr "Импортировать пакет конфигураций из файла" #: src/slic3r/GUI/MainFrame.cpp:1224 msgid "&Import" @@ -5754,8 +5143,7 @@ msgstr "Экспорт G-кода на SD-карту / USB-накопитель" #: src/slic3r/GUI/MainFrame.cpp:1235 msgid "Export current plate as G-code to SD card / Flash drive" -msgstr "" -"Экспортировать текущие модели со стола в G-код на SD-карту / USB-накопитель" +msgstr "Экспортировать текущие модели со стола в G-код на SD-карту / USB-накопитель" #: src/slic3r/GUI/MainFrame.cpp:1239 msgid "Export Plate as &STL" @@ -5791,15 +5179,15 @@ msgstr "Экспортировать текущую конфигурацию в #: src/slic3r/GUI/MainFrame.cpp:1257 msgid "Export Config &Bundle" -msgstr "Экспорт &всех профилей" +msgstr "Экспорт &всех конфигураций" #: src/slic3r/GUI/MainFrame.cpp:1257 msgid "Export all presets to file" -msgstr "Экспортировать все профили в единый файл" +msgstr "Экспортировать все конфигурации в единый файл" #: src/slic3r/GUI/MainFrame.cpp:1260 msgid "Export Config Bundle With Physical Printers" -msgstr "Экспорт всех профилей с физическими принтерами" +msgstr "Экспорт всех конфигураций с физическими принтерами" #: src/slic3r/GUI/MainFrame.cpp:1260 msgid "Export all presets including physical printers to file" @@ -5815,8 +5203,7 @@ msgstr "Из&влечь SD-карту / USB-накопитель" #: src/slic3r/GUI/MainFrame.cpp:1265 msgid "Eject SD card / Flash drive after the G-code was exported to it." -msgstr "" -"Извлечение SD-карты / USB-накопителя (после экспорта G-кода на носитель)" +msgstr "Извлечение SD-карты / USB-накопителя (после экспорта G-кода на носитель)" #: src/slic3r/GUI/MainFrame.cpp:1273 msgid "Quick Slice" @@ -5860,11 +5247,11 @@ msgstr "Автоматическая починка STL файла" #: src/slic3r/GUI/MainFrame.cpp:1301 msgid "&G-code Preview" -msgstr "Пред&просмотр G-кода" +msgstr "Пр&едпросмотр G-кода" #: src/slic3r/GUI/MainFrame.cpp:1304 src/slic3r/GUI/MainFrame.cpp:1538 msgid "&Quit" -msgstr "&Выход" +msgstr "В&ыход" #: src/slic3r/GUI/MainFrame.cpp:1304 src/slic3r/GUI/MainFrame.cpp:1538 #, c-format, boost-format @@ -5881,7 +5268,7 @@ msgstr "Выбрать все модели" #: src/slic3r/GUI/MainFrame.cpp:1322 msgid "D&eselect All" -msgstr "&Снять выбор со всего" +msgstr "Снять в&ыбор со всего" #: src/slic3r/GUI/MainFrame.cpp:1323 msgid "Deselects all objects" @@ -5921,20 +5308,19 @@ msgstr "Скопировать выделенное в буфер обмена" #: src/slic3r/GUI/MainFrame.cpp:1345 msgid "&Paste" -msgstr "&Вставить" +msgstr "Вс&тавить" #: src/slic3r/GUI/MainFrame.cpp:1346 msgid "Paste clipboard" msgstr "Вставить из буфера обмена" -#: src/slic3r/GUI/MainFrame.cpp:1351 src/slic3r/GUI/MainFrame.cpp:1355 -#: src/slic3r/GUI/MainFrame.cpp:1522 src/slic3r/GUI/MainFrame.cpp:1526 +#: src/slic3r/GUI/MainFrame.cpp:1351 src/slic3r/GUI/MainFrame.cpp:1355 src/slic3r/GUI/MainFrame.cpp:1522 src/slic3r/GUI/MainFrame.cpp:1526 msgid "Re&load from Disk" msgstr "Пере&загрузить с диска" #: src/slic3r/GUI/MainFrame.cpp:1361 msgid "Searc&h" -msgstr "&Поиск" +msgstr "Пои&ск" #: src/slic3r/GUI/MainFrame.cpp:1362 msgid "Search in settings" @@ -5990,7 +5376,7 @@ msgstr "Показать предпросмотр нарезки" #: src/slic3r/GUI/MainFrame.cpp:1397 msgid "Open the dialog to modify shape gallery" -msgstr "" +msgstr "Открытие диалогового окна для редактирования библиотеки фигур." #: src/slic3r/GUI/MainFrame.cpp:1409 msgid "Print &Host Upload Queue" @@ -6002,16 +5388,15 @@ msgstr "Показать очередь загрузки на хост печа #: src/slic3r/GUI/MainFrame.cpp:1413 msgid "Open New Instance" -msgstr "" +msgstr "Запустить новый экземпляр программы" -#: src/slic3r/GUI/MainFrame.cpp:1417 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1554 +#: src/slic3r/GUI/MainFrame.cpp:1417 src/slic3r/GUI/UnsavedChangesDialog.cpp:1554 msgid "Compare Presets" -msgstr "" +msgstr "Сравнение профилей" #: src/slic3r/GUI/MainFrame.cpp:1417 msgid "Compare presets" -msgstr "" +msgstr "Сравнение профилей" #: src/slic3r/GUI/MainFrame.cpp:1427 msgid "Show &Labels" @@ -6031,11 +5416,11 @@ msgstr "Свернуть боковую панель" #: src/slic3r/GUI/MainFrame.cpp:1435 msgid "&Fullscreen" -msgstr "" +msgstr "Полно&экранный режим" #: src/slic3r/GUI/MainFrame.cpp:1435 msgid "Fullscreen" -msgstr "" +msgstr "Полноэкранный режим" #: src/slic3r/GUI/MainFrame.cpp:1450 src/slic3r/GUI/MainFrame.cpp:1553 msgid "&File" @@ -6114,9 +5499,7 @@ msgstr "G-код" msgid "Save zip file as:" msgstr "Сохранить .zip файл как:" -#: src/slic3r/GUI/MainFrame.cpp:1682 src/slic3r/GUI/Plater.cpp:3276 -#: src/slic3r/GUI/Plater.cpp:5972 src/slic3r/GUI/Tab.cpp:1662 -#: src/slic3r/GUI/Tab.cpp:4392 +#: src/slic3r/GUI/MainFrame.cpp:1682 src/slic3r/GUI/Plater.cpp:3276 src/slic3r/GUI/Plater.cpp:5972 src/slic3r/GUI/Tab.cpp:1662 src/slic3r/GUI/Tab.cpp:4392 msgid "Slicing" msgstr "Нарезка" @@ -6157,7 +5540,7 @@ msgstr "Сохранить конфигурацию в файл как:" #: src/slic3r/GUI/MainFrame.cpp:1778 msgid "Loading of a configuration file" -msgstr "" +msgstr "Загрузка файла конфигурации" #: src/slic3r/GUI/MainFrame.cpp:1780 src/slic3r/GUI/MainFrame.cpp:1845 msgid "Select configuration to load:" @@ -6165,21 +5548,19 @@ msgstr "Выберите файл конфигурации для загрузк #: src/slic3r/GUI/MainFrame.cpp:1809 msgid "Exporting configuration bundle" -msgstr "" +msgstr "Экспорт пакета конфигураций" #: src/slic3r/GUI/MainFrame.cpp:1810 -msgid "" -"Some presets are modified and the unsaved changes will not be exported into " -"configuration bundle." -msgstr "" +msgid "Some presets are modified and the unsaved changes will not be exported into configuration bundle." +msgstr "Некоторые профили изменены, и несохранённые изменения не будут экспортированы в пакет конфигурации." #: src/slic3r/GUI/MainFrame.cpp:1819 msgid "Save presets bundle as:" -msgstr "Сохранить все профили в файл как:" +msgstr "Сохранить все конфигурации в файл как:" #: src/slic3r/GUI/MainFrame.cpp:1842 msgid "Loading of a configuration bundle" -msgstr "" +msgstr "Загрузка пакета конфигураций" #: src/slic3r/GUI/MainFrame.cpp:1872 #, c-format, boost-format @@ -6198,13 +5579,11 @@ msgstr "Устройство:" msgid "Speed:" msgstr "Скорость:" -#: src/slic3r/GUI/Mouse3DController.cpp:472 -#: src/slic3r/GUI/Mouse3DController.cpp:493 +#: src/slic3r/GUI/Mouse3DController.cpp:472 src/slic3r/GUI/Mouse3DController.cpp:493 msgid "Translation" msgstr "Перемещение" -#: src/slic3r/GUI/Mouse3DController.cpp:484 -#: src/slic3r/GUI/Mouse3DController.cpp:493 +#: src/slic3r/GUI/Mouse3DController.cpp:484 src/slic3r/GUI/Mouse3DController.cpp:493 msgid "Zoom" msgstr "Масштаб" @@ -6233,22 +5612,22 @@ msgstr "%s обнаружил ошибку" #: src/slic3r/GUI/MsgDialog.cpp:200 #, c-format, boost-format msgid "%s warning" -msgstr "" +msgstr "Предупреждение %s" #: src/slic3r/GUI/MsgDialog.cpp:201 #, c-format, boost-format msgid "%s has a warning" -msgstr "" +msgstr "Предупреждение %s" #: src/slic3r/GUI/MsgDialog.cpp:214 src/slic3r/GUI/MsgDialog.cpp:227 #, c-format, boost-format msgid "%s info" -msgstr "" +msgstr "Информация %s" #: src/slic3r/GUI/MsgDialog.cpp:255 #, c-format, boost-format msgid "%s information" -msgstr "" +msgstr "Информация %s" #: src/slic3r/GUI/NotificationManager.hpp:752 msgid "3D Mouse disconnected." @@ -6265,39 +5644,34 @@ msgstr "Подробнее." #: src/slic3r/GUI/NotificationManager.hpp:761 msgid "" "You have just added a G-code for color change, but its value is empty.\n" -"To export the G-code correctly, check the \"Color Change G-code\" in " -"\"Printer Settings > Custom G-code\"" +"To export the G-code correctly, check the \"Color Change G-code\" in \"Printer Settings > Custom G-code\"" msgstr "" -"Вы только что добавили G-код смена цвета, но его значение в соответствующем " -"поле не задано.\n" -"Для правильного экспорта G-кода, проверьте пункт \"G-код смены цвета\" в " -"разделе Настройки принтера > Пользовательский G-код." +"Вы только что добавили G-код смена цвета, но его значение в соответствующем поле не задано.\n" +"Для правильного экспорта G-кода, проверьте пункт «G-код смены цвета» в разделе Настройки принтера > Пользовательский G-код." #: src/slic3r/GUI/NotificationManager.hpp:764 -msgid "" -"No color change event was added to the print. The print does not look like a " -"sign." -msgstr "" +msgid "No color change event was added to the print. The print does not look like a sign." +msgstr "К печати не были добавлены маркеры смены цвета. Модель не похожа на знак." #: src/slic3r/GUI/NotificationManager.hpp:766 msgid "Desktop integration was successful." -msgstr "" +msgstr "Интеграция с рабочим столом прошла успешно." #: src/slic3r/GUI/NotificationManager.hpp:768 msgid "Desktop integration failed." -msgstr "" +msgstr "Не удалось выполнить интеграцию с рабочим столом." #: src/slic3r/GUI/NotificationManager.hpp:770 msgid "Undo desktop integration was successful." -msgstr "" +msgstr "Отмена интеграции с рабочим столом прошла успешно." #: src/slic3r/GUI/NotificationManager.hpp:772 msgid "Undo desktop integration failed." -msgstr "" +msgstr "Не удалось отменить интеграцию с рабочим столом." #: src/slic3r/GUI/NotificationManager.hpp:773 msgid "Exporting." -msgstr "" +msgstr "Экспорт..." #: src/slic3r/GUI/NotificationManager.cpp:664 msgid "Open Folder." @@ -6309,59 +5683,59 @@ msgstr "Извлечь диск" #: src/slic3r/GUI/NotificationManager.cpp:885 msgid "ERROR" -msgstr "" +msgstr "ОШИБКА" #: src/slic3r/GUI/NotificationManager.cpp:890 msgid "CANCELED" -msgstr "" +msgstr "ОТМЕНЕНО" #: src/slic3r/GUI/NotificationManager.cpp:895 msgid "COMPLETED" -msgstr "" +msgstr "ЗАВЕРШЕНО" #: src/slic3r/GUI/NotificationManager.cpp:937 msgid "Cancel upload" -msgstr "" +msgstr "Отменить отправку" #: src/slic3r/GUI/NotificationManager.cpp:996 #, c-format, boost-format msgid "%1$d Object was loaded with custom supports." msgid_plural "%1$d Objects were loaded with custom supports." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Загружена %1$d модель с пользовательскими поддержками." +msgstr[1] "Загружено %1$d модели с пользовательскими поддержками." +msgstr[2] "Загружено %1$d моделей с пользовательскими поддержками." #: src/slic3r/GUI/NotificationManager.cpp:997 #, c-format, boost-format msgid "%1$d Object was loaded with custom seam." msgid_plural "%1$d Objects were loaded with custom seam." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Загружена %1$d модель с пользовательским швом." +msgstr[1] "Загружено %1$d модели с пользовательским швом." +msgstr[2] "Загружено %1$d моделей с пользовательским швом." #: src/slic3r/GUI/NotificationManager.cpp:998 #, c-format, boost-format msgid "%1$d Object was loaded with multimaterial painting." msgid_plural "%1$d Objects were loaded with multimaterial painting." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Загружена %1$d модель с мультиматериальной покраской." +msgstr[1] "Загружено %1$d модели с мультиматериальной покраской." +msgstr[2] "Загружено %1$d моделей с мультиматериальной покраской." #: src/slic3r/GUI/NotificationManager.cpp:999 #, c-format, boost-format msgid "%1$d Object was loaded with variable layer height." msgid_plural "%1$d Objects were loaded with variable layer height." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Загружена %1$d модель с переменной высотой слоёв." +msgstr[1] "Загружено %1$d модели с переменной высотой слоёв." +msgstr[2] "Загружено %1$d моделей с переменной высотой слоёв." #: src/slic3r/GUI/NotificationManager.cpp:1000 #, c-format, boost-format msgid "%1$d Object was loaded with partial sinking." msgid_plural "%1$d Objects were loaded with partial sinking." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1$d модель была загружена с частичным погружением в стол." +msgstr[1] "%1$d модели были загружены с частичным погружением в стол." +msgstr[2] "%1$d моделей были загружены с частичным погружением в стол." #: src/slic3r/GUI/NotificationManager.cpp:1113 msgid "Slicing finished." @@ -6373,20 +5747,13 @@ msgstr "Экспорт в G-код." #: src/slic3r/GUI/NotificationManager.cpp:1113 msgid "Export." -msgstr "" +msgstr "Экспорт." -#: src/slic3r/GUI/NotificationManager.cpp:1447 -#: src/slic3r/GUI/NotificationManager.cpp:1454 -#: src/slic3r/GUI/NotificationManager.cpp:1470 -#: src/slic3r/GUI/NotificationManager.cpp:1476 -#: src/slic3r/GUI/NotificationManager.cpp:1547 +#: src/slic3r/GUI/NotificationManager.cpp:1447 src/slic3r/GUI/NotificationManager.cpp:1454 src/slic3r/GUI/NotificationManager.cpp:1470 src/slic3r/GUI/NotificationManager.cpp:1476 src/slic3r/GUI/NotificationManager.cpp:1547 msgid "ERROR:" msgstr "ОШИБКА:" -#: src/slic3r/GUI/NotificationManager.cpp:1459 -#: src/slic3r/GUI/NotificationManager.cpp:1486 -#: src/slic3r/GUI/NotificationManager.cpp:1494 -#: src/slic3r/GUI/NotificationManager.cpp:1505 src/slic3r/GUI/Plater.cpp:3144 +#: src/slic3r/GUI/NotificationManager.cpp:1459 src/slic3r/GUI/NotificationManager.cpp:1486 src/slic3r/GUI/NotificationManager.cpp:1494 src/slic3r/GUI/NotificationManager.cpp:1505 src/slic3r/GUI/Plater.cpp:3144 msgid "WARNING:" msgstr "ПРЕДУПРЕЖДЕНИЕ:" @@ -6396,24 +5763,22 @@ msgstr "Экспорт завершён." #: src/slic3r/GUI/ObjectDataViewModel.cpp:50 msgid "Paint-on seam" -msgstr "" +msgstr "Рисование шва" #: src/slic3r/GUI/ObjectDataViewModel.cpp:52 msgid "Sinking" -msgstr "" +msgstr "Погружение" #: src/slic3r/GUI/ObjectDataViewModel.cpp:94 msgid "Instances" msgstr "Копии" -#: src/slic3r/GUI/ObjectDataViewModel.cpp:98 -#: src/slic3r/GUI/ObjectDataViewModel.cpp:266 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:98 src/slic3r/GUI/ObjectDataViewModel.cpp:266 #, c-format, boost-format msgid "Instance %d" msgstr "Копия %d" -#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4230 -#: src/slic3r/GUI/Tab.cpp:4321 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4230 src/slic3r/GUI/Tab.cpp:4321 msgid "Layers" msgstr "Слои" @@ -6427,20 +5792,16 @@ msgid "" "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n" "while OpenGL version %s, render %s, vendor %s was detected." msgstr "" -"Обнаружена графическая подсистема с поддержкой OpenGL версии %s (рендеринг " -"%s, поставщик %s).\n" -"Для правильной же работы PrusaSlicer требуется драйвер графической " -"подсистемы, поддерживающий OpenGL 2.0." +"Обнаружена графическая подсистема с поддержкой OpenGL версии %s (рендеринг %s, поставщик %s).\n" +"Для правильной же работы PrusaSlicer требуется драйвер графической подсистемы, поддерживающий OpenGL 2.0." #: src/slic3r/GUI/OpenGLManager.cpp:260 msgid "You may need to update your graphics card driver." msgstr "Возможно, вам потребуется обновить драйвер видеокарты." #: src/slic3r/GUI/OpenGLManager.cpp:263 -msgid "" -"As a workaround, you may run PrusaSlicer with a software rendered 3D " -"graphics by running prusa-slicer.exe with the --sw-renderer parameter." -msgstr "" +msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw-renderer parameter." +msgstr "В качестве обходного пути вы можете запустить PrusaSlicer с программной рендерингом 3D-графики, запустив prusa-sler.exe с параметром --sw-renderer." #: src/slic3r/GUI/OpenGLManager.cpp:265 msgid "Unsupported OpenGL version" @@ -6475,21 +5836,20 @@ msgstr "Запретить открытие гиперссылок в брауз #: src/slic3r/GUI/OptionsGroup.cpp:993 msgid "PrusaSlicer will remember your choice." -msgstr "" +msgstr "PrusaSlicer запомнит ваш выбор." #: src/slic3r/GUI/OptionsGroup.cpp:994 msgid "You will not be asked about it again on label hovering." -msgstr "Вас больше не будут спрашивать об этом при нажатии на параметры." +msgstr "Вас больше не спросят об этом при наведении курсора на название параметра." #: src/slic3r/GUI/OptionsGroup.cpp:995 #, boost-format msgid "" "Visit \"Preferences\" and check \"%1%\"\n" "to changes your choice." -msgstr "" +msgstr "Зайдите в «Настройки приложения» и установите флажок \"%1%\", чтобы изменить свой выбор." -#: src/slic3r/GUI/OptionsGroup.cpp:997 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:905 +#: src/slic3r/GUI/OptionsGroup.cpp:997 src/slic3r/GUI/UnsavedChangesDialog.cpp:905 msgid "PrusaSlicer: Don't ask me again" msgstr "PrusaSlicer: Не спрашивать снова" @@ -6519,8 +5879,7 @@ msgstr "Загрузка на хост печати" #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:268 msgid "Connection to printers connected via the print host failed." -msgstr "" -"Не удалось подключиться к принтерам, подключенным через через хост печати." +msgstr "Не удалось подключиться к принтерам, подключенным через через хост печати." #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:310 msgid "Test" @@ -6539,12 +5898,8 @@ msgid "Refresh Printers" msgstr "Обновить принтеры" #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:364 -msgid "" -"HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" -"signed certificate." -msgstr "" -"Файл HTTPS CA не обязателен. Он необходим только при использовании HTTPS с " -"самоподписанным сертификатом." +msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate." +msgstr "Файл HTTPS CA не обязателен. Он необходим только при использовании HTTPS с самоподписанным сертификатом." #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:374 msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" @@ -6554,27 +5909,18 @@ msgstr "Файлы сертификатов (*.crt, *.pem)|*.crt;*.pem|Все ф msgid "Open CA certificate file" msgstr "Открыть файл сертификата CA" -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:404 -#: src/libslic3r/PrintConfig.cpp:307 +#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:404 src/libslic3r/PrintConfig.cpp:307 msgid "HTTPS CA File" msgstr "Файл HTTPS CA сертификата" #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:405 #, c-format, boost-format -msgid "" -"On this system, %s uses HTTPS certificates from the system Certificate Store " -"or Keychain." -msgstr "" -"В этой системе %s использует HTTPS сертификаты из системного хранилища " -"сертификатов/Keychain." +msgid "On this system, %s uses HTTPS certificates from the system Certificate Store or Keychain." +msgstr "В этой системе %s использует HTTPS сертификаты из системного хранилища сертификатов/Keychain." #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:406 -msgid "" -"To use a custom CA file, please import your CA file into Certificate Store / " -"Keychain." -msgstr "" -"Чтобы использовать пользовательский файл CA, импортируйте его в хранилище " -"сертификатов/Keychain." +msgid "To use a custom CA file, please import your CA file into Certificate Store / Keychain." +msgstr "Чтобы использовать пользовательский файл CA, импортируйте его в хранилище сертификатов/Keychain." #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:630 msgid "The supplied name is empty. It can't be saved." @@ -6595,15 +5941,11 @@ msgstr "Заменить?" #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:670 #, boost-format -msgid "" -"Following printer preset is duplicated:%1%The above preset for printer \"%2%" -"\" will be used just once." -msgid_plural "" -"Following printer presets are duplicated:%1%The above presets for printer " -"\"%2%\" will be used just once." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Following printer preset is duplicated:%1%The above preset for printer \"%2%\" will be used just once." +msgid_plural "Following printer presets are duplicated:%1%The above presets for printer \"%2%\" will be used just once." +msgstr[0] "Следующий профиль принтера дублируется:%1%Вышеупомянутый профиль для принтера \"%2%\" будет использован только один раз." +msgstr[1] "Следующие профили принтера дублируются:%1%Вышеупомянутые профили для принтера \\\"%2%\\\" будут использоваться только один раз." +msgstr[2] "Следующие профили принтера дублируются:%1%Вышеупомянутые профили для принтера \\\"%2%\\\" будут использоваться только один раз." #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:720 msgid "It's not possible to delete the last related preset for the printer." @@ -6611,7 +5953,7 @@ msgstr "Невозможно удалить последний связанны #: src/slic3r/GUI/Plater.cpp:141 msgid "The provided name is not valid;" -msgstr "" +msgstr "Указано недопустимое имя файла;" #: src/slic3r/GUI/Plater.cpp:142 src/slic3r/GUI/SavePresetDialog.cpp:102 msgid "the following characters are not allowed:" @@ -6622,6 +5964,8 @@ msgid "" "For a multipart object, this value isn't accurate.\n" "It doesn't take account of intersections and negative volumes." msgstr "" +"Для модели, состоящей из нескольких частей, это значение не является точным.\n" +"Оно не учитывает пересечения и отрицательные объёмы." #: src/slic3r/GUI/Plater.cpp:211 msgid "Volume" @@ -6655,8 +5999,7 @@ msgstr "Использовано материала (единиц)" msgid "Cost (money)" msgstr "Стоимость" -#: src/slic3r/GUI/Plater.cpp:301 src/slic3r/GUI/Plater.cpp:1339 -#: src/slic3r/GUI/Plater.cpp:1426 +#: src/slic3r/GUI/Plater.cpp:301 src/slic3r/GUI/Plater.cpp:1339 src/slic3r/GUI/Plater.cpp:1426 msgid "Estimated printing time" msgstr "Расчётное время печати" @@ -6668,8 +6011,7 @@ msgstr "Количество инструментов" msgid "Select what kind of support do you need" msgstr "Выбор варианта поддержки" -#: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:2534 -#: src/libslic3r/PrintConfig.cpp:3493 +#: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:2534 src/libslic3r/PrintConfig.cpp:3493 msgid "Support on build plate only" msgstr "Только от стола" @@ -6686,14 +6028,8 @@ msgid "Brim" msgstr "Кайма" #: src/slic3r/GUI/Plater.cpp:469 -msgid "" -"This flag enables the brim that will be printed around each object on the " -"first layer." -msgstr "" -"Расстояние от модели до самой дальней линии каймы. Широкая кайма повышает " -"адгезию к столу, но уменьшает полезную площадь печати. Увеличение этого " -"параметра очень важно для моделей с маленькой площадью контакта со столом и " -"особенно важно при печати ABS пластиком." +msgid "This flag enables the brim that will be printed around each object on the first layer." +msgstr "Расстояние от модели до самой дальней линии каймы. Широкая кайма повышает адгезию к столу, но уменьшает полезную площадь печати. Увеличение этого параметра очень важно для моделей с маленькой площадью контакта со столом и особенно важно при печати ABS пластиком." #: src/slic3r/GUI/Plater.cpp:477 msgid "Purging volumes" @@ -6705,7 +6041,7 @@ msgstr "Выбор варианта подложки" #: src/slic3r/GUI/Plater.cpp:579 msgid "Below object" -msgstr "Ниже модели" +msgstr "Под моделью" #: src/slic3r/GUI/Plater.cpp:580 msgid "Around object" @@ -6715,8 +6051,7 @@ msgstr "Вокруг модели" msgid "Send to printer" msgstr "На принтер" -#: src/slic3r/GUI/Plater.cpp:913 src/slic3r/GUI/Plater.cpp:3276 -#: src/slic3r/GUI/Plater.cpp:5975 +#: src/slic3r/GUI/Plater.cpp:913 src/slic3r/GUI/Plater.cpp:3276 src/slic3r/GUI/Plater.cpp:5975 msgid "Slice now" msgstr "НАРЕЗАТЬ" @@ -6728,9 +6063,9 @@ msgstr "Удерживайте клавишу Shift, чтобы нарезать #, boost-format msgid "%1% (%2$d shell)" msgid_plural "%1% (%2$d shells)" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "%1% (%2$d оболочка)" +msgstr[1] "%1% (%2$d оболочки)" +msgstr[2] "%1% (%2$d оболочек)" #: src/slic3r/GUI/Plater.cpp:1314 msgid "Used Material (ml)" @@ -6739,9 +6074,9 @@ msgstr "Использовано материала (мл)" #: src/slic3r/GUI/Plater.cpp:1317 msgid "object" msgid_plural "objects" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "модель" +msgstr[1] "модели" +msgstr[2] "моделей" #: src/slic3r/GUI/Plater.cpp:1317 msgid "supports and pad" @@ -6772,8 +6107,7 @@ msgstr "Прутка в экструдере %1%" msgid "(including spool)" msgstr "(включая катушку)" -#: src/slic3r/GUI/Plater.cpp:1410 src/libslic3r/PrintConfig.cpp:1045 -#: src/libslic3r/PrintConfig.cpp:3287 src/libslic3r/PrintConfig.cpp:3288 +#: src/slic3r/GUI/Plater.cpp:1410 src/libslic3r/PrintConfig.cpp:1045 src/libslic3r/PrintConfig.cpp:3287 src/libslic3r/PrintConfig.cpp:3288 msgid "Cost" msgstr "Стоимость" @@ -6795,21 +6129,17 @@ msgstr "Оптимизация положения" #: src/slic3r/GUI/Plater.cpp:1684 msgid "Import SLA archive" -msgstr "Импорт SLA архива" +msgstr "Загрузить SLA архив" #: src/slic3r/GUI/Plater.cpp:1723 #, boost-format msgid "Do you want to save the changes to \"%1%\"?" -msgstr "" +msgstr "Вы хотите сохранить изменения в \"%1%\"?" #: src/slic3r/GUI/Plater.cpp:2174 #, c-format, boost-format -msgid "" -"Successfully unmounted. The device %s(%s) can now be safely removed from the " -"computer." -msgstr "" -"Размонтирование прошло успешно. Теперь устройство %s(%s) может быть " -"безопасно извлечено из компьютера." +msgid "Successfully unmounted. The device %s(%s) can now be safely removed from the computer." +msgstr "Размонтирование прошло успешно. Теперь устройство %s(%s) может быть безопасно извлечено из компьютера." #: src/slic3r/GUI/Plater.cpp:2179 #, c-format, boost-format @@ -6825,20 +6155,16 @@ msgid "Expand sidebar" msgstr "Развернуть боковую панель" #: src/slic3r/GUI/Plater.cpp:2463 -msgid "" -"The preset below was temporarily installed on the active instance of " -"PrusaSlicer" -msgid_plural "" -"The presets below were temporarily installed on the active instance of " -"PrusaSlicer" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "The preset below was temporarily installed on the active instance of PrusaSlicer" +msgid_plural "The presets below were temporarily installed on the active instance of PrusaSlicer" +msgstr[0] "Приведённый ниже профиль был временно установлен на активной копии PrusaSlicer" +msgstr[1] "Приведённые ниже профили были временно установлены на активной копии PrusaSlicer" +msgstr[2] "Приведённые ниже профили были временно установлены на активной копии PrusaSlicer" #: src/slic3r/GUI/Plater.cpp:2493 #, boost-format msgid "Failed loading file \"%1%\" due to an invalid configuration." -msgstr "" +msgstr "Не удалось загрузить файл \"%1%\" из-за недопустимой конфигурации." #: src/slic3r/GUI/Plater.cpp:2513 #, c-format, boost-format @@ -6849,48 +6175,62 @@ msgid_plural "" "Objects size from file %s appears to be zero.\n" "These objects have been removed from the model" msgstr[0] "" +"Похоже у объекта из файла %s нулевой размер.\n" +"Он был удалён из модели." msgstr[1] "" +"Похоже у объектов из файла %s нулевой размер.\n" +"Они были удалены из модели." msgstr[2] "" +"Похоже у объектов из файла %s нулевой размер.\n" +"Они были удалены из модели." #: src/slic3r/GUI/Plater.cpp:2517 msgid "The size of the object is zero" -msgstr "" +msgstr "Размер модели равен нулю" #: src/slic3r/GUI/Plater.cpp:2530 #, c-format, boost-format msgid "" "The dimensions of the object from file %s seem to be defined in meters.\n" -"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " -"the dimensions of the object?" +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate the dimensions of the object?" msgid_plural "" "The dimensions of some objects from file %s seem to be defined in meters.\n" -"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " -"the dimensions of these objects?" +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate the dimensions of these objects?" msgstr[0] "" +"Похоже, что размеры модели из файла %s заданы в метрах.\n" +"Внутренней единицей измерения PrusaSlicer являются миллиметры. Пересчитать размеры модели?" msgstr[1] "" +"Похоже, что размеры моделей из файла %s заданы в метрах.\n" +"Внутренней единицей измерения PrusaSlicer являются миллиметры. Пересчитать размеры моделей?" msgstr[2] "" +"Похоже, что размеры моделей из файла %s заданы в метрах.\n" +"Внутренней единицей измерения PrusaSlicer являются миллиметры. Пересчитать размеры моделей?" #: src/slic3r/GUI/Plater.cpp:2534 src/slic3r/GUI/Plater.cpp:2556 msgid "The object is too small" -msgstr "" +msgstr "Модель слишком мала" #: src/slic3r/GUI/Plater.cpp:2535 src/slic3r/GUI/Plater.cpp:2557 msgid "Apply to all the remaining small objects being loaded." -msgstr "" +msgstr "Применить ко всем загружаемым мелким моделям." #: src/slic3r/GUI/Plater.cpp:2552 #, c-format, boost-format msgid "" "The dimensions of the object from file %s seem to be defined in inches.\n" -"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " -"the dimensions of the object?" +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate the dimensions of the object?" msgid_plural "" "The dimensions of some objects from file %s seem to be defined in inches.\n" -"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate " -"the dimensions of these objects?" +"The internal unit of PrusaSlicer is a millimeter. Do you want to recalculate the dimensions of these objects?" msgstr[0] "" +"Похоже, что размеры модели из файла %s заданы в метрах.\n" +"Внутренней единицей измерения PrusaSlicer являются дюймы. Пересчитать размеры модели?" msgstr[1] "" +"Похоже, что размеры моделей из файла %s заданы в дюймы.\n" +"Внутренней единицей измерения PrusaSlicer являются миллиметры. Пересчитать размеры моделей?" msgstr[2] "" +"Похоже, что размеры моделей из файла %s заданы в дюймы.\n" +"Внутренней единицей измерения PrusaSlicer являются миллиметры. Пересчитать размеры моделей?" #: src/slic3r/GUI/Plater.cpp:2570 msgid "" @@ -6898,18 +6238,17 @@ msgid "" "Instead of considering them as multiple objects, should \n" "the file be loaded as a single object having multiple parts?" msgstr "" +"Этот файл содержит несколько моделей, находящихся на разной высоте.\n" +"Следует ли загружать файл как единую модель, состоящий из нескольких\n" +"частей (вместо того, чтобы рассматривать их как несколько моделей)?" #: src/slic3r/GUI/Plater.cpp:2573 src/slic3r/GUI/Plater.cpp:2628 msgid "Multi-part object detected" msgstr "Обнаружена модель, состоящая из нескольких частей" #: src/slic3r/GUI/Plater.cpp:2581 -msgid "" -"This file cannot be loaded in a simple mode. Do you want to switch to an " -"advanced mode?" -msgstr "" -"Этот файл не может быть загружен в простом режиме. Хотите перейти в " -"расширенный режим?" +msgid "This file cannot be loaded in a simple mode. Do you want to switch to an advanced mode?" +msgstr "Этот файл не может быть загружен в простом режиме. Хотите перейти в расширенный режим?" #: src/slic3r/GUI/Plater.cpp:2582 msgid "Detected advanced data" @@ -6917,12 +6256,8 @@ msgstr "Обнаружены расширенные данные" #: src/slic3r/GUI/Plater.cpp:2602 #, c-format, boost-format -msgid "" -"You can't to add the object(s) from %s because of one or some of them " -"is(are) multi-part" -msgstr "" -"Вы не можете добавить модель(и) из %s, потому что одна или несколько из них " -"являются составными (состоят из нескольких частей)" +msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part" +msgstr "Вы не можете добавить модель(и) из %s, потому что одна или несколько из них являются составными (состоят из нескольких частей)" #: src/slic3r/GUI/Plater.cpp:2625 msgid "" @@ -6931,16 +6266,11 @@ msgid "" "these files to represent a single object having multiple parts?" msgstr "" "Для мультиматериального принтера было загружено несколько моделей.\n" -"Вместо того, чтобы рассматривать их как несколько моделей, следует ли " -"рассматривать их как одну модель, состоящую из несколько частей?" +"Вместо того, чтобы рассматривать их как несколько моделей, следует ли рассматривать их как одну модель, состоящую из несколько частей?" #: src/slic3r/GUI/Plater.cpp:2744 -msgid "" -"Your object appears to be too large, so it was automatically scaled down to " -"fit your print bed." -msgstr "" -"Ваша модель слишком большая, поэтому она была автоматически уменьшена до " -"размера вашего печатного стола." +msgid "Your object appears to be too large, so it was automatically scaled down to fit your print bed." +msgstr "Ваша модель слишком большая, поэтому она была автоматически уменьшена до размера вашего печатного стола." #: src/slic3r/GUI/Plater.cpp:2745 msgid "Object too large?" @@ -6968,35 +6298,31 @@ msgstr "Удаление модели" #: src/slic3r/GUI/Plater.cpp:2952 msgid "Delete All Objects" -msgstr "" +msgstr "Удаление всех моделей" #: src/slic3r/GUI/Plater.cpp:2980 msgid "Reset Project" msgstr "Обнуление проекта" #: src/slic3r/GUI/Plater.cpp:3063 -msgid "" -"The selected object couldn't be split because it contains only one solid " -"part." -msgstr "" +msgid "The selected object couldn't be split because it contains only one solid part." +msgstr "Выбранная модель не может быть разделена, так как она состоит из одной части." #: src/slic3r/GUI/Plater.cpp:3070 msgid "All non-solid parts (modifiers) were deleted" -msgstr "" +msgstr "Все модификаторы были удалены" #: src/slic3r/GUI/Plater.cpp:3072 msgid "Split to Objects" msgstr "Разделить на модели" #: src/slic3r/GUI/Plater.cpp:3126 -msgid "" -"An object has custom support enforcers which will not be used because " -"supports are disabled." -msgstr "" +msgid "An object has custom support enforcers which will not be used because supports are disabled." +msgstr "Модель имеет пользовательские принудительные поддержки, которые не будут использоваться, так как поддержки отключены." #: src/slic3r/GUI/Plater.cpp:3128 msgid "Enable supports for enforcers only" -msgstr "" +msgstr "Разрешить только принудительную поддержку" #: src/slic3r/GUI/Plater.cpp:3257 src/slic3r/GUI/Plater.cpp:4090 msgid "Invalid data" @@ -7008,23 +6334,23 @@ msgstr "Уже идёт другой процесс экспорта." #: src/slic3r/GUI/Plater.cpp:3385 msgid "Replace from:" -msgstr "" +msgstr "Заменить из:" #: src/slic3r/GUI/Plater.cpp:3401 msgid "Unable to replace with more than one volume" -msgstr "" +msgstr "Невозможно заменить более чем одним объём" #: src/slic3r/GUI/Plater.cpp:3401 src/slic3r/GUI/Plater.cpp:3480 msgid "Error during replace" -msgstr "" +msgstr "Ошибка при выполнении замены" #: src/slic3r/GUI/Plater.cpp:3472 msgid "Select the new file" -msgstr "" +msgstr "Выберите новый файл" #: src/slic3r/GUI/Plater.cpp:3480 msgid "File for the replace wasn't selected" -msgstr "" +msgstr "Файл для замены не выбран" #: src/slic3r/GUI/Plater.cpp:3571 msgid "Please select the file to reload" @@ -7036,11 +6362,11 @@ msgstr "В выбранном файле" #: src/slic3r/GUI/Plater.cpp:3603 msgid "differs from the original file" -msgstr "" +msgstr "отличается от исходного файла" #: src/slic3r/GUI/Plater.cpp:3603 msgid "Do you want to replace it" -msgstr "" +msgstr "Хотите заменить его" #: src/slic3r/GUI/Plater.cpp:3625 msgid "Reload from:" @@ -7072,38 +6398,40 @@ msgstr "3D-вид" #: src/slic3r/GUI/Plater.cpp:4809 msgid "Undo / Redo is processing" -msgstr "" +msgstr "Отмена / Повтор в процессе выполнения" #: src/slic3r/GUI/Plater.cpp:4811 #, boost-format msgid "" "Switching the printer technology from %1% to %2%.\n" -"Some %1% presets were modified, which will be lost after switching the " -"printer technology." +"Some %1% presets were modified, which will be lost after switching the printer technology." msgstr "" +"Смена технологии печати с %1% на %2%.\n" +"Некоторые профили %1% были изменены и будут потеряны после переключения технологии печати." #: src/slic3r/GUI/Plater.cpp:5008 msgid "Creating a new project while the current project is modified." -msgstr "" +msgstr "Создание нового проекта при изменении в текущем проекте." #: src/slic3r/GUI/Plater.cpp:5011 msgid "Creating a new project while some presets are modified." -msgstr "" +msgstr "Создание нового проекта при имеющихся изменениях в нескольких профилях." #: src/slic3r/GUI/Plater.cpp:5012 msgid "You can keep presets modifications to the new project or discard them" -msgstr "" +msgstr "Вы можете сохранить изменения в профилях в новом проекте или отменить их." #: src/slic3r/GUI/Plater.cpp:5013 msgid "" -"You can keep presets modifications to the new project, discard them or save " -"changes as new presets.\n" +"You can keep presets modifications to the new project, discard them or save changes as new presets.\n" "Note, if changes will be saved then new project wouldn't keep them" msgstr "" +"Вы можете сохранить изменённые профили в новом проекте, отменить их или сохранить изменения как новые профили.\n" +"Примечание: При сохранении изменений они не переносятся в новый проект." #: src/slic3r/GUI/Plater.cpp:5019 msgid "Creating a new project" -msgstr "" +msgstr "Создание нового проекта" #: src/slic3r/GUI/Plater.cpp:5050 msgid "Load Project" @@ -7209,44 +6537,41 @@ msgstr "Сохранить файл G-кода как:" #: src/slic3r/GUI/Plater.cpp:5657 msgid "Save SL1 / SL1S file as:" -msgstr "" +msgstr "Сохранить SL1 / SL1S файл как:" #: src/slic3r/GUI/Plater.cpp:5666 msgid "The provided file name is not valid." -msgstr "" +msgstr "Указано недопустимое имя файла." #: src/slic3r/GUI/Plater.cpp:5667 msgid "The following characters are not allowed by a FAT file system:" -msgstr "" +msgstr "Следующие символы не разрешены файловой системой FAT:" #: src/slic3r/GUI/Plater.cpp:5865 msgid "" "The plater is empty.\n" "Do you want to save the project?" msgstr "" +"На столе ничего нет.\n" +"Всё равно сохранить проект?" #: src/slic3r/GUI/Plater.cpp:5865 msgid "Save project" -msgstr "" +msgstr "Сохранение проекта" #: src/slic3r/GUI/Plater.cpp:6453 msgid "Export" msgstr "Экспорт" #: src/slic3r/GUI/Plater.cpp:6487 -msgid "" -"Custom supports, seams and multimaterial painting were removed after " -"repairing the mesh." -msgstr "" +msgid "Custom supports, seams and multimaterial painting were removed after repairing the mesh." +msgstr "После починки сетки были удалены пользовательские поддержки, швы и мультиматериальная покраска." #: src/slic3r/GUI/Plater.cpp:6601 msgid "Paste From Clipboard" msgstr "Вставка из буфера обмена" -#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2259 -#: src/slic3r/GUI/Tab.cpp:2482 src/slic3r/GUI/Tab.cpp:2588 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 +#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2259 src/slic3r/GUI/Tab.cpp:2482 src/slic3r/GUI/Tab.cpp:2588 src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 msgid "General" msgstr "Общие" @@ -7255,136 +6580,84 @@ msgid "Remember output directory" msgstr "Запоминать папку сохранения" #: src/slic3r/GUI/Preferences.cpp:121 -msgid "" -"If this is enabled, Slic3r will prompt the last output directory instead of " -"the one containing the input files." -msgstr "" -"Если включено, при сохранении G-кода PrusaSlicer откроет последний " -"использованный выходной каталог вместо того, где лежит исходный файл." +msgid "If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files." +msgstr "Если включено, при сохранении G-кода PrusaSlicer откроет последний использованный выходной каталог вместо того, где лежит исходный файл." #: src/slic3r/GUI/Preferences.cpp:127 msgid "Auto-center parts" msgstr "Автоцентровка моделей" #: src/slic3r/GUI/Preferences.cpp:129 -msgid "" -"If this is enabled, Slic3r will auto-center objects around the print bed " -"center." -msgstr "" -"Если включено, PrusaSlicer будет автоматически центрировать модели на столе." +msgid "If this is enabled, Slic3r will auto-center objects around the print bed center." +msgstr "Если включено, PrusaSlicer будет автоматически центрировать модели на столе." #: src/slic3r/GUI/Preferences.cpp:135 msgid "Background processing" msgstr "Фоновая обработка" #: src/slic3r/GUI/Preferences.cpp:137 -msgid "" -"If this is enabled, Slic3r will pre-process objects as soon as they're " -"loaded in order to save time when exporting G-code." -msgstr "" -"Если включено, PrusaSlicer будет предварительно просчитывать модели при " -"загрузке, чтобы сэкономить время при экспорте G-кода." +msgid "If this is enabled, Slic3r will pre-process objects as soon as they're loaded in order to save time when exporting G-code." +msgstr "Если включено, PrusaSlicer будет предварительно просчитывать модели при загрузке, чтобы сэкономить время при экспорте G-кода." #: src/slic3r/GUI/Preferences.cpp:146 msgid "Export sources full pathnames to 3mf and amf" msgstr "При экспорте в 3mf, amf, сохранять полные пути к исходным файлам" #: src/slic3r/GUI/Preferences.cpp:148 -msgid "" -"If enabled, allows the Reload from disk command to automatically find and " -"load the files when invoked." -msgstr "" -"Если включено, при выполнении команды \"Перезагрузить с диска\" программа " -"будут автоматически находить и загружать файлы проекта." +msgid "If enabled, allows the Reload from disk command to automatically find and load the files when invoked." +msgstr "Если включено, при выполнении команды «Перезагрузить с диска» программа будут автоматически находить и загружать файлы проекта." #: src/slic3r/GUI/Preferences.cpp:157 msgid "If enabled, sets PrusaSlicer as default application to open .3mf files." -msgstr "" -"Если включено, назначает PrusaSlicer в качестве приложения по умолчанию для " -"открытия .3mf файлов." +msgstr "Если включено, назначает PrusaSlicer в качестве приложения по умолчанию для открытия .3mf файлов." #: src/slic3r/GUI/Preferences.cpp:164 msgid "If enabled, sets PrusaSlicer as default application to open .stl files." -msgstr "" -"Если включено, назначает PrusaSlicer в качестве приложения по умолчанию для " -"открытия .stl файлов." +msgstr "Если включено, назначает PrusaSlicer в качестве приложения по умолчанию для открытия .stl файлов." #: src/slic3r/GUI/Preferences.cpp:175 -msgid "" -"If enabled, Slic3r downloads updates of built-in system presets in the " -"background. These updates are downloaded into a separate temporary location. " -"When a new preset version becomes available it is offered at application " -"startup." -msgstr "" -"Если включено, то PrusaSlicer будет загружать обновления встроенных " -"системных профилей в фоновом режиме. Эти обновления загружаются в отдельную " -"временную папку. Когда новые профили становятся доступны, они предлагаются " -"при запуске приложения." +msgid "If enabled, Slic3r downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup." +msgstr "Если включено, то PrusaSlicer будет загружать обновления встроенных системных профилей в фоновом режиме. Эти обновления загружаются в отдельную временную папку. Когда новые профили становятся доступны, они предлагаются при запуске приложения." #: src/slic3r/GUI/Preferences.cpp:180 msgid "Suppress \" - default - \" presets" -msgstr "Подавить профили по умолчанию" +msgstr "Подавлять профили по умолчанию" #: src/slic3r/GUI/Preferences.cpp:182 -msgid "" -"Suppress \" - default - \" presets in the Print / Filament / Printer " -"selections once there are any other valid presets available." -msgstr "" -"Подавлять профили по умолчанию во вкладках Настройки печати/Настройки прутка/" -"Настройки принтера, при наличии других допустимых профилей." +msgid "Suppress \" - default - \" presets in the Print / Filament / Printer selections once there are any other valid presets available." +msgstr "Подавлять профили по умолчанию во вкладках Настройки печати/Настройки прутка/Настройки принтера, при наличии других допустимых профилей." #: src/slic3r/GUI/Preferences.cpp:188 msgid "Show incompatible print and filament presets" msgstr "Показывать несовместимые профили печати и прутка" #: src/slic3r/GUI/Preferences.cpp:190 -msgid "" -"When checked, the print and filament presets are shown in the preset editor " -"even if they are marked as incompatible with the active printer" -msgstr "" -"Если включено, то профили печати и прутка отображаются в редакторе профилей, " -"даже если они помечены как несовместимые с активным принтером." +msgid "When checked, the print and filament presets are shown in the preset editor even if they are marked as incompatible with the active printer" +msgstr "Если включено, то профили печати и прутка отображаются в редакторе профилей, даже если они помечены как несовместимые с активным принтером" #: src/slic3r/GUI/Preferences.cpp:198 msgid "Show drop project dialog" msgstr "Диалоговое окно при перетаскивании файла-проекта" #: src/slic3r/GUI/Preferences.cpp:200 -msgid "" -"When checked, whenever dragging and dropping a project file on the " -"application, shows a dialog asking to select the action to take on the file " -"to load." -msgstr "" -"Если включено, то при каждом перетаскивании в приложение файла-проекта будет " -"отображается диалоговое окно с просьбой выбрать действие, которое необходимо " -"выполнить с файлом." +msgid "When checked, whenever dragging and dropping a project file on the application, shows a dialog asking to select the action to take on the file to load." +msgstr "Если включено, то при каждом перетаскивании в приложение файла-проекта будет отображается диалоговое окно с просьбой выбрать действие, которое необходимо выполнить с файлом." #: src/slic3r/GUI/Preferences.cpp:206 src/slic3r/GUI/Preferences.cpp:210 msgid "Allow just a single PrusaSlicer instance" msgstr "Только одни экземпляр программы" #: src/slic3r/GUI/Preferences.cpp:208 -msgid "" -"On OSX there is always only one instance of app running by default. However " -"it is allowed to run multiple instances of same app from the command line. " -"In such case this settings will allow only one instance." +msgid "On OSX there is always only one instance of app running by default. However it is allowed to run multiple instances of same app from the command line. In such case this settings will allow only one instance." msgstr "" #: src/slic3r/GUI/Preferences.cpp:212 -msgid "" -"If this is enabled, when starting PrusaSlicer and another instance of the " -"same PrusaSlicer is already running, that instance will be reactivated " -"instead." -msgstr "" -"Если включено, разрешена работа только одного экземпляра той же самой версии " -"программы." +msgid "If this is enabled, when starting PrusaSlicer and another instance of the same PrusaSlicer is already running, that instance will be reactivated instead." +msgstr "Если включено, разрешена работа только одного экземпляра той же самой версии программы." -#: src/slic3r/GUI/Preferences.cpp:220 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:896 -msgid "" -"Ask to save unsaved changes when closing the application or when loading a " -"new project" -msgstr "" +#: src/slic3r/GUI/Preferences.cpp:220 src/slic3r/GUI/UnsavedChangesDialog.cpp:896 +msgid "Ask to save unsaved changes when closing the application or when loading a new project" +msgstr "Спрашивать о несохранённых изменениях при закрытии приложения или загрузке нового проекта" #: src/slic3r/GUI/Preferences.cpp:222 msgid "" @@ -7392,51 +6665,41 @@ msgid "" "- Closing PrusaSlicer while some presets are modified,\n" "- Loading a new project while some presets are modified" msgstr "" +"Всегда спрашивать о несохранённых изменениях, при: \n" +"- Закрытии PrusaSlicer, если имеются изменения в профилях\n" +"- Загрузки нового проекта, если имеются изменения в профилях" -#: src/slic3r/GUI/Preferences.cpp:229 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:895 +#: src/slic3r/GUI/Preferences.cpp:229 src/slic3r/GUI/UnsavedChangesDialog.cpp:895 msgid "Ask for unsaved changes when selecting new preset" -msgstr "Запрос о несохраненных изменениях при выборе нового профиля" +msgstr "Спрашивать о несохранённых изменениях при выборе нового профиля" #: src/slic3r/GUI/Preferences.cpp:231 -msgid "" -"Always ask for unsaved changes when selecting new preset or resetting a " -"preset" -msgstr "" +msgid "Always ask for unsaved changes when selecting new preset or resetting a preset" +msgstr "Всегда спрашивать о несохранённых изменениях при выборе нового профиля или сбросе профиля." -#: src/slic3r/GUI/Preferences.cpp:236 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:894 +#: src/slic3r/GUI/Preferences.cpp:236 src/slic3r/GUI/UnsavedChangesDialog.cpp:894 msgid "Ask for unsaved changes when creating new project" -msgstr "" +msgstr "Спрашивать о несохранённых изменениях при создании нового проекта" #: src/slic3r/GUI/Preferences.cpp:238 msgid "Always ask for unsaved changes when creating new project" -msgstr "" +msgstr "Всегда спрашивать о несохранённых изменениях при создании нового проекта." #: src/slic3r/GUI/Preferences.cpp:245 msgid "Associate .gcode files to PrusaSlicer G-code Viewer" msgstr "Ассоциировать файлы .gcode с PrusaSlicer G-code Viewer" #: src/slic3r/GUI/Preferences.cpp:247 -msgid "" -"If enabled, sets PrusaSlicer G-code Viewer as default application to open ." -"gcode files." -msgstr "" -"Если включено, назначает PrusaSlicer G-code Viewer в качестве приложения по " -"умолчанию для открытия .gcode файлов." +msgid "If enabled, sets PrusaSlicer G-code Viewer as default application to open .gcode files." +msgstr "Если включено, назначает PrusaSlicer G-code Viewer в качестве приложения по умолчанию для открытия .gcode файлов." #: src/slic3r/GUI/Preferences.cpp:255 msgid "Use Retina resolution for the 3D scene" msgstr "Использовать разрешение дисплея Retina для окна 3D-вида" #: src/slic3r/GUI/Preferences.cpp:257 -msgid "" -"If enabled, the 3D scene will be rendered in Retina resolution. If you are " -"experiencing 3D performance problems, disabling this option may help." -msgstr "" -"Если включено, окно 3D-вида будет отображаться с разрешением дисплея Retina. " -"Если у вас возникают проблемы с производительностью 3D, отключение этой " -"опции может помочь." +msgid "If enabled, the 3D scene will be rendered in Retina resolution. If you are experiencing 3D performance problems, disabling this option may help." +msgstr "Если включено, окно 3D-вида будет отображаться с разрешением дисплея Retina. Если у вас возникают проблемы с производительностью 3D, отключение этой опции может помочь." #: src/slic3r/GUI/Preferences.cpp:267 src/slic3r/GUI/Preferences.cpp:269 msgid "Show splash screen" @@ -7444,24 +6707,19 @@ msgstr "Показывать заставку при запуске програ #: src/slic3r/GUI/Preferences.cpp:275 msgid "Clear Undo / Redo stack on new project" -msgstr "" +msgstr "Очищать стек Отмены / Повтора при создании нового проекта" #: src/slic3r/GUI/Preferences.cpp:277 -msgid "" -"Clear Undo / Redo stack on new project or when an existing project is loaded." -msgstr "" +msgid "Clear Undo / Redo stack on new project or when an existing project is loaded." +msgstr "Очищать стек Отмены / Повтора при создании нового проекта или при загрузке существующего проекта." #: src/slic3r/GUI/Preferences.cpp:283 msgid "Enable support for legacy 3DConnexion devices" msgstr "Включить поддержку устаревших устройств 3DConnexion" #: src/slic3r/GUI/Preferences.cpp:285 -msgid "" -"If enabled, the legacy 3DConnexion devices settings dialog is available by " -"pressing CTRL+M" -msgstr "" -"Если включено, диалоговое окно настроек устаревших устройств 3DConnexion " -"будет доступно при нажатии CTRL+M." +msgid "If enabled, the legacy 3DConnexion devices settings dialog is available by pressing CTRL+M" +msgstr "Если включено, диалоговое окно настроек устаревших устройств 3DConnexion будет доступно при нажатии CTRL+M." #: src/slic3r/GUI/Preferences.cpp:294 msgid "Camera" @@ -7472,8 +6730,7 @@ msgid "Use perspective camera" msgstr "Использовать вид в перспективе" #: src/slic3r/GUI/Preferences.cpp:301 -msgid "" -"If enabled, use perspective camera. If not enabled, use orthographic camera." +msgid "If enabled, use perspective camera. If not enabled, use orthographic camera." msgstr "Если включено, используется вид в перспективе, иначе - ортогональный." #: src/slic3r/GUI/Preferences.cpp:306 @@ -7482,9 +6739,7 @@ msgstr "Использовать свободную камеру" #: src/slic3r/GUI/Preferences.cpp:308 msgid "If enabled, use free camera. If not enabled, use constrained camera." -msgstr "" -"Если включено, используется свободное вращение камеры. Если выключено, " -"используется вращение камера с ограничениями." +msgstr "Если включено, используется свободное вращение камеры. Если выключено, используется вращение камера с ограничениями." #: src/slic3r/GUI/Preferences.cpp:313 msgid "Reverse direction of zoom with mouse wheel" @@ -7492,8 +6747,7 @@ msgstr "Обратное направление масштабирования #: src/slic3r/GUI/Preferences.cpp:315 msgid "If enabled, reverses the direction of zoom with mouse wheel" -msgstr "" -"Если включено, меняется направление масштабирования с помощью колеса мыши." +msgstr "Если включено, меняется направление масштабирования с помощью колеса мыши." #: src/slic3r/GUI/Preferences.cpp:323 msgid "GUI" @@ -7504,91 +6758,66 @@ msgid "Sequential slider applied only to top layer" msgstr "Ползунок положения инструмента применяется только к верхнему слою" #: src/slic3r/GUI/Preferences.cpp:348 -msgid "" -"If enabled, changes made using the sequential slider, in preview, apply only " -"to gcode top layer. If disabled, changes made using the sequential slider, " -"in preview, apply to the whole gcode." -msgstr "" -"Если включено, изменения, сделанные с помощью ползунка положения " -"инструмента, в окне предпросмотра нарезки, применяются только к верхнему " -"слою G-коду. Если отключено, изменения, сделанные с помощью ползунка " -"положения инструмента, в окне предпросмотра нарезки, применяются ко всему G-" -"коду." +msgid "If enabled, changes made using the sequential slider, in preview, apply only to gcode top layer. If disabled, changes made using the sequential slider, in preview, apply to the whole gcode." +msgstr "Если включено, изменения, сделанные с помощью ползунка положения инструмента, в окне предпросмотра нарезки, применяются только к верхнему слою G-коду. Если отключено, изменения, сделанные с помощью ползунка положения инструмента, в окне предпросмотра нарезки, применяются ко всему G-коду." #: src/slic3r/GUI/Preferences.cpp:355 msgid "Show sidebar collapse/expand button" msgstr "Показать кнопку свертывания/раскрытия боковой панели" #: src/slic3r/GUI/Preferences.cpp:357 -msgid "" -"If enabled, the button for the collapse sidebar will be appeared in top " -"right corner of the 3D Scene" -msgstr "" -"Если включено, в правом верхнем углу 3D-сцены появится кнопка свертывания " -"боковой панели." +msgid "If enabled, the button for the collapse sidebar will be appeared in top right corner of the 3D Scene" +msgstr "Если включено, в правом верхнем углу 3D-сцены появится кнопка свертывания боковой панели." #: src/slic3r/GUI/Preferences.cpp:364 -msgid "" -"If enabled, the descriptions of configuration parameters in settings tabs " -"wouldn't work as hyperlinks. If disabled, the descriptions of configuration " -"parameters in settings tabs will work as hyperlinks." -msgstr "" -"Если включено, то работа гиперссылок описаний параметров во вкладках " -"настроек будет отключена." +msgid "If enabled, the descriptions of configuration parameters in settings tabs wouldn't work as hyperlinks. If disabled, the descriptions of configuration parameters in settings tabs will work as hyperlinks." +msgstr "Если включено, то работа гиперссылок описаний параметров во вкладках настроек будет отключена." #: src/slic3r/GUI/Preferences.cpp:370 msgid "Use colors for axes values in Manipulation panel" -msgstr "" +msgstr "Раскрашивать значения осей на панели манипуляций" #: src/slic3r/GUI/Preferences.cpp:372 -msgid "" -"If enabled, the axes names and axes values will be colorized according to " -"the axes colors. If disabled, old UI will be used." -msgstr "" +msgid "If enabled, the axes names and axes values will be colorized according to the axes colors. If disabled, old UI will be used." +msgstr "Если включено, имена осей и значения осей будут раскрашены в соответствии с цветами осей." #: src/slic3r/GUI/Preferences.cpp:378 msgid "Order object volumes by types" -msgstr "" +msgstr "Упорядочить объёмы моделей по типам" #: src/slic3r/GUI/Preferences.cpp:380 -msgid "" -"If enabled, volumes will be always ordered inside the object. Correct order " -"is Model Part, Negative Volume, Modifier, Support Blocker and Support " -"Enforcer. If disabled, you can reorder Model Parts, Negative Volumes and " -"Modifiers. But one of the model parts have to be on the first place." +msgid "If enabled, volumes will be always ordered inside the object. Correct order is Model Part, Negative Volume, Modifier, Support Blocker and Support Enforcer. If disabled, you can reorder Model Parts, Negative Volumes and Modifiers. But one of the model parts have to be on the first place." msgstr "" +"Если включено, объёмы всегда будут упорядочиваться внутри объекта. Правильный порядок: часть модели, объём для исключения, модификатор, блокировщик поддержки и принудительная поддержка. Если этот параметр отключён, вы можете изменить порядок частей модели, объёма для исключения и модификаторов. Но одна из частей модели " +"должна быть на первом месте." #: src/slic3r/GUI/Preferences.cpp:387 msgid "Set settings tabs as menu items (experimental)" -msgstr "" +msgstr "Установить вкладки настроек как пункты меню (экспериментально)" #: src/slic3r/GUI/Preferences.cpp:389 -msgid "" -"If enabled, Settings Tabs will be placed as menu items. If disabled, old UI " -"will be used." -msgstr "" +msgid "If enabled, Settings Tabs will be placed as menu items. If disabled, old UI will be used." +msgstr "Если включено, вкладки настроек будут размещены как пункты меню. Если отключено, будет использоваться старый интерфейс." #: src/slic3r/GUI/Preferences.cpp:398 msgid "Show \"Tip of the day\" notification after start" -msgstr "" +msgstr "Показывать уведомление с полезным советом при запуске приложения" #: src/slic3r/GUI/Preferences.cpp:400 msgid "If enabled, useful hints are displayed at startup." -msgstr "" +msgstr "Если включено, будут показываться уведомления с полезном советом при запуске приложения." #: src/slic3r/GUI/Preferences.cpp:406 msgid "Notify about new releases" -msgstr "" +msgstr "Уведомлять о новых версиях программы" #: src/slic3r/GUI/Preferences.cpp:408 -msgid "" -"You will be notified about new release after startup acordingly: All = " -"Regular release and alpha / beta releases. Release only = regular release." -msgstr "" +msgid "You will be notified about new release after startup acordingly: All = Regular release and alpha / beta releases. Release only = regular release." +msgstr "При запуске приложения будет проверяться информация о наличии новых версий программы. Выберите, Все = последняя релизная версия и альфа/бета версия программы или только последний релиз." #: src/slic3r/GUI/Preferences.cpp:414 msgid "Release only" -msgstr "" +msgstr "Только последний релиз" #: src/slic3r/GUI/Preferences.cpp:423 msgid "Use custom size for toolbar icons" @@ -7596,8 +6825,7 @@ msgstr "Использовать нестандартный размер зна #: src/slic3r/GUI/Preferences.cpp:425 msgid "If enabled, you can change size of toolbar icons manually." -msgstr "" -"Если включено, вы можете изменить размер значков панели инструментов вручную." +msgstr "Если включено, вы можете изменить размер значков панели инструментов вручную." #: src/slic3r/GUI/Preferences.cpp:450 msgid "Render" @@ -7609,42 +6837,41 @@ msgstr "Использовать карты окружения" #: src/slic3r/GUI/Preferences.cpp:457 msgid "If enabled, renders object using the environment map." -msgstr "" -"Если включено, визуализация моделей выполняется с помощью карты окружения." +msgstr "Если включено, визуализация моделей выполняется с помощью карты окружения." #: src/slic3r/GUI/Preferences.cpp:470 msgid "Dark mode (experimental)" -msgstr "" +msgstr "Тёмная тема (экспериментально)" #: src/slic3r/GUI/Preferences.cpp:475 msgid "Enable dark mode" -msgstr "" +msgstr "Включить тёмную тему" #: src/slic3r/GUI/Preferences.cpp:477 -msgid "" -"If enabled, UI will use Dark mode colors. If disabled, old UI will be used." -msgstr "" +msgid "If enabled, UI will use Dark mode colors. If disabled, old UI will be used." +msgstr "Если включено, используется тёмная тема интерфейса программы. Если отключено - обычная стандартная тема интерфейса." #: src/slic3r/GUI/Preferences.cpp:486 msgid "Use system menu for application" -msgstr "" +msgstr "Меню приложения в стиле стандартного системного меню Windows" #: src/slic3r/GUI/Preferences.cpp:488 msgid "" "If enabled, application will use the standard Windows system menu,\n" -"but on some combination of display scales it can looks ugly. If disabled, " -"old UI will be used." -msgstr "" +"but on some combination of display scales it can looks ugly. If disabled, old UI will be used." +msgstr "Если включено, меню приложения будет использовать стиль стандартного системного меню Windows. Но при некоторых комбинациях масштабов отображения, а также с тёмной темой это может выглядеть некрасиво. Если отключено, будет использоваться старый стиль пользовательского интерфейса." #: src/slic3r/GUI/Preferences.cpp:557 msgid "Changes for the critical options" -msgstr "" +msgstr "Изменения важных настроек" #: src/slic3r/GUI/Preferences.cpp:559 msgid "" "Changing some options will trigger application restart.\n" "You will lose the content of the plater." msgstr "" +"Изменение некоторых настроек приведёт к перезапуску приложения.\n" +"Содержимое печатного стола будет утеряно." #: src/slic3r/GUI/Preferences.cpp:666 msgid "Icon size in a respect to the default size" @@ -7652,9 +6879,7 @@ msgstr "Размер значка относительно размера по #: src/slic3r/GUI/Preferences.cpp:681 msgid "Select toolbar icon size in respect to the default one." -msgstr "" -"Выбор размера значка панели инструментов по отношению к значению по " -"умолчанию." +msgstr "Выбор размера значка панели инструментов по отношению к значению по умолчанию." #: src/slic3r/GUI/Preferences.cpp:715 src/slic3r/GUI/Preferences.cpp:726 msgid "Old regular layout with the tab bar" @@ -7674,20 +6899,13 @@ msgstr "Настройка внешнего вида" #: src/slic3r/GUI/Preferences.cpp:778 msgid "Text colors" -msgstr "" +msgstr "Цвета текста" -#: src/slic3r/GUI/PresetComboBoxes.cpp:249 -#: src/slic3r/GUI/PresetComboBoxes.cpp:287 -#: src/slic3r/GUI/PresetComboBoxes.cpp:794 -#: src/slic3r/GUI/PresetComboBoxes.cpp:849 -#: src/slic3r/GUI/PresetComboBoxes.cpp:989 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1033 +#: src/slic3r/GUI/PresetComboBoxes.cpp:249 src/slic3r/GUI/PresetComboBoxes.cpp:287 src/slic3r/GUI/PresetComboBoxes.cpp:794 src/slic3r/GUI/PresetComboBoxes.cpp:849 src/slic3r/GUI/PresetComboBoxes.cpp:989 src/slic3r/GUI/PresetComboBoxes.cpp:1033 msgid "System presets" msgstr "Системные профили" -#: src/slic3r/GUI/PresetComboBoxes.cpp:291 -#: src/slic3r/GUI/PresetComboBoxes.cpp:853 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1037 +#: src/slic3r/GUI/PresetComboBoxes.cpp:291 src/slic3r/GUI/PresetComboBoxes.cpp:853 src/slic3r/GUI/PresetComboBoxes.cpp:1037 msgid "User presets" msgstr "Пользовательские профили" @@ -7708,13 +6926,11 @@ msgstr "Удалить физический принтер" msgid "Click to edit preset" msgstr "Нажмите, чтобы изменить профиль" -#: src/slic3r/GUI/PresetComboBoxes.cpp:697 -#: src/slic3r/GUI/PresetComboBoxes.cpp:737 +#: src/slic3r/GUI/PresetComboBoxes.cpp:697 src/slic3r/GUI/PresetComboBoxes.cpp:737 msgid "Add/Remove presets" msgstr "Добавить/удалить профиль" -#: src/slic3r/GUI/PresetComboBoxes.cpp:702 -#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3209 +#: src/slic3r/GUI/PresetComboBoxes.cpp:702 src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3209 msgid "Add physical printer" msgstr "Добавить физический профиль" @@ -7724,7 +6940,7 @@ msgstr "Изменить профиль" #: src/slic3r/GUI/PresetComboBoxes.cpp:722 msgid "Change extruder color" -msgstr "" +msgstr "Изменить цвет экструдера" #: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3209 msgid "Edit physical printer" @@ -7734,8 +6950,7 @@ msgstr "Изменить физический профиль" msgid "Delete physical printer" msgstr "Удалить физический принтер" -#: src/slic3r/GUI/PresetComboBoxes.cpp:864 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1051 +#: src/slic3r/GUI/PresetComboBoxes.cpp:864 src/slic3r/GUI/PresetComboBoxes.cpp:1051 msgid "Physical printers" msgstr "Физические принтеры" @@ -7747,50 +6962,34 @@ msgstr "Добавить/удалить пруток" msgid "Add/Remove materials" msgstr "Добавить/удалить материал" -#: src/slic3r/GUI/PresetComboBoxes.cpp:892 -#: src/slic3r/GUI/PresetComboBoxes.cpp:1075 +#: src/slic3r/GUI/PresetComboBoxes.cpp:892 src/slic3r/GUI/PresetComboBoxes.cpp:1075 msgid "Add/Remove printers" msgstr "Добавить/удалить принтер" #: src/slic3r/GUI/PresetHints.cpp:32 #, boost-format -msgid "" -"If estimated layer time is below ~%1%s, fan will run at %2%%% and print " -"speed will be reduced so that no less than %3%s are spent on that layer " -"(however, speed will never be reduced below %4%mm/s)." -msgstr "" -"Если расчётное время печати слоя меньше ~%1% сек., вентилятор будет работать " -"на %2%%%, а скорость печати будет уменьшена, так что на этот слой будет " -"затрачено не менее %3% сек. (однако скорость никогда не будет уменьшена ниже " -"%4%мм/с)." +msgid "If estimated layer time is below ~%1%s, fan will run at %2%%% and print speed will be reduced so that no less than %3%s are spent on that layer (however, speed will never be reduced below %4%mm/s)." +msgstr "Если расчётное время печати слоя меньше ~%1% сек., вентилятор будет работать на %2%%%, а скорость печати будет уменьшена, так что на этот слой будет затрачено не менее %3% сек. (однако скорость никогда не будет уменьшена ниже %4%мм/с)." #: src/slic3r/GUI/PresetHints.cpp:40 #, boost-format -msgid "" -"If estimated layer time is greater, but still below ~%1%s, fan will run at a " -"proportionally decreasing speed between %2%%% and %3%%%." -msgstr "" -"Если расчётное время печати слоя большое, но всё ещё ниже ~%1% сек., " -"вентилятор будет работать с плавно падающей скоростью между %2%%%-%3%%%." +msgid "If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%." +msgstr "Если расчётное время печати слоя большое, но всё ещё ниже ~%1% сек., вентилятор будет работать с плавно падающей скоростью между %2%%%-%3%%%." #: src/slic3r/GUI/PresetHints.cpp:44 #, boost-format -msgid "" -"If estimated layer time is greater, but still below ~%1%s, fan will run at " -"%2%%%" -msgstr "" +msgid "If estimated layer time is greater, but still below ~%1%s, fan will run at %2%%%" +msgstr "Если расчетное время слоя больше, но все ещё ниже ~%1%s, вентилятор будет работать на %2%%%." #: src/slic3r/GUI/PresetHints.cpp:55 #, boost-format msgid "Fan speed will be ramped from zero at layer %1% to %2%%% at layer %3%." -msgstr "" -"Скорость вентилятора будет увеличена с нуля на %1% слое до %2%%% на %3% слое." +msgstr "Скорость вентилятора будет увеличиваться от нуля на слое %1% до %2%%% на слое %3%." #: src/slic3r/GUI/PresetHints.cpp:57 #, boost-format msgid "During the other layers, fan will always run at %1%%%" -msgstr "" -"Во время печати других слоёв, вентилятор всегда будет работать на %1%%%\"" +msgstr "Во время печати других слоёв, вентилятор всегда будет работать на %1%%%" #: src/slic3r/GUI/PresetHints.cpp:57 #, boost-format @@ -7876,12 +7075,8 @@ msgid "%3.2f mm³/s at filament speed %3.2f mm/s." msgstr "%3.2f мм³/с при скорости прутка %3.2f мм/с." #: src/slic3r/GUI/PresetHints.cpp:215 -msgid "" -"Recommended object thin wall thickness: Not available due to invalid layer " -"height." -msgstr "" -"Рекомендуемая толщина тонких стенок модели: недоступно из-за недопустимой " -"высоты слоя." +msgid "Recommended object thin wall thickness: Not available due to invalid layer height." +msgstr "Рекомендуемая толщина тонких стенок модели: недоступно из-за недопустимой высоты слоя." #: src/slic3r/GUI/PresetHints.cpp:221 #, c-format, boost-format @@ -7894,19 +7089,12 @@ msgid "%d lines: %.2f mm" msgstr "%d линий периметра - %.2f мм" #: src/slic3r/GUI/PresetHints.cpp:240 -msgid "" -"Recommended object thin wall thickness: Not available due to excessively " -"small extrusion width." -msgstr "" -"Рекомендуемая толщина тонких стенок модели: недоступно из-за чрезмерно малой " -"ширины экструзии." +msgid "Recommended object thin wall thickness: Not available due to excessively small extrusion width." +msgstr "Рекомендуемая толщина тонких стенок модели: недоступно из-за чрезмерно малой ширины экструзии." #: src/slic3r/GUI/PresetHints.cpp:269 -msgid "" -"Top / bottom shell thickness hint: Not available due to invalid layer height." -msgstr "" -"Подсказка о толщине верхней/нижней оболочки недоступна из-за неправильной " -"высоты слоя." +msgid "Top / bottom shell thickness hint: Not available due to invalid layer height." +msgstr "Подсказка о толщине верхней/нижней оболочки недоступна из-за неправильной высоты слоя." #: src/slic3r/GUI/PresetHints.cpp:282 #, boost-format @@ -7946,9 +7134,7 @@ msgstr "Загрузить на хост принтера со следующи #: src/slic3r/GUI/PrintHostDialogs.cpp:50 msgid "Use forward slashes ( / ) as a directory separator if needed." -msgstr "" -"При необходимости используйте косую черту ( / ) в качестве разделителя " -"каталогов." +msgstr "При необходимости используйте косую черту ( / ) в качестве разделителя каталогов." #: src/slic3r/GUI/PrintHostDialogs.cpp:59 msgid "Group" @@ -7957,19 +7143,19 @@ msgstr "Группа" #: src/slic3r/GUI/PrintHostDialogs.cpp:83 #, c-format, boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" -msgstr "" +msgstr "Имя загружаемого файла не заканчивается на \"%s\". Хотите продолжить?" #: src/slic3r/GUI/PrintHostDialogs.cpp:91 msgid "Upload and Print" -msgstr "" +msgstr "Загрузить и напечатать" #: src/slic3r/GUI/PrintHostDialogs.cpp:102 msgid "Upload and Simulate" -msgstr "" +msgstr "Загрузить и сэмулировать" #: src/slic3r/GUI/PrintHostDialogs.cpp:114 msgid "Upload" -msgstr "" +msgstr "Загрузить" #: src/slic3r/GUI/PrintHostDialogs.cpp:246 msgid "ID" @@ -7990,7 +7176,7 @@ msgstr "Хост" #: src/slic3r/GUI/PrintHostDialogs.cpp:250 msgctxt "OfFile" msgid "Size" -msgstr "" +msgstr "Размер" #: src/slic3r/GUI/PrintHostDialogs.cpp:251 msgid "Filename" @@ -8008,8 +7194,7 @@ msgstr "Отменить выбранное" msgid "Show error message" msgstr "Показать сообщение об ошибке" -#: src/slic3r/GUI/PrintHostDialogs.cpp:315 -#: src/slic3r/GUI/PrintHostDialogs.cpp:370 +#: src/slic3r/GUI/PrintHostDialogs.cpp:315 src/slic3r/GUI/PrintHostDialogs.cpp:370 msgid "Enqueued" msgstr "Поставлено в очередь" @@ -8037,13 +7222,8 @@ msgstr "Ошибка при отправке на хост печати:" msgid "NO RAMMING AT ALL" msgstr "НЕ ДОПУСКАТЬ РЭММИНГ" -#: src/slic3r/GUI/RammingChart.cpp:90 src/slic3r/GUI/WipeTowerDialog.cpp:114 -#: src/libslic3r/PrintConfig.cpp:929 src/libslic3r/PrintConfig.cpp:973 -#: src/libslic3r/PrintConfig.cpp:988 src/libslic3r/PrintConfig.cpp:3154 -#: src/libslic3r/PrintConfig.cpp:3163 src/libslic3r/PrintConfig.cpp:3304 -#: src/libslic3r/PrintConfig.cpp:3312 src/libslic3r/PrintConfig.cpp:3320 -#: src/libslic3r/PrintConfig.cpp:3327 src/libslic3r/PrintConfig.cpp:3335 -#: src/libslic3r/PrintConfig.cpp:3343 +#: src/slic3r/GUI/RammingChart.cpp:90 src/slic3r/GUI/WipeTowerDialog.cpp:114 src/libslic3r/PrintConfig.cpp:929 src/libslic3r/PrintConfig.cpp:973 src/libslic3r/PrintConfig.cpp:988 src/libslic3r/PrintConfig.cpp:3154 src/libslic3r/PrintConfig.cpp:3163 src/libslic3r/PrintConfig.cpp:3304 src/libslic3r/PrintConfig.cpp:3312 +#: src/libslic3r/PrintConfig.cpp:3320 src/libslic3r/PrintConfig.cpp:3327 src/libslic3r/PrintConfig.cpp:3335 src/libslic3r/PrintConfig.cpp:3343 msgid "s" msgstr "с" @@ -8051,8 +7231,7 @@ msgstr "с" msgid "Volumetric speed" msgstr "Объёмная скорость подачи" -#: src/slic3r/GUI/RammingChart.cpp:95 src/libslic3r/PrintConfig.cpp:886 -#: src/libslic3r/PrintConfig.cpp:1776 +#: src/slic3r/GUI/RammingChart.cpp:95 src/libslic3r/PrintConfig.cpp:886 src/libslic3r/PrintConfig.cpp:1776 msgid "mm³/s" msgstr "мм³/с" @@ -8061,8 +7240,7 @@ msgstr "мм³/с" msgid "Save %s as:" msgstr "Сохранить %s как:" -#: src/slic3r/GUI/SavePresetDialog.cpp:101 -#: src/slic3r/GUI/SavePresetDialog.cpp:109 +#: src/slic3r/GUI/SavePresetDialog.cpp:101 src/slic3r/GUI/SavePresetDialog.cpp:109 msgid "The supplied name is not valid;" msgstr "Заданное имя недопустимо;" @@ -8089,11 +7267,8 @@ msgstr "Профиль с именем \"%1%\" уже существует." #: src/slic3r/GUI/SavePresetDialog.cpp:136 #, boost-format -msgid "" -"Preset with name \"%1%\" already exists and is incompatible with selected " -"printer." -msgstr "" -"Профиль с именем \"%1%\" уже существует и несовместим с выбранным принтером." +msgid "Preset with name \"%1%\" already exists and is incompatible with selected printer." +msgstr "Профиль с именем \"%1%\" уже существует и несовместим с выбранным принтером." #: src/slic3r/GUI/SavePresetDialog.cpp:137 msgid "Note: This preset will be replaced after saving" @@ -8113,10 +7288,9 @@ msgstr "Имя не должно заканчиваться пробелом." #: src/slic3r/GUI/SavePresetDialog.cpp:157 msgid "The name cannot be the same as a preset alias name." -msgstr "" +msgstr "Имя не должно совпадать с именем предустановленного профиля." -#: src/slic3r/GUI/SavePresetDialog.cpp:191 -#: src/slic3r/GUI/SavePresetDialog.cpp:197 +#: src/slic3r/GUI/SavePresetDialog.cpp:191 src/slic3r/GUI/SavePresetDialog.cpp:197 msgid "Save preset" msgstr "Сохранение профиля" @@ -8147,22 +7321,18 @@ msgstr "Сменить \"%1%\" на \"%2%\" для этого физическо #: src/slic3r/GUI/SavePresetDialog.cpp:326 #, boost-format msgid "Add \"%1%\" as a next preset for the the physical printer \"%2%\"" -msgstr "" -"Добавить \"%1%\" в качестве следующего профиля для физического принтера \"%2%" -"\"" +msgstr "Добавить \"%1%\" в качестве следующего профиля для физического принтера \"%2%\"" #: src/slic3r/GUI/SavePresetDialog.cpp:327 #, boost-format msgid "Just switch to \"%1%\" preset" msgstr "Просто переключиться на профиль \"%1%\"" -#: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2616 +#: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 src/slic3r/GUI/Tab.cpp:2616 msgid "Stealth" msgstr "Тихий режим" -#: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2610 +#: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 src/slic3r/GUI/Tab.cpp:2610 msgid "Normal" msgstr "Нормальный режим" @@ -8204,71 +7374,61 @@ msgstr "Отмасштабировать под область печати" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:114 msgid "Data to send" -msgstr "" +msgstr "Отправляемые данные" -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:550 -#: src/slic3r/GUI/SendSystemInfoDialog.cpp:618 +#: src/slic3r/GUI/SendSystemInfoDialog.cpp:550 src/slic3r/GUI/SendSystemInfoDialog.cpp:618 msgid "Send system info" -msgstr "" +msgstr "Отправить информацию о системе" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:581 #, boost-format -msgid "" -"This is the first time you are running %1%. We would like to ask you to send " -"some of your system information to us. This will only happen once and we " -"will not ask you to do this again (only after you upgrade to the next " -"version)." -msgstr "" +msgid "This is the first time you are running %1%. We would like to ask you to send some of your system information to us. This will only happen once and we will not ask you to do this again (only after you upgrade to the next version)." +msgstr "Это первый запуск %1%. Мы хотели бы попросить вас отправить нам некоторую информацию о вашей системе. Это произойдет только один раз, и мы не будем просить вас делать это снова (только после обновления до следующей версии)." #: src/slic3r/GUI/SendSystemInfoDialog.cpp:585 -msgid "" -"If we know your hardware, operating system, etc., it will greatly help us in " -"development and prioritization, because we will be able to focus our effort " -"more efficiently and spend time on features that are needed the most." -msgstr "" +msgid "If we know your hardware, operating system, etc., it will greatly help us in development and prioritization, because we will be able to focus our effort more efficiently and spend time on features that are needed the most." +msgstr "Если мы узнаем ваше оборудование, операционную систему и т.д., это поможет нам в разработке и определении приоритетов, так как мы сможем более эффективно сфокусировать наши усилия и время на функции, которые нужны больше всего." #: src/slic3r/GUI/SendSystemInfoDialog.cpp:588 msgid "Is it safe?" -msgstr "" +msgstr "Это безопасно?" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:590 #, boost-format msgid "" -"We do not send any personal information nor anything that would allow us to " -"identify you later. To detect duplicate entries, a unique number derived " -"from your system is sent, but the source information cannot be " -"reconstructed. Apart from that, only general data about your OS, hardware " -"and OpenGL installation are sent. PrusaSlicer is open source, if you want to " -"inspect the code actually performing the communication, see %1%." +"We do not send any personal information nor anything that would allow us to identify you later. To detect duplicate entries, a unique number derived from your system is sent, but the source information cannot be reconstructed. Apart from that, only general data about your OS, hardware and OpenGL installation are sent. " +"PrusaSlicer is open source, if you want to inspect the code actually performing the communication, see %1%." msgstr "" +"Мы не отправляем никакой личной информации или чего-либо, что позволило бы нам идентифицировать вас позже. Для обнаружения повторяющихся записей отправляется уникальный номер, полученный из вашей системы, но исходная информация не может быть восстановлена. Кроме того, отправляются только общие данные о вашей ОС, " +"оборудовании и установленной версии OpenGL. PrusaSlicer имеет открытый исходный код, если вы хотите проверить код, отвечающий за обмен данными, смотрите %1%." #: src/slic3r/GUI/SendSystemInfoDialog.cpp:614 msgid "Show verbatim data that will be sent" -msgstr "" +msgstr "Показать данные, которые будут отправлены" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:616 msgid "Ask me next time" -msgstr "" +msgstr "Спросить в следующий раз" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:617 msgid "Do not send anything" -msgstr "" +msgstr "Ничего не отправлять" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:703 msgid "System info sent successfully. Thank you." -msgstr "" +msgstr "Информация о системе успешно отправлена. Спасибо." #: src/slic3r/GUI/SendSystemInfoDialog.cpp:706 msgid "Sending system info failed!" -msgstr "" +msgstr "Не удалось отправить информацию о системе!" #: src/slic3r/GUI/SendSystemInfoDialog.cpp:713 msgid "Sending system info was cancelled." -msgstr "" +msgstr "Отправка информации о системе отменена." #: src/slic3r/GUI/SendSystemInfoDialog.cpp:720 msgid "Sending system info..." -msgstr "" +msgstr "Отправка информации о системе..." #: src/slic3r/GUI/SysInfoDialog.cpp:84 msgid "System Information" @@ -8276,11 +7436,11 @@ msgstr "Системная информация" #: src/slic3r/GUI/SysInfoDialog.cpp:150 msgid "Blacklisted libraries loaded into PrusaSlicer process:" -msgstr "" +msgstr "Библиотеки из черного списка загружены в процесс PrusaSlicer:" #: src/slic3r/GUI/SysInfoDialog.cpp:162 msgid "Eigen vectorization supported:" -msgstr "" +msgstr "Внутренняя векторизация поддерживается:" #: src/slic3r/GUI/SysInfoDialog.cpp:169 msgid "Copy to Clipboard" @@ -8304,7 +7464,7 @@ msgstr "Выберите профили печати, с которыми это #: src/slic3r/GUI/Tab.cpp:216 msgid "Compare this preset with some another" -msgstr "" +msgstr "Сравнить этот профиль с другим" #. TRN "Save current Settings" #: src/slic3r/GUI/Tab.cpp:218 @@ -8320,9 +7480,7 @@ msgstr "Удалить этот профиль" msgid "" "Hover the cursor over buttons to find more information \n" "or click this button." -msgstr "" -"Наведите курсор на кнопки для получения дополнительной информации или " -"нажмите эту кнопку." +msgstr "Наведите курсор на кнопки для получения дополнительной информации или нажмите эту кнопку." #: src/slic3r/GUI/Tab.cpp:227 #, boost-format @@ -8334,19 +7492,12 @@ msgid "Detach from system preset" msgstr "Отсоединить от системного профиля" #: src/slic3r/GUI/Tab.cpp:1311 -msgid "" -"A copy of the current system preset will be created, which will be detached " -"from the system preset." -msgstr "" -"Будет создана копия текущего системного профиля, который будет отсоединён от " -"системного профиля." +msgid "A copy of the current system preset will be created, which will be detached from the system preset." +msgstr "Будет создана копия текущего системного профиля, который будет отсоединён от системного профиля." #: src/slic3r/GUI/Tab.cpp:1312 -msgid "" -"The current custom preset will be detached from the parent system preset." -msgstr "" -"Текущий пользовательский профиль будет отсоединён от родительского " -"системного профиля." +msgid "The current custom preset will be detached from the parent system preset." +msgstr "Текущий пользовательский профиль будет отсоединён от родительского системного профиля." #: src/slic3r/GUI/Tab.cpp:1315 msgid "Modifications to the current profile will be saved." @@ -8377,11 +7528,8 @@ msgid "It can't be deleted or modified." msgstr "Его нельзя удалить или изменить." #: src/slic3r/GUI/Tab.cpp:1360 -msgid "" -"Any modifications should be saved as a new preset inherited from this one." -msgstr "" -"Любые изменения должны быть сохранены как новый профиль, унаследованный от " -"текущего." +msgid "Any modifications should be saved as a new preset inherited from this one." +msgstr "Любые изменения должны быть сохранены как новый профиль, унаследованный от текущего." #: src/slic3r/GUI/Tab.cpp:1361 msgid "To do that please specify a new name for the preset." @@ -8445,7 +7593,7 @@ msgstr "Качество (замедляет нарезку)" #: src/slic3r/GUI/Tab.cpp:1496 msgid "Fuzzy skin (experimental)" -msgstr "" +msgstr "Нечёткая оболочка (ЭКСПЕРИМЕНТАЛЬНО)" #: src/slic3r/GUI/Tab.cpp:1519 msgid "Reducing printing time" @@ -8527,47 +7675,43 @@ msgstr "Выходной файл" msgid "Post-processing scripts" msgstr "Скрипты постобработки" -#: src/slic3r/GUI/Tab.cpp:1700 src/slic3r/GUI/Tab.cpp:1701 -#: src/slic3r/GUI/Tab.cpp:2079 src/slic3r/GUI/Tab.cpp:2080 -#: src/slic3r/GUI/Tab.cpp:2463 src/slic3r/GUI/Tab.cpp:2464 -#: src/slic3r/GUI/Tab.cpp:2535 src/slic3r/GUI/Tab.cpp:2536 -#: src/slic3r/GUI/Tab.cpp:4247 src/slic3r/GUI/Tab.cpp:4248 +#: src/slic3r/GUI/Tab.cpp:1700 src/slic3r/GUI/Tab.cpp:1701 src/slic3r/GUI/Tab.cpp:2079 src/slic3r/GUI/Tab.cpp:2080 src/slic3r/GUI/Tab.cpp:2463 src/slic3r/GUI/Tab.cpp:2464 src/slic3r/GUI/Tab.cpp:2535 src/slic3r/GUI/Tab.cpp:2536 src/slic3r/GUI/Tab.cpp:4247 src/slic3r/GUI/Tab.cpp:4248 msgid "Notes" msgstr "Заметки" -#: src/slic3r/GUI/Tab.cpp:1707 src/slic3r/GUI/Tab.cpp:2087 -#: src/slic3r/GUI/Tab.cpp:2470 src/slic3r/GUI/Tab.cpp:2542 -#: src/slic3r/GUI/Tab.cpp:4255 src/slic3r/GUI/Tab.cpp:4402 +#: src/slic3r/GUI/Tab.cpp:1707 src/slic3r/GUI/Tab.cpp:2087 src/slic3r/GUI/Tab.cpp:2470 src/slic3r/GUI/Tab.cpp:2542 src/slic3r/GUI/Tab.cpp:4255 src/slic3r/GUI/Tab.cpp:4402 msgid "Dependencies" msgstr "Зависимости" -#: src/slic3r/GUI/Tab.cpp:1708 src/slic3r/GUI/Tab.cpp:2088 -#: src/slic3r/GUI/Tab.cpp:2471 src/slic3r/GUI/Tab.cpp:2543 -#: src/slic3r/GUI/Tab.cpp:4256 src/slic3r/GUI/Tab.cpp:4403 +#: src/slic3r/GUI/Tab.cpp:1708 src/slic3r/GUI/Tab.cpp:2088 src/slic3r/GUI/Tab.cpp:2471 src/slic3r/GUI/Tab.cpp:2543 src/slic3r/GUI/Tab.cpp:4256 src/slic3r/GUI/Tab.cpp:4403 msgid "Profile dependencies" msgstr "Зависимости профиля" #: src/slic3r/GUI/Tab.cpp:1746 msgid "Post processing scripts shall modify G-code file in place." -msgstr "" +msgstr "Скрипты постобработки модифицируют файл G-кода так как вам нужно." #: src/slic3r/GUI/Tab.cpp:1819 #, c-format, boost-format msgid "" "The following line %s contains reserved keywords.\n" -"Please remove it, as it may cause problems in G-code visualization and " -"printing time estimation." +"Please remove it, as it may cause problems in G-code visualization and printing time estimation." msgid_plural "" "The following lines %s contain reserved keywords.\n" -"Please remove them, as they may cause problems in G-code visualization and " -"printing time estimation." +"Please remove them, as they may cause problems in G-code visualization and printing time estimation." msgstr[0] "" +"Следующая строка %s содержит зарезервированные ключевые слова.\n" +"Удалите её, так как это может вызвать проблемы при визуализации G-кода и оценке времени печати." msgstr[1] "" +"Следующие строки %s содержат зарезервированные ключевые слова.\n" +"Удалите их, так как это может вызвать проблемы при визуализации G-кода и оценке времени печати." msgstr[2] "" +"Следующие строки %s содержат зарезервированные ключевые слова.\n" +"Удалите их, так как это может вызвать проблемы при визуализации G-кода и оценке времени печати." #: src/slic3r/GUI/Tab.cpp:1824 msgid "Found reserved keywords in" -msgstr "" +msgstr "Найдены зарезервированные ключевые слова в" #: src/slic3r/GUI/Tab.cpp:1838 msgid "Filament Overrides" @@ -8585,8 +7729,7 @@ msgstr "Стол" msgid "Cooling" msgstr "Охлаждение" -#: src/slic3r/GUI/Tab.cpp:1973 src/libslic3r/PrintConfig.cpp:1888 -#: src/libslic3r/PrintConfig.cpp:2938 +#: src/slic3r/GUI/Tab.cpp:1973 src/libslic3r/PrintConfig.cpp:1888 src/libslic3r/PrintConfig.cpp:2938 msgid "Enable" msgstr "Вкл." @@ -8612,28 +7755,21 @@ msgstr "Параметры черновой башни" #: src/slic3r/GUI/Tab.cpp:2021 msgid "Toolchange parameters with single extruder MM printers" -msgstr "" -"Параметры смены инструмента в одноэкструдерных мультиматериальных принтерах" +msgstr "Параметры смены инструмента в одноэкструдерных мультиматериальных принтерах" #: src/slic3r/GUI/Tab.cpp:2034 msgid "Ramming settings" msgstr "Настройки рэмминга" -#: src/slic3r/GUI/Tab.cpp:2058 src/slic3r/GUI/Tab.cpp:2375 -#: src/slic3r/GUI/Tab.cpp:3926 src/libslic3r/GCode.cpp:733 -#: src/libslic3r/PrintConfig.cpp:2444 +#: src/slic3r/GUI/Tab.cpp:2058 src/slic3r/GUI/Tab.cpp:2375 src/slic3r/GUI/Tab.cpp:3926 src/libslic3r/GCode.cpp:733 src/libslic3r/PrintConfig.cpp:2444 msgid "Custom G-code" msgstr "Пользовательский G-код" -#: src/slic3r/GUI/Tab.cpp:2059 src/slic3r/GUI/Tab.cpp:2376 -#: src/libslic3r/GCode.cpp:707 src/libslic3r/PrintConfig.cpp:2394 -#: src/libslic3r/PrintConfig.cpp:2409 +#: src/slic3r/GUI/Tab.cpp:2059 src/slic3r/GUI/Tab.cpp:2376 src/libslic3r/GCode.cpp:707 src/libslic3r/PrintConfig.cpp:2394 src/libslic3r/PrintConfig.cpp:2409 msgid "Start G-code" msgstr "Стартовый G-код" -#: src/slic3r/GUI/Tab.cpp:2069 src/slic3r/GUI/Tab.cpp:2386 -#: src/libslic3r/GCode.cpp:708 src/libslic3r/PrintConfig.cpp:662 -#: src/libslic3r/PrintConfig.cpp:672 +#: src/slic3r/GUI/Tab.cpp:2069 src/slic3r/GUI/Tab.cpp:2386 src/libslic3r/GCode.cpp:708 src/libslic3r/PrintConfig.cpp:662 src/libslic3r/PrintConfig.cpp:672 msgid "End G-code" msgstr "Завершающий G-код" @@ -8643,32 +7779,21 @@ msgstr "Подсказки об объёмном расходе недоступ #: src/slic3r/GUI/Tab.cpp:2226 msgid "" -"Note: All parameters from this group are moved to the Physical Printer " -"settings (see changelog).\n" +"Note: All parameters from this group are moved to the Physical Printer settings (see changelog).\n" "\n" -"A new Physical Printer profile is created by clicking on the \"cog\" icon " -"right of the Printer profiles combo box, by selecting the \"Add physical " -"printer\" item in the Printer combo box. The Physical Printer profile editor " -"opens also when clicking on the \"cog\" icon in the Printer settings tab. " -"The Physical Printer profiles are being stored into PrusaSlicer/" -"physical_printer directory." +"A new Physical Printer profile is created by clicking on the \"cog\" icon right of the Printer profiles combo box, by selecting the \"Add physical printer\" item in the Printer combo box. The Physical Printer profile editor opens also when clicking on the \"cog\" icon in the Printer settings tab. The Physical Printer " +"profiles are being stored into PrusaSlicer/physical_printer directory." msgstr "" -"Примечание: все параметры из этой группы перенесены в настройки физического " -"принтера (см. список изменений).\n" +"Примечание: все параметры из этой группы перенесены в настройки физического принтера (см. список изменений).\n" "\n" -"Новый профиль физического принтера создаётся нажатием по значку \"шестеренка" -"\" справа от поля со списком профилей принтеров, выбрав \"Добавить " -"физический принтер\". Редактор профиля физического принтера открывается " -"также при нажатии на значок \"шестеренка\" на вкладке настройки принтера. " -"Профили физического принтера сохраняются в папке PrusaSlicer/" -"physical_printer." +"Новый профиль физического принтера создаётся нажатием по значку \"шестеренка\" справа от поля со списком профилей принтеров, выбрав «Добавить физический принтер». Редактор профиля физического принтера открывается также при нажатии на значок шестеренки на вкладке настройки принтера. Профили физического принтера сохраняются " +"в папке PrusaSlicer/physical_printer." #: src/slic3r/GUI/Tab.cpp:2260 src/slic3r/GUI/Tab.cpp:2483 msgid "Size and coordinates" msgstr "Размер и координаты" -#: src/slic3r/GUI/Tab.cpp:2269 src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 +#: src/slic3r/GUI/Tab.cpp:2269 src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 msgid "Capabilities" msgstr "Характеристики принтера" @@ -8680,31 +7805,25 @@ msgstr "Количество экструдеров у принтера." msgid "" "Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" -"Do you want to change the diameter for all extruders to first extruder " -"nozzle diameter value?" +"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?" msgstr "" "Выбран мультиматериальный одиночный экструдер, \n" "поэтому все экструдеры должны иметь одинаковый диаметр.\n" -"Изменить диаметр всех экструдеров на значение диаметра сопла первого " -"экструдера?" +"Изменить диаметр всех экструдеров на значение диаметра сопла первого экструдера?" -#: src/slic3r/GUI/Tab.cpp:2307 src/slic3r/GUI/Tab.cpp:2744 -#: src/libslic3r/PrintConfig.cpp:1852 +#: src/slic3r/GUI/Tab.cpp:2307 src/slic3r/GUI/Tab.cpp:2744 src/libslic3r/PrintConfig.cpp:1852 msgid "Nozzle diameter" msgstr "Диаметр сопла" -#: src/slic3r/GUI/Tab.cpp:2396 src/libslic3r/GCode.cpp:709 -#: src/libslic3r/PrintConfig.cpp:402 +#: src/slic3r/GUI/Tab.cpp:2396 src/libslic3r/GCode.cpp:709 src/libslic3r/PrintConfig.cpp:402 msgid "Before layer change G-code" msgstr "G-код, выполняемый перед сменой слоя" -#: src/slic3r/GUI/Tab.cpp:2406 src/libslic3r/GCode.cpp:710 -#: src/libslic3r/PrintConfig.cpp:1578 +#: src/slic3r/GUI/Tab.cpp:2406 src/libslic3r/GCode.cpp:710 src/libslic3r/PrintConfig.cpp:1578 msgid "After layer change G-code" msgstr "G-код выполняемый после смены слоя" -#: src/slic3r/GUI/Tab.cpp:2416 src/libslic3r/GCode.cpp:711 -#: src/libslic3r/PrintConfig.cpp:2821 +#: src/slic3r/GUI/Tab.cpp:2416 src/libslic3r/GCode.cpp:711 src/libslic3r/PrintConfig.cpp:2821 msgid "Tool change G-code" msgstr "G-код выполняемый при смене инструмента" @@ -8716,8 +7835,7 @@ msgstr "G-код выполняемый между моделями (для по msgid "Color Change G-code" msgstr "G-код смены цвета" -#: src/slic3r/GUI/Tab.cpp:2445 src/libslic3r/GCode.cpp:714 -#: src/libslic3r/PrintConfig.cpp:2435 +#: src/slic3r/GUI/Tab.cpp:2445 src/libslic3r/GCode.cpp:714 src/libslic3r/PrintConfig.cpp:2435 msgid "Pause Print G-code" msgstr "G-код паузы печати" @@ -8745,12 +7863,8 @@ msgstr "Корректировка" msgid "Exposure" msgstr "Экспозиция" -#: src/slic3r/GUI/Tab.cpp:2586 src/slic3r/GUI/Tab.cpp:2671 -#: src/libslic3r/PrintConfig.cpp:1607 src/libslic3r/PrintConfig.cpp:1642 -#: src/libslic3r/PrintConfig.cpp:1659 src/libslic3r/PrintConfig.cpp:1676 -#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1702 -#: src/libslic3r/PrintConfig.cpp:1712 src/libslic3r/PrintConfig.cpp:1725 -#: src/libslic3r/PrintConfig.cpp:1735 +#: src/slic3r/GUI/Tab.cpp:2586 src/slic3r/GUI/Tab.cpp:2671 src/libslic3r/PrintConfig.cpp:1607 src/libslic3r/PrintConfig.cpp:1642 src/libslic3r/PrintConfig.cpp:1659 src/libslic3r/PrintConfig.cpp:1676 src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1702 src/libslic3r/PrintConfig.cpp:1712 +#: src/libslic3r/PrintConfig.cpp:1725 src/libslic3r/PrintConfig.cpp:1735 msgid "Machine limits" msgstr "Ограничения принтера" @@ -8768,9 +7882,7 @@ msgstr "Максимальная скорость (#define DEFAULT_MAX_FEEDRATE #: src/slic3r/GUI/Tab.cpp:2629 msgid "Maximum accelerations" -msgstr "" -"Максимальное ускорение (#define DEFAULT_MAX_ACCELERATION {X,Y,Z,E}, #define " -"DEFAULT_RETRACT_ACCELERATION, )" +msgstr "Максимальное ускорение (#define DEFAULT_MAX_ACCELERATION {X,Y,Z,E}, #define DEFAULT_RETRACT_ACCELERATION, )" #: src/slic3r/GUI/Tab.cpp:2638 msgid "Jerk limits" @@ -8778,9 +7890,7 @@ msgstr "Ограничение рывка (#define DEFAULT_{X,Y,Z,E}JERK)" #: src/slic3r/GUI/Tab.cpp:2643 msgid "Minimum feedrates" -msgstr "" -"Минимальная скорость (#define DEFAULT_MINIMUMFEEDRATE и #define " -"DEFAULT_MINTRAVELFEEDRATE)" +msgstr "Минимальная скорость (#define DEFAULT_MINIMUMFEEDRATE и #define DEFAULT_MINTRAVELFEEDRATE)" #: src/slic3r/GUI/Tab.cpp:2696 src/slic3r/GUI/Tab.cpp:2705 msgid "Single extruder MM setup" @@ -8788,16 +7898,11 @@ msgstr "Экструдер в ММ принтере" #: src/slic3r/GUI/Tab.cpp:2706 msgid "Single extruder multimaterial parameters" -msgstr "" -"Параметры экструдера в одноэкструдерном мультиматериальном (ММ) принтере" +msgstr "Параметры экструдера в одноэкструдерном мультиматериальном (ММ) принтере" #: src/slic3r/GUI/Tab.cpp:2741 -msgid "" -"This is a single extruder multimaterial printer, diameters of all extruders " -"will be set to the new value. Do you want to proceed?" -msgstr "" -"Это одноэкструдерный мультиматериальный принтер, диаметры всех экструдеров " -"будут установлены на новое значение. Вы хотите продолжить?" +msgid "This is a single extruder multimaterial printer, diameters of all extruders will be set to the new value. Do you want to proceed?" +msgstr "Это одноэкструдерный мультиматериальный принтер, диаметры всех экструдеров будут установлены на новое значение. Вы хотите продолжить?" #: src/slic3r/GUI/Tab.cpp:2766 msgid "Layer height limits" @@ -8812,12 +7917,8 @@ msgid "Only lift Z" msgstr "Приподнимать сопло только" #: src/slic3r/GUI/Tab.cpp:2790 -msgid "" -"Retraction when tool is disabled (advanced settings for multi-extruder " -"setups)" -msgstr "" -"Ретракт, при отключении сопла (дополнительные настройки для " -"многоэкструдерных принтеров)" +msgid "Retraction when tool is disabled (advanced settings for multi-extruder setups)" +msgstr "Ретракт, при отключении сопла (дополнительные настройки для многоэкструдерных принтеров)" #: src/slic3r/GUI/Tab.cpp:2797 msgid "Reset to Filament Color" @@ -8839,7 +7940,7 @@ msgstr "Ретракт из прошивки" #: src/slic3r/GUI/Tab.cpp:3280 msgid "New printer preset selected" -msgstr "" +msgstr "Выбран новый профиль принтера" #: src/slic3r/GUI/Tab.cpp:3586 msgid "Detached" @@ -8859,49 +7960,36 @@ msgstr "Это последний профиль для этого физиче #: src/slic3r/GUI/Tab.cpp:3667 #, boost-format -msgid "" -"Are you sure you want to delete \"%1%\" preset from the physical printer " -"\"%2%\"?" -msgstr "" -"Вы действительно хотите удалить профиль \"%1%\" из физического принтера \"%2%" -"\"?" +msgid "Are you sure you want to delete \"%1%\" preset from the physical printer \"%2%\"?" +msgstr "Вы действительно хотите удалить профиль \"%1%\" из физического принтера \"%2%\"?" #: src/slic3r/GUI/Tab.cpp:3679 -msgid "" -"The physical printer below is based on the preset, you are going to delete." -msgid_plural "" -"The physical printers below are based on the preset, you are going to delete." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "The physical printer below is based on the preset, you are going to delete." +msgid_plural "The physical printers below are based on the preset, you are going to delete." +msgstr[0] "Физический принтер, расположенный ниже, основан на профиле, который вы собираетесь удалить." +msgstr[1] "Физические принтеры расположенные ниже, основаны на профиле, который вы собираетесь удалить." +msgstr[2] "Физические принтеры расположенные ниже, основаны на профиле, который вы собираетесь удалить." #: src/slic3r/GUI/Tab.cpp:3684 msgid "Note, that the selected preset will be deleted from this printer too." -msgid_plural "" -"Note, that the selected preset will be deleted from these printers too." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid_plural "Note, that the selected preset will be deleted from these printers too." +msgstr[0] "Обратите внимание, что выбранный профиль будет удалён и из этого принтера." +msgstr[1] "Обратите внимание, что выбранный профиль будет удалён и из этих принтеров." +msgstr[2] "Обратите внимание, что выбранный профиль будет удалён и из этих принтеров." #: src/slic3r/GUI/Tab.cpp:3689 -msgid "" -"The physical printer below is based only on the preset, you are going to " -"delete." -msgid_plural "" -"The physical printers below are based only on the preset, you are going to " -"delete." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "The physical printer below is based only on the preset, you are going to delete." +msgid_plural "The physical printers below are based only on the preset, you are going to delete." +msgstr[0] "Приведенный ниже физический принтер основан только на профиле, который вы собираетесь удалить." +msgstr[1] "Приведенные ниже физические принтеры основаны только на профиле, который вы собираетесь удалить." +msgstr[2] "Приведенные ниже физические принтеры основаны только на профиле, который вы собираетесь удалить." #: src/slic3r/GUI/Tab.cpp:3694 -msgid "" -"Note, that this printer will be deleted after deleting the selected preset." -msgid_plural "" -"Note, that these printers will be deleted after deleting the selected preset." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Note, that this printer will be deleted after deleting the selected preset." +msgid_plural "Note, that these printers will be deleted after deleting the selected preset." +msgstr[0] "Обратите внимание, что этот принтер будет удалён после удаления выбранного профиля." +msgstr[1] "Обратите внимание, что эти принтеры будут удалены после удаления выбранного профиля." +msgstr[2] "Обратите внимание, что эти принтеры будут удалены после удаления выбранного профиля." #: src/slic3r/GUI/Tab.cpp:3699 #, boost-format @@ -8919,29 +8007,16 @@ msgid "Set" msgstr "Выбор" #: src/slic3r/GUI/Tab.cpp:3954 -msgid "" -"Machine limits will be emitted to G-code and used to estimate print time." -msgstr "" -"Ограничения принтера будут передаваться в G-код и использоваться для оценки " -"времени печати." +msgid "Machine limits will be emitted to G-code and used to estimate print time." +msgstr "Ограничения принтера будут передаваться в G-код и использоваться для оценки времени печати." #: src/slic3r/GUI/Tab.cpp:3957 -msgid "" -"Machine limits will NOT be emitted to G-code, however they will be used to " -"estimate print time, which may therefore not be accurate as the printer may " -"apply a different set of machine limits." -msgstr "" -"Ограничения принтера не будут передаваться в G-код, тем не менее они будут " -"используются для оценки времени печати, которое может быть неточным, " -"поскольку принтер может применять другой набор ограничений для принтера." +msgid "Machine limits will NOT be emitted to G-code, however they will be used to estimate print time, which may therefore not be accurate as the printer may apply a different set of machine limits." +msgstr "Ограничения принтера не будут передаваться в G-код, тем не менее они будут используются для оценки времени печати, которое может быть неточным, поскольку принтер может применять другой набор ограничений для принтера." #: src/slic3r/GUI/Tab.cpp:3961 -msgid "" -"Machine limits are not set, therefore the print time estimate may not be " -"accurate." -msgstr "" -"Ограничения принтера не заданы, поэтому оценка времени печати может быть " -"неточной." +msgid "Machine limits are not set, therefore the print time estimate may not be accurate." +msgstr "Ограничения принтера не заданы, поэтому оценка времени печати может быть неточной." #: src/slic3r/GUI/Tab.cpp:3983 msgid "LOCKED LOCK" @@ -8949,12 +8024,8 @@ msgstr "ЗАКРЫТЫЙ ЗАМОЧЕК" #. TRN Description for "LOCKED LOCK" #: src/slic3r/GUI/Tab.cpp:3985 -msgid "" -"indicates that the settings are the same as the system (or default) values " -"for the current option group" -msgstr "" -"указывает, что настройки совпадают с системными значениями (или значениями " -"по умолчанию) для текущей группы." +msgid "indicates that the settings are the same as the system (or default) values for the current option group" +msgstr "указывает, что настройки совпадают с системными значениями (или значениями по умолчанию) для текущей группы." #: src/slic3r/GUI/Tab.cpp:3987 msgid "UNLOCKED LOCK" @@ -8963,15 +8034,11 @@ msgstr "ОТКРЫТЫЙ ЗАМОЧЕК" #. TRN Description for "UNLOCKED LOCK" #: src/slic3r/GUI/Tab.cpp:3989 msgid "" -"indicates that some settings were changed and are not equal to the system " -"(or default) values for the current option group.\n" -"Click the UNLOCKED LOCK icon to reset all settings for current option group " -"to the system (or default) values." +"indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n" +"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values." msgstr "" -"указывает, что некоторые настройки были изменены и не равны системным " -"значениям (или значениям по умолчанию) для текущей группы.\n" -"Нажмите, чтобы сбросить все настройки текущей группы до системных значений " -"(или значений по умолчанию)." +"указывает, что некоторые настройки были изменены и не равны системным значениям (или значениям по умолчанию) для текущей группы.\n" +"Нажмите, чтобы сбросить все настройки текущей группы до системных значений (или значений по умолчанию)." #: src/slic3r/GUI/Tab.cpp:3994 msgid "WHITE BULLET" @@ -8993,97 +8060,63 @@ msgstr "ЗНАЧОК СО СТРЕЛКОЙ" #. TRN Description for "BACK ARROW" #: src/slic3r/GUI/Tab.cpp:4001 msgid "" -"indicates that the settings were changed and are not equal to the last saved " -"preset for the current option group.\n" -"Click the BACK ARROW icon to reset all settings for the current option group " -"to the last saved preset." +"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset." msgstr "" -"указывает, что настройки были изменены и не совпадают с настройками в " -"последнем сохранённом профиле\n" -"для текущей группы. Нажмите на значок со стрелкой, чтобы сбросить все " -"настройки для текущей группы до последнего\n" +"указывает, что настройки были изменены и не совпадают с настройками в последнем сохранённом профиле\n" +"для текущей группы. Нажмите на значок со стрелкой, чтобы сбросить все настройки для текущей группы до последнего\n" "сохранённого значения профиля." #: src/slic3r/GUI/Tab.cpp:4011 -msgid "" -"LOCKED LOCK icon indicates that the settings are the same as the system (or " -"default) values for the current option group" -msgstr "" -"ЗАКРЫТЫЙ ЗАМОЧЕК указывает, что настройки совпадают с системными значениями " -"(или значениями по умолчанию) для текущей группы." +msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group" +msgstr "ЗАКРЫТЫЙ ЗАМОЧЕК указывает, что настройки совпадают с системными значениями (или значениями по умолчанию) для текущей группы." #: src/slic3r/GUI/Tab.cpp:4013 msgid "" -"UNLOCKED LOCK icon indicates that some settings were changed and are not " -"equal to the system (or default) values for the current option group.\n" -"Click to reset all settings for current option group to the system (or " -"default) values." +"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n" +"Click to reset all settings for current option group to the system (or default) values." msgstr "" -"ОТКРЫТЫЙ ЗАМОЧЕК указывает, что некоторые настройки были изменены и не равны " -"системным значениям (или значениям по умолчанию) для текущей группы.\n" -"Нажмите, чтобы сбросить все настройки текущей группы до системных значений " -"(или значений по умолчанию)." +"ОТКРЫТЫЙ ЗАМОЧЕК указывает, что некоторые настройки были изменены и не равны системным значениям (или значениям по умолчанию) для текущей группы.\n" +"Нажмите, чтобы сбросить все настройки текущей группы до системных значений (или значений по умолчанию)." #: src/slic3r/GUI/Tab.cpp:4016 msgid "WHITE BULLET icon indicates a non system (or non default) preset." -msgstr "" -"БЕЛЫЙ МАРКЕР указывает на не системный профиль (или профиль не по умолчанию)." +msgstr "БЕЛЫЙ МАРКЕР указывает на не системный профиль (или профиль не по умолчанию)." #: src/slic3r/GUI/Tab.cpp:4019 -msgid "" -"WHITE BULLET icon indicates that the settings are the same as in the last " -"saved preset for the current option group." -msgstr "" -"БЕЛЫЙ МАРКЕР означает, что настройки совпадают с настройками в последнем " -"сохранённом профиле для текущей группы." +msgid "WHITE BULLET icon indicates that the settings are the same as in the last saved preset for the current option group." +msgstr "БЕЛЫЙ МАРКЕР означает, что настройки совпадают с настройками в последнем сохранённом профиле для текущей группы." #: src/slic3r/GUI/Tab.cpp:4021 msgid "" -"BACK ARROW icon indicates that the settings were changed and are not equal " -"to the last saved preset for the current option group.\n" -"Click to reset all settings for the current option group to the last saved " -"preset." +"BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n" +"Click to reset all settings for the current option group to the last saved preset." msgstr "" -"ЗНАЧОК СО СТРЕЛКОЙ указывает, что настройки были изменены и не совпадают с " -"настройками в последнем сохранённом профиле для текущей группы.\n" -"Нажмите, чтобы сбросить все настройки для текущей группы до последнего " -"сохранённого значения профиля." +"ЗНАЧОК СО СТРЕЛКОЙ указывает, что настройки были изменены и не совпадают с настройками в последнем сохранённом профиле для текущей группы.\n" +"Нажмите, чтобы сбросить все настройки для текущей группы до последнего сохранённого значения профиля." #: src/slic3r/GUI/Tab.cpp:4027 -msgid "" -"LOCKED LOCK icon indicates that the value is the same as the system (or " -"default) value." -msgstr "" -"ЗАКРЫТЫЙ ЗАМОЧЕК указывает, что значение совпадает с системным значением " -"(или значение по умолчанию)." +msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value." +msgstr "ЗАКРЫТЫЙ ЗАМОЧЕК указывает, что значение совпадает с системным значением (или значение по умолчанию)." #: src/slic3r/GUI/Tab.cpp:4028 msgid "" -"UNLOCKED LOCK icon indicates that the value was changed and is not equal to " -"the system (or default) value.\n" +"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\n" "Click to reset current value to the system (or default) value." msgstr "" -"ОТКРЫТЫЙ ЗАМОЧЕК указывает, что значение было изменено и не равно системному " -"значению (или значению по умолчанию).\n" -"Нажмите, чтобы сбросить текущее значение к системному значению (или значению " -"по умолчанию)." +"ОТКРЫТЫЙ ЗАМОЧЕК указывает, что значение было изменено и не равно системному значению (или значению по умолчанию).\n" +"Нажмите, чтобы сбросить текущее значение к системному значению (или значению по умолчанию)." #: src/slic3r/GUI/Tab.cpp:4034 -msgid "" -"WHITE BULLET icon indicates that the value is the same as in the last saved " -"preset." -msgstr "" -"БЕЛЫЙ МАРКЕР указывает, что значение совпадает со значением в последнем " -"сохранённом профиле." +msgid "WHITE BULLET icon indicates that the value is the same as in the last saved preset." +msgstr "БЕЛЫЙ МАРКЕР указывает, что значение совпадает со значением в последнем сохранённом профиле." #: src/slic3r/GUI/Tab.cpp:4035 msgid "" -"BACK ARROW icon indicates that the value was changed and is not equal to the " -"last saved preset.\n" +"BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\n" "Click to reset current value to the last saved preset." msgstr "" -"ЗНАЧОК СО СТРЕЛКОЙ указывает, что значение было изменено и не совпадает со " -"значением в последнем сохранённом профиле для текущей группы.\n" +"ЗНАЧОК СО СТРЕЛКОЙ указывает, что значение было изменено и не совпадает со значением в последнем сохранённом профиле для текущей группы.\n" "Нажмите, чтобы сбросить значение до последнего сохранённого значения профиля." #: src/slic3r/GUI/Tab.cpp:4189 src/slic3r/GUI/Tab.cpp:4191 @@ -9092,7 +8125,7 @@ msgstr "Материал" #: src/slic3r/GUI/Tab.cpp:4276 src/slic3r/GUI/Tab.cpp:4277 msgid "Material printing profile" -msgstr "" +msgstr "Профиль печати материалами" #: src/slic3r/GUI/Tab.cpp:4329 msgid "Support head" @@ -9127,23 +8160,17 @@ msgstr "Высота подъёма модели" msgid "Pad around object" msgstr "Подложка вокруг модели" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:153 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:162 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1046 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1099 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1114 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1129 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1144 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:153 src/slic3r/GUI/UnsavedChangesDialog.cpp:162 src/slic3r/GUI/UnsavedChangesDialog.cpp:1046 src/slic3r/GUI/UnsavedChangesDialog.cpp:1099 src/slic3r/GUI/UnsavedChangesDialog.cpp:1114 src/slic3r/GUI/UnsavedChangesDialog.cpp:1129 src/slic3r/GUI/UnsavedChangesDialog.cpp:1144 msgid "Undef" msgstr "Не задано" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:771 msgid "Unsaved Changes" -msgstr "" +msgstr "Несохранённые изменения" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:789 msgid "Switching Presets: Unsaved Changes" -msgstr "Смена профилей: несохраненные изменения" +msgstr "Смена профилей: несохранённые изменения" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:831 msgid "Old Value" @@ -9153,10 +8180,9 @@ msgstr "Старое значение" msgid "New Value" msgstr "Новое значение" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:863 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:866 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:863 src/slic3r/GUI/UnsavedChangesDialog.cpp:866 msgid "Keep" -msgstr "" +msgstr "Запомнить" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:863 msgid "Transfer" @@ -9164,7 +8190,7 @@ msgstr "Перенести" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:870 msgid "Don't save" -msgstr "" +msgstr "Не сохранять" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:870 msgid "Discard" @@ -9175,16 +8201,12 @@ msgid "Save" msgstr "Сохранить" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:897 -msgid "" -"You will not be asked about the unsaved changes the next time you create new " -"project" -msgstr "" +msgid "You will not be asked about the unsaved changes the next time you create new project" +msgstr "В следующий раз при создании нового проекта вас не спросят о несохранённых изменениях" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:898 -msgid "" -"You will not be asked about the unsaved changes the next time you switch a " -"preset" -msgstr "" +msgid "You will not be asked about the unsaved changes the next time you switch a preset" +msgstr "В следующий раз при переключении профиля вас не спросят о несохранённых изменениях" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:899 msgid "" @@ -9192,6 +8214,9 @@ msgid "" "- Closing PrusaSlicer while some presets are modified,\n" "- Loading a new project while some presets are modified" msgstr "" +"В следующий раз не будут появляться запросы о несохранённых изменениях при:\n" +"- Закрытии PrusaSlicer, если имеются изменения в профилях\n" +"- Загрузки нового проекта, если имеются изменения в профилях" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:902 msgid "PrusaSlicer will remember your action." @@ -9203,19 +8228,16 @@ msgid "" "Visit \"Preferences\" and check \"%1%\"\n" "to be asked about unsaved changes again." msgstr "" -"Зайдите в \"Настройки приложения\" и установите флажок \"%1%\",\n" -"чтобы вернуть запрос о несохраненных изменениях." +"Зайдите в настройки приложения и установите флажок \"%1%\",\n" +"чтобы вернуть запрос о несохранённых изменениях." #: src/slic3r/GUI/UnsavedChangesDialog.cpp:935 -msgid "" -"Some fields are too long to fit. Right mouse click reveals the full text." -msgstr "" -"Некоторые поля слишком длинные. Щёлкните правой кнопкой мыши, чтобы показать " -"полный текст." +msgid "Some fields are too long to fit. Right mouse click reveals the full text." +msgstr "Некоторые поля слишком длинные. Щёлкните правой кнопкой мыши, чтобы показать полный текст." #: src/slic3r/GUI/UnsavedChangesDialog.cpp:937 msgid "All settings changes will not be saved" -msgstr "" +msgstr "Все изменения в настройках не будут сохранены" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:937 msgid "All settings changes will be discarded." @@ -9227,7 +8249,7 @@ msgstr "Сохранить выбранные параметры." #: src/slic3r/GUI/UnsavedChangesDialog.cpp:941 msgid "Keep the selected settings." -msgstr "" +msgstr "Запомнить выбранные настройки." #: src/slic3r/GUI/UnsavedChangesDialog.cpp:942 msgid "Transfer the selected settings to the newly selected preset." @@ -9246,9 +8268,9 @@ msgstr "Перенести выбранные параметры во вновь #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1214 msgid "The following preset was modified" msgid_plural "The following presets were modified" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "Был изменён следующий профиль" +msgstr[1] "Были изменены следующие профиля" +msgstr[2] "Были изменены следующие профилей" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1220 #, boost-format @@ -9257,64 +8279,57 @@ msgstr "Профиль \"%1%\" имеет следующие несохранё #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1224 #, boost-format -msgid "" -"Preset \"%1%\" is not compatible with the new printer profile and it has the " -"following unsaved changes:" -msgstr "" -"Профиль \"%1%\" несовместим с новым профилем принтера, и в нём есть " -"следующие несохраненные изменения:" +msgid "Preset \"%1%\" is not compatible with the new printer profile and it has the following unsaved changes:" +msgstr "Профиль \"%1%\" несовместим с новым профилем принтера, и в нём есть следующие несохранённые изменения:" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1225 #, boost-format -msgid "" -"Preset \"%1%\" is not compatible with the new print profile and it has the " -"following unsaved changes:" -msgstr "" -"Профиль \"%1%\" несовместим с новым профилем печати, и имеет следующие " -"несохраненные изменения:" +msgid "Preset \"%1%\" is not compatible with the new print profile and it has the following unsaved changes:" +msgstr "Профиль \"%1%\" несовместим с новым профилем печати, и имеет следующие несохранённые изменения:" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1271 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1659 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1271 src/slic3r/GUI/UnsavedChangesDialog.cpp:1659 msgid "Extruders count" msgstr "Количество экструдеров" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1493 msgid "Show all presets (including incompatible)" -msgstr "" +msgstr "Показать все профили (включая несовместимые)" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1508 msgid "Left Preset Value" -msgstr "" +msgstr "Значение в левом профиле" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1509 msgid "Right Preset Value" -msgstr "" +msgstr "Значение в правом профиле" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1616 msgid "One of the presets doesn't found" -msgstr "" +msgstr "Не найден один из профилей" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1627 msgid "Compared presets has different printer technology" -msgstr "" +msgstr "Сравниваемые профили имеют различную технологию печати" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1641 msgid "Presets are the same" -msgstr "" +msgstr "Отличия в профилях отсутствуют" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1649 msgid "" "Presets are different.\n" "Click this button to select the same preset for the right and left preset." msgstr "" +"Профили отличаются.\n" +"Нажмите эту кнопку, чтобы выставить в правый профиль тоже что и в левом." #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1673 msgid "Undef category" -msgstr "" +msgstr "Неопределённая категория" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1673 msgid "Undef group" -msgstr "" +msgstr "Неопределённая группа" #: src/slic3r/GUI/UpdateDialogs.cpp:37 msgid "Update available" @@ -9335,10 +8350,9 @@ msgstr "Новая версия:" #: src/slic3r/GUI/UpdateDialogs.cpp:52 msgid "Changelog & Download" -msgstr "" +msgstr "Журнал изменений и загрузка" -#: src/slic3r/GUI/UpdateDialogs.cpp:59 src/slic3r/GUI/UpdateDialogs.cpp:133 -#: src/slic3r/GUI/UpdateDialogs.cpp:190 +#: src/slic3r/GUI/UpdateDialogs.cpp:59 src/slic3r/GUI/UpdateDialogs.cpp:133 src/slic3r/GUI/UpdateDialogs.cpp:190 msgid "Open changelog page" msgstr "Открыть страницу истории изменений" @@ -9352,7 +8366,7 @@ msgstr "Больше не уведомлять о новых релизах" #: src/slic3r/GUI/UpdateDialogs.cpp:94 msgid "Opening Configuration Wizard" -msgstr "" +msgstr "Открытие мастера настройки" #: src/slic3r/GUI/UpdateDialogs.cpp:94 src/slic3r/GUI/UpdateDialogs.cpp:259 msgid "Configuration update" @@ -9361,9 +8375,10 @@ msgstr "Обновление конфигурации" #: src/slic3r/GUI/UpdateDialogs.cpp:95 msgid "" "PrusaSlicer is not using the newest configuration available.\n" -"Configuration Wizard may not offer the latest printers, filaments and SLA " -"materials to be installed." +"Configuration Wizard may not offer the latest printers, filaments and SLA materials to be installed." msgstr "" +"PrusaSlicer не использует последнюю доступную конфигурацию.\n" +"Если хотите, мастер настройки может не предлагать установку новейших принтеров, пластиковых нитей и SLA материалов." #: src/slic3r/GUI/UpdateDialogs.cpp:97 msgid "Configuration update is available" @@ -9373,15 +8388,13 @@ msgstr "Доступно обновление конфигурации" msgid "" "Would you like to install it?\n" "\n" -"Note that a full configuration snapshot will be created first. It can then " -"be restored at any time should there be a problem with the new version.\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" "\n" "Updated configuration bundles:" msgstr "" -"Вы хотите установить его?\n" +"Вы хотите установить её?\n" "\n" -"Обратите внимание, что сначала будет создан снапшот. Он может быть " -"восстановлен в любое время, если возникнет проблема с новой версией.\n" +"Обратите внимание, что сначала будет создан снапшот. Он может быть восстановлен в любое время, если возникнет проблема с новой версией.\n" "\n" "Обновлённые пакеты конфигурации:" @@ -9391,11 +8404,11 @@ msgstr "Комментарий:" #: src/slic3r/GUI/UpdateDialogs.cpp:141 msgid "Install" -msgstr "" +msgstr "Установить" #: src/slic3r/GUI/UpdateDialogs.cpp:143 msgid "Don't install" -msgstr "" +msgstr "Не устанавливать" #: src/slic3r/GUI/UpdateDialogs.cpp:156 src/slic3r/GUI/UpdateDialogs.cpp:210 #, c-format, boost-format @@ -9411,15 +8424,13 @@ msgstr "Необходимо установить обновление конф msgid "" "%s will now start updates. Otherwise it won't be able to start.\n" "\n" -"Note that a full configuration snapshot will be created first. It can then " -"be restored at any time should there be a problem with the new version.\n" +"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n" "\n" "Updated configuration bundles:" msgstr "" "Теперь %s запустит обновление. Иначе он не сможет начать работу.\n" "\n" -"Обратите внимание, что сначала будет создан снапшот. Он может быть " -"восстановлен в любое время, если возникнет проблема с новой версией.\n" +"Обратите внимание, что сначала будет создан снапшот. Он может быть восстановлен в любое время, если возникнет проблема с новой версией.\n" "\n" "Обновлённые пакеты конфигурации:" @@ -9436,22 +8447,15 @@ msgstr "Несовместимая конфигурация %s" #: src/slic3r/GUI/UpdateDialogs.cpp:214 #, c-format, boost-format msgid "" -"This version of %s is not compatible with currently installed configuration " -"bundles.\n" -"This probably happened as a result of running an older %s after using a " -"newer one.\n" +"This version of %s is not compatible with currently installed configuration bundles.\n" +"This probably happened as a result of running an older %s after using a newer one.\n" "\n" -"You may either exit %s and try again with a newer version, or you may re-run " -"the initial configuration. Doing so will create a backup snapshot of the " -"existing configuration before installing files compatible with this %s." +"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s." msgstr "" "Эта версия %s не совместима с установленными пакетами конфигурации.\n" -"Вероятно, это произошло в результате запуска более старой версии %s после " -"использования более новой.\n" +"Вероятно, это произошло в результате запуска более старой версии %s после использования более новой.\n" "\n" -"Вы можете выйти из %s и повторить попытку с новой версией, либо повторно " -"запустить начальную конфигурацию. Это создаст резервную копию существующей " -"конфигурации перед установкой файлов, совместимых с этой версией %s." +"Вы можете выйти из %s и повторить попытку с новой версией, либо повторно запустить начальную конфигурацию. Это создаст резервную копию существующей конфигурации перед установкой файлов, совместимых с этой версией %s." #: src/slic3r/GUI/UpdateDialogs.cpp:223 #, c-format, boost-format @@ -9471,27 +8475,17 @@ msgstr "Перенастроить" msgid "" "%s now uses an updated configuration structure.\n" "\n" -"So called 'System presets' have been introduced, which hold the built-in " -"default settings for various printers. These System presets cannot be " -"modified, instead, users now may create their own presets inheriting " -"settings from one of the System presets.\n" -"An inheriting preset may either inherit a particular value from its parent " -"or override it with a customized value.\n" +"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n" +"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n" "\n" -"Please proceed with the %s that follows to set up the new presets and to " -"choose whether to enable automatic preset updates." +"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates." msgstr "" "Теперь %s использует обновлённую структуру конфигурации.\n" "\n" -"Были введены так называемые 'системные профили', которые содержат встроенные " -"настройки по умолчанию для разных принтеров. Эти системные профили не могут " -"быть изменены. Вместо этого пользователи теперь могут создавать собственные " -"профили, наследующие настройки от одного из системных профилей.\n" -"Наследующий профиль может либо наследовать определённое значение от своего " -"родителя, либо переопределить его с помощью настроенного значения.\n" +"Были введены так называемые 'системные профили', которые содержат встроенные настройки по умолчанию для разных принтеров. Эти системные профили не могут быть изменены. Вместо этого пользователи теперь могут создавать собственные профили, наследующие настройки от одного из системных профилей.\n" +"Наследующий профиль может либо наследовать определённое значение от своего родителя, либо переопределить его с помощью настроенного значения.\n" "\n" -"Перейдите к %s, чтобы настроить новые профили и выбрать, следует ли включить " -"автоматическое обновление системных профилей." +"Перейдите к %s, чтобы настроить новые профили и выбрать, следует ли включить автоматическое обновление системных профилей." #: src/slic3r/GUI/UpdateDialogs.cpp:280 msgid "For more information please visit our wiki page:" @@ -9516,26 +8510,15 @@ msgstr "Настройки рэмминга" #: src/slic3r/GUI/WipeTowerDialog.cpp:54 msgid "" -"Ramming denotes the rapid extrusion just before a tool change in a single-" -"extruder MM printer. Its purpose is to properly shape the end of the " -"unloaded filament so it does not prevent insertion of the new filament and " -"can itself be reinserted later. This phase is important and different " -"materials can require different extrusion speeds to get the good shape. For " -"this reason, the extrusion rates during ramming are adjustable.\n" +"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different " +"extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n" "\n" -"This is an expert-level setting, incorrect adjustment will likely lead to " -"jams, extruder wheel grinding into filament etc." +"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc." msgstr "" -"Рэмминг (ramming) означает быстрое экструдирование непосредственно перед " -"сменой инструмента в одноэкструдерном мультиматериальном принтере. Его цель " -"состоит в том, чтобы правильно сформировать конец незагруженного прутка, " -"чтобы он не препятствовал вставке нового прутка или этого же прутка, " -"вставленного позже. Эта фаза важна и разные материалы могут потребовать " -"разных скоростей экструзии, чтобы получить хорошую форму. По этой причине " -"скорость экструзии во время рэмминга регулируется.\n" +"Рэмминг (ramming) означает быстрое экструдирование непосредственно перед сменой инструмента в одноэкструдерном мультиматериальном принтере. Его цель состоит в том, чтобы правильно сформировать конец незагруженного прутка, чтобы он не препятствовал вставке нового прутка или этого же прутка, вставленного позже. Эта фаза " +"важна и разные материалы могут потребовать разных скоростей экструзии, чтобы получить хорошую форму. По этой причине скорость экструзии во время рэмминга регулируется.\n" "\n" -"Эта опция для опытных пользователей, неправильная настройка может привести к " -"замятию, протиранию прутка приводом экструдера и т.д." +"Эта опция для опытных пользователей, неправильная настройка может привести к замятию, протиранию прутка приводом экструдера и т.д." #: src/slic3r/GUI/WipeTowerDialog.cpp:114 msgid "Total ramming time" @@ -9558,12 +8541,8 @@ msgid "Wipe tower - Purging volume adjustment" msgstr "Черновая башня - регулировка объёма сброса пластика" #: src/slic3r/GUI/WipeTowerDialog.cpp:299 -msgid "" -"Here you can adjust required purging volume (mm³) for any given pair of " -"tools." -msgstr "" -"Здесь вы можете отрегулировать требуемый объём очистки (мм³) для любой пары " -"инструментов." +msgid "Here you can adjust required purging volume (mm³) for any given pair of tools." +msgstr "Здесь вы можете отрегулировать требуемый объём очистки (мм³) для любой пары инструментов." #: src/slic3r/GUI/WipeTowerDialog.cpp:300 msgid "Extruder changed to" @@ -9582,12 +8561,8 @@ msgid "Tool #" msgstr "Инструмент #" #: src/slic3r/GUI/WipeTowerDialog.cpp:361 -msgid "" -"Total purging volume is calculated by summing two values below, depending on " -"which tools are loaded/unloaded." -msgstr "" -"Общий объём прочистки вычисляется путём суммирования двух нижеуказанных " -"значений, в зависимости от того, какие инструменты предзагружены/выгружены." +msgid "Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded." +msgstr "Общий объём прочистки вычисляется путём суммирования двух нижеуказанных значений, в зависимости от того, какие инструменты предзагружены/выгружены." #: src/slic3r/GUI/WipeTowerDialog.cpp:362 msgid "Volume to purge (mm³) when the filament is being" @@ -9599,13 +8574,11 @@ msgstr "Из" #: src/slic3r/GUI/WipeTowerDialog.cpp:442 msgid "" -"Switching to simple settings will discard changes done in the advanced " -"mode!\n" +"Switching to simple settings will discard changes done in the advanced mode!\n" "\n" "Do you want to proceed?" msgstr "" -"Переключение на упрощённые настройки отменит изменения, сделанные в " -"расширенном режиме!\n" +"Переключение на упрощённые настройки отменит изменения, сделанные в расширенном режиме!\n" "\n" "Хотите продолжить?" @@ -9627,8 +8600,7 @@ msgstr "Переключиться в режим %s" msgid "Current mode is %s" msgstr "Текущий режим %s" -#: src/slic3r/Utils/AstroBox.cpp:69 src/slic3r/Utils/OctoPrint.cpp:141 -#: src/slic3r/Utils/Repetier.cpp:69 +#: src/slic3r/Utils/AstroBox.cpp:69 src/slic3r/Utils/OctoPrint.cpp:141 src/slic3r/Utils/Repetier.cpp:69 #, c-format, boost-format msgid "Mismatched type of print host: %s" msgstr "Несоответствующий тип хоста печати: %s" @@ -9653,9 +8625,7 @@ msgstr "Соединение с Duet успешно установлено." msgid "Could not connect to Duet" msgstr "Не удалось подключиться к Duet" -#: src/slic3r/Utils/Duet.cpp:88 src/slic3r/Utils/Duet.cpp:157 -#: src/slic3r/Utils/FlashAir.cpp:122 src/slic3r/Utils/FlashAir.cpp:143 -#: src/slic3r/Utils/FlashAir.cpp:159 +#: src/slic3r/Utils/Duet.cpp:88 src/slic3r/Utils/Duet.cpp:157 src/slic3r/Utils/FlashAir.cpp:122 src/slic3r/Utils/FlashAir.cpp:143 src/slic3r/Utils/FlashAir.cpp:159 msgid "Unknown error occured" msgstr "Произошла неизвестная ошибка" @@ -9667,8 +8637,7 @@ msgstr "Неправильный пароль" msgid "Could not get resources to create a new connection" msgstr "Не удалось получить ресурсы для создания нового подключения" -#: src/slic3r/Utils/FixModelByWin10.cpp:221 -#: src/slic3r/Utils/FixModelByWin10.cpp:359 +#: src/slic3r/Utils/FixModelByWin10.cpp:221 src/slic3r/Utils/FixModelByWin10.cpp:359 msgid "Exporting source model" msgstr "Экспорт исходной модели" @@ -9684,14 +8653,11 @@ msgstr "Ремонт модели с помощью сервиса Netfabb" msgid "Mesh repair failed." msgstr "Ошибка восстановления сетки." -#: src/slic3r/Utils/FixModelByWin10.cpp:253 -#: src/slic3r/Utils/FixModelByWin10.cpp:386 +#: src/slic3r/Utils/FixModelByWin10.cpp:253 src/slic3r/Utils/FixModelByWin10.cpp:386 msgid "Loading repaired model" msgstr "Загрузка отремонтированной модели" -#: src/slic3r/Utils/FixModelByWin10.cpp:265 -#: src/slic3r/Utils/FixModelByWin10.cpp:272 -#: src/slic3r/Utils/FixModelByWin10.cpp:304 +#: src/slic3r/Utils/FixModelByWin10.cpp:265 src/slic3r/Utils/FixModelByWin10.cpp:272 src/slic3r/Utils/FixModelByWin10.cpp:304 msgid "Saving mesh into the 3MF container failed." msgstr "Не удалось сохранить сетку в 3MF контейнер." @@ -9740,12 +8706,8 @@ msgid "Could not connect to FlashAir" msgstr "Не удаётся подключиться к FlashAir" #: src/slic3r/Utils/FlashAir.cpp:76 -msgid "" -"Note: FlashAir with firmware 2.00.02 or newer and activated upload function " -"is required." -msgstr "" -"Примечание: для активации функцией загрузки, требуется FlashAir с прошивкой " -"2.00.02 и выше." +msgid "Note: FlashAir with firmware 2.00.02 or newer and activated upload function is required." +msgstr "Примечание: для активации функцией загрузки, требуется FlashAir с прошивкой 2.00.02 и выше." #: src/slic3r/Utils/OctoPrint.cpp:164 msgid "Connection to OctoPrint works correctly." @@ -9761,7 +8723,7 @@ msgstr "Примечание: требуется версия OctoPrint не н #: src/slic3r/Utils/OctoPrint.cpp:292 msgid "Connection to Prusa SL1 / SL1S works correctly." -msgstr "" +msgstr "Подключение к Prusa SL1 / SL1S установлено." #: src/slic3r/Utils/OctoPrint.cpp:298 msgid "Could not connect to Prusa SLA" @@ -9769,31 +8731,32 @@ msgstr "Не удалось подключиться к Prusa SLA" #: src/slic3r/Utils/OctoPrint.cpp:336 msgid "Connection to PrusaLink works correctly." -msgstr "" +msgstr "Подключение к PrusaLink установлено." #: src/slic3r/Utils/OctoPrint.cpp:342 msgid "Could not connect to PrusaLink" -msgstr "" +msgstr "Не удалось подключиться к PrusaLink" #: src/slic3r/Utils/PresetUpdater.cpp:61 #, boost-format msgid "Copying of file %1% to %2% failed: %3%" -msgstr "" +msgstr "Не удалось скопировать файл %1% в %2%: %3%" -#: src/slic3r/Utils/PresetUpdater.cpp:645 -#: src/slic3r/Utils/PresetUpdater.cpp:662 +#: src/slic3r/Utils/PresetUpdater.cpp:645 src/slic3r/Utils/PresetUpdater.cpp:662 msgid "Continue and install configuration updates?" -msgstr "" +msgstr "Продолжить и установить обновления конфигурации?" #: src/slic3r/Utils/PresetUpdater.cpp:777 msgid "" "Configuration Updates causes a lost of preset modification.\n" "So, check unsaved changes and save them if necessary." msgstr "" +"Обновление конфигурации приводит к потере изменённых профилей.\n" +"Поэтому проверьте несохранённые изменения и при необходимости сохраните их." #: src/slic3r/Utils/PresetUpdater.cpp:779 msgid "Updating" -msgstr "" +msgstr "Обновление" #: src/slic3r/Utils/PresetUpdater.cpp:808 #, c-format, boost-format @@ -9811,12 +8774,8 @@ msgid "requires max. %s" msgstr "требуется макс. %s" #: src/slic3r/Utils/Http.cpp:73 -msgid "" -"Could not detect system SSL certificate store. PrusaSlicer will be unable to " -"establish secure network connections." -msgstr "" -"Не удалось обнаружить системное хранилище SSL-сертификатов. PrusaSlicer не " -"сможет устанавливать безопасные сетевые соединения." +msgid "Could not detect system SSL certificate store. PrusaSlicer will be unable to establish secure network connections." +msgstr "Не удалось обнаружить системное хранилище SSL-сертификатов. PrusaSlicer не сможет устанавливать безопасные сетевые соединения." #: src/slic3r/Utils/Http.cpp:78 #, boost-format @@ -9825,20 +8784,12 @@ msgstr "PrusaSlicer обнаружил хранилище системных SSL #: src/slic3r/Utils/Http.cpp:82 #, boost-format -msgid "" -"To specify the system certificate store manually, please set the %1% " -"environment variable to the correct CA bundle and restart the application." -msgstr "" -"Чтобы вручную указать хранилище системных сертификатов, задайте для " -"переменной среды %1% правильный пакет CA и перезапустите приложение." +msgid "To specify the system certificate store manually, please set the %1% environment variable to the correct CA bundle and restart the application." +msgstr "Чтобы вручную указать хранилище системных сертификатов, задайте для переменной среды %1% правильный пакет CA и перезапустите приложение." #: src/slic3r/Utils/Http.cpp:91 -msgid "" -"CURL init has failed. PrusaSlicer will be unable to establish network " -"connections. See logs for additional details." -msgstr "" -"Ошибка инициализации URL-адреса клиента. PrusaSlicer не сможет установить " -"сетевые подключения. Смотрите журнал для дополнительные информации." +msgid "CURL init has failed. PrusaSlicer will be unable to establish network connections. See logs for additional details." +msgstr "Ошибка инициализации URL-адреса клиента. PrusaSlicer не сможет установить сетевые подключения. Смотрите журнал для дополнительные информации." #: src/slic3r/Utils/Process.cpp:157 msgid "Open G-code file:" @@ -9846,15 +8797,15 @@ msgstr "Выберите G-код файл:" #: src/slic3r/Utils/Repetier.cpp:84 msgid "Connection to Repetier works correctly." -msgstr "" +msgstr "Подключение к Repetier установлено." #: src/slic3r/Utils/Repetier.cpp:90 msgid "Could not connect to Repetier" -msgstr "" +msgstr "Не удалось подключиться к Repetier" #: src/slic3r/Utils/Repetier.cpp:92 msgid "Note: Repetier version at least 0.90.0 is required." -msgstr "" +msgstr "Примечание: Требуется версия Repetier не ниже 0.90.0." #: src/slic3r/Utils/Repetier.cpp:246 #, boost-format @@ -9862,6 +8813,8 @@ msgid "" "HTTP status: %1%\n" "Message body: \"%2%\"" msgstr "" +"Статус HTTP: %1%\n" +"Текст сообщения: \"%2%\"" #: src/slic3r/Utils/Repetier.cpp:253 #, boost-format @@ -9870,6 +8823,9 @@ msgid "" "Message body: \"%1%\"\n" "Error: \"%2%\"" msgstr "" +"Не удалось проанализировать ответ хоста.\n" +"Текст сообщения: \"%1%\"\n" +"Ошибка: \"%2%\"" #: src/slic3r/Utils/Repetier.cpp:266 #, boost-format @@ -9878,56 +8834,51 @@ msgid "" "Message body: \"%1%\"\n" "Error: \"%2%\"" msgstr "" +"Ошибка при перечислении хост-принтеров.\n" +"Текст сообщения: \"%1%\"\n" +"Ошибка: \"%2%\"" #: src/libslic3r/GCode.cpp:539 msgid "There is an object with no extrusions in the first layer." -msgstr "" +msgstr "На первом слое модели имеется слой без экструзии." #: src/libslic3r/GCode.cpp:570 #, boost-format msgid "Empty layer between %1% and %2%." -msgstr "" +msgstr "Пустой слой между %1% и %2%." #: src/libslic3r/GCode.cpp:573 msgid "(Some lines not shown)" -msgstr "" +msgstr "(Некоторые строки не показаны)" #: src/libslic3r/GCode.cpp:575 #, boost-format msgid "Object name: %1%" -msgstr "" +msgstr "Имя модели: %1%" #: src/libslic3r/GCode.cpp:576 -msgid "" -"Make sure the object is printable. This is usually caused by negligibly " -"small extrusions or by a faulty model. Try to repair the model or change its " -"orientation on the bed." -msgstr "" +msgid "Make sure the object is printable. This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed." +msgstr "Убедитесь, что объект пригоден для печати. Обычно это происходит из-за ничтожно малой экструзии или из-за повреждённой модели. Попробуйте отремонтировать модель или изменить её ориентацию на столе." #: src/libslic3r/GCode.cpp:718 msgid "Filament Start G-code" -msgstr "" +msgstr "Стартовый G-код прутка" #: src/libslic3r/GCode.cpp:725 msgid "Filament End G-code" -msgstr "" +msgstr "Завершающий G-код прутка" #: src/libslic3r/GCode.cpp:764 msgid "In the custom G-code were found reserved keywords:" -msgstr "" +msgstr "В пользовательском G-коде были обнаружены зарезервированные ключевые слова:" #: src/libslic3r/GCode.cpp:766 -msgid "" -"This may cause problems in g-code visualization and printing time estimation." -msgstr "" +msgid "This may cause problems in g-code visualization and printing time estimation." +msgstr "Это может вызвать проблемы с визуализацией g-кода и оценкой времени печати." #: src/libslic3r/GCode.cpp:1420 -msgid "" -"Your print is very close to the priming regions. Make sure there is no " -"collision." -msgstr "" -"Модель(-и) находится очень близко к области предзарядки (область подготовки " -"экструдера). Убедитесь, что не произойдёт столкновения." +msgid "Your print is very close to the priming regions. Make sure there is no collision." +msgstr "Модель(-и) находится очень близко к области предзарядки (область подготовки экструдера). Убедитесь, что не произойдёт столкновения." #: src/libslic3r/ExtrusionEntity.cpp:332 src/libslic3r/ExtrusionEntity.cpp:368 msgid "Mixed" @@ -9935,59 +8886,43 @@ msgstr "Смешанный" #: src/libslic3r/Flow.cpp:61 #, boost-format -msgid "" -"Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible." -msgstr "" -"Не удаётся рассчитать ширину экструзии для %1%: Переменная \"%2%\" " -"недоступна." +msgid "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible." +msgstr "Не удаётся рассчитать ширину экструзии для %1%: Переменная \"%2%\" недоступна." #: src/libslic3r/Format/3mf.cpp:1734 #, boost-format -msgid "" -"The selected 3mf file has been saved with a newer version of %1% and is not " -"compatible." -msgstr "" -"Выбранный 3mf файл не совместим, так как был сохранён в более новой версии " -"%1%." +msgid "The selected 3mf file has been saved with a newer version of %1% and is not compatible." +msgstr "Выбранный 3mf файл не совместим, так как был сохранён в более новой версии %1%." #: src/libslic3r/Format/3mf.cpp:1745 -msgid "" -"The selected 3MF contains FDM supports painted object using a newer version " -"of PrusaSlicer and is not compatible." -msgstr "" +msgid "The selected 3MF contains FDM supports painted object using a newer version of PrusaSlicer and is not compatible." +msgstr "Выбранный 3MF файл содержит модель с нарисованными поддержками созданными с использованием более новой версии PrusaSlicer и несовместим." #: src/libslic3r/Format/3mf.cpp:1749 -msgid "" -"The selected 3MF contains seam painted object using a newer version of " -"PrusaSlicer and is not compatible." -msgstr "" +msgid "The selected 3MF contains seam painted object using a newer version of PrusaSlicer and is not compatible." +msgstr "Выбранный 3MF файл содержит модель с нарисованным швом созданным с использованием более новой версии PrusaSlicer и несовместим." #: src/libslic3r/Format/3mf.cpp:1753 -msgid "" -"The selected 3MF contains multi-material painted object using a newer " -"version of PrusaSlicer and is not compatible." -msgstr "" +msgid "The selected 3MF contains multi-material painted object using a newer version of PrusaSlicer and is not compatible." +msgstr "Выбранный 3MF файл содержит модель с мультиматериальной покраской созданной с использованием более новой версии PrusaSlicer и несовместим." #: src/libslic3r/Format/AMF.cpp:993 #, boost-format -msgid "" -"The selected amf file has been saved with a newer version of %1% and is not " -"compatible." -msgstr "" -"Выбранный amf файл не совместим, так как был сохранён в более новой версии " -"%1%." +msgid "The selected amf file has been saved with a newer version of %1% and is not compatible." +msgstr "Выбранный amf файл не совместим, так как был сохранён в более новой версии %1%." #: src/libslic3r/GCode/PostProcessor.cpp:289 #, boost-format msgid "" "Post-processing script %1% failed.\n" "\n" -"The post-processing script is expected to change the G-code file %2% in " -"place, but the G-code file was deleted and likely saved under a new name.\n" -"Please adjust the post-processing script to change the G-code in place and " -"consult the manual on how to optionally rename the post-processed G-code " -"file.\n" +"The post-processing script is expected to change the G-code file %2% in place, but the G-code file was deleted and likely saved under a new name.\n" +"Please adjust the post-processing script to change the G-code in place and consult the manual on how to optionally rename the post-processed G-code file.\n" msgstr "" +"Не удалось выполнить скрипт постобработки %1%.\n" +"\n" +"Ожидалось, что скрипт постобработки сразу же изменит файл G-кода %2%, но файл G-кода был удалён и, вероятно, сохранён под новым именем.\n" +"Пожалуйста, откорректируйте скрипт постобработки, чтобы изменить G-код на месте, и обратитесь к руководству, чтобы узнать как при желании переименовать файл G-кода после постобработки.\n" #: src/libslic3r/miniz_extension.cpp:91 msgid "undefined error" @@ -10027,7 +8962,7 @@ msgstr "неверный заголовок или архив поврежден #: src/libslic3r/miniz_extension.cpp:109 msgid "unsupported multidisk archive" -msgstr "неподдерживаемый многофайловый архив" +msgstr "неподдерживаемый многотомный архив" #: src/libslic3r/miniz_extension.cpp:111 msgid "decompression failed or archive is corrupted" @@ -10123,169 +9058,89 @@ msgstr "Заданные настройки приведут к пустой п #: src/libslic3r/Print.cpp:453 msgid "Some objects are too close; your extruder will collide with them." -msgstr "" -"Некоторые модели находятся слишком близко друг к другу. Экструдер при печати " -"столкнётся с ними." +msgstr "Некоторые модели находятся слишком близко друг к другу. Экструдер при печати столкнётся с ними." #: src/libslic3r/Print.cpp:455 -msgid "" -"Some objects are too tall and cannot be printed without extruder collisions." -msgstr "" -"Некоторые модели слишком высокие и при печати экструдер столкнётся с ними." +msgid "Some objects are too tall and cannot be printed without extruder collisions." +msgstr "Некоторые модели слишком высокие и при печати экструдер столкнётся с ними." #: src/libslic3r/Print.cpp:464 -msgid "" -"Only a single object may be printed at a time in Spiral Vase mode. Either " -"remove all but the last object, or enable sequential mode by " -"\"complete_objects\"." -msgstr "" -"Режим \"Спиральная ваза\" может использоваться для печати только одной " -"модели. Либо оставьте на столе одну модель или включите последовательную " -"печать с помощью \"complete_objects\"." +msgid "Only a single object may be printed at a time in Spiral Vase mode. Either remove all but the last object, or enable sequential mode by \"complete_objects\"." +msgstr "Режим «Спиральная ваза» может использоваться для печати только одной модели. Либо оставьте на столе одну модель или включите последовательную печать с помощью \"complete_objects\"." #: src/libslic3r/Print.cpp:468 -msgid "" -"The Spiral Vase option can only be used when printing single material " -"objects." -msgstr "В режиме \"Спиральная ваза\" можно печатать только одним материалом." +msgid "The Spiral Vase option can only be used when printing single material objects." +msgstr "В режиме «Спиральная ваза» можно печатать только одним материалом." #: src/libslic3r/Print.cpp:481 -msgid "" -"The wipe tower is only supported if all extruders have the same nozzle " -"diameter and use filaments of the same diameter." -msgstr "" -"Режим черновой башни применим только в том случае, если все экструдеры имеют " -"одинаковый диаметр сопла и используется пруток одного диаметра." +msgid "The wipe tower is only supported if all extruders have the same nozzle diameter and use filaments of the same diameter." +msgstr "Режим черновой башни применим только в том случае, если все экструдеры имеют одинаковый диаметр сопла и используется пруток одного диаметра." #: src/libslic3r/Print.cpp:487 -msgid "" -"The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter, " -"RepRapFirmware and Repetier G-code flavors." -msgstr "" -"В настоящее время режим черновой башни поддерживается только следующими " -"типами G-кода: Marlin, RepRap/Sprinter, RepRapFirmware, Repetier." +msgid "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter, RepRapFirmware and Repetier G-code flavors." +msgstr "В настоящее время режим черновой башни поддерживается только следующими типами G-кода: Marlin, RepRap/Sprinter, RepRapFirmware, Repetier." #: src/libslic3r/Print.cpp:489 -msgid "" -"The Wipe Tower is currently only supported with the relative extruder " -"addressing (use_relative_e_distances=1)." -msgstr "" -"В настоящее время для режима черновой башни поддерживается только " -"относительная адресация экструдера (use_relative_e_distances=1)." +msgid "The Wipe Tower is currently only supported with the relative extruder addressing (use_relative_e_distances=1)." +msgstr "В настоящее время для режима черновой башни поддерживается только относительная адресация экструдера (use_relative_e_distances=1)." #: src/libslic3r/Print.cpp:491 msgid "Ooze prevention is currently not supported with the wipe tower enabled." -msgstr "" -"\"Предотвращение течи материала\" в настоящее время не поддерживается при " -"включённой черновой башне." +msgstr "«Предотвращение течи материала» в настоящее время не поддерживается при включённой черновой башне." #: src/libslic3r/Print.cpp:493 -msgid "" -"The Wipe Tower currently does not support volumetric E (use_volumetric_e=0)." -msgstr "" -"Черновая башня в настоящее время не поддерживает объёмные значения E " -"(use_volumetric_e=0)." +msgid "The Wipe Tower currently does not support volumetric E (use_volumetric_e=0)." +msgstr "Черновая башня в настоящее время не поддерживает объёмные значения E (use_volumetric_e=0)." #: src/libslic3r/Print.cpp:495 -msgid "" -"The Wipe Tower is currently not supported for multimaterial sequential " -"prints." -msgstr "" -"В настоящее время режим черновой башни не поддерживает последовательную " -"печать для мультиматериальных принтеров." +msgid "The Wipe Tower is currently not supported for multimaterial sequential prints." +msgstr "В настоящее время режим черновой башни не поддерживает последовательную печать для мультиматериальных принтеров." #: src/libslic3r/Print.cpp:516 -msgid "" -"The Wipe Tower is only supported for multiple objects if they have equal " -"layer heights" -msgstr "" -"Режим черновой башни применим для нескольких моделей только в том случае, " -"если они имеют одинаковую высоту слоя." +msgid "The Wipe Tower is only supported for multiple objects if they have equal layer heights" +msgstr "Режим черновой башни применим для нескольких моделей только в том случае, если они имеют одинаковую высоту слоя." #: src/libslic3r/Print.cpp:518 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are printed " -"over an equal number of raft layers" -msgstr "" -"Режим черновой башни применим для нескольких моделей только в том случае, " -"если они имеют одинаковое число слоёв подложки." +msgid "The Wipe Tower is only supported for multiple objects if they are printed over an equal number of raft layers" +msgstr "Режим черновой башни применим для нескольких моделей только в том случае, если они имеют одинаковое число слоёв подложки." #: src/libslic3r/Print.cpp:521 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are printed " -"with the same support_material_contact_distance" -msgstr "" -"Режим черновой башни применим для нескольких моделей только в том случае, " -"если они печатаются с одинаковым support_material_contact_distance " -"(расстояние от поддержки до модели по вертикали)." +msgid "The Wipe Tower is only supported for multiple objects if they are printed with the same support_material_contact_distance" +msgstr "Режим черновой башни применим для нескольких моделей только в том случае, если они печатаются с одинаковым support_material_contact_distance (расстояние от поддержки до модели по вертикали)." #: src/libslic3r/Print.cpp:523 -msgid "" -"The Wipe Tower is only supported for multiple objects if they are sliced " -"equally." -msgstr "" -"Режим черновой башни применим для нескольких моделей только в том случае, " -"если они нарезаны одинаково." +msgid "The Wipe Tower is only supported for multiple objects if they are sliced equally." +msgstr "Режим черновой башни применим для нескольких моделей только в том случае, если они нарезаны одинаково." #: src/libslic3r/Print.cpp:536 -msgid "" -"The Wipe tower is only supported if all objects have the same variable layer " -"height" -msgstr "" -"Режим черновой башни применим только в том случае, если все модели имеют " -"одну и туже переменную высоту слоя." +msgid "The Wipe tower is only supported if all objects have the same variable layer height" +msgstr "Режим черновой башни применим только в том случае, если все модели имеют одну и туже переменную высоту слоя." #: src/libslic3r/Print.cpp:558 -msgid "" -"One or more object were assigned an extruder that the printer does not have." -msgstr "" -"Для одного или нескольких моделей был назначен экструдер, который у принтера " -"отсутствует." +msgid "One or more object were assigned an extruder that the printer does not have." +msgstr "Для одного или нескольких моделей был назначен экструдер, который у принтера отсутствует." #: src/libslic3r/Print.cpp:571 #, boost-format msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" -msgstr "" -"Значение параметра %1%=%2% мм слишком мало для печати при высоте слоя %3% мм" +msgstr "Значение параметра %1%=%2% мм слишком мало для печати при высоте слоя %3% мм" #: src/libslic3r/Print.cpp:574 #, boost-format msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" -msgstr "" -"Чрезмерное значение параметра %1%=%2% мм для печати при диаметре сопла %3% мм" +msgstr "Чрезмерное значение параметра %1%=%2% мм для печати при диаметре сопла %3% мм" #: src/libslic3r/Print.cpp:585 -msgid "" -"Printing with multiple extruders of differing nozzle diameters. If support " -"is to be printed with the current extruder (support_material_extruder == 0 " -"or support_material_interface_extruder == 0), all nozzles have to be of the " -"same diameter." -msgstr "" -"Печать несколькими экструдерами с соплами различного диаметра. Если " -"поддержка должна быть напечатана текущим экструдером " -"(support_material_extruder == 0 или support_material_interface_extruder == " -"0), все сопла должны иметь одинаковый диаметр." +msgid "Printing with multiple extruders of differing nozzle diameters. If support is to be printed with the current extruder (support_material_extruder == 0 or support_material_interface_extruder == 0), all nozzles have to be of the same diameter." +msgstr "Печать несколькими экструдерами с соплами различного диаметра. Если поддержка должна быть напечатана текущим экструдером (support_material_extruder == 0 или support_material_interface_extruder == 0), все сопла должны иметь одинаковый диаметр." #: src/libslic3r/Print.cpp:593 -msgid "" -"For the Wipe Tower to work with the soluble supports, the support layers " -"need to be synchronized with the object layers." -msgstr "" -"Для того, чтобы режим черновой башни работал с растворимой поддержкой, слои " -"поддержки должны быть синхронизированы со слоями модели." +msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers." +msgstr "Для того, чтобы режим черновой башни работал с растворимой поддержкой, слои поддержки должны быть синхронизированы со слоями модели." #: src/libslic3r/Print.cpp:597 -msgid "" -"The Wipe Tower currently supports the non-soluble supports only if they are " -"printed with the current extruder without triggering a tool change. (both " -"support_material_extruder and support_material_interface_extruder need to be " -"set to 0)." -msgstr "" -"В настоящее время режим черновой башни поддерживает нерастворимую поддержку " -"только в том случае, если они печатаются текущим экструдером, без запуска " -"смены инструмента. (Значения \"Экструдер, печатающий поддержки/подложки/юбки" -"\" и \"Экструдер, печатающий связующий слой поддержки/подложки\" должны быть " -"установлены в 0)." +msgid "The Wipe Tower currently supports the non-soluble supports only if they are printed with the current extruder without triggering a tool change. (both support_material_extruder and support_material_interface_extruder need to be set to 0)." +msgstr "В настоящее время режим черновой башни поддерживает нерастворимую поддержку только в том случае, если они печатаются текущим экструдером, без запуска смены инструмента. (Значения «Экструдер, печатающий поддержки/подложки/юбки» и «Экструдер, печатающий связующий слой поддержки/подложки» должны быть установлены в 0)." #: src/libslic3r/Print.cpp:633 msgid "First layer height can't be greater than nozzle diameter" @@ -10301,7 +9156,7 @@ msgstr "Заполнение слоёв" #: src/libslic3r/Print.cpp:814 msgid "Generating skirt and brim" -msgstr "" +msgstr "Генерация юбки и каймы" #: src/libslic3r/Print.cpp:862 msgid "Exporting G-code" @@ -10316,30 +9171,16 @@ msgid "Pad brim size is too small for the current configuration." msgstr "Размер каймы подложки слишком мал для текущих настроек." #: src/libslic3r/SLAPrint.cpp:628 -msgid "" -"Cannot proceed without support points! Add support points or disable support " -"generation." -msgstr "" -"Невозможно продолжить без точек поддержки! Добавьте точки поддержки или " -"отключите генерацию поддержки." +msgid "Cannot proceed without support points! Add support points or disable support generation." +msgstr "Невозможно продолжить без точек поддержки! Добавьте точки поддержки или отключите генерацию поддержки." #: src/libslic3r/SLAPrint.cpp:640 -msgid "" -"Elevation is too low for object. Use the \"Pad around object\" feature to " -"print the object without elevation." -msgstr "" -"Высота подъёма слишком низкая для модели. Используйте \"Подложка вокруг " -"модели\", чтобы напечатать модель без подъёма." +msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation." +msgstr "Высота подъёма слишком низкая для модели. Используйте «Подложка вокруг модели», чтобы напечатать модель без подъёма." #: src/libslic3r/SLAPrint.cpp:646 -msgid "" -"The endings of the support pillars will be deployed on the gap between the " -"object and the pad. 'Support base safety distance' has to be greater than " -"the 'Pad object gap' parameter to avoid this." -msgstr "" -"Концы тела поддержки будут размещены в зазоре между моделью и подложкой. " -"Чтобы избежать этого, \"Безопасное расстояние основания поддержки\" должно " -"быть больше, чем параметр \"Зазор между дном модели и подложкой\"." +msgid "The endings of the support pillars will be deployed on the gap between the object and the pad. 'Support base safety distance' has to be greater than the 'Pad object gap' parameter to avoid this." +msgstr "Концы тела поддержки будут размещены в зазоре между моделью и подложкой. Чтобы избежать этого, «Безопасное расстояние основания поддержки» должно быть больше, чем параметр «Зазор между дном модели и подложкой»." #: src/libslic3r/SLAPrint.cpp:661 msgid "Exposition time is out of printer profile bounds." @@ -10394,35 +9235,26 @@ msgid "Too many overlapping holes." msgstr "Слишком много пересекающихся отверстий." #: src/libslic3r/SLAPrintSteps.cpp:433 -msgid "" -"Mesh to be hollowed is not suitable for hollowing (does not bound a volume)." -msgstr "" +msgid "Mesh to be hollowed is not suitable for hollowing (does not bound a volume)." +msgstr "Сетка, для создания полости, не подходит для этого (она не ограничивает объём)." #: src/libslic3r/SLAPrintSteps.cpp:441 msgid "Unable to drill the current configuration of holes into the model." -msgstr "" +msgstr "Невозможно просверлить отверстия в модели с текущими настройками." #: src/libslic3r/SLAPrintSteps.cpp:461 -msgid "" -"Drilling holes into the mesh failed. This is usually caused by broken model. " -"Try to fix it first." -msgstr "" -"Не удалось проделать отверстия в сетке модели. Обычно это связано с " -"проблемой в самой модели. Попробуйте сначала починить её." +msgid "Drilling holes into the mesh failed. This is usually caused by broken model. Try to fix it first." +msgstr "Не удалось проделать отверстия в сетке модели. Обычно это связано с проблемой в самой модели. Попробуйте сначала починить её." #: src/libslic3r/SLAPrintSteps.cpp:467 msgid "Failed to drill some holes into the model" -msgstr "" +msgstr "Не удалось просверлить несколько отверстий в модели" #: src/libslic3r/SLAPrintSteps.cpp:511 -msgid "" -"Slicing had to be stopped due to an internal error: Inconsistent slice index." -msgstr "" -"Нарезку пришлось остановить из-за внутренней ошибки: несоответствие индекса " -"среза." +msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index." +msgstr "Нарезку пришлось остановить из-за внутренней ошибки: несоответствие индекса среза." -#: src/libslic3r/SLAPrintSteps.cpp:682 src/libslic3r/SLAPrintSteps.cpp:691 -#: src/libslic3r/SLAPrintSteps.cpp:729 +#: src/libslic3r/SLAPrintSteps.cpp:682 src/libslic3r/SLAPrintSteps.cpp:691 src/libslic3r/SLAPrintSteps.cpp:729 msgid "Visualizing supports" msgstr "Визуализация поддержек" @@ -10431,12 +9263,8 @@ msgid "No pad can be generated for this model with the current configuration" msgstr "Для этой модели с текущими настройками нельзя создать подложку." #: src/libslic3r/SLAPrintSteps.cpp:845 -msgid "" -"There are unprintable objects. Try to adjust support settings to make the " -"objects printable." -msgstr "" -"Имеются непечатаемые модели. Попробуйте настроить параметры поддержки так, " -"чтобы сделать их доступными для печати." +msgid "There are unprintable objects. Try to adjust support settings to make the objects printable." +msgstr "Имеются непечатаемые модели. Попробуйте настроить параметры поддержки так, чтобы сделать их доступными для печати." #: src/libslic3r/PrintBase.cpp:84 msgid "Failed processing of the output_filename_format template." @@ -10463,45 +9291,28 @@ msgid "Elephant foot compensation" msgstr "Компенсация расширения первого слоя" #: src/libslic3r/PrintConfig.cpp:248 -msgid "" -"The first layer will be shrunk in the XY plane by the configured value to " -"compensate for the 1st layer squish aka an Elephant Foot effect." -msgstr "" -"Первый слой будет уменьшен в плоскости XY на заданное значение, чтобы " -"компенсировать эффект \"хлюпанье\" первого слоя, известное как \"слоновья " -"нога\"." +msgid "The first layer will be shrunk in the XY plane by the configured value to compensate for the 1st layer squish aka an Elephant Foot effect." +msgstr "Первый слой будет уменьшен в плоскости XY на заданное значение, чтобы компенсировать эффект сплющивания первого слоя, известное как «слоновья нога»." #: src/libslic3r/PrintConfig.cpp:256 msgid "G-code thumbnails" msgstr "Эскизы G-код" #: src/libslic3r/PrintConfig.cpp:257 -msgid "" -"Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the " -"following format: \"XxY, XxY, ...\"" -msgstr "" +msgid "Picture sizes to be stored into a .gcode and .sl1 / .sl1s files, in the following format: \"XxY, XxY, ...\"" +msgstr "Размеры изображения, которые будут сохранены в файлах .sl1 / .sl1s в следующем формате: \"XxY, XxY, ...\"" #: src/libslic3r/PrintConfig.cpp:265 -msgid "" -"This setting controls the height (and thus the total number) of the slices/" -"layers. Thinner layers give better accuracy but take more time to print." -msgstr "" -"Этот параметр определяет высоту слоя. Чем выше значение, тем быстрее печать, " -"но более низкое разрешение, и наоборот. Этот параметр не может превышать " -"диаметр используемого сопла (желательно ставить не больше ¾ от этого " -"диаметра)." +msgid "This setting controls the height (and thus the total number) of the slices/layers. Thinner layers give better accuracy but take more time to print." +msgstr "Этот параметр определяет высоту слоя. Чем выше значение, тем быстрее печать, но более низкое разрешение, и наоборот. Этот параметр не может превышать диаметр используемого сопла (желательно ставить не больше ¾ от этого диаметра)." #: src/libslic3r/PrintConfig.cpp:272 msgid "Max print height" msgstr "Максимальная высота печати" #: src/libslic3r/PrintConfig.cpp:273 -msgid "" -"Set this to the maximum height that can be reached by your extruder while " -"printing." -msgstr "" -"Задаётся максимальная высота, которую может достичь ваш экструдер во время " -"печати." +msgid "Set this to the maximum height that can be reached by your extruder while printing." +msgstr "Задаётся максимальная высота, которую может достичь ваш экструдер во время печати." #: src/libslic3r/PrintConfig.cpp:281 msgid "Hostname, IP or URL" @@ -10509,43 +9320,27 @@ msgstr "Имя хоста, IP или URL" #: src/libslic3r/PrintConfig.cpp:282 msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the hostname, IP address or URL of the printer host instance. Print host " -"behind HAProxy with basic auth enabled can be accessed by putting the user " -"name and password into the URL in the following format: https://username:" -"password@your-octopi-address/" +"Slic3r can upload G-code files to a printer host. This field should contain the hostname, IP address or URL of the printer host instance. Print host behind HAProxy with basic auth enabled can be accessed by putting the user name and password into the URL in the following format: https://username:password@your-octopi-" +"address/" msgstr "" -"PrusaSlicer может загружать G-код файлы на хост принтера. В этом поле нужно " -"указать имя хоста, IP-адрес или URL-адрес хост-экземпляра печати. Доступ к " -"узлу печати на основе HAProxy с включенной базовой аутентификацией можно " -"получить, указав имя пользователя и пароль в поле URL-адрес в следующем " -"формате: https://username:password@your-octopi-address" +"PrusaSlicer может загружать G-код файлы на хост принтера. В этом поле нужно указать имя хоста, IP-адрес или URL-адрес хост-экземпляра печати. Доступ к узлу печати на основе HAProxy с включенной базовой аутентификацией можно получить, указав имя пользователя и пароль в поле URL-адрес в следующем формате: https://username:" +"password@your-octopi-address" #: src/libslic3r/PrintConfig.cpp:291 msgid "API Key / Password" msgstr "API-ключ / Пароль" #: src/libslic3r/PrintConfig.cpp:292 -msgid "" -"Slic3r can upload G-code files to a printer host. This field should contain " -"the API Key or the password required for authentication." -msgstr "" -"PrusaSlicer может загружать G-код файлы на хост принтера. Это поле должно " -"содержать API ключ или пароль, необходимые для проверки подлинности." +msgid "Slic3r can upload G-code files to a printer host. This field should contain the API Key or the password required for authentication." +msgstr "PrusaSlicer может загружать G-код файлы на хост принтера. Это поле должно содержать API ключ или пароль, необходимые для проверки подлинности." #: src/libslic3r/PrintConfig.cpp:300 msgid "Name of the printer" msgstr "Название принтера" #: src/libslic3r/PrintConfig.cpp:308 -msgid "" -"Custom CA certificate file can be specified for HTTPS OctoPrint connections, " -"in crt/pem format. If left blank, the default OS CA certificate repository " -"is used." -msgstr "" -"Пользовательский файл сертификата CA может быть указан для соединения по " -"HTTPS к OctoPrint в формате crt/pem. Если оставить поле пустым, будет " -"использоваться хранилище сертификатов ОС по умолчанию." +msgid "Custom CA certificate file can be specified for HTTPS OctoPrint connections, in crt/pem format. If left blank, the default OS CA certificate repository is used." +msgstr "Пользовательский файл сертификата CA может быть указан для соединения по HTTPS к OctoPrint в формате crt/pem. Если оставить поле пустым, будет использоваться хранилище сертификатов ОС по умолчанию." #: src/libslic3r/PrintConfig.cpp:324 msgid "Password" @@ -10553,22 +9348,19 @@ msgstr "Пароль" #: src/libslic3r/PrintConfig.cpp:332 msgid "Ignore HTTPS certificate revocation checks" -msgstr "" +msgstr "Игнорировать проверки отзыва HTTPS сертификата" #: src/libslic3r/PrintConfig.cpp:333 -msgid "" -"Ignore HTTPS certificate revocation checks in case of missing or offline " -"distribution points. One may want to enable this option for self signed " -"certificates if connection fails." -msgstr "" +msgid "Ignore HTTPS certificate revocation checks in case of missing or offline distribution points. One may want to enable this option for self signed certificates if connection fails." +msgstr "Игнорировать проверки отзыва HTTPS сертификата в случае его отсутствия или автономности точек распространения. Можно включить эту опцию для самоподписанных сертификатов в случае сбоя подключения." #: src/libslic3r/PrintConfig.cpp:340 msgid "Printer preset names" -msgstr "" +msgstr "Имена профиля принтера" #: src/libslic3r/PrintConfig.cpp:341 msgid "Names of presets related to the physical printer" -msgstr "" +msgstr "Имена профилей, связанных с физическим принтером" #: src/libslic3r/PrintConfig.cpp:346 msgid "Authorization Type" @@ -10587,33 +9379,16 @@ msgid "Avoid crossing perimeters" msgstr "Избегать пересечения периметров" #: src/libslic3r/PrintConfig.cpp:373 -msgid "" -"Optimize travel moves in order to minimize the crossing of perimeters. This " -"is mostly useful with Bowden extruders which suffer from oozing. This " -"feature slows down both the print and the G-code generation." -msgstr "" -"Этот параметр призван оптимизировать маршрут движения печатающей головки, " -"чтобы свести к минимуму пересечение стенок при движении. Полезно " -"использовать с экструдерами Боудена, которые страдают от просачивание " -"расплавленного материала. Эта функция замедляет как печать, так и генерацию " -"G-кода." +msgid "Optimize travel moves in order to minimize the crossing of perimeters. This is mostly useful with Bowden extruders which suffer from oozing. This feature slows down both the print and the G-code generation." +msgstr "Этот параметр призван оптимизировать маршрут движения печатающей головки, чтобы свести к минимуму пересечение стенок при движении. Полезно использовать с экструдерами Боудена, которые страдают от просачивание расплавленного материала. Эта функция замедляет как печать, так и генерацию G-кода." #: src/libslic3r/PrintConfig.cpp:380 msgid "Avoid crossing perimeters - Max detour length" msgstr "Избегать пересечения периметров - Макс. длина обхода" #: src/libslic3r/PrintConfig.cpp:382 -msgid "" -"The maximum detour length for avoid crossing perimeters. If the detour is " -"longer than this value, avoid crossing perimeters is not applied for this " -"travel path. Detour length could be specified either as an absolute value or " -"as percentage (for example 50%) of a direct travel path." -msgstr "" -"Максимальное расстояние обхода сопла от модели во избежание пересечения " -"периметров при движении. Если расстояние обхода превышает это значение, то " -"для данного маршрута эта опция не применяется. Длина обхода может быть " -"указана как абсолютном значении, так и в процентах (например, 50%) от " -"траектории перемещения. ???" +msgid "The maximum detour length for avoid crossing perimeters. If the detour is longer than this value, avoid crossing perimeters is not applied for this travel path. Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path." +msgstr "Максимальное расстояние обхода сопла от модели во избежание пересечения периметров при движении. Если расстояние обхода превышает это значение, то для данного маршрута эта опция не применяется. Длина обхода может быть задана как в абсолютном значении, так и в процентах (например, 50%) от прямого пути перемещения." #: src/libslic3r/PrintConfig.cpp:385 msgid "mm or % (zero to disable)" @@ -10624,27 +9399,16 @@ msgid "Other layers" msgstr "Последующие слои" #: src/libslic3r/PrintConfig.cpp:393 -msgid "" -"Bed temperature for layers after the first one. Set this to zero to disable " -"bed temperature control commands in the output." -msgstr "" -"Температура подогреваемого стола для слоёв после первого. Установите 0, " -"чтобы отключить команды управления температурой стола на выходе." +msgid "Bed temperature for layers after the first one. Set this to zero to disable bed temperature control commands in the output." +msgstr "Температура подогреваемого стола для слоёв после первого. Установите 0, чтобы отключить команды управления температурой стола на выходе." #: src/libslic3r/PrintConfig.cpp:396 msgid "Bed temperature" msgstr "Температура стола" #: src/libslic3r/PrintConfig.cpp:403 -msgid "" -"This custom code is inserted at every layer change, right before the Z move. " -"Note that you can use placeholder variables for all Slic3r settings as well " -"as [layer_num] and [layer_z]." -msgstr "" -"Этот пользовательский код вставляется при каждой смене слоя, непосредственно " -"перед перемещения оси Z. Обратите внимание, что вы можете использовать " -"шаблонные переменные для всех параметров PrusaSlicer, в том числе " -"[layer_num] и [layer_z]." +msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." +msgstr "Этот пользовательский код вставляется при каждой смене слоя, непосредственно перед перемещения оси Z. Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer, в том числе [layer_num] и [layer_z]." #: src/libslic3r/PrintConfig.cpp:413 msgid "Between objects G-code" @@ -10652,20 +9416,11 @@ msgstr "G-код между моделями" #: src/libslic3r/PrintConfig.cpp:414 msgid "" -"This code is inserted between objects when using sequential printing. By " -"default extruder and bed temperature are reset using non-wait command; " -"however if M104, M109, M140 or M190 are detected in this custom code, Slic3r " -"will not add temperature commands. Note that you can use placeholder " -"variables for all Slic3r settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want." +"This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, " +"so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "" -"Этот код вставляется между моделями при включении последовательной печати. " -"По умолчанию экструдер и температура стола сбрасываются с помощью команды " -"без ожидания; однако, если в этом пользовательском коде обнаруживаются " -"команды M104, M109, M140 или M190, то PrusaSlicer не добавит команды " -"температуры. Обратите внимание, что вы можете использовать шаблонные " -"переменные для всех параметров PrusaSlicer, поэтому вы можете вставить " -"команду \"M109 S[first_layer_temperature]\" где угодно." +"Этот код вставляется между моделями при включении последовательной печати. По умолчанию экструдер и температура стола сбрасываются с помощью команды без ожидания; однако, если в этом пользовательском коде обнаруживаются команды M104, M109, M140 или M190, то PrusaSlicer не добавит команды температуры. Обратите внимание, что " +"вы можете использовать шаблонные переменные для всех параметров PrusaSlicer, поэтому вы можете вставить команду \"M109 S[first_layer_temperature]\" где угодно." #: src/libslic3r/PrintConfig.cpp:425 msgid "Number of solid layers to generate on bottom surfaces." @@ -10676,13 +9431,8 @@ msgid "Bottom solid layers" msgstr "Нижних сплошных слоёв" #: src/libslic3r/PrintConfig.cpp:434 -msgid "" -"The number of bottom solid layers is increased above bottom_solid_layers if " -"necessary to satisfy minimum thickness of bottom shell." -msgstr "" -"При необходимости количество нижних сплошных слоёв увеличивается выше " -"значения bottom_solid_layers (\"Сплошных слоёв снизу\") для удовлетворения " -"минимальной толщины оболочки снизу." +msgid "The number of bottom solid layers is increased above bottom_solid_layers if necessary to satisfy minimum thickness of bottom shell." +msgstr "При необходимости количество нижних сплошных слоёв увеличивается выше значения bottom_solid_layers («Сплошных слоёв снизу») для удовлетворения минимальной толщины оболочки снизу." #: src/libslic3r/PrintConfig.cpp:436 msgid "Minimum bottom shell thickness" @@ -10693,18 +9443,11 @@ msgid "Bridge" msgstr "Мосты" #: src/libslic3r/PrintConfig.cpp:443 -msgid "" -"This is the acceleration your printer will use for bridges. Set zero to " -"disable acceleration control for bridges." -msgstr "" -"Ускорение, которое принтер будет использовать для печати мостов. Установить " -"0, чтобы отключить управление ускорением для мостов." +msgid "This is the acceleration your printer will use for bridges. Set zero to disable acceleration control for bridges." +msgstr "Ускорение, которое принтер будет использовать для печати мостов. Установить 0, чтобы отключить управление ускорением для мостов." -#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:616 -#: src/libslic3r/PrintConfig.cpp:1169 src/libslic3r/PrintConfig.cpp:1178 -#: src/libslic3r/PrintConfig.cpp:1372 src/libslic3r/PrintConfig.cpp:1665 -#: src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1727 -#: src/libslic3r/PrintConfig.cpp:1737 src/libslic3r/PrintConfig.cpp:1935 +#: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:616 src/libslic3r/PrintConfig.cpp:1169 src/libslic3r/PrintConfig.cpp:1178 src/libslic3r/PrintConfig.cpp:1372 src/libslic3r/PrintConfig.cpp:1665 src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1727 src/libslic3r/PrintConfig.cpp:1737 +#: src/libslic3r/PrintConfig.cpp:1935 msgid "mm/s²" msgstr "мм/с²" @@ -10713,20 +9456,10 @@ msgid "Bridging angle" msgstr "Угол (направление) печати мостов" #: src/libslic3r/PrintConfig.cpp:453 -msgid "" -"Bridging angle override. If left to zero, the bridging angle will be " -"calculated automatically. Otherwise the provided angle will be used for all " -"bridges. Use 180° for zero angle." -msgstr "" -"Принудительная печать мостов в одном, заданном направлении. Если задано 0, " -"угол печати мостов рассчитывается автоматически. В противном случае заданный " -"угол будет использоваться для всех мостов. Для нулевого угла установите 180°." +msgid "Bridging angle override. If left to zero, the bridging angle will be calculated automatically. Otherwise the provided angle will be used for all bridges. Use 180° for zero angle." +msgstr "Принудительная печать мостов в одном, заданном направлении. Если задано 0, угол печати мостов рассчитывается автоматически. В противном случае заданный угол будет использоваться для всех мостов. Для нулевого угла установите 180°." -#: src/libslic3r/PrintConfig.cpp:456 src/libslic3r/PrintConfig.cpp:1075 -#: src/libslic3r/PrintConfig.cpp:2226 src/libslic3r/PrintConfig.cpp:2236 -#: src/libslic3r/PrintConfig.cpp:2527 src/libslic3r/PrintConfig.cpp:2768 -#: src/libslic3r/PrintConfig.cpp:2985 src/libslic3r/PrintConfig.cpp:3546 -#: src/libslic3r/PrintConfig.cpp:3667 +#: src/libslic3r/PrintConfig.cpp:456 src/libslic3r/PrintConfig.cpp:1075 src/libslic3r/PrintConfig.cpp:2226 src/libslic3r/PrintConfig.cpp:2236 src/libslic3r/PrintConfig.cpp:2527 src/libslic3r/PrintConfig.cpp:2768 src/libslic3r/PrintConfig.cpp:2985 src/libslic3r/PrintConfig.cpp:3546 src/libslic3r/PrintConfig.cpp:3667 msgid "°" msgstr "°" @@ -10736,14 +9469,10 @@ msgstr "Скорость вентилятора при печати мостов #: src/libslic3r/PrintConfig.cpp:463 msgid "This fan speed is enforced during all bridges and overhangs." -msgstr "" -"Скорость вращения вентилятора при печати мостов и нависающих частей модели." +msgstr "Скорость вращения вентилятора при печати мостов и нависающих частей модели." -#: src/libslic3r/PrintConfig.cpp:464 src/libslic3r/PrintConfig.cpp:1087 -#: src/libslic3r/PrintConfig.cpp:1553 src/libslic3r/PrintConfig.cpp:1745 -#: src/libslic3r/PrintConfig.cpp:1808 src/libslic3r/PrintConfig.cpp:2059 -#: src/libslic3r/PrintConfig.cpp:2118 src/libslic3r/PrintConfig.cpp:3171 -#: src/libslic3r/PrintConfig.cpp:3460 src/libslic3r/PrintConfig.cpp:3586 +#: src/libslic3r/PrintConfig.cpp:464 src/libslic3r/PrintConfig.cpp:1087 src/libslic3r/PrintConfig.cpp:1553 src/libslic3r/PrintConfig.cpp:1745 src/libslic3r/PrintConfig.cpp:1808 src/libslic3r/PrintConfig.cpp:2059 src/libslic3r/PrintConfig.cpp:2118 src/libslic3r/PrintConfig.cpp:3171 src/libslic3r/PrintConfig.cpp:3460 +#: src/libslic3r/PrintConfig.cpp:3586 msgid "%" msgstr "%" @@ -10752,19 +9481,10 @@ msgid "Bridge flow ratio" msgstr "Коэффициент подачи пластика при печати мостов" #: src/libslic3r/PrintConfig.cpp:473 -msgid "" -"This factor affects the amount of plastic for bridging. You can decrease it " -"slightly to pull the extrudates and prevent sagging, although default " -"settings are usually good and you should experiment with cooling (use a fan) " -"before tweaking this." +msgid "This factor affects the amount of plastic for bridging. You can decrease it slightly to pull the extrudates and prevent sagging, although default settings are usually good and you should experiment with cooling (use a fan) before tweaking this." msgstr "" -"Этот параметр задаёт количество пластика, затрачивающегося на построение " -"мостов. В большинстве случаев настроек по умолчанию (1) достаточно, тем не " -"менее, при печати некоторых моделей уменьшение параметра может сократить " -"провисание пластика при печати мостов. Если при печати мостов протягиваемый " -"пруток рвётся, параметр нужно увеличить (например, до 1.1). Перед " -"редактированием этого параметра не забывайте, что регулировать качество " -"натяжки мостов можно и при помощи обдува модели." +"Этот параметр задаёт количество пластика, затрачивающегося на построение мостов. В большинстве случаев настроек по умолчанию (1) достаточно, тем не менее, при печати некоторых моделей уменьшение параметра может сократить провисание пластика при печати мостов. Если при печати мостов протягиваемый пруток рвётся, параметр " +"нужно увеличить (например, до 1.1). Перед редактированием этого параметра не забывайте, что регулировать качество натяжки мостов можно и при помощи обдува модели." #: src/libslic3r/PrintConfig.cpp:483 msgid "Bridges" @@ -10774,17 +9494,9 @@ msgstr "Мосты" msgid "Speed for printing bridges." msgstr "Скорость печати мостов." -#: src/libslic3r/PrintConfig.cpp:486 src/libslic3r/PrintConfig.cpp:894 -#: src/libslic3r/PrintConfig.cpp:902 src/libslic3r/PrintConfig.cpp:911 -#: src/libslic3r/PrintConfig.cpp:919 src/libslic3r/PrintConfig.cpp:946 -#: src/libslic3r/PrintConfig.cpp:965 src/libslic3r/PrintConfig.cpp:1306 -#: src/libslic3r/PrintConfig.cpp:1490 src/libslic3r/PrintConfig.cpp:1572 -#: src/libslic3r/PrintConfig.cpp:1648 src/libslic3r/PrintConfig.cpp:1682 -#: src/libslic3r/PrintConfig.cpp:1694 src/libslic3r/PrintConfig.cpp:1704 -#: src/libslic3r/PrintConfig.cpp:1767 src/libslic3r/PrintConfig.cpp:1826 -#: src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:2193 -#: src/libslic3r/PrintConfig.cpp:2202 src/libslic3r/PrintConfig.cpp:2733 -#: src/libslic3r/PrintConfig.cpp:2883 src/libslic3r/PrintConfig.cpp:2893 +#: src/libslic3r/PrintConfig.cpp:486 src/libslic3r/PrintConfig.cpp:894 src/libslic3r/PrintConfig.cpp:902 src/libslic3r/PrintConfig.cpp:911 src/libslic3r/PrintConfig.cpp:919 src/libslic3r/PrintConfig.cpp:946 src/libslic3r/PrintConfig.cpp:965 src/libslic3r/PrintConfig.cpp:1306 src/libslic3r/PrintConfig.cpp:1490 +#: src/libslic3r/PrintConfig.cpp:1572 src/libslic3r/PrintConfig.cpp:1648 src/libslic3r/PrintConfig.cpp:1682 src/libslic3r/PrintConfig.cpp:1694 src/libslic3r/PrintConfig.cpp:1704 src/libslic3r/PrintConfig.cpp:1767 src/libslic3r/PrintConfig.cpp:1826 src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:2193 +#: src/libslic3r/PrintConfig.cpp:2202 src/libslic3r/PrintConfig.cpp:2733 src/libslic3r/PrintConfig.cpp:2883 src/libslic3r/PrintConfig.cpp:2893 msgid "mm/s" msgstr "мм/с" @@ -10793,61 +9505,48 @@ msgid "Brim width" msgstr "Ширина каймы" #: src/libslic3r/PrintConfig.cpp:495 -msgid "" -"The horizontal width of the brim that will be printed around each object on " -"the first layer. When raft is used, no brim is generated (use " -"raft_first_layer_expansion)." -msgstr "" +msgid "The horizontal width of the brim that will be printed around each object on the first layer. When raft is used, no brim is generated (use raft_first_layer_expansion)." +msgstr "Горизонтальная ширина каймы, которая будет напечатана вокруг каждой модели на первом слое. При использовании подложки, кайма не создаётся (используйте raft_first_layer_expansion)." #: src/libslic3r/PrintConfig.cpp:504 msgid "Brim type" -msgstr "" +msgstr "Тип каймы" #: src/libslic3r/PrintConfig.cpp:506 -msgid "" -"The places where the brim will be printed around each object on the first " -"layer." -msgstr "" +msgid "The places where the brim will be printed around each object on the first layer." +msgstr "Выбор места печати каймы вокруг каждой модели на первом слое." #: src/libslic3r/PrintConfig.cpp:512 msgid "No brim" -msgstr "" +msgstr "Без каймы" #: src/libslic3r/PrintConfig.cpp:513 msgid "Outer brim only" -msgstr "" +msgstr "Кайма только снаружи" #: src/libslic3r/PrintConfig.cpp:514 msgid "Inner brim only" -msgstr "" +msgstr "Кайма только внутри" #: src/libslic3r/PrintConfig.cpp:515 msgid "Outer and inner brim" -msgstr "" +msgstr "Кайма снаружи и внутри" #: src/libslic3r/PrintConfig.cpp:520 msgid "Brim separation gap" -msgstr "" +msgstr "Смещение каймы" #: src/libslic3r/PrintConfig.cpp:522 -msgid "" -"Offset of brim from the printed object. The offset is applied after the " -"elephant foot compensation." -msgstr "" +msgid "Offset of brim from the printed object. The offset is applied after the elephant foot compensation." +msgstr "Смещение каймы от печатаемой модели. Смещение применяется после компенсации слоновьей ноги." #: src/libslic3r/PrintConfig.cpp:529 msgid "Clip multi-part objects" msgstr "Обрезать составные модели (состоящие из нескольких частей)" #: src/libslic3r/PrintConfig.cpp:530 -msgid "" -"When printing multi-material objects, this settings will make Slic3r to clip " -"the overlapping object parts one by the other (2nd part will be clipped by " -"the 1st, 3rd part will be clipped by the 1st and 2nd etc)." -msgstr "" -"При печати моделей несколькими материалами эта настройка заставляет " -"PrusaSlicer обрезать части, которые перекрываются друг другом (вторая часть " -"будет обрезана первой, третья - первой и второй и т.д.)." +msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)." +msgstr "При печати моделей несколькими материалами эта настройка заставляет PrusaSlicer обрезать части, которые перекрываются друг другом (вторая часть будет обрезана первой, третья - первой и второй и т.д.)." #: src/libslic3r/PrintConfig.cpp:537 msgid "Colorprint height" @@ -10862,57 +9561,32 @@ msgid "Compatible printers condition" msgstr "Условия совместимости с принтером" #: src/libslic3r/PrintConfig.cpp:549 -msgid "" -"A boolean expression using the configuration values of an active printer " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active printer profile." -msgstr "" -"Логическое выражение, использующее значения конфигурации активного профиля " -"принтера. Если это выражение имеет значение true, этот профиль считается " -"совместимым с активным профилем принтера." +msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile." +msgstr "Логическое выражение, использующее значения конфигурации активного профиля принтера. Если это выражение имеет значение true, этот профиль считается совместимым с активным профилем принтера." #: src/libslic3r/PrintConfig.cpp:563 msgid "Compatible print profiles condition" msgstr "Условия совместимости профилей печати" #: src/libslic3r/PrintConfig.cpp:564 -msgid "" -"A boolean expression using the configuration values of an active print " -"profile. If this expression evaluates to true, this profile is considered " -"compatible with the active print profile." -msgstr "" -"Логическое выражение, использующее значения конфигурации активного профиля " -"печати. Если это выражение имеет значение true, этот профиль считается " -"совместимым с активным профилем принтера." +msgid "A boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile." +msgstr "Логическое выражение, использующее значения конфигурации активного профиля печати. Если это выражение имеет значение true, этот профиль считается совместимым с активным профилем принтера." #: src/libslic3r/PrintConfig.cpp:581 msgid "Complete individual objects" msgstr "Печатать модели по очереди" #: src/libslic3r/PrintConfig.cpp:582 -msgid "" -"When printing multiple objects or copies, this feature will complete each " -"object before moving onto next one (and starting it from its bottom layer). " -"This feature is useful to avoid the risk of ruined prints. Slic3r should " -"warn and prevent you from extruder collisions, but beware." -msgstr "" -"Когда на печатающем столе размещено несколько моделей, эта функция позволяет " -"печатать их по очереди - сначала будет напечатана одна модель, потом вторая. " -"Этот режим может быть использован только в том случае, когда все модели " -"разнесены таким образом, что вся печатающая головка может перемещаться между " -"ними." +msgid "When printing multiple objects or copies, this feature will complete each object before moving onto next one (and starting it from its bottom layer). This feature is useful to avoid the risk of ruined prints. Slic3r should warn and prevent you from extruder collisions, but beware." +msgstr "Когда на печатающем столе размещено несколько моделей, эта функция позволяет печатать их по очереди - сначала будет напечатана одна модель, потом вторая. Этот режим может быть использован только в том случае, когда все модели разнесены таким образом, что вся печатающая головка может перемещаться между ними." #: src/libslic3r/PrintConfig.cpp:590 msgid "Enable auto cooling" msgstr "Автоматическое управление охлаждением" #: src/libslic3r/PrintConfig.cpp:591 -msgid "" -"This flag enables the automatic cooling logic that adjusts print speed and " -"fan speed according to layer printing time." -msgstr "" -"Программа задействует алгоритм автоматического охлаждения и сама регулирует " -"скорость печати и скорость вентилятора в зависимости от времени печати слоя." +msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time." +msgstr "Программа задействует алгоритм автоматического охлаждения и сама регулирует скорость печати и скорость вентилятора в зависимости от времени печати слоя." #: src/libslic3r/PrintConfig.cpp:596 msgid "Cooling tube position" @@ -10920,8 +9594,7 @@ msgstr "Позиция охлаждающей трубки" #: src/libslic3r/PrintConfig.cpp:597 msgid "Distance of the center-point of the cooling tube from the extruder tip." -msgstr "" -"Расстояние между центральной точкой охлаждающей трубки и кончиком экструдера." +msgstr "Расстояние между центральной точкой охлаждающей трубки и кончиком экструдера." #: src/libslic3r/PrintConfig.cpp:604 msgid "Cooling tube length" @@ -10929,67 +9602,42 @@ msgstr "Длина охлаждающей трубки" #: src/libslic3r/PrintConfig.cpp:605 msgid "Length of the cooling tube to limit space for cooling moves inside it." -msgstr "" -"Длина трубки охлаждения для ограничения перемещения при охлаждающих " -"движениях." +msgstr "Длина трубки охлаждения для ограничения перемещения при охлаждающих движениях." #: src/libslic3r/PrintConfig.cpp:613 -msgid "" -"This is the acceleration your printer will be reset to after the role-" -"specific acceleration values are used (perimeter/infill). Set zero to " -"prevent resetting acceleration at all." -msgstr "" -"Это ускорение, на которое переключится принтер после использования " -"определённых настроек ускорения, например установленных для печати периметра/" -"заполнения. Установите 0, чтобы предотвратить сброс ускорения вообще." +msgid "This is the acceleration your printer will be reset to after the role-specific acceleration values are used (perimeter/infill). Set zero to prevent resetting acceleration at all." +msgstr "Это ускорение, на которое переключится принтер после использования определённых настроек ускорения, например установленных для печати периметра/заполнения. Установите 0, чтобы предотвратить сброс ускорения вообще." #: src/libslic3r/PrintConfig.cpp:622 msgid "Default filament profile" msgstr "Профиль прутка по умолчанию" #: src/libslic3r/PrintConfig.cpp:623 -msgid "" -"Default filament profile associated with the current printer profile. On " -"selection of the current printer profile, this filament profile will be " -"activated." -msgstr "" -"Профиль прутка по умолчанию, связанный с текущим профилем принтера. При " -"выборе текущего профиля принтера, будет активирован этот профиль прутка." +msgid "Default filament profile associated with the current printer profile. On selection of the current printer profile, this filament profile will be activated." +msgstr "Профиль прутка по умолчанию, связанный с текущим профилем принтера. При выборе текущего профиля принтера, будет активирован этот профиль прутка." #: src/libslic3r/PrintConfig.cpp:629 msgid "Default print profile" msgstr "Профиль печати по умолчанию" -#: src/libslic3r/PrintConfig.cpp:630 src/libslic3r/PrintConfig.cpp:3390 -#: src/libslic3r/PrintConfig.cpp:3401 -msgid "" -"Default print profile associated with the current printer profile. On " -"selection of the current printer profile, this print profile will be " -"activated." -msgstr "" -"Профиль печати по умолчанию, связанный с текущим профилем принтера. При " -"выборе текущего профиля принтера, будет активирован этот профиль печати." +#: src/libslic3r/PrintConfig.cpp:630 src/libslic3r/PrintConfig.cpp:3390 src/libslic3r/PrintConfig.cpp:3401 +msgid "Default print profile associated with the current printer profile. On selection of the current printer profile, this print profile will be activated." +msgstr "Профиль печати по умолчанию, связанный с текущим профилем принтера. При выборе текущего профиля принтера, будет активирован этот профиль печати." #: src/libslic3r/PrintConfig.cpp:636 msgid "Disable fan for the first" msgstr "Не включать вентилятор на первых" #: src/libslic3r/PrintConfig.cpp:637 -msgid "" -"You can set this to a positive value to disable fan at all during the first " -"layers, so that it does not make adhesion worse." -msgstr "" -"Вы можете задать положительное значение, чтобы отключить вентилятор при " -"печати первых слоёв, чтобы не ухудшить адгезию к столу." +msgid "You can set this to a positive value to disable fan at all during the first layers, so that it does not make adhesion worse." +msgstr "Вы можете задать положительное значение, чтобы отключить вентилятор при печати первых слоёв, чтобы не ухудшить адгезию к столу." #: src/libslic3r/PrintConfig.cpp:646 msgid "Don't support bridges" msgstr "Не печатать поддержку под мостами" #: src/libslic3r/PrintConfig.cpp:648 -msgid "" -"Experimental option for preventing support material from being generated " -"under bridged areas." +msgid "Experimental option for preventing support material from being generated under bridged areas." msgstr "Экспериментальная опция препятствующая печати поддержки под мостами." #: src/libslic3r/PrintConfig.cpp:654 @@ -11001,56 +9649,33 @@ msgid "Distance used for the auto-arrange feature of the plater." msgstr "Расстояние, между моделям при авторасстановке их на столе." #: src/libslic3r/PrintConfig.cpp:663 -msgid "" -"This end procedure is inserted at the end of the output file. Note that you " -"can use placeholder variables for all PrusaSlicer settings." -msgstr "" -"Команды в G-коде, которые будут вставляться в конец выходного файла. " -"Обратите внимание, что вы можете использовать шаблонные переменные для всех " -"параметров PrusaSlicer." +msgid "This end procedure is inserted at the end of the output file. Note that you can use placeholder variables for all PrusaSlicer settings." +msgstr "Команды в G-коде, которые будут вставляться в конец выходного файла. Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer." #: src/libslic3r/PrintConfig.cpp:673 msgid "" -"This end procedure is inserted at the end of the output file, before the " -"printer end gcode (and before any toolchange from this filament in case of " -"multimaterial printers). Note that you can use placeholder variables for all " -"PrusaSlicer settings. If you have multiple extruders, the gcode is processed " -"in extruder order." +"This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order." msgstr "" -"Команды в G-коде, которые будут вставляться в конец выходного файла перед " -"конечным G-кодом принтера (и перед каждым переключением инструмента с " -"текущим прутком в случае мультиматериальных принтеров). Обратите внимание, " -"что вы можете использовать шаблонные переменные для всех параметров " -"PrusaSlicer. Если у вас несколько экструдеров, G-код обрабатывается в " -"соответствии с порядковым номером экструдера." +"Команды в G-коде, которые будут вставляться в конец выходного файла перед конечным G-кодом принтера (и перед каждым переключением инструмента с текущим прутком в случае мультиматериальных принтеров). Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer. Если у вас несколько " +"экструдеров, G-код обрабатывается в соответствии с порядковым номером экструдера." #: src/libslic3r/PrintConfig.cpp:684 msgid "Ensure vertical shell thickness" msgstr "Обеспечивать вертикальную толщину оболочки" #: src/libslic3r/PrintConfig.cpp:686 -msgid "" -"Add solid infill near sloping surfaces to guarantee the vertical shell " -"thickness (top+bottom solid layers)." -msgstr "" -"Добавляет сплошные опоры у наклонных поверхностей для того, чтобы " -"гарантировать вертикальную толщину оболочки (верхние+нижние сплошные слои). " -"Это помогает избежать дыр на наклонной поверхности." +msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)." +msgstr "Добавляет сплошные опоры у наклонных поверхностей для того, чтобы гарантировать вертикальную толщину оболочки (верхние+нижние сплошные слои). Это помогает избежать дыр на наклонной поверхности." #: src/libslic3r/PrintConfig.cpp:692 msgid "Top fill pattern" msgstr "Шаблон заполнения верхней поверхности" #: src/libslic3r/PrintConfig.cpp:694 -msgid "" -"Fill pattern for top infill. This only affects the top visible layer, and " -"not its adjacent solid shells." -msgstr "" -"Тип сетки, которой закрывается верхняя поверхность. Это влияет только на " -"внешний видимый слой, а не на прилегающие к нему твёрдые оболочки." +msgid "Fill pattern for top infill. This only affects the top visible layer, and not its adjacent solid shells." +msgstr "Тип сетки, которой закрывается верхняя поверхность. Это влияет только на внешний видимый слой, а не на прилегающие к нему твёрдые оболочки." -#: src/libslic3r/PrintConfig.cpp:704 src/libslic3r/PrintConfig.cpp:1144 -#: src/libslic3r/PrintConfig.cpp:2698 src/libslic3r/PrintConfig.cpp:2715 +#: src/libslic3r/PrintConfig.cpp:704 src/libslic3r/PrintConfig.cpp:1144 src/libslic3r/PrintConfig.cpp:2698 src/libslic3r/PrintConfig.cpp:2715 msgid "Rectilinear" msgstr "Прямолинейный" @@ -11062,8 +9687,7 @@ msgstr "Монотонный" msgid "Aligned Rectilinear" msgstr "Выровн. прямолинейн." -#: src/libslic3r/PrintConfig.cpp:707 src/libslic3r/PrintConfig.cpp:1151 -#: src/libslic3r/PrintConfig.cpp:2716 +#: src/libslic3r/PrintConfig.cpp:707 src/libslic3r/PrintConfig.cpp:1151 src/libslic3r/PrintConfig.cpp:2716 msgid "Concentric" msgstr "Концентрический" @@ -11084,53 +9708,28 @@ msgid "Bottom fill pattern" msgstr "Шаблон заполнения нижней поверхности" #: src/libslic3r/PrintConfig.cpp:718 -msgid "" -"Fill pattern for bottom infill. This only affects the bottom external " -"visible layer, and not its adjacent solid shells." -msgstr "" -"Тип сетки, которой закрывается нижняя поверхность. Это влияет только на " -"нижний внешний видимый слой, а не на прилегающие к нему твёрдые оболочки." +msgid "Fill pattern for bottom infill. This only affects the bottom external visible layer, and not its adjacent solid shells." +msgstr "Тип сетки, которой закрывается нижняя поверхность. Это влияет только на нижний внешний видимый слой, а не на прилегающие к нему твёрдые оболочки." #: src/libslic3r/PrintConfig.cpp:727 src/libslic3r/PrintConfig.cpp:739 msgid "External perimeters" msgstr "Внешние периметры" #: src/libslic3r/PrintConfig.cpp:729 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for external " -"perimeters. If left zero, default extrusion width will be used if set, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 200%), it will be computed over layer height." +msgid "Set this to a non-zero value to set a manual extrusion width for external perimeters. If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 200%), it will be computed over layer height." msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"внешних периметров. Если оставить 0, будет использоваться \"Ширина экструзии " -"по умолчанию\" - если она задана, в противном случае будет использоваться " -"1,125 x диаметра сопла. Если задано в процентах, параметр вычисляется " -"относительно высоты слоя." +"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для внешних периметров. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном случае будет использоваться 1,125 x диаметра сопла. Если задано в процентах, параметр вычисляется относительно высоты слоя." -#: src/libslic3r/PrintConfig.cpp:732 src/libslic3r/PrintConfig.cpp:843 -#: src/libslic3r/PrintConfig.cpp:1200 src/libslic3r/PrintConfig.cpp:1397 -#: src/libslic3r/PrintConfig.cpp:1454 src/libslic3r/PrintConfig.cpp:1481 -#: src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:2341 -#: src/libslic3r/PrintConfig.cpp:2515 src/libslic3r/PrintConfig.cpp:2604 -#: src/libslic3r/PrintConfig.cpp:2839 +#: src/libslic3r/PrintConfig.cpp:732 src/libslic3r/PrintConfig.cpp:843 src/libslic3r/PrintConfig.cpp:1200 src/libslic3r/PrintConfig.cpp:1397 src/libslic3r/PrintConfig.cpp:1454 src/libslic3r/PrintConfig.cpp:1481 src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:2341 src/libslic3r/PrintConfig.cpp:2515 +#: src/libslic3r/PrintConfig.cpp:2604 src/libslic3r/PrintConfig.cpp:2839 msgid "mm or %" msgstr "мм или %" #: src/libslic3r/PrintConfig.cpp:741 -msgid "" -"This separate setting will affect the speed of external perimeters (the " -"visible ones). If expressed as percentage (for example: 80%) it will be " -"calculated on the perimeters speed setting above. Set to zero for auto." -msgstr "" -"Этот параметр влияет на скорость печати внешних периметров (видимых). Если " -"задано в процентах, параметр вычисляется относительно скорости печати " -"внутренних периметров. Установите 0 для автонастройки." +msgid "This separate setting will affect the speed of external perimeters (the visible ones). If expressed as percentage (for example: 80%) it will be calculated on the perimeters speed setting above. Set to zero for auto." +msgstr "Этот параметр влияет на скорость печати внешних периметров (видимых). Если задано в процентах, параметр вычисляется относительно скорости печати внутренних периметров. Установите 0 для автонастройки." -#: src/libslic3r/PrintConfig.cpp:744 src/libslic3r/PrintConfig.cpp:1222 -#: src/libslic3r/PrintConfig.cpp:1233 src/libslic3r/PrintConfig.cpp:2300 -#: src/libslic3r/PrintConfig.cpp:2353 src/libslic3r/PrintConfig.cpp:2684 -#: src/libslic3r/PrintConfig.cpp:2853 +#: src/libslic3r/PrintConfig.cpp:744 src/libslic3r/PrintConfig.cpp:1222 src/libslic3r/PrintConfig.cpp:1233 src/libslic3r/PrintConfig.cpp:2300 src/libslic3r/PrintConfig.cpp:2353 src/libslic3r/PrintConfig.cpp:2684 src/libslic3r/PrintConfig.cpp:2853 msgid "mm/s or %" msgstr "мм/с или %" @@ -11139,162 +9738,88 @@ msgid "External perimeters first" msgstr "Внешние периметры печатать первыми" #: src/libslic3r/PrintConfig.cpp:753 -msgid "" -"Print contour perimeters from the outermost one to the innermost one instead " -"of the default inverse order." -msgstr "" -"При включении, сначала будет печататься внешний слой периметра, потом " -"внутренний. Например, если периметр состоит из трёх слоёв, то, включив этот " -"параметр, печать будет идти в следующем порядке: сначала внешний, потом " -"средний, потом внутренний слой." +msgid "Print contour perimeters from the outermost one to the innermost one instead of the default inverse order." +msgstr "При включении, сначала будет печататься внешний слой периметра, потом внутренний. Например, если периметр состоит из трёх слоёв, то, включив этот параметр, печать будет идти в следующем порядке: сначала внешний, потом средний, потом внутренний слой." #: src/libslic3r/PrintConfig.cpp:759 msgid "Extra perimeters if needed" msgstr "Дополнительные периметры при необходимости" #: src/libslic3r/PrintConfig.cpp:761 -#, fuzzy, c-format, boost-format -msgid "" -"Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " -"keeps adding perimeters, until more than 70% of the loop immediately above " -"is supported." -msgstr "" -"Добавляет дополнительные периметры, когда это необходимо, чтобы избежать " -"пробелов в наклонных стенках. PrusaSlicer продолжит добавлять периметры пока " -"в следующем слое не будет поддерживаться более 70% периметра." +msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported." +msgstr "Добавляет дополнительные периметры, когда это необходимо, чтобы избежать пробелов в наклонных стенках. PrusaSlicer продолжит добавлять периметры пока в следующем слое не будет поддерживаться более 70% периметра." #: src/libslic3r/PrintConfig.cpp:771 -msgid "" -"The extruder to use (unless more specific extruder settings are specified). " -"This value overrides perimeter and infill extruders, but not the support " -"extruders." -msgstr "" -"Используемый экструдер (если не заданы более конкретные параметры " -"экструдера). Это значение переопределяет экструдеры периметра и заполнения, " -"но не экструдеры поддержки." +msgid "The extruder to use (unless more specific extruder settings are specified). This value overrides perimeter and infill extruders, but not the support extruders." +msgstr "Используемый экструдер (если не заданы более конкретные параметры экструдера). Это значение переопределяет экструдеры периметра и заполнения, но не экструдеры поддержки." #: src/libslic3r/PrintConfig.cpp:783 -msgid "" -"Set this to the vertical distance between your nozzle tip and (usually) the " -"X carriage rods. In other words, this is the height of the clearance " -"cylinder around your extruder, and it represents the maximum depth the " -"extruder can peek before colliding with other printed objects." -msgstr "" -"Задаёт вертикальное расстояние между кончиком сопла и (обычно) осью валов на " -"которых ездит каретка. Другими словами, это высота воображаемого цилиндра " -"вокруг экструдера, которая определяет максимальную глубину, до которой " -"экструдер может опуститься, чтобы не столкнуться с моделью." +msgid "Set this to the vertical distance between your nozzle tip and (usually) the X carriage rods. In other words, this is the height of the clearance cylinder around your extruder, and it represents the maximum depth the extruder can peek before colliding with other printed objects." +msgstr "Задаёт вертикальное расстояние между кончиком сопла и (обычно) осью валов на которых ездит каретка. Другими словами, это высота воображаемого цилиндра вокруг экструдера, которая определяет максимальную глубину, до которой экструдер может опуститься, чтобы не столкнуться с моделью." #: src/libslic3r/PrintConfig.cpp:794 -msgid "" -"Set this to the clearance radius around your extruder. If the extruder is " -"not centered, choose the largest value for safety. This setting is used to " -"check for collisions and to display the graphical preview in the plater." -msgstr "" -"Безопасное расстояние (зазор) вокруг экструдера. Если экструдер установлен " -"не по центру - взять наибольшее безопасное значение. Этот параметр " -"используется для предотвращения столкновения экструдера с моделью и " -"графического отображения на столе." +msgid "Set this to the clearance radius around your extruder. If the extruder is not centered, choose the largest value for safety. This setting is used to check for collisions and to display the graphical preview in the plater." +msgstr "Безопасное расстояние (зазор) вокруг экструдера. Если экструдер установлен не по центру - взять наибольшее безопасное значение. Этот параметр используется для предотвращения столкновения экструдера с моделью и графического отображения на столе." #: src/libslic3r/PrintConfig.cpp:804 msgid "Extruder Color" msgstr "Цвет экструдера" -#: src/libslic3r/PrintConfig.cpp:805 src/libslic3r/PrintConfig.cpp:868 -#: src/libslic3r/PrintConfig.cpp:3242 +#: src/libslic3r/PrintConfig.cpp:805 src/libslic3r/PrintConfig.cpp:868 src/libslic3r/PrintConfig.cpp:3242 msgid "This is only used in the Slic3r interface as a visual help." -msgstr "" -"Этот параметр используется только в интерфейсе PrusaSlicer в качестве " -"визуальной помощи." +msgstr "Этот параметр используется только в интерфейсе PrusaSlicer в качестве визуальной помощи." #: src/libslic3r/PrintConfig.cpp:811 msgid "Extruder offset" msgstr "Смещение экструдера по осям X/Y" #: src/libslic3r/PrintConfig.cpp:812 -msgid "" -"If your firmware doesn't handle the extruder displacement you need the G-" -"code to take it into account. This option lets you specify the displacement " -"of each extruder with respect to the first one. It expects positive " -"coordinates (they will be subtracted from the XY coordinate)." +msgid "If your firmware doesn't handle the extruder displacement you need the G-code to take it into account. This option lets you specify the displacement of each extruder with respect to the first one. It expects positive coordinates (they will be subtracted from the XY coordinate)." msgstr "" -"Актуально только для принтеров с несколькими экструдерами. Если прошивка " -"вашего принтера правильно не обрабатывает расположение/смещение экструдера, " -"следует учесть это в G-коде. Этот параметр позволяет задать смещение каждого " -"экструдера относительно первого. Вводятся положительные координаты (они " -"будут вычтены из XY координат)." +"Актуально только для принтеров с несколькими экструдерами. Если прошивка вашего принтера правильно не обрабатывает расположение/смещение экструдера, следует учесть это в G-коде. Этот параметр позволяет задать смещение каждого экструдера относительно первого. Вводятся положительные координаты (они будут вычтены из XY " +"координат)." #: src/libslic3r/PrintConfig.cpp:821 msgid "Extrusion axis" msgstr "Экструзионные оси" #: src/libslic3r/PrintConfig.cpp:822 -msgid "" -"Use this option to set the axis letter associated to your printer's extruder " -"(usually E but some printers use A)." -msgstr "" -"Используйте эту опцию, чтобы задать букву оси, связанную с экструдером " -"вашего принтера (обычно это E, но на некоторых принтерах A)." +msgid "Use this option to set the axis letter associated to your printer's extruder (usually E but some printers use A)." +msgstr "Используйте эту опцию, чтобы задать букву оси, связанную с экструдером вашего принтера (обычно это E, но на некоторых принтерах A)." #: src/libslic3r/PrintConfig.cpp:827 msgid "Extrusion multiplier" msgstr "Экструзионный множитель" #: src/libslic3r/PrintConfig.cpp:828 -msgid "" -"This factor changes the amount of flow proportionally. You may need to tweak " -"this setting to get nice surface finish and correct single wall widths. " -"Usual values are between 0.9 and 1.1. If you think you need to change this " -"more, check filament diameter and your firmware E steps." +msgid "This factor changes the amount of flow proportionally. You may need to tweak this setting to get nice surface finish and correct single wall widths. Usual values are between 0.9 and 1.1. If you think you need to change this more, check filament diameter and your firmware E steps." msgstr "" -"Коэффициент количества подаваемого пластика по сравнению с основным " -"значением. В других слайсерах называется Текучесть (Flow). Вам может " -"понадобиться настроить этот параметр, чтобы получить красивую поверхность и " -"правильную ширину одиночной стенки. Обычные значения составляют от 0.9 до " -"1.1. Если вы считаете, что вам требуется большее значение, проверьте диаметр " -"прутка и шаги экструдера в вашей прошивке." +"Коэффициент количества подаваемого пластика по сравнению с основным значением. В других слайсерах называется Текучесть (Flow). Вам может понадобиться настроить этот параметр, чтобы получить красивую поверхность и правильную ширину одиночной стенки. Обычные значения составляют от 0.9 до 1.1. Если вы считаете, что вам " +"требуется большее значение, проверьте диаметр прутка и шаги экструдера в вашей прошивке." #: src/libslic3r/PrintConfig.cpp:837 msgid "Default extrusion width" msgstr "Ширина экструзии по умолчанию" #: src/libslic3r/PrintConfig.cpp:839 -msgid "" -"Set this to a non-zero value to allow a manual extrusion width. If left to " -"zero, Slic3r derives extrusion widths from the nozzle diameter (see the " -"tooltips for perimeter extrusion width, infill extrusion width etc). If " -"expressed as percentage (for example: 230%), it will be computed over layer " -"height." -msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии " -"заполнения. Если оставить 0, будет использоваться заданный диаметр сопла. " -"Если задано в процентах, параметр вычисляется относительно высоты слоя." +msgid "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc). If expressed as percentage (for example: 230%), it will be computed over layer height." +msgstr "Установите значение отличное от 0, чтобы вручную задать ширину экструзии заполнения. Если оставить 0, будет использоваться заданный диаметр сопла. Если задано в процентах, параметр вычисляется относительно высоты слоя." #: src/libslic3r/PrintConfig.cpp:851 msgid "Keep fan always on" msgstr "Вентилятор включён всегда" #: src/libslic3r/PrintConfig.cpp:852 -msgid "" -"If this is enabled, fan will never be disabled and will be kept running at " -"least at its minimum speed. Useful for PLA, harmful for ABS." -msgstr "" -"Если эта опция включена, вентилятор никогда не будет отключаться и будет " -"работать хотя бы на минимальной скорости. Полезно для PLA, вредно для ABS." +msgid "If this is enabled, fan will never be disabled and will be kept running at least at its minimum speed. Useful for PLA, harmful for ABS." +msgstr "Если эта опция включена, вентилятор никогда не будет отключаться и будет работать хотя бы на минимальной скорости. Полезно для PLA, вредно для ABS." #: src/libslic3r/PrintConfig.cpp:857 msgid "Enable fan if layer print time is below" msgstr "Включить обдув, если время печати слоя менее" #: src/libslic3r/PrintConfig.cpp:858 -msgid "" -"If layer print time is estimated below this number of seconds, fan will be " -"enabled and its speed will be calculated by interpolating the minimum and " -"maximum speeds." -msgstr "" -"Если время печати слоя оценивается ниже этого количества секунд, будет " -"включён вентилятор, и его скорость будет рассчитываться путём интерполяции " -"минимальных и максимальных скоростей." +msgid "If layer print time is estimated below this number of seconds, fan will be enabled and its speed will be calculated by interpolating the minimum and maximum speeds." +msgstr "Если время печати слоя оценивается ниже этого количества секунд, будет включён вентилятор, и его скорость будет рассчитываться путём интерполяции минимальных и максимальных скоростей." #: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:2288 msgid "approximate seconds" @@ -11317,15 +9842,8 @@ msgid "Max volumetric speed" msgstr "Максимальная объёмная скорость" #: src/libslic3r/PrintConfig.cpp:883 -msgid "" -"Maximum volumetric speed allowed for this filament. Limits the maximum " -"volumetric speed of a print to the minimum of print and filament volumetric " -"speed. Set to zero for no limit." -msgstr "" -"Максимальная объёмная скорость подачи (объёмный расход), разрешённая для " -"этого прутка. Ограничивает максимальную объёмную скорость печати до " -"минимальной для этого принтера и прутка. Установите 0, чтобы убрать " -"ограничения." +msgid "Maximum volumetric speed allowed for this filament. Limits the maximum volumetric speed of a print to the minimum of print and filament volumetric speed. Set to zero for no limit." +msgstr "Максимальная объёмная скорость подачи (объёмный расход), разрешённая для этого прутка. Ограничивает максимальную объёмную скорость печати до минимальной для этого принтера и прутка. Установите 0, чтобы убрать ограничения." #: src/libslic3r/PrintConfig.cpp:892 msgid "Loading speed" @@ -11348,20 +9866,15 @@ msgid "Unloading speed" msgstr "Скорость выгрузки" #: src/libslic3r/PrintConfig.cpp:909 -msgid "" -"Speed used for unloading the filament on the wipe tower (does not affect " -"initial part of unloading just after ramming)." -msgstr "" -"Скорость выгрузки прутка на черновую башню. (не влияет на начальную фазу " -"выгрузки сразу после рэмминга)." +msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)." +msgstr "Скорость выгрузки прутка на черновую башню. (не влияет на начальную фазу выгрузки сразу после рэмминга)." #: src/libslic3r/PrintConfig.cpp:917 msgid "Unloading speed at the start" msgstr "Начальная скорость выгрузки" #: src/libslic3r/PrintConfig.cpp:918 -msgid "" -"Speed used for unloading the tip of the filament immediately after ramming." +msgid "Speed used for unloading the tip of the filament immediately after ramming." msgstr "Скорость выгрузки кончика прутка сразу после рэмминга." #: src/libslic3r/PrintConfig.cpp:925 @@ -11369,26 +9882,16 @@ msgid "Delay after unloading" msgstr "Задержка после выгрузки" #: src/libslic3r/PrintConfig.cpp:926 -msgid "" -"Time to wait after the filament is unloaded. May help to get reliable " -"toolchanges with flexible materials that may need more time to shrink to " -"original dimensions." -msgstr "" -"Время ожидания после выгрузки прутка. Это может помочь вам легко сменить " -"сопло при печати гибкими материалами, которым требуется больше времени, " -"чтобы вернуться к своим первоначальным размерам." +msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions." +msgstr "Время ожидания после выгрузки прутка. Это может помочь вам легко сменить сопло при печати гибкими материалами, которым требуется больше времени, чтобы вернуться к своим первоначальным размерам." #: src/libslic3r/PrintConfig.cpp:935 msgid "Number of cooling moves" msgstr "Количество охлаждающих движений" #: src/libslic3r/PrintConfig.cpp:936 -msgid "" -"Filament is cooled by being moved back and forth in the cooling tubes. " -"Specify desired number of these moves." -msgstr "" -"Пруток охлаждается в охлаждающих трубках путём перемещения назад и вперёд. " -"Укажите желаемое количество таких движений." +msgid "Filament is cooled by being moved back and forth in the cooling tubes. Specify desired number of these moves." +msgstr "Пруток охлаждается в охлаждающих трубках путём перемещения назад и вперёд. Укажите желаемое количество таких движений." #: src/libslic3r/PrintConfig.cpp:944 msgid "Speed of the first cooling move" @@ -11404,18 +9907,11 @@ msgstr "Мин. объём сброса на черновой башне" #: src/libslic3r/PrintConfig.cpp:953 msgid "" -"After a tool change, the exact position of the newly loaded filament inside " -"the nozzle may not be known, and the filament pressure is likely not yet " -"stable. Before purging the print head into an infill or a sacrificial " -"object, Slic3r will always prime this amount of material into the wipe tower " -"to produce successive infill or sacrificial object extrusions reliably." +"After a tool change, the exact position of the newly loaded filament inside the nozzle may not be known, and the filament pressure is likely not yet stable. Before purging the print head into an infill or a sacrificial object, Slic3r will always prime this amount of material into the wipe tower to produce successive infill " +"or sacrificial object extrusions reliably." msgstr "" -"После смены инструмента, точное положение вновь загруженного прутка внутри " -"него может быть неизвестно, и давление прутка, вероятно, ещё не стабильно. " -"Перед тем, как очистить печатающую головку в заполнение или в \"жертвенную\" " -"модель, PrusaSlicer всегда будет выдавливать это количество материала на " -"черновую башню, чтобы обеспечить надёжную печать заполнения или \"жертвенной" -"\" модели." +"После смены инструмента, точное положение вновь загруженного прутка внутри него может быть неизвестно, и давление прутка, вероятно, ещё не стабильно. Перед тем, как очистить печатающую головку в заполнение или в «жертвенную» модель PrusaSlicer всегда будет выдавливать это количество материала на черновую башню, чтобы " +"обеспечить надёжную печать заполнения или «жертвенной» модели." #: src/libslic3r/PrintConfig.cpp:957 msgid "mm³" @@ -11434,70 +9930,36 @@ msgid "Filament load time" msgstr "Время загрузки пластика" #: src/libslic3r/PrintConfig.cpp:972 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to load a new " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"Время за которое прошивка принтера (или Multi Material Unit 2.0) выгружает " -"пруток во время смены инструмента (при выполнении кода Т). Это время " -"добавляется к общему времени печати с помощью алгоритма оценки времени " -"выполнения G-кода." +msgid "Time for the printer firmware (or the Multi Material Unit 2.0) to load a new filament during a tool change (when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "Время за которое прошивка принтера (или Multi Material Unit 2.0) выгружает пруток во время смены инструмента (при выполнении кода Т). Это время добавляется к общему времени печати с помощью алгоритма оценки времени выполнения G-кода." #: src/libslic3r/PrintConfig.cpp:979 msgid "Ramming parameters" msgstr "Параметры рэмминга" #: src/libslic3r/PrintConfig.cpp:980 -msgid "" -"This string is edited by RammingDialog and contains ramming specific " -"parameters." -msgstr "" -"Эта строка редактируется диалоговым окном рэмминга и содержит его конкретные " -"параметры." +msgid "This string is edited by RammingDialog and contains ramming specific parameters." +msgstr "Эта строка редактируется диалоговым окном рэмминга и содержит его конкретные параметры." #: src/libslic3r/PrintConfig.cpp:986 msgid "Filament unload time" msgstr "Время выгрузки пластика" #: src/libslic3r/PrintConfig.cpp:987 -msgid "" -"Time for the printer firmware (or the Multi Material Unit 2.0) to unload a " -"filament during a tool change (when executing the T code). This time is " -"added to the total print time by the G-code time estimator." -msgstr "" -"Время за которое прошивка принтера (или Multi Material Unit 2.0) выгружает " -"пруток во время смены инструмента (при выполнении кода Т). Это время " -"добавляется к общему времени печати с помощью алгоритма оценки времени " -"выполнения G-кода." +msgid "Time for the printer firmware (or the Multi Material Unit 2.0) to unload a filament during a tool change (when executing the T code). This time is added to the total print time by the G-code time estimator." +msgstr "Время за которое прошивка принтера (или Multi Material Unit 2.0) выгружает пруток во время смены инструмента (при выполнении кода Т). Это время добавляется к общему времени печати с помощью алгоритма оценки времени выполнения G-кода." #: src/libslic3r/PrintConfig.cpp:995 -msgid "" -"Enter your filament diameter here. Good precision is required, so use a " -"caliper and do multiple measurements along the filament, then compute the " -"average." -msgstr "" -"Здесь задаётся диаметр прутка. Требуется хорошая точность, поэтому " -"используйте штангенциркуль, чтобы сделать несколько измерений вдоль прутка и " -"вычислить среднее значение." +msgid "Enter your filament diameter here. Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average." +msgstr "Здесь задаётся диаметр прутка. Требуется хорошая точность, поэтому используйте штангенциркуль, чтобы сделать несколько измерений вдоль прутка и вычислить среднее значение." -#: src/libslic3r/PrintConfig.cpp:1002 src/libslic3r/PrintConfig.cpp:3280 -#: src/libslic3r/PrintConfig.cpp:3281 +#: src/libslic3r/PrintConfig.cpp:1002 src/libslic3r/PrintConfig.cpp:3280 src/libslic3r/PrintConfig.cpp:3281 msgid "Density" msgstr "Плотность" #: src/libslic3r/PrintConfig.cpp:1003 -msgid "" -"Enter your filament density here. This is only for statistical information. " -"A decent way is to weigh a known length of filament and compute the ratio of " -"the length to volume. Better is to calculate the volume directly through " -"displacement." -msgstr "" -"Введите здесь плотность (г/см3) используемого марериала прутка. Это " -"необходимо только для статистической информации. Хорошим методом является " -"взвешивание кусочка прутка известной длины и вычисление отношения длины к " -"его объёму. Объём же лучше вычислять непосредственно путём вытеснения " -"жидкости." +msgid "Enter your filament density here. This is only for statistical information. A decent way is to weigh a known length of filament and compute the ratio of the length to volume. Better is to calculate the volume directly through displacement." +msgstr "Введите здесь плотность (г/см3) используемого марериала прутка. Это необходимо только для статистической информации. Хорошим методом является взвешивание кусочка прутка известной длины и вычисление отношения длины к его объёму. Объём же лучше вычислять непосредственно путём вытеснения жидкости." #: src/libslic3r/PrintConfig.cpp:1006 msgid "g/cm³" @@ -11520,12 +9982,8 @@ msgid "Soluble material is most likely used for a soluble support." msgstr "Растворимый материал, чаше всего используют для растворимой поддержки." #: src/libslic3r/PrintConfig.cpp:1046 -msgid "" -"Enter your filament cost per kg here. This is only for statistical " -"information." -msgstr "" -"Введите стоимость прутка за 1 кг. Это необходимо только для статистической " -"информации." +msgid "Enter your filament cost per kg here. This is only for statistical information." +msgstr "Введите стоимость прутка за 1 кг. Это необходимо только для статистической информации." #: src/libslic3r/PrintConfig.cpp:1047 msgid "money/kg" @@ -11536,16 +9994,8 @@ msgid "Spool weight" msgstr "Вес пустой катушки" #: src/libslic3r/PrintConfig.cpp:1053 -msgid "" -"Enter weight of the empty filament spool. One may weigh a partially consumed " -"filament spool before printing and one may compare the measured weight with " -"the calculated weight of the filament with the spool to find out whether the " -"amount of filament on the spool is sufficient to finish the print." -msgstr "" -"Введите вес пустой катушки. Чтобы выяснить, хватит ли прутка на катушке для " -"завершения печати, можно перед началом печати взвесить частично " -"израсходованную катушку с прутком и сравнить этот вес с весом прутка (с " -"катушкой), рассчитанным в процессе нарезки модели." +msgid "Enter weight of the empty filament spool. One may weigh a partially consumed filament spool before printing and one may compare the measured weight with the calculated weight of the filament with the spool to find out whether the amount of filament on the spool is sufficient to finish the print." +msgstr "Введите вес пустой катушки. Чтобы выяснить, хватит ли прутка на катушке для завершения печати, можно перед началом печати взвесить частично израсходованную катушку с прутком и сравнить этот вес с весом прутка (с катушкой), рассчитанным в процессе нарезки модели." #: src/libslic3r/PrintConfig.cpp:1057 msgid "g" @@ -11560,14 +10010,8 @@ msgid "Fill angle" msgstr "Угол печати заполнения" #: src/libslic3r/PrintConfig.cpp:1072 -msgid "" -"Default base angle for infill orientation. Cross-hatching will be applied to " -"this. Bridges will be infilled using the best direction Slic3r can detect, " -"so this setting does not affect them." -msgstr "" -"Базовый угол для ориентации шаблона заполнения. Для этого будет применяться " -"штриховка крест-накрест. Для мостов будет использоваться лучший тип " -"заполнения, так что этот параметр не влияет на них." +msgid "Default base angle for infill orientation. Cross-hatching will be applied to this. Bridges will be infilled using the best direction Slic3r can detect, so this setting does not affect them." +msgstr "Базовый угол для ориентации шаблона заполнения. Для этого будет применяться штриховка крест-накрест. Для мостов будет использоваться лучший тип заполнения, так что этот параметр не влияет на них." #: src/libslic3r/PrintConfig.cpp:1084 msgid "Fill density" @@ -11575,10 +10019,7 @@ msgstr "Плотность заполнения" #: src/libslic3r/PrintConfig.cpp:1086 msgid "Density of internal infill, expressed in the range 0% - 100%." -msgstr "" -"Плотность внутреннего заполнения, выраженная в диапазоне 0% - 100%. Чем выше " -"процент заполнения, тем крепче получается модель, но печатается она при этом " -"гораздо дольше." +msgstr "Плотность внутреннего заполнения, выраженная в диапазоне 0% - 100%. Чем выше процент заполнения, тем крепче получается модель, но печатается она при этом гораздо дольше." #: src/libslic3r/PrintConfig.cpp:1121 msgid "Fill pattern" @@ -11626,99 +10067,62 @@ msgstr "Динам. куб. поддержка" #: src/libslic3r/PrintConfig.cpp:1161 msgid "Lightning" -msgstr "" +msgstr "Молния" #: src/libslic3r/PrintConfig.cpp:1167 -msgid "" -"This is the acceleration your printer will use for first layer. Set zero to " -"disable acceleration control for first layer." -msgstr "" -"Ускорение, которое принтер будет использовать для печати первого слоя. " -"Установить 0, чтобы отключить управление ускорением для первого слоя." +msgid "This is the acceleration your printer will use for first layer. Set zero to disable acceleration control for first layer." +msgstr "Ускорение, которое принтер будет использовать для печати первого слоя. Установить 0, чтобы отключить управление ускорением для первого слоя." #: src/libslic3r/PrintConfig.cpp:1175 msgid "First object layer over raft interface" -msgstr "" +msgstr "Первый слой модели на подложке" #: src/libslic3r/PrintConfig.cpp:1176 -msgid "" -"This is the acceleration your printer will use for first layer of object " -"above raft interface. Set zero to disable acceleration control for first " -"layer of object above raft interface." -msgstr "" +msgid "This is the acceleration your printer will use for first layer of object above raft interface. Set zero to disable acceleration control for first layer of object above raft interface." +msgstr "Ускорение, которое принтер будет использовать для печати первого слоя модели по подложке. Установите ноль, чтобы отключить управление ускорением для печати первого слоя модели по подложке." #: src/libslic3r/PrintConfig.cpp:1185 msgid "First layer bed temperature" msgstr "Температура стола на первом слое" #: src/libslic3r/PrintConfig.cpp:1186 -msgid "" -"Heated build plate temperature for the first layer. Set this to zero to " -"disable bed temperature control commands in the output." -msgstr "" -"Температура подогреваемого стола для первого слоя. Установите 0, чтобы " -"отключить команды управления температурой стола на выходе." +msgid "Heated build plate temperature for the first layer. Set this to zero to disable bed temperature control commands in the output." +msgstr "Температура подогреваемого стола для первого слоя. Установите 0, чтобы отключить команды управления температурой стола на выходе." #: src/libslic3r/PrintConfig.cpp:1196 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for first " -"layer. You can use this to force fatter extrudates for better adhesion. If " -"expressed as percentage (for example 120%) it will be computed over first " -"layer height. If set to zero, it will use the default extrusion width." -msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"первого слоя. Вы можете поставить большее значение, чем по умолчанию, для " -"лучшей адгезии. Если задано в процентах, параметр вычисляется относительно " -"высоты слоя. При 0, будет использоваться \"Ширина экструзии по умолчанию\"." +msgid "Set this to a non-zero value to set a manual extrusion width for first layer. You can use this to force fatter extrudates for better adhesion. If expressed as percentage (for example 120%) it will be computed over first layer height. If set to zero, it will use the default extrusion width." +msgstr "Установите значение отличное от 0, чтобы вручную задать ширину экструзии для первого слоя. Вы можете поставить большее значение, чем по умолчанию, для лучшей адгезии. Если задано в процентах, параметр вычисляется относительно высоты слоя. При 0, будет использоваться «Ширина экструзии по умолчанию»." #: src/libslic3r/PrintConfig.cpp:1210 -msgid "" -"When printing with very low layer heights, you might still want to print a " -"thicker bottom layer to improve adhesion and tolerance for non perfect build " -"plates." -msgstr "" +msgid "When printing with very low layer heights, you might still want to print a thicker bottom layer to improve adhesion and tolerance for non perfect build plates." +msgstr "Высота первого (самого нижнего) слоя. Как правило, задаётся немного больше «Высота слоя» для лучшего закрепления (адгезии) модели на столе. Эта величина так же не может быть больше диаметра сопла." #: src/libslic3r/PrintConfig.cpp:1218 msgid "First layer speed" msgstr "Скорость печати первого слоя" #: src/libslic3r/PrintConfig.cpp:1219 -msgid "" -"If expressed as absolute value in mm/s, this speed will be applied to all " -"the print moves of the first layer, regardless of their type. If expressed " -"as a percentage (for example: 40%) it will scale the default speeds." +msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first layer, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "" -"Если задано в абсолютном значении (мм/с), эта скорость будет применена ко " -"всем перемещениям при печати первого слоя, независимо от их типа. Если " -"задано в процентах, параметр вычисляется относительно выставленных скоростей " -"по умолчанию. Как правило, для лучшего прилипания модели к столу задаётся " -"меньше остальных на 30-50%." +"Если задано в абсолютном значении (мм/с), эта скорость будет применена ко всем перемещениям при печати первого слоя, независимо от их типа. Если задано в процентах, параметр вычисляется относительно выставленных скоростей по умолчанию. Как правило, для лучшего прилипания модели к столу задаётся меньше остальных на 30-50%." #: src/libslic3r/PrintConfig.cpp:1229 msgid "Speed of object first layer over raft interface" -msgstr "" +msgstr "Скорость печати первого слоя модели по подложке" #: src/libslic3r/PrintConfig.cpp:1230 -msgid "" -"If expressed as absolute value in mm/s, this speed will be applied to all " -"the print moves of the first object layer above raft interface, regardless " -"of their type. If expressed as a percentage (for example: 40%) it will scale " -"the default speeds." +msgid "If expressed as absolute value in mm/s, this speed will be applied to all the print moves of the first object layer above raft interface, regardless of their type. If expressed as a percentage (for example: 40%) it will scale the default speeds." msgstr "" +"Если задано в абсолютном значении (мм/с), эта скорость будет применена ко всем перемещениям при печати первого слоя модели по подложке, независимо от их типа. Если задано в процентах, параметр вычисляется относительно выставленных скоростей по умолчанию. Как правило, для лучшего прилипания модели к столу задаётся меньше " +"остальных на 30-50%." #: src/libslic3r/PrintConfig.cpp:1240 msgid "First layer nozzle temperature" msgstr "Температура сопла на первом слое" #: src/libslic3r/PrintConfig.cpp:1241 -msgid "" -"Nozzle temperature for the first layer. If you want to control temperature " -"manually during print, set this to zero to disable temperature control " -"commands in the output G-code." -msgstr "" -"Температура сопла при печати первого слоя. Если хотите контролировать " -"температуру во время печати вручную, установите 0 для отключения команд " -"управления температурой в выходном G-коде." +msgid "Nozzle temperature for the first layer. If you want to control temperature manually during print, set this to zero to disable temperature control commands in the output G-code." +msgstr "Температура сопла при печати первого слоя. Если хотите контролировать температуру во время печати вручную, установите 0 для отключения команд управления температурой в выходном G-коде." #: src/libslic3r/PrintConfig.cpp:1249 msgid "Full fan speed at layer" @@ -11726,101 +10130,66 @@ msgstr "Полная скорость вентилятора на слое" #: src/libslic3r/PrintConfig.cpp:1250 msgid "" -"Fan speed will be ramped up linearly from zero at layer " -"\"disable_fan_first_layers\" to maximum at layer \"full_fan_speed_layer\". " -"\"full_fan_speed_layer\" will be ignored if lower than " -"\"disable_fan_first_layers\", in which case the fan will be running at " -"maximum allowed speed at layer \"disable_fan_first_layers\" + 1." +"Fan speed will be ramped up linearly from zero at layer \"disable_fan_first_layers\" to maximum at layer \"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower than \"disable_fan_first_layers\", in which case the fan will be running at maximum allowed speed at layer \"disable_fan_first_layers\" + 1." msgstr "" -"Скорость вентилятора будет линейно увеличиваться от нуля на слое " -"«disable_fan_first_layers» до максимальной на слое «full_fan_speed_layer». " -"\"full_fan_speed_layer\" будет игнорироваться, если она ниже, чем " -"\"disable_fan_first_layers\", и в этом случае вентилятор будет работать с " -"максимально допустимой скоростью на слое \"disable_fan_first_layers\" +1." +"Скорость вентилятора будет линейно увеличиваться от нуля на слое \"disable_fan_first_layers\" до максимальной на слое \"full_fan_speed_layer\". \"full_fan_speed_layer\" будет игнорироваться, если она ниже, чем \"disable_fan_first_layers\", и в этом случае вентилятор будет работать с максимально допустимой скоростью на слое " +"\"disable_fan_first_layers\" +1." #: src/libslic3r/PrintConfig.cpp:1262 msgid "Fuzzy skin type." -msgstr "" +msgstr "Печать текстурированной оболочки." #: src/libslic3r/PrintConfig.cpp:1269 msgid "Outside walls" -msgstr "" +msgstr "Внешние стенки" #: src/libslic3r/PrintConfig.cpp:1270 msgid "All walls" -msgstr "" +msgstr "Все стенки" #: src/libslic3r/PrintConfig.cpp:1275 msgid "Fuzzy skin thickness" -msgstr "" +msgstr "Толщина нечёткой оболочки" #: src/libslic3r/PrintConfig.cpp:1277 -msgid "" -"The maximum distance that each skin point can be offset (both ways), " -"measured perpendicular to the perimeter wall." -msgstr "" +msgid "The maximum distance that each skin point can be offset (both ways), measured perpendicular to the perimeter wall." +msgstr "Максимальное расстояние смещения каждой точки оболочки (в обоих направлениях), измеряемое перпендикулярно стенке периметра." #: src/libslic3r/PrintConfig.cpp:1285 msgid "Fuzzy skin point distance" -msgstr "" +msgstr "Расстояние «дрожания» при печати нечёткой оболочки" #: src/libslic3r/PrintConfig.cpp:1287 -msgid "" -"Perimeters will be split into multiple segments by inserting Fuzzy skin " -"points. Lowering the Fuzzy skin point distance will increase the number of " -"randomly offset points on the perimeter wall." -msgstr "" +msgid "Perimeters will be split into multiple segments by inserting Fuzzy skin points. Lowering the Fuzzy skin point distance will increase the number of randomly offset points on the perimeter wall." +msgstr "Периметры будут разделены на несколько отрезков путём вставки точек нечёткой оболочки. Уменьшение расстояния между точками нечёткой оболочки, увеличит число случайно смещенных точек на стенке периметра." #: src/libslic3r/PrintConfig.cpp:1295 msgid "Fill gaps" -msgstr "" +msgstr "Заполнения пробелов" #: src/libslic3r/PrintConfig.cpp:1297 -msgid "" -"Enables filling of gaps between perimeters and between the inner most " -"perimeters and infill." -msgstr "" +msgid "Enables filling of gaps between perimeters and between the inner most perimeters and infill." +msgstr "Позволяет заполнять пробелы между периметрами, и внутренними периметрами и заполнением." #: src/libslic3r/PrintConfig.cpp:1304 -msgid "" -"Speed for filling small gaps using short zigzag moves. Keep this reasonably " -"low to avoid too much shaking and resonance issues. Set zero to disable gaps " -"filling." -msgstr "" -"Скорость заполнения небольших поверхностей (пробелов). Печать происходит " -"быстрыми зигзагообразными движениями, в результате, весь принтер может " -"прилично трясти. Задавайте низкие значения, чтобы избежать этого. Установите " -"0, чтобы отключить заполнение пробелов." +msgid "Speed for filling small gaps using short zigzag moves. Keep this reasonably low to avoid too much shaking and resonance issues. Set zero to disable gaps filling." +msgstr "Скорость заполнения небольших поверхностей (пробелов). Печать происходит быстрыми зигзагообразными движениями, в результате, весь принтер может прилично трясти. Задавайте низкие значения, чтобы избежать этого. Установите 0, чтобы отключить заполнение пробелов." #: src/libslic3r/PrintConfig.cpp:1312 msgid "Verbose G-code" msgstr "Подробный G-код" #: src/libslic3r/PrintConfig.cpp:1313 -msgid "" -"Enable this to get a commented G-code file, with each line explained by a " -"descriptive text. If you print from SD card, the additional weight of the " -"file could make your firmware slow down." -msgstr "" -"Включите эту опцию, чтобы в каждой строке G-код файла, присутствовал " -"комментарий с поясняющим текстом. При печати с SD-карты, скорость чтение " -"данных вашей прошивкой может снизится за счёт увеличения размера файла." +msgid "Enable this to get a commented G-code file, with each line explained by a descriptive text. If you print from SD card, the additional weight of the file could make your firmware slow down." +msgstr "Включите эту опцию, чтобы в каждой строке G-код файла, присутствовал комментарий с поясняющим текстом. При печати с SD-карты, скорость чтение данных вашей прошивкой может снизится за счёт увеличения размера файла." #: src/libslic3r/PrintConfig.cpp:1320 msgid "G-code flavor" msgstr "Тип G-кода" #: src/libslic3r/PrintConfig.cpp:1321 -msgid "" -"Some G/M-code commands, including temperature control and others, are not " -"universal. Set this option to your printer's firmware to get a compatible " -"output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any " -"extrusion value at all." -msgstr "" -"Некоторые команды G/M-кода, такие как контроль температуры и другие, не " -"являются универсальными. Выберите тип прошивки вашего принтера, чтобы " -"получить совместимость. Параметр \"Без экструзии\" не позволяет PrusaSlicer " -"экспортировать какие-либо значения экструзии." +msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all." +msgstr "Некоторые команды G/M-кода, такие как контроль температуры и другие, не являются универсальными. Выберите тип прошивки вашего принтера, чтобы получить совместимость. Параметр «Без экструзии» не позволяет PrusaSlicer экспортировать какие-либо значения экструзии." #: src/libslic3r/PrintConfig.cpp:1348 msgid "No extrusion" @@ -11831,53 +10200,30 @@ msgid "Label objects" msgstr "Название моделей" #: src/libslic3r/PrintConfig.cpp:1354 -msgid "" -"Enable this to add comments into the G-Code labeling print moves with what " -"object they belong to, which is useful for the Octoprint CancelObject " -"plugin. This settings is NOT compatible with Single Extruder Multi Material " -"setup and Wipe into Object / Wipe into Infill." -msgstr "" -"Включите эту опцию, чтобы добавить комментарии в G-код с указанием того, к " -"какой модели он принадлежит, что полезно для плагина Octoprint CancelObject. " -"Эта настройка не совместима с настройкой \"Мультиматериальный одиночный " -"экструдер\" и \"Очистка в модель\" / \"Очистка в заполнение модели\"." +msgid "Enable this to add comments into the G-Code labeling print moves with what object they belong to, which is useful for the Octoprint CancelObject plugin. This settings is NOT compatible with Single Extruder Multi Material setup and Wipe into Object / Wipe into Infill." +msgstr "Включите эту опцию, чтобы добавить комментарии в G-код с указанием того, к какой модели он принадлежит, что полезно для плагина Octoprint CancelObject. Эта настройка не совместима с настройкой «Мультиматериальный одиночный экструдер» и «Очистка в модель» / «Очистка в заполнение модели»." #: src/libslic3r/PrintConfig.cpp:1361 msgid "High extruder current on filament swap" msgstr "Повышение тока экструдера при замене прутка" #: src/libslic3r/PrintConfig.cpp:1362 -msgid "" -"It may be beneficial to increase the extruder motor current during the " -"filament exchange sequence to allow for rapid ramming feed rates and to " -"overcome resistance when loading a filament with an ugly shaped tip." -msgstr "" -"Это может быть полезно для увеличения тока двигателя экструдера во время " -"замены прутка, чтобы быстро увеличить скорость подачи и преодолеть " -"сопротивление при загрузке прутка с плохой формой кончика." +msgid "It may be beneficial to increase the extruder motor current during the filament exchange sequence to allow for rapid ramming feed rates and to overcome resistance when loading a filament with an ugly shaped tip." +msgstr "Это может быть полезно для увеличения тока двигателя экструдера во время замены прутка, чтобы быстро увеличить скорость подачи и преодолеть сопротивление при загрузке прутка с плохой формой кончика." #: src/libslic3r/PrintConfig.cpp:1370 -msgid "" -"This is the acceleration your printer will use for infill. Set zero to " -"disable acceleration control for infill." -msgstr "" -"Ускорение, которое принтер будет использовать для заполнения. Установить 0, " -"чтобы отключить управление ускорением для заполнения." +msgid "This is the acceleration your printer will use for infill. Set zero to disable acceleration control for infill." +msgstr "Ускорение, которое принтер будет использовать для заполнения. Установить 0, чтобы отключить управление ускорением для заполнения." #: src/libslic3r/PrintConfig.cpp:1378 msgid "Combine infill every" msgstr "Объединять заполнение каждые" #: src/libslic3r/PrintConfig.cpp:1380 -msgid "" -"This feature allows to combine infill and speed up your print by extruding " -"thicker infill layers while preserving thin perimeters, thus accuracy." +msgid "This feature allows to combine infill and speed up your print by extruding thicker infill layers while preserving thin perimeters, thus accuracy." msgstr "" -"Для экономии времени печати есть возможность печатать заполнение не на " -"каждом слое, а скажем, на двух или трёх слоях сразу. По умолчанию стоит 1, " -"то есть печатать заполнение в каждом слое. Если, например, поставить 2, " -"тогда на два слоя периметра будет печататься один слой заполнения удвоенной " -"толщины. При этом сохраняются тонкие периметры, и тем самым точность." +"Для экономии времени печати есть возможность печатать заполнение не на каждом слое, а скажем, на двух или трёх слоях сразу. По умолчанию стоит 1, то есть печатать заполнение в каждом слое. Если, например, поставить 2, тогда на два слоя периметра будет печататься один слой заполнения удвоенной толщины. При этом сохраняются " +"тонкие периметры, и тем самым точность." #: src/libslic3r/PrintConfig.cpp:1383 msgid "Combine infill every n layers" @@ -11889,27 +10235,12 @@ msgstr "Длина привязок разреженного заполнени #: src/libslic3r/PrintConfig.cpp:1391 msgid "" -"Connect an infill line to an internal perimeter with a short segment of an " -"additional perimeter. If expressed as percentage (example: 15%) it is " -"calculated over infill extrusion width. PrusaSlicer tries to connect two " -"close infill lines to a short perimeter segment. If no such perimeter " -"segment shorter than infill_anchor_max is found, the infill line is " -"connected to a perimeter segment at just one side and the length of the " -"perimeter segment taken is limited to this parameter, but no longer than " -"anchor_length_max. Set this parameter to zero to disable anchoring " -"perimeters connected to a single infill line." +"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. PrusaSlicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than " +"infill_anchor_max is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to this parameter, but no longer than anchor_length_max. Set this parameter to zero to disable anchoring perimeters connected to a single infill line." msgstr "" -"Соединять линию заполнения с внутренним периметром с помощью короткого " -"отрезка дополнительного периметра (привязок). Если выражено в процентах " -"(например 15%), то она вычисляется по ширине экструзии заполнения. " -"PrusaSlicer пытается соединить две ближайшие линии заполнения с коротким " -"отрезком периметра. Если не найдено такого отрезка периметра короче " -"\"Максимальной длины привязок разреженного заполнения\" (anchor_length_max), " -"то линия заполнения соединяется с отрезком периметра только с одной стороны, " -"а длина отрезка периметра ограничена этим параметром, но не больше " -"\"Максимальной длины привязок разреженного заполнения\" (anchor_length_max). " -"Установите этот параметр равным нулю для отключения привязок периметров, " -"соединённых к одной линии заполнения." +"Соединять линию заполнения с внутренним периметром с помощью короткого отрезка дополнительного периметра (привязок). Если выражено в процентах (например 15%), то она вычисляется по ширине экструзии заполнения. PrusaSlicer пытается соединить две ближайшие линии заполнения с коротким отрезком периметра. Если не найдено " +"такого отрезка периметра короче «Максимальной длины привязок разреженного заполнения» (anchor_length_max), то линия заполнения соединяется с отрезком периметра только с одной стороны, а длина отрезка периметра ограничена этим параметром, но не больше «Максимальной длины привязок разреженного " +"заполнения» (anchor_length_max). Установите этот параметр равным нулю для отключения привязок периметров, соединённых к одной линии заполнения." #: src/libslic3r/PrintConfig.cpp:1407 msgid "0 (no open anchors)" @@ -11941,24 +10272,11 @@ msgstr "Максимальная длина привязок разреженн #: src/libslic3r/PrintConfig.cpp:1419 msgid "" -"Connect an infill line to an internal perimeter with a short segment of an " -"additional perimeter. If expressed as percentage (example: 15%) it is " -"calculated over infill extrusion width. PrusaSlicer tries to connect two " -"close infill lines to a short perimeter segment. If no such perimeter " -"segment shorter than this parameter is found, the infill line is connected " -"to a perimeter segment at just one side and the length of the perimeter " -"segment taken is limited to infill_anchor, but no longer than this " -"parameter. Set this parameter to zero to disable anchoring." +"Connect an infill line to an internal perimeter with a short segment of an additional perimeter. If expressed as percentage (example: 15%) it is calculated over infill extrusion width. PrusaSlicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment shorter than this parameter " +"is found, the infill line is connected to a perimeter segment at just one side and the length of the perimeter segment taken is limited to infill_anchor, but no longer than this parameter. Set this parameter to zero to disable anchoring." msgstr "" -"Соединять линию заполнения с внутренним периметром с помощью короткого " -"отрезка дополнительного периметра (привязок). Если выражено в процентах " -"(например 15%), то она вычисляется по ширине экструзии заполнения. " -"PrusaSlicer пытается соединить две ближайшие линии заполнения с коротким " -"отрезком периметра. Если не найдено такого отрезка периметра короче этого " -"параметра, линия заполнения соединяется с отрезком периметра только с одной " -"стороны, а длина отрезка периметра ограничена \"Длиной привязок разреженного " -"заполнения\" (infill_anchor), но не больше этого параметра. Установите этот " -"параметр равным нулю для отключения привязок." +"Соединять линию заполнения с внутренним периметром с помощью короткого отрезка дополнительного периметра (привязок). Если выражено в процентах (например 15%), то она вычисляется по ширине экструзии заполнения. PrusaSlicer пытается соединить две ближайшие линии заполнения с коротким отрезком периметра. Если не найдено " +"такого отрезка периметра короче этого параметра, линия заполнения соединяется с отрезком периметра только с одной стороны, а длина отрезка периметра ограничена «Длиной привязок разреженного заполнения» (infill_anchor), но не больше этого параметра. Установите этот параметр равным нулю для отключения привязок." #: src/libslic3r/PrintConfig.cpp:1430 msgid "0 (not anchored)" @@ -11974,70 +10292,41 @@ msgstr "Номер экструдера, которым печатается з #: src/libslic3r/PrintConfig.cpp:1450 msgid "" -"Set this to a non-zero value to set a manual extrusion width for infill. If " -"left zero, default extrusion width will be used if set, otherwise 1.125 x " -"nozzle diameter will be used. You may want to use fatter extrudates to speed " -"up the infill and make your parts stronger. If expressed as percentage (for " -"example 90%) it will be computed over layer height." +"Set this to a non-zero value to set a manual extrusion width for infill. If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. You may want to use fatter extrudates to speed up the infill and make your parts stronger. If expressed as percentage (for example 90%) it will " +"be computed over layer height." msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"заполнения. Если оставить 0, будет использоваться \"Ширина экструзии по " -"умолчанию\" - если она задана, в противном случае будет использоваться 1,125 " -"x диаметра сопла. Вы можете использовать сопла большего диаметра, чтобы " -"ускорить заполнение и сделать ваши детали прочнее. Если задано в процентах, " -"параметр вычисляется относительно высоты слоя." +"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для заполнения. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном случае будет использоваться 1,125 x диаметра сопла. Вы можете использовать сопла большего диаметра, чтобы ускорить заполнение и " +"сделать ваши детали прочнее. Если задано в процентах, параметр вычисляется относительно высоты слоя." #: src/libslic3r/PrintConfig.cpp:1461 msgid "Infill before perimeters" msgstr "Сначала печатать заполнение" #: src/libslic3r/PrintConfig.cpp:1462 -msgid "" -"This option will switch the print order of perimeters and infill, making the " -"latter first." -msgstr "" -"Изменяет порядок печати слоёв. Обычно сначала печатается периметр, а потом " -"заполнение. Включив этот параметр, сначала будет печататься заполнение, а " -"потом периметр. Имеет смысл, если периметр печатается в один слой." +msgid "This option will switch the print order of perimeters and infill, making the latter first." +msgstr "Изменяет порядок печати слоёв. Обычно сначала печатается периметр, а потом заполнение. Включив этот параметр, сначала будет печататься заполнение, а потом периметр. Имеет смысл, если периметр печатается в один слой." #: src/libslic3r/PrintConfig.cpp:1467 msgid "Only infill where needed" msgstr "Заполнение только там, где нужно" #: src/libslic3r/PrintConfig.cpp:1469 -msgid "" -"This option will limit infill to the areas actually needed for supporting " -"ceilings (it will act as internal support material). If enabled, slows down " -"the G-code generation due to the multiple checks involved." +msgid "This option will limit infill to the areas actually needed for supporting ceilings (it will act as internal support material). If enabled, slows down the G-code generation due to the multiple checks involved." msgstr "" -"PrusaSlicer проанализирует модель и выберет где именно необходимо заполнение " -"для того, чтобы поддержать внутренние потолки и свесы. Полезно для " -"уменьшения времени и материалов, но параметр очень влияет на прочность " -"модели, поэтому пользоваться надо с осторожностью. Если включено, замедляет " -"генерацию G-кода из-за многочисленных расчётов." +"PrusaSlicer проанализирует модель и выберет где именно необходимо заполнение для того, чтобы поддержать внутренние потолки и свесы. Полезно для уменьшения времени и материалов, но параметр очень влияет на прочность модели, поэтому пользоваться надо с осторожностью. Если включено, замедляет генерацию G-кода из-за " +"многочисленных расчётов." #: src/libslic3r/PrintConfig.cpp:1476 msgid "Infill/perimeters overlap" msgstr "Перекрытие линий заполнения с линиями периметра" #: src/libslic3r/PrintConfig.cpp:1478 -msgid "" -"This setting applies an additional overlap between infill and perimeters for " -"better bonding. Theoretically this shouldn't be needed, but backlash might " -"cause gaps. If expressed as percentage (example: 15%) it is calculated over " -"perimeter extrusion width." -msgstr "" -"Параметр указывает на сколько миллиметров или процентов печать заполнения " -"будет перекрывать периметры для лучшего соединения. Теоретически надобности " -"в этом нет, но люфты при движении могут вызывать пробелы при печати. Если " -"задано в процентах, параметр вычисляется относительно ширины экструзии " -"периметра." +msgid "This setting applies an additional overlap between infill and perimeters for better bonding. Theoretically this shouldn't be needed, but backlash might cause gaps. If expressed as percentage (example: 15%) it is calculated over perimeter extrusion width." +msgstr "Параметр указывает на сколько миллиметров или процентов печать заполнения будет перекрывать периметры для лучшего соединения. Теоретически надобности в этом нет, но люфты при движении могут вызывать пробелы при печати. Если задано в процентах, параметр вычисляется относительно ширины экструзии периметра." #: src/libslic3r/PrintConfig.cpp:1489 msgid "Speed for printing the internal fill. Set to zero for auto." -msgstr "" -"Скорость печати внутреннего заполнения. Если установлено 0, то слайсер " -"автоматически настраивает этот параметр." +msgstr "Скорость печати внутреннего заполнения. Если установлено 0, то слайсер автоматически настраивает этот параметр." #: src/libslic3r/PrintConfig.cpp:1497 msgid "Inherits profile" @@ -12052,26 +10341,18 @@ msgid "Interface shells" msgstr "Связующие оболочки" #: src/libslic3r/PrintConfig.cpp:1512 -msgid "" -"Force the generation of solid shells between adjacent materials/volumes. " -"Useful for multi-extruder prints with translucent materials or manual " -"soluble support material." -msgstr "" -"Принудительное создание замкнутых (сплошных) оболочек между смежными " -"материалами/объёмами. Полезно для многоэкструдерных принтеров при печати " -"полупрозрачными материалами или растворимой поддержкой. Помогает избежать " -"диффузию материалов." +msgid "Force the generation of solid shells between adjacent materials/volumes. Useful for multi-extruder prints with translucent materials or manual soluble support material." +msgstr "Принудительное создание замкнутых (сплошных) оболочек между смежными материалами/объёмами. Полезно для многоэкструдерных принтеров при печати полупрозрачными материалами или растворимой поддержкой. Помогает избежать диффузию материалов." #: src/libslic3r/PrintConfig.cpp:1520 msgid "Maximum width of a segmented region" -msgstr "" +msgstr "Максимальная ширина сегментированной области" #: src/libslic3r/PrintConfig.cpp:1521 msgid "Maximum width of a segmented region. Zero disables this feature." -msgstr "" +msgstr "Максимальная ширина сегментированной области. Ноль отключает эту функцию." -#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:2133 -#: src/libslic3r/PrintConfig.cpp:2142 +#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:2133 src/libslic3r/PrintConfig.cpp:2142 msgid "mm (zero to disable)" msgstr "мм (0 - отключено)" @@ -12080,11 +10361,8 @@ msgid "Enable ironing" msgstr "Вкл. разглаживание" #: src/libslic3r/PrintConfig.cpp:1530 -msgid "" -"Enable ironing of the top layers with the hot print head for smooth surface" -msgstr "" -"Включение разглаживания верхних слоёв с помощью горячего сопла для получения " -"гладкой поверхности." +msgid "Enable ironing of the top layers with the hot print head for smooth surface" +msgstr "Включение разглаживания верхних слоёв с помощью горячего сопла для получения гладкой поверхности." #: src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1538 msgid "Ironing Type" @@ -12092,15 +10370,15 @@ msgstr "Тип разглаживания" #: src/libslic3r/PrintConfig.cpp:1543 msgid "All top surfaces" -msgstr "Все верхние поверх." +msgstr "Все верхние поверхности" #: src/libslic3r/PrintConfig.cpp:1544 msgid "Topmost surface only" -msgstr "Самые верхние поверх." +msgstr "Самая верхняя поверхность" #: src/libslic3r/PrintConfig.cpp:1545 msgid "All solid surfaces" -msgstr "Все сплошные поверх." +msgstr "Все сплошные поверхности" #: src/libslic3r/PrintConfig.cpp:1550 msgid "Flow rate" @@ -12108,8 +10386,7 @@ msgstr "Поток" #: src/libslic3r/PrintConfig.cpp:1552 msgid "Percent of a flow rate relative to object's normal layer height." -msgstr "" -"Процент потока разглаживания относительно нормальной высоты слоя модели." +msgstr "Процент потока разглаживания относительно нормальной высоты слоя модели." #: src/libslic3r/PrintConfig.cpp:1560 msgid "Spacing between ironing passes" @@ -12120,33 +10397,18 @@ msgid "Distance between ironing lines" msgstr "Расстояние между линиями разглаживания." #: src/libslic3r/PrintConfig.cpp:1579 -msgid "" -"This custom code is inserted at every layer change, right after the Z move " -"and before the extruder moves to the first layer point. Note that you can " -"use placeholder variables for all Slic3r settings as well as [layer_num] and " -"[layer_z]." -msgstr "" -"Этот пользовательский код вставляется при каждой смене слоя, сразу после " -"движения оси Z и до того, как экструдер переместиться в точку первого слоя. " -"Обратите внимание, что вы можете использовать шаблонные переменные для всех " -"параметров PrusaSlicer в том числе [layer_num] и [layer_z]." +msgid "This custom code is inserted at every layer change, right after the Z move and before the extruder moves to the first layer point. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]." +msgstr "Этот пользовательский код вставляется при каждой смене слоя, сразу после движения оси Z и до того, как экструдер переместиться в точку первого слоя. Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer в том числе [layer_num] и [layer_z]." #: src/libslic3r/PrintConfig.cpp:1590 msgid "Supports remaining times" msgstr "Поддержка точного времени печати" #: src/libslic3r/PrintConfig.cpp:1591 -msgid "" -"Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute " -"intervals into the G-code to let the firmware show accurate remaining time. " -"As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 " -"firmware supports M73 Qxx Sxx for the silent mode." +msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode." msgstr "" -"Добавляет команду М73 P[процентов напечатано в нормальном режиме] " -"R[оставшееся время в секундах в нормальном режиме] с интервалом в 1 минуту в " -"G-код, чтобы прошивка отображала оставшееся время печати. На данный момент " -"только прошивка Prusa i3 MK3 распознает команду M73. Также прошивка i3 MK3 " -"поддерживает команду M73 Qxx Sxx для тихого режима печати." +"Добавляет команду М73 P[процентов напечатано в нормальном режиме] R[оставшееся время в секундах в нормальном режиме] с интервалом в 1 минуту в G-код, чтобы прошивка отображала оставшееся время печати. На данный момент только прошивка Prusa i3 MK3 распознает команду M73. Также прошивка i3 MK3 поддерживает команду M73 Qxx " +"Sxx для тихого режима печати." #: src/libslic3r/PrintConfig.cpp:1599 msgid "Supports stealth mode" @@ -12174,7 +10436,7 @@ msgstr "Отправлять в G-код" #: src/libslic3r/PrintConfig.cpp:1614 msgid "Use for time estimate" -msgstr "Использовать для оценки времени" +msgstr "Испол. для оценки времени" #: src/libslic3r/PrintConfig.cpp:1615 msgid "Ignore" @@ -12300,9 +10562,11 @@ msgstr "Максимальное ускорение при печати" msgid "" "Maximum acceleration when extruding (M204 P)\n" "\n" -"Marlin (legacy) firmware flavor will use this also as travel acceleration " -"(M204 T)." +"Marlin (legacy) firmware flavor will use this also as travel acceleration (M204 T)." msgstr "" +"Максимальное ускорение при печати (M204 P)\n" +"\n" +"В прошивке Marlin (legacy) это будет использоваться также в качестве ускорения при перемещении (M204T)." #: src/libslic3r/PrintConfig.cpp:1724 msgid "Maximum acceleration when retracting" @@ -12310,15 +10574,15 @@ msgstr "Максимальное ускорение ретракта" #: src/libslic3r/PrintConfig.cpp:1726 msgid "Maximum acceleration when retracting (M204 R)" -msgstr "" +msgstr "Максимальное ускорение ретракта (M204 R)" #: src/libslic3r/PrintConfig.cpp:1734 msgid "Maximum acceleration for travel moves" -msgstr "" +msgstr "Максимальное ускорение при перемещении" #: src/libslic3r/PrintConfig.cpp:1736 msgid "Maximum acceleration for travel moves (M204 T)" -msgstr "" +msgstr "Максимальное ускорение при перемещении (M204 T)" #: src/libslic3r/PrintConfig.cpp:1743 src/libslic3r/PrintConfig.cpp:1752 msgid "Max" @@ -12329,59 +10593,30 @@ msgid "This setting represents the maximum speed of your fan." msgstr "Этот параметр регулирует максимальную скорость вращения вентилятора." #: src/libslic3r/PrintConfig.cpp:1753 -#, fuzzy, c-format, boost-format -msgid "" -"This is the highest printable layer height for this extruder, used to cap " -"the variable layer height and support layer height. Maximum recommended " -"layer height is 75% of the extrusion width to achieve reasonable inter-layer " -"adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." +msgid "This is the highest printable layer height for this extruder, used to cap the variable layer height and support layer height. Maximum recommended layer height is 75% of the extrusion width to achieve reasonable inter-layer adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." msgstr "" -"Это наибольшая высота печатного слоя для этого экструдера, которая также " -"используется для ограничения функции \"Переменная высота слоёв\" и высоты " -"слоя поддержки. Для достижения хорошей межслойной адгезии, максимальная " -"рекомендуемая высота слоя составляет 75% ширины экструзии. Если установлено " -"0, высота слоя ограничивается 75% диаметра сопла." +"Это наибольшая высота печатного слоя для этого экструдера, которая также используется для ограничения функции «Переменная высота слоёв» и высоты слоя поддержки. Для достижения хорошей межслойной адгезии, максимальная рекомендуемая высота слоя составляет 75% ширины экструзии. Если установлено 0, высота слоя ограничивается " +"75% диаметра сопла." #: src/libslic3r/PrintConfig.cpp:1763 msgid "Max print speed" msgstr "Максимальная скорость печати" #: src/libslic3r/PrintConfig.cpp:1764 -msgid "" -"When setting other speed settings to 0 Slic3r will autocalculate the optimal " -"speed in order to keep constant extruder pressure. This experimental setting " -"is used to set the highest print speed you want to allow." -msgstr "" -"При установке других параметров скорости в 0, PrusaSlicer автоматически " -"рассчитает оптимальную скорость для поддержания постоянного давления в " -"экструдере. Этот экспериментальный параметр используется для задания " -"желаемой вами максимальной скорости печати." +msgid "When setting other speed settings to 0 Slic3r will autocalculate the optimal speed in order to keep constant extruder pressure. This experimental setting is used to set the highest print speed you want to allow." +msgstr "При установке других параметров скорости в 0, PrusaSlicer автоматически рассчитает оптимальную скорость для поддержания постоянного давления в экструдере. Этот экспериментальный параметр используется для задания желаемой вами максимальной скорости печати." #: src/libslic3r/PrintConfig.cpp:1774 -msgid "" -"This experimental setting is used to set the maximum volumetric speed your " -"extruder supports." -msgstr "" -"Экспериментальная опция используется для установки максимальной объёмной " -"скорости подачи (выдавливания) материала, которую поддерживает ваш " -"экструдер. 0 - без ограничений." +msgid "This experimental setting is used to set the maximum volumetric speed your extruder supports." +msgstr "Экспериментальная опция используется для установки максимальной объёмной скорости подачи (выдавливания) материала, которую поддерживает ваш экструдер. 0 - без ограничений." #: src/libslic3r/PrintConfig.cpp:1783 msgid "Max volumetric slope positive" msgstr "Макс. положительное объёмное нависание" #: src/libslic3r/PrintConfig.cpp:1784 src/libslic3r/PrintConfig.cpp:1795 -msgid "" -"This experimental setting is used to limit the speed of change in extrusion " -"rate. A value of 1.8 mm³/s² ensures, that a change from the extrusion rate " -"of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/" -"s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." -msgstr "" -"Этот экспериментальный параметр используется для ограничения скорости " -"изменения экструзии. Значение 1.8 мм³/с² гарантирует, что изменение скорости " -"экструзии с 1.8 мм³/с (ширина экструзии 0.45 мм, высота экструзии 0.2 мм, " -"скорость подачи 20 мм/с) до 5.4 мм³/с (скорость подачи 60 мм/с) займёт не " -"менее 2-х секунд." +msgid "This experimental setting is used to limit the speed of change in extrusion rate. A value of 1.8 mm³/s² ensures, that a change from the extrusion rate of 1.8 mm³/s (0.45mm extrusion width, 0.2mm extrusion height, feedrate 20 mm/s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." +msgstr "Этот экспериментальный параметр используется для ограничения скорости изменения экструзии. Значение 1.8 мм³/с² гарантирует, что изменение скорости экструзии с 1.8 мм³/с (ширина экструзии 0.45 мм, высота экструзии 0.2 мм, скорость подачи 20 мм/с) до 5.4 мм³/с (скорость подачи 60 мм/с) займёт не менее 2-х секунд." #: src/libslic3r/PrintConfig.cpp:1788 src/libslic3r/PrintConfig.cpp:1799 msgid "mm³/s²" @@ -12400,14 +10635,8 @@ msgid "This setting represents the minimum PWM your fan needs to work." msgstr "Этот параметр регулирует минимальную скорость вращения вентилятора." #: src/libslic3r/PrintConfig.cpp:1816 -msgid "" -"This is the lowest printable layer height for this extruder and limits the " -"resolution for variable layer height. Typical values are between 0.05 mm and " -"0.1 mm." -msgstr "" -"Это наименьшая высота печатаемого слоя для данного экструдера и в то же " -"время нижний предел для функции \"Переменная высота слоёв\". Обычно это 0.05 " -"или 0.1 мм." +msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm." +msgstr "Это наименьшая высота печатаемого слоя для данного экструдера и в то же время нижний предел для функции «Переменная высота слоёв». Обычно это 0.05 или 0.1 мм." #: src/libslic3r/PrintConfig.cpp:1824 msgid "Min print speed" @@ -12415,39 +10644,26 @@ msgstr "Минимальная скорость печати" #: src/libslic3r/PrintConfig.cpp:1825 msgid "Slic3r will not scale speed down below this speed." -msgstr "" -"Нижний предел того, как медленно слой может быть напечатан. Slic3 не будет " -"снижать скорость ниже этой." +msgstr "Нижний предел того, как медленно слой может быть напечатан. Slic3 не будет снижать скорость ниже этой." #: src/libslic3r/PrintConfig.cpp:1832 msgid "Minimal filament extrusion length" msgstr "Минимальная длина экструзии" #: src/libslic3r/PrintConfig.cpp:1833 -msgid "" -"Generate no less than the number of skirt loops required to consume the " -"specified amount of filament on the bottom layer. For multi-extruder " -"machines, this minimum applies to each extruder." -msgstr "" -"Минимальное количество пластика, которое должен протолкнуть экструдер при " -"печати юбки в миллиметрах. Для принтеров с несколькими экструдерами этот " -"минимум относится к каждому экструдеру." +msgid "Generate no less than the number of skirt loops required to consume the specified amount of filament on the bottom layer. For multi-extruder machines, this minimum applies to each extruder." +msgstr "Минимальное количество пластика, которое должен протолкнуть экструдер при печати юбки в миллиметрах. Для принтеров с несколькими экструдерами этот минимум относится к каждому экструдеру." #: src/libslic3r/PrintConfig.cpp:1842 msgid "Configuration notes" msgstr "Примечание конфигурации" #: src/libslic3r/PrintConfig.cpp:1843 -msgid "" -"You can put here your personal notes. This text will be added to the G-code " -"header comments." -msgstr "" -"Здесь вы можете оставить свои замечания для текущего профиля. Этот текст " -"будет добавлен к комментариям в заголовок G-кода." +msgid "You can put here your personal notes. This text will be added to the G-code header comments." +msgstr "Здесь вы можете оставить свои замечания для текущего профиля. Этот текст будет добавлен к комментариям в заголовок G-кода." #: src/libslic3r/PrintConfig.cpp:1853 -msgid "" -"This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" +msgid "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" msgstr "Диаметр используемого сопла (например: 0.5, 0.35 и др.)" #: src/libslic3r/PrintConfig.cpp:1858 @@ -12455,169 +10671,96 @@ msgid "Host Type" msgstr "Тип хоста" #: src/libslic3r/PrintConfig.cpp:1859 -msgid "" -"Slic3r can upload G-code files to a printer host. This field must contain " -"the kind of the host." -msgstr "" -"PrusaSlicer может загружать G-код файлы на хост принтера. Это поле должно " -"содержать тип хоста." +msgid "Slic3r can upload G-code files to a printer host. This field must contain the kind of the host." +msgstr "PrusaSlicer может загружать G-код файлы на хост принтера. Это поле должно содержать тип хоста." #: src/libslic3r/PrintConfig.cpp:1881 msgid "Only retract when crossing perimeters" msgstr "Ретракт только при пересечении периметров" #: src/libslic3r/PrintConfig.cpp:1882 -msgid "" -"Disables retraction when the travel path does not exceed the upper layer's " -"perimeters (and thus any ooze will be probably invisible)." -msgstr "" -"При включённом параметре процесс ретракта включается только тогда, когда " -"сопло выходит за внешний контур." +msgid "Disables retraction when the travel path does not exceed the upper layer's perimeters (and thus any ooze will be probably invisible)." +msgstr "При включённом параметре процесс ретракта включается только тогда, когда сопло выходит за внешний контур." #: src/libslic3r/PrintConfig.cpp:1889 -msgid "" -"This option will drop the temperature of the inactive extruders to prevent " -"oozing. It will enable a tall skirt automatically and move extruders outside " -"such skirt when changing temperatures." -msgstr "" -"Этот параметр снижает температуру неактивных экструдеров для предотвращения " -"просачивания расплавленного материала из сопла. Это автоматически активирует " -"генерацию юбки и перемещает экструдеры на эту юбки при изменении температуры." +msgid "This option will drop the temperature of the inactive extruders to prevent oozing. It will enable a tall skirt automatically and move extruders outside such skirt when changing temperatures." +msgstr "Этот параметр снижает температуру неактивных экструдеров для предотвращения просачивания расплавленного материала из сопла. Это автоматически активирует генерацию юбки и перемещает экструдеры на эту юбки при изменении температуры." #: src/libslic3r/PrintConfig.cpp:1896 msgid "Output filename format" msgstr "Формат выходного файла" #: src/libslic3r/PrintConfig.cpp:1897 -msgid "" -"You can use all configuration options as variables inside this template. For " -"example: [layer_height], [fill_density] etc. You can also use [timestamp], " -"[year], [month], [day], [hour], [minute], [second], [version], " -"[input_filename], [input_filename_base]." -msgstr "" -"Вы можете использовать все параметры в качестве переменных внутри этого " -"шаблона. Они будят добавлены к имени файла. Например: [layer_height], " -"[fill_density]. Так же вы можете использовать [timestamp], [year], [month], " -"[day], [hour], [minute], [second], [version], [input_filename], " -"[input_filename_base]." +msgid "You can use all configuration options as variables inside this template. For example: [layer_height], [fill_density] etc. You can also use [timestamp], [year], [month], [day], [hour], [minute], [second], [version], [input_filename], [input_filename_base]." +msgstr "Вы можете использовать все параметры в качестве переменных внутри этого шаблона. Они будят добавлены к имени файла. Например: [layer_height], [fill_density]. Так же вы можете использовать [timestamp], [year], [month], [day], [hour], [minute], [second], [version], [input_filename], [input_filename_base]." #: src/libslic3r/PrintConfig.cpp:1906 msgid "Detect bridging perimeters" msgstr "Определять нависающие периметры" #: src/libslic3r/PrintConfig.cpp:1908 -msgid "" -"Experimental option to adjust flow for overhangs (bridge flow will be used), " -"to apply bridge speed to them and enable fan." -msgstr "" -"Экспериментальная опция. Если у модели есть части имеющие свесы, программа " -"рассчитает возможность их печати без поддержки, при этом увеличит обдув " -"модели и выставит скорость печати, как при печати мостов." +msgid "Experimental option to adjust flow for overhangs (bridge flow will be used), to apply bridge speed to them and enable fan." +msgstr "Экспериментальная опция. Если у модели есть части имеющие свесы, программа рассчитает возможность их печати без поддержки, при этом увеличит обдув модели и выставит скорость печати, как при печати мостов." #: src/libslic3r/PrintConfig.cpp:1914 msgid "Filament parking position" msgstr "Положение парковки прутка" #: src/libslic3r/PrintConfig.cpp:1915 -msgid "" -"Distance of the extruder tip from the position where the filament is parked " -"when unloaded. This should match the value in printer firmware." -msgstr "" -"Расстояние от кончика экструдера до точки, где размещается пруток при " -"выгрузке. Расстояние должно соответствовать значению в прошивке принтера." +msgid "Distance of the extruder tip from the position where the filament is parked when unloaded. This should match the value in printer firmware." +msgstr "Расстояние от кончика экструдера до точки, где размещается пруток при выгрузке. Расстояние должно соответствовать значению в прошивке принтера." #: src/libslic3r/PrintConfig.cpp:1923 msgid "Extra loading distance" msgstr "Дополнительная длина загрузки" #: src/libslic3r/PrintConfig.cpp:1924 -msgid "" -"When set to zero, the distance the filament is moved from parking position " -"during load is exactly the same as it was moved back during unload. When " -"positive, it is loaded further, if negative, the loading move is shorter " -"than unloading." -msgstr "" -"Если установлено 0, то расстояние, которое проходит пруток при перемещении " -"из положения парковки во время загрузки, точно такое же, как и при выгрузке. " -"При положительном значении, она загружается дальше; при отрицательном, ход " -"загрузки короче (по сравнению с выгрузкой)." +msgid "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading." +msgstr "Если установлено 0, то расстояние, которое проходит пруток при перемещении из положения парковки во время загрузки, точно такое же, как и при выгрузке. При положительном значении, она загружается дальше; при отрицательном, ход загрузки короче (по сравнению с выгрузкой)." -#: src/libslic3r/PrintConfig.cpp:1932 src/libslic3r/PrintConfig.cpp:1949 -#: src/libslic3r/PrintConfig.cpp:1963 src/libslic3r/PrintConfig.cpp:1973 +#: src/libslic3r/PrintConfig.cpp:1932 src/libslic3r/PrintConfig.cpp:1949 src/libslic3r/PrintConfig.cpp:1963 src/libslic3r/PrintConfig.cpp:1973 msgid "Perimeters" msgstr "Периметры" #: src/libslic3r/PrintConfig.cpp:1933 -msgid "" -"This is the acceleration your printer will use for perimeters. Set zero to " -"disable acceleration control for perimeters." -msgstr "" -"Это ускорение, которое ваш принтер будет использовать для печати периметров. " -"Установите ноль, чтобы отключить управление ускорением по периметру." +msgid "This is the acceleration your printer will use for perimeters. Set zero to disable acceleration control for perimeters." +msgstr "Это ускорение, которое ваш принтер будет использовать для печати периметров. Установите ноль, чтобы отключить управление ускорением по периметру." #: src/libslic3r/PrintConfig.cpp:1940 msgid "Perimeter extruder" msgstr "Экструдер, печатающий внешние периметры" #: src/libslic3r/PrintConfig.cpp:1942 -msgid "" -"The extruder to use when printing perimeters and brim. First extruder is 1." -msgstr "" -"Номер экструдера, которым печатаются внешние периметры модели и кайма. " -"Первый экструдер - 1." +msgid "The extruder to use when printing perimeters and brim. First extruder is 1." +msgstr "Номер экструдера, которым печатаются внешние периметры модели и кайма. Первый экструдер - 1." #: src/libslic3r/PrintConfig.cpp:1951 msgid "" -"Set this to a non-zero value to set a manual extrusion width for perimeters. " -"You may want to use thinner extrudates to get more accurate surfaces. If " -"left zero, default extrusion width will be used if set, otherwise 1.125 x " -"nozzle diameter will be used. If expressed as percentage (for example 200%) " -"it will be computed over layer height." +"Set this to a non-zero value to set a manual extrusion width for perimeters. You may want to use thinner extrudates to get more accurate surfaces. If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 200%) it will be computed over " +"layer height." msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"периметров. Вы можете использовать более тонкие сопла, чтобы получить более " -"точных поверхностей. Если оставить 0, будет использоваться \"Ширина " -"экструзии по умолчанию\" - если она задана, в противном случае будет " -"использоваться 1,125 x диаметра сопла. Если задано в процентах, параметр " -"вычисляется относительно высоты слоя." +"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для периметров. Вы можете использовать более тонкие сопла, чтобы получить более точных поверхностей. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном случае будет использоваться 1,125 x диаметра " +"сопла. Если задано в процентах, параметр вычисляется относительно высоты слоя." #: src/libslic3r/PrintConfig.cpp:1965 -msgid "" -"Speed for perimeters (contours, aka vertical shells). Set to zero for auto." -msgstr "" -"Скорость печати периметров (контуров, иначе вертикальных стенок). Установите " -"0 для автонастройки." +msgid "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." +msgstr "Скорость печати периметров (контуров, иначе вертикальных стенок). Установите 0 для автонастройки." #: src/libslic3r/PrintConfig.cpp:1975 -msgid "" -"This option sets the number of perimeters to generate for each layer. Note " -"that Slic3r may increase this number automatically when it detects sloping " -"surfaces which benefit from a higher number of perimeters if the Extra " -"Perimeters option is enabled." +msgid "This option sets the number of perimeters to generate for each layer. Note that Slic3r may increase this number automatically when it detects sloping surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled." msgstr "" -"Количество слоёв контура модели (или количество вертикальных слоёв стенки " -"модели). Чем меньше число, тем меньше толщина стенки модели, а значит, " -"модель будет более хрупкая. Обратите внимание, если включена опция " -"\"Дополнительные периметры при необходимости\", PrusaSlicer может " -"автоматически увеличить это значение, если обнаружит наклонные поверхности." +"Количество слоёв контура модели (или количество вертикальных слоёв стенки модели). Чем меньше число, тем меньше толщина стенки модели, а значит, модель будет более хрупкая. Обратите внимание, если включена опция «Дополнительные периметры при необходимости», PrusaSlicer может автоматически увеличить это значение, если " +"обнаружит наклонные поверхности." #: src/libslic3r/PrintConfig.cpp:1979 msgid "(minimum)" msgstr "(минимум)" #: src/libslic3r/PrintConfig.cpp:1987 -msgid "" -"If you want to process the output G-code through custom scripts, just list " -"their absolute paths here. Separate multiple scripts with a semicolon. " -"Scripts will be passed the absolute path to the G-code file as the first " -"argument, and they can access the Slic3r config settings by reading " -"environment variables." +msgid "If you want to process the output G-code through custom scripts, just list their absolute paths here. Separate multiple scripts with a semicolon. Scripts will be passed the absolute path to the G-code file as the first argument, and they can access the Slic3r config settings by reading environment variables." msgstr "" -"Если вы хотите обработать выходной G-код с помощью пользовательских " -"скриптов, просто перечислите здесь абсолютные пути к ним. Разделяйте скрипты " -"точкой с запятой. Скриптам будет передан абсолютный путь к файлу G-кода в " -"качестве первого аргумента, и они смогут получить доступ к настройкам " -"конфигурации PrusaSlicer, читая переменные окружения." +"Если вы хотите обработать выходной G-код с помощью пользовательских скриптов, просто перечислите здесь абсолютные пути к ним. Разделяйте скрипты точкой с запятой. Скриптам будет передан абсолютный путь к файлу G-кода в качестве первого аргумента, и они смогут получить доступ к настройкам конфигурации PrusaSlicer, читая " +"переменные окружения." #: src/libslic3r/PrintConfig.cpp:1999 msgid "Printer type" @@ -12648,114 +10791,86 @@ msgid "Printer variant" msgstr "Модификация принтера" #: src/libslic3r/PrintConfig.cpp:2021 -msgid "" -"Name of the printer variant. For example, the printer variants may be " -"differentiated by a nozzle diameter." -msgstr "" -"Название модификации принтера. Например, это можно различать по диаметру " -"сопла." +msgid "Name of the printer variant. For example, the printer variants may be differentiated by a nozzle diameter." +msgstr "Название модификации принтера. Например, это можно различать по диаметру сопла." #: src/libslic3r/PrintConfig.cpp:2038 msgid "Raft contact Z distance" -msgstr "" +msgstr "Расстояние от подложки до модели по вертикали" #: src/libslic3r/PrintConfig.cpp:2040 -msgid "" -"The vertical distance between object and raft. Ignored for soluble interface." -msgstr "" +msgid "The vertical distance between object and raft. Ignored for soluble interface." +msgstr "Вертикальное расстояние между подложкой и моделью. Значение игнорируется при выборе растворимого материала." #: src/libslic3r/PrintConfig.cpp:2047 msgid "Raft expansion" -msgstr "" +msgstr "Расширение подложки" #: src/libslic3r/PrintConfig.cpp:2049 msgid "Expansion of the raft in XY plane for better stability." -msgstr "" +msgstr "Расширение подложки в плоскости XY для лучшей устойчивости." #: src/libslic3r/PrintConfig.cpp:2056 msgid "First layer density" -msgstr "" +msgstr "Плотность первого слоя" #: src/libslic3r/PrintConfig.cpp:2058 msgid "Density of the first raft or support layer." -msgstr "" +msgstr "Плотность первого слоя подложки или первого слоя поддержки." #: src/libslic3r/PrintConfig.cpp:2066 msgid "First layer expansion" -msgstr "" +msgstr "Расширение первого слоя" #: src/libslic3r/PrintConfig.cpp:2068 -msgid "" -"Expansion of the first raft or support layer to improve adhesion to print " -"bed." -msgstr "" +msgid "Expansion of the first raft or support layer to improve adhesion to print bed." +msgstr "Расширение первого слоя подложки или первого слоя поддержки для улучшения адгезии к печатному столу." #: src/libslic3r/PrintConfig.cpp:2075 msgid "Raft layers" msgstr "Слоёв в подложке" #: src/libslic3r/PrintConfig.cpp:2077 -msgid "" -"The object will be raised by this number of layers, and support material " -"will be generated under it." -msgstr "" -"Параметр устанавливает высоту подложки в слоях. Ноль - отключает создание " -"подложки." +msgid "The object will be raised by this number of layers, and support material will be generated under it." +msgstr "Параметр устанавливает высоту подложки в слоях. Ноль - отключает создание подложки." #: src/libslic3r/PrintConfig.cpp:2085 msgid "Slice resolution" -msgstr "" +msgstr "Разрешение нарезки" #: src/libslic3r/PrintConfig.cpp:2086 -msgid "" -"Minimum detail resolution, used to simplify the input file for speeding up " -"the slicing job and reducing memory usage. High-resolution models often " -"carry more detail than printers can render. Set to zero to disable any " -"simplification and use full resolution from input." +msgid "Minimum detail resolution, used to simplify the input file for speeding up the slicing job and reducing memory usage. High-resolution models often carry more detail than printers can render. Set to zero to disable any simplification and use full resolution from input." msgstr "" -"Минимальное разрешение деталей модели. Используется, чтобы упростить входной " -"файл для ускорения нарезки и уменьшения потребления оперативной памяти. " -"Модели с высоким разрешением часто содержат больше деталей, чем принтеры " -"могут выдать. Установите 0, чтобы отключить любое упрощение и использовать " -"полное разрешение для входного файла." +"Минимальное разрешение деталей модели. Используется, чтобы упростить входной файл для ускорения нарезки и уменьшения потребления оперативной памяти. Модели с высоким разрешением часто содержат больше деталей, чем принтеры могут выдать. Установите 0, чтобы отключить любое упрощение и использовать полное разрешение для " +"входного файла." #: src/libslic3r/PrintConfig.cpp:2096 msgid "G-code resolution" -msgstr "" +msgstr "Разрешение G-кода" #: src/libslic3r/PrintConfig.cpp:2097 msgid "" -"Maximum deviation of exported G-code paths from their full resolution " -"counterparts. Very high resolution G-code requires huge amount of RAM to " -"slice and preview, also a 3D printer may stutter not being able to process a " -"high resolution G-code in a timely manner. On the other hand, a low " -"resolution G-code will produce a low poly effect and because the G-code " -"reduction is performed at each layer independently, visible artifacts may be " -"produced." +"Maximum deviation of exported G-code paths from their full resolution counterparts. Very high resolution G-code requires huge amount of RAM to slice and preview, also a 3D printer may stutter not being able to process a high resolution G-code in a timely manner. On the other hand, a low resolution G-code will produce a low " +"poly effect and because the G-code reduction is performed at each layer independently, visible artifacts may be produced." msgstr "" +"Максимальное отклонение экспортируемых путей G-кода от их аналогов с полным разрешением. G-код с очень высоким разрешением требует огромного объёма оперативной памяти для нарезки и предварительного просмотра, также 3D принтер может подвисать, не имея возможности своевременно обрабатывать G-код с высоким разрешением. С " +"другой стороны, G-код с низким разрешением будет создавать низкополигональный эффект, и поскольку сокращение G-кода выполняется на каждом слое независимо, могут создаваться видимые артефакты." #: src/libslic3r/PrintConfig.cpp:2108 msgid "Minimum travel after retraction" msgstr "Минимальное расстояние перемещения для ретракта" #: src/libslic3r/PrintConfig.cpp:2109 -msgid "" -"Retraction is not triggered when travel moves are shorter than this length." -msgstr "" -"Ретракт не будет срабатывать, если расстояние между точками печати меньше " -"заданного значения." +msgid "Retraction is not triggered when travel moves are shorter than this length." +msgstr "Ретракт не будет срабатывать, если расстояние между точками печати меньше заданного значения." #: src/libslic3r/PrintConfig.cpp:2115 msgid "Retract amount before wipe" msgstr "Величина ретракта перед очисткой" #: src/libslic3r/PrintConfig.cpp:2116 -msgid "" -"With bowden extruders, it may be wise to do some amount of quick retract " -"before doing the wipe movement." -msgstr "" -"При использовании боуден-экструдеров, будет разумно сделать небольшое " -"втягивание прутка перед тем, как совершить движение очистки." +msgid "With bowden extruders, it may be wise to do some amount of quick retract before doing the wipe movement." +msgstr "При использовании боуден-экструдеров, будет разумно сделать небольшое втягивание прутка перед тем, как совершить движение очистки." #: src/libslic3r/PrintConfig.cpp:2123 msgid "Retract on layer change" @@ -12774,41 +10889,24 @@ msgid "Retraction Length" msgstr "Длина ретракта" #: src/libslic3r/PrintConfig.cpp:2131 -msgid "" -"When retraction is triggered, filament is pulled back by the specified " -"amount (the length is measured on raw filament, before it enters the " -"extruder)." -msgstr "" -"Когда срабатывает ретракт, пруток втягивается назад на указанную величину " -"(длина измеряется по \"сырому\" прутку, то есть до попадания её в экструдер)." +msgid "When retraction is triggered, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)." +msgstr "Когда срабатывает ретракт, пруток втягивается назад на указанную величину (длина измеряется по «сырому» прутку, то есть до попадания её в экструдер)." #: src/libslic3r/PrintConfig.cpp:2138 msgid "Retraction Length (Toolchange)" msgstr "Длина ретракта (при смене инструмента)" #: src/libslic3r/PrintConfig.cpp:2139 -msgid "" -"When retraction is triggered before changing tool, filament is pulled back " -"by the specified amount (the length is measured on raw filament, before it " -"enters the extruder)." -msgstr "" -"Когда срабатывает ретракт, перед сменой сопла, пруток втягивается назад на " -"указанную величину (длина измеряется по \"сырому\" прутку, то есть до " -"попадания его в экструдер)." +msgid "When retraction is triggered before changing tool, filament is pulled back by the specified amount (the length is measured on raw filament, before it enters the extruder)." +msgstr "Когда срабатывает ретракт, перед сменой сопла, пруток втягивается назад на указанную величину (длина измеряется по «сырому» прутку, то есть до попадания его в экструдер)." #: src/libslic3r/PrintConfig.cpp:2147 msgid "Lift Z" msgstr "Приподнимать сопло на" #: src/libslic3r/PrintConfig.cpp:2148 -msgid "" -"If you set this to a positive value, Z is quickly raised every time a " -"retraction is triggered. When using multiple extruders, only the setting for " -"the first extruder will be considered." -msgstr "" -"Задаёт на сколько миллиметров вверх будет каждый раз приподниматься сопло, " -"когда срабатывает ретракт. При использовании нескольких экструдеров будут " -"учитываться настройки только первого экструдера." +msgid "If you set this to a positive value, Z is quickly raised every time a retraction is triggered. When using multiple extruders, only the setting for the first extruder will be considered." +msgstr "Задаёт на сколько миллиметров вверх будет каждый раз приподниматься сопло, когда срабатывает ретракт. При использовании нескольких экструдеров будут учитываться настройки только первого экструдера." #: src/libslic3r/PrintConfig.cpp:2155 msgid "Above Z" @@ -12819,14 +10917,8 @@ msgid "Only lift Z above" msgstr "Приподнимать сопло только выше" #: src/libslic3r/PrintConfig.cpp:2157 -msgid "" -"If you set this to a positive value, Z lift will only take place above the " -"specified absolute Z. You can tune this setting for skipping lift on the " -"first layers." -msgstr "" -"Если указать положительное значение, экструдер будет подыматься только выше " -"(после) заданной здесь высоты (высота считается от стола). Таким образом вы " -"можете отключить подъём сопла при печати на первых слоях (в начале печати)." +msgid "If you set this to a positive value, Z lift will only take place above the specified absolute Z. You can tune this setting for skipping lift on the first layers." +msgstr "Если указать положительное значение, экструдер будет подыматься только выше (после) заданной здесь высоты (высота считается от стола). Таким образом вы можете отключить подъём сопла при печати на первых слоях (в начале печати)." #: src/libslic3r/PrintConfig.cpp:2164 msgid "Below Z" @@ -12837,38 +10929,22 @@ msgid "Only lift Z below" msgstr "Приподнимать сопло только ниже" #: src/libslic3r/PrintConfig.cpp:2166 -msgid "" -"If you set this to a positive value, Z lift will only take place below the " -"specified absolute Z. You can tune this setting for limiting lift to the " -"first layers." -msgstr "" -"Если указать положительное значение, экструдер будет подыматься только ниже " -"(до) заданной здесь высоты (высота считается от стола). Таким образом вы " -"можете запретить подъём сопла выше установленной высоты." +msgid "If you set this to a positive value, Z lift will only take place below the specified absolute Z. You can tune this setting for limiting lift to the first layers." +msgstr "Если указать положительное значение, экструдер будет подыматься только ниже (до) заданной здесь высоты (высота считается от стола). Таким образом вы можете запретить подъём сопла выше установленной высоты." #: src/libslic3r/PrintConfig.cpp:2174 src/libslic3r/PrintConfig.cpp:2182 msgid "Extra length on restart" msgstr "Дополнительная длина подачи перед возобновлением печати" #: src/libslic3r/PrintConfig.cpp:2175 -msgid "" -"When the retraction is compensated after the travel move, the extruder will " -"push this additional amount of filament. This setting is rarely needed." +msgid "When the retraction is compensated after the travel move, the extruder will push this additional amount of filament. This setting is rarely needed." msgstr "" -"Компенсация длины выдавливаемого пластика после перемещения экструдера, " -"после работы ретракта. После того как экструдер втянул пруток и переместился " -"в другое место печати, происходит обратная подача того же количества прутка " -"+ заданное тут значение. Для увеличения ставим положительное значение " -"(например 0.5 мм), для уменьшения - отрицательное. Этот параметр редко " -"необходим." +"Компенсация длины выдавливаемого пластика после перемещения экструдера, после работы ретракта. После того как экструдер втянул пруток и переместился в другое место печати, происходит обратная подача того же количества прутка + заданное тут значение. Для увеличения ставим положительное значение (например 0.5 мм), для " +"уменьшения - отрицательное. Этот параметр редко необходим." #: src/libslic3r/PrintConfig.cpp:2183 -msgid "" -"When the retraction is compensated after changing tool, the extruder will " -"push this additional amount of filament." -msgstr "" -"Компенсация длины выдавливаемого пластика перед возобновлением печати после " -"смены сопла." +msgid "When the retraction is compensated after changing tool, the extruder will push this additional amount of filament." +msgstr "Компенсация длины выдавливаемого пластика перед возобновлением печати после смены сопла." #: src/libslic3r/PrintConfig.cpp:2190 src/libslic3r/PrintConfig.cpp:2191 msgid "Retraction Speed" @@ -12876,23 +10952,15 @@ msgstr "Скорость ретракта" #: src/libslic3r/PrintConfig.cpp:2192 msgid "The speed for retractions (it only applies to the extruder motor)." -msgstr "" -"Скорость с которой происходит ретракт - втягивание прутка (относится только " -"к двигателю экструдера)." +msgstr "Скорость с которой происходит ретракт - втягивание прутка (относится только к двигателю экструдера)." #: src/libslic3r/PrintConfig.cpp:2198 src/libslic3r/PrintConfig.cpp:2199 msgid "Deretraction Speed" msgstr "Скорость компенсирующего ретракта" #: src/libslic3r/PrintConfig.cpp:2200 -msgid "" -"The speed for loading of a filament into extruder after retraction (it only " -"applies to the extruder motor). If left to zero, the retraction speed is " -"used." -msgstr "" -"Скорость загрузки прутка в экструдер после ретракта (применима только к " -"двигателю экструдера). Если оставить ноль, будет использоваться скорость " -"ретракта." +msgid "The speed for loading of a filament into extruder after retraction (it only applies to the extruder motor). If left to zero, the retraction speed is used." +msgstr "Скорость загрузки прутка в экструдер после ретракта (применима только к двигателю экструдера). Если оставить ноль, будет использоваться скорость ретракта." #: src/libslic3r/PrintConfig.cpp:2207 msgid "Seam position" @@ -12900,10 +10968,7 @@ msgstr "Позиция шва" #: src/libslic3r/PrintConfig.cpp:2209 msgid "Position of perimeters starting points." -msgstr "" -"Этот параметр позволяет выбрать начальную точку каждого слоя в направлении " -"Z, и таким образом определяет, где будет шов модели. Изменяя этот параметр " -"можно уменьшить видимость шва." +msgstr "Этот параметр позволяет выбрать начальную точку каждого слоя в направлении Z, и таким образом определяет, где будет шов модели. Изменяя этот параметр можно уменьшить видимость шва." #: src/libslic3r/PrintConfig.cpp:2215 msgid "Random" @@ -12935,20 +11000,19 @@ msgstr "Разброс шва" #: src/libslic3r/PrintConfig.cpp:2237 msgid "Seam preferred direction jitter" -msgstr "Предпочтительное направление разброса шва (в градусах) " +msgstr "Предпочтительное направление разброса шва (в градусах)" #: src/libslic3r/PrintConfig.cpp:2238 msgid "Preferred direction of the seam - jitter" -msgstr "Предпочтительное направление разброса шва (в градусах) " +msgstr "Предпочтительное направление разброса шва (в градусах)" #: src/libslic3r/PrintConfig.cpp:2245 msgid "Distance from brim/object" -msgstr "" +msgstr "Расстояние между юбкой/каймой" #: src/libslic3r/PrintConfig.cpp:2246 -msgid "" -"Distance between skirt and brim (when draft shield is not used) or objects." -msgstr "" +msgid "Distance between skirt and brim (when draft shield is not used) or objects." +msgstr "Расстояние между юбкой и каймой (если не используется защита от сквозняка) или моделью." #: src/libslic3r/PrintConfig.cpp:2252 msgid "Skirt height" @@ -12956,7 +11020,7 @@ msgstr "Слоёв юбки" #: src/libslic3r/PrintConfig.cpp:2253 msgid "Height of skirt expressed in layers." -msgstr "" +msgstr "Высота юбки в слоях." #: src/libslic3r/PrintConfig.cpp:2259 msgid "Draft shield" @@ -12964,25 +11028,27 @@ msgstr "Защитный кожух" #: src/libslic3r/PrintConfig.cpp:2260 msgid "" -"With draft shield active, the skirt will be printed skirt_distance from the " -"object, possibly intersecting brim.\n" +"With draft shield active, the skirt will be printed skirt_distance from the object, possibly intersecting brim.\n" "Enabled = skirt is as tall as the highest printed object.\n" "Limited = skirt is as tall as specified by skirt_height.\n" -"This is useful to protect an ABS or ASA print from warping and detaching " -"from print bed due to wind draft." +"This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft." msgstr "" +"При включённом параметре «Защитный кожух», юбка будет печататься на расстоянии от модели задающимся параметром «Расстояние между юбкой/каймой» (skirt_distance), возможно, пересекая кайму.\n" +"Включено - высота юбки равна высоте самой высокой модели.\n" +"Ограничено - высота юбки задается параметром «Слоёв юбки» (skirt_height).\n" +"Это полезно для защиты материалов типа ABS или ASA от деформации и отрыва от стола из-за внешнего воздушного потока." #: src/libslic3r/PrintConfig.cpp:2268 msgid "Disabled" -msgstr "" +msgstr "Отключено" #: src/libslic3r/PrintConfig.cpp:2269 msgid "Limited" -msgstr "" +msgstr "Ограничено" #: src/libslic3r/PrintConfig.cpp:2270 msgid "Enabled" -msgstr "" +msgstr "Включено" #: src/libslic3r/PrintConfig.cpp:2275 msgid "Loops (minimum)" @@ -12993,51 +11059,33 @@ msgid "Skirt Loops" msgstr "Петель юбки" #: src/libslic3r/PrintConfig.cpp:2277 -msgid "" -"Number of loops for the skirt. If the Minimum Extrusion Length option is " -"set, the number of loops might be greater than the one configured here. Set " -"this to zero to disable skirt completely." -msgstr "" -"Количество юбок вокруг модели. Если задан параметр \"Минимальная длина " -"экструзии\", количество юбок может быть больше, чем задано здесь. Чтобы " -"полностью отключить юбку, установите 0." +msgid "Number of loops for the skirt. If the Minimum Extrusion Length option is set, the number of loops might be greater than the one configured here. Set this to zero to disable skirt completely." +msgstr "Количество юбок вокруг модели. Если задан параметр «Минимальная длина экструзии», количество юбок может быть больше, чем задано здесь. Чтобы полностью отключить юбку, установите 0." #: src/libslic3r/PrintConfig.cpp:2285 msgid "Slow down if layer print time is below" msgstr "Замедление при печати слоя менее" #: src/libslic3r/PrintConfig.cpp:2286 -msgid "" -"If layer print time is estimated below this number of seconds, print moves " -"speed will be scaled down to extend duration to this value." -msgstr "" -"Если время печати слоя оценивается ниже этого количества секунд, скорость " -"печати будет пропорционально уменьшена, чтобы увеличить продолжительность до " -"этого значения." +msgid "If layer print time is estimated below this number of seconds, print moves speed will be scaled down to extend duration to this value." +msgstr "Если время печати слоя оценивается ниже этого количества секунд, скорость печати будет пропорционально уменьшена, чтобы увеличить продолжительность до этого значения." #: src/libslic3r/PrintConfig.cpp:2295 msgid "Small perimeters" msgstr "Маленькие периметры" #: src/libslic3r/PrintConfig.cpp:2297 -msgid "" -"This separate setting will affect the speed of perimeters having radius <= " -"6.5mm (usually holes). If expressed as percentage (for example: 80%) it will " -"be calculated on the perimeters speed setting above. Set to zero for auto." +msgid "This separate setting will affect the speed of perimeters having radius <= 6.5mm (usually holes). If expressed as percentage (for example: 80%) it will be calculated on the perimeters speed setting above. Set to zero for auto." msgstr "" "Этот параметр влияет на скорость печати периметров с радиусом \n" -"<= 6,5 мм (обычно это отверстия). Если задано в процентах, параметр " -"вычисляется относительно скорости печати периметров указанной выше. " -"Установите 0 для автонастройки." +"<= 6,5 мм (обычно это отверстия). Если задано в процентах, параметр вычисляется относительно скорости печати периметров указанной выше. Установите 0 для автонастройки." #: src/libslic3r/PrintConfig.cpp:2307 msgid "Solid infill threshold area" msgstr "Заполнение площади, меньше указанной" #: src/libslic3r/PrintConfig.cpp:2309 -msgid "" -"Force solid infill for regions having a smaller area than the specified " -"threshold." +msgid "Force solid infill for regions having a smaller area than the specified threshold." msgstr "" "Заполнение площади меньше указанной будет производиться \n" "100% (сплошным) заполнением." @@ -13059,44 +11107,22 @@ msgid "Solid infill every" msgstr "Сплошное заполнение каждые" #: src/libslic3r/PrintConfig.cpp:2326 -msgid "" -"This feature allows to force a solid layer every given number of layers. " -"Zero to disable. You can set this to any value (for example 9999); Slic3r " -"will automatically choose the maximum possible number of layers to combine " -"according to nozzle diameter and layer height." -msgstr "" -"Эта функция позволяет принудительно делать сплошное заполнение через " -"указанное количество слоёв. Чтобы отключить, установите 0. Вы можете задать " -"любое значение, PrusaSlicer автоматически выберет максимально возможное " -"количество слоёв в зависимости от диаметра сопла и высоты слоя." +msgid "This feature allows to force a solid layer every given number of layers. Zero to disable. You can set this to any value (for example 9999); Slic3r will automatically choose the maximum possible number of layers to combine according to nozzle diameter and layer height." +msgstr "Эта функция позволяет принудительно делать сплошное заполнение через указанное количество слоёв. Чтобы отключить, установите 0. Вы можете задать любое значение, PrusaSlicer автоматически выберет максимально возможное количество слоёв в зависимости от диаметра сопла и высоты слоя." #: src/libslic3r/PrintConfig.cpp:2338 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for infill for " -"solid surfaces. If left zero, default extrusion width will be used if set, " -"otherwise 1.125 x nozzle diameter will be used. If expressed as percentage " -"(for example 90%) it will be computed over layer height." +msgid "Set this to a non-zero value to set a manual extrusion width for infill for solid surfaces. If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. If expressed as percentage (for example 90%) it will be computed over layer height." msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"заполнения сплошных поверхностей. Если оставить 0, будет использоваться " -"\"Ширина экструзии по умолчанию\" - если она задана, в противном случае " -"будет использоваться 1,125 x диаметра сопла. Если задано в процентах, " -"параметр вычисляется относительно высоты слоя." +"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для заполнения сплошных поверхностей. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном случае будет использоваться 1,125 x диаметра сопла. Если задано в процентах, параметр вычисляется относительно " +"высоты слоя." #: src/libslic3r/PrintConfig.cpp:2350 -msgid "" -"Speed for printing solid regions (top/bottom/internal horizontal shells). " -"This can be expressed as a percentage (for example: 80%) over the default " -"infill speed above. Set to zero for auto." -msgstr "" -"Скорость печати сплошных областей (верха/низа/внутренних горизонтальных " -"оболочек). Если задано в процентах, параметр вычисляется относительно " -"скорости заполнения указанной выше. Установите 0 для автонастройки." +msgid "Speed for printing solid regions (top/bottom/internal horizontal shells). This can be expressed as a percentage (for example: 80%) over the default infill speed above. Set to zero for auto." +msgstr "Скорость печати сплошных областей (верха/низа/внутренних горизонтальных оболочек). Если задано в процентах, параметр вычисляется относительно скорости заполнения указанной выше. Установите 0 для автонастройки." #: src/libslic3r/PrintConfig.cpp:2362 msgid "Number of solid layers to generate on top and bottom surfaces." -msgstr "" -"Количество сплошных слоёв при печати верхней и нижней поверхности модели." +msgstr "Количество сплошных слоёв при печати верхней и нижней поверхности модели." #: src/libslic3r/PrintConfig.cpp:2368 src/libslic3r/PrintConfig.cpp:2369 msgid "Minimum thickness of a top / bottom shell" @@ -13108,76 +11134,37 @@ msgstr "Спиральная ваза" #: src/libslic3r/PrintConfig.cpp:2376 msgid "" -"This feature will raise Z gradually while printing a single-walled object in " -"order to remove any visible seam. This option requires a single perimeter, " -"no infill, no top solid layers and no support material. You can still set " -"any number of bottom solid layers as well as skirt/brim loops. It won't work " -"when printing more than one single object." +"This feature will raise Z gradually while printing a single-walled object in order to remove any visible seam. This option requires a single perimeter, no infill, no top solid layers and no support material. You can still set any number of bottom solid layers as well as skirt/brim loops. It won't work when printing more " +"than one single object." msgstr "" -"Данная настройка применяется при печати спиральных и пустотелых, а также " -"тонкостенных моделей. Модель печатается в одну стенку без верней " -"поверхности, заполнения и поддержки. При этом сопло движется вдоль периметра " -"непрерывно постепенно поднимаясь, так получаются ровные красивые вазы без " -"видимых швов. Вы можете задать любое количество нижних сплошных слоёв, а " -"также печать юбки/каймы. При включении этого параметра невозможно напечатать " -"горизонтальную плоскость - горизонтальные слои без поддержки будут провисать." +"Данная настройка применяется при печати спиральных и пустотелых, а также тонкостенных моделей. Модель печатается в одну стенку без верней поверхности, заполнения и поддержки. При этом сопло движется вдоль периметра непрерывно постепенно поднимаясь, так получаются ровные красивые вазы без видимых швов. Вы можете задать " +"любое количество нижних сплошных слоёв, а также печать юбки/каймы. При включении этого параметра невозможно напечатать горизонтальную плоскость - горизонтальные слои без поддержки будут провисать." #: src/libslic3r/PrintConfig.cpp:2384 msgid "Temperature variation" msgstr "Колебания температуры" #: src/libslic3r/PrintConfig.cpp:2385 -msgid "" -"Temperature difference to be applied when an extruder is not active. Enables " -"a full-height \"sacrificial\" skirt on which the nozzles are periodically " -"wiped." -msgstr "" -"Разность температур, которая применяется, когда экструдер не используется. " -"Включает печать \"жертвенной\" юбки с высотой, равной высоте модели, об " -"которую сопла будут время от времени очищаться." +msgid "Temperature difference to be applied when an extruder is not active. Enables a full-height \"sacrificial\" skirt on which the nozzles are periodically wiped." +msgstr "Разность температур, которая применяется, когда экструдер не используется. Включает печать «жертвенной» юбки с высотой, равной высоте модели, об которую сопла будут время от времени очищаться." #: src/libslic3r/PrintConfig.cpp:2395 msgid "" -"This start procedure is inserted at the beginning, after bed has reached the " -"target temperature and extruder just started heating, and before extruder " -"has finished heating. If PrusaSlicer detects M104 or M190 in your custom " -"codes, such commands will not be prepended automatically so you're free to " -"customize the order of heating commands and other custom actions. Note that " -"you can use placeholder variables for all PrusaSlicer settings, so you can " -"put a \"M109 S[first_layer_temperature]\" command wherever you want." +"This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of " +"heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "" -"Этот код выполняется в начале, после того как стол уже достиг заданной " -"температуры, а экструдер только начал нагреваться, и до того, как экструдер " -"закончил нагрев. Если PrusaSlicer обнаруживает M104 или M190 в ваших " -"пользовательских кодах, такие команды не будут добавляться автоматически, " -"поэтому вы можете настроить порядок команд нагрева и другие действия. " -"Обратите внимание, что вы можете использовать шаблонные переменные для всех " -"параметров PrusaSlicer, поэтому вы можете вставить команду \"M109 " -"S[first_layer_temperature]\" где угодно." +"Этот код выполняется в начале, после того как стол уже достиг заданной температуры, а экструдер только начал нагреваться, и до того, как экструдер закончил нагрев. Если PrusaSlicer обнаруживает M104 или M190 в ваших пользовательских кодах, такие команды не будут добавляться автоматически, поэтому вы можете настроить " +"порядок команд нагрева и другие действия. Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer, поэтому вы можете вставить команду \"M109 S[first_layer_temperature]\" где угодно." #: src/libslic3r/PrintConfig.cpp:2410 msgid "" -"This start procedure is inserted at the beginning, after any printer start " -"gcode (and after any toolchange to this filament in case of multi-material " -"printers). This is used to override settings for a specific filament. If " -"PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such " -"commands will not be prepended automatically so you're free to customize the " -"order of heating commands and other custom actions. Note that you can use " -"placeholder variables for all PrusaSlicer settings, so you can put a \"M109 " -"S[first_layer_temperature]\" command wherever you want. If you have multiple " -"extruders, the gcode is processed in extruder order." +"This start procedure is inserted at the beginning, after any printer start gcode (and after any toolchange to this filament in case of multi-material printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be " +"prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in " +"extruder order." msgstr "" -"Этот код выполняется в начале, после каждого запуска принтером G-кода (и " -"после каждого переключения инструмента на нужный пруток в случае " -"мультиматериальныхпринтеров). Это используется для переопределения " -"параметров для конкретного прутка. Если PrusaSlicer обнаруживает M104, M109, " -"M140 или M190 в ваших пользовательских кодах, такие команды не будут " -"добавляться автоматически, поэтому вы можете вставить порядок команд нагрева " -"и другие действия. Обратите внимание, что вы можете использовать шаблонные " -"переменные для всех параметров PrusaSlicer, поэтому вы можете вставить " -"команду \"M109 S[first_layer_temperature]\" где угодно. Если у вас несколько " -"экструдеров, G-код обрабатывается в соответствии с порядковым номером " -"экструдера." +"Этот код выполняется в начале, после каждого запуска принтером G-кода (и после каждого переключения инструмента на нужный пруток в случае мультиматериальныхпринтеров). Это используется для переопределения параметров для конкретного прутка. Если PrusaSlicer обнаруживает M104, M109, M140 или M190 в ваших пользовательских " +"кодах, такие команды не будут добавляться автоматически, поэтому вы можете вставить порядок команд нагрева и другие действия. Обратите внимание, что вы можете использовать шаблонные переменные для всех параметров PrusaSlicer, поэтому вы можете вставить команду \"M109 S[first_layer_temperature]\" где угодно. Если у вас " +"несколько экструдеров, G-код обрабатывается в соответствии с порядковым номером экструдера." #: src/libslic3r/PrintConfig.cpp:2426 msgid "Color change G-code" @@ -13201,78 +11188,53 @@ msgstr "Мультиматериальный одиночный экструде #: src/libslic3r/PrintConfig.cpp:2454 msgid "The printer multiplexes filaments into a single hot end." -msgstr "" -"Принтер способный печатать несколькими видами/цветами пластика (соединяя их " -"в однин пруток) с одной экструзионной головкой." +msgstr "Принтер способный печатать несколькими видами/цветами пластика (соединяя их в однин пруток) с одной экструзионной головкой." #: src/libslic3r/PrintConfig.cpp:2459 msgid "Prime all printing extruders" msgstr "Подготовка всех печатающих экструдеров" #: src/libslic3r/PrintConfig.cpp:2460 -msgid "" -"If enabled, all printing extruders will be primed at the front edge of the " -"print bed at the start of the print." -msgstr "" -"Если этот параметр включён, все печатающие экструдеры в начале печати будут " -"подготавливаться на переднем крае стола." +msgid "If enabled, all printing extruders will be primed at the front edge of the print bed at the start of the print." +msgstr "Если этот параметр включён, все печатающие экструдеры в начале печати будут подготавливаться на переднем крае стола." #: src/libslic3r/PrintConfig.cpp:2465 msgid "No sparse layers (EXPERIMENTAL)" msgstr "Отсутствие разреженных слоёв (ЭКСПЕРИМЕНТАЛЬНО)" #: src/libslic3r/PrintConfig.cpp:2466 -msgid "" -"If enabled, the wipe tower will not be printed on layers with no " -"toolchanges. On layers with a toolchange, extruder will travel downward to " -"print the wipe tower. User is responsible for ensuring there is no collision " -"with the print." +msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print." msgstr "" -"Если этот параметр включён, черновая башня не будет печататься на слоях где " -"не происходит смена инструмента. На слоях, где происходит смена инструмента, " -"экструдер будет опускаться вниз до верхней части черновой башни, чтобы " -"напечатать её. Так как PrusaSlicer в настоящее время не проверяет " -"столкновения экструдера с напечатанным объектом при опускании его вниз до " -"верхней части черновой башни, эта функция помечена как экспериментальная. " -"Пользователь несёт ответственность за то, чтобы избежать столкновения с " -"напечатанным." +"Если этот параметр включён, черновая башня не будет печататься на слоях где не происходит смена инструмента. На слоях, где происходит смена инструмента, экструдер будет опускаться вниз до верхней части черновой башни, чтобы напечатать её. Так как PrusaSlicer в настоящее время не проверяет столкновения экструдера с " +"напечатанным объектом при опускании его вниз до верхней части черновой башни, эта функция помечена как экспериментальная. Пользователь несёт ответственность за то, чтобы избежать столкновения с напечатанным." #: src/libslic3r/PrintConfig.cpp:2473 msgid "Slice gap closing radius" msgstr "Радиус закрытия пробелов при нарезке" #: src/libslic3r/PrintConfig.cpp:2475 -msgid "" -"Cracks smaller than 2x gap closing radius are being filled during the " -"triangle mesh slicing. The gap closing operation may reduce the final print " -"resolution, therefore it is advisable to keep the value reasonably low." -msgstr "" -"Трещины, меньше чем 2-кратный радиус закрытия пробелов, будут заполняться во " -"время нарезки треугольной сетки. Операция закрытия пробелов может уменьшить " -"окончательное разрешение печати, поэтому рекомендуется выставлять это " -"значение достаточно низким." +msgid "Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low." +msgstr "Трещины, меньше чем 2-кратный радиус закрытия пробелов, будут заполняться во время нарезки треугольной сетки. Операция закрытия пробелов может уменьшить окончательное разрешение печати, поэтому рекомендуется выставлять это значение достаточно низким." #: src/libslic3r/PrintConfig.cpp:2483 msgid "Slicing Mode" -msgstr "" +msgstr "Режим нарезки" #: src/libslic3r/PrintConfig.cpp:2485 -msgid "" -"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " -"close all holes in the model." -msgstr "" +msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." +msgstr "Режим нарезки «чётный-нечётный» используется для моделей самолетов с ресурса 3DLabPrint. А «Закрытие отверстий» для закрытия всех отверстий в модели." #: src/libslic3r/PrintConfig.cpp:2490 msgid "Regular" -msgstr "" +msgstr "Обычный" #: src/libslic3r/PrintConfig.cpp:2491 msgid "Even-odd" -msgstr "" +msgstr "Чётный-нечётный" #: src/libslic3r/PrintConfig.cpp:2492 msgid "Close holes" -msgstr "" +msgstr "Закрытие отверстий" #: src/libslic3r/PrintConfig.cpp:2497 msgid "Generate support material" @@ -13280,70 +11242,43 @@ msgstr "Генерация вспомогательных структур" #: src/libslic3r/PrintConfig.cpp:2499 msgid "Enable support material generation." -msgstr "" -"Включение печати вспомогательных структур, поддерживающих выступающие и " -"свисающие элементы печатаемой модели." +msgstr "Включение печати вспомогательных структур, поддерживающих выступающие и свисающие элементы печатаемой модели." #: src/libslic3r/PrintConfig.cpp:2503 msgid "Auto generated supports" msgstr "Автоматически созданные поддержки" #: src/libslic3r/PrintConfig.cpp:2505 -msgid "" -"If checked, supports will be generated automatically based on the overhang " -"threshold value. If unchecked, supports will be generated inside the " -"\"Support Enforcer\" volumes only." -msgstr "" -"Если флажок установлен, поддержка будет генерироваться автоматически в " -"зависимости от нижестоящего значения \"Угол нависания поддержки\". Если " -"флажок не установлен, поддержка будет генерироваться только внутри значения " -"принудительной поддержки заданной ниже." +msgid "If checked, supports will be generated automatically based on the overhang threshold value. If unchecked, supports will be generated inside the \"Support Enforcer\" volumes only." +msgstr "Если флажок установлен, поддержка будет генерироваться автоматически в зависимости от нижестоящего значения «Угол нависания поддержки». Если флажок не установлен, поддержка будет генерироваться только внутри значения принудительной поддержки заданной ниже." #: src/libslic3r/PrintConfig.cpp:2511 msgid "XY separation between an object and its support" msgstr "Зазор между моделью и поддержкой по осям XY" #: src/libslic3r/PrintConfig.cpp:2513 -msgid "" -"XY separation between an object and its support. If expressed as percentage " -"(for example 50%), it will be calculated over external perimeter width." -msgstr "" -"Расстояние между поддержкой и печатаемой моделью по осям XY. Если задано в " -"процентах, то расстояние будет рассчитано исходя от ширины внешнего " -"периметра." +msgid "XY separation between an object and its support. If expressed as percentage (for example 50%), it will be calculated over external perimeter width." +msgstr "Расстояние между поддержкой и печатаемой моделью по осям XY. Если задано в процентах, то расстояние будет рассчитано исходя от ширины внешнего периметра." #: src/libslic3r/PrintConfig.cpp:2524 msgid "Pattern angle" msgstr "Угол печати поддержки и подложки" #: src/libslic3r/PrintConfig.cpp:2526 -msgid "" -"Use this setting to rotate the support material pattern on the horizontal " -"plane." -msgstr "" -"Используйте этот параметр для поворота рисунка поддержки в горизонтальной " -"плоскости." +msgid "Use this setting to rotate the support material pattern on the horizontal plane." +msgstr "Используйте этот параметр для поворота рисунка поддержки в горизонтальной плоскости." #: src/libslic3r/PrintConfig.cpp:2536 src/libslic3r/PrintConfig.cpp:3495 -msgid "" -"Only create support if it lies on a build plate. Don't create support on a " -"print." -msgstr "" -"Создавать поддержки только от стола. Поддержки от модели построены не будут." +msgid "Only create support if it lies on a build plate. Don't create support on a print." +msgstr "Создавать поддержки только от стола. Поддержки от модели построены не будут." #: src/libslic3r/PrintConfig.cpp:2542 msgid "Top contact Z distance" -msgstr "" +msgstr "Зазор поддержки сверху (по оси Z)" #: src/libslic3r/PrintConfig.cpp:2544 -msgid "" -"The vertical distance between object and support material interface. Setting " -"this to 0 will also prevent Slic3r from using bridge flow and speed for the " -"first object layer." -msgstr "" -"Вертикальное расстояние между моделью и связующим слоем поддержки. Если " -"установить 0, то PrusaSlicer не будет использовать функцию \"Соотношение " -"потока при печати мостов\" и \"Скорость печати первого слоя\" модели." +msgid "The vertical distance between object and support material interface. Setting this to 0 will also prevent Slic3r from using bridge flow and speed for the first object layer." +msgstr "Вертикальное расстояние между моделью и связующим слоем поддержки. Если установить 0, то PrusaSlicer не будет использовать функцию «Соотношение потока при печати мостов» и «Скорость печати первого слоя» модели." #: src/libslic3r/PrintConfig.cpp:2552 msgid "0 (soluble)" @@ -13351,7 +11286,7 @@ msgstr "0 (растворимые)" #: src/libslic3r/PrintConfig.cpp:2553 msgid "0.1 (detachable)" -msgstr "" +msgstr "0.1 (отделяемые)" #: src/libslic3r/PrintConfig.cpp:2554 msgid "0.2 (detachable)" @@ -13359,36 +11294,25 @@ msgstr "0.2 (нерастворимые)" #: src/libslic3r/PrintConfig.cpp:2560 msgid "Bottom contact Z distance" -msgstr "" +msgstr "Зазор поддержки снизу (по оси Z)" #: src/libslic3r/PrintConfig.cpp:2562 -msgid "" -"The vertical distance between the object top surface and the support " -"material interface. If set to zero, support_material_contact_distance will " -"be used for both top and bottom contact Z distances." -msgstr "" +msgid "The vertical distance between the object top surface and the support material interface. If set to zero, support_material_contact_distance will be used for both top and bottom contact Z distances." +msgstr "Расстояние по оси Z между печатаемой моделью и низом поддержки. При 0, support_material_contact_distance будет использоваться как для верхнего, так и для нижнего контакта." #. TRN To be shown in Print Settings "Bottom contact Z distance". Have to be as short as possible #. TRN To be shown in Print Settings "Bottom interface layers". Have to be as short as possible #: src/libslic3r/PrintConfig.cpp:2570 src/libslic3r/PrintConfig.cpp:2655 msgid "Same as top" -msgstr "" +msgstr "Как и сверху" #: src/libslic3r/PrintConfig.cpp:2577 msgid "Enforce support for the first" msgstr "Принудительная поддержка для первых" #: src/libslic3r/PrintConfig.cpp:2579 -msgid "" -"Generate support material for the specified number of layers counting from " -"bottom, regardless of whether normal support material is enabled or not and " -"regardless of any angle threshold. This is useful for getting more adhesion " -"of objects having a very thin or poor footprint on the build plate." -msgstr "" -"Генерация поддержки для указанного количества слоёв начиная со дна модели, " -"вне зависимости от порога свеса и включения опции \"Создавать поддержки\". " -"Это полезно для получения лучшего прилипания моделей, имеющих очень тонкий " -"или плохой контакт со столом." +msgid "Generate support material for the specified number of layers counting from bottom, regardless of whether normal support material is enabled or not and regardless of any angle threshold. This is useful for getting more adhesion of objects having a very thin or poor footprint on the build plate." +msgstr "Генерация поддержки для указанного количества слоёв начиная со дна модели, вне зависимости от порога свеса и включения опции «Создавать поддержки». Это полезно для получения лучшего прилипания моделей, имеющих очень тонкий или плохой контакт со столом." #: src/libslic3r/PrintConfig.cpp:2584 msgid "Enforce support for the first n layers" @@ -13399,112 +11323,82 @@ msgid "Support material/raft/skirt extruder" msgstr "Экструдер, печатающий поддержки/подложки/юбки" #: src/libslic3r/PrintConfig.cpp:2592 -msgid "" -"The extruder to use when printing support material, raft and skirt (1+, 0 to " -"use the current extruder to minimize tool changes)." -msgstr "" -"Номер экструдера, которым печатаются поддержка, подложка и юбка (1+, 0 для " -"использования текущего экструдера для минимизации смены инструмента)." +msgid "The extruder to use when printing support material, raft and skirt (1+, 0 to use the current extruder to minimize tool changes)." +msgstr "Номер экструдера, которым печатаются поддержка, подложка и юбка (1+, 0 для использования текущего экструдера для минимизации смены инструмента)." #: src/libslic3r/PrintConfig.cpp:2601 -msgid "" -"Set this to a non-zero value to set a manual extrusion width for support " -"material. If left zero, default extrusion width will be used if set, " -"otherwise nozzle diameter will be used. If expressed as percentage (for " -"example 90%) it will be computed over layer height." -msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"поддержки. Если оставить 0, будет использоваться \"Ширина экструзии по " -"умолчанию\" - если она задана, в противном случае будет использоваться " -"диаметр сопла. Если задано в процентах, параметр вычисляется относительно " -"высоты слоя." +msgid "Set this to a non-zero value to set a manual extrusion width for support material. If left zero, default extrusion width will be used if set, otherwise nozzle diameter will be used. If expressed as percentage (for example 90%) it will be computed over layer height." +msgstr "Установите значение отличное от 0, чтобы вручную задать ширину экструзии для поддержки. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном случае будет использоваться диаметр сопла. Если задано в процентах, параметр вычисляется относительно высоты слоя." #: src/libslic3r/PrintConfig.cpp:2611 msgid "Interface loops" msgstr "Связующий слой петлями" #: src/libslic3r/PrintConfig.cpp:2613 -msgid "" -"Cover the top contact layer of the supports with loops. Disabled by default." +msgid "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "Печатать верхний связующий слой петлями. По умолчанию отключено." #: src/libslic3r/PrintConfig.cpp:2618 msgid "Support material/raft interface extruder" -msgstr "Экструдер, печатающий связующий слой поддержки/подложки" +msgstr "" +"Экструдер, печатающий связующий\n" +"слой поддержки/подложки" #: src/libslic3r/PrintConfig.cpp:2620 -msgid "" -"The extruder to use when printing support material interface (1+, 0 to use " -"the current extruder to minimize tool changes). This affects raft too." -msgstr "" -"Номер экструдера, которым печатаются связующие слой поддержки (1+, 0 для " -"использования текущего экструдера для минимизации смены инструмента). Это " -"также влияет на печать подложки." +msgid "The extruder to use when printing support material interface (1+, 0 to use the current extruder to minimize tool changes). This affects raft too." +msgstr "Номер экструдера, которым печатаются связующие слой поддержки (1+, 0 для использования текущего экструдера для минимизации смены инструмента). Это также влияет на печать подложки." #: src/libslic3r/PrintConfig.cpp:2628 msgid "Top interface layers" -msgstr "" +msgstr "Количество связующих слоёв сверху" #: src/libslic3r/PrintConfig.cpp:2630 -msgid "" -"Number of interface layers to insert between the object(s) and support " -"material." +msgid "Number of interface layers to insert between the object(s) and support material." msgstr "Количество связующих слоёв между моделью и материалом поддержки." #: src/libslic3r/PrintConfig.cpp:2637 msgid "0 (off)" -msgstr "" +msgstr "0 (откл.)" #: src/libslic3r/PrintConfig.cpp:2638 msgid "1 (light)" -msgstr "" +msgstr "слабые" #: src/libslic3r/PrintConfig.cpp:2639 msgid "2 (default)" -msgstr "" +msgstr "2 (по умолчанию)" #: src/libslic3r/PrintConfig.cpp:2640 msgid "3 (heavy)" -msgstr "" +msgstr "3 (крепкие)" #: src/libslic3r/PrintConfig.cpp:2646 msgid "Bottom interface layers" -msgstr "" +msgstr "Количество связующих слоёв снизу" #: src/libslic3r/PrintConfig.cpp:2648 -msgid "" -"Number of interface layers to insert between the object(s) and support " -"material. Set to -1 to use support_material_interface_layers" -msgstr "" +msgid "Number of interface layers to insert between the object(s) and support material. Set to -1 to use support_material_interface_layers" +msgstr "Количество связующих слоёв между моделью и материалом поддержки. Установите значение -1 чтобы использовать support_material_interface_layers" #: src/libslic3r/PrintConfig.cpp:2661 msgid "Closing radius" -msgstr "" +msgstr "Радиус закрытия пробелов" #: src/libslic3r/PrintConfig.cpp:2663 -msgid "" -"For snug supports, the support regions will be merged using morphological " -"closing operation. Gaps smaller than the closing radius will be filled in." -msgstr "" +msgid "For snug supports, the support regions will be merged using morphological closing operation. Gaps smaller than the closing radius will be filled in." +msgstr "Для аккуратных поддержек, поддерживаемые области будут объединены с использованием операции морфологического закрытия. Зазоры, меньшие радиуса закрытия, будут заполнены." #: src/libslic3r/PrintConfig.cpp:2671 msgid "Interface pattern spacing" -msgstr "Расстояние между связующими линиями" +msgstr "Расстояние между линиями связующей поддержки" #: src/libslic3r/PrintConfig.cpp:2673 msgid "Spacing between interface lines. Set zero to get a solid interface." -msgstr "" -"Расстояние между связующими линиями. Установите 0, чтобы получить сплошной " -"слой." +msgstr "Расстояние между линиями связующей поддержки. Установите 0, чтобы получить сплошной слой." #: src/libslic3r/PrintConfig.cpp:2682 -msgid "" -"Speed for printing support material interface layers. If expressed as " -"percentage (for example 50%) it will be calculated over support material " -"speed." -msgstr "" -"Скорость печати связующих слоёв поддержки. Если она выражена в процентах, то " -"будет рассчитана относительно скорости печати поддержки указанной выше." +msgid "Speed for printing support material interface layers. If expressed as percentage (for example 50%) it will be calculated over support material speed." +msgstr "Скорость печати связующих слоёв поддержки. Если она выражена в процентах, то будет рассчитана относительно скорости печати поддержки указанной выше." #: src/libslic3r/PrintConfig.cpp:2691 msgid "Pattern" @@ -13520,14 +11414,11 @@ msgstr "Прямолинейная сетка" #: src/libslic3r/PrintConfig.cpp:2705 msgid "Interface pattern" -msgstr "" +msgstr "Шаблон связующего слоя поддержки" #: src/libslic3r/PrintConfig.cpp:2707 -msgid "" -"Pattern used to generate support material interface. Default pattern for non-" -"soluble support interface is Rectilinear, while default pattern for soluble " -"support interface is Concentric." -msgstr "" +msgid "Pattern used to generate support material interface. Default pattern for non-soluble support interface is Rectilinear, while default pattern for soluble support interface is Concentric." +msgstr "Шаблон, по которому будет происходить печать связующего слоя поддержки. При выборе по умолчанию, шаблон для нерастворимых поддержек - прямолинейный, для растворимых - концентрический." #: src/libslic3r/PrintConfig.cpp:2721 msgid "Pattern spacing" @@ -13543,67 +11434,43 @@ msgstr "Скорость печати поддержки." #: src/libslic3r/PrintConfig.cpp:2739 msgid "Style" -msgstr "" +msgstr "Стиль" #: src/libslic3r/PrintConfig.cpp:2741 -msgid "" -"Style and shape of the support towers. Projecting the supports into a " -"regular grid will create more stable supports, while snug support towers " -"will save material and reduce object scarring." -msgstr "" +msgid "Style and shape of the support towers. Projecting the supports into a regular grid will create more stable supports, while snug support towers will save material and reduce object scarring." +msgstr "Стиль и форма построения опорных башен поддержки. Стиль «Сетка» создаёт более устойчивые опоры, а стиль «Аккуратный» экономит материал и уменьшает образование царапин на моделях." #: src/libslic3r/PrintConfig.cpp:2748 msgid "Snug" -msgstr "" +msgstr "Аккуратный" #: src/libslic3r/PrintConfig.cpp:2753 msgid "Synchronize with object layers" msgstr "Синхронизация со слоями модели" #: src/libslic3r/PrintConfig.cpp:2755 -msgid "" -"Synchronize support layers with the object print layers. This is useful with " -"multi-material printers, where the extruder switch is expensive." -msgstr "" -"Синхронизирует слои поддержки со слоями печатаемой модели. Это полезно для " -"мультиматериальных принтеров, которые требуют больших затрат на смену одного " -"экструдера на другой." +msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive." +msgstr "Синхронизирует слои поддержки со слоями печатаемой модели. Это полезно для мультиматериальных принтеров, которые требуют больших затрат на смену одного экструдера на другой." #: src/libslic3r/PrintConfig.cpp:2761 msgid "Overhang threshold" msgstr "Угол нависания поддержки" #: src/libslic3r/PrintConfig.cpp:2763 -msgid "" -"Support material will not be generated for overhangs whose slope angle (90° " -"= vertical) is above the given threshold. In other words, this value " -"represent the most horizontal slope (measured from the horizontal plane) " -"that you can print without support material. Set to zero for automatic " -"detection (recommended)." -msgstr "" -"Задаётся угол нависания, при превышении которого будут использоваться " -"поддержки (угол задаётся относительно вертикальной оси). Установите 0 для " -"формирования поддержки в автоматическом режиме." +msgid "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represent the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)." +msgstr "Задаётся угол нависания, при превышении которого будут использоваться поддержки (угол задаётся относительно вертикальной оси). Установите 0 для формирования поддержки в автоматическом режиме." #: src/libslic3r/PrintConfig.cpp:2775 msgid "With sheath around the support" msgstr "Оболочка вокруг поддержки" #: src/libslic3r/PrintConfig.cpp:2777 -msgid "" -"Add a sheath (a single perimeter line) around the base support. This makes " -"the support more reliable, but also more difficult to remove." -msgstr "" -"Добавить оболочку (одну линию периметра) вокруг базовой поддержки. Это " -"делает поддержку более надёжной, но её труднее удалить." +msgid "Add a sheath (a single perimeter line) around the base support. This makes the support more reliable, but also more difficult to remove." +msgstr "Добавить оболочку (одну линию периметра) вокруг базовой поддержки. Это делает поддержку более надёжной, но её труднее удалить." #: src/libslic3r/PrintConfig.cpp:2784 -msgid "" -"Nozzle temperature for layers after the first one. Set this to zero to " -"disable temperature control commands in the output G-code." -msgstr "" -"Температура сопла при печати для слоёв после первого. Установите 0 для " -"отключения команд управления температурой в выходом G-коде." +msgid "Nozzle temperature for layers after the first one. Set this to zero to disable temperature control commands in the output G-code." +msgstr "Температура сопла при печати для слоёв после первого. Установите 0 для отключения команд управления температурой в выходом G-коде." #: src/libslic3r/PrintConfig.cpp:2787 msgid "Nozzle temperature" @@ -13611,76 +11478,47 @@ msgstr "Температура сопла" #: src/libslic3r/PrintConfig.cpp:2793 msgid "Thick bridges" -msgstr "" +msgstr "Толстые мосты" #: src/libslic3r/PrintConfig.cpp:2795 -msgid "" -"If enabled, bridges are more reliable, can bridge longer distances, but may " -"look worse. If disabled, bridges look better but are reliable just for " -"shorter bridged distances." -msgstr "" +msgid "If enabled, bridges are more reliable, can bridge longer distances, but may look worse. If disabled, bridges look better but are reliable just for shorter bridged distances." +msgstr "Если включено, мосты печатаются более надежные и на большие расстояния. Если отключено, мосты выглядят лучше, но они надежны только на коротких расстояниях." #: src/libslic3r/PrintConfig.cpp:2801 msgid "Detect thin walls" msgstr "Обнаружение тонких стенок" #: src/libslic3r/PrintConfig.cpp:2803 -msgid "" -"Detect single-width walls (parts where two extrusions don't fit and we need " -"to collapse them into a single trace)." -msgstr "" -"Данный параметр ищет тонкие стенки (стенки одинарной ширины), которые можно " -"напечатать только в один проход экструдера, и производит нарезку правильно." +msgid "Detect single-width walls (parts where two extrusions don't fit and we need to collapse them into a single trace)." +msgstr "Данный параметр ищет тонкие стенки (стенки одинарной ширины), которые можно напечатать только в один проход экструдера, и производит нарезку правильно." #: src/libslic3r/PrintConfig.cpp:2809 msgid "Threads" msgstr "Потоков" #: src/libslic3r/PrintConfig.cpp:2810 -msgid "" -"Threads are used to parallelize long-running tasks. Optimal threads number " -"is slightly above the number of available cores/processors." -msgstr "" -"Количество потоков для распараллеливания длительных задач. Оптимальное " -"количество потоков несколько превышает количество доступных ядер/процессоров." +msgid "Threads are used to parallelize long-running tasks. Optimal threads number is slightly above the number of available cores/processors." +msgstr "Количество потоков для распараллеливания длительных задач. Оптимальное количество потоков несколько превышает количество доступных ядер/процессоров." #: src/libslic3r/PrintConfig.cpp:2822 msgid "" -"This custom code is inserted before every toolchange. Placeholder variables " -"for all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} " -"and {next_extruder} can be used. When a tool-changing command which changes " -"to the correct extruder is included (such as T{next_extruder}), PrusaSlicer " -"will emit no other such command. It is therefore possible to script custom " -"behaviour both before and after the toolchange." +"This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other " +"such command. It is therefore possible to script custom behaviour both before and after the toolchange." msgstr "" +"Этот пользовательский код вставляется перед каждой сменой инструмента. Вы можете использовать шаблонные переменные для всех настроек PrusaSlicer, а также {toolchange_z}, {previous_extruder} и {next_extruder}. Когда включена команда смены инструмента, которая меняет нужный экструдер (например, T{next_extruder}), PrusaSlicer " +"не будет выдавать других подобных команд. Таким образом, можно создать сценарии пользовательского поведения как до, так и после смены инструмента." #: src/libslic3r/PrintConfig.cpp:2835 msgid "" -"Set this to a non-zero value to set a manual extrusion width for infill for " -"top surfaces. You may want to use thinner extrudates to fill all narrow " -"regions and get a smoother finish. If left zero, default extrusion width " -"will be used if set, otherwise nozzle diameter will be used. If expressed as " -"percentage (for example 90%) it will be computed over layer height." +"Set this to a non-zero value to set a manual extrusion width for infill for top surfaces. You may want to use thinner extrudates to fill all narrow regions and get a smoother finish. If left zero, default extrusion width will be used if set, otherwise nozzle diameter will be used. If expressed as percentage (for example " +"90%) it will be computed over layer height." msgstr "" -"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для " -"заполнения верхней поверхности. Вы можете использовать более тонкие сопла, " -"чтобы заполнить все узкие области и получить более гладкую поверхность. Если " -"оставить 0, будет использоваться \"Ширина экструзии по умолчанию\" - если " -"она задана, в противном случае будет использоваться диаметр сопла. Если " -"задано в процентах, параметр вычисляется относительно высоты слоя." +"Установите значение отличное от 0, чтобы вручную задать ширину экструзии для заполнения верхней поверхности. Вы можете использовать более тонкие сопла, чтобы заполнить все узкие области и получить более гладкую поверхность. Если оставить 0, будет использоваться «Ширина экструзии по умолчанию» - если она задана, в противном " +"случае будет использоваться диаметр сопла. Если задано в процентах, параметр вычисляется относительно высоты слоя." #: src/libslic3r/PrintConfig.cpp:2848 -msgid "" -"Speed for printing top solid layers (it only applies to the uppermost " -"external layers and not to their internal solid layers). You may want to " -"slow down this to get a nicer surface finish. This can be expressed as a " -"percentage (for example: 80%) over the solid infill speed above. Set to zero " -"for auto." -msgstr "" -"Скорость печати верхних сплошных слоёв. Вы можете снизить скорость, чтобы " -"получить более качественную поверхность. Если задано в процентах, параметр " -"вычисляется относительно скорости сплошного заполнения указанной выше. " -"Установите 0 для автонастройки." +msgid "Speed for printing top solid layers (it only applies to the uppermost external layers and not to their internal solid layers). You may want to slow down this to get a nicer surface finish. This can be expressed as a percentage (for example: 80%) over the solid infill speed above. Set to zero for auto." +msgstr "Скорость печати верхних сплошных слоёв. Вы можете снизить скорость, чтобы получить более качественную поверхность. Если задано в процентах, параметр вычисляется относительно скорости сплошного заполнения указанной выше. Установите 0 для автонастройки." #: src/libslic3r/PrintConfig.cpp:2863 msgid "Number of solid layers to generate on top surfaces." @@ -13691,16 +11529,10 @@ msgid "Top solid layers" msgstr "Верхних сплошных слоёв" #: src/libslic3r/PrintConfig.cpp:2872 -msgid "" -"The number of top solid layers is increased above top_solid_layers if " -"necessary to satisfy minimum thickness of top shell. This is useful to " -"prevent pillowing effect when printing with variable layer height." +msgid "The number of top solid layers is increased above top_solid_layers if necessary to satisfy minimum thickness of top shell. This is useful to prevent pillowing effect when printing with variable layer height." msgstr "" -"При необходимости количество верхних сплошных слоёв увеличивается выше " -"значения top_solid_layers (\"Сплошных слоёв сверху\") для удовлетворения " -"минимальной толщины оболочки сверху. Полезно для предотвращения эффекта " -"\"дырявой подушки\" (верхняя поверхность не полностью закрыта или имеет " -"неровности) при печати с переменной высотой слоя." +"При необходимости количество верхних сплошных слоёв увеличивается выше значения top_solid_layers («Сплошных слоёв сверху») для удовлетворения минимальной толщины оболочки сверху. Полезно для предотвращения эффекта «дырявой подушки» (верхняя поверхность не полностью закрыта или имеет неровности) при печати с переменной " +"высотой слоя." #: src/libslic3r/PrintConfig.cpp:2875 msgid "Minimum top shell thickness" @@ -13712,40 +11544,31 @@ msgstr "Скорость перемещения экструдера при по #: src/libslic3r/PrintConfig.cpp:2890 msgid "Z travel" -msgstr "" +msgstr "Скорость перемещений по Z" #: src/libslic3r/PrintConfig.cpp:2891 msgid "" "Speed for movements along the Z axis.\n" -"When set to zero, the value is ignored and regular travel speed is used " -"instead." +"When set to zero, the value is ignored and regular travel speed is used instead." msgstr "" +"Скорость перемещений вдоль оси Z.\n" +"Если установлено 0, то значение игнорируется и вместо него используется обычная скорость перемещений." #: src/libslic3r/PrintConfig.cpp:2899 msgid "Use firmware retraction" msgstr "Использовать ретракт из прошивки" #: src/libslic3r/PrintConfig.cpp:2900 -msgid "" -"This experimental setting uses G10 and G11 commands to have the firmware " -"handle the retraction. This is only supported in recent Marlin." -msgstr "" -"Эта экспериментальная опция использует команды G10 и G11, чтобы прошивка " -"обрабатывала ретракт. Поддерживается только в последних версиях Marlin. " +msgid "This experimental setting uses G10 and G11 commands to have the firmware handle the retraction. This is only supported in recent Marlin." +msgstr "Эта экспериментальная опция использует команды G10 и G11, чтобы прошивка обрабатывала ретракт. Поддерживается только в последних версиях Marlin. " #: src/libslic3r/PrintConfig.cpp:2906 msgid "Use relative E distances" msgstr "Использовать относительные координаты для экструдера (E)" #: src/libslic3r/PrintConfig.cpp:2907 -msgid "" -"If your firmware requires relative E values, check this, otherwise leave it " -"unchecked. Most firmwares use absolute values." -msgstr "" -"Движение экструдера (E) по отношению к предыдущей позиции не в абсолютном " -"выражении, а в относительном. Большинство прошивок используют абсолютные " -"значения при позиционировании. Если вы не знаете - использует ли ваша " -"прошивка эту функцию, то не отмечайте это значение." +msgid "If your firmware requires relative E values, check this, otherwise leave it unchecked. Most firmwares use absolute values." +msgstr "Движение экструдера (E) по отношению к предыдущей позиции не в абсолютном выражении, а в относительном. Большинство прошивок используют абсолютные значения при позиционировании. Если вы не знаете - использует ли ваша прошивка эту функцию, то не отмечайте это значение." #: src/libslic3r/PrintConfig.cpp:2913 msgid "Use volumetric E" @@ -13753,78 +11576,47 @@ msgstr "Использовать объёмные значения для экс #: src/libslic3r/PrintConfig.cpp:2914 msgid "" -"This experimental setting uses outputs the E values in cubic millimeters " -"instead of linear millimeters. If your firmware doesn't already know " -"filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] " -"T0' in your start G-code in order to turn volumetric mode on and use the " -"filament diameter associated to the filament selected in Slic3r. This is " -"only supported in recent Marlin." +"This experimental setting uses outputs the E values in cubic millimeters instead of linear millimeters. If your firmware doesn't already know filament diameter(s), you can put commands like 'M200 D[filament_diameter_0] T0' in your start G-code in order to turn volumetric mode on and use the filament diameter associated to " +"the filament selected in Slic3r. This is only supported in recent Marlin." msgstr "" -"Эта экспериментальная опция использует выходные значения экструдера в " -"кубических миллиметрах вместо линейных миллиметров. Если в вашей прошивке " -"ещё не задан диаметр прутка, вы можете прописать в свой стартовый G-код " -"команды, например такую как 'M200 D [filament_diameter_0] T0', чтобы " -"включить объёмный режим и использовать диаметр прутка указанный в " -"PrusaSlicer. Это функция поддерживается только в последних версиях Marlin." +"Эта экспериментальная опция использует выходные значения экструдера в кубических миллиметрах вместо линейных миллиметров. Если в вашей прошивке ещё не задан диаметр прутка, вы можете прописать в свой стартовый G-код команды, например такую как 'M200 D [filament_diameter_0] T0', чтобы включить объёмный режим и использовать " +"диаметр прутка указанный в PrusaSlicer. Это функция поддерживается только в последних версиях Marlin." #: src/libslic3r/PrintConfig.cpp:2924 msgid "Enable variable layer height feature" msgstr "Включить функцию переменной высоты слоёв" #: src/libslic3r/PrintConfig.cpp:2925 -msgid "" -"Some printers or printer setups may have difficulties printing with a " -"variable layer height. Enabled by default." -msgstr "" -"Некоторые принтеры (или из-за настроек принтера) могут испытывать трудности " -"при печати с функцией переменной высотой слоёв. По умолчанию включено." +msgid "Some printers or printer setups may have difficulties printing with a variable layer height. Enabled by default." +msgstr "Некоторые принтеры (или из-за настроек принтера) могут испытывать трудности при печати с функцией переменной высотой слоёв. По умолчанию включено." #: src/libslic3r/PrintConfig.cpp:2931 msgid "Wipe while retracting" msgstr "Очистка сопла при ретракте" #: src/libslic3r/PrintConfig.cpp:2932 -msgid "" -"This flag will move the nozzle while retracting to minimize the possible " -"blob on leaky extruders." -msgstr "" -"Позволяет соплу совершать разглаживавшее движение во время ретракта, чтобы " -"свести к минимуму возможное образование пупырышек в начале/конце слоя на " -"экструдерах, которые имеют тенденцию к течи." +msgid "This flag will move the nozzle while retracting to minimize the possible blob on leaky extruders." +msgstr "Позволяет соплу совершать разглаживавшее движение во время ретракта, чтобы свести к минимуму возможное образование пупырышек в начале/конце слоя на экструдерах, которые имеют тенденцию к течи." #: src/libslic3r/PrintConfig.cpp:2939 -msgid "" -"Multi material printers may need to prime or purge extruders on tool " -"changes. Extrude the excess material into the wipe tower." -msgstr "" -"Для мультиматериальных принтеров может потребоваться предзарядка и смена " -"инструмента. Избыточный материал будет выдавливаться на черновую башню." +msgid "Multi material printers may need to prime or purge extruders on tool changes. Extrude the excess material into the wipe tower." +msgstr "Для мультиматериальных принтеров может потребоваться предзарядка и смена инструмента. Избыточный материал будет выдавливаться на черновую башню." #: src/libslic3r/PrintConfig.cpp:2945 msgid "Purging volumes - load/unload volumes" msgstr "Очищающие объёмы - загрузка/выгрузка объёмов" #: src/libslic3r/PrintConfig.cpp:2946 -msgid "" -"This vector saves required volumes to change from/to each tool used on the " -"wipe tower. These values are used to simplify creation of the full purging " -"volumes below." -msgstr "" -"Этот параметр задаёт объём материала, который будет выдавлен на черновую " -"башню для прочистки сопла при смене экструдеров/инструментов. Эти значения " -"используются для упрощения создания полноты объёмов очистки указанной ниже." +msgid "This vector saves required volumes to change from/to each tool used on the wipe tower. These values are used to simplify creation of the full purging volumes below." +msgstr "Этот параметр задаёт объём материала, который будет выдавлен на черновую башню для прочистки сопла при смене экструдеров/инструментов. Эти значения используются для упрощения создания полноты объёмов очистки указанной ниже." #: src/libslic3r/PrintConfig.cpp:2952 msgid "Purging volumes - matrix" msgstr "Таблица очищающих объёмов" #: src/libslic3r/PrintConfig.cpp:2953 -msgid "" -"This matrix describes volumes (in cubic milimetres) required to purge the " -"new filament on the wipe tower for any given pair of tools." -msgstr "" -"Эта таблица описывает объёмы (в кубических миллиметрах), необходимые для " -"прочистки нового прутка на черновой башне для любой пары сопел\\экструдеров." +msgid "This matrix describes volumes (in cubic milimetres) required to purge the new filament on the wipe tower for any given pair of tools." +msgstr "Эта таблица описывает объёмы (в кубических миллиметрах), необходимые для прочистки нового прутка на черновой башне для любой пары сопел\\экструдеров." #: src/libslic3r/PrintConfig.cpp:2962 msgid "Position X" @@ -13856,32 +11648,23 @@ msgstr "Угол поворота черновой башни относител #: src/libslic3r/PrintConfig.cpp:2990 src/libslic3r/PrintConfig.cpp:2991 msgid "Wipe tower brim width" -msgstr "" +msgstr "Ширина каймы черновой башни" #: src/libslic3r/PrintConfig.cpp:2999 msgid "Wipe into this object's infill" msgstr "Очистка в заполнение модели" #: src/libslic3r/PrintConfig.cpp:3000 -msgid "" -"Purging after toolchange will be done inside this object's infills. This " -"lowers the amount of waste but may result in longer print time due to " -"additional travel moves." -msgstr "" +msgid "Purging after toolchange will be done inside this object's infills. This lowers the amount of waste but may result in longer print time due to additional travel moves." +msgstr "Очистка после смены инструмента будет производиться внутри заполнений этой модели. Это уменьшает количество отходов, но может привести к увеличению времени печати из-за дополнительных перемещений." #: src/libslic3r/PrintConfig.cpp:3007 msgid "Wipe into this object" msgstr "Очистка в модель" #: src/libslic3r/PrintConfig.cpp:3008 -msgid "" -"Object will be used to purge the nozzle after a toolchange to save material " -"that would otherwise end up in the wipe tower and decrease print time. " -"Colours of the objects will be mixed as a result." -msgstr "" -"Очистка сопла после смены инструмента будет выполняться в модель, чтобы " -"сохранить материал (который иначе попал бы на черновую башню) и сократить " -"время печати. В результате цвета моделей будут смешаны." +msgid "Object will be used to purge the nozzle after a toolchange to save material that would otherwise end up in the wipe tower and decrease print time. Colours of the objects will be mixed as a result." +msgstr "Очистка сопла после смены инструмента будет выполняться в модель, чтобы сохранить материал (который иначе попал бы на черновую башню) и сократить время печати. В результате цвета моделей будут смешаны." #: src/libslic3r/PrintConfig.cpp:3014 msgid "Maximal bridging distance" @@ -13889,38 +11672,23 @@ msgstr "Максимальное длина моста" #: src/libslic3r/PrintConfig.cpp:3015 msgid "Maximal distance between supports on sparse infill sections." -msgstr "" -"Максимальное расстояние между опорами на разряженных участках заполнения." +msgstr "Максимальное расстояние между опорами на разряженных участках заполнения." #: src/libslic3r/PrintConfig.cpp:3021 msgid "XY Size Compensation" msgstr "Коррекция горизонтальных размеров модели" #: src/libslic3r/PrintConfig.cpp:3023 -msgid "" -"The object will be grown/shrunk in the XY plane by the configured value " -"(negative = inwards, positive = outwards). This might be useful for fine-" -"tuning hole sizes." -msgstr "" -"Параметр отвечает за смещение границы контура печатаемой модели в плоскости " -"XY на заданное значение. Отрицательное значение - во внутрь, положительный - " -"наружу. Может быть полезно для точной настройки размеров отверстий при " -"печати шевронных подшипников." +msgid "The object will be grown/shrunk in the XY plane by the configured value (negative = inwards, positive = outwards). This might be useful for fine-tuning hole sizes." +msgstr "Параметр отвечает за смещение границы контура печатаемой модели в плоскости XY на заданное значение. Отрицательное значение - во внутрь, положительный - наружу. Может быть полезно для точной настройки размеров отверстий при печати шевронных подшипников." #: src/libslic3r/PrintConfig.cpp:3031 msgid "Z offset" msgstr "Смещение стола по оси Z" #: src/libslic3r/PrintConfig.cpp:3032 -msgid "" -"This value will be added (or subtracted) from all the Z coordinates in the " -"output G-code. It is used to compensate for bad Z endstop position: for " -"example, if your endstop zero actually leaves the nozzle 0.3mm far from the " -"print bed, set this to -0.3 (or fix your endstop)." -msgstr "" -"Смещение стола по вертикальной оси Z при ошибках работы концевого датчика. " -"Это значение будет прибавлено (или вычтено) из всех Z координат в выходном G-" -"коде." +msgid "This value will be added (or subtracted) from all the Z coordinates in the output G-code. It is used to compensate for bad Z endstop position: for example, if your endstop zero actually leaves the nozzle 0.3mm far from the print bed, set this to -0.3 (or fix your endstop)." +msgstr "Смещение стола по вертикальной оси Z при ошибках работы концевого датчика. Это значение будет прибавлено (или вычтено) из всех Z координат в выходном G-коде." #: src/libslic3r/PrintConfig.cpp:3099 msgid "Display width" @@ -13979,14 +11747,8 @@ msgid "Display orientation" msgstr "Ориентация дисплея" #: src/libslic3r/PrintConfig.cpp:3139 -msgid "" -"Set the actual LCD display orientation inside the SLA printer. Portrait mode " -"will flip the meaning of display width and height parameters and the output " -"images will be rotated by 90 degrees." -msgstr "" -"Установите фактическую ориентацию ЖК-дисплея внутри SLA принтера. Портретный " -"режим перевернёт значения параметров ширины и высоты дисплея, а выходные " -"изображения будут повёрнуты на 90 градусов." +msgid "Set the actual LCD display orientation inside the SLA printer. Portrait mode will flip the meaning of display width and height parameters and the output images will be rotated by 90 degrees." +msgstr "Установите фактическую ориентацию ЖК-дисплея внутри SLA принтера. Портретный режим перевернёт значения параметров ширины и высоты дисплея, а выходные изображения будут повёрнуты на 90 градусов." #: src/libslic3r/PrintConfig.cpp:3145 msgid "Landscape" @@ -14029,76 +11791,59 @@ msgid "" "The percentage of the bed area. \n" "If the print area exceeds the specified value, \n" "then a slow tilt will be used, otherwise - a fast tilt" -msgstr "" -"Процент от площади стола. Если область печати превышает указанное значение, " -"то будет использоваться медленный наклон, в противном случае - быстрый " -"наклон." +msgstr "Процент от площади стола. Если область печати превышает указанное значение, то будет использоваться медленный наклон, в противном случае - быстрый наклон." -#: src/libslic3r/PrintConfig.cpp:3177 src/libslic3r/PrintConfig.cpp:3178 -#: src/libslic3r/PrintConfig.cpp:3179 +#: src/libslic3r/PrintConfig.cpp:3177 src/libslic3r/PrintConfig.cpp:3178 src/libslic3r/PrintConfig.cpp:3179 msgid "Printer scaling correction" msgstr "Корректировка масштабирования" #: src/libslic3r/PrintConfig.cpp:3185 src/libslic3r/PrintConfig.cpp:3187 msgid "Printer scaling correction in X axis" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси X" #: src/libslic3r/PrintConfig.cpp:3186 msgid "Printer scaling X axis correction" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси X" #: src/libslic3r/PrintConfig.cpp:3193 src/libslic3r/PrintConfig.cpp:3195 msgid "Printer scaling correction in Y axis" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси Y" #: src/libslic3r/PrintConfig.cpp:3194 msgid "Printer scaling Y axis correction" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси Y" #: src/libslic3r/PrintConfig.cpp:3201 src/libslic3r/PrintConfig.cpp:3203 msgid "Printer scaling correction in Z axis" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси Z" #: src/libslic3r/PrintConfig.cpp:3202 msgid "Printer scaling Z axis correction" -msgstr "" +msgstr "Корректировка масштабирования принтера по оси Z" #: src/libslic3r/PrintConfig.cpp:3209 src/libslic3r/PrintConfig.cpp:3210 msgid "Printer absolute correction" msgstr "Абсолютная корректировка принтера" #: src/libslic3r/PrintConfig.cpp:3211 -msgid "" -"Will inflate or deflate the sliced 2D polygons according to the sign of the " -"correction." -msgstr "" -"Будет надувать или сдувать нарезанные 2D-полигоны в соответствии со знаком " -"коррекции." +msgid "Will inflate or deflate the sliced 2D polygons according to the sign of the correction." +msgstr "Будет надувать или сдувать нарезанные 2D-полигоны в соответствии со знаком коррекции." #: src/libslic3r/PrintConfig.cpp:3217 msgid "Elephant foot minimum width" -msgstr "Минимальная ширина \"слоновьей ноги\"" +msgstr "Минимальная ширина «слоновьей ноги»" #: src/libslic3r/PrintConfig.cpp:3219 -msgid "" -"Minimum width of features to maintain when doing elephant foot compensation." -msgstr "" -"Минимальная ширина, которую нужно поддерживать для компенсации \"слоновьей " -"ноги\"." +msgid "Minimum width of features to maintain when doing elephant foot compensation." +msgstr "Минимальная ширина, которую нужно поддерживать для компенсации «слоновьей ноги»." #: src/libslic3r/PrintConfig.cpp:3226 src/libslic3r/PrintConfig.cpp:3227 msgid "Printer gamma correction" msgstr "Корректировка гаммы-коррекции" #: src/libslic3r/PrintConfig.cpp:3228 -msgid "" -"This will apply a gamma correction to the rasterized 2D polygons. A gamma " -"value of zero means thresholding with the threshold in the middle. This " -"behaviour eliminates antialiasing without losing holes in polygons." -msgstr "" -"Будет применена гамма-коррекция к растрированным 2D-полигонам. Нулевое " -"значение гаммы означает пороговое значение с порогом посередине. Такое " -"поведение убирает сглаживание без потери отверстий в полигонах." +msgid "This will apply a gamma correction to the rasterized 2D polygons. A gamma value of zero means thresholding with the threshold in the middle. This behaviour eliminates antialiasing without losing holes in polygons." +msgstr "Будет применена гамма-коррекция к растрированным 2D-полигонам. Нулевое значение гаммы означает пороговое значение с порогом посередине. Такое поведение убирает сглаживание без потери отверстий в полигонах." #: src/libslic3r/PrintConfig.cpp:3247 src/libslic3r/PrintConfig.cpp:3248 msgid "SLA material type" @@ -14137,12 +11882,8 @@ msgid "Faded layers" msgstr "Начальных слоёв" #: src/libslic3r/PrintConfig.cpp:3295 -msgid "" -"Number of the layers needed for the exposure time fade from initial exposure " -"time to the exposure time" -msgstr "" -"Количество начальных слоёв, необходимых для изменения времени засветки от " -"\"Время засветки начальных слоёв\" до \"Время засветки основных слоёв\"." +msgid "Number of the layers needed for the exposure time fade from initial exposure time to the exposure time" +msgstr "Количество начальных слоёв, необходимых для изменения времени засветки от «Время засветки начальных слоёв» до «Время засветки основных слоёв»." #: src/libslic3r/PrintConfig.cpp:3302 src/libslic3r/PrintConfig.cpp:3303 msgid "Minimum exposure time" @@ -14174,15 +11915,15 @@ msgstr "Коррекция расширения" #: src/libslic3r/PrintConfig.cpp:3355 src/libslic3r/PrintConfig.cpp:3356 msgid "Correction for expansion in X axis" -msgstr "" +msgstr "Корректировка расширения по оси X" #: src/libslic3r/PrintConfig.cpp:3362 src/libslic3r/PrintConfig.cpp:3363 msgid "Correction for expansion in Y axis" -msgstr "" +msgstr "Корректировка расширения по оси Y" #: src/libslic3r/PrintConfig.cpp:3369 src/libslic3r/PrintConfig.cpp:3370 msgid "Correction for expansion in Z axis" -msgstr "" +msgstr "Корректировка расширения по оси Z" #: src/libslic3r/PrintConfig.cpp:3376 msgid "SLA print material notes" @@ -14190,9 +11931,7 @@ msgstr "Примечание к SLA материалу" #: src/libslic3r/PrintConfig.cpp:3377 msgid "You can put your notes regarding the SLA print material here." -msgstr "" -"Здесь вы можете разместить свои заметки относительно SLA материала для " -"печати." +msgstr "Здесь вы можете разместить свои заметки относительно SLA материала для печати." #: src/libslic3r/PrintConfig.cpp:3389 src/libslic3r/PrintConfig.cpp:3400 msgid "Default SLA material profile" @@ -14228,9 +11967,7 @@ msgstr "Длина носика поддержки" #: src/libslic3r/PrintConfig.cpp:3438 msgid "Width from the back sphere center to the front sphere center" -msgstr "" -"Длина носика поддержки (ширина от центра задней сферы до центра передней " -"сферы)." +msgstr "Длина носика поддержки (ширина от центра задней сферы до центра передней сферы)." #: src/libslic3r/PrintConfig.cpp:3446 msgid "Pillar diameter" @@ -14245,41 +11982,24 @@ msgid "Small pillar diameter percent" msgstr "Диаметр маленьких тел поддержки в процентах" #: src/libslic3r/PrintConfig.cpp:3458 -msgid "" -"The percentage of smaller pillars compared to the normal pillar diameter " -"which are used in problematic areas where a normal pilla cannot fit." -msgstr "" -"Размер тел поддержки меньшего размера в процентах по сравнению с обычным " -"диаметром тел поддержки, которые используются в проблемных областях, где " -"нормальный столбик поддержки не может поместиться." +msgid "The percentage of smaller pillars compared to the normal pillar diameter which are used in problematic areas where a normal pilla cannot fit." +msgstr "Размер тел поддержки меньшего размера в процентах по сравнению с обычным диаметром тел поддержки, которые используются в проблемных областях, где нормальный столбик поддержки не может поместиться." #: src/libslic3r/PrintConfig.cpp:3467 msgid "Max bridges on a pillar" msgstr "Макс. количество мостов на теле поддержки" #: src/libslic3r/PrintConfig.cpp:3469 -msgid "" -"Maximum number of bridges that can be placed on a pillar. Bridges hold " -"support point pinheads and connect to pillars as small branches." -msgstr "" -"Максимальное количество мостов, которые можно разместить на теле поддержки. " -"Мосты удерживают носики поддержки и соединяются с телами поддержки в виде " -"небольших ветвей." +msgid "Maximum number of bridges that can be placed on a pillar. Bridges hold support point pinheads and connect to pillars as small branches." +msgstr "Максимальное количество мостов, которые можно разместить на теле поддержки. Мосты удерживают носики поддержки и соединяются с телами поддержки в виде небольших ветвей." #: src/libslic3r/PrintConfig.cpp:3477 msgid "Pillar connection mode" msgstr "Тип соединения тела поддержки" #: src/libslic3r/PrintConfig.cpp:3478 -msgid "" -"Controls the bridge type between two neighboring pillars. Can be zig-zag, " -"cross (double zig-zag) or dynamic which will automatically switch between " -"the first two depending on the distance of the two pillars." -msgstr "" -"Управляет типом мостов, которые соединяют соседние тела поддержки. Может " -"быть зигзагообразным, перекрёстным (двойной зигзаг) или динамическим, " -"который автоматически переключается между первыми двумя, в зависимости от " -"расстояния между телами поддержки." +msgid "Controls the bridge type between two neighboring pillars. Can be zig-zag, cross (double zig-zag) or dynamic which will automatically switch between the first two depending on the distance of the two pillars." +msgstr "Управляет типом мостов, которые соединяют соседние тела поддержки. Может быть зигзагообразным, перекрёстным (двойной зигзаг) или динамическим, который автоматически переключается между первыми двумя, в зависимости от расстояния между телами поддержки." #: src/libslic3r/PrintConfig.cpp:3486 msgid "Zig-Zag" @@ -14298,12 +12018,8 @@ msgid "Pillar widening factor" msgstr "Коэффициент расширения тела поддержки" #: src/libslic3r/PrintConfig.cpp:3502 -msgid "" -"Merging bridges or pillars into another pillars can increase the radius. " -"Zero means no increase, one means full increase." -msgstr "" -"Слияние мостов или тел поддержки в другие тела поддержки может увеличить их " -"радиус. 0 - отсутствие увеличения, 1 - полное увеличение." +msgid "Merging bridges or pillars into another pillars can increase the radius. Zero means no increase, one means full increase." +msgstr "Слияние мостов или тел поддержки в другие тела поддержки может увеличить их радиус. 0 - отсутствие увеличения, 1 - полное увеличение." #: src/libslic3r/PrintConfig.cpp:3511 msgid "Support base diameter" @@ -14326,14 +12042,8 @@ msgid "Support base safety distance" msgstr "Безопасное расстояние основания поддержки" #: src/libslic3r/PrintConfig.cpp:3533 -msgid "" -"The minimum distance of the pillar base from the model in mm. Makes sense in " -"zero elevation mode where a gap according to this parameter is inserted " -"between the model and the pad." -msgstr "" -"Минимальное расстояние между основанием поддержки и моделью в мм. Имеет " -"смысл в режиме нулевой высоты подъёма, когда между моделью и подложкой " -"вставляется зазор заданный этим параметром." +msgid "The minimum distance of the pillar base from the model in mm. Makes sense in zero elevation mode where a gap according to this parameter is inserted between the model and the pad." +msgstr "Минимальное расстояние между основанием поддержки и моделью в мм. Имеет смысл в режиме нулевой высоты подъёма, когда между моделью и подложкой вставляется зазор заданный этим параметром." #: src/libslic3r/PrintConfig.cpp:3543 msgid "Critical angle" @@ -14356,20 +12066,12 @@ msgid "Max pillar linking distance" msgstr "Максимальное расстояние между телом поддержки" #: src/libslic3r/PrintConfig.cpp:3564 -msgid "" -"The max distance of two pillars to get linked with each other. A zero value " -"will prohibit pillar cascading." -msgstr "" -"Максимальное расстояние между двумя телами поддержки для связи друг с " -"другом. Нулевое значение - запрет на соединение тел поддержки каскадом." +msgid "The max distance of two pillars to get linked with each other. A zero value will prohibit pillar cascading." +msgstr "Максимальное расстояние между двумя телами поддержки для связи друг с другом. Нулевое значение - запрет на соединение тел поддержки каскадом." #: src/libslic3r/PrintConfig.cpp:3574 -msgid "" -"How much the supports should lift up the supported object. If \"Pad around " -"object\" is enabled, this value is ignored." -msgstr "" -"Определяет насколько опоры должны поднимать поддерживаемую модель. Если " -"включёно \"Подложка вокруг модели\", это значение игнорируется." +msgid "How much the supports should lift up the supported object. If \"Pad around object\" is enabled, this value is ignored." +msgstr "Определяет насколько опоры должны поднимать поддерживаемую модель. Если включёно «Подложка вокруг модели», это значение игнорируется." #: src/libslic3r/PrintConfig.cpp:3585 msgid "This is a relative measure of support points density." @@ -14404,16 +12106,8 @@ msgid "Pad wall height" msgstr "Высота стенки подложки" #: src/libslic3r/PrintConfig.cpp:3617 -msgid "" -"Defines the pad cavity depth. Set to zero to disable the cavity. Be careful " -"when enabling this feature, as some resins may produce an extreme suction " -"effect inside the cavity, which makes peeling the print off the vat foil " -"difficult." -msgstr "" -"Определяет глубину полости в подложке. Установите нулевое значение, чтобы не " -"делать полость. Будьте осторожны при включении этой функции, так как " -"некоторые смолы могут создавать чрезмерный эффект всасывания внутри полости, " -"что затрудняет снятие модели." +msgid "Defines the pad cavity depth. Set to zero to disable the cavity. Be careful when enabling this feature, as some resins may produce an extreme suction effect inside the cavity, which makes peeling the print off the vat foil difficult." +msgstr "Определяет глубину полости в подложке. Установите нулевое значение, чтобы не делать полость. Будьте осторожны при включении этой функции, так как некоторые смолы могут создавать чрезмерный эффект всасывания внутри полости, что затрудняет снятие модели." #: src/libslic3r/PrintConfig.cpp:3630 msgid "Pad brim size" @@ -14428,27 +12122,16 @@ msgid "Max merge distance" msgstr "Максимальное расстояние слияния" #: src/libslic3r/PrintConfig.cpp:3643 -msgid "" -"Some objects can get along with a few smaller pads instead of a single big " -"one. This parameter defines how far the center of two smaller pads should " -"be. If theyare closer, they will get merged into one pad." -msgstr "" -"Некоторые модели могут поместиться на нескольких маленьких подложках вместо " -"одной большой. Этот параметр определяет, как далеко должен находиться центр " -"двух меньших подложек. Если они находятся слишком близко, то будут " -"объединены в одну подложку." +msgid "Some objects can get along with a few smaller pads instead of a single big one. This parameter defines how far the center of two smaller pads should be. If theyare closer, they will get merged into one pad." +msgstr "Некоторые модели могут поместиться на нескольких маленьких подложках вместо одной большой. Этот параметр определяет, как далеко должен находиться центр двух меньших подложек. Если они находятся слишком близко, то будут объединены в одну подложку." #: src/libslic3r/PrintConfig.cpp:3663 msgid "Pad wall slope" msgstr "Наклон стенки подложки" #: src/libslic3r/PrintConfig.cpp:3665 -msgid "" -"The slope of the pad wall relative to the bed plane. 90 degrees means " -"straight walls." -msgstr "" -"Наклон стенки подложки относительно плоскости стола. 90 градусов означает " -"прямые стены." +msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls." +msgstr "Наклон стенки подложки относительно плоскости стола. 90 градусов означает прямые стены." #: src/libslic3r/PrintConfig.cpp:3676 msgid "Create pad around object and ignore the support elevation" @@ -14467,35 +12150,24 @@ msgid "Pad object gap" msgstr "Зазор между дном модели и подложкой" #: src/libslic3r/PrintConfig.cpp:3690 -msgid "" -"The gap between the object bottom and the generated pad in zero elevation " -"mode." -msgstr "" -"Зазор между дном модели и сгенерированной подложкой в режиме нулевой высоты " -"подъёма." +msgid "The gap between the object bottom and the generated pad in zero elevation mode." +msgstr "Зазор между дном модели и сгенерированной подложкой в режиме нулевой высоты подъёма." #: src/libslic3r/PrintConfig.cpp:3699 msgid "Pad object connector stride" msgstr "Шаг соединительного элемента подложки модели" #: src/libslic3r/PrintConfig.cpp:3701 -msgid "" -"Distance between two connector sticks which connect the object and the " -"generated pad." -msgstr "" -"Расстояние между двумя соединительными опорами, которые соединяют модель и " -"сгенерированную подложку." +msgid "Distance between two connector sticks which connect the object and the generated pad." +msgstr "Расстояние между двумя соединительными опорами, которые соединяют модель и сгенерированную подложку." #: src/libslic3r/PrintConfig.cpp:3708 msgid "Pad object connector width" msgstr "Ширина соединительного элемента подложки модели" #: src/libslic3r/PrintConfig.cpp:3710 -msgid "" -"Width of the connector sticks which connect the object and the generated pad." -msgstr "" -"Ширина соединительных опор, которые соединяют модель со сгенерированной " -"подложкой." +msgid "Width of the connector sticks which connect the object and the generated pad." +msgstr "Ширина соединительных опор, которые соединяют модель со сгенерированной подложкой." #: src/libslic3r/PrintConfig.cpp:3717 msgid "Pad object connector penetration" @@ -14503,8 +12175,7 @@ msgstr "Глубина проникновения соединительного #: src/libslic3r/PrintConfig.cpp:3720 msgid "How much should the tiny connectors penetrate into the model body." -msgstr "" -"Задаёт как глубоко соединительные элементы должны проникают в тело модели." +msgstr "Задаёт как глубоко соединительные элементы должны проникают в тело модели." #: src/libslic3r/PrintConfig.cpp:3727 msgid "Enable hollowing" @@ -14527,38 +12198,24 @@ msgid "Accuracy" msgstr "Точность" #: src/libslic3r/PrintConfig.cpp:3746 -msgid "" -"Performance vs accuracy of calculation. Lower values may produce unwanted " -"artifacts." +msgid "Performance vs accuracy of calculation. Lower values may produce unwanted artifacts." msgstr "" "Быстродействие расчёта против точности расчёта. \n" "Низкие значения этого параметра могут привести к нежелательным артефактам." #: src/libslic3r/PrintConfig.cpp:3756 -msgid "" -"Hollowing is done in two steps: first, an imaginary interior is calculated " -"deeper (offset plus the closing distance) in the object and then it's " -"inflated back to the specified offset. A greater closing distance makes the " -"interior more rounded. At zero, the interior will resemble the exterior the " -"most." +msgid "Hollowing is done in two steps: first, an imaginary interior is calculated deeper (offset plus the closing distance) in the object and then it's inflated back to the specified offset. A greater closing distance makes the interior more rounded. At zero, the interior will resemble the exterior the most." msgstr "" -"Полость в модели формуется в два этапа: сначала воображаемое внутреннее " -"пространство просчитывает глубину в объекте (смещение, плюс расстояние " -"смыкания), а затем раздувается обратно до указанного смещения. Большое " -"значение расстояния сшивки делает внутреннее пространство более округлым. " -"При нулевом значении внутреннее пространство будет больше всего напоминать " -"наружную сторону модели." +"Полость в модели формуется в два этапа: сначала воображаемое внутреннее пространство просчитывает глубину в объекте (смещение, плюс расстояние смыкания), а затем раздувается обратно до указанного смещения. Большое значение расстояния сшивки делает внутреннее пространство более округлым. При нулевом значении внутреннее " +"пространство будет больше всего напоминать наружную сторону модели." #: src/libslic3r/PrintConfig.cpp:3768 msgid "Print speed" -msgstr "" +msgstr "Скорость печати" #: src/libslic3r/PrintConfig.cpp:3770 -msgid "" -"A slower printing profile might be necessary when using materials with " -"higher viscosity or with some hollowed parts. It slows down the tilt " -"movement and adds a delay before exposure." -msgstr "" +msgid "A slower printing profile might be necessary when using materials with higher viscosity or with some hollowed parts. It slows down the tilt movement and adds a delay before exposure." +msgstr "Более медленный профиль печати может потребоваться при использовании материалов с повышенной вязкостью или для некоторых полых деталей. Это замедляет наклон ванночки и добавляет задержку перед засветкой." #: src/libslic3r/PrintConfig.cpp:4232 msgid "Export OBJ" @@ -14602,9 +12259,7 @@ msgstr "Экспортировать модель(и) в формат STL." #: src/libslic3r/PrintConfig.cpp:4266 msgid "Slice the model and export toolpaths as G-code." -msgstr "" -"Нарезать модель и экспортировать траекторию движения инструмента в G-код " -"файл." +msgstr "Нарезать модель и экспортировать траекторию движения инструмента в G-код файл." #: src/libslic3r/PrintConfig.cpp:4271 msgid "G-code viewer" @@ -14619,12 +12274,8 @@ msgid "Slice" msgstr "Нарезать" #: src/libslic3r/PrintConfig.cpp:4278 -msgid "" -"Slice the model as FFF or SLA based on the printer_technology configuration " -"value." -msgstr "" -"Нарезает модель в зависимости от типа печати (FFF или SLA) на основе " -"значения конфигурации printer_technology." +msgid "Slice the model as FFF or SLA based on the printer_technology configuration value." +msgstr "Нарезает модель в зависимости от типа печати (FFF или SLA) на основе значения конфигурации printer_technology." #: src/libslic3r/PrintConfig.cpp:4283 msgid "Help" @@ -14691,22 +12342,16 @@ msgid "Don't arrange" msgstr "Не расставлять" #: src/libslic3r/PrintConfig.cpp:4348 -msgid "" -"Do not rearrange the given models before merging and keep their original XY " -"coordinates." -msgstr "" -"Не переставлять данные модели перед объединением и сохранять их исходные XY " -"координаты." +msgid "Do not rearrange the given models before merging and keep their original XY coordinates." +msgstr "Не переставлять данные модели перед объединением и сохранять их исходные XY координаты." #: src/libslic3r/PrintConfig.cpp:4351 msgid "Ensure on bed" -msgstr "" +msgstr "Обеспечивать размещение на столе" #: src/libslic3r/PrintConfig.cpp:4352 -msgid "" -"Lift the object above the bed when it is partially below. Enabled by " -"default, use --no-ensure-on-bed to disable." -msgstr "" +msgid "Lift the object above the bed when it is partially below. Enabled by default, use --no-ensure-on-bed to disable." +msgstr "Поднимает модель над столом, когда она частично находится внизу. Включено по умолчанию. Для отключения используйте --no-ensure-on-bed to disable." #: src/libslic3r/PrintConfig.cpp:4356 msgid "Duplicate" @@ -14725,21 +12370,12 @@ msgid "Multiply copies by creating a grid." msgstr "Увеличить количество копий путём создания сетки." #: src/libslic3r/PrintConfig.cpp:4366 -msgid "" -"Arrange the supplied models in a plate and merge them in a single model in " -"order to perform actions once." -msgstr "" -"Расставьте представленные модели на столе и объединить их в одну модель, " -"чтобы выполнить действия один раз." +msgid "Arrange the supplied models in a plate and merge them in a single model in order to perform actions once." +msgstr "Расставьте представленные модели на столе и объединить их в одну модель, чтобы выполнить действия один раз." #: src/libslic3r/PrintConfig.cpp:4371 -msgid "" -"Try to repair any non-manifold meshes (this option is implicitly added " -"whenever we need to slice the model to perform the requested action)." -msgstr "" -"Попробуйте отремонтировать любые нецелостные сетки (эта опция добавляется " -"всякий раз, когда нужно нарезать модель для выполнения запрошенного " -"действия)." +msgid "Try to repair any non-manifold meshes (this option is implicitly added whenever we need to slice the model to perform the requested action)." +msgstr "Попробуйте отремонтировать любые нецелостные сетки (эта опция добавляется всякий раз, когда нужно нарезать модель для выполнения запрошенного действия)." #: src/libslic3r/PrintConfig.cpp:4375 msgid "Rotation angle around the Z axis in degrees." @@ -14766,12 +12402,8 @@ msgid "Scaling factor or percentage." msgstr "Коэффициент масштабирования или процент." #: src/libslic3r/PrintConfig.cpp:4395 -msgid "" -"Detect unconnected parts in the given model(s) and split them into separate " -"objects." -msgstr "" -"Обнаружение несвязанных частей в выбранных моделях и разделение их на " -"отдельные объекты." +msgid "Detect unconnected parts in the given model(s) and split them into separate objects." +msgstr "Обнаружение несвязанных частей в выбранных моделях и разделение их на отдельные объекты." #: src/libslic3r/PrintConfig.cpp:4398 msgid "Scale to Fit" @@ -14787,90 +12419,59 @@ msgstr "Игнорировать несуществующие конфигура #: src/libslic3r/PrintConfig.cpp:4409 msgid "Do not fail if a file supplied to --load does not exist." -msgstr "" -"Не терпеть неудачу, если файла, предоставленного для --load, не существует." +msgstr "Не терпеть неудачу, если файла, предоставленного для --load, не существует." #: src/libslic3r/PrintConfig.cpp:4412 -msgid "" -"Forward-compatibility rule when loading configurations from config files and " -"project files (3MF, AMF)." -msgstr "" +msgid "Forward-compatibility rule when loading configurations from config files and project files (3MF, AMF)." +msgstr "Правило прямой совместимости при загрузке конфигураций из файлов конфигурации и файлов проекта (3MF, AMF)." #: src/libslic3r/PrintConfig.cpp:4413 -msgid "" -"This version of PrusaSlicer may not understand configurations produced by " -"the newest PrusaSlicer versions. For example, newer PrusaSlicer may extend " -"the list of supported firmware flavors. One may decide to bail out or to " -"substitute an unknown value with a default silently or verbosely." -msgstr "" +msgid "This version of PrusaSlicer may not understand configurations produced by the newest PrusaSlicer versions. For example, newer PrusaSlicer may extend the list of supported firmware flavors. One may decide to bail out or to substitute an unknown value with a default silently or verbosely." +msgstr "Эта версия PrusaSlicer может не понимать конфигурации, созданные новейшими версиями PrusaSlicer. Например, в более новой версии программы, список поддерживаемых версий прошивки может быть шире. Можно отменить или заменить неизвестное значение значением по умолчанию автоматически или путем их полной замены." #: src/libslic3r/PrintConfig.cpp:4420 msgid "Bail out on unknown configuration values" -msgstr "" +msgstr "Отмена неизвестных значений конфигурации" #: src/libslic3r/PrintConfig.cpp:4421 -msgid "" -"Enable reading unknown configuration values by verbosely substituting them " -"with defaults." -msgstr "" +msgid "Enable reading unknown configuration values by verbosely substituting them with defaults." +msgstr "Позволяет считывать неизвестные значения конфигурации путем их полной замены значениями по умолчанию." #: src/libslic3r/PrintConfig.cpp:4422 -msgid "" -"Enable reading unknown configuration values by silently substituting them " -"with defaults." -msgstr "" +msgid "Enable reading unknown configuration values by silently substituting them with defaults." +msgstr "Позволяет считывать неизвестные значения конфигурации, автоматически заменяя их значениями по умолчанию." #: src/libslic3r/PrintConfig.cpp:4426 msgid "Load config file" msgstr "Загрузить конфигурацию" #: src/libslic3r/PrintConfig.cpp:4427 -msgid "" -"Load configuration from the specified file. It can be used more than once to " -"load options from multiple files." -msgstr "" -"Загрузить конфигурацию из указанного файла. Его можно использовать более " -"одного раза для загрузки параметров из нескольких файлов." +msgid "Load configuration from the specified file. It can be used more than once to load options from multiple files." +msgstr "Загрузить конфигурацию из указанного файла. Его можно использовать более одного раза для загрузки параметров из нескольких файлов." #: src/libslic3r/PrintConfig.cpp:4430 msgid "Output File" msgstr "Выходной файл" #: src/libslic3r/PrintConfig.cpp:4431 -msgid "" -"The file where the output will be written (if not specified, it will be " -"based on the input file)." -msgstr "" -"Файл, в который будут записываться выходные данные (если он не указан, то " -"будет основан на входном файле)." +msgid "The file where the output will be written (if not specified, it will be based on the input file)." +msgstr "Файл, в который будут записываться выходные данные (если он не указан, то будет основан на входном файле)." #: src/libslic3r/PrintConfig.cpp:4435 msgid "Single instance mode" msgstr "Одни экземпляр программы" #: src/libslic3r/PrintConfig.cpp:4436 -msgid "" -"If enabled, the command line arguments are sent to an existing instance of " -"GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides " -"the \"single_instance\" configuration value from application preferences." -msgstr "" -"Если включено, аргументы командной строки посылаются в существующий " -"экземпляр GUI PrusaSlicer, либо активируется существующее окно PrusaSlicer. " -"Переопределяет значение конфигурации \"single_instance\" из настроек " -"приложения." +msgid "If enabled, the command line arguments are sent to an existing instance of GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides the \"single_instance\" configuration value from application preferences." +msgstr "Если включено, аргументы командной строки посылаются в существующий экземпляр GUI PrusaSlicer, либо активируется существующее окно PrusaSlicer. Переопределяет значение конфигурации \"single_instance\" из настроек приложения." #: src/libslic3r/PrintConfig.cpp:4447 msgid "Data directory" msgstr "Папка конфигурации пользователя" #: src/libslic3r/PrintConfig.cpp:4448 -msgid "" -"Load and store settings at the given directory. This is useful for " -"maintaining different profiles or including configurations from a network " -"storage." -msgstr "" -"Загрузите и сохраните настройки в данном каталоге. Это полезно для " -"сохранения различных профилей или конфигураций из сетевого хранилища." +msgid "Load and store settings at the given directory. This is useful for maintaining different profiles or including configurations from a network storage." +msgstr "Загрузите и сохраните настройки в данном каталоге. Это полезно для сохранения различных профилей или конфигураций из сетевого хранилища." #: src/libslic3r/PrintConfig.cpp:4451 msgid "Logging level" @@ -14878,27 +12479,20 @@ msgstr "Уровень ведения журнала" #: src/libslic3r/PrintConfig.cpp:4452 msgid "" -"Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" -"trace\n" +"Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:trace\n" "For example. loglevel=2 logs fatal, error and warning level messages." msgstr "" "Задаёт параметр чувствительности записи событий в журнал. \n" -"0: Неустранимая ошибка, 1: Ошибка, 2: Предупреждение, 3: Информация, 4: " -"Отладка, 5: Трассировка\n" -"Например, loglevel=2 регистрирует неустранимые ошибки, ошибки и " -"предупреждения." +"0: Неустранимая ошибка, 1: Ошибка, 2: Предупреждение, 3: Информация, 4: Отладка, 5: Трассировка\n" +"Например, loglevel=2 регистрирует неустранимые ошибки, ошибки и предупреждения." #: src/libslic3r/PrintConfig.cpp:4458 msgid "Render with a software renderer" msgstr "Визуализация с помощью программного рендеринга" #: src/libslic3r/PrintConfig.cpp:4459 -msgid "" -"Render with a software renderer. The bundled MESA software renderer is " -"loaded instead of the default OpenGL driver." -msgstr "" -"Вместо стандартного драйвера OpenGL будет использоваться программный " -"рендеринг MESA." +msgid "Render with a software renderer. The bundled MESA software renderer is loaded instead of the default OpenGL driver." +msgstr "Вместо стандартного драйвера OpenGL будет использоваться программный рендеринг MESA." #: src/libslic3r/Zipper.cpp:27 msgid "Error with zip archive" @@ -14919,880 +12513,330 @@ msgstr "Генерация поддержек" #: resources/data/hints.ini: [hint:Fuzzy skin] msgid "" "Fuzzy skin\n" -"Did you know that you can create rough fibre-like texture on the sides of " -"your models using theFuzzy skinfeature? You can also use modifiers to " -"apply fuzzy-skin only to a portion of your model." +"Did you know that you can create rough fibre-like texture on the sides of your models using theFuzzy skinfeature? You can also use modifiers to apply fuzzy-skin only to a portion of your model." msgstr "" +"Нечётная оболочка\n" +"А вы знаете, что поверхность модели можно сделать текстурированной используя функцию Нечётная оболочка? Используя модификаторы также можно применить эту функцию на части моделей." #: resources/data/hints.ini: [hint:Shapes gallery] msgid "" "Shapes gallery\n" -"Did you know that PrusaSlicer has a Shapes Gallery? You can use the included " -"models as modifiers, negative volumes or as printable objects. Right-click " -"the platter and selectAdd Shape - Gallery." +"Did you know that PrusaSlicer has a Shapes Gallery? You can use the included models as modifiers, negative volumes or as printable objects. Right-click the platter and selectAdd Shape - Gallery." msgstr "" +"Библиотека фигур\n" +"А вы знали, что в PrusaSlicer имеется библиотека фигур? Вы можете использовать их в качестве модификаторов, негативных объёмов (вычитания) или в качестве объектов для печати. Нажмите правую кнопку мыши и выберитеДобавить фигуру - Библиотека." #: resources/data/hints.ini: [hint:Arrange settings] msgid "" "Arrange settings\n" -"Did you know that you can right-click theArrange iconto adjust the " -"size of the gap between objects and to allow automatic rotations?" +"Did you know that you can right-click theArrange iconto adjust the size of the gap between objects and to allow automatic rotations?" msgstr "" +"Настройки авторасстановки\n" +"Знаете ли вы, что щёлкнув правой кнопкой на значокавторасстановка, вы можете настроить расстояние между моделями и разрешить автоматическое вращение." #: resources/data/hints.ini: [hint:Negative volume] msgid "" "Negative volume\n" -"Did you know that you can subtract one mesh from another using the Negative " -"volume modifier? That way you can, for example, create easily resizable " -"holes directly in PrusaSlicer. Read more in the documentation. (Requires " -"Advanced or Expert mode.)" +"Did you know that you can subtract one mesh from another using the Negative volume modifier? That way you can, for example, create easily resizable holes directly in PrusaSlicer. Read more in the documentation. (Requires Advanced or Expert mode.)" msgstr "" +"Отрицательный объём\n" +"Знаете ли вы, что можно вычесть одну полигональную сетку из другой, используя модификатор отрицательного объёма? Так, например, вы можете легко создавать отверстия сложной формы прямо в PrusaSlicer (в режиме интерфейса расширенный или продвинутый). Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Simplify mesh] msgid "" "Simplify mesh\n" -"Did you know that you can reduce the number of triangles in a mesh using the " -"Simplify mesh feature? Right-click the model and select Simplify model. Read " -"more in the documentation." +"Did you know that you can reduce the number of triangles in a mesh using the Simplify mesh feature? Right-click the model and select Simplify model. Read more in the documentation." msgstr "" +"Упростить сетку\n" +"Знаете ли вы, что можно уменьшить количество треугольников в полигональной сетке, используя функцию упрощения сетки? Щелкните правой кнопкой мыши на модели и выберите Упростить модель. Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Reload from disk] msgid "" "Reload from disk\n" -"Did you know that if you created a newer version of your model, you can " -"simply reload it in PrusaSlicer? Right-click the model in the 3D view and " -"choose Reload from disk. Read more in the documentation." +"Did you know that if you created a newer version of your model, you can simply reload it in PrusaSlicer? Right-click the model in the 3D view and choose Reload from disk. Read more in the documentation." msgstr "" +"Перезагрузить с диска\n" +"Знаете ли вы, что если вы создали новую версию своей модели, вы можете просто перезагрузить ее в PrusaSlicer? Щелкните правой кнопкой мыши на модели в окне 3D просмотра и выберите Перезагрузить с диска. Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Hiding sidebar] msgid "" "Hiding sidebar\n" -"Did you know that you can hide the right sidebar using the shortcut Shift" -"+Tab? You can also enable the icon for this from thePreferences." +"Did you know that you can hide the right sidebar using the shortcut Shift+Tab? You can also enable the icon for this from thePreferences." msgstr "" +"Свернуть боковую панель\n" +"Знаете ли вы, что правую боковую панель можно скрыть с помощью сочетания клавиш Shift+Tab? Вы также можете включить отображение соответствующего значка внастройках приложения." #: resources/data/hints.ini: [hint:Perspective camera] msgid "" "Perspective camera\n" -"Did you know that you can use the K key to quickly switch between an " -"orthographic and perspective camera?" +"Did you know that you can use the K key to quickly switch between an orthographic and perspective camera?" msgstr "" +"Вид в перспективе\n" +"Знаете ли вы, что с помощью клавиши K можно быстро переключаться между ортогональным видом и видом в перспективе." #: resources/data/hints.ini: [hint:Camera Views] msgid "" "Camera Views\n" -"Did you know that you can use the number keys 0-6 to quickly switch " -"between predefined camera angles?" +"Did you know that you can use the number keys 0-6 to quickly switch between predefined camera angles?" msgstr "" +"Позиция камеры\n" +"Знаете ли вы, что с помощью цифровых клавиш 0-6 можно быстро переключаться между стандартными предварительно заданными видами?" #: resources/data/hints.ini: [hint:Place on face] msgid "" "Place on face\n" -"Did you know that you can quickly orient a model so that one of its faces " -"sits on the print bed? Select thePlace on facefunction or press the " -"F key." +"Did you know that you can quickly orient a model so that one of its faces sits on the print bed? Select thePlace on facefunction or press the F key." msgstr "" +"Поверхностью на стол\n" +"Знаете ли вы, что можно быстро сориентировать модель так, чтобы одна из её граней лежала на столе? Используйте функциюПоверхностью на столили нажмите клавишу F." #: resources/data/hints.ini: [hint:Set number of instances] msgid "" "Set number of instances\n" -"Did you know that you can right-click a model and set an exact number of " -"instances instead of copy-pasting it several times?" +"Did you know that you can right-click a model and set an exact number of instances instead of copy-pasting it several times?" msgstr "" +"Задание количество копий\n" +"Знаете ли вы, что щелкнув правой кнопкой мыши на модели можно установить точное количество копий модели вместо того, чтобы копировать и вставлять её несколько раз?" #: resources/data/hints.ini: [hint:Combine infill] msgid "" "Combine infill\n" -"Did you know that you can print the infill with a higher layer height " -"compared to perimeters to save print time using the settingCombine infill " -"every." +"Did you know that you can print the infill with a higher layer height compared to perimeters to save print time using the settingCombine infill every." msgstr "" +"Объединять заполнение каждые n слой\n" +"Знаете ли вы, что для экономии времени печати можно напечатать заполнение с большей высотой слоя по сравнению с периметрами? Используйте для этого настройкуОбъединять заполнение каждые." #: resources/data/hints.ini: [hint:Variable layer height] msgid "" "Variable layer height\n" -"Did you know that you can print different regions of your model with a " -"different layer height and smooth the transitions between them? Try " -"theVariable layer height tool.(Not available for SLA printers.)" +"Did you know that you can print different regions of your model with a different layer height and smooth the transitions between them? Try theVariable layer height tool.(Not available for SLA printers.)" msgstr "" +"Переменная высота слоёв\n" +"Знаете ли вы, что можно печатать разные области вашей модели с разной высотой слоя и сглаживать переходы между ними? Используйте для этогоПеременная высота слоёв.(недоступно для SLA принтеров)." #: resources/data/hints.ini: [hint:Undo/redo history] msgid "" "Undo/redo history\n" -"Did you know that you can right-click theundo/redo arrowsto see the " -"history of changes and to undo or redo several actions at once?" +"Did you know that you can right-click theundo/redo arrowsto see the history of changes and to undo or redo several actions at once?" msgstr "" +"История отмен/повторов\n" +"Знаете ли вы, что щелкнув правой кнопкой мыши настрелки отмены/повтора, можно просмотреть историю изменений и отменить или повторить несколько действий?" #: resources/data/hints.ini: [hint:Different layer height for each model] msgid "" "Different layer height for each model\n" -"Did you know that you can print each model on the plater with a different " -"layer height? Right-click the model in the 3D view, choose Layers and " -"Perimeters and adjust the values in the right panel. Read more in the " -"documentation." +"Did you know that you can print each model on the plater with a different layer height? Right-click the model in the 3D view, choose Layers and Perimeters and adjust the values in the right panel. Read more in the documentation." msgstr "" +"Разная высота слоя для каждой модели\n" +"Знаете ли вы, что каждую модель можно напечатать с разной высотой слоя? Щелкните правой кнопкой мыши на модели в окне 3D просмотра, выберите «Слои и периметры» и настройте значения на правой панели. Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Solid infill threshold area] msgid "" "Solid infill threshold area\n" -"Did you know that you can make parts of your model with a small cross-" -"section be filled with solid infill automatically? Set theSolid infill " -"threshold area.(Expert mode only.)" +"Did you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)" msgstr "" +"Заполнение площади, меньше указанной\n" +"Знаете ли вы, что части модели с небольшим поперечным сечением можно автоматически заполнять сплошным заполнением? Установите необходимое значение вЗаполнение площади меньше указанной.(только в режиме продвинутый)." #: resources/data/hints.ini: [hint:Search functionality] msgid "" "Search functionality\n" -"Did you know that you use theSearchtool to quickly find a specific " -"PrusaSlicer setting? Or use the familiar shortcut Ctrl+F." +"Did you know that you use theSearchtool to quickly find a specific PrusaSlicer setting? Or use the familiar shortcut Ctrl+F." msgstr "" +"Функция поиска\n" +"Знаете ли вы, что используя инструментПоискможно быстро найти конкретную настройку PrusaSlicer? Также можно воспользоваться стандартным сочетанием клавиш Ctrl + F." #: resources/data/hints.ini: [hint:Box selection] msgid "" "Box selection\n" -"Did you know that you can do a box selection with Shift+Mouse drag? You can " -"also box-deselect objects with Alt+Mouse drag." +"Did you know that you can do a box selection with Shift+Mouse drag? You can also box-deselect objects with Alt+Mouse drag." msgstr "" +"Выделение прямоугольником\n" +"Знаете ли вы, что используя Shift + выделение мышью, можно выделять объекты с помощью прямоугольника? Для удаления объектов из выбранного используйте Alt + выделение мышью." -#: resources/data/hints.ini: [hint:Zoom on selected objects or all if none -#: selected] +#: resources/data/hints.ini: [hint:Zoom on selected objects or all if none selected] msgid "" "Zoom on selected objects or on all objects if none selected\n" -"Did you know that you can zoom in on selected objects by pressing the Z key? If none are selected, the camera will zoom on all objects in the " -"scene." +"Did you know that you can zoom in on selected objects by pressing the Z key? If none are selected, the camera will zoom on all objects in the scene." msgstr "" +"Приближение камеры к выбранной модели или всем моделям в сцене - если ничего не выбрано\n" +"Знали ли вы, что можно приблизить камеру к выбранным моделям, нажав клавишу Z? Если ничего не выбрано, произойдёт приближение по отношению ко всем объектам в сцене." #: resources/data/hints.ini: [hint:Printable toggle] msgid "" "Printable toggle\n" -"Did you know that you can disable the G-code generation for the selected " -"model without having to move or delete it? Toggle the Printable property of " -"a model from the Right-click context menu." +"Did you know that you can disable the G-code generation for the selected model without having to move or delete it? Toggle the Printable property of a model from the Right-click context menu." msgstr "" +"Переключатель «Для печати»\n" +"Знаете ли вы, что можно отключить генерацию G-кода для выбранной модели, не перемещая или не удаляя её? Используйте для этого переключатель свойства модели «Для печати» из контекстного меню, вызываемого правой кнопкой мыши." #: resources/data/hints.ini: [hint:Mirror] msgid "" "Mirror\n" -"Did you know that you can mirror the selected model to create a reversed " -"version of it? Right-click the model, select Mirror and pick the mirror axis." +"Did you know that you can mirror the selected model to create a reversed version of it? Right-click the model, select Mirror and pick the mirror axis." msgstr "" +"Отразить\n" +"Знаете ли вы, что можно зеркально отразить выбранную модель, чтобы создать ее перевернутую версию? Щелкните на модель правой кнопкой мыши, выберите «Отразить» и укажите ось отражения." -#: resources/data/hints.ini: [hint:PageUp / PageDown quick rotation by 45 -#: degrees] +#: resources/data/hints.ini: [hint:PageUp / PageDown quick rotation by 45 degrees] msgid "" "PageUp / PageDown quick rotation by 45 degrees\n" -"Did you know that you can quickly rotate selected models by 45 degrees " -"around the Z-axis clockwise or counter-clockwise by pressing Page Up " -"or Page Down respectively?" +"Did you know that you can quickly rotate selected models by 45 degrees around the Z-axis clockwise or counter-clockwise by pressing Page Up or Page Down respectively?" msgstr "" +"Быстрый поворот на 45 градусов\\n\n" +"Знали ли вы, что что можно быстро повернуть выбранные модели на 45 градусов вокруг оси Z по часовой стрелке или против часовой стрелки, нажав Page Up или Page Down соответственно?" #: resources/data/hints.ini: [hint:Load config from G-code] msgid "" "Load config from G-code\n" -"Did you know that you can use File-Import-Import Config to load print, " -"filament and printer profiles from an existing G-code file? Similarly, you " -"can use File-Import-Import SL1 / SL1S archive, which also lets you " -"reconstruct 3D models from the voxel data." +"Did you know that you can use File-Import-Import Config to load print, filament and printer profiles from an existing G-code file? Similarly, you can use File-Import-Import SL1 / SL1S archive, which also lets you reconstruct 3D models from the voxel data." msgstr "" +"Загрузка конфигурации из файла G-кода\n" +"Знаете ли вы, что с помощью команд Импорт можно загрузить профили печати, пластиковой нити и принтера из существующего файла G-кода? Точно так же можно импортировать SL1 архив, который также позволяет вам реконструировать 3D-модели из воксельных данных." #: resources/data/hints.ini: [hint:Ironing] msgid "" "Ironing\n" -"Did you know that you can smooth top surfaces of prints using Ironing? The " -"nozzle will run a special second infill phase at the same layer to fill in " -"holes and flatten any lifted plastic. Read more in the documentation. " -"(Requires Advanced or Expert mode.)" +"Did you know that you can smooth top surfaces of prints using Ironing? The nozzle will run a special second infill phase at the same layer to fill in holes and flatten any lifted plastic. Read more in the documentation. (Requires Advanced or Expert mode.)" msgstr "" +"Разглаживание\n" +"Знаете ли вы, что с помощью разглаживания можно сгладить верхнюю поверхность печатаемой модели? Сопло выполнит специальную вторую фазу заполнения на том же слое, чтобы заполнить отверстия и сгладить выступающие части пластика (в режиме интерфейса расширенный или продвинутый). Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Paint-on supports] msgid "" "Paint-on supports\n" -"Did you know that you can paint directly on the object and select areas, " -"where supports should be enforced or blocked? Try thePaint-on supportsfeature. (Requires Advanced or Expert mode.)" +"Did you know that you can paint directly on the object and select areas, where supports should be enforced or blocked? Try thePaint-on supportsfeature. (Requires Advanced or Expert mode.)" msgstr "" +"Рисование поддержек\n" +"Знаете ли вы, что можно рисовать прямо на модели где будет размещаться принудительная поддержка, а где поддержка будет заблокирована? Используйте для этого функциюРисование поддержек(в режиме интерфейса расширенный или продвинутый)." #: resources/data/hints.ini: [hint:Paint-on seam] msgid "" "Paint-on seam\n" -"Did you know that you can paint directly on the object and select where to " -"place the start/endpoint of each perimeter loop? Try theSeam paintingfeature. (Requires Advanced or Expert mode.)" +"Did you know that you can paint directly on the object and select where to place the start/endpoint of each perimeter loop? Try theSeam paintingfeature. (Requires Advanced or Expert mode.)" msgstr "" +"Рисование шва\n" +"Знаете ли вы, что можно рисовать прямо на модели и выбирать, где разместить начальную/конечную точку печати на каждом слое. Используйте для этого функциюРисование шва(в режиме интерфейса расширенный или продвинутый)." #: resources/data/hints.ini: [hint:Insert Pause] msgid "" "Insert Pause\n" -"Did you know that you can schedule the print to pause at a specific layer? " -"Right-click the layer slider in the Preview and select Add pause print " -"(M601). This can be used to insert magnets, weights or nuts into your " -"prints. Read more in the documentation." +"Did you know that you can schedule the print to pause at a specific layer? Right-click the layer slider in the Preview and select Add pause print (M601). This can be used to insert magnets, weights or nuts into your prints. Read more in the documentation." msgstr "" +"Паузы печати\n" +"Знаете ли вы, что можно запланировать паузу печати на определенном слое? Щёлкните правой кнопкой мыши на ползунке слоя в окне предпросмотра нарезки и выберите «Добавить маркер паузы печати (M601)». Эту функцию можно использовать для вставки в отпечатки магнитов, грузов или гаек. Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Insert Custom G-code] msgid "" "Insert Custom G-code\n" -"Did you know that you can insert a custom G-code at a specific layer? Left-" -"click the layer in the Preview, Right-click the plus icon and select Add " -"custom G-code. With this function you can, for example, create a temperature " -"tower. Read more in the documentation." +"Did you know that you can insert a custom G-code at a specific layer? Left-click the layer in the Preview, Right-click the plus icon and select Add custom G-code. With this function you can, for example, create a temperature tower. Read more in the documentation." msgstr "" +"Пользовательский G-код\n" +"Знаете ли вы, что можно вставить пользовательский G-код на определенном слое? Щелкните правой кнопкой мыши на слой в окне предпросмотра нарезки и выберите «Добавить маркер пользовательского G-кода». С помощью этой функции можно, например, создать температурную башню. Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Configuration snapshots] msgid "" "Configuration snapshots\n" -"Did you know that roll back to a complete backup of all system and user " -"profiles? You can view and move back and forth between snapshots using the " -"Configuration - Configuration snapshots menu." +"Did you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu." msgstr "" +"Резервные копии конфигурации (снапшот)\n" +"Знаете ли вы, что возможен откат всех системных и пользовательских профилей из полной резервной копии? Вы можете просматривать и перемещаться между снимками состояния с помощью меню «Настройки - Резервные копии конфигурации (снапшот)»." #: resources/data/hints.ini: [hint:Minimum shell thickness] msgid "" "Minimum shell thickness\n" -"Did you know that instead of the number of top and bottom layers, you can " -"define theMinimum shell thicknessin millimeters? This feature is " -"especially useful when using the variable layer height function." +"Did you know that instead of the number of top and bottom layers, you can define theMinimum shell thicknessin millimeters? This feature is especially useful when using the variable layer height function." msgstr "" +"Минимальная толщина оболочки\n" +"Знаете ли вы, что вместо указания количества верхних и нижних слоёв можно задатьМинимальную толщину оболочкив миллиметрах? Эта функция особенно полезна при использовании функции переменной высоты слоёв." #: resources/data/hints.ini: [hint:Settings in non-modal window] msgid "" "Settings in non-modal window\n" -"Did you know that you can open the Settings in a new non-modal window? This " -"means you can have settings open on one screen and the G-code Preview on the " -"other. Go to thePreferencesand select Settings in non-modal window." +"Did you know that you can open the Settings in a new non-modal window? This means you can have settings open on one screen and the G-code Preview on the other. Go to thePreferencesand select Settings in non-modal window." msgstr "" +"Настройки в отдельном окне\n" +"Знали ли вы, что можно открывать настройки в новом отдельном окне? Это означает, что настройки можно открыть на одном экране, а предварительный просмотр G-кода на другом. Перейдите вНастройки приложенияи в настройке интерфейса выберите «Настройки будут отображаться в отдельном окне»." #: resources/data/hints.ini: [hint:Adaptive infills] msgid "" "Adaptive infills\n" -"Did you know that you can use the Adaptive cubic and Support cubic infills " -"to decrease the print time and lower the filament consumption? Read more in " -"the documentation." +"Did you know that you can use the Adaptive cubic and Support cubic infills to decrease the print time and lower the filament consumption? Read more in the documentation." msgstr "" +"Адаптивное заполнение\n" +"Знаете ли вы, что можно использовать заполнение Динамический куб (Adaptive Cubic) и Динам. куб. поддержка (Support Cubic), чтобы сократить время печати и снизить расход пластиковой нити? Подробнее читайте в документации." #: resources/data/hints.ini: [hint:Fullscreen mode] msgid "" "Fullscreen mode\n" -"Did you know that you can switch PrusaSlicer to fullscreen mode? Use the " -"F11 hotkey." +"Did you know that you can switch PrusaSlicer to fullscreen mode? Use the F11 hotkey." msgstr "" +"Полноэкранный режим\n" +"Знаете ли вы, что PrusaSlicer можно переключить в полноэкранный режим? Используйте для этого горячую клавишу F11." -#~ msgid "Changelog && Download" -#~ msgstr "История изменений && Скачать" +msgid "Select presets to compare" +msgstr "Выберите профили для сравнения" -#~ msgid "Flash printer &firmware" -#~ msgstr "&Прошивка принтера" +msgid "Connection timed out after %I64d milliseconds" +msgstr "Время ожидания соединения истекло через %I64d миллисекунд" -#~ msgid "Import STL (imperial units)" -#~ msgstr "Загрузить STL (английская система мер)" +msgid "Timeout was reached" +msgstr "Истекло время ожидания" -#~ msgid "Import Config from &project" -#~ msgstr "Загрузить конфигурацию из проекта" +msgid "Entering Seam painting" +msgstr "Вход в гизмо рисования шва" -#~ msgid "Export G-code to SD card / Flash drive" -#~ msgstr "Экспорт G-кода на SD-карту / USB-накопитель" +msgid "Leaving Seam painting" +msgstr "Выход из гизмо рисования шва" -#~ msgid "Export plate as &STL" -#~ msgstr "Экспорт &стола в STL" +msgid "Paint-on seam editing" +msgstr "Редактирование нарисованного шва" -#~ msgid "Export plate as STL &including supports" -#~ msgstr "Экспорт стола в STL вместе с &поддержками" +msgid "Entering Paint-on supports" +msgstr "Вход в гизмо рисования поддержек" -#~ msgid "Export &toolpaths as OBJ" -#~ msgstr "Экспорт траектории &инструмента в OBJ" +msgid "Leaving Paint-on supports" +msgstr "Выход из гизмо рисования поддержек" -#~ msgid "Ejec&t SD card / Flash drive" -#~ msgstr "Из&влечь SD-карту / USB-накопитель" +msgid "Paint-on supports editing" +msgstr "Редактирование нарисованных поддержек" -#~ msgid "&G-code preview" -#~ msgstr "Пред&просмотр G-кода" +msgid "Entering Multimaterial painting " +msgstr "Вход в гизмо мультиматериальной покраски " -#~ msgid "&Select all" -#~ msgstr "Выбрать &всё" +msgid "Leaving Multimaterial painting " +msgstr "Выход из гизмо мультиматериальной покраски " -#~ msgid "D&eselect all" -#~ msgstr "&Снять выбор со всего" +msgid "Multimaterial painting editing" +msgstr "Редактирование мультиматериальной покраски" -#~ msgid "&Delete selected" -#~ msgstr "&Удалить выбранные" +msgid "Best surface quality" +msgstr "Лучшее качество поверхности" -#~ msgid "Delete &all" -#~ msgstr "Уд&алить всё" +msgid "Optimize object rotation for best surface quality." +msgstr "Поиск оптимального поворота для достижения наилучшего качества поверхности." -#~ msgid "Re&load from disk" -#~ msgstr "Пере&загрузить с диска" +msgid "Reduced overhang slopes" +msgstr "Уменьшение свесов" -#~ msgid "Show &labels" -#~ msgstr "Показать &имена файлов" +msgid "" +"Optimize object rotation to have minimum amount of overhangs needing support structures.\n" +"Note that this method will try to find the best surface of the object for touching the print bed if no elevation is set." +msgstr "" +"Поиск оптимального поворота для уменьшения количества нависающих частей, нуждающихся в поддержках.\n" +"Обратите внимание, если высота подъёма модели не задана, то будет найдено положение модели для лучшего контакта её с печатной платформой." -#~ msgid "&Collapse sidebar" -#~ msgstr "&Свернуть боковую панель" +msgid "Lowest Z height" +msgstr "Минимальный подъём" -#~ msgid "Invalid" -#~ msgstr "Недопустимо" +msgid "Rotate the model to have the lowest z height for faster print time." +msgstr "Поворот модели так, чтобы она имела наименьшую высоту по оси Z для уменьшения времени печати." -#~ msgid "" -#~ "Zero layer height is not valid.\n" -#~ "\n" -#~ "The layer height will be reset to 0.01." -#~ msgstr "" -#~ "Нулевая высота слоя недопустима.\n" -#~ "\n" -#~ "Высота слоя будет сброшена на 0.01." +msgid "Choose goal" +msgstr "Выбор цели" -#~ msgid "" -#~ "Zero first layer height is not valid.\n" -#~ "\n" -#~ "The first layer height will be reset to 0.01." -#~ msgstr "" -#~ "Нулевая высота первого слоя недопустима.\n" -#~ "\n" -#~ "Высота первого слоя будет сброшена на 0.01." +msgid "Entering SLA support points" +msgstr "Вход в гизмо точки SLA поддержки" -#~ msgid "" -#~ "Filaments marked with * are not compatible with some " -#~ "installed printers." -#~ msgstr "" -#~ "Прутки помеченные знаком *, не несовместимы с некоторыми " -#~ "установленными принтерами." - -#~ msgid "All installed printers are compatible with the selected filament." -#~ msgstr "Все установленные принтеры совместимы с выбранным прутком." - -#~ msgid "" -#~ "Only the following installed printers are compatible with the selected " -#~ "filament:" -#~ msgstr "" -#~ "Только следующие установленные принтеры совместимы с выбранным прутком:" - -#~ msgid "Some objects are not visible." -#~ msgstr "Некоторые модели не отображаются." - -#~ msgid "Autoset by angle" -#~ msgstr "Автоустановка по углу" - -#~ msgid "Autoset custom supports" -#~ msgstr "Автоустановка пользовательских поддержек" - -#~ msgid "Threshold:" -#~ msgstr "Порог:" - -#~ msgid "Block" -#~ msgstr "Блокировка" - -#~ msgid "SLA gizmo turned on" -#~ msgstr "Гизмо SLA включено" - -#~ msgid "Save changes?" -#~ msgstr "Сохранить изменения?" - -#~ msgid "SLA gizmo turned off" -#~ msgstr "Гизмо SLA отключено" - -#~ msgid "Entering Paint-on supports" -#~ msgstr "Войти в режим рисования поддержек" - -#~ msgid "Entering Seam painting" -#~ msgstr "Войти в режим рисования шва" - -#~ msgid "Leaving Seam painting" -#~ msgstr "Выйти из режима рисования шва" - -#~ msgid "Leaving Paint-on supports" -#~ msgstr "Выйти из режима рисования поддержек" - -#~ msgid "Artwork model by Nora Al-Badri and Jan Nikolai Nelles" -#~ msgstr "Artwork model by Nora Al-Badri and Jan Nikolai Nelles" - -#~ msgid "Check for updates" -#~ msgstr "Проверить наличие обновлений" - -#~ msgid "Taking configuration snapshot" -#~ msgstr "Создание снапшота" - -#~ msgid "The preset(s) modifications are successfully saved" -#~ msgstr "Изменения в профиле(-ях) успешно сохранены" - -#~ msgid "Please check and fix your object list." -#~ msgstr "Пожалуйста, проверьте и исправьте ваш список моделей." - -#, c-format -#~ msgid "Auto-repaired (%d errors):" -#~ msgstr "Исправлено ошибок: %d" - -#~ msgid "degenerate facets" -#~ msgstr "Вырожденных граней" - -#~ msgid "edges fixed" -#~ msgstr "Рёбер починено" - -#~ msgid "facets removed" -#~ msgstr "Граней удалено" - -#~ msgid "facets added" -#~ msgstr "Граней добавлено" - -#~ msgid "facets reversed" -#~ msgstr "Граней реверсировано" - -#~ msgid "backwards edges" -#~ msgstr "Вывернуто рёбер" - -#~ msgid "Merge objects to the one single object" -#~ msgstr "Объединить модели в одну единую модель" - -#~ msgid "Select extruder number:" -#~ msgstr "Выберите номер экструдера:" - -#~ msgid "This extruder will be set for selected items" -#~ msgstr "Этот экструдер будет задан для выбранных частей" - -#~ msgid "Upper layer" -#~ msgstr "Слой +" - -#~ msgid "Lower layer" -#~ msgstr "Слой -" - -#~ msgid "Upper Layer" -#~ msgstr "Слой +" - -#~ msgid "Lower Layer" -#~ msgstr "Слой -" - -#~ msgid "Show/Hide Legend & Estimated printing time" -#~ msgstr "Показать/Скрыть условные обозначения/расчётное время печати" - -#~ msgid "Move current slider thumb Up" -#~ msgstr "Сдвинуть ползунок вверх" - -#~ msgid "Move current slider thumb Down" -#~ msgstr "Сдвинуть ползунок вниз" - -#~ msgid "Set upper thumb to current slider thumb" -#~ msgstr "Переместить ползунок в верхнее положение" - -#~ msgid "Set lower thumb to current slider thumb" -#~ msgstr "Переместить ползунок в нижнее положение" - -#~ msgid "Move active slider thumb Left" -#~ msgstr "Сдвинуть активный ползунок влево" - -#~ msgid "Move active slider thumb Right" -#~ msgstr "Сдвинуть активный ползунок вправо" - -#~ msgid "" -#~ "Remember to check for updates at https://github.com/prusa3d/PrusaSlicer/" -#~ "releases" -#~ msgstr "" -#~ "- Не забывайте периодически проверять обновления на https://github.com/" -#~ "prusa3d/PrusaSlicer/releases" - -#~ msgid "Import SL1 archive" -#~ msgstr "Импорт SL1 архива" - -#~ msgid "Load an SL1 archive" -#~ msgstr "Импорт SL1 архива" - -#~ msgid "Export plate as &AMF" -#~ msgstr "Экспорт стол&а в AMF" - -#~ msgid "Export current plate as AMF" -#~ msgstr "Экспортировать текущие модели со стола в AMF" - -#~ msgid "New version is available." -#~ msgstr "Доступна новая версия." - -#~ msgid "" -#~ "As a workaround, you may run PrusaSlicer with a software rendered 3D " -#~ "graphics by running prusa-slicer.exe with the --sw_renderer parameter." -#~ msgstr "" -#~ "В качестве обходного пути вы можете запустить PrusaSlicer с программным " -#~ "рендерингом (построения изображения без помощи GPU), запустив prusa-" -#~ "slicer.exe с параметром --sw_renderer." - -#~ msgid "" -#~ "Following printer preset(s) is duplicated:%1%The above preset for printer " -#~ "\"%2%\" will be used just once." -#~ msgstr "" -#~ "Следующий профиль(-и) принтера будет продублирован: %1% Вышеуказанный " -#~ "профиль для принтера %2% будет использован только один раз." - -#~ msgid "Materials" -#~ msgstr "Материалов" - -#~ msgid "Manifold" -#~ msgstr "Целостность" - -#, c-format -#~ msgid "%d (%d shells)" -#~ msgstr "%d (оболочек: %d)" - -#, c-format -#~ msgid "Auto-repaired (%d errors)" -#~ msgstr "Исправлено ошибок: %d" - -#, c-format -#~ msgid "" -#~ "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, " -#~ "%d facets reversed, %d backwards edges" -#~ msgstr "" -#~ "Вырожденных граней: %d. | Рёбер починено: %d. | Граней удалено: %d. | " -#~ "Граней добавлено: %d. | Граней реверсировано: %d. | Вывернуто рёбер: %d." - -#~ msgid "Yes" -#~ msgstr "Да" - -#~ msgid "object(s)" -#~ msgstr "модель(и)" - -#, c-format -#~ msgid "" -#~ "Some object(s) in file %s looks like saved in inches.\n" -#~ "Should I consider them as a saved in inches and convert them?" -#~ msgstr "" -#~ "Похоже какая-то модель(-и) в файле %s сохранена в дюймах.\n" -#~ "Считать что она сохранена в дюймах и конвертировать?" - -#~ msgid "The object appears to be saved in inches" -#~ msgstr "Похоже какая-то модель(-и) в файле %s сохранена в дюймах" - -#~ msgid "" -#~ "This file contains several objects positioned at multiple heights.\n" -#~ "Instead of considering them as multiple objects, should I consider\n" -#~ "this file as a single object having multiple parts?" -#~ msgstr "" -#~ "Этот файл содержит несколько моделей, расположенных на разных высотах.\n" -#~ "Вместо того, чтобы рассматривать их как несколько моделей, следует ли " -#~ "рассматривать этот файл как одну модель состоящую из несколько частей?" - -#~ msgid "Loaded" -#~ msgstr "Загружено" - -#~ msgid "" -#~ "The selected object can't be split because it contains more than one " -#~ "volume/material." -#~ msgstr "" -#~ "Выбранная модель не может быть разделена, так как она содержит более " -#~ "одного объёма/материала." - -#~ msgid "Ready to slice" -#~ msgstr "Готов к нарезке на слои" - -#~ msgid "It is not allowed to change the file to reload" -#~ msgstr "Не разрешается заменять перезагружаемый файл" - -#~ msgid "Do you want to retry" -#~ msgstr "Повторить снова" - -#~ msgid "" -#~ "ERROR: Please close all manipulators available from the left toolbar " -#~ "before fixing the mesh." -#~ msgstr "" -#~ "ОШИБКА: Пожалуйста, перед починкой сетки, завершите все манипуляции на " -#~ "панели инструментов." - -#~ msgid "Custom supports and seams were removed after repairing the mesh." -#~ msgstr "Пользовательские поддержки и швы были удалены после почитки сетки." - -#~ msgid "Reload the selected object from disk" -#~ msgstr "Перезагрузить выбранную модель файл с диска" - -#~ msgid "Export the selected object as STL file" -#~ msgstr "Экспортировать выбранную модель в STL файл" - -#~ msgid "Split the selected object into individual sub-parts" -#~ msgstr "Разделить выбранную модель на отдельные части" - -#~ msgid "Optimize the rotation of the object for better print results." -#~ msgstr "Оптимизация положения модели для лучшего результата печати." - -#~ msgid "" -#~ "%1% printer was active at the time the target Undo / Redo snapshot was " -#~ "taken. Switching to %1% printer requires reloading of %1% presets." -#~ msgstr "" -#~ "Принтер %1% был активен в момент создания целевого снапшота Отмены / " -#~ "Повтора. Переключение на принтер %1% потребует перезагрузки профиля %1%." - -#~ msgid "Save SL1 file as:" -#~ msgstr "Сохранить SL1 файл как:" - -#, c-format -#~ msgid "STL file exported to %s" -#~ msgstr "STL файл экспортирован в %s" - -#, c-format -#~ msgid "AMF file exported to %s" -#~ msgstr "AMF файл экспортирован в %s" - -#, c-format -#~ msgid "Error exporting AMF file %s" -#~ msgstr "AMF файл экспортирован в %s" - -#, c-format -#~ msgid "3MF file exported to %s" -#~ msgstr "3MF файл экспортирован в %s" - -#, c-format -#~ msgid "Error exporting 3MF file %s" -#~ msgstr "3MF файл экспортирован в %s" - -#~ msgid "" -#~ "If enabled, PrusaSlicer will check for the new versions of itself online. " -#~ "When a new version becomes available a notification is displayed at the " -#~ "next application startup (never during program usage). This is only a " -#~ "notification mechanisms, no automatic installation is done." -#~ msgstr "" -#~ "Если включено, то PrusaSlicer проверяет наличие новых версий в сети. Если " -#~ "доступна новая версия при следующем запуске отображается уведомление (не " -#~ "во время работы программы). Автоматическая установка не производится. Вы " -#~ "увидите только уведомление." - -#~ msgid "Ask for unsaved changes when closing application" -#~ msgstr "Запрос о несохраненных изменениях при закрытии приложения" - -#~ msgid "When closing the application, always ask for unsaved changes" -#~ msgstr "" -#~ "Всегда спрашивать о несохраненных изменениях при закрытии приложения." - -#~ msgid "Always ask for unsaved changes when selecting new preset" -#~ msgstr "" -#~ "Всегда спрашивать о несохраненных изменениях при выборе нового профиля." - -#, c-format -#~ msgid "You need to restart %s to make the changes effective." -#~ msgstr "Необходимо перезапустить %s, чтобы изменения вступили в силу." - -#~ msgid "Start printing after upload" -#~ msgstr "Начать печать после загрузки" - -#~ msgid "" -#~ "This action is not revertable.\n" -#~ "Do you want to proceed?" -#~ msgstr "" -#~ "Эта операция необратима.\n" -#~ "Хотите продолжить?" - -#~ msgid "" -#~ "The physical printer(s) below is based on the preset, you are going to " -#~ "delete." -#~ msgstr "" -#~ "Физические принтеры, указанные ниже, основаны на профиле, которые вы " -#~ "собираетесь удалить." - -#~ msgid "" -#~ "Note, that selected preset will be deleted from this/those printer(s) too." -#~ msgstr "" -#~ "Обратите внимание, выбранный профиль будет удалён из этого принтера тоже." - -#~ msgid "" -#~ "The physical printer(s) below is based only on the preset, you are going " -#~ "to delete." -#~ msgstr "" -#~ "Физические принтеры, указанные ниже, основаны только на профиле, которые " -#~ "вы собираетесь удалить." - -#~ msgid "" -#~ "Note, that this/those printer(s) will be deleted after deleting of the " -#~ "selected preset." -#~ msgstr "" -#~ "Обратите внимание, этот принтер(-ы) будет удалён после удаления " -#~ "выбранного профиля." - -#~ msgid "PrusaSlicer is closing: Unsaved Changes" -#~ msgstr "Закрытие PrusaSlicer: несохраненные изменения" - -#~ msgid "" -#~ "You will not be asked about the unsaved changes the next time you close " -#~ "PrusaSlicer." -#~ msgstr "" -#~ "Запрос о несохраненных изменениях не будет появляться при закрытии " -#~ "PrusaSlicer." - -#~ msgid "" -#~ "You will not be asked about the unsaved changes the next time you switch " -#~ "a preset." -#~ msgstr "" -#~ "Запрос о несохраненных изменениях не будет появляться при следующем " -#~ "переключении профиля." - -#~ msgid "The following presets were modified:" -#~ msgstr "Следующие профили были изменены:" - -#~ msgid "Old value" -#~ msgstr "Старое значение" - -#~ msgid "New value" -#~ msgstr "Новое значение" - -#~ msgid "Model fixing" -#~ msgstr "Починка модели" - -#~ msgid "Exporting model" -#~ msgstr "Экспорт модели" - -#~ msgid "Model repaired successfully" -#~ msgstr "Модель успешно отремонтирована" - -#~ msgid "Model Repair by the Netfabb service" -#~ msgstr "Ремонт модели службой Netfabb" - -#~ msgid "Model repair failed:" -#~ msgstr "Ошибка починки модели:" - -#~ msgid "Connection to Prusa SL1 works correctly." -#~ msgstr "Подключение к Prusa SL1 установлено." - -#~ msgid "There is an object with no extrusions on the first layer." -#~ msgstr "На первом слое у модели отсутствует слой для экструзии." - -#~ msgid "Empty layers detected, the output would not be printable." -#~ msgstr "Обнаружены пустые слои, печать невозможна." - -#~ msgid "Print z" -#~ msgstr "Печать на высоте" - -#~ msgid "" -#~ "This is usually caused by negligibly small extrusions or by a faulty " -#~ "model. Try to repair the model or change its orientation on the bed." -#~ msgstr "" -#~ "Обычно это происходит из-за ничтожно малой экструзии или из-за " -#~ "повреждённой модели. \n" -#~ "Попробуйте отремонтировать модель или изменить её ориентацию на столе." - -#~ msgid "Generating skirt" -#~ msgstr "Генерация юбки" - -#~ msgid "Generating brim" -#~ msgstr "Генерация каймы" - -#~ msgid "" -#~ "Picture sizes to be stored into a .gcode and .sl1 files, in the following " -#~ "format: \"XxY, XxY, ...\"" -#~ msgstr "" -#~ "Размеры изображений, сохраняемых в .gcode и .sl1 файлах (формат: \"XxY, " -#~ "XxY, ...\")" - -#~ msgid "Printer preset name" -#~ msgstr "Имя профиля принтера" - -#~ msgid "Related printer preset name" -#~ msgstr "Имя связанного профиля принтера" - -#~ msgid "" -#~ "Horizontal width of the brim that will be printed around each object on " -#~ "the first layer." -#~ msgstr "" -#~ "Расстояние от модели до самой дальней линии каймы. Широкая кайма повышает " -#~ "адгезию к столу, но уменьшает полезную площадь печати. Увеличение этого " -#~ "параметра очень важно для моделей с маленькой площадью контакта со столом " -#~ "и особенно важно при печати ABS пластиком." - -#~ msgid "" -#~ "When printing with very low layer heights, you might still want to print " -#~ "a thicker bottom layer to improve adhesion and tolerance for non perfect " -#~ "build plates. This can be expressed as an absolute value or as a " -#~ "percentage (for example: 150%) over the default layer height." -#~ msgstr "" -#~ "Высота первого (самого нижнего) слоя. Как правило, задаётся немного " -#~ "больше \"Высота слоя\" для лучшего закрепления (адгезии) модели на столе. " -#~ "Эта величина так же не может быть больше диаметра сопла." - -#~ msgid "Maximum acceleration when extruding (M204 S)" -#~ msgstr "Максимальное ускорение при печати (M204 S)" - -#~ msgid "Maximum acceleration when retracting (M204 T)" -#~ msgstr "Максимальное ускорение экструдера при ретракте (M204 T)" - -#~ msgid "Resolution" -#~ msgstr "Разрешение" - -#~ msgid "Distance from object" -#~ msgstr "Расстояние от юбки до модели" - -#~ msgid "" -#~ "Distance between skirt and object(s). Set this to zero to attach the " -#~ "skirt to the object(s) and get a brim for better adhesion." -#~ msgstr "" -#~ "Задаёт на каком расстоянии от модели будет располагаться юбка. Установите " -#~ "0, чтобы прикрепить юбку к модели и получить кайму для лучшего прилипания." - -#~ msgid "" -#~ "Height of skirt expressed in layers. Set this to a tall value to use " -#~ "skirt as a shield against drafts." -#~ msgstr "" -#~ "Высота юбки выраженная количеством слоёв. Установите высокое значение, " -#~ "чтобы использовать юбку в качестве защиты от внешнего воздушного потока." - -#~ msgid "" -#~ "If enabled, the skirt will be as tall as a highest printed object. This " -#~ "is useful to protect an ABS or ASA print from warping and detaching from " -#~ "print bed due to wind draft." -#~ msgstr "" -#~ "Если включено, юбка будет печататься высотой с самую высокую печатаемую " -#~ "модель. Это полезно для защиты материалов типа ABS или ASA от деформации " -#~ "и отрыва от стола из-за внешнего воздушного потока." - -#~ msgid "Contact Z distance" -#~ msgstr "Расстояние от поддержки до модели по вертикали" - -#~ msgid "Interface layers" -#~ msgstr "Связующих слоёв" - -#~ msgid "" -#~ "This custom code is inserted before every toolchange. Placeholder " -#~ "variables for all PrusaSlicer settings as well as {previous_extruder} and " -#~ "{next_extruder} can be used. When a tool-changing command which changes " -#~ "to the correct extruder is included (such as T{next_extruder}), " -#~ "PrusaSlicer will emit no other such command. It is therefore possible to " -#~ "script custom behaviour both before and after the toolchange." -#~ msgstr "" -#~ "Этот пользовательский код вставляется перед каждой сменой инструмента. Вы " -#~ "можете использовать шаблонные переменные для всех параметров PrusaSlicer " -#~ "в том числе {previous_extruder} и {next_extruder}. При включении команды " -#~ "смены инструмента, которая заменяет правильный экструдер (например " -#~ "T{next_extruder}), PrusaSlicer не будет запускать никакие другие подобные " -#~ "команды. Таким образом, можно создавать собственные сценарии поведения до " -#~ "и после смены инструмента.???" - -#~ msgid "" -#~ "Purging after toolchange will done inside this object's infills. This " -#~ "lowers the amount of waste but may result in longer print time due to " -#~ "additional travel moves." -#~ msgstr "" -#~ "Очистка после замены инструмента будет выполняться внутри заполнения " -#~ "модели. Опция уменьшает количество отходов, но может привести к " -#~ "увеличению времени печати из-за дополнительных перемещений." - -#~ msgid "Processing triangulated mesh" -#~ msgstr "Обработка триангулированной сетки" - -#~ msgid "Enable rotations" -#~ msgstr "Разрешить вращение" - -#~ msgid "Gap size" -#~ msgstr "Зазор между моделями" - -#~ msgid "Jump to height %s or Set ruler mode" -#~ msgstr "Перейти к заданной высоте %s или задать режимы линейки" - -#~ msgid "Should we suppress to use hyperlinks in PrusaSlicer?" -#~ msgstr "Хотите запретить использование гиперссылок в PrusaSlicer?" - -#~ msgid "time" -#~ msgstr "Время" - -#~ msgid "Should we open this hyperlink in your default browser?" -#~ msgstr "Открыть эту гиперссылку в браузере по умолчанию?" - -#~ msgid "During the other layers, fan" -#~ msgstr "Во время печати других слоёв, вентилятор" - -#~ msgid "" -#~ "Fan speed will be ramped from zero at layer %1% to %2%%% at layer %3%" -#~ msgstr "" -#~ "Скорость вентилятора будет увеличена с нуля на %1% слое до %2%%% на %3% " -#~ "слое." - -#~ msgid "Select a file" -#~ msgstr "Выберите файл" +msgid "Leaving SLA support points" +msgstr "Выход из гизмо точки SLA поддержки" diff --git a/src/avrdude/avrdude.conf.tmp b/src/avrdude/avrdude.conf.tmp deleted file mode 100644 index 82c73afa2..000000000 --- a/src/avrdude/avrdude.conf.tmp +++ /dev/null @@ -1,14984 +0,0 @@ -# $Id$ -*- text -*- -# -# AVRDUDE Configuration File -# -# This file contains configuration data used by AVRDUDE which describes -# the programming hardware pinouts and also provides part definitions. -# AVRDUDE's "-C" command line option specifies the location of the -# configuration file. The "-c" option names the programmer configuration -# which must match one of the entry's "id" parameter. The "-p" option -# identifies which part AVRDUDE is going to be programming and must match -# one of the parts' "id" parameter. -# -# DO NOT MODIFY THIS FILE. Modifications will be overwritten the next -# time a "make install" is run. For user-specific additions, use the -# "-C +filename" commandline option. -# -# Possible entry formats are: -# -# programmer -# parent # optional parent -# id = [, [, ] ...] ; # are quoted strings -# desc = ; # quoted string -# type = ; # programmer type, quoted string -# # supported programmer types can be listed by "-c ?type" -# connection_type = parallel | serial | usb -# baudrate = ; # baudrate for avr910-programmer -# vcc = [, ... ] ; # pin number(s) -# buff = [, ... ] ; # pin number(s) -# reset = ; # pin number -# sck = ; # pin number -# mosi = ; # pin number -# miso = ; # pin number -# errled = ; # pin number -# rdyled = ; # pin number -# pgmled = ; # pin number -# vfyled = ; # pin number -# usbvid = ; # USB VID (Vendor ID) -# usbpid = [, ...] # USB PID (Product ID) (1) -# usbdev = ; # USB interface or other device info -# usbvendor = ; # USB Vendor Name -# usbproduct = ; # USB Product Name -# usbsn = ; # USB Serial Number -# -# To invert a bit, use = ~ , the spaces are important. -# For a pin list all pins must be inverted. -# A single pin can be specified as usual = ~ , for lists -# specify it as follows = ~ ( [, ... ] ) . -# -# (1) Not all programmer types can process a list of PIDs. -# ; -# -# part -# id = ; # quoted string -# desc = ; # quoted string -# has_jtag = ; # part has JTAG i/f -# has_debugwire = ; # part has debugWire i/f -# has_pdi = ; # part has PDI i/f -# has_tpi = ; # part has TPI i/f -# devicecode = ; # deprecated, use stk500_devcode -# stk500_devcode = ; # numeric -# avr910_devcode = ; # numeric -# signature = ; # signature bytes -# usbpid = ; # DFU USB PID -# chip_erase_delay = ; # micro-seconds -# reset = dedicated | io; -# retry_pulse = reset | sck; -# pgm_enable = ; -# chip_erase = ; -# chip_erase_delay = ; # chip erase delay (us) -# # STK500 parameters (parallel programming IO lines) -# pagel = ; # pin name in hex, i.e., 0xD7 -# bs2 = ; # pin name in hex, i.e., 0xA0 -# serial = ; # can use serial downloading -# parallel = ; # can use par. programming -# # STK500v2 parameters, to be taken from Atmel's XML files -# timeout = ; -# stabdelay = ; -# cmdexedelay = ; -# synchloops = ; -# bytedelay = ; -# pollvalue = ; -# pollindex = ; -# predelay = ; -# postdelay = ; -# pollmethod = ; -# mode = ; -# delay = ; -# blocksize = ; -# readsize = ; -# hvspcmdexedelay = ; -# # STK500v2 HV programming parameters, from XML -# pp_controlstack = , , ...; # PP only -# hvsp_controlstack = , , ...; # HVSP only -# hventerstabdelay = ; -# progmodedelay = ; # PP only -# latchcycles = ; -# togglevtg = ; -# poweroffdelay = ; -# resetdelayms = ; -# resetdelayus = ; -# hvleavestabdelay = ; -# resetdelay = ; -# synchcycles = ; # HVSP only -# chiperasepulsewidth = ; # PP only -# chiperasepolltimeout = ; -# chiperasetime = ; # HVSP only -# programfusepulsewidth = ; # PP only -# programfusepolltimeout = ; -# programlockpulsewidth = ; # PP only -# programlockpolltimeout = ; -# # JTAG ICE mkII parameters, also from XML files -# allowfullpagebitstream = ; -# enablepageprogramming = ; -# idr = ; # IO addr of IDR (OCD) reg. -# rampz = ; # IO addr of RAMPZ reg. -# spmcr = ; # mem addr of SPMC[S]R reg. -# eecr = ; # mem addr of EECR reg. -# # (only when != 0x3c) -# is_at90s1200 = ; # AT90S1200 part -# is_avr32 = ; # AVR32 part -# -# memory -# paged = ; # yes / no -# size = ; # bytes -# page_size = ; # bytes -# num_pages = ; # numeric -# min_write_delay = ; # micro-seconds -# max_write_delay = ; # micro-seconds -# readback_p1 = ; # byte value -# readback_p2 = ; # byte value -# pwroff_after_write = ; # yes / no -# read = ; -# write = ; -# read_lo = ; -# read_hi = ; -# write_lo = ; -# write_hi = ; -# loadpage_lo = ; -# loadpage_hi = ; -# writepage = ; -# ; -# ; -# -# If any of the above parameters are not specified, the default value -# of 0 is used for numerics or the empty string ("") for string -# values. If a required parameter is left empty, AVRDUDE will -# complain. -# -# Parts can also inherit parameters from previously defined parts -# using the following syntax. In this case specified integer and -# string values override parameter values from the parent part. New -# memory definitions are added to the definitions inherited from the -# parent. -# -# part parent # quoted string -# id = ; # quoted string -# -# ; -# -# NOTES: -# * 'devicecode' is the device code used by the STK500 (see codes -# listed below) -# * Not all memory types will implement all instructions. -# * AVR Fuse bits and Lock bits are implemented as a type of memory. -# * Example memory types are: -# "flash", "eeprom", "fuse", "lfuse" (low fuse), "hfuse" (high -# fuse), "signature", "calibration", "lock" -# * The memory type specified on the avrdude command line must match -# one of the memory types defined for the specified chip. -# * The pwroff_after_write flag causes avrdude to attempt to -# power the device off and back on after an unsuccessful write to -# the affected memory area if VCC programmer pins are defined. If -# VCC pins are not defined for the programmer, a message -# indicating that the device needs a power-cycle is printed out. -# This flag was added to work around a problem with the -# at90s4433/2333's; see the at90s4433 errata at: -# -# http://www.atmel.com/dyn/resources/prod_documents/doc1280.pdf -# -# INSTRUCTION FORMATS -# -# Instruction formats are specified as a comma seperated list of -# string values containing information (bit specifiers) about each -# of the 32 bits of the instruction. Bit specifiers may be one of -# the following formats: -# -# '1' = the bit is always set on input as well as output -# -# '0' = the bit is always clear on input as well as output -# -# 'x' = the bit is ignored on input and output -# -# 'a' = the bit is an address bit, the bit-number matches this bit -# specifier's position within the current instruction byte -# -# 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12 -# is address bit 12 on input, a0 is address bit 0. -# -# 'i' = the bit is an input data bit -# -# 'o' = the bit is an output data bit -# -# Each instruction must be composed of 32 bit specifiers. The -# instruction specification closely follows the instruction data -# provided in Atmel's data sheets for their parts. -# -# See below for some examples. -# -# -# The following are STK500 part device codes to use for the -# "devicecode" field of the part. These came from Atmel's software -# section avr061.zip which accompanies the application note -# AVR061 available from: -# -# http://www.atmel.com/dyn/resources/prod_documents/doc2525.pdf -# - -#define ATTINY10 0x10 /* the _old_ one that never existed! */ -#define ATTINY11 0x11 -#define ATTINY12 0x12 -#define ATTINY15 0x13 -#define ATTINY13 0x14 - -#define ATTINY22 0x20 -#define ATTINY26 0x21 -#define ATTINY28 0x22 -#define ATTINY2313 0x23 - -#define AT90S1200 0x33 - -#define AT90S2313 0x40 -#define AT90S2323 0x41 -#define AT90S2333 0x42 -#define AT90S2343 0x43 - -#define AT90S4414 0x50 -#define AT90S4433 0x51 -#define AT90S4434 0x52 -#define ATMEGA48 0x59 - -#define AT90S8515 0x60 -#define AT90S8535 0x61 -#define AT90C8534 0x62 -#define ATMEGA8515 0x63 -#define ATMEGA8535 0x64 - -#define ATMEGA8 0x70 -#define ATMEGA88 0x73 -#define ATMEGA168 0x86 - -#define ATMEGA161 0x80 -#define ATMEGA163 0x81 -#define ATMEGA16 0x82 -#define ATMEGA162 0x83 -#define ATMEGA169 0x84 - -#define ATMEGA323 0x90 -#define ATMEGA32 0x91 - -#define ATMEGA64 0xA0 - -#define ATMEGA103 0xB1 -#define ATMEGA128 0xB2 -#define AT90CAN128 0xB3 -#define AT90CAN64 0xB3 -#define AT90CAN32 0xB3 - -#define AT86RF401 0xD0 - -#define AT89START 0xE0 -#define AT89S51 0xE0 -#define AT89S52 0xE1 - -# The following table lists the devices in the original AVR910 -# appnote: -# |Device |Signature | Code | -# +-------+----------+------+ -# |tiny12 | 1E 90 05 | 0x55 | -# |tiny15 | 1E 90 06 | 0x56 | -# | | | | -# | S1200 | 1E 90 01 | 0x13 | -# | | | | -# | S2313 | 1E 91 01 | 0x20 | -# | S2323 | 1E 91 02 | 0x48 | -# | S2333 | 1E 91 05 | 0x34 | -# | S2343 | 1E 91 03 | 0x4C | -# | | | | -# | S4414 | 1E 92 01 | 0x28 | -# | S4433 | 1E 92 03 | 0x30 | -# | S4434 | 1E 92 02 | 0x6C | -# | | | | -# | S8515 | 1E 93 01 | 0x38 | -# | S8535 | 1E 93 03 | 0x68 | -# | | | | -# |mega32 | 1E 95 01 | 0x72 | -# |mega83 | 1E 93 05 | 0x65 | -# |mega103| 1E 97 01 | 0x41 | -# |mega161| 1E 94 01 | 0x60 | -# |mega163| 1E 94 02 | 0x64 | - -# Appnote AVR109 also has a table of AVR910 device codes, which -# lists: -# dev avr910 signature -# ATmega8 0x77 0x1E 0x93 0x07 -# ATmega8515 0x3B 0x1E 0x93 0x06 -# ATmega8535 0x6A 0x1E 0x93 0x08 -# ATmega16 0x75 0x1E 0x94 0x03 -# ATmega162 0x63 0x1E 0x94 0x04 -# ATmega163 0x66 0x1E 0x94 0x02 -# ATmega169 0x79 0x1E 0x94 0x05 -# ATmega32 0x7F 0x1E 0x95 0x02 -# ATmega323 0x73 0x1E 0x95 0x01 -# ATmega64 0x46 0x1E 0x96 0x02 -# ATmega128 0x44 0x1E 0x97 0x02 -# -# These codes refer to "BOOT" device codes which are apparently -# different than standard device codes, for whatever reasons -# (often one above the standard code). - -# There are several extended versions of AVR910 implementations around -# in the Internet. These add the following codes (only devices that -# actually exist are listed): - -# ATmega8515 0x3A -# ATmega128 0x43 -# ATmega64 0x45 -# ATtiny26 0x5E -# ATmega8535 0x69 -# ATmega32 0x72 -# ATmega16 0x74 -# ATmega8 0x76 -# ATmega169 0x78 - -# -# Overall avrdude defaults; suitable for ~/.avrduderc -# -default_parallel = "/dev/parport0"; -default_serial = "/dev/ttyS0"; -# default_bitclock = 2.5; - -# Turn off safemode by default -#default_safemode = no; - - -# -# PROGRAMMER DEFINITIONS -# - -# http://wiring.org.co/ -# Basically STK500v2 protocol, with some glue to trigger the -# bootloader. -programmer - id = "wiring"; - desc = "Wiring"; - type = "wiring"; - connection_type = serial; -; - -programmer - id = "arduino"; - desc = "Arduino"; - type = "arduino"; - connection_type = serial; -; -# this will interface with the chips on these programmers: -# -# http://real.kiev.ua/old/avreal/en/adapters -# http://www.amontec.com/jtagkey.shtml, jtagkey-tiny.shtml -# http://www.olimex.com/dev/arm-usb-ocd.html, arm-usb-tiny.html -# http://www.ethernut.de/en/hardware/turtelizer/index.html -# http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html -# http://dangerousprototypes.com/docs/FT2232_breakout_board -# http://www.ftdichip.com/Products/Modules/DLPModules.htm,DLP-2232*,DLP-USB1232H -# http://flashrom.org/FT2232SPI_Programmer -# -# The drivers will look for a specific device and use the first one found. -# If you have mulitple devices, then look for unique information (like SN) -# And fill that in here. -# -# Note that the pin numbers for the main ISP signals (reset, sck, -# mosi, miso) are fixed and cannot be changed, since they must match -# the way the Multi-Protocol Synchronous Serial Engine (MPSSE) of -# these FTDI ICs has been designed. - -programmer - id = "avrftdi"; - desc = "FT2232D based generic programmer"; - type = "avrftdi"; - connection_type = usb; - usbvid = 0x0403; - usbpid = 0x6010; - usbvendor = ""; - usbproduct = ""; - usbdev = "A"; - usbsn = ""; -#ISP-signals - lower ADBUS-Nibble (default) - reset = 3; - sck = 0; - mosi = 1; - miso = 2; -#LED SIGNALs - higher ADBUS-Nibble -# errled = 4; -# rdyled = 5; -# pgmled = 6; -# vfyled = 7; -#Buffer Signal - ACBUS - Nibble -# buff = 8; -; -# This is an implementation of the above with a buffer IC (74AC244) and -# 4 LEDs directly attached, all active low. -programmer - id = "2232HIO"; - desc = "FT2232H based generic programmer"; - type = "avrftdi"; - connection_type = usb; - usbvid = 0x0403; -# Note: This PID is reserved for generic H devices and -# should be programmed into the EEPROM -# usbpid = 0x8A48; - usbpid = 0x6010; - usbdev = "A"; - usbvendor = ""; - usbproduct = ""; - usbsn = ""; -#ISP-signals - reset = 3; - sck = 0; - mosi = 1; - miso = 2; - buff = ~4; -#LED SIGNALs - errled = ~ 11; - rdyled = ~ 14; - pgmled = ~ 13; - vfyled = ~ 12; -; - -#The FT4232H can be treated as FT2232H, but it has a different USB -#device ID of 0x6011. -programmer parent "avrftdi" - id = "4232h"; - desc = "FT4232H based generic programmer"; - usbpid = 0x6011; -; - -programmer - id = "jtagkey"; - desc = "Amontec JTAGKey, JTAGKey-Tiny and JTAGKey2"; - type = "avrftdi"; - connection_type = usb; - usbvid = 0x0403; -# Note: This PID is used in all JTAGKey variants - usbpid = 0xCFF8; - usbdev = "A"; - usbvendor = ""; - usbproduct = ""; - usbsn = ""; -#ISP-signals => 20 - Pin connector on JTAGKey - reset = 3; # TMS 7 violet - sck = 0; # TCK 9 white - mosi = 1; # TDI 5 green - miso = 2; # TDO 13 orange - buff = ~4; -# VTG VREF 1 brown with red tip -# GND GND 20 black -# The colors are on the 20 pin breakout cable -# from Amontec -; - -# UM232H module from FTDI and Glyn.com.au. -# See helix.air.net.au for detailed usage information. -# J1: Connect pin 2 and 3 for USB power. -# J2: Connect pin 2 and 3 for USB power. -# J2: Pin 7 is SCK -# : Pin 8 is MOSI -# : Pin 9 is MISO -# : Pin 11 is RST -# : Pin 6 is ground -# Use the -b flag to set the SPI clock rate eg -b 3750000 is the fastest I could get -# a 16MHz Atmega1280 to program reliably. The 232H is conveniently 5V tolerant. -programmer - id = "UM232H"; - desc = "FT232H based module from FTDI and Glyn.com.au"; - type = "avrftdi"; - usbvid = 0x0403; -# Note: This PID is reserved for generic 232H devices and -# should be programmed into the EEPROM - usbpid = 0x6014; - usbdev = "A"; - usbvendor = ""; - usbproduct = ""; - usbsn = ""; -#ISP-signals - sck = 0; - mosi = 1; - miso = 2; - reset = 3; -; - -# C232HM module from FTDI and Glyn.com.au. -# : Orange is SCK -# : Yellow is MOSI -# : Green is MISO -# : Brown is RST -# : Black is ground -# Use the -b flag to set the SPI clock rate eg -b 3750000 is the fastest I could get -# a 16MHz Atmega1280 to program reliably. The 232H is conveniently 5V tolerant. -programmer - id = "C232HM"; - desc = "FT232H based module from FTDI and Glyn.com.au"; - type = "avrftdi"; - usbvid = 0x0403; -# Note: This PID is reserved for generic 232H devices and -# should be programmed into the EEPROM - usbpid = 0x6014; - usbdev = "A"; - usbvendor = ""; - usbproduct = ""; - usbsn = ""; -#ISP-signals - sck = 0; - mosi = 1; - miso = 2; - reset = 3; -; - - -# On the adapter you can read "O-Link". On the PCB is printed "OpenJTAG v3.1" -# You can find it as "OpenJTAG ARM JTAG USB" in the internet. -# (But there are also several projects called Open JTAG, eg. -# http://www.openjtag.org, which are completely different.) -# http://www.100ask.net/shop/english.html (website seems to be outdated) -# http://item.taobao.com/item.htm?id=1559277013 -# http://www.micro4you.com/store/openjtag-arm-jtag-usb.html (schematics!) -# some other sources which call it O-Link -# http://www.andahammer.com/olink/ -# http://www.developmentboard.net/31-o-link-debugger.html -# http://armwerks.com/catalog/o-link-debugger-copy/ -# or just have a look at ebay ... -# It is basically the same entry as jtagkey with different usb ids. -programmer parent "jtagkey" - id = "o-link"; - desc = "O-Link, OpenJTAG from www.100ask.net"; - usbvid = 0x1457; - usbpid = 0x5118; - usbvendor = "www.100ask.net"; - usbproduct = "USB<=>JTAG&RS232"; -; - -# http://wiki.openmoko.org/wiki/Debug_Board_v3 -programmer - id = "openmoko"; - desc = "Openmoko debug board (v3)"; - type = "avrftdi"; - usbvid = 0x1457; - usbpid = 0x5118; - usbdev = "A"; - usbvendor = ""; - usbproduct = ""; - usbsn = ""; - reset = 3; # TMS 7 - sck = 0; # TCK 9 - mosi = 1; # TDI 5 - miso = 2; # TDO 13 -; - -# Only Rev. A boards. -# Schematic and user manual: http://www.cs.put.poznan.pl/wswitala/download/pdf/811EVBK.pdf -programmer - id = "lm3s811"; - desc = "Luminary Micro LM3S811 Eval Board (Rev. A)"; - type = "avrftdi"; - connection_type = usb; - usbvid = 0x0403; - usbpid = 0xbcd9; - usbvendor = "LMI"; - usbproduct = "LM3S811 Evaluation Board"; - usbdev = "A"; - usbsn = ""; -#ISP-signals - lower ACBUS-Nibble (default) - reset = 3; - sck = 0; - mosi = 1; - miso = 2; -# Enable correct buffers - buff = 7; -; - -# submitted as bug #46020 -programmer - id = "tumpa"; - desc = "TIAO USB Multi-Protocol Adapter"; - type = "avrftdi"; - connection_type = usb; - usbvid = 0x0403; - usbpid = 0x8A98; - usbdev = "A"; - usbvendor = "TIAO"; - usbproduct = ""; - usbsn = ""; - sck = 0; # TCK 9 - mosi = 1; # TDI 5 - miso = 2; # TDO 13 - reset = 3; # TMS 7 -; - -programmer - id = "avrisp"; - desc = "Atmel AVR ISP"; - type = "stk500"; - connection_type = serial; -; - -programmer - id = "avrispv2"; - desc = "Atmel AVR ISP V2"; - type = "stk500v2"; - connection_type = serial; -; - -programmer - id = "avrispmkII"; - desc = "Atmel AVR ISP mkII"; - type = "stk500v2"; - connection_type = usb; -; - -programmer parent "avrispmkII" - id = "avrisp2"; -; - -programmer - id = "buspirate"; - desc = "The Bus Pirate"; - type = "buspirate"; - connection_type = serial; -; - -programmer - id = "buspirate_bb"; - desc = "The Bus Pirate (bitbang interface, supports TPI)"; - type = "buspirate_bb"; - connection_type = serial; - # pins are bits in bitbang byte (numbers are 87654321) - # 1|POWER|PULLUP|AUX|MOSI|CLK|MISO|CS - reset = 1; - sck = 3; - mosi = 4; - miso = 2; - #vcc = 7; This is internally set independent of this setting. -; - -# This is supposed to be the "default" STK500 entry. -# Attempts to select the correct firmware version -# by probing for it. Better use one of the entries -# below instead. -programmer - id = "stk500"; - desc = "Atmel STK500"; - type = "stk500generic"; - connection_type = serial; -; - -programmer - id = "stk500v1"; - desc = "Atmel STK500 Version 1.x firmware"; - type = "stk500"; - connection_type = serial; -; - -programmer - id = "mib510"; - desc = "Crossbow MIB510 programming board"; - type = "stk500"; - connection_type = serial; -; - -programmer - id = "stk500v2"; - desc = "Atmel STK500 Version 2.x firmware"; - type = "stk500v2"; - connection_type = serial; -; - -programmer - id = "stk500pp"; - desc = "Atmel STK500 V2 in parallel programming mode"; - type = "stk500pp"; - connection_type = serial; -; - -programmer - id = "stk500hvsp"; - desc = "Atmel STK500 V2 in high-voltage serial programming mode"; - type = "stk500hvsp"; - connection_type = serial; -; - -programmer - id = "stk600"; - desc = "Atmel STK600"; - type = "stk600"; - connection_type = usb; -; - -programmer - id = "stk600pp"; - desc = "Atmel STK600 in parallel programming mode"; - type = "stk600pp"; - connection_type = usb; -; - -programmer - id = "stk600hvsp"; - desc = "Atmel STK600 in high-voltage serial programming mode"; - type = "stk600hvsp"; - connection_type = usb; -; - -programmer - id = "avr910"; - desc = "Atmel Low Cost Serial Programmer"; - type = "avr910"; - connection_type = serial; -; - -programmer - id = "ft245r"; - desc = "FT245R Synchronous BitBang"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 1; # D1 - sck = 0; # D0 - mosi = 2; # D2 - reset = 4; # D4 -; - -programmer - id = "ft232r"; - desc = "FT232R Synchronous BitBang"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 1; # RxD - sck = 0; # TxD - mosi = 2; # RTS - reset = 4; # DTR -; - -# see http://www.bitwizard.nl/wiki/index.php/FTDI_ATmega -programmer - id = "bwmega"; - desc = "BitWizard ftdi_atmega builtin programmer"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 5; # DSR - sck = 6; # DCD - mosi = 3; # CTS - reset = 7; # RI -; - -# see http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html -# Note: pins are numbered from 1! -programmer - id = "arduino-ft232r"; - desc = "Arduino: FT232R connected to ISP"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 3; # CTS X3(1) - sck = 5; # DSR X3(2) - mosi = 6; # DCD X3(3) - reset = 7; # RI X3(4) -; - -# website mentioned above uses this id -programmer parent "arduino-ft232r" - id = "diecimila"; - desc = "alias for arduino-ft232r"; -; - -# There is a ATmega328P kit PCB called "uncompatino". -# This board allows ISP via its on-board FT232R. -# This is designed like Arduino Duemilanove but has no standard ICPS header. -# Its 4 pairs of pins are shorted to enable ftdi_syncbb. -# http://akizukidenshi.com/catalog/g/gP-07487/ -# http://akizukidenshi.com/download/ds/akizuki/k6096_manual_20130816.pdf -programmer - id = "uncompatino"; - desc = "uncompatino with all pairs of pins shorted"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 3; # cts - sck = 5; # dsr - mosi = 6; # dcd - reset = 7; # ri -; - -# FTDI USB to serial cable TTL-232R-5V with a custom adapter for ICSP -# http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm -# http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf -# For ICSP pinout see for example http://www.atmel.com/images/doc2562.pdf -# (Figure 1. ISP6PIN header pinout and Table 1. Connections required for ISP ...) -# TTL-232R GND 1 Black -> ICPS GND (pin 6) -# TTL-232R CTS 2 Brown -> ICPS MOSI (pin 4) -# TTL-232R VCC 3 Red -> ICPS VCC (pin 2) -# TTL-232R TXD 4 Orange -> ICPS RESET (pin 5) -# TTL-232R RXD 5 Yellow -> ICPS SCK (pin 3) -# TTL-232R RTS 6 Green -> ICPS MISO (pin 1) -# Except for VCC and GND, you can connect arbitual pairs as long as -# the following table is adjusted. -programmer - id = "ttl232r"; - desc = "FTDI TTL232R-5V with ICSP adapter"; - type = "ftdi_syncbb"; - connection_type = usb; - miso = 2; # rts - sck = 1; # rxd - mosi = 3; # cts - reset = 0; # txd -; - -programmer - id = "usbasp"; - desc = "USBasp, http://www.fischl.de/usbasp/"; - type = "usbasp"; - connection_type = usb; - usbvid = 0x16C0; # VOTI - usbpid = 0x05DC; # Obdev's free shared PID - usbvendor = "www.fischl.de"; - usbproduct = "USBasp"; - - # following variants are autodetected for id "usbasp" - - # original usbasp from fischl.de - # see above "usbasp" - - # old usbasp from fischl.de - #usbvid = 0x03EB; # ATMEL - #usbpid = 0xC7B4; # (unoffical) USBasp - #usbvendor = "www.fischl.de"; - #usbproduct = "USBasp"; - - # NIBObee (only if -P nibobee is given on command line) - # see below "nibobee" -; - -programmer - id = "nibobee"; - desc = "NIBObee"; - type = "usbasp"; - connection_type = usb; - usbvid = 0x16C0; # VOTI - usbpid = 0x092F; # NIBObee PID - usbvendor = "www.nicai-systems.com"; - usbproduct = "NIBObee"; -; - -programmer - id = "usbasp-clone"; - desc = "Any usbasp clone with correct VID/PID"; - type = "usbasp"; - connection_type = usb; - usbvid = 0x16C0; # VOTI - usbpid = 0x05DC; # Obdev's free shared PID - #usbvendor = ""; - #usbproduct = ""; -; - -programmer - id = "usbtiny"; - desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/"; - type = "usbtiny"; - connection_type = usb; - usbvid = 0x1781; - usbpid = 0x0c9f; -; - -# commercial version of USBtiny, using a separate VID/PID -programmer - id = "ehajo-isp"; - desc = "avr-isp-programmer from eHaJo, http://www.eHaJo.de"; - type = "usbtiny"; - connection_type = usb; - usbvid = 0x16D0; - usbpid = 0x0BA5; -; - -programmer - id = "butterfly"; - desc = "Atmel Butterfly Development Board"; - type = "butterfly"; - connection_type = serial; -; - -programmer - id = "avr109"; - desc = "Atmel AppNote AVR109 Boot Loader"; - type = "butterfly"; - connection_type = serial; -; - -programmer - id = "avr911"; - desc = "Atmel AppNote AVR911 AVROSP"; - type = "butterfly"; - connection_type = serial; -; - -# suggested in http://forum.mikrokopter.de/topic-post48317.html -programmer - id = "mkbutterfly"; - desc = "Mikrokopter.de Butterfly"; - type = "butterfly_mk"; - connection_type = serial; -; - -programmer parent "mkbutterfly" - id = "butterfly_mk"; -; - -programmer - id = "jtagmkI"; - desc = "Atmel JTAG ICE (mkI)"; - baudrate = 115200; # default is 115200 - type = "jtagmki"; - connection_type = serial; -; - -# easier to type -programmer parent "jtagmkI" - id = "jtag1"; -; - -# easier to type -programmer parent "jtag1" - id = "jtag1slow"; - baudrate = 19200; -; - -# The JTAG ICE mkII has both, serial and USB connectivity. As it is -# mostly used through USB these days (AVR Studio 5 only supporting it -# that way), we make connection_type = usb the default. Users are -# still free to use a serial port with the -P option. - -programmer - id = "jtagmkII"; - desc = "Atmel JTAG ICE mkII"; - baudrate = 19200; # default is 19200 - type = "jtagmkii"; - connection_type = usb; -; - -# easier to type -programmer parent "jtagmkII" - id = "jtag2slow"; -; - -# JTAG ICE mkII @ 115200 Bd -programmer parent "jtag2slow" - id = "jtag2fast"; - baudrate = 115200; -; - -# make the fast one the default, people will love that -programmer parent "jtag2fast" - id = "jtag2"; -; - -# JTAG ICE mkII in ISP mode -programmer - id = "jtag2isp"; - desc = "Atmel JTAG ICE mkII in ISP mode"; - baudrate = 115200; - type = "jtagmkii_isp"; - connection_type = usb; -; - -# JTAG ICE mkII in debugWire mode -programmer - id = "jtag2dw"; - desc = "Atmel JTAG ICE mkII in debugWire mode"; - baudrate = 115200; - type = "jtagmkii_dw"; - connection_type = usb; -; - -# JTAG ICE mkII in AVR32 mode -programmer - id = "jtagmkII_avr32"; - desc = "Atmel JTAG ICE mkII im AVR32 mode"; - baudrate = 115200; - type = "jtagmkii_avr32"; - connection_type = usb; -; - -# JTAG ICE mkII in AVR32 mode -programmer - id = "jtag2avr32"; - desc = "Atmel JTAG ICE mkII im AVR32 mode"; - baudrate = 115200; - type = "jtagmkii_avr32"; - connection_type = usb; -; - -# JTAG ICE mkII in PDI mode -programmer - id = "jtag2pdi"; - desc = "Atmel JTAG ICE mkII PDI mode"; - baudrate = 115200; - type = "jtagmkii_pdi"; - connection_type = usb; -; - -# AVR Dragon in JTAG mode -programmer - id = "dragon_jtag"; - desc = "Atmel AVR Dragon in JTAG mode"; - baudrate = 115200; - type = "dragon_jtag"; - connection_type = usb; -; - -# AVR Dragon in ISP mode -programmer - id = "dragon_isp"; - desc = "Atmel AVR Dragon in ISP mode"; - baudrate = 115200; - type = "dragon_isp"; - connection_type = usb; -; - -# AVR Dragon in PP mode -programmer - id = "dragon_pp"; - desc = "Atmel AVR Dragon in PP mode"; - baudrate = 115200; - type = "dragon_pp"; - connection_type = usb; -; - -# AVR Dragon in HVSP mode -programmer - id = "dragon_hvsp"; - desc = "Atmel AVR Dragon in HVSP mode"; - baudrate = 115200; - type = "dragon_hvsp"; - connection_type = usb; -; - -# AVR Dragon in debugWire mode -programmer - id = "dragon_dw"; - desc = "Atmel AVR Dragon in debugWire mode"; - baudrate = 115200; - type = "dragon_dw"; - connection_type = usb; -; - -# AVR Dragon in PDI mode -programmer - id = "dragon_pdi"; - desc = "Atmel AVR Dragon in PDI mode"; - baudrate = 115200; - type = "dragon_pdi"; - connection_type = usb; -; - -programmer - id = "jtag3"; - desc = "Atmel AVR JTAGICE3 in JTAG mode"; - type = "jtagice3"; - connection_type = usb; - usbpid = 0x2110, 0x2140; -; - -programmer - id = "jtag3pdi"; - desc = "Atmel AVR JTAGICE3 in PDI mode"; - type = "jtagice3_pdi"; - connection_type = usb; - usbpid = 0x2110, 0x2140; -; - -programmer - id = "jtag3dw"; - desc = "Atmel AVR JTAGICE3 in debugWIRE mode"; - type = "jtagice3_dw"; - connection_type = usb; - usbpid = 0x2110, 0x2140; -; - -programmer - id = "jtag3isp"; - desc = "Atmel AVR JTAGICE3 in ISP mode"; - type = "jtagice3_isp"; - connection_type = usb; - usbpid = 0x2110, 0x2140; -; - -programmer - id = "xplainedpro"; - desc = "Atmel AVR XplainedPro in JTAG mode"; - type = "jtagice3"; - connection_type = usb; - usbpid = 0x2111; -; - -programmer - id = "xplainedmini"; - desc = "Atmel AVR XplainedMini in ISP mode"; - type = "jtagice3_isp"; - connection_type = usb; - usbpid = 0x2145; -; - -programmer - id = "xplainedmini_dw"; - desc = "Atmel AVR XplainedMini in debugWIRE mode"; - type = "jtagice3_dw"; - connection_type = usb; - usbpid = 0x2145; -; - -programmer - id = "atmelice"; - desc = "Atmel-ICE (ARM/AVR) in JTAG mode"; - type = "jtagice3"; - connection_type = usb; - usbpid = 0x2141; -; - -programmer - id = "atmelice_pdi"; - desc = "Atmel-ICE (ARM/AVR) in PDI mode"; - type = "jtagice3_pdi"; - connection_type = usb; - usbpid = 0x2141; -; - -programmer - id = "atmelice_dw"; - desc = "Atmel-ICE (ARM/AVR) in debugWIRE mode"; - type = "jtagice3_dw"; - connection_type = usb; - usbpid = 0x2141; -; - -programmer - id = "atmelice_isp"; - desc = "Atmel-ICE (ARM/AVR) in ISP mode"; - type = "jtagice3_isp"; - connection_type = usb; - usbpid = 0x2141; -; - - -programmer - id = "pavr"; - desc = "Jason Kyle's pAVR Serial Programmer"; - type = "avr910"; - connection_type = serial; -; - -programmer - id = "pickit2"; - desc = "MicroChip's PICkit2 Programmer"; - type = "pickit2"; - connection_type = usb; -; - -programmer - id = "flip1"; - desc = "FLIP USB DFU protocol version 1 (doc7618)"; - type = "flip1"; - connection_type = usb; -; - -programmer - id = "flip2"; - desc = "FLIP USB DFU protocol version 2 (AVR4023)"; - type = "flip2"; - connection_type = usb; -; - -@HAVE_PARPORT_BEGIN@ Inclusion of the following depends on --enable-parport -# Parallel port programmers. - -programmer - id = "bsd"; - desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/"; - type = "par"; - connection_type = parallel; - vcc = 2, 3, 4, 5; - reset = 7; - sck = 8; - mosi = 9; - miso = 10; -; - -programmer - id = "stk200"; - desc = "STK200"; - type = "par"; - connection_type = parallel; - buff = 4, 5; - sck = 6; - mosi = 7; - reset = 9; - miso = 10; -; - -# The programming dongle used by the popular Ponyprog -# utility. It is almost similar to the STK200 one, -# except that there is a LED indicating that the -# programming is currently in progress. - -programmer parent "stk200" - id = "pony-stk200"; - desc = "Pony Prog STK200"; - pgmled = 8; -; - -programmer - id = "dt006"; - desc = "Dontronics DT006"; - type = "par"; - connection_type = parallel; - reset = 4; - sck = 5; - mosi = 2; - miso = 11; -; - -programmer parent "dt006" - id = "bascom"; - desc = "Bascom SAMPLE programming cable"; -; - -programmer - id = "alf"; - desc = "Nightshade ALF-PgmAVR, http://nightshade.homeip.net/"; - type = "par"; - connection_type = parallel; - vcc = 2, 3, 4, 5; - buff = 6; - reset = 7; - sck = 8; - mosi = 9; - miso = 10; - errled = 1; - rdyled = 14; - pgmled = 16; - vfyled = 17; -; - -programmer - id = "sp12"; - desc = "Steve Bolt's Programmer"; - type = "par"; - connection_type = parallel; - vcc = 4,5,6,7,8; - reset = 3; - sck = 2; - mosi = 9; - miso = 11; -; - -programmer - id = "picoweb"; - desc = "Picoweb Programming Cable, http://www.picoweb.net/"; - type = "par"; - connection_type = parallel; - reset = 2; - sck = 3; - mosi = 4; - miso = 13; -; - -programmer - id = "abcmini"; - desc = "ABCmini Board, aka Dick Smith HOTCHIP"; - type = "par"; - connection_type = parallel; - reset = 4; - sck = 3; - mosi = 2; - miso = 10; -; - -programmer - id = "futurlec"; - desc = "Futurlec.com programming cable."; - type = "par"; - connection_type = parallel; - reset = 3; - sck = 2; - mosi = 1; - miso = 10; -; - - -# From the contributor of the "xil" jtag cable: -# The "vcc" definition isn't really vcc (the cable gets its power from -# the programming circuit) but is necessary to switch one of the -# buffer lines (trying to add it to the "buff" lines doesn't work in -# avrdude versions before 5.5j). -# With this, TMS connects to RESET, TDI to MOSI, TDO to MISO and TCK -# to SCK (plus vcc/gnd of course) -programmer - id = "xil"; - desc = "Xilinx JTAG cable"; - type = "par"; - connection_type = parallel; - mosi = 2; - sck = 3; - reset = 4; - buff = 5; - miso = 13; - vcc = 6; -; - - -programmer - id = "dapa"; - desc = "Direct AVR Parallel Access cable"; - type = "par"; - connection_type = parallel; - vcc = 3; - reset = 16; - sck = 1; - mosi = 2; - miso = 11; -; - -programmer - id = "atisp"; - desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th"; - type = "par"; - connection_type = parallel; - reset = ~6; - sck = ~8; - mosi = ~7; - miso = ~10; -; - -programmer - id = "ere-isp-avr"; - desc = "ERE ISP-AVR "; - type = "par"; - connection_type = parallel; - reset = ~4; - sck = 3; - mosi = 2; - miso = 10; -; - -programmer - id = "blaster"; - desc = "Altera ByteBlaster"; - type = "par"; - connection_type = parallel; - sck = 2; - miso = 11; - reset = 3; - mosi = 8; - buff = 14; -; - -# It is almost same as pony-stk200, except vcc on pin 5 to auto -# disconnect port (download on http://electropol.free.fr/spip/spip.php?article27) -programmer parent "pony-stk200" - id = "frank-stk200"; - desc = "Frank STK200"; - buff = ; # delete buff pin assignment - vcc = 5; -; - -# The AT98ISP Cable is a simple parallel dongle for AT89 family. -# http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877 -programmer - id = "89isp"; - desc = "Atmel at89isp cable"; - type = "par"; - connection_type = parallel; - reset = 17; - sck = 1; - mosi = 2; - miso = 10; -; - -@HAVE_PARPORT_END@ - -#This programmer bitbangs GPIO lines using the Linux sysfs GPIO interface -# -#To enable it set the configuration below to match the GPIO lines connected to the -#relevant ISP header pins and uncomment the entry definition. In case you don't -#have the required permissions to edit this system wide config file put the -#entry in a separate .conf file and use it with -C+.conf -#on the command line. -# -#To check if your avrdude build has support for the linuxgpio programmer compiled in, -#use -c?type on the command line and look for linuxgpio in the list. If it's not available -#you need pass the --enable-linuxgpio=yes option to configure and recompile avrdude. -# -#programmer -# id = "linuxgpio"; -# desc = "Use the Linux sysfs interface to bitbang GPIO lines"; -# type = "linuxgpio"; -# reset = ?; -# sck = ?; -# mosi = ?; -# miso = ?; -#; - -# some ultra cheap programmers use bitbanging on the -# serialport. -# -# PC - DB9 - Pins for RS232: -# -# GND 5 -- |O -# | O| <- 9 RI -# DTR 4 <- |O | -# | O| <- 8 CTS -# TXD 3 <- |O | -# | O| -> 7 RTS -# RXD 2 -> |O | -# | O| <- 6 DSR -# DCD 1 -> |O -# -# Using RXD is currently not supported. -# Using RI is not supported under Win32 but is supported under Posix. - -# serial ponyprog design (dasa2 in uisp) -# reset=!txd sck=rts mosi=dtr miso=cts - -programmer - id = "ponyser"; - desc = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts"; - type = "serbb"; - connection_type = serial; - reset = ~3; - sck = 7; - mosi = 4; - miso = 8; -; - -# Same as above, different name -# reset=!txd sck=rts mosi=dtr miso=cts - -programmer parent "ponyser" - id = "siprog"; - desc = "Lancos SI-Prog "; -; - -# unknown (dasa in uisp) -# reset=rts sck=dtr mosi=txd miso=cts - -programmer - id = "dasa"; - desc = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts"; - type = "serbb"; - connection_type = serial; - reset = 7; - sck = 4; - mosi = 3; - miso = 8; -; - -# unknown (dasa3 in uisp) -# reset=!dtr sck=rts mosi=txd miso=cts - -programmer - id = "dasa3"; - desc = "serial port banging, reset=!dtr sck=rts mosi=txd miso=cts"; - type = "serbb"; - connection_type = serial; - reset = ~4; - sck = 7; - mosi = 3; - miso = 8; -; - -# C2N232i (jumper configuration "auto") -# reset=dtr sck=!rts mosi=!txd miso=!cts - -programmer - id = "c2n232i"; - desc = "serial port banging, reset=dtr sck=!rts mosi=!txd miso=!cts"; - type = "serbb"; - connection_type = serial; - reset = 4; - sck = ~7; - mosi = ~3; - miso = ~8; -; - -# -# PART DEFINITIONS -# - -#------------------------------------------------------------ -# ATtiny11 -#------------------------------------------------------------ - -# This is an HVSP-only device. - -part - id = "t11"; - desc = "ATtiny11"; - stk500_devcode = 0x11; - signature = 0x1e 0x90 0x04; - chip_erase_delay = 20000; - - timeout = 200; - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, - 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, - 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 50; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - memory "eeprom" - size = 64; - blocksize = 64; - readsize = 256; - delay = 5; - ; - - memory "flash" - size = 1024; - blocksize = 128; - readsize = 256; - delay = 3; - ; - - memory "signature" - size = 3; - ; - - memory "lock" - size = 1; - ; - - memory "calibration" - size = 1; - ; - - memory "fuse" - size = 1; - ; -; - -#------------------------------------------------------------ -# ATtiny12 -#------------------------------------------------------------ - -part - id = "t12"; - desc = "ATtiny12"; - stk500_devcode = 0x12; - avr910_devcode = 0x55; - signature = 0x1e 0x90 0x05; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, - 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, - 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 50; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - memory "eeprom" - size = 64; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 8; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - size = 1024; - min_write_delay = 4500; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 5; - blocksize = 128; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "fuse" - size = 1; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; -; - -#------------------------------------------------------------ -# ATtiny13 -#------------------------------------------------------------ - -part - id = "t13"; - desc = "ATtiny13"; - has_debugwire = yes; - flash_instr = 0xB4, 0x0E, 0x1E; - eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; - stk500_devcode = 0x14; - signature = 0x1e 0x90 0x07; - chip_erase_delay = 4000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 90; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 0; - - memory "eeprom" - size = 64; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 5; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 1024; - page_size = 32; - num_pages = 32; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 0 0 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 0 0 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 0 0 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 2; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - ; - -; - - -#------------------------------------------------------------ -# ATtiny15 -#------------------------------------------------------------ - -part - id = "t15"; - desc = "ATtiny15"; - stk500_devcode = 0x13; - avr910_devcode = 0x56; - signature = 0x1e 0x90 0x06; - chip_erase_delay = 8200; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, - 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, - 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - hvspcmdexedelay = 5; - synchcycles = 6; - latchcycles = 16; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 50; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - memory "eeprom" - size = 64; - min_write_delay = 8200; - max_write_delay = 8200; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 10; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - size = 1024; - min_write_delay = 4100; - max_write_delay = 4100; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 5; - blocksize = 128; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "fuse" - size = 1; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x o o o o x x o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x", - "x x x x x x x x i i i i 1 1 i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; -; - -#------------------------------------------------------------ -# AT90s1200 -#------------------------------------------------------------ - -part - id = "1200"; - desc = "AT90S1200"; - is_at90s1200 = yes; - stk500_devcode = 0x33; - avr910_devcode = 0x13; - signature = 0x1e 0x90 0x01; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 1; - bytedelay = 0; - pollindex = 0; - pollvalue = 0xFF; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 64; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x x a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 20; - blocksize = 32; - readsize = 256; - ; - memory "flash" - size = 1024; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x02; - delay = 15; - blocksize = 128; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - ; - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - ; - ; - -#------------------------------------------------------------ -# AT90s4414 -#------------------------------------------------------------ - -part - id = "4414"; - desc = "AT90S4414"; - stk500_devcode = 0x50; - avr910_devcode = 0x28; - signature = 0x1e 0x92 0x01; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 256; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x80; - readback_p2 = 0x7f; - read = " 1 0 1 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - memory "flash" - size = 4096; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x7f; - readback_p2 = 0x7f; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - ; - -#------------------------------------------------------------ -# AT90s2313 -#------------------------------------------------------------ - -part - id = "2313"; - desc = "AT90S2313"; - stk500_devcode = 0x40; - avr910_devcode = 0x20; - signature = 0x1e 0x91 0x01; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 128; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x80; - readback_p2 = 0x7f; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - memory "flash" - size = 2048; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x7f; - readback_p2 = 0x7f; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x i i x", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - ; - -#------------------------------------------------------------ -# AT90s2333 -#------------------------------------------------------------ - -part - id = "2333"; -##### WARNING: No XML file for device 'AT90S2333'! ##### - desc = "AT90S2333"; - stk500_devcode = 0x42; - avr910_devcode = 0x34; - signature = 0x1e 0x91 0x05; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 128; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - size = 2048; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - pwroff_after_write = yes; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", - "x x x x x x x x x x x x x x x x"; - ; - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - ; - ; - - -#------------------------------------------------------------ -# AT90s2343 (also AT90s2323 and ATtiny22) -#------------------------------------------------------------ - -part - id = "2343"; - desc = "AT90S2343"; - stk500_devcode = 0x43; - avr910_devcode = 0x4c; - signature = 0x1e 0x91 0x03; - chip_erase_delay = 18000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00, - 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78, - 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 0; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 50; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - memory "eeprom" - size = 128; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - memory "flash" - size = 2048; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 128; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x o o o x x x x o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i", - "x x x x x x x x x x x x x x x x"; - ; - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x o o o x x x x o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - ; - ; - - -#------------------------------------------------------------ -# AT90s4433 -#------------------------------------------------------------ - -part - id = "4433"; - desc = "AT90S4433"; - stk500_devcode = 0x51; - avr910_devcode = 0x30; - signature = 0x1e 0x92 0x03; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 256; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "flash" - size = 4096; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - pwroff_after_write = yes; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", - "x x x x x x x x x x x x x x x x"; - ; - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - ; - ; - -#------------------------------------------------------------ -# AT90s4434 -#------------------------------------------------------------ - -part - id = "4434"; -##### WARNING: No XML file for device 'AT90S4434'! ##### - desc = "AT90S4434"; - stk500_devcode = 0x52; - avr910_devcode = 0x6c; - signature = 0x1e 0x92 0x02; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - memory "eeprom" - size = 256; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - ; - memory "flash" - size = 4096; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i", - "x x x x x x x x x x x x x x x x"; - ; - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - ; - ; - -#------------------------------------------------------------ -# AT90s8515 -#------------------------------------------------------------ - -part - id = "8515"; - desc = "AT90S8515"; - stk500_devcode = 0x60; - avr910_devcode = 0x38; - signature = 0x1e 0x93 0x01; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 512; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x80; - readback_p2 = 0x7f; - read = " 1 0 1 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "flash" - size = 8192; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x7f; - readback_p2 = 0x7f; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - ; - -#------------------------------------------------------------ -# AT90s8535 -#------------------------------------------------------------ - -part - id = "8535"; - desc = "AT90S8535"; - stk500_devcode = 0x61; - avr910_devcode = 0x68; - signature = 0x1e 0x93 0x03; - chip_erase_delay = 20000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 1; - - memory "eeprom" - size = 512; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0x00; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "flash" - size = 8192; - min_write_delay = 9000; - max_write_delay = 20000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write_lo = " 0 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - write_hi = " 0 1 0 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 128; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "fuse" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x x x o"; - write = "1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x o o x x x x x x"; - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - ; - -#------------------------------------------------------------ -# ATmega103 -#------------------------------------------------------------ - -part - id = "m103"; - desc = "ATmega103"; - stk500_devcode = 0xB1; - avr910_devcode = 0x41; - signature = 0x1e 0x97 0x01; - chip_erase_delay = 112000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x8E, 0x9E, 0x2E, 0x3E, 0xAE, 0xBE, - 0x4E, 0x5E, 0xCE, 0xDE, 0x6E, 0x7E, 0xEE, 0xDE, - 0x66, 0x76, 0xE6, 0xF6, 0x6A, 0x7A, 0xEA, 0x7A, - 0x7F, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 15; - chiperasepolltimeout = 0; - programfusepulsewidth = 2; - programfusepolltimeout = 0; - programlockpulsewidth = 0; - programlockpolltimeout = 10; - - memory "eeprom" - size = 4096; - min_write_delay = 4000; - max_write_delay = 9000; - readback_p1 = 0x80; - readback_p2 = 0x7f; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 22000; - max_write_delay = 56000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x11; - delay = 70; - blocksize = 256; - readsize = 256; - ; - - memory "fuse" - size = 1; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x x x o x o 1 o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 1 i 1 i i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x o o x"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATmega64 -#------------------------------------------------------------ - -part - id = "m64"; - desc = "ATmega64"; - has_jtag = yes; - stk500_devcode = 0xA0; - avr910_devcode = 0x45; - signature = 0x1e 0x96 0x02; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x22; - spmcr = 0x68; - allowfullpagebitstream = yes; - - ocdrev = 2; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 20; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - - - -#------------------------------------------------------------ -# ATmega128 -#------------------------------------------------------------ - -part - id = "m128"; - desc = "ATmega128"; - has_jtag = yes; - stk500_devcode = 0xB2; - avr910_devcode = 0x43; - signature = 0x1e 0x97 0x02; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x22; - spmcr = 0x68; - rampz = 0x3b; - allowfullpagebitstream = yes; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 12; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90CAN128 -#------------------------------------------------------------ - -part - id = "c128"; - desc = "AT90CAN128"; - has_jtag = yes; - stk500_devcode = 0xB3; -# avr910_devcode = 0x43; - signature = 0x1e 0x97 0x81; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - eecr = 0x3f; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - - mode = 0x41; - delay = 20; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90CAN64 -#------------------------------------------------------------ - -part - id = "c64"; - desc = "AT90CAN64"; - has_jtag = yes; - stk500_devcode = 0xB3; -# avr910_devcode = 0x43; - signature = 0x1e 0x96 0x81; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - eecr = 0x3f; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - - mode = 0x41; - delay = 20; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90CAN32 -#------------------------------------------------------------ - -part - id = "c32"; - desc = "AT90CAN32"; - has_jtag = yes; - stk500_devcode = 0xB3; -# avr910_devcode = 0x43; - signature = 0x1e 0x95 0x81; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - eecr = 0x3f; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - - mode = 0x41; - delay = 20; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 256; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATmega16 -#------------------------------------------------------------ - -part - id = "m16"; - desc = "ATmega16"; - has_jtag = yes; - stk500_devcode = 0x82; - avr910_devcode = 0x74; - signature = 0x1e 0x94 0x03; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 100; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = yes; - - ocdrev = 2; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x04; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "calibration" - size = 4; - - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATmega164P -#------------------------------------------------------------ - -# close to ATmega16 - -part parent "m16" - id = "m164p"; - desc = "ATmega164P"; - signature = 0x1e 0x94 0x0a; - - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - allowfullpagebitstream = no; - chip_erase_delay = 55000; - - ocdrev = 3; - ; - - -#------------------------------------------------------------ -# ATmega324P -#------------------------------------------------------------ - -# similar to ATmega164P - -part - id = "m324p"; - desc = "ATmega324P"; - has_jtag = yes; - stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one - avr910_devcode = 0x74; - signature = 0x1e 0x95 0x08; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 55000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATmega324PA -#------------------------------------------------------------ - -# similar to ATmega324P - -part parent "m324p" - id = "m324pa"; - desc = "ATmega324PA"; - signature = 0x1e 0x95 0x11; - - ocdrev = 3; - ; - - -#------------------------------------------------------------ -# ATmega644 -#------------------------------------------------------------ - -# similar to ATmega164 - -part - id = "m644"; - desc = "ATmega644"; - has_jtag = yes; - stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one - avr910_devcode = 0x74; - signature = 0x1e 0x96 0x09; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 55000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega644P -#------------------------------------------------------------ - -# similar to ATmega164p - -part parent "m644" - id = "m644p"; - desc = "ATmega644P"; - signature = 0x1e 0x96 0x0a; - - ocdrev = 3; - ; - - - -#------------------------------------------------------------ -# ATmega1284 -#------------------------------------------------------------ - -# similar to ATmega164 - -part - id = "m1284"; - desc = "ATmega1284"; - has_jtag = yes; - stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one - avr910_devcode = 0x74; - signature = 0x1e 0x97 0x06; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 55000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 256; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - - - -#------------------------------------------------------------ -# ATmega1284P -#------------------------------------------------------------ - -# similar to ATmega164p - -part - id = "m1284p"; - desc = "ATmega1284P"; - has_jtag = yes; - stk500_devcode = 0x82; # no STK500v1 support, use the ATmega16 one - avr910_devcode = 0x74; - signature = 0x1e 0x97 0x05; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 55000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 256; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - - - -#------------------------------------------------------------ -# ATmega162 -#------------------------------------------------------------ - -part - id = "m162"; - desc = "ATmega162"; - has_jtag = yes; - stk500_devcode = 0x83; - avr910_devcode = 0x63; - signature = 0x1e 0x94 0x04; - chip_erase_delay = 9000; - pagel = 0xd7; - bs2 = 0xa0; - - idr = 0x04; - spmcr = 0x57; - allowfullpagebitstream = yes; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - ocdrev = 2; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - - ; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 16000; - max_write_delay = 16000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 16000; - max_write_delay = 16000; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 16000; - max_write_delay = 16000; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 16000; - max_write_delay = 16000; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - - read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; -; - - - -#------------------------------------------------------------ -# ATmega163 -#------------------------------------------------------------ - -part - id = "m163"; - desc = "ATmega163"; - stk500_devcode = 0x81; - avr910_devcode = 0x64; - signature = 0x1e 0x94 0x02; - chip_erase_delay = 32000; - pagel = 0xd7; - bs2 = 0xa0; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 30; - programfusepulsewidth = 0; - programfusepolltimeout = 2; - programlockpulsewidth = 0; - programlockpolltimeout = 2; - - - memory "eeprom" - size = 512; - min_write_delay = 4000; - max_write_delay = 4000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 16000; - max_write_delay = 16000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x11; - delay = 20; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o x x o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i 1 1 i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x x x x x 1 o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x 1 1 1 1 1 i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x 0 x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega169 -#------------------------------------------------------------ - -part - id = "m169"; - desc = "ATmega169"; - has_jtag = yes; - stk500_devcode = 0x85; - avr910_devcode = 0x78; - signature = 0x1e 0x94 0x05; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - - ocdrev = 2; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega329 -#------------------------------------------------------------ - -part - id = "m329"; - desc = "ATmega329"; - has_jtag = yes; -# stk500_devcode = 0x85; # no STK500 support, only STK500v2 -# avr910_devcode = 0x?; # try the ATmega169 one: - avr910_devcode = 0x75; - signature = 0x1e 0x95 0x03; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega329P -#------------------------------------------------------------ -# Identical to ATmega329 except of the signature - -part parent "m329" - id = "m329p"; - desc = "ATmega329P"; - signature = 0x1e 0x95 0x0b; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega3290 -#------------------------------------------------------------ - -# identical to ATmega329 - -part parent "m329" - id = "m3290"; - desc = "ATmega3290"; - signature = 0x1e 0x95 0x04; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega3290P -#------------------------------------------------------------ - -# identical to ATmega3290 except of the signature - -part parent "m3290" - id = "m3290p"; - desc = "ATmega3290P"; - signature = 0x1e 0x95 0x0c; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega649 -#------------------------------------------------------------ - -part - id = "m649"; - desc = "ATmega649"; - has_jtag = yes; -# stk500_devcode = 0x85; # no STK500 support, only STK500v2 -# avr910_devcode = 0x?; # try the ATmega169 one: - avr910_devcode = 0x75; - signature = 0x1e 0x96 0x03; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega6490 -#------------------------------------------------------------ - -# identical to ATmega649 - -part parent "m649" - id = "m6490"; - desc = "ATmega6490"; - signature = 0x1e 0x96 0x04; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega32 -#------------------------------------------------------------ - -part - id = "m32"; - desc = "ATmega32"; - has_jtag = yes; - stk500_devcode = 0x91; - avr910_devcode = 0x72; - signature = 0x1e 0x95 0x02; - chip_erase_delay = 9000; - pagel = 0xd7; - bs2 = 0xa0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = yes; - - ocdrev = 2; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x04; - delay = 10; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega161 -#------------------------------------------------------------ - -part - id = "m161"; - desc = "ATmega161"; - stk500_devcode = 0x80; - avr910_devcode = 0x60; - signature = 0x1e 0x94 0x01; - chip_erase_delay = 28000; - pagel = 0xd7; - bs2 = 0xa0; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 30; - programfusepulsewidth = 0; - programfusepolltimeout = 2; - programlockpulsewidth = 0; - programlockpolltimeout = 2; - - memory "eeprom" - size = 512; - min_write_delay = 3400; - max_write_delay = 3400; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 5; - blocksize = 128; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 14000; - max_write_delay = 14000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 16; - blocksize = 128; - readsize = 256; - ; - - memory "fuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 x x x x x x x x", - "x x x x x x x x x o x o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x", - "x x x x x x x x 1 i 1 i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATmega8 -#------------------------------------------------------------ - -part - id = "m8"; - desc = "ATmega8"; - stk500_devcode = 0x70; - avr910_devcode = 0x76; - signature = 0x1e 0x93 0x07; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 10000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 2; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - size = 512; - page_size = 4; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 20; - blocksize = 128; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 10; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - - -#------------------------------------------------------------ -# ATmega8515 -#------------------------------------------------------------ - -part - id = "m8515"; - desc = "ATmega8515"; - stk500_devcode = 0x63; - avr910_devcode = 0x3A; - signature = 0x1e 0x93 0x06; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - size = 512; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 20; - blocksize = 128; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - - - -#------------------------------------------------------------ -# ATmega8535 -#------------------------------------------------------------ - -part - id = "m8535"; - desc = "ATmega8535"; - stk500_devcode = 0x64; - avr910_devcode = 0x69; - signature = 0x1e 0x93 0x08; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 6; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - size = 512; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - mode = 0x04; - delay = 20; - blocksize = 128; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 0 x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 2000; - max_write_delay = 2000; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 0 0 x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - - -#------------------------------------------------------------ -# ATtiny26 -#------------------------------------------------------------ - -part - id = "t26"; - desc = "ATtiny26"; - stk500_devcode = 0x21; - avr910_devcode = 0x5e; - signature = 0x1e 0x91 0x09; - pagel = 0xb3; - bs2 = 0xb2; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, - 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, - 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, - 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 2; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - size = 128; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - mode = 0x04; - delay = 10; - blocksize = 64; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 2048; - page_size = 32; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 16; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x x o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x x x x i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 4; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - -; - - -#------------------------------------------------------------ -# ATtiny261 -#------------------------------------------------------------ -# Close to ATtiny26 - -part - id = "t261"; - desc = "ATtiny261"; - has_debugwire = yes; - flash_instr = 0xB4, 0x00, 0x10; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -# stk500_devcode = 0x21; -# avr910_devcode = 0x5e; - signature = 0x1e 0x91 0x0c; - pagel = 0xb3; - bs2 = 0xb2; - chip_erase_delay = 4000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, - 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, - 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, - 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 2; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - size = 128; - page_size = 4; - num_pages = 32; - min_write_delay = 4000; - max_write_delay = 4000; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read = "1 0 1 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 x x x x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 2048; - page_size = 32; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x x x x a9 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x x o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - -; - - -#------------------------------------------------------------ -# ATtiny461 -#------------------------------------------------------------ -# Close to ATtiny261 - -part - id = "t461"; - desc = "ATtiny461"; - has_debugwire = yes; - flash_instr = 0xB4, 0x00, 0x10; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -# stk500_devcode = 0x21; -# avr910_devcode = 0x5e; - signature = 0x1e 0x92 0x08; - pagel = 0xb3; - bs2 = 0xb2; - chip_erase_delay = 4000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, - 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, - 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, - 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 2; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - size = 256; - page_size = 4; - num_pages = 64; - min_write_delay = 4000; - max_write_delay = 4000; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read = " 1 0 1 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x x o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - -; - - -#------------------------------------------------------------ -# ATtiny861 -#------------------------------------------------------------ -# Close to ATtiny461 - -part - id = "t861"; - desc = "ATtiny861"; - has_debugwire = yes; - flash_instr = 0xB4, 0x00, 0x10; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x00, 0xB4, 0x00, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -# stk500_devcode = 0x21; -# avr910_devcode = 0x5e; - signature = 0x1e 0x93 0x0d; - pagel = 0xb3; - bs2 = 0xb2; - chip_erase_delay = 4000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 0; - - pp_controlstack = - 0xC4, 0xE4, 0xC4, 0xE4, 0xCC, 0xEC, 0xCC, 0xEC, - 0xD4, 0xF4, 0xD4, 0xF4, 0xDC, 0xFC, 0xDC, 0xFC, - 0xC8, 0xE8, 0xD8, 0xF8, 0x4C, 0x6C, 0x5C, 0x7C, - 0xEC, 0xBC, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 2; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - size = 512; - num_pages = 128; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4000; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read = " 1 0 1 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0 x x x x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read_lo = " 0 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 x x x x x x x x", - "x x x x x x x x x x x x x x o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 1 1 1 i i", - "x x x x x x x x x x x x x x x x"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - -; - - -#------------------------------------------------------------ -# ATtiny28 -#------------------------------------------------------------ - -# This is an HVPP-only device. - -part - id = "t28"; - desc = "ATtiny28"; - stk500_devcode = 0x22; - avr910_devcode = 0x5c; - signature = 0x1e 0x91 0x07; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 0; - poweroffdelay = 0; - resetdelayms = 0; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "flash" - size = 2048; - page_size = 2; - readsize = 256; - delay = 5; - ; - - memory "signature" - size = 3; - ; - - memory "lock" - size = 1; - ; - - memory "calibration" - size = 1; - ; - - memory "fuse" - size = 1; - ; -; - - - -#------------------------------------------------------------ -# ATmega48 -#------------------------------------------------------------ - -part - id = "m48"; - desc = "ATmega48"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x59; -# avr910_devcode = 0x; - signature = 0x1e 0x92 0x05; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 45000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - page_size = 4; - size = 256; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x x x", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega48P -#------------------------------------------------------------ - -part parent "m48" - id = "m48p"; - desc = "ATmega48P"; - signature = 0x1e 0x92 0x0a; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# ATmega48PB -#------------------------------------------------------------ - -part parent "m48" - id = "m48pb"; - desc = "ATmega48PB"; - signature = 0x1e 0x92 0x10; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# ATmega88 -#------------------------------------------------------------ - -part - id = "m88"; - desc = "ATmega88"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x73; -# avr910_devcode = 0x; - signature = 0x1e 0x93 0x0a; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - page_size = 4; - size = 512; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega88P -#------------------------------------------------------------ - -part parent "m88" - id = "m88p"; - desc = "ATmega88P"; - signature = 0x1e 0x93 0x0f; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# ATmega88PB -#------------------------------------------------------------ - -part parent "m88" - id = "m88pb"; - desc = "ATmega88PB"; - signature = 0x1e 0x93 0x16; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# ATmega168 -#------------------------------------------------------------ - -part - id = "m168"; - desc = "ATmega168"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x86; - # avr910_devcode = 0x; - signature = 0x1e 0x94 0x06; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - page_size = 4; - size = 512; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; -; - -#------------------------------------------------------------ -# ATmega168P -#------------------------------------------------------------ - -part parent "m168" - id = "m168p"; - desc = "ATmega168P"; - signature = 0x1e 0x94 0x0b; - - ocdrev = 1; -; - -#------------------------------------------------------------ -# ATmega168PB -#------------------------------------------------------------ - -part parent "m168" - id = "m168pb"; - desc = "ATmega168PB"; - signature = 0x1e 0x94 0x15; - - ocdrev = 1; -; - -#------------------------------------------------------------ -# ATtiny88 -#------------------------------------------------------------ - -part - id = "t88"; - desc = "ATtiny88"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x73; -# avr910_devcode = 0x; - signature = 0x1e 0x93 0x11; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - page_size = 4; - size = 64; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 64; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega328 -#------------------------------------------------------------ - -part - id = "m328"; - desc = "ATmega328"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x86; - # avr910_devcode = 0x; - signature = 0x1e 0x95 0x14; - pagel = 0xd7; - bs2 = 0xc2; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; - page_size = 4; - size = 1024; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; -; - -part parent "m328" - id = "m328p"; - desc = "ATmega328P"; - signature = 0x1e 0x95 0x0F; - - ocdrev = 1; -; - -#------------------------------------------------------------ -# ATmega32m1 -#------------------------------------------------------------ - -part parent "m328" - id = "m32m1"; - desc = "ATmega32M1"; - # stk500_devcode = 0x; - # avr910_devcode = 0x; - signature = 0x1e 0x95 0x84; - bs2 = 0xe2; - - memory "efuse" - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x i i i i i i"; - ; -; - -#------------------------------------------------------------ -# ATtiny2313 -#------------------------------------------------------------ - -part - id = "t2313"; - desc = "ATtiny2313"; - has_debugwire = yes; - flash_instr = 0xB2, 0x0F, 0x1F; - eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; - stk500_devcode = 0x23; -## Use the ATtiny26 devcode: - avr910_devcode = 0x5e; - signature = 0x1e 0x91 0x0a; - pagel = 0xD4; - bs2 = 0xD6; - reset = io; - chip_erase_delay = 9000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, - 0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, - 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A, - 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 0; - - memory "eeprom" - size = 128; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 2048; - page_size = 32; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - -# The information in the data sheet of April/2004 is wrong, this works: - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - -# The information in the data sheet of April/2004 is wrong, this works: - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - -# The information in the data sheet of April/2004 is wrong, this works: - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny2313 has Signature Bytes: 0x1E 0x91 0x0A. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; -# The Tiny2313 has calibration data for both 4 MHz and 8 MHz. -# The information in the data sheet of April/2004 is wrong, this works: - - memory "calibration" - size = 2; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny4313 -#------------------------------------------------------------ - -part - id = "t4313"; - desc = "ATtiny4313"; - has_debugwire = yes; - flash_instr = 0xB2, 0x0F, 0x1F; - eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; - stk500_devcode = 0x23; -## Use the ATtiny26 devcode: - avr910_devcode = 0x5e; - signature = 0x1e 0x92 0x0d; - pagel = 0xD4; - bs2 = 0xD6; - reset = io; - chip_erase_delay = 9000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, - 0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, - 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A, - 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 0; - - memory "eeprom" - size = 256; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny4313 has Signature Bytes: 0x1E 0x92 0x0D. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 2; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90PWM2 -#------------------------------------------------------------ - -part - id = "pwm2"; - desc = "AT90PWM2"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x65; -## avr910_devcode = ?; - signature = 0x1e 0x93 0x81; - pagel = 0xD8; - bs2 = 0xE2; - reset = io; - chip_erase_delay = 9000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - size = 512; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 64; - readsize = 256; - ; -# AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90PWM3 -#------------------------------------------------------------ - -# Completely identical to AT90PWM2 (including the signature!) - -part parent "pwm2" - id = "pwm3"; - desc = "AT90PWM3"; - ; - -#------------------------------------------------------------ -# AT90PWM2B -#------------------------------------------------------------ -# Same as AT90PWM2 but different signature. - -part parent "pwm2" - id = "pwm2b"; - desc = "AT90PWM2B"; - signature = 0x1e 0x93 0x83; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# AT90PWM3B -#------------------------------------------------------------ - -# Completely identical to AT90PWM2B (including the signature!) - -part parent "pwm2b" - id = "pwm3b"; - desc = "AT90PWM3B"; - - ocdrev = 1; - ; - -#------------------------------------------------------------ -# AT90PWM316 -#------------------------------------------------------------ - -# Similar to AT90PWM3B, but with 16 kiB flash, 512 B EEPROM, and 1024 B SRAM. - -part parent "pwm3b" - id = "pwm316"; - desc = "AT90PWM316"; - signature = 0x1e 0x94 0x83; - - ocdrev = 1; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x21; - delay = 6; - blocksize = 128; - readsize = 256; - ; - ; - -#------------------------------------------------------------ -# AT90PWM216 -#------------------------------------------------------------ -# Completely identical to AT90PWM316 (including the signature!) - -part parent "pwm316" - id = "pwm216"; - desc = "AT90PWM216"; - ; - -#------------------------------------------------------------ -# ATtiny25 -#------------------------------------------------------------ - -part - id = "t25"; - desc = "ATtiny25"; - has_debugwire = yes; - flash_instr = 0xB4, 0x02, 0x12; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -## no STK500 devcode in XML file, use the ATtiny45 one - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x91 0x08; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 128; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 2048; - page_size = 32; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny25 has Signature Bytes: 0x1E 0x91 0x08. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny45 -#------------------------------------------------------------ - -part - id = "t45"; - desc = "ATtiny45"; - has_debugwire = yes; - flash_instr = 0xB4, 0x02, 0x12; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x92 0x06; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 256; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny45 has Signature Bytes: 0x1E 0x92 0x08. (Data sheet 2586C-AVR-06/05 (doc2586.pdf) indicates otherwise!) - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny85 -#------------------------------------------------------------ - -part - id = "t85"; - desc = "ATtiny85"; - has_debugwire = yes; - flash_instr = 0xB4, 0x02, 0x12; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -## no STK500 devcode in XML file, use the ATtiny45 one - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x93 0x0b; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 512; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny85 has Signature Bytes: 0x1E 0x93 0x08. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega640 -#------------------------------------------------------------ -# Almost same as ATmega1280, except for different memory sizes - -part - id = "m640"; - desc = "ATmega640"; - signature = 0x1e 0x96 0x08; - has_jtag = yes; -# stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega1280 -#------------------------------------------------------------ - -part - id = "m1280"; - desc = "ATmega1280"; - signature = 0x1e 0x97 0x03; - has_jtag = yes; -# stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega1281 -#------------------------------------------------------------ -# Identical to ATmega1280 - -part parent "m1280" - id = "m1281"; - desc = "ATmega1281"; - signature = 0x1e 0x97 0x04; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega2560 -#------------------------------------------------------------ - -part - id = "m2560"; - desc = "ATmega2560"; - signature = 0x1e 0x98 0x01; - has_jtag = yes; - stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 4; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 262144; - page_size = 256; - num_pages = 1024; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - load_ext_addr = " 0 1 0 0 1 1 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 0 a16", - " 0 0 0 0 0 0 0 0"; - - mode = 0x41; - delay = 10; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega2561 -#------------------------------------------------------------ - -part parent "m2560" - id = "m2561"; - desc = "ATmega2561"; - signature = 0x1e 0x98 0x02; - - ocdrev = 4; - ; - -#------------------------------------------------------------ -# ATmega128RFA1 -#------------------------------------------------------------ -# Identical to ATmega2561 but half the ROM - -part parent "m2561" - id = "m128rfa1"; - desc = "ATmega128RFA1"; - signature = 0x1e 0xa7 0x01; - chip_erase_delay = 55000; - bs2 = 0xE2; - - ocdrev = 3; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 50000; - max_write_delay = 50000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 256; - readsize = 256; - ; - ; - -#------------------------------------------------------------ -# ATmega256RFR2 -#------------------------------------------------------------ - -part parent "m2561" - id = "m256rfr2"; - desc = "ATmega256RFR2"; - signature = 0x1e 0xa8 0x02; - chip_erase_delay = 18500; - bs2 = 0xE2; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 8192; - min_write_delay = 13000; - max_write_delay = 13000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - - ocdrev = 4; - ; - -#------------------------------------------------------------ -# ATmega128RFR2 -#------------------------------------------------------------ - -part parent "m128rfa1" - id = "m128rfr2"; - desc = "ATmega128RFR2"; - signature = 0x1e 0xa7 0x02; - - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega64RFR2 -#------------------------------------------------------------ - -part parent "m128rfa1" - id = "m64rfr2"; - desc = "ATmega64RFR2"; - signature = 0x1e 0xa6 0x02; - - - ocdrev = 3; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 50000; - max_write_delay = 50000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 256; - readsize = 256; - ; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 13000; - max_write_delay = 13000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - - ; - -#------------------------------------------------------------ -# ATmega2564RFR2 -#------------------------------------------------------------ - -part parent "m256rfr2" - id = "m2564rfr2"; - desc = "ATmega2564RFR2"; - signature = 0x1e 0xa8 0x03; - ; - -#------------------------------------------------------------ -# ATmega1284RFR2 -#------------------------------------------------------------ - -part parent "m128rfr2" - id = "m1284rfr2"; - desc = "ATmega1284RFR2"; - signature = 0x1e 0xa7 0x03; - ; - -#------------------------------------------------------------ -# ATmega644RFR2 -#------------------------------------------------------------ - -part parent "m64rfr2" - id = "m644rfr2"; - desc = "ATmega644RFR2"; - signature = 0x1e 0xa6 0x03; - ; - -#------------------------------------------------------------ -# ATtiny24 -#------------------------------------------------------------ - -part - id = "t24"; - desc = "ATtiny24"; - has_debugwire = yes; - flash_instr = 0xB4, 0x07, 0x17; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -## no STK500 devcode in XML file, use the ATtiny45 one - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x91 0x0b; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 70; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 128; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 2048; - page_size = 32; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x x a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny24 has Signature Bytes: 0x1E 0x91 0x0B. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x x x x x x x i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny44 -#------------------------------------------------------------ - -part - id = "t44"; - desc = "ATtiny44"; - has_debugwire = yes; - flash_instr = 0xB4, 0x07, 0x17; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -## no STK500 devcode in XML file, use the ATtiny45 one - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x92 0x07; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 70; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 256; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny44 has Signature Bytes: 0x1E 0x92 0x07. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x x x x x x x i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny84 -#------------------------------------------------------------ - -part - id = "t84"; - desc = "ATtiny84"; - has_debugwire = yes; - flash_instr = 0xB4, 0x07, 0x17; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; -## no STK500 devcode in XML file, use the ATtiny45 one - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x93 0x0c; - reset = io; - chip_erase_delay = 4500; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - hvsp_controlstack = - 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66, - 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78, - 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10, - 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0F; - hventerstabdelay = 100; - hvspcmdexedelay = 0; - synchcycles = 6; - latchcycles = 1; - togglevtg = 1; - poweroffdelay = 25; - resetdelayms = 0; - resetdelayus = 70; - hvleavestabdelay = 100; - resetdelay = 25; - chiperasepolltimeout = 40; - chiperasetime = 0; - programfusepolltimeout = 25; - programlockpolltimeout = 25; - - ocdrev = 1; - - memory "eeprom" - size = 512; - paged = no; - page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8", - "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " x a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 8192; - page_size = 64; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 32; - readsize = 256; - ; -# ATtiny84 has Signature Bytes: 0x1E 0x93 0x0C. - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x x x x x x x i i"; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATtiny43U -#------------------------------------------------------------ - -part - id = "t43u"; - desc = "ATtiny43u"; - has_debugwire = yes; - flash_instr = 0xB4, 0x07, 0x17; - eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, - 0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, - 0x99, 0xE1, 0xBB, 0xAC; - stk500_devcode = 0x14; -## avr910_devcode = ?; -## Try the AT90S2313 devcode: - avr910_devcode = 0x20; - signature = 0x1e 0x92 0x0C; - reset = io; - chip_erase_delay = 1000; - - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, 0x4E, 0x5E, - 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, 0x06, 0x16, 0x46, 0x56, - 0x0A, 0x1A, 0x4A, 0x5A, 0x1E, 0x7C, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - hvspcmdexedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 20; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - memory "eeprom" - size = 64; - paged = yes; - page_size = 4; - num_pages = 16; - min_write_delay = 4000; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", - "0 0 a4 a3 a2 a1 a0 o o o o o o o o"; - - write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", - "0 0 a5 a4 a3 a2 a1 a0 i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x x", - " 0 0 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 5; - blocksize = 4; - readsize = 256; - ; - memory "flash" - paged = yes; - size = 4096; - page_size = 64; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x x a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 64; - readsize = 256; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - memory "lock" - size = 1; - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x x x x i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 4500; - max_write_delay = 4500; - ; - - memory "calibration" - size = 2; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 a0 o o o o o o o o"; - ; -; - -#------------------------------------------------------------ -# ATmega32u4 -#------------------------------------------------------------ - -part - id = "m32u4"; - desc = "ATmega32U4"; - signature = 0x1e 0x95 0x87; - usbpid = 0x2ff4; - has_jtag = yes; -# stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90USB646 -#------------------------------------------------------------ - -part - id = "usb646"; - desc = "AT90USB646"; - signature = 0x1e 0x96 0x82; - usbpid = 0x2ff9; - has_jtag = yes; -# stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x x a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90USB647 -#------------------------------------------------------------ -# identical to AT90USB646 - -part parent "usb646" - id = "usb647"; - desc = "AT90USB647"; - signature = 0x1e 0x96 0x82; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# AT90USB1286 -#------------------------------------------------------------ - -part - id = "usb1286"; - desc = "AT90USB1286"; - signature = 0x1e 0x97 0x82; - usbpid = 0x2ffb; - has_jtag = yes; -# stk500_devcode = 0xB2; -# avr910_devcode = 0x43; - chip_erase_delay = 9000; - pagel = 0xD7; - bs2 = 0xA0; - reset = dedicated; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - rampz = 0x3b; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 4096; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " x x x x a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 131072; - page_size = 256; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 x x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 256; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x x i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 x x x x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 x x x x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90USB1287 -#------------------------------------------------------------ -# identical to AT90USB1286 - -part parent "usb1286" - id = "usb1287"; - desc = "AT90USB1287"; - signature = 0x1e 0x97 0x82; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# AT90USB162 -#------------------------------------------------------------ - -part - id = "usb162"; - desc = "AT90USB162"; - has_jtag = no; - has_debugwire = yes; - signature = 0x1e 0x94 0x82; - usbpid = 0x2ffa; - chip_erase_delay = 9000; - reset = io; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - pagel = 0xD7; - bs2 = 0xC6; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - num_pages = 128; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# AT90USB82 -#------------------------------------------------------------ -# Changes against AT90USB162 (beside IDs) -# memory "flash" -# size = 8192; -# num_pages = 64; - -part - id = "usb82"; - desc = "AT90USB82"; - has_jtag = no; - has_debugwire = yes; - signature = 0x1e 0x93 0x82; - usbpid = 0x2ff7; - chip_erase_delay = 9000; - reset = io; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - pagel = 0xD7; - bs2 = 0xC6; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - num_pages = 128; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 8192; - page_size = 128; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega32U2 -#------------------------------------------------------------ -# Changes against AT90USB162 (beside IDs) -# memory "flash" -# size = 32768; -# num_pages = 256; -# memory "eeprom" -# size = 1024; -# num_pages = 256; -part - id = "m32u2"; - desc = "ATmega32U2"; - has_jtag = no; - has_debugwire = yes; - signature = 0x1e 0x95 0x8a; - usbpid = 0x2ff0; - chip_erase_delay = 9000; - reset = io; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - pagel = 0xD7; - bs2 = 0xC6; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - num_pages = 256; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; -#------------------------------------------------------------ -# ATmega16U2 -#------------------------------------------------------------ -# Changes against ATmega32U2 (beside IDs) -# memory "flash" -# size = 16384; -# num_pages = 128; -# memory "eeprom" -# size = 512; -# num_pages = 128; -part - id = "m16u2"; - desc = "ATmega16U2"; - has_jtag = no; - has_debugwire = yes; - signature = 0x1e 0x94 0x89; - usbpid = 0x2fef; - chip_erase_delay = 9000; - reset = io; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - pagel = 0xD7; - bs2 = 0xC6; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - num_pages = 128; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 128; - num_pages = 128; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega8U2 -#------------------------------------------------------------ -# Changes against ATmega16U2 (beside IDs) -# memory "flash" -# size = 8192; -# page_size = 64; -# blocksize = 64; - -part - id = "m8u2"; - desc = "ATmega8U2"; - has_jtag = no; - has_debugwire = yes; - signature = 0x1e 0x93 0x89; - usbpid = 0x2fee; - chip_erase_delay = 9000; - reset = io; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - pagel = 0xD7; - bs2 = 0xC6; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - ocdrev = 1; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 512; - num_pages = 128; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0x00; - readback_p2 = 0x00; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 20; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 8192; - page_size = 128; - num_pages = 64; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0x00; - readback_p2 = 0x00; - read_lo = " 0 0 1 0 0 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " x x x x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - "a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - ; - - memory "lfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x i i i i i i i i"; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; - ; -#------------------------------------------------------------ -# ATmega325 -#------------------------------------------------------------ - -part - id = "m325"; - desc = "ATmega325"; - signature = 0x1e 0x95 0x05; - has_jtag = yes; -# stk500_devcode = 0x??; # No STK500v1 support? -# avr910_devcode = 0x??; # Try the ATmega16 one - avr910_devcode = 0x74; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 4; /* for parallel programming */ - size = 1024; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 0 0 a9 a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 32768; - page_size = 128; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 0 0 0 0 0", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 0 0 0 0 0", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0", - "0 0 0 0 0 0 0 0 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "0 0 0 0 0 0 0 0 i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "0 0 0 0 0 0 0 0 i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega645 -#------------------------------------------------------------ - -part - id = "m645"; - desc = "ATmega645"; - signature = 0x1E 0x96 0x05; - has_jtag = yes; -# stk500_devcode = 0x??; # No STK500v1 support? -# avr910_devcode = 0x??; # Try the ATmega16 one - avr910_devcode = 0x74; - pagel = 0xd7; - bs2 = 0xa0; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, - 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, - 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, - 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - idr = 0x31; - spmcr = 0x57; - allowfullpagebitstream = no; - - ocdrev = 3; - - memory "eeprom" - paged = no; /* leave this "no" */ - page_size = 8; /* for parallel programming */ - size = 2048; - min_write_delay = 9000; - max_write_delay = 9000; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 0 0 0 a10 a9 a8", - " a7 a6 a5 a4 a3 0 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 10; - blocksize = 8; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 65536; - page_size = 256; - num_pages = 256; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 0 0 0 0 0", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 0 0 0 0 0", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " a15 a14 a13 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " 0 0 0 0 0 0 0 0"; - - mode = 0x41; - delay = 10; - blocksize = 128; - readsize = 256; - ; - - memory "lock" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0", - "0 0 0 0 0 0 0 0 1 1 i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "lfuse" - size = 1; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "0 0 0 0 0 0 0 0 i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "hfuse" - size = 1; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "0 0 0 0 0 0 0 0 i i i i i i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "efuse" - size = 1; - - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "0 0 0 0 0 0 0 0 1 1 1 1 1 i i i"; - min_write_delay = 9000; - max_write_delay = 9000; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 a1 a0 o o o o o o o o"; - ; - - memory "calibration" - size = 1; - - read = "0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - ; - -#------------------------------------------------------------ -# ATmega3250 -#------------------------------------------------------------ - -part parent "m325" - id = "m3250"; - desc = "ATmega3250"; - signature = 0x1E 0x95 0x06; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# ATmega6450 -#------------------------------------------------------------ - -part parent "m645" - id = "m6450"; - desc = "ATmega6450"; - signature = 0x1E 0x96 0x06; - - ocdrev = 3; - ; - -#------------------------------------------------------------ -# AVR XMEGA family common values -#------------------------------------------------------------ - -part - id = ".xmega"; - desc = "AVR XMEGA family common values"; - has_pdi = yes; - nvm_base = 0x01c0; - mcu_base = 0x0090; - - memory "signature" - size = 3; - offset = 0x1000090; - ; - - memory "prodsig" - size = 0x32; - offset = 0x8e0200; - page_size = 0x32; - readsize = 0x32; - ; - - memory "fuse1" - size = 1; - offset = 0x8f0021; - ; - - memory "fuse2" - size = 1; - offset = 0x8f0022; - ; - - memory "fuse4" - size = 1; - offset = 0x8f0024; - ; - - memory "fuse5" - size = 1; - offset = 0x8f0025; - ; - - memory "lock" - size = 1; - offset = 0x8f0027; - ; - - memory "data" - # SRAM, only used to supply the offset - offset = 0x1000000; - ; -; - -#------------------------------------------------------------ -# ATxmega16A4U -#------------------------------------------------------------ - -part parent ".xmega" - id = "x16a4u"; - desc = "ATxmega16A4U"; - signature = 0x1e 0x94 0x41; - usbpid = 0x2fe3; - - memory "eeprom" - size = 0x400; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x4000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x803000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "boot" - size = 0x1000; - offset = 0x804000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "flash" - size = 0x5000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "usersig" - size = 0x100; - offset = 0x8e0400; - page_size = 0x100; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega16C4 -#------------------------------------------------------------ - -part parent "x16a4u" - id = "x16c4"; - desc = "ATxmega16C4"; - signature = 0x1e 0x95 0x44; -; - -#------------------------------------------------------------ -# ATxmega16D4 -#------------------------------------------------------------ - -part parent "x16a4u" - id = "x16d4"; - desc = "ATxmega16D4"; - signature = 0x1e 0x94 0x42; -; - -#------------------------------------------------------------ -# ATxmega16A4 -#------------------------------------------------------------ - -part parent "x16a4u" - id = "x16a4"; - desc = "ATxmega16A4"; - signature = 0x1e 0x94 0x41; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega32A4U -#------------------------------------------------------------ - -part parent ".xmega" - id = "x32a4u"; - desc = "ATxmega32A4U"; - signature = 0x1e 0x95 0x41; - usbpid = 0x2fe4; - - memory "eeprom" - size = 0x400; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x8000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x807000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "boot" - size = 0x1000; - offset = 0x808000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "flash" - size = 0x9000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "usersig" - size = 0x100; - offset = 0x8e0400; - page_size = 0x100; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega32C4 -#------------------------------------------------------------ - -part parent "x32a4u" - id = "x32c4"; - desc = "ATxmega32C4"; - signature = 0x1e 0x94 0x43; -; - -#------------------------------------------------------------ -# ATxmega32D4 -#------------------------------------------------------------ - -part parent "x32a4u" - id = "x32d4"; - desc = "ATxmega32D4"; - signature = 0x1e 0x95 0x42; -; - -#------------------------------------------------------------ -# ATxmega32A4 -#------------------------------------------------------------ - -part parent "x32a4u" - id = "x32a4"; - desc = "ATxmega32A4"; - signature = 0x1e 0x95 0x41; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega64A4U -#------------------------------------------------------------ - -part parent ".xmega" - id = "x64a4u"; - desc = "ATxmega64A4U"; - signature = 0x1e 0x96 0x46; - usbpid = 0x2fe5; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x10000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x80f000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "boot" - size = 0x1000; - offset = 0x810000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "flash" - size = 0x11000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "usersig" - size = 0x100; - offset = 0x8e0400; - page_size = 0x100; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega64C3 -#------------------------------------------------------------ - -part parent "x64a4u" - id = "x64c3"; - desc = "ATxmega64C3"; - signature = 0x1e 0x96 0x49; - usbpid = 0x2fd6; -; - -#------------------------------------------------------------ -# ATxmega64D3 -#------------------------------------------------------------ - -part parent "x64a4u" - id = "x64d3"; - desc = "ATxmega64D3"; - signature = 0x1e 0x96 0x4a; -; - -#------------------------------------------------------------ -# ATxmega64D4 -#------------------------------------------------------------ - -part parent "x64a4u" - id = "x64d4"; - desc = "ATxmega64D4"; - signature = 0x1e 0x96 0x47; -; - -#------------------------------------------------------------ -# ATxmega64A1 -#------------------------------------------------------------ - -part parent "x64a4u" - id = "x64a1"; - desc = "ATxmega64A1"; - signature = 0x1e 0x96 0x4e; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega64A1U -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64a1u"; - desc = "ATxmega64A1U"; - signature = 0x1e 0x96 0x4e; - usbpid = 0x2fe8; -; - -#------------------------------------------------------------ -# ATxmega64A3 -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64a3"; - desc = "ATxmega64A3"; - signature = 0x1e 0x96 0x42; -; - -#------------------------------------------------------------ -# ATxmega64A3U -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64a3u"; - desc = "ATxmega64A3U"; - signature = 0x1e 0x96 0x42; - usbpid = 0x2fe5; -; - -#------------------------------------------------------------ -# ATxmega64A4 -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64a4"; - desc = "ATxmega64A4"; - signature = 0x1e 0x96 0x46; -; - -#------------------------------------------------------------ -# ATxmega64B1 -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64b1"; - desc = "ATxmega64B1"; - signature = 0x1e 0x96 0x52; - usbpid = 0x2fe1; -; - -#------------------------------------------------------------ -# ATxmega64B3 -#------------------------------------------------------------ - -part parent "x64a1" - id = "x64b3"; - desc = "ATxmega64B3"; - signature = 0x1e 0x96 0x51; - usbpid = 0x2fdf; -; - -#------------------------------------------------------------ -# ATxmega128C3 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x128c3"; - desc = "ATxmega128C3"; - signature = 0x1e 0x97 0x52; - usbpid = 0x2fd7; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x20000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "apptable" - size = 0x2000; - offset = 0x81e000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x820000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "flash" - size = 0x22000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "usersig" - size = 0x200; - offset = 0x8e0400; - page_size = 0x200; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega128D3 -#------------------------------------------------------------ - -part parent "x128c3" - id = "x128d3"; - desc = "ATxmega128D3"; - signature = 0x1e 0x97 0x48; -; - -#------------------------------------------------------------ -# ATxmega128D4 -#------------------------------------------------------------ - -part parent "x128c3" - id = "x128d4"; - desc = "ATxmega128D4"; - signature = 0x1e 0x97 0x47; -; - -#------------------------------------------------------------ -# ATxmega128A1 -#------------------------------------------------------------ - -part parent "x128c3" - id = "x128a1"; - desc = "ATxmega128A1"; - signature = 0x1e 0x97 0x4c; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega128A1 revision D -#------------------------------------------------------------ - -part parent "x128a1" - id = "x128a1d"; - desc = "ATxmega128A1revD"; - signature = 0x1e 0x97 0x41; -; - -#------------------------------------------------------------ -# ATxmega128A1U -#------------------------------------------------------------ - -part parent "x128a1" - id = "x128a1u"; - desc = "ATxmega128A1U"; - signature = 0x1e 0x97 0x4c; - usbpid = 0x2fed; -; - -#------------------------------------------------------------ -# ATxmega128A3 -#------------------------------------------------------------ - -part parent "x128a1" - id = "x128a3"; - desc = "ATxmega128A3"; - signature = 0x1e 0x97 0x42; -; - -#------------------------------------------------------------ -# ATxmega128A3U -#------------------------------------------------------------ - -part parent "x128a1" - id = "x128a3u"; - desc = "ATxmega128A3U"; - signature = 0x1e 0x97 0x42; - usbpid = 0x2fe6; -; - -#------------------------------------------------------------ -# ATxmega128A4 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x128a4"; - desc = "ATxmega128A4"; - signature = 0x1e 0x97 0x46; - has_jtag = yes; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x20000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x81f000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x820000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "flash" - size = 0x22000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "usersig" - size = 0x200; - offset = 0x8e0400; - page_size = 0x200; - readsize = 0x100; - ; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega128A4U -#------------------------------------------------------------ - -part parent ".xmega" - id = "x128a4u"; - desc = "ATxmega128A4U"; - signature = 0x1e 0x97 0x46; - usbpid = 0x2fde; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x20000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x81f000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x820000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "flash" - size = 0x22000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "usersig" - size = 0x100; - offset = 0x8e0400; - page_size = 0x100; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega128B1 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x128b1"; - desc = "ATxmega128B1"; - signature = 0x1e 0x97 0x4d; - usbpid = 0x2fea; - has_jtag = yes; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x20000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "apptable" - size = 0x2000; - offset = 0x81e000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x820000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "flash" - size = 0x22000; - offset = 0x800000; - page_size = 0x100; - readsize = 0x100; - ; - - memory "usersig" - size = 0x100; - offset = 0x8e0400; - page_size = 0x100; - readsize = 0x100; - ; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega128B3 -#------------------------------------------------------------ - -part parent "x128b1" - id = "x128b3"; - desc = "ATxmega128B3"; - signature = 0x1e 0x97 0x4b; - usbpid = 0x2fe0; -; - -#------------------------------------------------------------ -# ATxmega192C3 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x192c3"; - desc = "ATxmega192C3"; - signature = 0x1e 0x97 0x51; - # usbpid = 0x2f??; - - memory "eeprom" - size = 0x800; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x30000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "apptable" - size = 0x2000; - offset = 0x82e000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x830000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "flash" - size = 0x32000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "usersig" - size = 0x200; - offset = 0x8e0400; - page_size = 0x200; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega192D3 -#------------------------------------------------------------ - -part parent "x192c3" - id = "x192d3"; - desc = "ATxmega192D3"; - signature = 0x1e 0x97 0x49; -; - -#------------------------------------------------------------ -# ATxmega192A1 -#------------------------------------------------------------ - -part parent "x192c3" - id = "x192a1"; - desc = "ATxmega192A1"; - signature = 0x1e 0x97 0x4e; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega192A3 -#------------------------------------------------------------ - -part parent "x192a1" - id = "x192a3"; - desc = "ATxmega192A3"; - signature = 0x1e 0x97 0x44; -; - -#------------------------------------------------------------ -# ATxmega192A3U -#------------------------------------------------------------ - -part parent "x192a1" - id = "x192a3u"; - desc = "ATxmega192A3U"; - signature = 0x1e 0x97 0x44; - usbpid = 0x2fe7; -; - -#------------------------------------------------------------ -# ATxmega256C3 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x256c3"; - desc = "ATxmega256C3"; - signature = 0x1e 0x98 0x46; - usbpid = 0x2fda; - - memory "eeprom" - size = 0x1000; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x40000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "apptable" - size = 0x2000; - offset = 0x83e000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x840000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "flash" - size = 0x42000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "usersig" - size = 0x200; - offset = 0x8e0400; - page_size = 0x200; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega256D3 -#------------------------------------------------------------ - -part parent "x256c3" - id = "x256d3"; - desc = "ATxmega256D3"; - signature = 0x1e 0x98 0x44; -; - -#------------------------------------------------------------ -# ATxmega256A1 -#------------------------------------------------------------ - -part parent "x256c3" - id = "x256a1"; - desc = "ATxmega256A1"; - signature = 0x1e 0x98 0x46; - has_jtag = yes; - - memory "fuse0" - size = 1; - offset = 0x8f0020; - ; -; - -#------------------------------------------------------------ -# ATxmega256A3 -#------------------------------------------------------------ - -part parent "x256a1" - id = "x256a3"; - desc = "ATxmega256A3"; - signature = 0x1e 0x98 0x42; -; - -#------------------------------------------------------------ -# ATxmega256A3U -#------------------------------------------------------------ - -part parent "x256a1" - id = "x256a3u"; - desc = "ATxmega256A3U"; - signature = 0x1e 0x98 0x42; - usbpid = 0x2fec; -; - -#------------------------------------------------------------ -# ATxmega256A3B -#------------------------------------------------------------ - -part parent "x256a1" - id = "x256a3b"; - desc = "ATxmega256A3B"; - signature = 0x1e 0x98 0x43; -; - -#------------------------------------------------------------ -# ATxmega256A3BU -#------------------------------------------------------------ - -part parent "x256a1" - id = "x256a3bu"; - desc = "ATxmega256A3BU"; - signature = 0x1e 0x98 0x43; - usbpid = 0x2fe2; -; - -#------------------------------------------------------------ -# ATxmega384C3 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x384c3"; - desc = "ATxmega384C3"; - signature = 0x1e 0x98 0x45; - usbpid = 0x2fdb; - - memory "eeprom" - size = 0x1000; - offset = 0x8c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x60000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "apptable" - size = 0x2000; - offset = 0x85e000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "boot" - size = 0x2000; - offset = 0x860000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "flash" - size = 0x62000; - offset = 0x800000; - page_size = 0x200; - readsize = 0x100; - ; - - memory "usersig" - size = 0x200; - offset = 0x8e0400; - page_size = 0x200; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega384D3 -#------------------------------------------------------------ - -part parent "x384c3" - id = "x384d3"; - desc = "ATxmega384D3"; - signature = 0x1e 0x98 0x47; -; - -#------------------------------------------------------------ -# ATxmega8E5 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x8e5"; - desc = "ATxmega8E5"; - signature = 0x1e 0x93 0x41; - - memory "eeprom" - size = 0x0200; - offset = 0x08c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x2000; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "apptable" - size = 0x800; - offset = 0x00801800; - page_size = 0x80; - readsize = 0x100; - ; - - memory "boot" - size = 0x800; - offset = 0x00802000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "flash" - size = 0x2800; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "usersig" - size = 0x80; - offset = 0x8e0400; - page_size = 0x80; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega16E5 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x16e5"; - desc = "ATxmega16E5"; - signature = 0x1e 0x94 0x45; - - memory "eeprom" - size = 0x0200; - offset = 0x08c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x4000; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x00803000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "boot" - size = 0x1000; - offset = 0x00804000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "flash" - size = 0x5000; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "usersig" - size = 0x80; - offset = 0x8e0400; - page_size = 0x80; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# ATxmega32E5 -#------------------------------------------------------------ - -part parent ".xmega" - id = "x32e5"; - desc = "ATxmega32E5"; - signature = 0x1e 0x95 0x4c; - - memory "eeprom" - size = 0x0400; - offset = 0x08c0000; - page_size = 0x20; - readsize = 0x100; - ; - - memory "application" - size = 0x8000; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "apptable" - size = 0x1000; - offset = 0x00807000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "boot" - size = 0x1000; - offset = 0x00808000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "flash" - size = 0x9000; - offset = 0x0800000; - page_size = 0x80; - readsize = 0x100; - ; - - memory "usersig" - size = 0x80; - offset = 0x8e0400; - page_size = 0x80; - readsize = 0x100; - ; -; - -#------------------------------------------------------------ -# AVR32UC3A0512 -#------------------------------------------------------------ - -part - id = "uc3a0512"; - desc = "AT32UC3A0512"; - signature = 0xED 0xC0 0x3F; - has_jtag = yes; - is_avr32 = yes; - - memory "flash" - paged = yes; - page_size = 512; # bytes - readsize = 512; # bytes - num_pages = 1024; # could be set dynamicly - size = 0x00080000; # could be set dynamicly - offset = 0x80000000; - ; -; - -part parent "uc3a0512" - id = "ucr2"; - desc = "deprecated, use 'uc3a0512'"; -; - -#------------------------------------------------------------ -# ATtiny1634. -#------------------------------------------------------------ - -part - id = "t1634"; - desc = "ATtiny1634"; - has_debugwire = yes; - flash_instr = 0xB6, 0x01, 0x11; - eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, - 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, - 0x99, 0xF9, 0xBB, 0xAF; - stk500_devcode = 0x86; - # avr910_devcode = 0x; - signature = 0x1e 0x94 0x12; - pagel = 0xB3; - bs2 = 0xB1; - reset = io; - chip_erase_delay = 9000; - pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", - "x x x x x x x x x x x x x x x x"; - - chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", - "x x x x x x x x x x x x x x x x"; - - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - bytedelay = 0; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pollmethod = 1; - - pp_controlstack = - 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, - 0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, - 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A, - 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - hventerstabdelay = 100; - progmodedelay = 0; - latchcycles = 0; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; - resetdelayus = 0; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 0; - chiperasepolltimeout = 10; - programfusepulsewidth = 0; - programfusepolltimeout = 5; - programlockpulsewidth = 0; - programlockpolltimeout = 5; - - memory "eeprom" - paged = no; - page_size = 4; - size = 256; - min_write_delay = 3600; - max_write_delay = 3600; - readback_p1 = 0xff; - readback_p2 = 0xff; - read = " 1 0 1 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - write = " 1 1 0 0 0 0 0 0", - " 0 0 0 x x x x a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_lo = " 1 1 0 0 0 0 0 1", - " 0 0 0 0 0 0 0 0", - " 0 0 0 0 0 0 a1 a0", - " i i i i i i i i"; - - writepage = " 1 1 0 0 0 0 1 0", - " 0 0 x x x x x a8", - " a7 a6 a5 a4 a3 a2 0 0", - " x x x x x x x x"; - - mode = 0x41; - delay = 5; - blocksize = 4; - readsize = 256; - ; - - memory "flash" - paged = yes; - size = 16384; - page_size = 32; - num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback_p1 = 0xff; - readback_p2 = 0xff; - read_lo = " 0 0 1 0 0 0 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - read_hi = " 0 0 1 0 1 0 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 a5 a4 a3 a2 a1 a0", - " o o o o o o o o"; - - loadpage_lo = " 0 1 0 0 0 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - loadpage_hi = " 0 1 0 0 1 0 0 0", - " 0 0 0 x x x x x", - " x x a5 a4 a3 a2 a1 a0", - " i i i i i i i i"; - - writepage = " 0 1 0 0 1 1 0 0", - " 0 0 0 a12 a11 a10 a9 a8", - " a7 a6 x x x x x x", - " x x x x x x x x"; - - mode = 0x41; - delay = 6; - blocksize = 128; - readsize = 256; - - ; - - memory "lfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "hfuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", - "x x x x x x x x i i i i i i i i"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", - "x x x x x x x x o o o o o o o o"; - - write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", - "x x x x x x x x x x x i i i i i"; - ; - - memory "lock" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", - "x x x x x x x x x x x x x x o o"; - - write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", - "x x x x x x x x 1 1 1 1 1 1 i i"; - ; - - memory "calibration" - size = 1; - read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", - "0 0 0 0 0 0 0 0 o o o o o o o o"; - ; - - memory "signature" - size = 3; - read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", - "x x x x x x a1 a0 o o o o o o o o"; - ; -; - -#------------------------------------------------------------ -# Common values for reduced core tinys (4/5/9/10/20/40) -#------------------------------------------------------------ - -part - id = ".reduced_core_tiny"; - desc = "Common values for reduced core tinys"; - has_tpi = yes; - - memory "signature" - size = 3; - offset = 0x3fc0; - page_size = 16; - ; - - memory "fuse" - size = 1; - offset = 0x3f40; - page_size = 16; - blocksize = 4; - ; - - memory "calibration" - size = 1; - offset = 0x3f80; - page_size = 16; - ; - - memory "lockbits" - size = 1; - offset = 0x3f00; - page_size = 16; - ; -; - -#------------------------------------------------------------ -# ATtiny4 -#------------------------------------------------------------ - -part parent ".reduced_core_tiny" - id = "t4"; - desc = "ATtiny4"; - signature = 0x1e 0x8f 0x0a; - - memory "flash" - size = 512; - offset = 0x4000; - page_size = 16; - blocksize = 128; - ; -; - -#------------------------------------------------------------ -# ATtiny5 -#------------------------------------------------------------ - -part parent "t4" - id = "t5"; - desc = "ATtiny5"; - signature = 0x1e 0x8f 0x09; -; - -#------------------------------------------------------------ -# ATtiny9 -#------------------------------------------------------------ - -part parent ".reduced_core_tiny" - id = "t9"; - desc = "ATtiny9"; - signature = 0x1e 0x90 0x08; - - memory "flash" - size = 1024; - offset = 0x4000; - page_size = 16; - blocksize = 128; - ; -; - -#------------------------------------------------------------ -# ATtiny10 -#------------------------------------------------------------ - -part parent "t9" - id = "t10"; - desc = "ATtiny10"; - signature = 0x1e 0x90 0x03; -; - -#------------------------------------------------------------ -# ATtiny20 -#------------------------------------------------------------ - -part parent ".reduced_core_tiny" - id = "t20"; - desc = "ATtiny20"; - signature = 0x1e 0x91 0x0F; - - memory "flash" - size = 2048; - offset = 0x4000; - page_size = 16; - blocksize = 128; - ; -; - -#------------------------------------------------------------ -# ATtiny40 -#------------------------------------------------------------ - -part parent ".reduced_core_tiny" - id = "t40"; - desc = "ATtiny40"; - signature = 0x1e 0x92 0x0E; - - memory "flash" - size = 4096; - offset = 0x4000; - page_size = 64; - blocksize = 128; - ; -; - -#------------------------------------------------------------ -# ATmega406 -#------------------------------------------------------------ - -part - id = "m406"; - desc = "ATMEGA406"; - has_jtag = yes; - signature = 0x1e 0x95 0x07; - - # STK500 parameters (parallel programming IO lines) - pagel = 0xa7; - bs2 = 0xa0; - serial = no; - parallel = yes; - - # STK500v2 HV programming parameters, from XML - pp_controlstack = 0x0e, 0x1e, 0x0f, 0x1f, 0x2e, 0x3e, 0x2f, 0x3f, - 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, - 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, - 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - - # JTAG ICE mkII parameters, also from XML files - allowfullpagebitstream = no; - enablepageprogramming = yes; - idr = 0x51; - rampz = 0x00; - spmcr = 0x57; - eecr = 0x3f; - - memory "eeprom" - paged = no; - size = 512; - page_size = 4; - blocksize = 4; - readsize = 4; - num_pages = 128; - ; - - memory "flash" - paged = yes; - size = 40960; - page_size = 128; - blocksize = 128; - readsize = 128; - num_pages = 320; - ; - - memory "hfuse" - size = 1; - ; - - memory "lfuse" - size = 1; - ; - - memory "lockbits" - size = 1; - ; - - memory "signature" - size = 3; - ; -; - -