From 43a7398c8850222940c8245db3ec47c274d4d340 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 17 Aug 2022 17:40:06 +0200 Subject: [PATCH 01/32] ShapesGallery: Fixed save of the thumbnails for custom shapes, when name contains diacritics --- src/slic3r/GUI/GalleryDialog.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GalleryDialog.cpp b/src/slic3r/GUI/GalleryDialog.cpp index 1191e5c2e6..bc914722df 100644 --- a/src/slic3r/GUI/GalleryDialog.cpp +++ b/src/slic3r/GUI/GalleryDialog.cpp @@ -301,7 +301,7 @@ static void generate_thumbnail_from_model(const std::string& filename) fs::path out_path = fs::path(filename); out_path.replace_extension("png"); - image.SaveFile(out_path.string(), wxBITMAP_TYPE_PNG); + image.SaveFile(from_u8(out_path.string()), wxBITMAP_TYPE_PNG); } void GalleryDialog::load_label_icon_list() @@ -343,8 +343,6 @@ void GalleryDialog::load_label_icon_list() int px_cnt = (int)(em_unit() * IMG_PX_CNT * 0.1f + 0.5f); m_image_list = new wxImageList(px_cnt, px_cnt); - std::string ext = ".png"; - for (const auto& item : list_items) { fs::path model_path = fs::path((item.is_system ? m_sys_dir_path : m_cust_dir_path) + item.name); std::string model_name = model_path.string(); From e9f0f4bd0dfb5cadb5fd6db7aa5ca3e7b89a48e3 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 17 Aug 2022 22:20:26 +0200 Subject: [PATCH 02/32] Fix error message (related to #8703) --- src/libslic3r/Format/STEP.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp index 00d692fc6a..081726704a 100644 --- a/src/libslic3r/Format/STEP.cpp +++ b/src/libslic3r/Format/STEP.cpp @@ -64,11 +64,11 @@ LoadStepFn get_load_step_fn() load_step_fn = reinterpret_cast(dlsym(plugin_ptr, fn_name)); if (!load_step_fn) { dlclose(plugin_ptr); - throw Slic3r::RuntimeError(std::string("Cannot load function from OCCTWrapper.dll: ") + fn_name + throw Slic3r::RuntimeError(std::string("Cannot load function from OCCTWrapper.so: ") + fn_name + "\n\n" + dlerror()); } } else { - throw Slic3r::RuntimeError(std::string("Cannot load OCCTWrapper.dll:\n\n") + dlerror()); + throw Slic3r::RuntimeError(std::string("Cannot load OCCTWrapper.so:\n\n") + dlerror()); } #endif } From 2115b407288fdbe77d575f08bdc1262d1dbee4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Wed, 17 Aug 2022 15:55:02 +0200 Subject: [PATCH 03/32] Fixed incorrectly computed starting position in Concentric infill when Arachne is used. --- src/libslic3r/Fill/FillConcentric.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 17bdfafaf6..69f530720f 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -106,6 +106,7 @@ void FillConcentric::_fill_surface_single(const FillParams ¶ms, thick_polyline.points.emplace_back(thick_polyline.points.front()); } thick_polylines_out.emplace_back(std::move(thick_polyline)); + last_pos = thick_polylines_out.back().last_point(); } // clip the paths to prevent the extruder from getting exactly on the first point of the loop From 6f5813a849e40b1bcae97270a317222dff92f5ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Thu, 18 Aug 2022 10:46:40 +0200 Subject: [PATCH 04/32] Fix of #8648 - Lightning infill wasn't connected to perimeters when it was combined with the option "Only infill where needed". Now Lightning infill will ignore this setting and treat it as off. Because Lightning infill and "Only infill where needed" do a similar thing, and their combination doesn't make much sense. --- src/libslic3r/LayerRegion.cpp | 4 +++- src/libslic3r/PrintObject.cpp | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index dfae5f1882..0abe27a809 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -386,10 +386,12 @@ void LayerRegion::prepare_fill_surfaces() bool spiral_vase = this->layer()->object()->print()->config().spiral_vase; // if no solid layers are requested, turn top/bottom surfaces to internal + // For Lightning infill, infill_only_where_needed is ignored because both + // do a similar thing, and their combination doesn't make much sense. if (! spiral_vase && this->region().config().top_solid_layers == 0) { for (Surface &surface : this->fill_surfaces.surfaces) if (surface.is_top()) - surface.surface_type = this->layer()->object()->config().infill_only_where_needed ? stInternalVoid : stInternal; + surface.surface_type = this->layer()->object()->config().infill_only_where_needed && this->region().config().fill_pattern != ipLightning ? stInternalVoid : stInternal; } if (this->region().config().bottom_solid_layers == 0) { for (Surface &surface : this->fill_surfaces.surfaces) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 6ec27ea95b..5cebbb0566 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -1733,7 +1733,14 @@ bool PrintObject::update_layer_height_profile(const ModelObject &model_object, c // fill_surfaces but we only turn them into VOID surfaces, thus preserving the boundaries. void PrintObject::clip_fill_surfaces() { - if (! m_config.infill_only_where_needed.value) + bool has_lightning_infill = false; + for (size_t region_id = 0; region_id < this->num_printing_regions(); ++region_id) + if (const PrintRegionConfig &config = this->printing_region(region_id).config(); config.fill_density > 0 && config.fill_pattern == ipLightning) + has_lightning_infill = true; + + // For Lightning infill, infill_only_where_needed is ignored because both + // do a similar thing, and their combination doesn't make much sense. + if (! m_config.infill_only_where_needed.value || has_lightning_infill) return; bool has_infill = false; for (size_t i = 0; i < this->num_printing_regions(); ++ i) From 499c2253bbd3f52d909f4cc89106601ebe50a19e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Thu, 18 Aug 2022 10:52:19 +0200 Subject: [PATCH 05/32] Fix of #8704 - Travels in spiral vase mode when Arachne is used. Now Arachne is used just for bottom layers, and for spiralizer layers is used Classic perimeter generator. --- src/libslic3r/LayerRegion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index 0abe27a809..1996a58b57 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -101,7 +101,7 @@ void LayerRegion::make_perimeters(const SurfaceCollection &slices, SurfaceCollec g.overhang_flow = this->bridging_flow(frPerimeter); g.solid_infill_flow = this->flow(frSolidInfill); - if (this->layer()->object()->config().perimeter_generator.value == PerimeterGeneratorType::Arachne) + if (this->layer()->object()->config().perimeter_generator.value == PerimeterGeneratorType::Arachne && !spiral_vase) g.process_arachne(); else g.process_classic(); From dcdbc6bff1b35651a0684db614e92322f76217da Mon Sep 17 00:00:00 2001 From: YuSanka Date: Thu, 18 Aug 2022 13:43:47 +0200 Subject: [PATCH 06/32] Localization: Updated dictionary for JA --- resources/localization/ja/PrusaSlicer.mo | Bin 543057 -> 543567 bytes resources/localization/ja/PrusaSlicer_ja.po | 1276 ++++++++++--------- 2 files changed, 640 insertions(+), 636 deletions(-) diff --git a/resources/localization/ja/PrusaSlicer.mo b/resources/localization/ja/PrusaSlicer.mo index d6b1a975d906586a4150b2f5953cffce32fca6e0..32ad190b9af236dbae547d4aa069ace328b552ce 100644 GIT binary patch delta 63850 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 delta 63671 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 WR=opRCd|J0#GfeU`MW@?djAK=?J{!! diff --git a/resources/localization/ja/PrusaSlicer_ja.po b/resources/localization/ja/PrusaSlicer_ja.po index 2f1b1257e5..09e1bc673f 100644 --- a/resources/localization/ja/PrusaSlicer_ja.po +++ b/resources/localization/ja/PrusaSlicer_ja.po @@ -7,7 +7,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Prusalator\n" -#: src/slic3r/GUI/Tab.cpp:4774 +#: src/slic3r/GUI/Tab.cpp:4772 #, boost-format msgid "" "\"%1%\" is disabled because \"%2%\" is on in \"%3%\" category.\n" @@ -36,9 +36,8 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:486 src/libslic3r/PrintConfig.cpp:1109 #: src/libslic3r/PrintConfig.cpp:1577 src/libslic3r/PrintConfig.cpp:1769 #: src/libslic3r/PrintConfig.cpp:1832 src/libslic3r/PrintConfig.cpp:2083 -#: src/libslic3r/PrintConfig.cpp:2142 src/libslic3r/PrintConfig.cpp:3134 -#: src/libslic3r/PrintConfig.cpp:3149 src/libslic3r/PrintConfig.cpp:3318 -#: src/libslic3r/PrintConfig.cpp:3607 src/libslic3r/PrintConfig.cpp:3733 +#: src/libslic3r/PrintConfig.cpp:2142 src/libslic3r/PrintConfig.cpp:3291 +#: src/libslic3r/PrintConfig.cpp:3580 src/libslic3r/PrintConfig.cpp:3706 msgid "%" msgstr "%" @@ -125,7 +124,7 @@ msgid_plural "%1% (%2$d shells)" msgstr[0] "%1% (%2$d シェル)" #. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3752 +#: src/slic3r/GUI/Tab.cpp:3750 #, boost-format msgid "%1% Preset" msgstr "プリセット%1%" @@ -144,7 +143,7 @@ msgstr "" msgid "%1% was substituted with %2%" msgstr "%1%は%2%に置き換えられました" -#: src/slic3r/GUI/MainFrame.cpp:1710 +#: src/slic3r/GUI/MainFrame.cpp:1714 #, boost-format msgid "%1% was successfully sliced." msgstr "%1%は正常にスライスされました。" @@ -164,7 +163,7 @@ msgstr "フィラメント速度%3.2f mm/sで%3.2f mm³/ s。" msgid "%d lines: %.2f mm" msgstr "%dライン:%.2f mm" -#: src/slic3r/GUI/MainFrame.cpp:1875 +#: src/slic3r/GUI/MainFrame.cpp:1879 #, c-format, boost-format msgid "%d presets successfully imported." msgstr "%d プリセットを正常にインポートしました。" @@ -328,7 +327,7 @@ msgstr "" msgid "&About %s" msgstr "%sについて(&A)" -#: src/slic3r/GUI/MainFrame.cpp:1433 +#: src/slic3r/GUI/MainFrame.cpp:1437 msgid "&Collapse Sidebar" msgstr "サイドバーを折りたたむ&C" @@ -340,27 +339,27 @@ msgstr "構成(&C)" msgid "&Configuration Snapshots" msgstr "構成スナップショット(&C)" -#: src/slic3r/GUI/MainFrame.cpp:1345 +#: src/slic3r/GUI/MainFrame.cpp:1349 msgid "&Copy" msgstr "コピー(&C)" -#: src/slic3r/GUI/MainFrame.cpp:1329 +#: src/slic3r/GUI/MainFrame.cpp:1333 msgid "&Delete Selected" msgstr "選択を削除&D" -#: src/slic3r/GUI/MainFrame.cpp:1454 +#: src/slic3r/GUI/MainFrame.cpp:1458 msgid "&Edit" msgstr "編集(&E)" -#: src/slic3r/GUI/MainFrame.cpp:1266 +#: src/slic3r/GUI/MainFrame.cpp:1270 msgid "&Export" msgstr "エクスポート(&E)" -#: src/slic3r/GUI/MainFrame.cpp:1381 src/slic3r/GUI/MainFrame.cpp:1585 +#: src/slic3r/GUI/MainFrame.cpp:1385 src/slic3r/GUI/MainFrame.cpp:1589 msgid "&Filament Settings Tab" msgstr "フィラメント設定タブ(&F)" -#: src/slic3r/GUI/MainFrame.cpp:1453 src/slic3r/GUI/MainFrame.cpp:1556 +#: src/slic3r/GUI/MainFrame.cpp:1457 src/slic3r/GUI/MainFrame.cpp:1560 msgid "&File" msgstr "ファイル(&F)" @@ -368,19 +367,19 @@ msgstr "ファイル(&F)" msgid "&Finish" msgstr "終了(&F)" -#: src/slic3r/GUI/MainFrame.cpp:1438 +#: src/slic3r/GUI/MainFrame.cpp:1442 msgid "&Fullscreen" msgstr "フルスクリーン&F" -#: src/slic3r/GUI/MainFrame.cpp:1304 +#: src/slic3r/GUI/MainFrame.cpp:1308 msgid "&G-code Preview" msgstr "Gコードプレビュー&G" -#: src/slic3r/GUI/MainFrame.cpp:1459 src/slic3r/GUI/MainFrame.cpp:1560 +#: src/slic3r/GUI/MainFrame.cpp:1463 src/slic3r/GUI/MainFrame.cpp:1564 msgid "&Help" msgstr "ヘルプ(&H)" -#: src/slic3r/GUI/MainFrame.cpp:1227 +#: src/slic3r/GUI/MainFrame.cpp:1231 msgid "&Import" msgstr "インポート(&I)" @@ -388,7 +387,7 @@ msgstr "インポート(&I)" msgid "&Language" msgstr "言語(&L)" -#: src/slic3r/GUI/MainFrame.cpp:1145 +#: src/slic3r/GUI/MainFrame.cpp:1149 msgid "&New Project" msgstr "新しいプロジェクト(&N)" @@ -396,19 +395,19 @@ msgstr "新しいプロジェクト(&N)" msgid "&Next >" msgstr "次 >(&N)" -#: src/slic3r/GUI/MainFrame.cpp:1521 +#: src/slic3r/GUI/MainFrame.cpp:1525 msgid "&Open G-code" msgstr "Gコードのオープン(&O)" -#: src/slic3r/GUI/MainFrame.cpp:1148 +#: src/slic3r/GUI/MainFrame.cpp:1152 msgid "&Open Project" msgstr "プロジェクトのオープン(&O)" -#: src/slic3r/GUI/MainFrame.cpp:1348 +#: src/slic3r/GUI/MainFrame.cpp:1352 msgid "&Paste" msgstr "貼り付け(&P)" -#: src/slic3r/GUI/MainFrame.cpp:1373 +#: src/slic3r/GUI/MainFrame.cpp:1377 msgid "&Plater Tab" msgstr "プレートタブ(&P)" @@ -416,35 +415,35 @@ msgstr "プレートタブ(&P)" msgid "&Preferences" msgstr "環境設定(&P)" -#: src/slic3r/GUI/MainFrame.cpp:1307 src/slic3r/GUI/MainFrame.cpp:1541 +#: src/slic3r/GUI/MainFrame.cpp:1311 src/slic3r/GUI/MainFrame.cpp:1545 msgid "&Quit" msgstr "中止(&Q)" -#: src/slic3r/GUI/MainFrame.cpp:1340 +#: src/slic3r/GUI/MainFrame.cpp:1344 msgid "&Redo" msgstr "再実行(&R)" -#: src/slic3r/GUI/MainFrame.cpp:1300 +#: src/slic3r/GUI/MainFrame.cpp:1304 msgid "&Repair STL file" msgstr "STLファイルの修復(&R)" -#: src/slic3r/GUI/MainFrame.cpp:1190 +#: src/slic3r/GUI/MainFrame.cpp:1194 msgid "&Save Project" msgstr "プロジェクトを保存(&S)" -#: src/slic3r/GUI/MainFrame.cpp:1322 +#: src/slic3r/GUI/MainFrame.cpp:1326 msgid "&Select All" msgstr "全て選択&S" -#: src/slic3r/GUI/MainFrame.cpp:1337 +#: src/slic3r/GUI/MainFrame.cpp:1341 msgid "&Undo" msgstr "元に戻す(&U)" -#: src/slic3r/GUI/MainFrame.cpp:1456 src/slic3r/GUI/MainFrame.cpp:1557 +#: src/slic3r/GUI/MainFrame.cpp:1460 src/slic3r/GUI/MainFrame.cpp:1561 msgid "&View" msgstr "ビュー(&V)" -#: src/slic3r/GUI/MainFrame.cpp:1455 +#: src/slic3r/GUI/MainFrame.cpp:1459 msgid "&Window" msgstr "ウィンドウ(&W)" @@ -453,7 +452,7 @@ msgstr "ウィンドウ(&W)" msgid "(All)" msgstr "(全て)" -#: src/slic3r/GUI/MainFrame.cpp:1296 +#: src/slic3r/GUI/MainFrame.cpp:1300 msgid "(Re)Slice No&w" msgstr "(再)スライス実行(&w)" @@ -465,7 +464,7 @@ msgstr "スライス" msgid "(Some lines not shown)" msgstr "(一部のラインは表示されていません)" -#: src/libslic3r/PrintConfig.cpp:1088 src/libslic3r/PrintConfig.cpp:3532 +#: src/libslic3r/PrintConfig.cpp:1088 src/libslic3r/PrintConfig.cpp:3505 msgid "(Unknown)" msgstr "(不明)" @@ -477,7 +476,7 @@ msgstr "(スプールを含む)" msgid "(minimum)" msgstr "(最小)" -#: src/slic3r/GUI/MainFrame.cpp:1628 +#: src/slic3r/GUI/MainFrame.cpp:1632 msgid ") not found." msgstr ")見つかりません。" @@ -533,7 +532,7 @@ msgstr "2mm" msgid "3 (heavy)" msgstr "3(重い)" -#: src/slic3r/GUI/MainFrame.cpp:1391 +#: src/slic3r/GUI/MainFrame.cpp:1395 msgid "3&D" msgstr "3&D" @@ -620,7 +619,7 @@ msgstr "" "一般的には、PLAでは60℃、ABSでは110℃です。 ヒートベッドがないプリンタではゼロ" "を入力します。" -#: src/libslic3r/PrintConfig.cpp:3917 +#: src/libslic3r/PrintConfig.cpp:3890 msgid "" "A slower printing profile might be necessary when using materials with " "higher viscosity or with some hollowed parts. It slows down the tilt " @@ -646,7 +645,7 @@ msgstr "APIキー" msgid "Abort" msgstr "中止" -#: src/slic3r/GUI/AboutDialog.cpp:210 +#: src/slic3r/GUI/AboutDialog.cpp:212 #, c-format, boost-format msgid "About %s" msgstr "%sについて" @@ -663,7 +662,7 @@ msgstr "加速度コントロール (上級者向け)" msgid "Access violation" msgstr "アクセス違反" -#: src/libslic3r/PrintConfig.cpp:3891 +#: src/libslic3r/PrintConfig.cpp:3864 msgid "Accuracy" msgstr "精度" @@ -703,7 +702,7 @@ msgstr "" "て、プリント時間を短縮し、フィラメントの消費量を減らすことができることをご存" "知ですか? 詳細については、ドキュメントをご覧ください。" -#: src/slic3r/GUI/GalleryDialog.cpp:117 src/slic3r/GUI/Tab.cpp:4151 +#: src/slic3r/GUI/GalleryDialog.cpp:117 src/slic3r/GUI/Tab.cpp:4149 msgid "Add" msgstr "追加" @@ -766,7 +765,7 @@ msgstr "ギャラリーからシェイプを追加" msgid "Add Shapes from Gallery" msgstr "ギャラリーからシェイプを追加" -#: src/libslic3r/PrintConfig.cpp:3748 +#: src/libslic3r/PrintConfig.cpp:3721 msgid "Add a pad underneath the supported model" msgstr "サポートされているモデルの下にパッドを追加します" @@ -883,7 +882,7 @@ msgid "Add pause print" msgstr "プリントの一時停止を追加" #: src/slic3r/GUI/PresetComboBoxes.cpp:702 -#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3247 +#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3245 msgid "Add physical printer" msgstr "物理プリンターを追加する" @@ -983,17 +982,16 @@ msgstr "アドレス" #: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1491 #: src/slic3r/GUI/Tab.cpp:1525 src/slic3r/GUI/Tab.cpp:1642 -#: src/slic3r/GUI/Tab.cpp:1646 src/slic3r/GUI/Tab.cpp:2030 -#: src/slic3r/GUI/Tab.cpp:2401 src/slic3r/GUI/Tab.cpp:4728 +#: src/slic3r/GUI/Tab.cpp:1646 src/slic3r/GUI/Tab.cpp:2028 +#: src/slic3r/GUI/Tab.cpp:2399 src/slic3r/GUI/Tab.cpp:4726 #: src/libslic3r/PrintConfig.cpp:259 src/libslic3r/PrintConfig.cpp:494 #: src/libslic3r/PrintConfig.cpp:1414 src/libslic3r/PrintConfig.cpp:1501 #: src/libslic3r/PrintConfig.cpp:1548 src/libslic3r/PrintConfig.cpp:2498 #: src/libslic3r/PrintConfig.cpp:2508 src/libslic3r/PrintConfig.cpp:3046 -#: src/libslic3r/PrintConfig.cpp:3080 src/libslic3r/PrintConfig.cpp:3090 -#: src/libslic3r/PrintConfig.cpp:3105 src/libslic3r/PrintConfig.cpp:3118 -#: src/libslic3r/PrintConfig.cpp:3127 src/libslic3r/PrintConfig.cpp:3142 -#: src/libslic3r/PrintConfig.cpp:3157 src/libslic3r/PrintConfig.cpp:3168 -#: src/libslic3r/PrintConfig.cpp:3365 +#: src/libslic3r/PrintConfig.cpp:3081 src/libslic3r/PrintConfig.cpp:3092 +#: src/libslic3r/PrintConfig.cpp:3107 src/libslic3r/PrintConfig.cpp:3120 +#: src/libslic3r/PrintConfig.cpp:3129 src/libslic3r/PrintConfig.cpp:3141 +#: src/libslic3r/PrintConfig.cpp:3338 msgid "Advanced" msgstr "上級者向け" @@ -1023,16 +1021,16 @@ msgstr "" "にこの量の材料をワイプタワーに試し出しすることで、インフィルまたは犠牲オブ" "ジェクトを確実に形成します。" -#: src/slic3r/GUI/Tab.cpp:2440 src/libslic3r/GCode.cpp:710 +#: src/slic3r/GUI/Tab.cpp:2438 src/libslic3r/GCode.cpp:710 #: src/libslic3r/PrintConfig.cpp:1602 msgid "After layer change G-code" msgstr "レイヤーチェンジ後のGコード" -#: src/libslic3r/PrintConfig.cpp:4466 +#: src/libslic3r/PrintConfig.cpp:4441 msgid "Align XY" msgstr "XYで整列" -#: src/libslic3r/PrintConfig.cpp:4467 +#: src/libslic3r/PrintConfig.cpp:4442 msgid "Align the model to the given point." msgstr "モデルを指定されたポイントに合わせます。" @@ -1045,7 +1043,7 @@ msgid "Aligned Rectilinear" msgstr "整列された直線" #: src/slic3r/GUI/ConfigWizard.cpp:331 src/slic3r/GUI/ConfigWizard.cpp:651 -#: src/slic3r/GUI/Preferences.cpp:434 src/slic3r/GUI/Tab.cpp:3832 +#: src/slic3r/GUI/Preferences.cpp:434 src/slic3r/GUI/Tab.cpp:3830 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1154 msgid "All" msgstr "全て" @@ -1243,7 +1241,7 @@ msgstr "カラーの変更を自動的に適用する" msgid "Apply to all the remaining small objects being loaded." msgstr "ロードされている残りのすべての小さなオブジェクトに適用します。" -#: src/libslic3r/PrintConfig.cpp:3074 +#: src/libslic3r/PrintConfig.cpp:3075 msgid "Arachne" msgstr "アラクネ" @@ -1255,7 +1253,7 @@ msgstr "アラクネ境界線生成" msgid "Archimedean Chords" msgstr "アルキメデスコード" -#: src/slic3r/GUI/Tab.cpp:3747 +#: src/slic3r/GUI/Tab.cpp:3745 #, boost-format msgid "Are you sure you want to %1% the selected preset?" msgstr "%1%のプリセットを選択してよろしいですか?" @@ -1272,7 +1270,7 @@ msgstr "" msgid "Are you sure you want to continue?" msgstr "続行しますか?" -#: src/slic3r/GUI/Tab.cpp:3715 +#: src/slic3r/GUI/Tab.cpp:3713 #, boost-format msgid "" "Are you sure you want to delete \"%1%\" preset from the physical printer " @@ -1284,7 +1282,7 @@ msgstr "物理プリンタ\"%2%\"から\"%1%\"プリセットを削除しても msgid "Are you sure you want to delete \"%1%\" printer?" msgstr "\"%1%\"プリンタを削除してもよろしいですか?" -#: src/slic3r/GUI/Tab.cpp:4159 +#: src/slic3r/GUI/Tab.cpp:4157 msgid "Are you sure you want to delete all substitutions?" msgstr "本当にすべての置換を削除しますか?" @@ -1292,7 +1290,7 @@ msgstr "本当にすべての置換を削除しますか?" msgid "Are you sure you want to do it?" msgstr "実行してもよろしいですか?" -#: src/libslic3r/PrintConfig.cpp:3316 +#: src/libslic3r/PrintConfig.cpp:3289 msgid "Area fill" msgstr "領域塗りつぶし" @@ -1323,7 +1321,7 @@ msgstr "" "アレンジアイコンを右クリックして、オブジェクト間のギャップのサイズを調" "整したり、自動回転を許可したりできることをご存知ですか?" -#: src/libslic3r/PrintConfig.cpp:4517 +#: src/libslic3r/PrintConfig.cpp:4492 msgid "" "Arrange the supplied models in a plate and merge them in a single model in " "order to perform actions once." @@ -1473,7 +1471,7 @@ msgstr "サポートポイントの自動生成" msgid "Autogeneration will erase all manually edited points." msgstr "自動生成は、マニュアルで編集されたすべてのポイントを消去します。" -#: src/slic3r/GUI/Tab.cpp:4699 +#: src/slic3r/GUI/Tab.cpp:4697 msgid "Automatic generation" msgstr "自動生成" @@ -1481,7 +1479,7 @@ msgstr "自動生成" msgid "Automatic updates" msgstr "自動アップデート" -#: src/slic3r/GUI/MainFrame.cpp:1300 +#: src/slic3r/GUI/MainFrame.cpp:1304 msgid "Automatically repair an STL file" msgstr "STLファイルの自動修復" @@ -1497,11 +1495,11 @@ msgstr "外周をまたがないようにする" msgid "Avoid crossing perimeters - Max detour length" msgstr "境界線をまたがないようにする-最大迂回長" -#: src/slic3r/GUI/Tab.cpp:4336 +#: src/slic3r/GUI/Tab.cpp:4334 msgid "BACK ARROW" msgstr "戻る矢印" -#: src/slic3r/GUI/Tab.cpp:4358 +#: src/slic3r/GUI/Tab.cpp:4356 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" @@ -1513,7 +1511,7 @@ msgstr "" "クリックすると、現在の設定グループのすべての設定が最後に保存されたプリセット" "に戻されます。" -#: src/slic3r/GUI/Tab.cpp:4372 +#: src/slic3r/GUI/Tab.cpp:4370 msgid "" "BACK ARROW icon indicates that the value was changed and is not equal to the " "last saved preset.\n" @@ -1527,7 +1525,7 @@ msgstr "" msgid "Background processing" msgstr "バックグラウンドで実行中" -#: src/libslic3r/PrintConfig.cpp:4571 +#: src/libslic3r/PrintConfig.cpp:4546 msgid "Bail out on unknown configuration values" msgstr "不明な構成値を回避する" @@ -1535,7 +1533,7 @@ msgstr "不明な構成値を回避する" msgid "Balanced" msgstr "バランスのとれた" -#: src/slic3r/GUI/Tab.cpp:1996 +#: src/slic3r/GUI/Tab.cpp:1994 msgid "Bed" msgstr "ベッド" @@ -1583,7 +1581,7 @@ msgstr "" "最初のレイヤー以降のレイヤーのベッド温度。 ベッド温度制御コマンドを無効にする" "には、これをゼロに設定します。" -#: src/slic3r/GUI/Tab.cpp:2430 src/libslic3r/GCode.cpp:709 +#: src/slic3r/GUI/Tab.cpp:2428 src/libslic3r/GCode.cpp:709 #: src/libslic3r/PrintConfig.cpp:424 msgid "Before layer change G-code" msgstr "レイヤー変更前のGコード" @@ -1608,7 +1606,7 @@ msgstr "ベストな表面仕上がり" msgid "Between objects G-code" msgstr "オブジェクト間のGコード" -#: src/slic3r/GUI/Tab.cpp:2460 src/libslic3r/GCode.cpp:712 +#: src/slic3r/GUI/Tab.cpp:2458 src/libslic3r/GCode.cpp:712 msgid "Between objects G-code (for sequential printing)" msgstr "オブジェクト間のGコード(シーケンシャルプリントの場合)" @@ -1631,11 +1629,11 @@ msgstr "ブロックサポート" msgid "Block supports by angle" msgstr "角度によるブロックサポート" -#: src/libslic3r/PrintConfig.cpp:3413 src/libslic3r/PrintConfig.cpp:3414 +#: src/libslic3r/PrintConfig.cpp:3386 src/libslic3r/PrintConfig.cpp:3387 msgid "Bottle volume" msgstr "ボトル容量" -#: src/libslic3r/PrintConfig.cpp:3420 src/libslic3r/PrintConfig.cpp:3421 +#: src/libslic3r/PrintConfig.cpp:3393 src/libslic3r/PrintConfig.cpp:3394 msgid "Bottle weight" msgstr "ボトル重量" @@ -1652,7 +1650,7 @@ msgstr "最下層" msgid "Bottom" msgstr "ボトム" -#: src/slic3r/GUI/MainFrame.cpp:1124 +#: src/slic3r/GUI/MainFrame.cpp:1128 msgid "Bottom View" msgstr "下面表示" @@ -1927,8 +1925,8 @@ msgstr "" "サポートポイントなしでは続行できません! サポートポイントを追加するか、サポー" "ト生成を無効にします。" -#: src/slic3r/GUI/Tab.cpp:2299 src/slic3r/GUI/UnsavedChangesDialog.cpp:1287 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1674 +#: src/slic3r/GUI/Tab.cpp:2297 src/slic3r/GUI/UnsavedChangesDialog.cpp:1287 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1677 msgid "Capabilities" msgstr "オプション" @@ -1936,7 +1934,7 @@ msgstr "オプション" msgid "Capture a configuration snapshot" msgstr "構成スナップショットをキャプチャーする" -#: src/slic3r/GUI/Tab.cpp:4048 +#: src/slic3r/GUI/Tab.cpp:4046 msgid "Case insensitive" msgstr "大文字・小文字の区別なし" @@ -1944,11 +1942,11 @@ msgstr "大文字・小文字の区別なし" msgid "Category" msgstr "カテゴリー" -#: src/libslic3r/PrintConfig.cpp:4493 +#: src/libslic3r/PrintConfig.cpp:4468 msgid "Center" msgstr "中心" -#: src/libslic3r/PrintConfig.cpp:4494 +#: src/libslic3r/PrintConfig.cpp:4469 msgid "Center the print around the given center." msgstr "指定されたポイントを中心にプリントを配置します。" @@ -2054,7 +2052,7 @@ msgstr "SLAアーカイブを選択します:" msgid "Choose a file to import bed texture from (PNG/SVG):" msgstr "ベッドのイメージファイルを選択(PNG/SVG):" -#: src/slic3r/GUI/MainFrame.cpp:1609 +#: src/slic3r/GUI/MainFrame.cpp:1613 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "スライスするファイルを選択(STL/OBJ/AMF/3MF/PRUSA):" @@ -2100,7 +2098,7 @@ msgstr "円" msgid "Circular" msgstr "円形" -#: src/libslic3r/PrintConfig.cpp:3073 +#: src/libslic3r/PrintConfig.cpp:3074 msgid "Classic" msgstr "クラシック" @@ -2108,11 +2106,12 @@ msgstr "クラシック" msgid "" "Classic perimeter generator produces perimeters with constant extrusion " "width and for very thin areas is used gap-fill. Arachne engine produces " -"perimeters with variable extrusion width." +"perimeters with variable extrusion width. This setting also affects the " +"Concentric infill." msgstr "" "クラシックの境界線生成は、一定の押し出し幅の境界線を生成し、非常に薄い領域に" "はギャップフィルが使用されます。アラクネ・エンジンは、押し出し幅が変化する境" -"界線を生成します。" +"界線を生成します。この設定は、Concentric infillにも影響します。" #: src/slic3r/GUI/Preferences.cpp:295 msgid "Clear Undo / Redo stack on new project" @@ -2191,7 +2190,7 @@ msgid "Closing PrusaSlicer. Current project is modified." msgstr "PrusaSlicerを閉じます。 現在のプロジェクトが変更されました。" #: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:34 -#: src/libslic3r/PrintConfig.cpp:3900 +#: src/libslic3r/PrintConfig.cpp:3873 msgid "Closing distance" msgstr "閉鎖距離" @@ -2199,7 +2198,7 @@ msgstr "閉鎖距離" msgid "Closing radius" msgstr "閉半径" -#: src/slic3r/GUI/MainFrame.cpp:1433 src/slic3r/GUI/Plater.cpp:2320 +#: src/slic3r/GUI/MainFrame.cpp:1437 src/slic3r/GUI/Plater.cpp:2320 msgid "Collapse sidebar" msgstr "サイドバーを折りたたむ" @@ -2207,11 +2206,11 @@ msgstr "サイドバーを折りたたむ" msgid "Collapse/Expand the sidebar" msgstr "サイドバーを折りたたむ/展開する" -#: src/libslic3r/PrintConfig.cpp:889 src/libslic3r/PrintConfig.cpp:3388 +#: src/libslic3r/PrintConfig.cpp:889 src/libslic3r/PrintConfig.cpp:3361 msgid "Color" msgstr "色" -#: src/slic3r/GUI/Tab.cpp:2470 src/libslic3r/GCode.cpp:713 +#: src/slic3r/GUI/Tab.cpp:2468 src/libslic3r/GCode.cpp:713 msgid "Color Change G-code" msgstr "カラーチェンジGコード" @@ -2275,12 +2274,12 @@ msgstr "コマンド" msgid "Comment:" msgstr "コメント:" -#: src/slic3r/GUI/MainFrame.cpp:1420 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1563 +#: src/slic3r/GUI/MainFrame.cpp:1424 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1566 msgid "Compare Presets" msgstr "プリセットの比較" -#: src/slic3r/GUI/MainFrame.cpp:1420 +#: src/slic3r/GUI/MainFrame.cpp:1424 msgid "Compare presets" msgstr "プリセットを比較する" @@ -2288,7 +2287,7 @@ msgstr "プリセットを比較する" msgid "Compare this preset with some another" msgstr "このプリセットを別のプリセットと比較する" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1638 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1641 msgid "Compared presets has different printer technology" msgstr "比較されたプリセットには異なるプリンターテクノロジーがあります" @@ -2450,7 +2449,7 @@ msgstr "" "長くはなりません。 アンカーを無効にするには、このパラメーターをゼロに設定しま" "す。" -#: src/slic3r/GUI/Tab.cpp:4694 +#: src/slic3r/GUI/Tab.cpp:4692 msgid "Connection of the support sticks and junctions" msgstr "サポートスティックとジャンクションの接続" @@ -2504,7 +2503,7 @@ msgstr "続行して構成の更新をインストールしますか?" msgid "Continue to activate a configuration snapshot %1%?" msgstr "構成スナップショット%1%のアクティブ化を続行しますか?" -#: src/slic3r/GUI/AboutDialog.cpp:272 +#: src/slic3r/GUI/AboutDialog.cpp:274 msgid "" "Contributions by Henrik Brix Andersen, Nicolas Dandrimont, Mark Hindess, " "Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Vojtech Bubnik and " @@ -2522,7 +2521,7 @@ msgstr "" "Vojtech Bubnik, Enrico Turri, Oleksandra Iushchenko, Tamas Meszaros, Lukas " "Matena, Vojtech Kral, David Kocik 他、多くの方々による貢献。" -#: src/libslic3r/PrintConfig.cpp:3625 +#: src/libslic3r/PrintConfig.cpp:3598 msgid "" "Controls the bridge type between two neighboring pillars. Can be zig-zag, " "cross (double zig-zag) or dynamic which will automatically switch between " @@ -2540,7 +2539,7 @@ msgstr "インチ単位から変換する " msgid "Convert from meters" msgstr "メートルから換算" -#: src/slic3r/GUI/Tab.cpp:2001 +#: src/slic3r/GUI/Tab.cpp:1999 msgid "Cooling" msgstr "クーリング" @@ -2552,7 +2551,7 @@ msgstr "クーリング動作はこのスピードから徐々に加速します msgid "Cooling moves are gradually accelerating towards this speed." msgstr "冷却動作は、この速度に向かって徐々に加速しています。" -#: src/slic3r/GUI/Tab.cpp:2025 +#: src/slic3r/GUI/Tab.cpp:2023 msgid "Cooling thresholds" msgstr "クーリングしきい値" @@ -2581,7 +2580,7 @@ msgstr "コピー" msgid "Copy Version Info" msgstr "バージョン情報のコピー" -#: src/slic3r/GUI/MainFrame.cpp:1346 +#: src/slic3r/GUI/MainFrame.cpp:1350 msgid "Copy selection to clipboard" msgstr "選択をクリップボードにコピー" @@ -2642,32 +2641,32 @@ msgstr "" "ある可能性があります。もう一度エクスポートするか、別のデバイスを使用してみて" "ください。 破損した出力Gコードは%1%.tmpにあります。" -#: src/slic3r/GUI/AboutDialog.cpp:139 src/slic3r/GUI/AboutDialog.cpp:267 +#: src/slic3r/GUI/AboutDialog.cpp:141 src/slic3r/GUI/AboutDialog.cpp:269 msgid "Copyright" msgstr "コピーライト" -#: src/libslic3r/PrintConfig.cpp:3495 src/libslic3r/PrintConfig.cpp:3496 +#: src/libslic3r/PrintConfig.cpp:3468 src/libslic3r/PrintConfig.cpp:3469 msgid "Correction for expansion" msgstr "膨張補正" -#: src/libslic3r/PrintConfig.cpp:3502 src/libslic3r/PrintConfig.cpp:3503 +#: src/libslic3r/PrintConfig.cpp:3475 src/libslic3r/PrintConfig.cpp:3476 msgid "Correction for expansion in X axis" msgstr "X軸膨張の補正" -#: src/libslic3r/PrintConfig.cpp:3509 src/libslic3r/PrintConfig.cpp:3510 +#: src/libslic3r/PrintConfig.cpp:3482 src/libslic3r/PrintConfig.cpp:3483 msgid "Correction for expansion in Y axis" msgstr "Y軸膨張の補正" -#: src/libslic3r/PrintConfig.cpp:3516 src/libslic3r/PrintConfig.cpp:3517 +#: src/libslic3r/PrintConfig.cpp:3489 src/libslic3r/PrintConfig.cpp:3490 msgid "Correction for expansion in Z axis" msgstr "Z軸膨張の補正" -#: src/slic3r/GUI/Tab.cpp:2547 src/slic3r/GUI/Tab.cpp:4574 +#: src/slic3r/GUI/Tab.cpp:2545 src/slic3r/GUI/Tab.cpp:4572 msgid "Corrections" msgstr "補正" #: src/slic3r/GUI/Plater.cpp:1411 src/libslic3r/PrintConfig.cpp:1067 -#: src/libslic3r/PrintConfig.cpp:3434 src/libslic3r/PrintConfig.cpp:3435 +#: src/libslic3r/PrintConfig.cpp:3407 src/libslic3r/PrintConfig.cpp:3408 msgid "Cost" msgstr "費用" @@ -2740,7 +2739,7 @@ msgstr "" "埋められます。 ギャップを閉じることで、最終的なプリント解像度が低下する可能性" "があるため、この値は適度に小さくすることをお勧めします。" -#: src/libslic3r/PrintConfig.cpp:3823 +#: src/libslic3r/PrintConfig.cpp:3796 msgid "Create pad around object and ignore the support elevation" msgstr "" "オブジェクトの周りにパッドを作成し、サポートでオブジェクトを上げることを無視" @@ -2758,7 +2757,7 @@ msgstr "一部のプリセットを変更しながら、新しいプロジェク msgid "Creating a new project while the current project is modified." msgstr "現在のプロジェクトを変更しながら、新しいプロジェクトを作成します。" -#: src/libslic3r/PrintConfig.cpp:3690 +#: src/libslic3r/PrintConfig.cpp:3663 msgid "Critical angle" msgstr "限界角" @@ -2766,7 +2765,7 @@ msgstr "限界角" msgid "Critical error" msgstr "重大なエラー" -#: src/libslic3r/PrintConfig.cpp:3634 +#: src/libslic3r/PrintConfig.cpp:3607 msgid "Cross" msgstr "クロス" @@ -2811,8 +2810,8 @@ msgstr "" "HTTPS OctoPrint接続用にカスタムCA証明書ファイルをcrt/pem形式で指定できます。 " "空白のままにすると、デフォルトのOS CA証明書リポジトリが使用されます。" -#: src/slic3r/GUI/Tab.cpp:2088 src/slic3r/GUI/Tab.cpp:2409 -#: src/slic3r/GUI/Tab.cpp:4263 src/libslic3r/GCode.cpp:733 +#: src/slic3r/GUI/Tab.cpp:2086 src/slic3r/GUI/Tab.cpp:2407 +#: src/slic3r/GUI/Tab.cpp:4261 src/libslic3r/GCode.cpp:733 #: src/libslic3r/PrintConfig.cpp:2468 msgid "Custom G-code" msgstr "カスタムGコード" @@ -2856,7 +2855,7 @@ msgid "Custom template (\"%1%\")" msgstr "カスタムテンプレート(\"%1%\")" #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4471 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4446 msgid "Cut" msgstr "カット" @@ -2864,7 +2863,7 @@ msgstr "カット" msgid "Cut by Plane" msgstr "面でカット" -#: src/libslic3r/PrintConfig.cpp:4472 +#: src/libslic3r/PrintConfig.cpp:4447 msgid "Cut model at the given Z." msgstr "指定されたZでモデルをカットします。" @@ -2872,7 +2871,7 @@ msgstr "指定されたZでモデルをカットします。" msgid "Cylinder" msgstr "シリンダー" -#: src/slic3r/GUI/MainFrame.cpp:1325 +#: src/slic3r/GUI/MainFrame.cpp:1329 msgid "D&eselect All" msgstr "選択を全てクリア&e" @@ -2880,7 +2879,7 @@ msgstr "選択を全てクリア&e" msgid "Dark mode (experimental)" msgstr "ダークモード(実験的)" -#: src/libslic3r/PrintConfig.cpp:4598 +#: src/libslic3r/PrintConfig.cpp:4573 msgid "Data directory" msgstr "データディレクトリー" @@ -2906,7 +2905,7 @@ msgstr "インスタンスを減らす" msgid "Default" msgstr "デフォルト" -#: src/libslic3r/PrintConfig.cpp:3536 src/libslic3r/PrintConfig.cpp:3547 +#: src/libslic3r/PrintConfig.cpp:3509 src/libslic3r/PrintConfig.cpp:3520 msgid "Default SLA material profile" msgstr "デフォルトのSLA材料プロファイル" @@ -2946,8 +2945,8 @@ msgstr "" msgid "Default print profile" msgstr "デフォルトプリントプロファイル" -#: src/libslic3r/PrintConfig.cpp:652 src/libslic3r/PrintConfig.cpp:3537 -#: src/libslic3r/PrintConfig.cpp:3548 +#: src/libslic3r/PrintConfig.cpp:652 src/libslic3r/PrintConfig.cpp:3510 +#: src/libslic3r/PrintConfig.cpp:3521 msgid "" "Default print profile associated with the current printer profile. On " "selection of the current printer profile, this print profile will be " @@ -2961,7 +2960,7 @@ msgstr "" msgid "Define a custom printer profile" msgstr "カスタムプリンタープロファイルを定義する" -#: src/libslic3r/PrintConfig.cpp:3764 +#: src/libslic3r/PrintConfig.cpp:3737 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 " @@ -2979,11 +2978,11 @@ msgstr "アンロードした後の待ち時間" #: src/slic3r/GUI/GalleryDialog.cpp:118 src/slic3r/GUI/GalleryDialog.cpp:508 #: src/slic3r/GUI/GLCanvas3D.cpp:4490 src/slic3r/GUI/GUI_Factories.cpp:444 -#: src/slic3r/GUI/Tab.cpp:3750 +#: src/slic3r/GUI/Tab.cpp:3748 msgid "Delete" msgstr "削除" -#: src/slic3r/GUI/MainFrame.cpp:1332 +#: src/slic3r/GUI/MainFrame.cpp:1336 msgid "Delete &All" msgstr "全て削除&A" @@ -3037,7 +3036,7 @@ msgid "Delete Subobject" msgstr "サブオブジェクト削除" #: src/slic3r/GUI/GLCanvas3D.cpp:4499 src/slic3r/GUI/KBShortcutsDialog.cpp:96 -#: src/slic3r/GUI/Plater.cpp:5496 src/slic3r/GUI/Tab.cpp:4157 +#: src/slic3r/GUI/Plater.cpp:5496 src/slic3r/GUI/Tab.cpp:4155 msgid "Delete all" msgstr "全て削除" @@ -3094,16 +3093,16 @@ msgstr "マーカーの削除-マウスの左ボタンまたは「-」キー" msgid "Delete tool change" msgstr "ツールチェンジを削除" -#: src/slic3r/GUI/MainFrame.cpp:1333 +#: src/slic3r/GUI/MainFrame.cpp:1337 msgid "Deletes all objects" msgstr "全てのオブジェクトを削除" -#: src/slic3r/GUI/MainFrame.cpp:1330 +#: src/slic3r/GUI/MainFrame.cpp:1334 msgid "Deletes the current selection" msgstr "現在の選択を削除します" -#: src/libslic3r/PrintConfig.cpp:1024 src/libslic3r/PrintConfig.cpp:3427 -#: src/libslic3r/PrintConfig.cpp:3428 +#: src/libslic3r/PrintConfig.cpp:1024 src/libslic3r/PrintConfig.cpp:3400 +#: src/libslic3r/PrintConfig.cpp:3401 msgid "Density" msgstr "密度" @@ -3115,9 +3114,9 @@ msgstr "0%-100%の範囲で表される内部インフィルの密度。" msgid "Density of the first raft or support layer." msgstr "1層目のラフトもしくはサポート層の密度" -#: src/slic3r/GUI/Tab.cpp:1730 src/slic3r/GUI/Tab.cpp:2117 -#: src/slic3r/GUI/Tab.cpp:2504 src/slic3r/GUI/Tab.cpp:2577 -#: src/slic3r/GUI/Tab.cpp:4592 src/slic3r/GUI/Tab.cpp:4739 +#: src/slic3r/GUI/Tab.cpp:1728 src/slic3r/GUI/Tab.cpp:2115 +#: src/slic3r/GUI/Tab.cpp:2502 src/slic3r/GUI/Tab.cpp:2575 +#: src/slic3r/GUI/Tab.cpp:4590 src/slic3r/GUI/Tab.cpp:4737 msgid "Dependencies" msgstr "依存関係" @@ -3141,7 +3140,7 @@ msgstr "全ての選択解除" msgid "Deselect by rectangle" msgstr "方形で選択解除" -#: src/slic3r/GUI/MainFrame.cpp:1326 +#: src/slic3r/GUI/MainFrame.cpp:1330 msgid "Deselects all objects" msgstr "全てのオブジェクトの選択解除" @@ -3176,7 +3175,7 @@ msgstr "システムプリセットから取り外す" msgid "Detach preset" msgstr "プリセットを切り離す" -#: src/slic3r/GUI/Tab.cpp:3624 +#: src/slic3r/GUI/Tab.cpp:3622 msgid "Detached" msgstr "取り外しました" @@ -3200,7 +3199,7 @@ msgstr "" msgid "Detect thin walls" msgstr "薄壁を検知" -#: src/libslic3r/PrintConfig.cpp:4546 +#: src/libslic3r/PrintConfig.cpp:4521 msgid "" "Detect unconnected parts in the given model(s) and split them into separate " "objects." @@ -3224,15 +3223,15 @@ msgstr "デバイス:" msgid "Diameter" msgstr "直径" -#: src/libslic3r/PrintConfig.cpp:3660 +#: src/libslic3r/PrintConfig.cpp:3633 msgid "Diameter in mm of the pillar base" msgstr "ピラーベースの直径(mm)" -#: src/libslic3r/PrintConfig.cpp:3595 +#: src/libslic3r/PrintConfig.cpp:3568 msgid "Diameter in mm of the support pillars" msgstr "サポートピラーの直径(mm)" -#: src/libslic3r/PrintConfig.cpp:3567 +#: src/libslic3r/PrintConfig.cpp:3540 msgid "Diameter of the pointing side of the head" msgstr "サポート先端の直径" @@ -3293,31 +3292,31 @@ msgstr "すべてのカスタム変更を破棄" msgid "Discard changes" msgstr "変更取りやめ" -#: src/slic3r/GUI/Tab.cpp:2524 +#: src/slic3r/GUI/Tab.cpp:2522 msgid "Display" msgstr "ディスプレイ" -#: src/libslic3r/PrintConfig.cpp:3243 +#: src/libslic3r/PrintConfig.cpp:3216 msgid "Display height" msgstr "ディスプレイの高さ" -#: src/libslic3r/PrintConfig.cpp:3262 +#: src/libslic3r/PrintConfig.cpp:3235 msgid "Display horizontal mirroring" msgstr "水平ディスプレイミラーリング" -#: src/libslic3r/PrintConfig.cpp:3276 +#: src/libslic3r/PrintConfig.cpp:3249 msgid "Display orientation" msgstr "ディスプレイの向き" -#: src/slic3r/GUI/MainFrame.cpp:1412 +#: src/slic3r/GUI/MainFrame.cpp:1416 msgid "Display the Print Host Upload Queue window" msgstr "プリントサーバーのアップロードキュー画面を表示する" -#: src/libslic3r/PrintConfig.cpp:3269 +#: src/libslic3r/PrintConfig.cpp:3242 msgid "Display vertical mirroring" msgstr "垂直ミラーリングを表示する" -#: src/libslic3r/PrintConfig.cpp:3237 +#: src/libslic3r/PrintConfig.cpp:3210 msgid "Display width" msgstr "画面の幅" @@ -3336,7 +3335,7 @@ msgstr "" "スカートとブリム(ドラフトシールドを使用しない場合)またはオブジェクトの間の距" "離。" -#: src/libslic3r/PrintConfig.cpp:3848 +#: src/libslic3r/PrintConfig.cpp:3821 msgid "" "Distance between two connector sticks which connect the object and the " "generated pad." @@ -3373,11 +3372,11 @@ msgstr "プレートの自動配置機能で使用される距離。" msgid "Divide by zero" msgstr "#DIV/0!" -#: src/libslic3r/PrintConfig.cpp:4560 +#: src/libslic3r/PrintConfig.cpp:4535 msgid "Do not fail if a file supplied to --load does not exist." msgstr "存在しない読込みが行われても提供されたファイルは失敗させない。" -#: src/libslic3r/PrintConfig.cpp:4499 +#: src/libslic3r/PrintConfig.cpp:4474 msgid "" "Do not rearrange the given models before merging and keep their original XY " "coordinates." @@ -3430,7 +3429,7 @@ msgstr "これらのプリンターモデルにデフォルトのSLAマテリア msgid "Do you want to select default filaments for these FFF printer models?" msgstr "これらのFFFプリンターモデルのデフォルトフィラメントを選択しますか?" -#: src/libslic3r/PrintConfig.cpp:4498 +#: src/libslic3r/PrintConfig.cpp:4473 msgid "Don't arrange" msgstr "整列させない" @@ -3494,11 +3493,11 @@ msgstr "" msgid "Drop to bed" msgstr "ベッドに落とす" -#: src/libslic3r/PrintConfig.cpp:4507 +#: src/libslic3r/PrintConfig.cpp:4482 msgid "Duplicate" msgstr "複製" -#: src/libslic3r/PrintConfig.cpp:4512 +#: src/libslic3r/PrintConfig.cpp:4487 msgid "Duplicate by grid" msgstr "グリッドで複製" @@ -3515,11 +3514,11 @@ msgstr "他のレイヤーの間、ファンは常に%1%%%で動作します " msgid "During the other layers, fan will be turned off." msgstr "他のレイヤーでは、ファンはオフになります。" -#: src/libslic3r/PrintConfig.cpp:3635 +#: src/libslic3r/PrintConfig.cpp:3608 msgid "Dynamic" msgstr "動的" -#: src/slic3r/GUI/MainFrame.cpp:1582 +#: src/slic3r/GUI/MainFrame.cpp:1586 msgid "E&xport" msgstr "エクスポート(&x)" @@ -3570,7 +3569,7 @@ msgstr "カスタムG-コードの編集" msgid "Edit pause print message" msgstr "一時停止メッセージを編集" -#: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3247 +#: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3245 msgid "Edit physical printer" msgstr "物理プリンターの編集" @@ -3594,7 +3593,7 @@ msgstr "編集中" msgid "Eigen vectorization supported:" msgstr "固有値ベクトル化に対応:" -#: src/slic3r/GUI/MainFrame.cpp:1268 +#: src/slic3r/GUI/MainFrame.cpp:1272 msgid "Ejec&t SD Card / Flash Drive" msgstr "SDカード/USBメモリーの取り出し&t" @@ -3602,7 +3601,7 @@ msgstr "SDカード/USBメモリーの取り出し&t" msgid "Eject SD card / Flash drive" msgstr "SDカード/USBメモリーを取り出す" -#: src/slic3r/GUI/MainFrame.cpp:1268 +#: src/slic3r/GUI/MainFrame.cpp:1272 msgid "Eject SD card / Flash drive after the G-code was exported to it." msgstr "Gコードをエクスポートした後に、SDカード/USBメモリーを取り出します。" @@ -3619,7 +3618,7 @@ msgstr "デバイス %s(%s) の取り出しに失敗しました。" msgid "Elephant foot compensation" msgstr "最初の層の広がり補正" -#: src/libslic3r/PrintConfig.cpp:3364 +#: src/libslic3r/PrintConfig.cpp:3337 msgid "Elephant foot minimum width" msgstr "エレファントフット(最下層がちょっと太る)の最小幅" @@ -3652,7 +3651,7 @@ msgstr "Gコードに送信 " msgid "Empty layer between %1% and %2%." msgstr "%1%と%2%.の間の空レイヤー。" -#: src/slic3r/GUI/Tab.cpp:2003 src/libslic3r/PrintConfig.cpp:1912 +#: src/slic3r/GUI/Tab.cpp:2001 src/libslic3r/PrintConfig.cpp:1912 #: src/libslic3r/PrintConfig.cpp:2962 msgid "Enable" msgstr "有効" @@ -3669,11 +3668,11 @@ msgstr "ダークモードを有効にする" msgid "Enable fan if layer print time is below" msgstr "レイヤーのプリント時間がこれ以下の場合にファンをオンにします" -#: src/libslic3r/PrintConfig.cpp:3874 +#: src/libslic3r/PrintConfig.cpp:3847 msgid "Enable hollowing" msgstr "くり抜きを有効にする" -#: src/libslic3r/PrintConfig.cpp:3264 +#: src/libslic3r/PrintConfig.cpp:3237 msgid "Enable horizontal mirroring of output images" msgstr "出力画像の水平ミラーリングを有効にします" @@ -3688,7 +3687,7 @@ msgstr "" "表面を滑らかにするために、プリントヘッドを使ったトップ表面のアイロンがけを有" "効にする " -#: src/libslic3r/PrintConfig.cpp:4573 +#: src/libslic3r/PrintConfig.cpp:4548 msgid "" "Enable reading unknown configuration values by silently substituting them " "with defaults." @@ -3696,7 +3695,7 @@ msgstr "" "不明な構成値をデフォルトでサイレントに置き換えることにより、それらの値の読み" "取りを有効にします。" -#: src/libslic3r/PrintConfig.cpp:4572 +#: src/libslic3r/PrintConfig.cpp:4547 msgid "" "Enable reading unknown configuration values by verbosely substituting them " "with defaults." @@ -3747,7 +3746,7 @@ msgstr "" msgid "Enable variable layer height feature" msgstr "可変レイヤー高さ機能を有効にする" -#: src/libslic3r/PrintConfig.cpp:3271 +#: src/libslic3r/PrintConfig.cpp:3244 msgid "Enable vertical mirroring of output images" msgstr "出力イメージの垂直ミラーリングをオンにします" @@ -3763,7 +3762,7 @@ msgstr "" "境界線と境界線の間、および最内境界線とインフィルの間の隙間を埋めることが可能" "です。" -#: src/slic3r/GUI/Tab.cpp:2099 src/slic3r/GUI/Tab.cpp:2420 +#: src/slic3r/GUI/Tab.cpp:2097 src/slic3r/GUI/Tab.cpp:2418 #: src/libslic3r/GCode.cpp:708 src/libslic3r/PrintConfig.cpp:684 #: src/libslic3r/PrintConfig.cpp:694 msgid "End G-code" @@ -3795,7 +3794,7 @@ msgstr "強制サポート" msgid "Enqueued" msgstr "キュー追加済み" -#: src/libslic3r/PrintConfig.cpp:4502 +#: src/libslic3r/PrintConfig.cpp:4477 msgid "Ensure on bed" msgstr "ベッド上で確認" @@ -3907,7 +3906,7 @@ msgstr "" "エラー: \"%2%\"" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:157 -#: src/slic3r/GUI/MainFrame.cpp:1165 src/slic3r/GUI/MainFrame.cpp:1622 +#: src/slic3r/GUI/MainFrame.cpp:1169 src/slic3r/GUI/MainFrame.cpp:1626 #: src/slic3r/GUI/PrintHostDialogs.cpp:373 msgid "Error" msgstr "エラー" @@ -4053,23 +4052,23 @@ msgstr "エキスパートモード" msgid "Export" msgstr "エクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1257 +#: src/slic3r/GUI/MainFrame.cpp:1261 msgid "Export &Config" msgstr "設定のエクスポート(&C)" -#: src/slic3r/GUI/MainFrame.cpp:1230 src/slic3r/GUI/MainFrame.cpp:1582 +#: src/slic3r/GUI/MainFrame.cpp:1234 src/slic3r/GUI/MainFrame.cpp:1586 msgid "Export &G-code" msgstr "Gコードのエクスポート(&G)" -#: src/slic3r/GUI/MainFrame.cpp:1253 src/slic3r/GUI/MainFrame.cpp:1534 +#: src/slic3r/GUI/MainFrame.cpp:1257 src/slic3r/GUI/MainFrame.cpp:1538 msgid "Export &Toolpaths as OBJ" msgstr "ツールパスをOBJとしてエクスポート&T" -#: src/libslic3r/PrintConfig.cpp:4401 +#: src/libslic3r/PrintConfig.cpp:4376 msgid "Export 3MF" msgstr "3MFのエクスポート" -#: src/libslic3r/PrintConfig.cpp:4406 +#: src/libslic3r/PrintConfig.cpp:4381 msgid "Export AMF" msgstr "AMFのエクスポート" @@ -4077,11 +4076,11 @@ msgstr "AMFのエクスポート" msgid "Export AMF file:" msgstr "AMFファイルのエクスポート:" -#: src/slic3r/GUI/MainFrame.cpp:1260 +#: src/slic3r/GUI/MainFrame.cpp:1264 msgid "Export Config &Bundle" msgstr "設定とバンドルのエクスポート(&B)" -#: src/slic3r/GUI/MainFrame.cpp:1263 +#: src/slic3r/GUI/MainFrame.cpp:1267 msgid "Export Config Bundle With Physical Printers" msgstr "物理プリンター情報を含んだ構成セットのエクスポート " @@ -4090,15 +4089,15 @@ msgid "Export G-Code." msgstr "Gコードのエクスポート。" #: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:913 -#: src/slic3r/GUI/Plater.cpp:6530 src/libslic3r/PrintConfig.cpp:4416 +#: src/slic3r/GUI/Plater.cpp:6530 src/libslic3r/PrintConfig.cpp:4391 msgid "Export G-code" msgstr "Gコードのエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1238 +#: src/slic3r/GUI/MainFrame.cpp:1242 msgid "Export G-code to SD Card / Flash Drive" msgstr "GコードをSDカード/USBメモリーにエクスポートする" -#: src/libslic3r/PrintConfig.cpp:4383 +#: src/libslic3r/PrintConfig.cpp:4358 msgid "Export OBJ" msgstr "OBJのエクスポート" @@ -4106,19 +4105,19 @@ msgstr "OBJのエクスポート" msgid "Export OBJ file:" msgstr "OBJファイルのエクスポート :" -#: src/slic3r/GUI/MainFrame.cpp:1242 +#: src/slic3r/GUI/MainFrame.cpp:1246 msgid "Export Plate as &STL" msgstr "プレートを&STLとしてエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1245 +#: src/slic3r/GUI/MainFrame.cpp:1249 msgid "Export Plate as STL &Including Supports" msgstr "サポートを含むSTLとしてプレートをエクスポート&I" -#: src/libslic3r/PrintConfig.cpp:4395 +#: src/libslic3r/PrintConfig.cpp:4370 msgid "Export SLA" msgstr "SLAのエクスポート" -#: src/libslic3r/PrintConfig.cpp:4411 +#: src/libslic3r/PrintConfig.cpp:4386 msgid "Export STL" msgstr "STLのエクスポート" @@ -4126,11 +4125,11 @@ msgstr "STLのエクスポート" msgid "Export STL file:" msgstr "STLファイルのエクスポート :" -#: src/slic3r/GUI/MainFrame.cpp:1263 +#: src/slic3r/GUI/MainFrame.cpp:1267 msgid "Export all presets including physical printers to file" msgstr "物理プリンターを含むすべてのプリセットをファイルにエクスポートする" -#: src/slic3r/GUI/MainFrame.cpp:1260 +#: src/slic3r/GUI/MainFrame.cpp:1264 msgid "Export all presets to file" msgstr "すべてのプリセットをファイルにエクスポートします" @@ -4142,23 +4141,23 @@ msgstr "STLとしてエクスポート" msgid "Export config" msgstr "構成のエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1257 +#: src/slic3r/GUI/MainFrame.cpp:1261 msgid "Export current configuration to file" msgstr "現在の構成をファイルにエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1230 +#: src/slic3r/GUI/MainFrame.cpp:1234 msgid "Export current plate as G-code" msgstr "現在のプレートをGコードとしてエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1238 +#: src/slic3r/GUI/MainFrame.cpp:1242 msgid "Export current plate as G-code to SD card / Flash drive" msgstr "現在のプレートをGコードとしてSDカード/USBメモリーにエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1242 +#: src/slic3r/GUI/MainFrame.cpp:1246 msgid "Export current plate as STL" msgstr "現在のプレートをSTLとしてエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1245 +#: src/slic3r/GUI/MainFrame.cpp:1249 msgid "Export current plate as STL including supports" msgstr "サポートを含むSTLとして現在のプレートをエクスポート" @@ -4176,19 +4175,19 @@ msgstr "3MFの一時ファイルのエクスポートに失敗しました" msgid "Export sources full pathnames to 3mf and amf" msgstr "ソースのフルパス名を3mfおよびamfにエクスポートする" -#: src/libslic3r/PrintConfig.cpp:4402 +#: src/libslic3r/PrintConfig.cpp:4377 msgid "Export the model(s) as 3MF." msgstr "モデルを3MFとしてエクスポートします。" -#: src/libslic3r/PrintConfig.cpp:4407 +#: src/libslic3r/PrintConfig.cpp:4382 msgid "Export the model(s) as AMF." msgstr "モデルをAMF形式でエクスポート。" -#: src/libslic3r/PrintConfig.cpp:4384 +#: src/libslic3r/PrintConfig.cpp:4359 msgid "Export the model(s) as OBJ." msgstr "モデルをOBJとしてエクスポート。" -#: src/libslic3r/PrintConfig.cpp:4412 +#: src/libslic3r/PrintConfig.cpp:4387 msgid "Export the model(s) as STL." msgstr "STLとしてモデルをエクスポート。" @@ -4196,7 +4195,7 @@ msgstr "STLとしてモデルをエクスポート。" msgid "Export to SD card / Flash drive" msgstr "SDカード/Flashドライブにエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1253 src/slic3r/GUI/MainFrame.cpp:1534 +#: src/slic3r/GUI/MainFrame.cpp:1257 src/slic3r/GUI/MainFrame.cpp:1538 msgid "Export toolpaths as OBJ" msgstr "ツールパスをOBJとしてエクスポート" @@ -4208,7 +4207,7 @@ msgstr "エクスポート。" msgid "Exporting G-code" msgstr "Gコードのエクスポート" -#: src/slic3r/GUI/MainFrame.cpp:1812 +#: src/slic3r/GUI/MainFrame.cpp:1816 msgid "Exporting configuration bundle" msgstr "構成バンドルのエクスポート" @@ -4229,11 +4228,11 @@ msgstr "エクスポート中。" msgid "Exposition time is out of printer profile bounds." msgstr "露光時間がプリンタープロファイルの範囲外です。" -#: src/slic3r/GUI/Tab.cpp:2560 src/slic3r/GUI/Tab.cpp:4570 +#: src/slic3r/GUI/Tab.cpp:2558 src/slic3r/GUI/Tab.cpp:4568 msgid "Exposure" msgstr "露光" -#: src/libslic3r/PrintConfig.cpp:3465 src/libslic3r/PrintConfig.cpp:3466 +#: src/libslic3r/PrintConfig.cpp:3438 src/libslic3r/PrintConfig.cpp:3439 msgid "Exposure time" msgstr "露光時間" @@ -4295,7 +4294,7 @@ msgstr "エクストルーダーカラー" msgid "Extruder changed to" msgstr "エクストルーダーを変更" -#: src/slic3r/GUI/Tab.cpp:1687 +#: src/slic3r/GUI/Tab.cpp:1685 msgid "Extruder clearance" msgstr "エクストルーダーのクリアランス" @@ -4304,7 +4303,7 @@ msgid "Extruder offset" msgstr "エクストルーダーのオフセット" #: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1620 -#: src/slic3r/GUI/Tab.cpp:2303 src/libslic3r/PrintConfig.cpp:792 +#: src/slic3r/GUI/Tab.cpp:2301 src/libslic3r/PrintConfig.cpp:792 #: src/libslic3r/PrintConfig.cpp:1465 src/libslic3r/PrintConfig.cpp:1965 #: src/libslic3r/PrintConfig.cpp:2341 src/libslic3r/PrintConfig.cpp:2615 #: src/libslic3r/PrintConfig.cpp:2643 @@ -4312,7 +4311,7 @@ msgid "Extruders" msgstr "エクストルーダー" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1283 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1670 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1673 msgid "Extruders count" msgstr "エクストルーダーの数" @@ -4352,7 +4351,7 @@ msgstr "FFF型プリンター" msgid "Facets" msgstr "面" -#: src/libslic3r/PrintConfig.cpp:3441 +#: src/libslic3r/PrintConfig.cpp:3414 msgid "Faded layers" msgstr "初期露出レイヤー" @@ -4381,11 +4380,11 @@ msgstr "モデルへの穴あけに失敗しました" msgid "Fan Speed (%)" msgstr "ファンスピード(%)" -#: src/slic3r/GUI/Tab.cpp:2014 +#: src/slic3r/GUI/Tab.cpp:2012 msgid "Fan settings" msgstr "ファン設定" -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:2015 +#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:2013 msgid "Fan speed" msgstr "ファンスピード" @@ -4418,11 +4417,11 @@ msgstr "ファンは常に%1%%%で動作します " msgid "Fan will be turned off." msgstr "ファンがオフになります。" -#: src/libslic3r/PrintConfig.cpp:3289 src/libslic3r/PrintConfig.cpp:3924 +#: src/libslic3r/PrintConfig.cpp:3262 src/libslic3r/PrintConfig.cpp:3897 msgid "Fast" msgstr "早い" -#: src/libslic3r/PrintConfig.cpp:3290 +#: src/libslic3r/PrintConfig.cpp:3263 msgid "Fast tilt" msgstr "早いチルト" @@ -4446,7 +4445,7 @@ msgstr "射出の種類" #: src/slic3r/GUI/GCodeViewer.cpp:3700 src/slic3r/GUI/GCodeViewer.cpp:3726 #: src/slic3r/GUI/GUI.cpp:339 src/slic3r/GUI/Plater.cpp:819 -#: src/slic3r/GUI/Tab.cpp:1969 src/slic3r/GUI/Tab.cpp:1970 +#: src/slic3r/GUI/Tab.cpp:1967 src/slic3r/GUI/Tab.cpp:1968 msgid "Filament" msgstr "フィラメント" @@ -4458,7 +4457,7 @@ msgstr "フィラメント径:" msgid "Filament End G-code" msgstr "フィラメントエンドG-Code" -#: src/slic3r/GUI/Tab.cpp:1868 +#: src/slic3r/GUI/Tab.cpp:1866 msgid "Filament Overrides" msgstr "フィラメント上書き" @@ -4467,7 +4466,7 @@ msgid "Filament Profiles Selection" msgstr "フィラメントプロファイルの選択" #: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:337 -#: src/slic3r/GUI/MainFrame.cpp:2099 src/slic3r/GUI/MainFrame.cpp:2100 +#: src/slic3r/GUI/MainFrame.cpp:2103 src/slic3r/GUI/MainFrame.cpp:2104 #: src/slic3r/GUI/Tab.hpp:461 msgid "Filament Settings" msgstr "フィラメント設定" @@ -4509,7 +4508,7 @@ msgstr "フィラメントメモ" msgid "Filament parking position" msgstr "フィラメント待避ポジション" -#: src/slic3r/GUI/Tab.cpp:2031 +#: src/slic3r/GUI/Tab.cpp:2029 msgid "Filament properties" msgstr "フィラメント特性" @@ -4526,7 +4525,7 @@ msgstr "フィラメントアンロード時間" msgid "Filaments" msgstr "フィラメント" -#: src/slic3r/GUI/MainFrame.cpp:1629 +#: src/slic3r/GUI/MainFrame.cpp:1633 msgid "File Not Found" msgstr "ファイルが見つかりません" @@ -4594,7 +4593,7 @@ msgstr "ベッドの残りの領域を、選択したオブジェクトのイン msgid "Filling bed" msgstr "ベッドフィリング" -#: src/slic3r/GUI/Tab.cpp:3954 +#: src/slic3r/GUI/Tab.cpp:3952 msgid "Find" msgstr "探す" @@ -4606,11 +4605,11 @@ msgstr "Gコード行のパターンを検索して置換します。" msgid "Finished" msgstr "完了" -#: src/slic3r/GUI/ConfigWizard.cpp:1357 src/slic3r/GUI/Tab.cpp:2365 +#: src/slic3r/GUI/ConfigWizard.cpp:1357 src/slic3r/GUI/Tab.cpp:2363 msgid "Firmware" msgstr "ファームウェア" -#: src/slic3r/GUI/Tab.cpp:3013 +#: src/slic3r/GUI/Tab.cpp:3011 msgid "Firmware Retraction" msgstr "ファームウェア引き込み" @@ -4814,7 +4813,7 @@ msgstr "" "ワイプタワーを可溶性のサポートと連携させるには、サポートレイヤーをオブジェク" "トレイヤーと同期させる必要があります。" -#: src/libslic3r/PrintConfig.cpp:3830 +#: src/libslic3r/PrintConfig.cpp:3803 msgid "Force pad around object everywhere" msgstr "オブジェクト全体にパッドを強制" @@ -4848,7 +4847,7 @@ msgstr "" "Gコードサムネイルのフォーマット。PNGは最高の品質、JPGは最小のサイズ、QOIは低" "メモリのファームウェアのため" -#: src/libslic3r/PrintConfig.cpp:4563 +#: src/libslic3r/PrintConfig.cpp:4538 msgid "" "Forward-compatibility rule when loading configurations from config files and " "project files (3MF, AMF)." @@ -4856,7 +4855,7 @@ msgstr "" "構成ファイルおよびプロジェクトファイル (3MF, AMF)から構成をロードする場合の上" "位互換性ルール。" -#: src/slic3r/GUI/Tab.cpp:1854 +#: src/slic3r/GUI/Tab.cpp:1852 msgid "Found reserved keywords in" msgstr "予約キーワードが見つかりました" @@ -4869,11 +4868,11 @@ msgid "From Object List You can't delete the last solid part from object." msgstr "" "オブジェクトリストからオブジェクトの最後のパートを削除することはできません。" -#: src/slic3r/GUI/MainFrame.cpp:1126 +#: src/slic3r/GUI/MainFrame.cpp:1130 msgid "Front" msgstr "正面" -#: src/slic3r/GUI/MainFrame.cpp:1126 +#: src/slic3r/GUI/MainFrame.cpp:1130 msgid "Front View" msgstr "正面" @@ -4881,7 +4880,7 @@ msgstr "正面" msgid "Full fan speed at layer" msgstr "レイヤーでのフルファン速度" -#: src/slic3r/GUI/MainFrame.cpp:1438 +#: src/slic3r/GUI/MainFrame.cpp:1442 msgid "Fullscreen" msgstr "フルスクリーン" @@ -4929,7 +4928,7 @@ msgstr "ファジースキン厚さ" msgid "Fuzzy skin type." msgstr "ファジースキンタイプ。" -#: src/slic3r/GUI/MainFrame.cpp:1664 +#: src/slic3r/GUI/MainFrame.cpp:1668 msgid "G-code" msgstr "Gコード" @@ -4967,11 +4966,11 @@ msgstr "Gコード置換" msgid "G-code thumbnails" msgstr "Gコードのサムネイル" -#: src/libslic3r/PrintConfig.cpp:4422 +#: src/libslic3r/PrintConfig.cpp:4397 msgid "G-code viewer" msgstr "Gコードビュワー" -#: src/slic3r/GUI/AboutDialog.cpp:270 src/slic3r/GUI/GUI_App.cpp:268 +#: src/slic3r/GUI/AboutDialog.cpp:272 src/slic3r/GUI/GUI_App.cpp:268 msgid "GNU Affero General Public License, version 3" msgstr "GNU Affero General Public License, version 3 (AGPL v3)" @@ -4988,10 +4987,10 @@ msgstr "ギャラリー" msgid "Gap fill" msgstr "ギャップフィル" -#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2289 -#: src/slic3r/GUI/Tab.cpp:2516 src/slic3r/GUI/Tab.cpp:2623 +#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2287 +#: src/slic3r/GUI/Tab.cpp:2514 src/slic3r/GUI/Tab.cpp:2621 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1287 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1674 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1677 msgid "General" msgstr "全般" @@ -5021,11 +5020,11 @@ msgstr "" "ト(ベッド)上のプリント領域(フットプリント)が非常に薄い/不十分なオブジェクトの" "密着力を高めるのに役立ちます。" -#: src/libslic3r/PrintConfig.cpp:3558 +#: src/libslic3r/PrintConfig.cpp:3531 msgid "Generate supports" msgstr "サポート生成" -#: src/libslic3r/PrintConfig.cpp:3560 +#: src/libslic3r/PrintConfig.cpp:3533 msgid "Generate supports for the models" msgstr "モデルのサポートを生成する" @@ -5214,11 +5213,11 @@ msgstr "" msgid "Head diameter" msgstr "先端径" -#: src/libslic3r/PrintConfig.cpp:3574 +#: src/libslic3r/PrintConfig.cpp:3547 msgid "Head penetration" msgstr "サポートチップの貫通" -#: src/slic3r/GUI/ConfigManipulation.cpp:338 +#: src/slic3r/GUI/ConfigManipulation.cpp:336 msgid "Head penetration should not be greater than the head width." msgstr "" "サポートチップの貫通は、サポートチップの厚さを超えないようにしてください。" @@ -5243,7 +5242,7 @@ msgstr "高さ(mm)" msgid "Height of skirt expressed in layers." msgstr "スカートの高さをレイヤーで表現。" -#: src/libslic3r/PrintConfig.cpp:3244 +#: src/libslic3r/PrintConfig.cpp:3217 msgid "Height of the display" msgstr "ディスプレイの高さ" @@ -5268,15 +5267,15 @@ msgstr "" "こんにちは、%sへようこそ! この%sは初期設定に役立ちます。 いくつかの設定を行" "うだけで、プリントの準備ができます。" -#: src/libslic3r/PrintConfig.cpp:4434 +#: src/libslic3r/PrintConfig.cpp:4409 msgid "Help" msgstr "ヘルプ" -#: src/libslic3r/PrintConfig.cpp:4440 +#: src/libslic3r/PrintConfig.cpp:4415 msgid "Help (FFF options)" msgstr "ヘルプ(FFFオプション)" -#: src/libslic3r/PrintConfig.cpp:4445 +#: src/libslic3r/PrintConfig.cpp:4420 msgid "Help (SLA options)" msgstr "ヘルプ(SLAオプション)" @@ -5308,7 +5307,7 @@ msgstr "高い" msgid "High extruder current on filament swap" msgstr "フィラメント交換時の高いエクストルーダー電流" -#: src/libslic3r/PrintConfig.cpp:3307 src/libslic3r/PrintConfig.cpp:3925 +#: src/libslic3r/PrintConfig.cpp:3280 src/libslic3r/PrintConfig.cpp:3898 msgid "High viscosity" msgstr "高粘度" @@ -5340,7 +5339,7 @@ msgstr "穴径" msgid "Hollow and drill" msgstr "くり抜きと穴開け" -#: src/libslic3r/PrintConfig.cpp:3876 +#: src/libslic3r/PrintConfig.cpp:3849 msgid "Hollow out a model to have an empty interior" msgstr "内部を空にするためにモデルをくり抜く" @@ -5348,16 +5347,16 @@ msgstr "内部を空にするためにモデルをくり抜く" msgid "Hollow this object" msgstr "このオブジェクトのくり抜き" -#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4721 -#: src/slic3r/GUI/Tab.cpp:4722 src/libslic3r/SLA/Hollowing.cpp:73 +#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4719 +#: src/slic3r/GUI/Tab.cpp:4720 src/libslic3r/SLA/Hollowing.cpp:73 #: src/libslic3r/SLA/Hollowing.cpp:85 src/libslic3r/SLA/Hollowing.cpp:105 -#: src/libslic3r/SLA/Hollowing.cpp:114 src/libslic3r/PrintConfig.cpp:3875 -#: src/libslic3r/PrintConfig.cpp:3882 src/libslic3r/PrintConfig.cpp:3892 -#: src/libslic3r/PrintConfig.cpp:3901 +#: src/libslic3r/SLA/Hollowing.cpp:114 src/libslic3r/PrintConfig.cpp:3848 +#: src/libslic3r/PrintConfig.cpp:3855 src/libslic3r/PrintConfig.cpp:3865 +#: src/libslic3r/PrintConfig.cpp:3874 msgid "Hollowing" msgstr "くり抜き" -#: src/libslic3r/PrintConfig.cpp:3903 +#: src/libslic3r/PrintConfig.cpp:3876 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 " @@ -5424,19 +5423,19 @@ msgstr "" "カーソルをボタンの上に置くと、詳細情報が表示されます。またはこのボタンをク" "リックします。" -#: src/libslic3r/PrintConfig.cpp:3778 +#: src/libslic3r/PrintConfig.cpp:3751 msgid "How far should the pad extend around the contained geometry" msgstr "パッドの形状の周りの幅" -#: src/libslic3r/PrintConfig.cpp:3867 +#: src/libslic3r/PrintConfig.cpp:3840 msgid "How much should the tiny connectors penetrate into the model body." msgstr "小さなコネクターをモデルにどの程度深く入れるか。" -#: src/libslic3r/PrintConfig.cpp:3576 +#: src/libslic3r/PrintConfig.cpp:3549 msgid "How much the pinhead has to penetrate the model surface" msgstr "サポートの先端がモデルの表面をどの程度貫通しているか" -#: src/libslic3r/PrintConfig.cpp:3721 +#: src/libslic3r/PrintConfig.cpp:3694 msgid "" "How much the supports should lift up the supported object. If \"Pad around " "object\" is enabled, this value is ignored." @@ -5649,7 +5648,7 @@ msgid "" msgstr "" "有効にすると、折りたたみサイドバーのボタンが3Dシーンの右上隅に表示されます" -#: src/libslic3r/PrintConfig.cpp:4587 +#: src/libslic3r/PrintConfig.cpp:4562 msgid "" "If enabled, the command line arguments are sent to an existing instance of " "GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides " @@ -5909,7 +5908,7 @@ msgstr "" "接続に失敗した場合は、自己署名証明書に対してこのオプションを有効にすることを" "お勧めします。" -#: src/libslic3r/PrintConfig.cpp:4559 +#: src/libslic3r/PrintConfig.cpp:4534 msgid "Ignore non-existent config files" msgstr "存在しない設定ファイルを無視する" @@ -5927,15 +5926,15 @@ msgstr "違法な指示" msgid "Import" msgstr "インポート" -#: src/slic3r/GUI/MainFrame.cpp:1217 +#: src/slic3r/GUI/MainFrame.cpp:1221 msgid "Import &Config" msgstr "設定のインポート(&C)" -#: src/slic3r/GUI/MainFrame.cpp:1224 +#: src/slic3r/GUI/MainFrame.cpp:1228 msgid "Import Config &Bundle" msgstr "構成バンドルのインポート(&B)" -#: src/slic3r/GUI/MainFrame.cpp:1220 +#: src/slic3r/GUI/MainFrame.cpp:1224 msgid "Import Config from &Project" msgstr "プロジェクトから構成をインポート&P" @@ -5951,7 +5950,7 @@ msgstr "オブジェクトをインポート" msgid "Import Objects" msgstr "オブジェクトのインポート" -#: src/slic3r/GUI/MainFrame.cpp:1212 +#: src/slic3r/GUI/MainFrame.cpp:1216 msgid "Import SL1 / SL1S Archive" msgstr "SL1/SL1Sアーカイブのインポート" @@ -5959,11 +5958,11 @@ msgstr "SL1/SL1Sアーカイブのインポート" msgid "Import SLA archive" msgstr "SLAアーカイブをインポート" -#: src/slic3r/GUI/MainFrame.cpp:1208 +#: src/slic3r/GUI/MainFrame.cpp:1212 msgid "Import STL (Imperial Units)" msgstr "STLのインポート(インチ)" -#: src/slic3r/GUI/MainFrame.cpp:1204 +#: src/slic3r/GUI/MainFrame.cpp:1208 msgid "Import STL/OBJ/AM&F/3MF" msgstr "STL/OBJ/AMF/3MFのインポート(&F)" @@ -6091,11 +6090,11 @@ msgstr "プロファイルを継承" msgid "Initial exposition time is out of printer profile bounds." msgstr "初期露出時間は、プリンタプロファイルの範囲外です。" -#: src/libslic3r/PrintConfig.cpp:3488 src/libslic3r/PrintConfig.cpp:3489 +#: src/libslic3r/PrintConfig.cpp:3461 src/libslic3r/PrintConfig.cpp:3462 msgid "Initial exposure time" msgstr "初期露出時間" -#: src/libslic3r/PrintConfig.cpp:3406 src/libslic3r/PrintConfig.cpp:3407 +#: src/libslic3r/PrintConfig.cpp:3379 src/libslic3r/PrintConfig.cpp:3380 msgid "Initial layer height" msgstr "初期レイヤー高さ" @@ -6198,7 +6197,7 @@ msgstr "内部エラー:%1%" msgid "Internal infill" msgstr "内部のインフィル" -#: src/slic3r/GUI/ConfigManipulation.cpp:340 +#: src/slic3r/GUI/ConfigManipulation.cpp:338 msgid "Invalid Head penetration" msgstr "モデルへの無効なサポートの貫通" @@ -6224,7 +6223,7 @@ msgstr "入力形式が無効です。 次の形式の次元の予想される msgid "Invalid numeric input." msgstr "無効な数値入力。" -#: src/slic3r/GUI/ConfigManipulation.cpp:353 +#: src/slic3r/GUI/ConfigManipulation.cpp:351 msgid "Invalid pinhead diameter" msgstr "無効なピンヘッド径" @@ -6259,11 +6258,11 @@ msgstr "アイロンタイプ" msgid "Is it safe?" msgstr "安全ですか?" -#: src/slic3r/GUI/MainFrame.cpp:1117 +#: src/slic3r/GUI/MainFrame.cpp:1121 msgid "Iso" msgstr "アイソメ" -#: src/slic3r/GUI/MainFrame.cpp:1117 +#: src/slic3r/GUI/MainFrame.cpp:1121 msgid "Iso View" msgstr "アイソメ表示" @@ -6290,7 +6289,7 @@ msgstr "" "メント押出し力を高められます。フィラメントの先端シェイプによりロード時の負荷" "抵抗が増加してしまう場合に有効な機能です。" -#: src/slic3r/GUI/Tab.cpp:3710 +#: src/slic3r/GUI/Tab.cpp:3708 msgid "It's a last preset for this physical printer." msgstr "これは、この物理プリンターの最後のプリセットです。" @@ -6302,7 +6301,7 @@ msgstr "SLAではマルチパートオブジェクトのプリントはできま msgid "It's not possible to delete the last related preset for the printer." msgstr "プリンタの最後の関連プリセットを削除することはできません。" -#: src/slic3r/GUI/Tab.cpp:2673 +#: src/slic3r/GUI/Tab.cpp:2671 msgid "Jerk limits" msgstr "ジャーク(加加速度)限界" @@ -6368,7 +6367,7 @@ msgstr "選択した設定を保持します。" msgid "Keep upper part" msgstr "上側パーツを保持" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:18 src/slic3r/GUI/MainFrame.cpp:1103 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:18 src/slic3r/GUI/MainFrame.cpp:1107 msgid "Keyboard Shortcuts" msgstr "キーボードショートカット" @@ -6376,11 +6375,11 @@ msgstr "キーボードショートカット" msgid "Keyboard shortcuts" msgstr "キーボードショートカット" -#: src/slic3r/GUI/Tab.cpp:4320 +#: src/slic3r/GUI/Tab.cpp:4318 msgid "LOCKED LOCK" msgstr "ロックしたカギ" -#: src/slic3r/GUI/Tab.cpp:4348 +#: src/slic3r/GUI/Tab.cpp:4346 msgid "" "LOCKED LOCK icon indicates that the settings are the same as the system (or " "default) values for the current option group" @@ -6388,7 +6387,7 @@ msgstr "" "ロックされたカギアイコンは、設定が現在のオプショングループのシステム(または" "デフォルト)値と同じであることを示します" -#: src/slic3r/GUI/Tab.cpp:4364 +#: src/slic3r/GUI/Tab.cpp:4362 msgid "" "LOCKED LOCK icon indicates that the value is the same as the system (or " "default) value." @@ -6400,7 +6399,7 @@ msgstr "" msgid "Label objects" msgstr "オブジェクトにラベルを付ける" -#: src/libslic3r/PrintConfig.cpp:3283 +#: src/libslic3r/PrintConfig.cpp:3256 msgid "Landscape" msgstr "横方向" @@ -6440,7 +6439,7 @@ msgstr "" "\n" "レイヤーの高さは0.01にリセットされます。" -#: src/slic3r/GUI/Tab.cpp:2803 +#: src/slic3r/GUI/Tab.cpp:2801 msgid "Layer height limits" msgstr "レイヤー高さ限度" @@ -6448,8 +6447,8 @@ msgstr "レイヤー高さ限度" msgid "Layer range Settings to modify" msgstr "修正するレイヤー範囲の設定" -#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4567 -#: src/slic3r/GUI/Tab.cpp:4658 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4565 +#: src/slic3r/GUI/Tab.cpp:4656 msgid "Layers" msgstr "レイヤー" @@ -6466,7 +6465,7 @@ msgstr "レイヤー" msgid "Layers and Perimeters" msgstr "積層ピッチと外壁の設定" -#: src/slic3r/GUI/Tab.cpp:1447 src/slic3r/GUI/Tab.cpp:4656 +#: src/slic3r/GUI/Tab.cpp:1447 src/slic3r/GUI/Tab.cpp:4654 msgid "Layers and perimeters" msgstr "レイヤーと外周" @@ -6479,15 +6478,15 @@ msgstr "レイアウトオプション" msgid "Leave \"%1%\" enabled" msgstr "\"%1%\" を有効のままにする" -#: src/slic3r/GUI/MainFrame.cpp:1130 +#: src/slic3r/GUI/MainFrame.cpp:1134 msgid "Left" msgstr "左" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1517 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1520 msgid "Left Preset Value" msgstr "左プリセット値" -#: src/slic3r/GUI/MainFrame.cpp:1130 +#: src/slic3r/GUI/MainFrame.cpp:1134 msgid "Left View" msgstr "左面" @@ -6526,7 +6525,7 @@ msgid "Length of the infill anchor" msgstr "インフィルアンカー長" #. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:141 +#: src/slic3r/GUI/AboutDialog.cpp:143 msgid "" "License agreements of all following programs (libraries) are part of " "application license agreement" @@ -6538,7 +6537,7 @@ msgstr "" msgid "Lift Z" msgstr "リフトZ" -#: src/libslic3r/PrintConfig.cpp:4503 +#: src/libslic3r/PrintConfig.cpp:4478 msgid "" "Lift the object above the bed when it is partially below. Enabled by " "default, use --no-ensure-on-bed to disable." @@ -6598,19 +6597,19 @@ msgstr "パーツの読込み" msgid "Load Project" msgstr "プロジェクト読込み" -#: src/slic3r/GUI/MainFrame.cpp:1204 +#: src/slic3r/GUI/MainFrame.cpp:1208 msgid "Load a model" msgstr "モデルを読込む" -#: src/slic3r/GUI/MainFrame.cpp:1212 +#: src/slic3r/GUI/MainFrame.cpp:1216 msgid "Load an SL1 / Sl1S archive" msgstr "SL1 / SL1Sアーカイブをロードする" -#: src/slic3r/GUI/MainFrame.cpp:1208 +#: src/slic3r/GUI/MainFrame.cpp:1212 msgid "Load an model saved with imperial units" msgstr "インチで保存されたモデルをロードします " -#: src/libslic3r/PrintConfig.cpp:4599 +#: src/libslic3r/PrintConfig.cpp:4574 msgid "" "Load and store settings at the given directory. This is useful for " "maintaining different profiles or including configurations from a network " @@ -6619,7 +6618,7 @@ msgstr "" "指定されたディレクトリで設定を読込み/保存します。 これは、異なるプロファイル" "を維持したり、ネットワークストレージからの構成を含めたりするのに役立ちます。" -#: src/libslic3r/PrintConfig.cpp:4577 +#: src/libslic3r/PrintConfig.cpp:4552 msgid "Load config file" msgstr "設定ファイルの読込み" @@ -6638,11 +6637,11 @@ msgstr "" "ブ]を使用できます。これにより、ボクセルデータから3Dモデルを再構築することもで" "きます。" -#: src/slic3r/GUI/MainFrame.cpp:1220 +#: src/slic3r/GUI/MainFrame.cpp:1224 msgid "Load configuration from project file" msgstr "プロジェクトファイルから設定を読み込む" -#: src/libslic3r/PrintConfig.cpp:4578 +#: src/libslic3r/PrintConfig.cpp:4553 msgid "" "Load configuration from the specified file. It can be used more than once to " "load options from multiple files." @@ -6650,11 +6649,11 @@ msgstr "" "指定されたファイルから構成をロードします。 複数のファイルからオプションをロー" "ドするために複数回使用できます。" -#: src/slic3r/GUI/MainFrame.cpp:1217 +#: src/slic3r/GUI/MainFrame.cpp:1221 msgid "Load exported configuration file" msgstr "エクスポートされた構成ファイルを読込む" -#: src/slic3r/GUI/MainFrame.cpp:1224 +#: src/slic3r/GUI/MainFrame.cpp:1228 msgid "Load presets from a bundle" msgstr "プリセットをバンドルから読込む" @@ -6686,11 +6685,11 @@ msgstr "構成のロード" msgid "Loading file" msgstr "ファイル読込み中" -#: src/slic3r/GUI/MainFrame.cpp:1845 +#: src/slic3r/GUI/MainFrame.cpp:1849 msgid "Loading of a configuration bundle" msgstr "構成バンドルのロード" -#: src/slic3r/GUI/MainFrame.cpp:1781 +#: src/slic3r/GUI/MainFrame.cpp:1785 msgid "Loading of a configuration file" msgstr "構成ファイルのロード" @@ -6729,7 +6728,7 @@ msgstr "ローカル座標" msgid "Lock supports under new islands" msgstr "新しい台座でのサポートロック" -#: src/libslic3r/PrintConfig.cpp:4602 +#: src/libslic3r/PrintConfig.cpp:4577 msgid "Logging level" msgstr "ログレベル" @@ -6745,7 +6744,7 @@ msgstr "低い" msgid "Lowest Z height" msgstr "最小Z高さ" -#: src/slic3r/GUI/Tab.cpp:2621 src/slic3r/GUI/Tab.cpp:2708 +#: src/slic3r/GUI/Tab.cpp:2619 src/slic3r/GUI/Tab.cpp:2706 #: src/libslic3r/PrintConfig.cpp:1631 src/libslic3r/PrintConfig.cpp:1666 #: src/libslic3r/PrintConfig.cpp:1683 src/libslic3r/PrintConfig.cpp:1700 #: src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1726 @@ -6754,7 +6753,7 @@ msgstr "最小Z高さ" msgid "Machine limits" msgstr "機体の限界" -#: src/slic3r/GUI/Tab.cpp:4298 +#: src/slic3r/GUI/Tab.cpp:4296 msgid "" "Machine limits are not set, therefore the print time estimate may not be " "accurate." @@ -6762,7 +6761,7 @@ msgstr "" "機械の制限が設定されていないため、プリント時間の見積もりが不正確な場合があり" "ます。 " -#: src/slic3r/GUI/Tab.cpp:4294 +#: src/slic3r/GUI/Tab.cpp:4292 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 " @@ -6772,7 +6771,7 @@ msgstr "" "す。したがって、プリンターが異なるマシン制限のセットを使った場合、不正確な予" "測時間になります。" -#: src/slic3r/GUI/Tab.cpp:4291 +#: src/slic3r/GUI/Tab.cpp:4289 msgid "" "Machine limits will be emitted to G-code and used to estimate print time." msgstr "" @@ -6797,20 +6796,20 @@ msgstr "マニュアル編集" msgid "Masked SLA file exported to %1%" msgstr "マスクされたSLAファイルが%1%にエクスポートされました" -#: src/slic3r/GUI/Tab.cpp:4056 +#: src/slic3r/GUI/Tab.cpp:4054 msgid "Match single line" msgstr "1行にマッチする" -#: src/slic3r/GUI/MainFrame.cpp:1585 +#: src/slic3r/GUI/MainFrame.cpp:1589 msgid "Mate&rial Settings Tab" msgstr "材料設定タブ(&r)" -#: src/slic3r/GUI/Tab.cpp:4526 src/slic3r/GUI/Tab.cpp:4528 +#: src/slic3r/GUI/Tab.cpp:4524 src/slic3r/GUI/Tab.cpp:4526 msgid "Material" msgstr "材料" #: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:339 -#: src/slic3r/GUI/MainFrame.cpp:2099 src/slic3r/GUI/MainFrame.cpp:2100 +#: src/slic3r/GUI/MainFrame.cpp:2103 src/slic3r/GUI/MainFrame.cpp:2104 #: src/slic3r/GUI/Tab.hpp:535 msgid "Material Settings" msgstr "材料設定" @@ -6819,7 +6818,7 @@ msgstr "材料設定" msgid "Material Settings Tab" msgstr "材料設定タブ" -#: src/slic3r/GUI/Tab.cpp:4613 src/slic3r/GUI/Tab.cpp:4614 +#: src/slic3r/GUI/Tab.cpp:4611 src/slic3r/GUI/Tab.cpp:4612 msgid "Material printing profile" msgstr "材料プリントプロファイル" @@ -6827,19 +6826,19 @@ msgstr "材料プリントプロファイル" msgid "Max" msgstr "最大" -#: src/libslic3r/PrintConfig.cpp:3700 +#: src/libslic3r/PrintConfig.cpp:3673 msgid "Max bridge length" msgstr "最長ブリッジ長さ" -#: src/libslic3r/PrintConfig.cpp:3614 +#: src/libslic3r/PrintConfig.cpp:3587 msgid "Max bridges on a pillar" msgstr "ピラー上の最大ブリッジ数" -#: src/libslic3r/PrintConfig.cpp:3788 +#: src/libslic3r/PrintConfig.cpp:3761 msgid "Max merge distance" msgstr "最大結合距離" -#: src/libslic3r/PrintConfig.cpp:3709 +#: src/libslic3r/PrintConfig.cpp:3682 msgid "Max pillar linking distance" msgstr "ピラーがリンクする最大距離" @@ -6935,7 +6934,7 @@ msgstr "吸込み中の最大加速度" msgid "Maximum acceleration when retracting (M204 R)" msgstr "リトラクト時の最大加速度(M204 R)" -#: src/slic3r/GUI/Tab.cpp:2664 +#: src/slic3r/GUI/Tab.cpp:2662 msgid "Maximum accelerations" msgstr "最大加速度" @@ -6956,7 +6955,7 @@ msgstr "" "ヤーで個別に実行されるため、目に見えるアーティファクトが生成される可能性があ" "ります。" -#: src/libslic3r/PrintConfig.cpp:3457 src/libslic3r/PrintConfig.cpp:3458 +#: src/libslic3r/PrintConfig.cpp:3430 src/libslic3r/PrintConfig.cpp:3431 msgid "Maximum exposure time" msgstr "最長露光時間" @@ -6992,11 +6991,11 @@ msgstr "Y軸の最大送り速度" msgid "Maximum feedrate of the Z axis" msgstr "Z軸最大送り量" -#: src/slic3r/GUI/Tab.cpp:2659 +#: src/slic3r/GUI/Tab.cpp:2657 msgid "Maximum feedrates" msgstr "最大送り速度" -#: src/libslic3r/PrintConfig.cpp:3480 src/libslic3r/PrintConfig.cpp:3481 +#: src/libslic3r/PrintConfig.cpp:3453 src/libslic3r/PrintConfig.cpp:3454 msgid "Maximum initial exposure time" msgstr "最大初期露光時間" @@ -7036,7 +7035,7 @@ msgstr "Z軸最大ジャーク" msgid "Maximum length of the infill anchor" msgstr "最長インフィルアンカー" -#: src/libslic3r/PrintConfig.cpp:3616 +#: src/libslic3r/PrintConfig.cpp:3589 msgid "" "Maximum number of bridges that can be placed on a pillar. Bridges hold " "support point pinheads and connect to pillars as small branches." @@ -7067,7 +7066,7 @@ msgid "Medium" msgstr "中間" #: src/slic3r/GUI/GUI_Factories.cpp:859 src/slic3r/GUI/GUI_ObjectList.cpp:2133 -#: src/libslic3r/PrintConfig.cpp:4516 +#: src/libslic3r/PrintConfig.cpp:4491 msgid "Merge" msgstr "マージ" @@ -7083,7 +7082,7 @@ msgstr "オブジェクトを1つのマルチパートオブジェクトにマ msgid "Merged" msgstr "マージ" -#: src/libslic3r/PrintConfig.cpp:3649 +#: src/libslic3r/PrintConfig.cpp:3622 msgid "" "Merging bridges or pillars into another pillars can increase the radius. " "Zero means no increase, one means full increase." @@ -7121,7 +7120,7 @@ msgstr "最小" msgid "Min print speed" msgstr "最低プリント速度" -#: src/libslic3r/PrintConfig.cpp:3738 +#: src/libslic3r/PrintConfig.cpp:3711 msgid "Minimal distance of the support points" msgstr "サポートポイントの最小距離" @@ -7162,11 +7161,11 @@ msgstr "" "力以上の情報があります。 単純化しないでファイルの完全な解像度で処理するには、" "ゼロに設定します。" -#: src/libslic3r/PrintConfig.cpp:3449 src/libslic3r/PrintConfig.cpp:3450 +#: src/libslic3r/PrintConfig.cpp:3422 src/libslic3r/PrintConfig.cpp:3423 msgid "Minimum exposure time" msgstr "最短露光時間" -#: src/libslic3r/PrintConfig.cpp:3156 +#: src/libslic3r/PrintConfig.cpp:3128 msgid "Minimum feature size" msgstr "最小フィーチャーサイズ" @@ -7178,15 +7177,15 @@ msgstr "射出中の最小速度" msgid "Minimum feedrate when extruding (M205 S)" msgstr "射出時の最小送り速度(M205 S)" -#: src/slic3r/GUI/Tab.cpp:2679 +#: src/slic3r/GUI/Tab.cpp:2677 msgid "Minimum feedrates" msgstr "最小送り速度" -#: src/libslic3r/PrintConfig.cpp:3472 src/libslic3r/PrintConfig.cpp:3473 +#: src/libslic3r/PrintConfig.cpp:3445 src/libslic3r/PrintConfig.cpp:3446 msgid "Minimum initial exposure time" msgstr "最小初期露光時間" -#: src/libslic3r/PrintConfig.cpp:3167 +#: src/libslic3r/PrintConfig.cpp:3140 msgid "Minimum perimeter width" msgstr "最小境界線幅" @@ -7210,14 +7209,17 @@ msgstr "" msgid "Minimum thickness of a top / bottom shell" msgstr "上部/下部シェルの最小厚" -#: src/libslic3r/PrintConfig.cpp:3158 +#: src/libslic3r/PrintConfig.cpp:3130 msgid "" "Minimum thickness of thin features. Model features that are thinner than " "this value will not be printed, while features thicker than the Minimum " -"feature size will be widened to the Minimum perimeter width." +"feature size will be widened to the Minimum perimeter width. If expressed as " +"a percentage (for example 25%), it will be computed based on the nozzle " +"diameter." msgstr "" "薄いフィーチャーの最小厚み。この値より薄いモデルフィーチャーはプリントされ" -"ず、最小フィーチャーサイズより厚いフィーチャーは最小境界線幅に広げられます。" +"ず、最小フィーチャーサイズより厚いフィーチャーは最小外周幅に広げられます。" +"パーセントで表現される場合(例えば25%)、ノズル径を基に計算されます。" #: src/libslic3r/PrintConfig.cpp:2899 msgid "Minimum top shell thickness" @@ -7240,11 +7242,11 @@ msgstr "最小移動速度" msgid "Minimum travel feedrate (M205 T)" msgstr "最小移動速度 (M205 T)" -#: src/libslic3r/PrintConfig.cpp:3883 +#: src/libslic3r/PrintConfig.cpp:3856 msgid "Minimum wall thickness of a hollowed model." msgstr "くり抜きモデルの最小壁厚" -#: src/libslic3r/PrintConfig.cpp:3366 +#: src/libslic3r/PrintConfig.cpp:3339 msgid "" "Minimum width of features to maintain when doing elephant foot compensation." msgstr "エレファントフットの補正を行うときに維持する外観の最小幅。" @@ -7267,7 +7269,7 @@ msgstr "" msgid "Mirror Object" msgstr "オブジェクトのミラーリング" -#: src/libslic3r/PrintConfig.cpp:3263 +#: src/libslic3r/PrintConfig.cpp:3236 msgid "Mirror horizontally" msgstr "水平にミラーリング" @@ -7287,7 +7289,7 @@ msgstr "選択オブジェクトをY軸に沿ってミラーリング" msgid "Mirror the selected object along the Z axis" msgstr "選択したオブジェクトをZ軸に沿ってミラーリングします" -#: src/libslic3r/PrintConfig.cpp:3270 +#: src/libslic3r/PrintConfig.cpp:3243 msgid "Mirror vertically" msgstr "垂直にミラーリング" @@ -7468,11 +7470,11 @@ msgstr "" "これらは複数のオブジェクトではなく、\n" "複数のパーツからなる単一のオブジェクトとしますか?" -#: src/libslic3r/PrintConfig.cpp:4513 +#: src/libslic3r/PrintConfig.cpp:4488 msgid "Multiply copies by creating a grid." msgstr "グリッドを作成して複数コピーします。" -#: src/libslic3r/PrintConfig.cpp:4508 +#: src/libslic3r/PrintConfig.cpp:4483 msgid "Multiply copies by this factor." msgstr "この係数で複数コピーします。" @@ -7562,7 +7564,7 @@ msgstr "新しいレイアウト、トップメニューの設定ボタンから msgid "New prerelease version %1% is available." msgstr "新しいプレリリースバージョン%1%が利用可能です。" -#: src/slic3r/GUI/Tab.cpp:3318 +#: src/slic3r/GUI/Tab.cpp:3316 msgid "New printer preset selected" msgstr "新しいプリンタプリセットが選択されました" @@ -7622,7 +7624,7 @@ msgstr "オブジェクトのツールパスが生成されませんでした。 msgid "No pad can be generated for this model with the current configuration" msgstr "現在の構成では、このモデルのパッドを生成できません" -#: src/slic3r/GUI/MainFrame.cpp:1621 +#: src/slic3r/GUI/MainFrame.cpp:1625 msgid "No previously sliced file." msgstr "以前にスライスされたファイルはありません。" @@ -7630,7 +7632,7 @@ msgstr "以前にスライスされたファイルはありません。" msgid "No sparse layers (EXPERIMENTAL)" msgstr "スパースレイヤーなし(試用的)" -#: src/libslic3r/PrintConfig.cpp:3740 +#: src/libslic3r/PrintConfig.cpp:3713 msgid "No support points will be placed closer than this threshold." msgstr "このしきい値よりも近くにサポートポイントは配置されません。" @@ -7646,7 +7648,7 @@ msgid "None" msgstr "なし" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:336 -#: src/slic3r/GUI/Tab.cpp:2645 +#: src/slic3r/GUI/Tab.cpp:2643 msgid "Normal" msgstr "ノーマル" @@ -7662,7 +7664,7 @@ msgstr "見つかりません:" msgid "Note" msgstr "注意" -#: src/slic3r/GUI/Tab.cpp:3732 +#: src/slic3r/GUI/Tab.cpp:3730 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." @@ -7670,7 +7672,7 @@ msgstr[0] "" "選択したプリセットはこれらのプリンターからも削除されることに注意してくださ" "い。" -#: src/slic3r/GUI/Tab.cpp:3742 +#: src/slic3r/GUI/Tab.cpp:3740 msgid "" "Note, that this printer will be deleted after deleting the selected preset." msgid_plural "" @@ -7679,7 +7681,7 @@ msgstr[0] "" "選択したプリセットを削除すると、これらのプリンターは削除されることに注意して" "ください。" -#: src/slic3r/GUI/Tab.cpp:2256 +#: src/slic3r/GUI/Tab.cpp:2254 msgid "" "Note: All parameters from this group are moved to the Physical Printer " "settings (see changelog).\n" @@ -7728,12 +7730,12 @@ msgstr "注:このプリセットは保存後に置き換えられます" msgid "Note: some shortcuts work in (non)editing mode only." msgstr "注:一部のショートカットは編集モードでは使えません。" -#: src/slic3r/GUI/Tab.cpp:1723 src/slic3r/GUI/Tab.cpp:1724 -#: src/slic3r/GUI/Tab.cpp:2109 src/slic3r/GUI/Tab.cpp:2110 -#: src/slic3r/GUI/Tab.cpp:2497 src/slic3r/GUI/Tab.cpp:2498 -#: src/slic3r/GUI/Tab.cpp:2570 src/slic3r/GUI/Tab.cpp:2571 -#: src/slic3r/GUI/Tab.cpp:3956 src/slic3r/GUI/Tab.cpp:4584 -#: src/slic3r/GUI/Tab.cpp:4585 +#: src/slic3r/GUI/Tab.cpp:1721 src/slic3r/GUI/Tab.cpp:1722 +#: src/slic3r/GUI/Tab.cpp:2107 src/slic3r/GUI/Tab.cpp:2108 +#: src/slic3r/GUI/Tab.cpp:2495 src/slic3r/GUI/Tab.cpp:2496 +#: src/slic3r/GUI/Tab.cpp:2568 src/slic3r/GUI/Tab.cpp:2569 +#: src/slic3r/GUI/Tab.cpp:3954 src/slic3r/GUI/Tab.cpp:4582 +#: src/slic3r/GUI/Tab.cpp:4583 msgid "Notes" msgstr "メモ" @@ -7747,7 +7749,7 @@ msgstr "通知" msgid "Notify about new releases" msgstr "新しいリリースについて通知する" -#: src/slic3r/GUI/Tab.cpp:1991 +#: src/slic3r/GUI/Tab.cpp:1989 msgid "Nozzle" msgstr "ノズル" @@ -7759,7 +7761,7 @@ msgstr "ノズル径:" msgid "Nozzle and Bed Temperatures" msgstr "ノズルとベッド温度" -#: src/slic3r/GUI/Tab.cpp:2337 src/slic3r/GUI/Tab.cpp:2781 +#: src/slic3r/GUI/Tab.cpp:2335 src/slic3r/GUI/Tab.cpp:2779 #: src/libslic3r/PrintConfig.cpp:1876 msgid "Nozzle diameter" msgstr "ノズル径" @@ -7789,7 +7791,7 @@ msgstr "" msgid "Number of cooling moves" msgstr "冷却移動回数" -#: src/slic3r/GUI/Tab.cpp:2304 +#: src/slic3r/GUI/Tab.cpp:2302 msgid "Number of extruders of the printer." msgstr "プリンターのエクストルーダー数。" @@ -7817,15 +7819,15 @@ msgstr "" "されている場合、ループ数はここで設定された値よりも大きくなる場合があります。 " "スカートを完全に無効にするには、これをゼロに設定します。" -#: src/libslic3r/PrintConfig.cpp:3249 +#: src/libslic3r/PrintConfig.cpp:3222 msgid "Number of pixels in" msgstr "ピクセル数" -#: src/libslic3r/PrintConfig.cpp:3251 +#: src/libslic3r/PrintConfig.cpp:3224 msgid "Number of pixels in X" msgstr "Xのピクセル数" -#: src/libslic3r/PrintConfig.cpp:3257 +#: src/libslic3r/PrintConfig.cpp:3230 msgid "Number of pixels in Y" msgstr "Yのピクセル数" @@ -7841,7 +7843,7 @@ msgstr "上部と底部のソリッドレイヤー(塗りつぶし)数。" msgid "Number of solid layers to generate on top surfaces." msgstr "上部に生成するソリッドレイヤー(塗りつぶし)数。" -#: src/libslic3r/PrintConfig.cpp:3442 +#: src/libslic3r/PrintConfig.cpp:3415 msgid "" "Number of the layers needed for the exposure time fade from initial exposure " "time to the exposure time" @@ -7855,7 +7857,7 @@ msgstr "ツールチェンジ回数" msgid "Object Settings to modify" msgstr "オブジェクト設定を変更" -#: src/slic3r/GUI/Tab.cpp:4776 src/libslic3r/PrintConfig.cpp:3719 +#: src/slic3r/GUI/Tab.cpp:4774 src/libslic3r/PrintConfig.cpp:3692 msgid "Object elevation" msgstr "オブジェクトの持ち上げ高" @@ -7969,7 +7971,7 @@ msgstr "垂直スライダーの1レイヤーモードOn/Off" msgid "One layer mode" msgstr "1レイヤーモード" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1627 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1630 msgid "One of the presets doesn't found" msgstr "プリセットの1つが見つかりません" @@ -7994,7 +7996,7 @@ msgstr "" "す。 最後のオブジェクトを除くすべてを削除するか、「complete_objects」でシーケ" "ンシャルモードを有効にします。 " -#: src/libslic3r/PrintConfig.cpp:2560 src/libslic3r/PrintConfig.cpp:3642 +#: src/libslic3r/PrintConfig.cpp:2560 src/libslic3r/PrintConfig.cpp:3615 msgid "" "Only create support if it lies on a build plate. Don't create support on a " "print." @@ -8006,7 +8008,7 @@ msgstr "" msgid "Only infill where needed" msgstr "必要な場合のみインフィルを付ける" -#: src/slic3r/GUI/Tab.cpp:2814 +#: src/slic3r/GUI/Tab.cpp:2812 msgid "Only lift Z" msgstr "Zをリフト" @@ -8047,7 +8049,7 @@ msgid "Ooze prevention is currently not supported with the wipe tower enabled." msgstr "" "垂れ防止機能は、現在のところ、ワイプタワーを有効にした状態では使えません。" -#: src/slic3r/GUI/MainFrame.cpp:1537 +#: src/slic3r/GUI/MainFrame.cpp:1541 msgid "Open &PrusaSlicer" msgstr "&Prusaスライサーのオープン" @@ -8067,11 +8069,11 @@ msgstr "フォルダーを開きます。" msgid "Open G-code file:" msgstr "開くGコードファイル:" -#: src/slic3r/GUI/MainFrame.cpp:78 src/slic3r/GUI/MainFrame.cpp:1304 +#: src/slic3r/GUI/MainFrame.cpp:78 src/slic3r/GUI/MainFrame.cpp:1308 msgid "Open G-code viewer" msgstr "Gコードビューワーを開く" -#: src/slic3r/GUI/MainFrame.cpp:1416 +#: src/slic3r/GUI/MainFrame.cpp:1420 msgid "Open New Instance" msgstr "新しいインスタンスを開く" @@ -8079,20 +8081,20 @@ msgstr "新しいインスタンスを開く" msgid "Open Preferences." msgstr "設定を開く。" -#: src/slic3r/GUI/MainFrame.cpp:89 src/slic3r/GUI/MainFrame.cpp:1537 +#: src/slic3r/GUI/MainFrame.cpp:89 src/slic3r/GUI/MainFrame.cpp:1541 msgid "Open PrusaSlicer" msgstr "PrusaSlicerを開く" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:205 src/slic3r/GUI/MainFrame.cpp:1521 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:205 src/slic3r/GUI/MainFrame.cpp:1525 msgid "Open a G-code file" msgstr "G-コードファイルを開く" #: src/slic3r/GUI/MainFrame.cpp:75 src/slic3r/GUI/MainFrame.cpp:89 -#: src/slic3r/GUI/MainFrame.cpp:1416 +#: src/slic3r/GUI/MainFrame.cpp:1420 msgid "Open a new PrusaSlicer instance" msgstr "新しいPrusaSlicerインスタンスを開く" -#: src/slic3r/GUI/MainFrame.cpp:1148 +#: src/slic3r/GUI/MainFrame.cpp:1152 msgid "Open a project file" msgstr "プロジェクトファイルを開く" @@ -8134,7 +8136,7 @@ msgstr "ブラウザで%sウェブサイトを開きます" msgid "Open the Prusa3D drivers download page in your browser" msgstr "ブラウザーでPrusa3Dドライバのダウンロードページを開きます" -#: src/slic3r/GUI/MainFrame.cpp:1400 +#: src/slic3r/GUI/MainFrame.cpp:1404 msgid "Open the dialog to modify shape gallery" msgstr "シェイプギャラリーの編集ダイヤログを開く" @@ -8150,7 +8152,7 @@ msgstr "構成ウィザードを開く" msgid "Opening new project while some presets are unsaved." msgstr "一部のプリセットが保存されていないときに新しいプロジェクトを開きます。" -#: src/slic3r/GUI/MainFrame.cpp:1100 +#: src/slic3r/GUI/MainFrame.cpp:1104 msgid "" "Opens Tip of the day notification in bottom right corner or shows another " "tip if already opened." @@ -8225,7 +8227,7 @@ msgstr "オリエンテーション検索がキャンセルされました。" msgid "Origin" msgstr "原点" -#: src/slic3r/GUI/Tab.cpp:1671 src/slic3r/GUI/Tab.cpp:1699 +#: src/slic3r/GUI/Tab.cpp:1671 src/slic3r/GUI/Tab.cpp:1697 msgid "Other" msgstr "その他" @@ -8245,15 +8247,15 @@ msgstr "アウターとインナーブリム" msgid "Outer brim only" msgstr "外側のブリムのみ" -#: src/libslic3r/PrintConfig.cpp:4581 +#: src/libslic3r/PrintConfig.cpp:4556 msgid "Output File" msgstr "ファイル出力" -#: src/libslic3r/PrintConfig.cpp:4450 +#: src/libslic3r/PrintConfig.cpp:4425 msgid "Output Model Info" msgstr "モデル情報のアウトプット" -#: src/slic3r/GUI/Tab.cpp:1692 src/slic3r/GUI/Tab.cpp:4734 +#: src/slic3r/GUI/Tab.cpp:1690 src/slic3r/GUI/Tab.cpp:4732 msgid "Output file" msgstr "出力ファイル" @@ -8261,7 +8263,7 @@ msgstr "出力ファイル" msgid "Output filename format" msgstr "出力ファイル名の形式" -#: src/slic3r/GUI/Tab.cpp:1684 src/slic3r/GUI/Tab.cpp:4733 +#: src/slic3r/GUI/Tab.cpp:1682 src/slic3r/GUI/Tab.cpp:4731 msgid "Output options" msgstr "出力オプション" @@ -8286,19 +8288,19 @@ msgstr "オーバハングのしきい値" msgid "Overlap" msgstr "オーバーラップ" -#: src/slic3r/GUI/MainFrame.cpp:1378 +#: src/slic3r/GUI/MainFrame.cpp:1382 msgid "P&rint Settings Tab" msgstr "プリント設定タブ(&r)" #: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:575 -#: src/slic3r/GUI/Tab.cpp:4703 src/slic3r/GUI/Tab.cpp:4704 -#: src/slic3r/GUI/Tab.cpp:4776 src/libslic3r/PrintConfig.cpp:3747 -#: src/libslic3r/PrintConfig.cpp:3754 src/libslic3r/PrintConfig.cpp:3768 -#: src/libslic3r/PrintConfig.cpp:3779 src/libslic3r/PrintConfig.cpp:3789 -#: src/libslic3r/PrintConfig.cpp:3811 src/libslic3r/PrintConfig.cpp:3822 -#: src/libslic3r/PrintConfig.cpp:3829 src/libslic3r/PrintConfig.cpp:3836 -#: src/libslic3r/PrintConfig.cpp:3847 src/libslic3r/PrintConfig.cpp:3856 -#: src/libslic3r/PrintConfig.cpp:3865 +#: src/slic3r/GUI/Tab.cpp:4701 src/slic3r/GUI/Tab.cpp:4702 +#: src/slic3r/GUI/Tab.cpp:4774 src/libslic3r/PrintConfig.cpp:3720 +#: src/libslic3r/PrintConfig.cpp:3727 src/libslic3r/PrintConfig.cpp:3741 +#: src/libslic3r/PrintConfig.cpp:3752 src/libslic3r/PrintConfig.cpp:3762 +#: src/libslic3r/PrintConfig.cpp:3784 src/libslic3r/PrintConfig.cpp:3795 +#: src/libslic3r/PrintConfig.cpp:3802 src/libslic3r/PrintConfig.cpp:3809 +#: src/libslic3r/PrintConfig.cpp:3820 src/libslic3r/PrintConfig.cpp:3829 +#: src/libslic3r/PrintConfig.cpp:3838 msgid "Pad" msgstr "パッド" @@ -8306,15 +8308,15 @@ msgstr "パッド" msgid "Pad and Support" msgstr "パッドとサポート" -#: src/slic3r/GUI/Tab.cpp:4776 src/libslic3r/PrintConfig.cpp:3821 +#: src/slic3r/GUI/Tab.cpp:4774 src/libslic3r/PrintConfig.cpp:3794 msgid "Pad around object" msgstr "オブジェクト周りにパッド" -#: src/libslic3r/PrintConfig.cpp:3828 +#: src/libslic3r/PrintConfig.cpp:3801 msgid "Pad around object everywhere" msgstr "オブジェクト周り全体にパッドを配置" -#: src/libslic3r/PrintConfig.cpp:3777 +#: src/libslic3r/PrintConfig.cpp:3750 msgid "Pad brim size" msgstr "パッドブリムサイズ" @@ -8322,31 +8324,31 @@ msgstr "パッドブリムサイズ" msgid "Pad brim size is too small for the current configuration." msgstr "パッドのブリム(縁)サイズは、現在の構成には小さすぎます。" -#: src/libslic3r/PrintConfig.cpp:3864 +#: src/libslic3r/PrintConfig.cpp:3837 msgid "Pad object connector penetration" msgstr "パッドオブジェクトコネクタの貫通" -#: src/libslic3r/PrintConfig.cpp:3846 +#: src/libslic3r/PrintConfig.cpp:3819 msgid "Pad object connector stride" msgstr "パッドオブジェクトコネクタのピッチ" -#: src/libslic3r/PrintConfig.cpp:3855 +#: src/libslic3r/PrintConfig.cpp:3828 msgid "Pad object connector width" msgstr "パッドオブジェクトの接続幅" -#: src/libslic3r/PrintConfig.cpp:3835 +#: src/libslic3r/PrintConfig.cpp:3808 msgid "Pad object gap" msgstr "パッドオブジェクトのギャップ" -#: src/libslic3r/PrintConfig.cpp:3763 +#: src/libslic3r/PrintConfig.cpp:3736 msgid "Pad wall height" msgstr "パッド壁の高さ" -#: src/libslic3r/PrintConfig.cpp:3810 +#: src/libslic3r/PrintConfig.cpp:3783 msgid "Pad wall slope" msgstr "側壁の傾斜" -#: src/libslic3r/PrintConfig.cpp:3753 +#: src/libslic3r/PrintConfig.cpp:3726 msgid "Pad wall thickness" msgstr "台座の壁の厚さ" @@ -8475,7 +8477,7 @@ msgstr "ペースト" msgid "Paste From Clipboard" msgstr "クリップボードからの貼り付け" -#: src/slic3r/GUI/MainFrame.cpp:1349 +#: src/slic3r/GUI/MainFrame.cpp:1353 msgid "Paste clipboard" msgstr "クリップボードからペースト" @@ -8513,7 +8515,7 @@ msgstr "サポートの生成用のパターン。" msgid "Pause" msgstr "停止" -#: src/slic3r/GUI/Tab.cpp:2479 src/libslic3r/GCode.cpp:714 +#: src/slic3r/GUI/Tab.cpp:2477 src/libslic3r/GCode.cpp:714 #: src/libslic3r/PrintConfig.cpp:2459 msgid "Pause Print G-code" msgstr "プリント停止Gコード" @@ -8548,7 +8550,7 @@ msgstr "" "デスクトップ統合を実行します(このバイナリをシステムで検索できるように設定し" "ます)。" -#: src/libslic3r/PrintConfig.cpp:3893 +#: src/libslic3r/PrintConfig.cpp:3866 msgid "" "Performance vs accuracy of calculation. Lower values may produce unwanted " "artifacts." @@ -8591,7 +8593,7 @@ msgstr "" msgid "Perimeter" msgstr "外周" -#: src/libslic3r/PrintConfig.cpp:3117 +#: src/libslic3r/PrintConfig.cpp:3119 msgid "Perimeter distribution count" msgstr "境界線分布カウント" @@ -8603,15 +8605,15 @@ msgstr "境界線エクストルーダー" msgid "Perimeter generator" msgstr "境界線の生成" -#: src/libslic3r/PrintConfig.cpp:3079 +#: src/libslic3r/PrintConfig.cpp:3080 msgid "Perimeter transition length" msgstr "境界線移行長さ" -#: src/libslic3r/PrintConfig.cpp:3089 +#: src/libslic3r/PrintConfig.cpp:3091 msgid "Perimeter transitioning filter margin" msgstr "境界線移行フィルタマージン" -#: src/libslic3r/PrintConfig.cpp:3104 +#: src/libslic3r/PrintConfig.cpp:3106 msgid "Perimeter transitioning threshold angle" msgstr "境界線移行しきい値角" @@ -8662,27 +8664,27 @@ msgstr "" "次の形式で.gcodeおよび.sl1 / .sl1sファイルに保存される画像サイズ:\"XxY, " "XxY, ...\"" -#: src/libslic3r/PrintConfig.cpp:3624 +#: src/libslic3r/PrintConfig.cpp:3597 msgid "Pillar connection mode" msgstr "ピラー接続モード" -#: src/libslic3r/PrintConfig.cpp:3593 +#: src/libslic3r/PrintConfig.cpp:3566 msgid "Pillar diameter" msgstr "ピラー径" -#: src/libslic3r/PrintConfig.cpp:3647 +#: src/libslic3r/PrintConfig.cpp:3620 msgid "Pillar widening factor" msgstr "ピラーの太さ係数" -#: src/slic3r/GUI/ConfigManipulation.cpp:351 +#: src/slic3r/GUI/ConfigManipulation.cpp:349 msgid "Pinhead diameter should be smaller than the pillar diameter." msgstr "サポートチップの直径は、ピラー径より小さくする必要があります。" -#: src/libslic3r/PrintConfig.cpp:3565 +#: src/libslic3r/PrintConfig.cpp:3538 msgid "Pinhead front diameter" msgstr "ピンヘッド前面径" -#: src/libslic3r/PrintConfig.cpp:3583 +#: src/libslic3r/PrintConfig.cpp:3556 msgid "Pinhead width" msgstr "ピンヘッド幅" @@ -8730,11 +8732,11 @@ msgstr "" msgid "Please select the file to reload" msgstr "リロードするファイルを選択してください" -#: src/slic3r/GUI/AboutDialog.cpp:45 src/slic3r/GUI/AboutDialog.cpp:303 +#: src/slic3r/GUI/AboutDialog.cpp:45 src/slic3r/GUI/AboutDialog.cpp:305 msgid "Portions copyright" msgstr "一部の著作権" -#: src/libslic3r/PrintConfig.cpp:3284 +#: src/libslic3r/PrintConfig.cpp:3257 msgid "Portrait" msgstr "ポートレート" @@ -8743,7 +8745,7 @@ msgstr "ポートレート" msgid "Position" msgstr "位置" -#: src/slic3r/GUI/Tab.cpp:2808 +#: src/slic3r/GUI/Tab.cpp:2806 msgid "Position (for multi-extruder printers)" msgstr "ポジション(マルチエクストルーダーの場合)" @@ -8759,7 +8761,7 @@ msgstr "Yポジション" msgid "Position of perimeters starting points." msgstr "境界線プリントの開始点。" -#: src/slic3r/GUI/Tab.cpp:1770 +#: src/slic3r/GUI/Tab.cpp:1768 msgid "Post processing scripts shall modify G-code file in place." msgstr "後処理スクリプトは、Gコードファイルを適切に変更する必要があります。" @@ -8779,13 +8781,13 @@ msgstr "" "後処理スクリプトは、Gコードファイルを%2%変更する予定ですが、Gコードファイルが" "削除され、新しい名前で保存されている可能性があります。\n" "後処理スクリプトを調整してGコードを変更し、オプションで後処理されたGコード" -"ファイルの名前を変更する方法についてマニュアルを参照してください。\n" +"ファイルの名前を変更する方法についてマニュアルを参照してください。" -#: src/slic3r/GUI/Tab.cpp:1711 src/libslic3r/PrintConfig.cpp:2010 +#: src/slic3r/GUI/Tab.cpp:1709 src/libslic3r/PrintConfig.cpp:2010 msgid "Post-processing scripts" msgstr "ポストプロセス・スクリプト" -#: src/slic3r/GUI/MainFrame.cpp:1394 +#: src/slic3r/GUI/MainFrame.cpp:1398 msgid "Pre&view" msgstr "プレビュー(&v)" @@ -8857,7 +8859,7 @@ msgstr "" msgid "Preset with name \"%1%\" already exists." msgstr "\"%1%\"というプリセット名は既に存在します。" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1660 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 msgid "" "Presets are different.\n" "Click this button to select the same preset for the right and left preset." @@ -8865,7 +8867,7 @@ msgstr "" "プリセットは異なります。\n" "このボタンをクリックして、左右のプリセットに同じプリセットを選択します。" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1652 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1655 msgid "Presets are the same" msgstr "プリセットは同じです" @@ -8905,7 +8907,7 @@ msgstr "" msgid "Pressure equalizer (experimental)" msgstr "圧力均一化(試行的)" -#: src/libslic3r/PrintConfig.cpp:3091 +#: src/libslic3r/PrintConfig.cpp:3093 msgid "" "Prevent transitioning back and forth between one extra perimeter and one " "less. This margin extends the range of extrusion widths which follow to " @@ -8924,7 +8926,7 @@ msgstr "" "す。パーセントで表すと(例えば25%)、ノズル径を基準に計算されます。" #: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4467 -#: src/slic3r/GUI/Tab.cpp:2831 +#: src/slic3r/GUI/Tab.cpp:2829 msgid "Preview" msgstr "プレビュー" @@ -8932,7 +8934,7 @@ msgstr "プレビュー" msgid "Preview hollowed and drilled model" msgstr "くり抜き穴開けモデルのプレビュー" -#: src/slic3r/GUI/MainFrame.cpp:1628 +#: src/slic3r/GUI/MainFrame.cpp:1632 msgid "Previously sliced file (" msgstr "以前のスライスファイル(" @@ -8944,7 +8946,7 @@ msgstr "全てのエクストルーダーでプライムを実施" msgid "Print" msgstr "プリント" -#: src/slic3r/GUI/MainFrame.cpp:1412 +#: src/slic3r/GUI/MainFrame.cpp:1416 msgid "Print &Host Upload Queue" msgstr "プリントサーバーアップロードキュー(&H)" @@ -8952,7 +8954,7 @@ msgstr "プリントサーバーアップロードキュー(&H)" msgid "Print Diameters" msgstr "各種直径" -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2254 +#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2252 msgid "Print Host upload" msgstr "プリントサーバーアップロード" @@ -8989,15 +8991,15 @@ msgstr "プリント停止" msgid "Print settings" msgstr "プリント設定" -#: src/libslic3r/PrintConfig.cpp:3915 +#: src/libslic3r/PrintConfig.cpp:3888 msgid "Print speed" msgstr "プリントスピード" -#: src/slic3r/GUI/Tab.cpp:2038 +#: src/slic3r/GUI/Tab.cpp:2036 msgid "Print speed override" msgstr "プリント速度上書き" -#: src/slic3r/GUI/MainFrame.cpp:1385 +#: src/slic3r/GUI/MainFrame.cpp:1389 msgid "Print&er Settings Tab" msgstr "プリンター設定タブ(&e)" @@ -9032,11 +9034,11 @@ msgstr "プリンター設定" msgid "Printer Settings Tab" msgstr "プリンター設定タブ" -#: src/libslic3r/PrintConfig.cpp:3356 src/libslic3r/PrintConfig.cpp:3357 +#: src/libslic3r/PrintConfig.cpp:3329 src/libslic3r/PrintConfig.cpp:3330 msgid "Printer absolute correction" msgstr "絶対的なプリンター補正" -#: src/libslic3r/PrintConfig.cpp:3373 src/libslic3r/PrintConfig.cpp:3374 +#: src/libslic3r/PrintConfig.cpp:3346 src/libslic3r/PrintConfig.cpp:3347 msgid "Printer gamma correction" msgstr "プリンタガンマ補正" @@ -9048,32 +9050,32 @@ msgstr "プリンターメモ" msgid "Printer preset names" msgstr "プリンタのプリセット名" -#: src/libslic3r/PrintConfig.cpp:3333 +#: src/libslic3r/PrintConfig.cpp:3306 msgid "Printer scaling X axis correction" msgstr "プリンター寸法X軸補正" -#: src/libslic3r/PrintConfig.cpp:3341 +#: src/libslic3r/PrintConfig.cpp:3314 msgid "Printer scaling Y axis correction" msgstr "プリンター寸法Y軸補正" -#: src/libslic3r/PrintConfig.cpp:3349 +#: src/libslic3r/PrintConfig.cpp:3322 msgid "Printer scaling Z axis correction" msgstr "プリンター寸法Z軸補正" -#: src/libslic3r/PrintConfig.cpp:3324 src/libslic3r/PrintConfig.cpp:3325 -#: src/libslic3r/PrintConfig.cpp:3326 +#: src/libslic3r/PrintConfig.cpp:3297 src/libslic3r/PrintConfig.cpp:3298 +#: src/libslic3r/PrintConfig.cpp:3299 msgid "Printer scaling correction" msgstr "プリンター寸法補正" -#: src/libslic3r/PrintConfig.cpp:3332 src/libslic3r/PrintConfig.cpp:3334 +#: src/libslic3r/PrintConfig.cpp:3305 src/libslic3r/PrintConfig.cpp:3307 msgid "Printer scaling correction in X axis" msgstr "X軸のプリンター寸法補正" -#: src/libslic3r/PrintConfig.cpp:3340 src/libslic3r/PrintConfig.cpp:3342 +#: src/libslic3r/PrintConfig.cpp:3313 src/libslic3r/PrintConfig.cpp:3315 msgid "Printer scaling correction in Y axis" msgstr "Y軸のプリンター寸法補正" -#: src/libslic3r/PrintConfig.cpp:3348 src/libslic3r/PrintConfig.cpp:3350 +#: src/libslic3r/PrintConfig.cpp:3321 src/libslic3r/PrintConfig.cpp:3323 msgid "Printer scaling correction in Z axis" msgstr "Z軸のプリンター寸法補正" @@ -9120,7 +9122,7 @@ msgid "Process %1% / 100" msgstr "プロセス%1%/ 100" #. TRN "Processing input_file_basename" -#: src/slic3r/GUI/MainFrame.cpp:1687 +#: src/slic3r/GUI/MainFrame.cpp:1691 #, c-format, boost-format msgid "Processing %s" msgstr "%s実行中" @@ -9134,9 +9136,9 @@ msgstr "" "100万ポリゴンを超えるモデル'%1%'の処理は遅くなる可能性があります。 ポリゴン数" "を減らすことを強くお勧めします。" -#: src/slic3r/GUI/Tab.cpp:1731 src/slic3r/GUI/Tab.cpp:2118 -#: src/slic3r/GUI/Tab.cpp:2505 src/slic3r/GUI/Tab.cpp:2578 -#: src/slic3r/GUI/Tab.cpp:4593 src/slic3r/GUI/Tab.cpp:4740 +#: src/slic3r/GUI/Tab.cpp:1729 src/slic3r/GUI/Tab.cpp:2116 +#: src/slic3r/GUI/Tab.cpp:2503 src/slic3r/GUI/Tab.cpp:2576 +#: src/slic3r/GUI/Tab.cpp:4591 src/slic3r/GUI/Tab.cpp:4738 msgid "Profile dependencies" msgstr "プロファイルの依存関係" @@ -9226,7 +9228,7 @@ msgid "" "PrusaSlicer has encountered an error while taking a configuration snapshot." msgstr "PrusaSlicerは、構成スナップショットの作成中にエラーが発生しました。" -#: src/slic3r/GUI/AboutDialog.cpp:271 +#: src/slic3r/GUI/AboutDialog.cpp:273 msgid "" "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap " "community." @@ -9346,15 +9348,15 @@ msgstr "クイック" msgid "Quick Add Settings (%s)" msgstr "クイック追加設定(%s)" -#: src/slic3r/GUI/MainFrame.cpp:1276 +#: src/slic3r/GUI/MainFrame.cpp:1280 msgid "Quick Slice" msgstr "高速スライス" -#: src/slic3r/GUI/MainFrame.cpp:1282 +#: src/slic3r/GUI/MainFrame.cpp:1286 msgid "Quick Slice and Save As" msgstr "クイックスライスと名前を付けて保存" -#: src/slic3r/GUI/MainFrame.cpp:1307 src/slic3r/GUI/MainFrame.cpp:1541 +#: src/slic3r/GUI/MainFrame.cpp:1311 src/slic3r/GUI/MainFrame.cpp:1545 #, c-format, boost-format msgid "Quit %s" msgstr "%sを終了" @@ -9421,7 +9423,7 @@ msgstr "ラミング線幅" msgid "Ramming parameters" msgstr "ラミングパラメーター" -#: src/slic3r/GUI/Tab.cpp:2064 +#: src/slic3r/GUI/Tab.cpp:2062 msgid "Ramming settings" msgstr "ラミング設定" @@ -9441,8 +9443,8 @@ msgstr "範囲" msgid "Rasterizing layers" msgstr "レイヤーのラスタライズ" -#: src/slic3r/GUI/MainFrame.cpp:1354 src/slic3r/GUI/MainFrame.cpp:1358 -#: src/slic3r/GUI/MainFrame.cpp:1525 src/slic3r/GUI/MainFrame.cpp:1529 +#: src/slic3r/GUI/MainFrame.cpp:1358 src/slic3r/GUI/MainFrame.cpp:1362 +#: src/slic3r/GUI/MainFrame.cpp:1529 src/slic3r/GUI/MainFrame.cpp:1533 msgid "Re&load from Disk" msgstr "ディスクからの再読み込み&l" @@ -9454,15 +9456,15 @@ msgstr "再構成" msgid "Ready" msgstr "準備完了" -#: src/slic3r/GUI/MainFrame.cpp:1128 src/libslic3r/PrintConfig.cpp:2242 +#: src/slic3r/GUI/MainFrame.cpp:1132 src/libslic3r/PrintConfig.cpp:2242 msgid "Rear" msgstr "背面" -#: src/slic3r/GUI/MainFrame.cpp:1128 +#: src/slic3r/GUI/MainFrame.cpp:1132 msgid "Rear View" msgstr "背面" -#: src/slic3r/GUI/MainFrame.cpp:1153 +#: src/slic3r/GUI/MainFrame.cpp:1157 msgid "Recent projects" msgstr "最近のプロジェクト" @@ -9505,7 +9507,7 @@ msgid "Rectilinear grid" msgstr "直線グリッド" #: src/slic3r/GUI/GLCanvas3D.cpp:4738 src/slic3r/GUI/KBShortcutsDialog.cpp:98 -#: src/slic3r/GUI/MainFrame.cpp:1341 +#: src/slic3r/GUI/MainFrame.cpp:1345 msgid "Redo" msgstr "再実行" @@ -9536,7 +9538,7 @@ msgstr "プリンターの更新" msgid "Regular" msgstr "通常" -#: src/slic3r/GUI/Tab.cpp:4044 +#: src/slic3r/GUI/Tab.cpp:4042 msgid "Regular expression" msgstr "正規表現" @@ -9585,9 +9587,9 @@ msgstr "リロード元:" msgid "Reload plater from disk" msgstr "ディスクからプレートをリロードします" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:207 src/slic3r/GUI/MainFrame.cpp:1355 -#: src/slic3r/GUI/MainFrame.cpp:1359 src/slic3r/GUI/MainFrame.cpp:1526 -#: src/slic3r/GUI/MainFrame.cpp:1530 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:207 src/slic3r/GUI/MainFrame.cpp:1359 +#: src/slic3r/GUI/MainFrame.cpp:1363 src/slic3r/GUI/MainFrame.cpp:1530 +#: src/slic3r/GUI/MainFrame.cpp:1534 msgid "Reload the plater from disk" msgstr "プレートをリロードします" @@ -9613,7 +9615,7 @@ msgid "Remember output directory" msgstr "出力ディレクトリを記憶する" #: src/slic3r/GUI/BedShapeDialog.cpp:292 src/slic3r/GUI/BedShapeDialog.cpp:362 -#: src/slic3r/GUI/Tab.cpp:3750 +#: src/slic3r/GUI/Tab.cpp:3748 msgid "Remove" msgstr "除去" @@ -9741,11 +9743,11 @@ msgstr "" msgid "Render" msgstr "レンダー" -#: src/libslic3r/PrintConfig.cpp:4609 +#: src/libslic3r/PrintConfig.cpp:4584 msgid "Render with a software renderer" msgstr "ソフトウェアでレンダリングする" -#: src/libslic3r/PrintConfig.cpp:4610 +#: src/libslic3r/PrintConfig.cpp:4585 msgid "" "Render with a software renderer. The bundled MESA software renderer is " "loaded instead of the default OpenGL driver." @@ -9753,7 +9755,7 @@ msgstr "" "ソフトウェアレンダラーでレンダリングします。 デフォルトのOpenGLドライバーの代" "わりに、バンドルされたMESAソフトウェアレンダラーがロードされます。" -#: src/slic3r/GUI/MainFrame.cpp:1750 src/libslic3r/PrintConfig.cpp:4521 +#: src/slic3r/GUI/MainFrame.cpp:1754 src/libslic3r/PrintConfig.cpp:4496 msgid "Repair" msgstr "修復" @@ -9785,11 +9787,11 @@ msgstr "Netfabbでモデルを修復中" msgid "Repairing was canceled" msgstr "リペアはキャンセルされました" -#: src/slic3r/GUI/MainFrame.cpp:1288 +#: src/slic3r/GUI/MainFrame.cpp:1292 msgid "Repeat Last Quick Slice" msgstr "最後のクイックスライスを繰り返す" -#: src/slic3r/GUI/MainFrame.cpp:1288 +#: src/slic3r/GUI/MainFrame.cpp:1292 msgid "Repeat last quick slice" msgstr "最後のクイックスライスを繰り返す" @@ -9801,7 +9803,7 @@ msgstr "置換元:" msgid "Replace the selected volume with new STL" msgstr "選択したボリュームを新しいSTLに置き換えます" -#: src/slic3r/GUI/Tab.cpp:3955 +#: src/slic3r/GUI/Tab.cpp:3953 msgid "Replace with" msgstr "で置き換える" @@ -9869,7 +9871,7 @@ msgstr "縮尺をリセット" msgid "Reset selection" msgstr "選択のリセット" -#: src/slic3r/GUI/Tab.cpp:2834 +#: src/slic3r/GUI/Tab.cpp:2832 msgid "Reset to Filament Color" msgstr "フィラメントの色をリセット" @@ -9893,8 +9895,8 @@ msgstr "ワイプ前に引き込む" msgid "Retract on layer change" msgstr "レイヤーチェンジ時の待避" -#: src/slic3r/GUI/GCodeViewer.cpp:3614 src/slic3r/GUI/Tab.cpp:1869 -#: src/slic3r/GUI/Tab.cpp:2811 +#: src/slic3r/GUI/GCodeViewer.cpp:3614 src/slic3r/GUI/Tab.cpp:1867 +#: src/slic3r/GUI/Tab.cpp:2809 msgid "Retraction" msgstr "リトラクション" @@ -9915,7 +9917,7 @@ msgid "" "Retraction is not triggered when travel moves are shorter than this length." msgstr "移動がこの長さより短い場合、吸込み動作を行いません。" -#: src/slic3r/GUI/Tab.cpp:2827 +#: src/slic3r/GUI/Tab.cpp:2825 msgid "" "Retraction when tool is disabled (advanced settings for multi-extruder " "setups)" @@ -9947,15 +9949,15 @@ msgstr "メーターからの変換を元に戻す" msgid "Review the substitutions and adjust them if needed." msgstr "置換を確認し、必要に応じて調整します。" -#: src/slic3r/GUI/MainFrame.cpp:1132 +#: src/slic3r/GUI/MainFrame.cpp:1136 msgid "Right" msgstr "右" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1518 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1521 msgid "Right Preset Value" msgstr "正しいプリセット値" -#: src/slic3r/GUI/MainFrame.cpp:1132 +#: src/slic3r/GUI/MainFrame.cpp:1136 msgid "Right View" msgstr "右側" @@ -9990,15 +9992,15 @@ msgstr "右マウスボタン:" #: 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:4525 +#: src/libslic3r/PrintConfig.cpp:4500 msgid "Rotate" msgstr "回転" -#: src/libslic3r/PrintConfig.cpp:4530 +#: src/libslic3r/PrintConfig.cpp:4505 msgid "Rotate around X" msgstr "X軸周りで回転" -#: src/libslic3r/PrintConfig.cpp:4535 +#: src/libslic3r/PrintConfig.cpp:4510 msgid "Rotate around Y" msgstr "Y軸周りの回転" @@ -10026,15 +10028,15 @@ msgstr "" msgid "Rotation" msgstr "回転" -#: src/libslic3r/PrintConfig.cpp:4531 +#: src/libslic3r/PrintConfig.cpp:4506 msgid "Rotation angle around the X axis in degrees." msgstr "X軸の周りの回転角度(度)。" -#: src/libslic3r/PrintConfig.cpp:4536 +#: src/libslic3r/PrintConfig.cpp:4511 msgid "Rotation angle around the Y axis in degrees." msgstr "Y軸を中心とした回転角(度単位)。" -#: src/libslic3r/PrintConfig.cpp:4526 +#: src/libslic3r/PrintConfig.cpp:4501 msgid "Rotation angle around the Z axis in degrees." msgstr "Z軸周りの回転角度(度)。" @@ -10052,11 +10054,11 @@ msgstr "%s実行" msgid "Running post-processing scripts" msgstr "ポストプロセス スクリプト実行中" -#: src/slic3r/GUI/MainFrame.cpp:1234 src/slic3r/GUI/MainFrame.cpp:1583 +#: src/slic3r/GUI/MainFrame.cpp:1238 src/slic3r/GUI/MainFrame.cpp:1587 msgid "S&end G-code" msgstr "Gコードを送信(&e)" -#: src/slic3r/GUI/MainFrame.cpp:1583 +#: src/slic3r/GUI/MainFrame.cpp:1587 msgid "S&end to print" msgstr "プリントする(&e)" @@ -10086,7 +10088,7 @@ msgstr "SLAギズモのキーボードショートカット" msgid "SLA material" msgstr "SLA材料" -#: src/libslic3r/PrintConfig.cpp:3394 src/libslic3r/PrintConfig.cpp:3395 +#: src/libslic3r/PrintConfig.cpp:3367 src/libslic3r/PrintConfig.cpp:3368 msgid "SLA material type" msgstr "SLA材料のタイプ" @@ -10098,7 +10100,7 @@ msgstr "SLAマテリアル" msgid "SLA print" msgstr "SLAプリント" -#: src/libslic3r/PrintConfig.cpp:3523 +#: src/libslic3r/PrintConfig.cpp:3496 msgid "SLA print material notes" msgstr "SLAプリント材料メモ" @@ -10110,7 +10112,7 @@ msgstr "SLAプリント設定" msgid "SLA supports outside the print area were detected." msgstr "プリント領域外のSLAサポートが検出されました。" -#: src/slic3r/GUI/MainFrame.cpp:1664 +#: src/slic3r/GUI/MainFrame.cpp:1668 msgid "SVG" msgstr "SVG" @@ -10129,7 +10131,7 @@ msgstr "保存" msgid "Save %s as:" msgstr "形式を変更して%sを保存:" -#: src/slic3r/GUI/MainFrame.cpp:1664 +#: src/slic3r/GUI/MainFrame.cpp:1668 #, c-format, boost-format msgid "Save %s file as:" msgstr "%sファイルを別の名前で保存:" @@ -10138,11 +10140,11 @@ msgstr "%sファイルを別の名前で保存:" msgid "Save G-code file as:" msgstr "Gコードを別名で保存:" -#: src/slic3r/GUI/MainFrame.cpp:1739 +#: src/slic3r/GUI/MainFrame.cpp:1743 msgid "Save OBJ file (less prone to coordinate errors than STL) as:" msgstr "OBJファイルを保存します(STLよりも調整エラーが少ない):" -#: src/slic3r/GUI/MainFrame.cpp:1194 src/slic3r/GUI/MainFrame.cpp:1196 +#: src/slic3r/GUI/MainFrame.cpp:1198 src/slic3r/GUI/MainFrame.cpp:1200 msgid "Save Project &as" msgstr "名前を付けてプロジェクトを保存&a" @@ -10150,15 +10152,15 @@ msgstr "名前を付けてプロジェクトを保存&a" msgid "Save SL1 / SL1S file as:" msgstr "別名でSL1/SL1Sファイルを保存:" -#: src/libslic3r/PrintConfig.cpp:4455 +#: src/libslic3r/PrintConfig.cpp:4430 msgid "Save config file" msgstr "設定ファイルを保存" -#: src/slic3r/GUI/MainFrame.cpp:1764 +#: src/slic3r/GUI/MainFrame.cpp:1768 msgid "Save configuration as:" msgstr "構成ファイルを別名で保存:" -#: src/libslic3r/PrintConfig.cpp:4456 +#: src/libslic3r/PrintConfig.cpp:4431 msgid "Save configuration to the specified file." msgstr "指定したファイルに構成を保存します。" @@ -10168,11 +10170,11 @@ msgstr "指定したファイルに構成を保存します。" msgid "Save current %s" msgstr "現在の%sを保存" -#: src/slic3r/GUI/MainFrame.cpp:1190 +#: src/slic3r/GUI/MainFrame.cpp:1194 msgid "Save current project file" msgstr "現在のプロジェクトファイルの保存" -#: src/slic3r/GUI/MainFrame.cpp:1194 src/slic3r/GUI/MainFrame.cpp:1196 +#: src/slic3r/GUI/MainFrame.cpp:1198 src/slic3r/GUI/MainFrame.cpp:1200 msgid "Save current project file as" msgstr "現在のプロジェクトに名前を付けて保存" @@ -10185,7 +10187,7 @@ msgstr "別名で保存 :" msgid "Save preset" msgstr "プリセット保存" -#: src/slic3r/GUI/MainFrame.cpp:1822 +#: src/slic3r/GUI/MainFrame.cpp:1826 msgid "Save presets bundle as:" msgstr "プリセットパッケージを別の名前で保存:" @@ -10214,7 +10216,7 @@ msgstr "選択したオプションを保存して、\"%1%\"をプリセット msgid "Save the selected options." msgstr "選択したオプションを保存します。" -#: src/slic3r/GUI/MainFrame.cpp:1676 +#: src/slic3r/GUI/MainFrame.cpp:1680 msgid "Save zip file as:" msgstr "ZIPファイルを保存:" @@ -10228,7 +10230,7 @@ msgstr "3MFコンテナへのメッシュの保存に失敗しました。" #: 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:4540 +#: src/libslic3r/PrintConfig.cpp:4515 msgid "Scale" msgstr "スケール" @@ -10244,11 +10246,11 @@ msgstr "寸法係数" msgid "Scale the selected object to fit the print volume" msgstr "選択したオブジェクトをプリントボリュームに合わせて拡大縮小します" -#: src/libslic3r/PrintConfig.cpp:4549 +#: src/libslic3r/PrintConfig.cpp:4524 msgid "Scale to Fit" msgstr "フィットするように縮尺" -#: src/libslic3r/PrintConfig.cpp:4550 +#: src/libslic3r/PrintConfig.cpp:4525 msgid "Scale to fit the given volume." msgstr "指定したプリントスペースに合わせてサイズを変更します。" @@ -10256,7 +10258,7 @@ msgstr "指定したプリントスペースに合わせてサイズを変更し msgid "Scale to print volume" msgstr "プリントエリアに合わせて縮尺する" -#: src/libslic3r/PrintConfig.cpp:4541 +#: src/libslic3r/PrintConfig.cpp:4516 msgid "Scaling factor or percentage." msgstr "スケーリング係数または割合。" @@ -10287,7 +10289,7 @@ msgstr "シーム優先方向ジッター" msgid "Seams" msgstr "シーム" -#: src/slic3r/GUI/MainFrame.cpp:1364 +#: src/slic3r/GUI/MainFrame.cpp:1368 msgid "Searc&h" msgstr "検索(%h)" @@ -10310,7 +10312,7 @@ msgstr "" msgid "Search in English" msgstr "英語で検索" -#: src/slic3r/GUI/MainFrame.cpp:1365 +#: src/slic3r/GUI/MainFrame.cpp:1369 msgid "Search in settings" msgstr "設定で検索" @@ -10397,7 +10399,7 @@ msgstr "ファイルに適用するアクションを選択します" msgid "Select by rectangle" msgstr "四角形で選択" -#: src/slic3r/GUI/MainFrame.cpp:1783 src/slic3r/GUI/MainFrame.cpp:1848 +#: src/slic3r/GUI/MainFrame.cpp:1787 src/slic3r/GUI/MainFrame.cpp:1852 msgid "Select configuration to load:" msgstr "読み込む構成を選択します:" @@ -10405,7 +10407,7 @@ msgstr "読み込む構成を選択します:" msgid "Select coordinate space, in which the transformation will be performed." msgstr "変換する座標空間を選択します。" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1453 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1456 msgid "Select presets to compare" msgstr "比較するプリセットを選択" @@ -10417,7 +10419,7 @@ msgstr "ギャラリーからシェイプを選択" msgid "Select showing settings" msgstr "表示設定を選択" -#: src/slic3r/GUI/MainFrame.cpp:1729 +#: src/slic3r/GUI/MainFrame.cpp:1733 msgid "Select the STL file to repair:" msgstr "修復するSTLファイルを選択 :" @@ -10501,7 +10503,7 @@ msgstr "リストの選択-削除" msgid "Selection-Remove from rectangle" msgstr "選択-四角形から削除" -#: src/slic3r/GUI/MainFrame.cpp:1323 +#: src/slic3r/GUI/MainFrame.cpp:1327 msgid "Selects all objects" msgstr "全てのオブジェクトを選択" @@ -10518,7 +10520,7 @@ msgstr "Gコード送信" msgid "Send system info" msgstr "システム情報を送信する" -#: src/slic3r/GUI/MainFrame.cpp:1234 +#: src/slic3r/GUI/MainFrame.cpp:1238 msgid "Send to print current plate as G-code" msgstr "現在のプレートをプリントするためにGコードとして送信" @@ -10542,7 +10544,7 @@ msgstr "システム情報を送信しています..." msgid "Seq." msgstr "シーケンス" -#: src/slic3r/GUI/Tab.cpp:1685 +#: src/slic3r/GUI/Tab.cpp:1683 msgid "Sequential printing" msgstr "順次プリンティング" @@ -10558,7 +10560,7 @@ msgstr "シリアルポート:" msgid "Service name" msgstr "サービス名" -#: src/slic3r/GUI/Tab.cpp:3835 src/slic3r/GUI/Tab.cpp:4197 +#: src/slic3r/GUI/Tab.cpp:3833 src/slic3r/GUI/Tab.cpp:4195 msgid "Set" msgstr "設定" @@ -10685,7 +10687,7 @@ msgstr "選択したアイテムをプリント可/プリント不可に設定 msgid "Set settings tabs as menu items (experimental)" msgstr "設定タブをメニュー項目として設定(実験的)" -#: src/libslic3r/PrintConfig.cpp:3277 +#: src/libslic3r/PrintConfig.cpp:3250 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 " @@ -10835,7 +10837,7 @@ msgstr "" msgid "Set upper thumb as active" msgstr "上側の範囲をアクティブに設定" -#: src/libslic3r/PrintConfig.cpp:4603 +#: src/libslic3r/PrintConfig.cpp:4578 msgid "" "Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" "trace\n" @@ -10847,7 +10849,7 @@ msgstr "" "します。" #: src/slic3r/GUI/BedShapeDialog.cpp:249 src/slic3r/GUI/GCodeViewer.cpp:3709 -#: src/slic3r/GUI/MainFrame.cpp:2143 +#: src/slic3r/GUI/MainFrame.cpp:2147 msgid "Settings" msgstr "設定" @@ -10898,7 +10900,7 @@ msgstr "" msgid "Shape" msgstr "シェイプ" -#: src/slic3r/GUI/GalleryDialog.cpp:69 src/slic3r/GUI/MainFrame.cpp:1400 +#: src/slic3r/GUI/GalleryDialog.cpp:69 src/slic3r/GUI/MainFrame.cpp:1404 msgid "Shape Gallery" msgstr "シェイプギャラリー" @@ -10949,7 +10951,7 @@ msgstr "開始後に「今日のティップス」を表示する" msgid "Show &Configuration Folder" msgstr "設定フォルダーの表示(&C)" -#: src/slic3r/GUI/MainFrame.cpp:1430 +#: src/slic3r/GUI/MainFrame.cpp:1434 msgid "Show &Labels" msgstr "ラベルを表示&L" @@ -10965,7 +10967,7 @@ msgstr "アバウトダイヤログを表示" msgid "Show advanced settings" msgstr "高度な設定を表示" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1502 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1505 msgid "Show all presets (including incompatible)" msgstr "すべてのプリセットを表示(互換性のないものを含む)" @@ -11005,7 +11007,7 @@ msgstr "オブジェクトの高さを表示" msgid "Show object height on the ruler" msgstr "ルーラーにオブジェクトの高さを表示する" -#: src/slic3r/GUI/MainFrame.cpp:1430 +#: src/slic3r/GUI/MainFrame.cpp:1434 msgid "Show object/instance labels in 3D scene" msgstr "3Dシーンにオブジェクト/インスタンスラベルを表示する" @@ -11033,43 +11035,43 @@ msgstr "サポート表示" msgid "Show system information" msgstr "システム情報を表示" -#: src/slic3r/GUI/MainFrame.cpp:1391 +#: src/slic3r/GUI/MainFrame.cpp:1395 msgid "Show the 3D editing view" msgstr "3D編集画面の表示" -#: src/slic3r/GUI/MainFrame.cpp:1394 +#: src/slic3r/GUI/MainFrame.cpp:1398 msgid "Show the 3D slices preview" msgstr "3Dスライスのプレビューを表示" -#: src/slic3r/GUI/MainFrame.cpp:1381 +#: src/slic3r/GUI/MainFrame.cpp:1385 msgid "Show the filament settings" msgstr "フィラメントの設定を表示" -#: src/libslic3r/PrintConfig.cpp:4446 +#: src/libslic3r/PrintConfig.cpp:4421 msgid "Show the full list of SLA print configuration options." msgstr "SLAプリント構成オプションの完全なリストを表示します。" -#: src/libslic3r/PrintConfig.cpp:4441 +#: src/libslic3r/PrintConfig.cpp:4416 msgid "Show the full list of print/G-code configuration options." msgstr "プリント/ Gコード構成オプションの完全なリストを表示します。" -#: src/slic3r/GUI/MainFrame.cpp:1103 +#: src/slic3r/GUI/MainFrame.cpp:1107 msgid "Show the list of the keyboard shortcuts" msgstr "キーボードショートカットのリストを表示する" -#: src/slic3r/GUI/MainFrame.cpp:1373 +#: src/slic3r/GUI/MainFrame.cpp:1377 msgid "Show the plater" msgstr "プレート表示" -#: src/slic3r/GUI/MainFrame.cpp:1378 +#: src/slic3r/GUI/MainFrame.cpp:1382 msgid "Show the print settings" msgstr "プリント設定を表示する" -#: src/slic3r/GUI/MainFrame.cpp:1385 +#: src/slic3r/GUI/MainFrame.cpp:1389 msgid "Show the printer settings" msgstr "プリンター設定を表示する" -#: src/libslic3r/PrintConfig.cpp:4435 +#: src/libslic3r/PrintConfig.cpp:4410 msgid "Show this help." msgstr "このヘルプを表示します。" @@ -11152,7 +11154,7 @@ msgstr "簡略化モデル" msgid "Single Extruder Multi Material" msgstr "シングルエクストルーダー・マルチマテリアル" -#: src/slic3r/GUI/Tab.cpp:2333 +#: src/slic3r/GUI/Tab.cpp:2331 msgid "" "Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" @@ -11163,15 +11165,15 @@ msgstr "" "のエクストルーダーの直径が同じでなければなりません。最初のエクストルーダーの" "直径で、すべてのエクストルーダーノズルの直径を設定しますか?" -#: src/slic3r/GUI/Tab.cpp:2733 src/slic3r/GUI/Tab.cpp:2742 +#: src/slic3r/GUI/Tab.cpp:2731 src/slic3r/GUI/Tab.cpp:2740 msgid "Single extruder MM setup" msgstr "シングルエクストルーダーのMM設定" -#: src/slic3r/GUI/Tab.cpp:2743 +#: src/slic3r/GUI/Tab.cpp:2741 msgid "Single extruder multimaterial parameters" msgstr "単一エクストルーダーのマルチマテリアルパラメーター" -#: src/libslic3r/PrintConfig.cpp:4586 +#: src/libslic3r/PrintConfig.cpp:4561 msgid "Single instance mode" msgstr "シングルインスタンスモード" @@ -11260,15 +11262,15 @@ msgstr "" msgid "Slic3r will not scale speed down below this speed." msgstr "Slic3rはこの速度以下にしません。" -#: src/libslic3r/PrintConfig.cpp:4428 +#: src/libslic3r/PrintConfig.cpp:4403 msgid "Slice" msgstr "スライス" -#: src/slic3r/GUI/MainFrame.cpp:1276 +#: src/slic3r/GUI/MainFrame.cpp:1280 msgid "Slice a file into a G-code" msgstr "ファイルをスライスしてGコードに入れる" -#: src/slic3r/GUI/MainFrame.cpp:1282 +#: src/slic3r/GUI/MainFrame.cpp:1286 msgid "Slice a file into a G-code, save as" msgstr "ファイルをスライスしGコードにして、名前を付けて保存" @@ -11285,15 +11287,15 @@ msgstr "スライス実行" msgid "Slice resolution" msgstr "スライス解像度" -#: src/libslic3r/PrintConfig.cpp:4396 +#: src/libslic3r/PrintConfig.cpp:4371 msgid "Slice the model and export SLA printing layers as PNG." msgstr "モデルをスライスし、SLAプリントレイヤーをPNGとしてエクスポートします。" -#: src/libslic3r/PrintConfig.cpp:4417 +#: src/libslic3r/PrintConfig.cpp:4392 msgid "Slice the model and export toolpaths as G-code." msgstr "モデルをスライスし、ツールパスをGコードでエクスポートします。" -#: src/libslic3r/PrintConfig.cpp:4429 +#: src/libslic3r/PrintConfig.cpp:4404 msgid "" "Slice the model as FFF or SLA based on the printer_technology configuration " "value." @@ -11310,13 +11312,13 @@ msgstr "スライス情報" msgid "Sliced object \"%1%\" looks like a logo or a sign" msgstr "スライスされたオブジェクト\"%1%\"はロゴまたはサインのように見えます" -#: src/slic3r/GUI/MainFrame.cpp:1685 src/slic3r/GUI/Plater.cpp:3316 +#: src/slic3r/GUI/MainFrame.cpp:1689 src/slic3r/GUI/Plater.cpp:3316 #: src/slic3r/GUI/Plater.cpp:6051 src/slic3r/GUI/Tab.cpp:1663 -#: src/slic3r/GUI/Tab.cpp:4729 +#: src/slic3r/GUI/Tab.cpp:4727 msgid "Slicing" msgstr "スライス中" -#: src/slic3r/GUI/MainFrame.cpp:1713 +#: src/slic3r/GUI/MainFrame.cpp:1717 msgid "Slicing Done!" msgstr "スライス完了!" @@ -11351,7 +11353,7 @@ msgstr "モデルをスライス" msgid "Slicing supports" msgstr "サポートのスライス" -#: src/libslic3r/PrintConfig.cpp:3298 src/libslic3r/PrintConfig.cpp:3923 +#: src/libslic3r/PrintConfig.cpp:3271 src/libslic3r/PrintConfig.cpp:3896 msgid "Slow" msgstr "スロー" @@ -11359,7 +11361,7 @@ msgstr "スロー" msgid "Slow down if layer print time is below" msgstr "スローダウンさせるレイヤーのプリント時間" -#: src/libslic3r/PrintConfig.cpp:3299 +#: src/libslic3r/PrintConfig.cpp:3272 msgid "Slow tilt" msgstr "スローチルト" @@ -11367,7 +11369,7 @@ msgstr "スローチルト" msgid "Small perimeters" msgstr "短い境界線" -#: src/libslic3r/PrintConfig.cpp:3603 +#: src/libslic3r/PrintConfig.cpp:3576 msgid "Small pillar diameter percent" msgstr "小さいピラー径パーセント" @@ -11464,7 +11466,7 @@ msgid "Some SLA materials were uninstalled." msgstr "一部のSLAマテリアルがアンインストールされました。" #: src/slic3r/GUI/UnsavedChangesDialog.cpp:936 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1696 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1699 msgid "" "Some fields are too long to fit. Right mouse click reveals the full text." msgstr "" @@ -11490,7 +11492,7 @@ msgstr "" "一部のオブジェクトが高すぎて、エクストルーダーの衝突なしでプリントできませ" "ん。" -#: src/libslic3r/PrintConfig.cpp:3790 +#: src/libslic3r/PrintConfig.cpp:3763 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 " @@ -11508,7 +11510,7 @@ msgstr "" "一部のプリセットが変更され、保存されていない変更が設定スナップショットに取り" "込まれません。" -#: src/slic3r/GUI/MainFrame.cpp:1813 +#: src/slic3r/GUI/MainFrame.cpp:1817 msgid "" "Some presets are modified and the unsaved changes will not be exported into " "configuration bundle." @@ -11690,7 +11692,7 @@ msgid "Spiral vase" msgstr "スパイラル花瓶" #: src/slic3r/GUI/GUI_Factories.cpp:944 src/slic3r/GUI/GUI_Factories.cpp:954 -#: src/slic3r/GUI/GUI_Factories.cpp:975 src/libslic3r/PrintConfig.cpp:4545 +#: src/slic3r/GUI/GUI_Factories.cpp:975 src/libslic3r/PrintConfig.cpp:4520 msgid "Split" msgstr "分割" @@ -11759,13 +11761,13 @@ msgstr "標準" msgid "Stars" msgstr "スター型" -#: src/slic3r/GUI/Tab.cpp:2089 src/slic3r/GUI/Tab.cpp:2410 +#: src/slic3r/GUI/Tab.cpp:2087 src/slic3r/GUI/Tab.cpp:2408 #: src/libslic3r/GCode.cpp:707 src/libslic3r/PrintConfig.cpp:2418 #: src/libslic3r/PrintConfig.cpp:2433 msgid "Start G-code" msgstr "Gコードの最初" -#: src/slic3r/GUI/MainFrame.cpp:1145 +#: src/slic3r/GUI/MainFrame.cpp:1149 msgid "Start a new project" msgstr "新しいプロジェクトを開始" @@ -11773,7 +11775,7 @@ msgstr "新しいプロジェクトを開始" msgid "Start at height" msgstr "開始高さ" -#: src/slic3r/GUI/MainFrame.cpp:1296 +#: src/slic3r/GUI/MainFrame.cpp:1300 msgid "Start new slicing process" msgstr "新しいスライスプロセスを開始する" @@ -11825,7 +11827,7 @@ msgid "Status:" msgstr "状況:" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:336 -#: src/slic3r/GUI/Tab.cpp:2651 +#: src/slic3r/GUI/Tab.cpp:2649 msgid "Stealth" msgstr "静音" @@ -11884,19 +11886,19 @@ msgstr "サポート強制" msgid "Support Generator" msgstr "サポートジェネレーター" -#: src/libslic3r/PrintConfig.cpp:3658 +#: src/libslic3r/PrintConfig.cpp:3631 msgid "Support base diameter" msgstr "サポートベースの直径" -#: src/libslic3r/PrintConfig.cpp:3668 +#: src/libslic3r/PrintConfig.cpp:3641 msgid "Support base height" msgstr "サポートベースの高さ" -#: src/libslic3r/PrintConfig.cpp:3677 +#: src/libslic3r/PrintConfig.cpp:3650 msgid "Support base safety distance" msgstr "サポートベースの安全距離" -#: src/slic3r/GUI/Tab.cpp:4666 +#: src/slic3r/GUI/Tab.cpp:4664 msgid "Support head" msgstr "サポート先端" @@ -11948,7 +11950,7 @@ msgid "Support material/raft/skirt extruder" msgstr "サポート材/ラフト/スカート用エクストルーダー" #: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:2558 -#: src/libslic3r/PrintConfig.cpp:3640 +#: src/libslic3r/PrintConfig.cpp:3613 msgid "Support on build plate only" msgstr "サポートをビルドプレート(ベッド)のみに限定する" @@ -11956,12 +11958,12 @@ msgstr "サポートをビルドプレート(ベッド)のみに限定する" msgid "Support parameter change" msgstr "サポートパラメータの変更" -#: src/slic3r/GUI/Tab.cpp:4671 +#: src/slic3r/GUI/Tab.cpp:4669 msgid "Support pillar" msgstr "サポートピラー" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/libslic3r/PrintConfig.cpp:3730 +#: src/libslic3r/PrintConfig.cpp:3703 msgid "Support points density" msgstr "サポートポイント密度" @@ -11970,16 +11972,16 @@ msgid "Support points edit" msgstr "サポートポイントの編集" #: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:428 -#: src/slic3r/GUI/Tab.cpp:4662 src/slic3r/GUI/Tab.cpp:4663 -#: src/libslic3r/PrintConfig.cpp:3559 src/libslic3r/PrintConfig.cpp:3566 -#: src/libslic3r/PrintConfig.cpp:3575 src/libslic3r/PrintConfig.cpp:3584 -#: src/libslic3r/PrintConfig.cpp:3594 src/libslic3r/PrintConfig.cpp:3604 -#: src/libslic3r/PrintConfig.cpp:3641 src/libslic3r/PrintConfig.cpp:3648 -#: src/libslic3r/PrintConfig.cpp:3659 src/libslic3r/PrintConfig.cpp:3669 -#: src/libslic3r/PrintConfig.cpp:3678 src/libslic3r/PrintConfig.cpp:3691 -#: src/libslic3r/PrintConfig.cpp:3701 src/libslic3r/PrintConfig.cpp:3710 -#: src/libslic3r/PrintConfig.cpp:3720 src/libslic3r/PrintConfig.cpp:3731 -#: src/libslic3r/PrintConfig.cpp:3739 +#: src/slic3r/GUI/Tab.cpp:4660 src/slic3r/GUI/Tab.cpp:4661 +#: src/libslic3r/PrintConfig.cpp:3532 src/libslic3r/PrintConfig.cpp:3539 +#: src/libslic3r/PrintConfig.cpp:3548 src/libslic3r/PrintConfig.cpp:3557 +#: src/libslic3r/PrintConfig.cpp:3567 src/libslic3r/PrintConfig.cpp:3577 +#: src/libslic3r/PrintConfig.cpp:3614 src/libslic3r/PrintConfig.cpp:3621 +#: src/libslic3r/PrintConfig.cpp:3632 src/libslic3r/PrintConfig.cpp:3642 +#: src/libslic3r/PrintConfig.cpp:3651 src/libslic3r/PrintConfig.cpp:3664 +#: src/libslic3r/PrintConfig.cpp:3674 src/libslic3r/PrintConfig.cpp:3683 +#: src/libslic3r/PrintConfig.cpp:3693 src/libslic3r/PrintConfig.cpp:3704 +#: src/libslic3r/PrintConfig.cpp:3712 msgid "Supports" msgstr "サポート" @@ -12132,7 +12134,7 @@ msgstr "構成スナップショットの作成" msgid "Taking a configuration snapshot failed." msgstr "構成スナップショットの作成に失敗しました" -#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1990 +#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1988 msgid "Temperature" msgstr "温度" @@ -12157,7 +12159,7 @@ msgstr "温度変化" msgid "Temperatures" msgstr "温度" -#: src/slic3r/GUI/Tab.cpp:2488 src/libslic3r/GCode.cpp:715 +#: src/slic3r/GUI/Tab.cpp:2486 src/libslic3r/GCode.cpp:715 msgid "Template Custom G-code" msgstr "カスタムGコードのテンプレート" @@ -12315,7 +12317,7 @@ msgid "" msgstr "" "ワイプタワーは、複数のオブジェクトのレイヤーの高さが等しい場合に利用できます" -#: src/slic3r/GUI/Tab.cpp:3011 +#: src/slic3r/GUI/Tab.cpp:3009 msgid "" "The Wipe option is not available when using the Firmware Retraction mode.\n" "\n" @@ -12368,7 +12370,7 @@ msgstr "" "回転がオブジェクト座標に埋め込まれると、傾斜オブジェクトの不均一なスケーリン" "グはワールド座標系でのみ可能になります。" -#: src/libslic3r/PrintConfig.cpp:3692 +#: src/libslic3r/PrintConfig.cpp:3665 msgid "The default angle for connecting support sticks and junctions." msgstr "サポートスティックとジャンクションを接続するためのデフォルトの角度。" @@ -12463,7 +12465,7 @@ msgstr "カスタムGコードで使用するフィラメント材料タイプ msgid "The file does not exist." msgstr "ファイルがありません。" -#: src/libslic3r/PrintConfig.cpp:4582 +#: src/libslic3r/PrintConfig.cpp:4557 msgid "" "The file where the output will be written (if not specified, it will be " "based on the input file)." @@ -12495,7 +12497,7 @@ msgstr "次のSLAプリンターモデルには材料が選択されていませ msgid "The following characters are not allowed by a FAT file system:" msgstr "次の文字はFATファイルシステムでは許可されていません。" -#: src/slic3r/GUI/Tab.cpp:1849 +#: src/slic3r/GUI/Tab.cpp:1847 #, c-format, boost-format msgid "" "The following line %s contains reserved keywords.\n" @@ -12546,13 +12548,13 @@ msgstr "" msgid "The following values were substituted:" msgstr "次の値に置き換えられました。" -#: src/libslic3r/PrintConfig.cpp:3837 +#: src/libslic3r/PrintConfig.cpp:3810 msgid "" "The gap between the object bottom and the generated pad in zero elevation " "mode." msgstr "ゼロリフトモードでのオブジェクトの底面と生成されたパッド間のギャップ。" -#: src/libslic3r/PrintConfig.cpp:3670 +#: src/libslic3r/PrintConfig.cpp:3643 msgid "The height of the pillar base cone" msgstr "ピラーのベースコーンの高さ" @@ -12593,7 +12595,7 @@ msgstr "" "最後の色変更データは、シングルエクストルーダーでのプリント用に保存されまし" "た。" -#: src/libslic3r/PrintConfig.cpp:3711 +#: src/libslic3r/PrintConfig.cpp:3684 msgid "" "The max distance of two pillars to get linked with each other. A zero value " "will prohibit pillar cascading." @@ -12601,7 +12603,7 @@ msgstr "" "相互接続のための2つのピラー間の最大距離。 値がゼロの場合、ピラーのカスケード" "が無効になります。" -#: src/libslic3r/PrintConfig.cpp:3702 +#: src/libslic3r/PrintConfig.cpp:3675 msgid "The max length of a bridge" msgstr "最長ブリッジ長さ" @@ -12624,7 +12626,7 @@ msgstr "" "境界線の壁に垂直に測定された、各スキンポイントをオフセットできる最大距離(双" "方向)。" -#: src/libslic3r/PrintConfig.cpp:3680 +#: src/libslic3r/PrintConfig.cpp:3653 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 " @@ -12657,7 +12659,7 @@ msgstr "" "ボトムシェルの最小厚さを確保するために、必要に応じてボトムソリッドレイヤーの" "数をbottom_solid_layersよりも増やします。" -#: src/libslic3r/PrintConfig.cpp:3119 +#: src/libslic3r/PrintConfig.cpp:3121 msgid "" "The number of perimeters, counted from the center, over which the variation " "needs to be spread. Lower values mean that the outer perimeters don't change " @@ -12697,7 +12699,7 @@ msgstr "" "オブジェクトは、このレイヤー数だけ持ち上げられ、その下にサポート材が生成され" "ます。" -#: src/libslic3r/PrintConfig.cpp:3605 +#: src/libslic3r/PrintConfig.cpp:3578 msgid "" "The percentage of smaller pillars compared to the normal pillar diameter " "which are used in problematic areas where a normal pilla cannot fit." @@ -12705,7 +12707,7 @@ msgstr "" "通常のピラーが収まらない問題のある領域で使用される、通常のピラー径と比較した" "小さいピラーの割合。" -#: src/libslic3r/PrintConfig.cpp:3317 +#: src/libslic3r/PrintConfig.cpp:3290 msgid "" "The percentage of the bed area. \n" "If the print area exceeds the specified value, \n" @@ -12715,14 +12717,14 @@ msgstr "" "プリント領域が指定された値を超える場合、ティルト動作を遅くします。それ以外で" "は-速いティルトとなります" -#: src/slic3r/GUI/Tab.cpp:3727 +#: src/slic3r/GUI/Tab.cpp:3725 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] "以下の物理プリンタはプリセットに基づいているため、削除します。" -#: src/slic3r/GUI/Tab.cpp:3737 +#: src/slic3r/GUI/Tab.cpp:3735 msgid "" "The physical printer below is based only on the preset, you are going to " "delete." @@ -12774,7 +12776,7 @@ msgstr "指定されたファイル名が無効です。" msgid "The provided name is not valid;" msgstr "指定された名前は無効です;" -#: src/libslic3r/Format/3mf.cpp:1745 +#: src/libslic3r/Format/3mf.cpp:1746 msgid "" "The selected 3MF contains FDM supports painted object using a newer version " "of PrusaSlicer and is not compatible." @@ -12782,7 +12784,7 @@ msgstr "" "選択した3MFには、新しいバージョンのPrusaSlicerを使用してペイントされたオブ" "ジェクトをサポートするFDMが含まれており、互換性がありません。" -#: src/libslic3r/Format/3mf.cpp:1753 +#: src/libslic3r/Format/3mf.cpp:1754 msgid "" "The selected 3MF contains multi-material painted object using a newer " "version of PrusaSlicer and is not compatible." @@ -12790,7 +12792,7 @@ msgstr "" "選択した3MFには、新しいバージョンのPrusaSlicerを使用したマルチマテリアルペイ" "ントオブジェクトが含まれており、互換性がありません。" -#: src/libslic3r/Format/3mf.cpp:1749 +#: src/libslic3r/Format/3mf.cpp:1750 msgid "" "The selected 3MF contains seam painted object using a newer version of " "PrusaSlicer and is not compatible." @@ -12798,7 +12800,7 @@ msgstr "" "選択した3MFには、新しいバージョンのPrusaSlicerを使用したシームペイントされた" "オブジェクトが含まれており、互換性がありません。" -#: src/libslic3r/Format/3mf.cpp:1734 +#: src/libslic3r/Format/3mf.cpp:1735 #, boost-format msgid "" "The selected 3mf file has been saved with a newer version of %1% and is not " @@ -12845,7 +12847,7 @@ msgstr "" "選択したオブジェクトにはソリッドパーツが1つしかないため、分割できませんでし" "た。" -#: src/slic3r/GUI/MainFrame.cpp:1165 +#: src/slic3r/GUI/MainFrame.cpp:1169 msgid "" "The selected project is no longer available.\n" "Do you want to remove it from the recent projects list?" @@ -12882,7 +12884,7 @@ msgstr "オブジェクトのサイズはインチで指定できます" msgid "The size of the object is zero" msgstr "オブジェクトのサイズはゼロです" -#: src/libslic3r/PrintConfig.cpp:3812 +#: src/libslic3r/PrintConfig.cpp:3785 msgid "" "The slope of the pad wall relative to the bed plane. 90 degrees means " "straight walls." @@ -12954,7 +12956,7 @@ msgstr "指定された名前は無効です;" msgid "The supplied settings will cause an empty print." msgstr "指定された設定では、何もプリントされません。" -#: src/libslic3r/PrintConfig.cpp:3755 +#: src/libslic3r/PrintConfig.cpp:3728 msgid "The thickness of the pad and its optional cavity walls." msgstr "パッドとそのオプションのキャビティ壁の厚さ。" @@ -13334,11 +13336,11 @@ msgstr "" msgid "This is a default preset." msgstr "これはデフォルトのプリセットです。" -#: src/libslic3r/PrintConfig.cpp:3732 +#: src/libslic3r/PrintConfig.cpp:3705 msgid "This is a relative measure of support points density." msgstr "サポートポイント密度の相対値です。" -#: src/slic3r/GUI/Tab.cpp:2778 +#: src/slic3r/GUI/Tab.cpp:2776 msgid "" "This is a single extruder multimaterial printer, diameters of all extruders " "will be set to the new value. Do you want to proceed?" @@ -13351,7 +13353,7 @@ msgid "This is a system preset." msgstr "これはシステムプリセットです。" #: src/libslic3r/PrintConfig.cpp:827 src/libslic3r/PrintConfig.cpp:890 -#: src/libslic3r/PrintConfig.cpp:3389 +#: src/libslic3r/PrintConfig.cpp:3362 msgid "This is only used in the Slic3r interface as a visual help." msgstr "これはSlic3rのみで使用されるイラストです。" @@ -13650,7 +13652,7 @@ msgstr "" "してください。 このバージョン%sと互換性のある設定をインストールする前に、現在" "の構成のバックアップが作成されます。" -#: src/libslic3r/PrintConfig.cpp:4564 +#: src/libslic3r/PrintConfig.cpp:4539 msgid "" "This version of PrusaSlicer may not understand configurations produced by " "the newest PrusaSlicer versions. For example, newer PrusaSlicer may extend " @@ -13663,7 +13665,7 @@ msgstr "" "たは冗長的に、修正するか、未知の値をデフォルトに置き換えるかを決めることがで" "きます。" -#: src/libslic3r/PrintConfig.cpp:3375 +#: src/libslic3r/PrintConfig.cpp:3348 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 " @@ -13685,15 +13687,15 @@ msgstr "" "スレッドは、長時間実行されるタスクを並列化するために使用されます。スレッド数" "は、使用可能なコア/プロセッサーの数をわずかに超えたところが最適となります。" -#: src/slic3r/GUI/Tab.cpp:2539 +#: src/slic3r/GUI/Tab.cpp:2537 msgid "Tilt" msgstr "チルト" -#: src/libslic3r/PrintConfig.cpp:3308 +#: src/libslic3r/PrintConfig.cpp:3281 msgid "Tilt for high viscosity resin" msgstr "高粘度樹脂用ティルト" -#: src/slic3r/GUI/Tab.cpp:2540 +#: src/slic3r/GUI/Tab.cpp:2538 msgid "Tilt time" msgstr "チルト時間" @@ -13722,15 +13724,15 @@ msgstr "" "Material Unit 2.0)がフィラメントをアンロードする時間。 この時間は、Gコード時" "間予測プログラムによって合計プリント予測時間に追加されます。" -#: src/libslic3r/PrintConfig.cpp:3291 +#: src/libslic3r/PrintConfig.cpp:3264 msgid "Time of the fast tilt" msgstr "高速チルトの時間" -#: src/libslic3r/PrintConfig.cpp:3300 +#: src/libslic3r/PrintConfig.cpp:3273 msgid "Time of the slow tilt" msgstr "スローチルトの時間" -#: src/libslic3r/PrintConfig.cpp:3309 +#: src/libslic3r/PrintConfig.cpp:3282 msgid "Time of the super slow tilt" msgstr "超低速ティルト時間" @@ -13791,7 +13793,7 @@ msgstr "ツール" msgid "Tool #" msgstr "ツール#" -#: src/slic3r/GUI/Tab.cpp:2450 src/libslic3r/GCode.cpp:711 +#: src/slic3r/GUI/Tab.cpp:2448 src/libslic3r/GCode.cpp:711 #: src/libslic3r/PrintConfig.cpp:2845 msgid "Tool change G-code" msgstr "ツールチェンジ用のGコード" @@ -13813,7 +13815,7 @@ msgstr "ツール位置" msgid "Tool type" msgstr "ツールタイプ" -#: src/slic3r/GUI/Tab.cpp:2051 +#: src/slic3r/GUI/Tab.cpp:2049 msgid "Toolchange parameters with single extruder MM printers" msgstr "単一エクストルーダーMMプリンターのツールチェンジパラメーター" @@ -13835,7 +13837,7 @@ msgid "" msgstr "" "上部/下部シェルの厚さのヒント:レイヤーの高さが無効なため使用できません。" -#: src/slic3r/GUI/MainFrame.cpp:1121 +#: src/slic3r/GUI/MainFrame.cpp:1125 msgid "Top View" msgstr "上面" @@ -13928,7 +13930,7 @@ msgstr "移動" msgid "Triangles" msgstr "三角形" -#: src/libslic3r/PrintConfig.cpp:4522 +#: src/libslic3r/PrintConfig.cpp:4497 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)." @@ -13949,11 +13951,11 @@ msgstr "プリンターのタイプ。" msgid "Type:" msgstr "タイプ:" -#: src/slic3r/GUI/Tab.cpp:4324 +#: src/slic3r/GUI/Tab.cpp:4322 msgid "UNLOCKED LOCK" msgstr "開いたカギ" -#: src/slic3r/GUI/Tab.cpp:4350 +#: src/slic3r/GUI/Tab.cpp:4348 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" @@ -13965,7 +13967,7 @@ msgstr "" "クリックすると、現在のオプショングループのすべての設定がシステム(またはデ" "フォルト)値にリセットされます。" -#: src/slic3r/GUI/Tab.cpp:4365 +#: src/slic3r/GUI/Tab.cpp:4363 msgid "" "UNLOCKED LOCK icon indicates that the value was changed and is not equal to " "the system (or default) value.\n" @@ -14006,11 +14008,11 @@ msgstr "複数のボリュームに置き換えることはできません" msgid "Undef" msgstr "未定義" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1684 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1687 msgid "Undef category" msgstr "Undefカテゴリ" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1684 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1687 msgid "Undef group" msgstr "未定義グループ" @@ -14024,7 +14026,7 @@ msgstr "アンダーフロー" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:486 #: src/slic3r/GUI/GLCanvas3D.cpp:4699 src/slic3r/GUI/KBShortcutsDialog.cpp:97 -#: src/slic3r/GUI/MainFrame.cpp:1338 +#: src/slic3r/GUI/MainFrame.cpp:1342 msgid "Undo" msgstr "元に戻す" @@ -14221,7 +14223,7 @@ msgstr "フリーカメラを使用" msgid "Use inches" msgstr "インチを使用" -#: src/libslic3r/PrintConfig.cpp:3746 +#: src/libslic3r/PrintConfig.cpp:3719 msgid "Use pad" msgstr "台座を使用" @@ -14310,11 +14312,11 @@ msgstr "" "値が変更されており、システム値または最後に保存されたプリセットとは異なってい" "ます" -#: src/slic3r/GUI/Tab.cpp:2644 +#: src/slic3r/GUI/Tab.cpp:2642 msgid "Values in this column are for Normal mode" msgstr "この列の値は通常モード用です" -#: src/slic3r/GUI/Tab.cpp:2650 +#: src/slic3r/GUI/Tab.cpp:2648 msgid "Values in this column are for Stealth mode" msgstr "この列の値はサイレントモード用です" @@ -14359,7 +14361,7 @@ msgstr "ベンダー:" msgid "Verbose G-code" msgstr "コメント付きGコード" -#: src/slic3r/GUI/AboutDialog.cpp:242 src/slic3r/GUI/AboutDialog.cpp:367 +#: src/slic3r/GUI/AboutDialog.cpp:244 src/slic3r/GUI/AboutDialog.cpp:369 #: src/slic3r/GUI/GUI_App.cpp:262 msgid "Version" msgstr "バージョン" @@ -14408,7 +14410,7 @@ msgstr "" "「設定」にアクセスして\"%1%\"を確認してください\n" "選択を変更します。" -#: src/libslic3r/PrintConfig.cpp:4423 +#: src/libslic3r/PrintConfig.cpp:4398 msgid "Visualize an already sliced and saved G-code" msgstr "すでにスライスされ保存されたGコードを視覚化する" @@ -14433,7 +14435,7 @@ msgstr "オブジェクトのボリュームが並べ替えられました" msgid "Volumetric" msgstr "体積押出し" -#: src/slic3r/GUI/Tab.cpp:2152 +#: src/slic3r/GUI/Tab.cpp:2150 msgid "Volumetric flow hints not available" msgstr "体積押出し流量のヒントは利用できません" @@ -14456,16 +14458,16 @@ msgstr "体積押出し速度" msgid "WARNING:" msgstr "警告:" -#: src/slic3r/GUI/Tab.cpp:4331 +#: src/slic3r/GUI/Tab.cpp:4329 msgid "WHITE BULLET" msgstr "白丸" -#: src/slic3r/GUI/Tab.cpp:4353 +#: src/slic3r/GUI/Tab.cpp:4351 msgid "WHITE BULLET icon indicates a non system (or non default) preset." msgstr "" "白丸アイコンは、システム(またはデフォルト)プリセットでないことを示します。" -#: src/slic3r/GUI/Tab.cpp:4356 +#: src/slic3r/GUI/Tab.cpp:4354 msgid "" "WHITE BULLET icon indicates that the settings are the same as in the last " "saved preset for the current option group." @@ -14473,14 +14475,14 @@ msgstr "" "白丸アイコンは、現在のオプショングループに最後に保存されたプリセットと同じ設" "定であることを示します。" -#: src/slic3r/GUI/Tab.cpp:4371 +#: src/slic3r/GUI/Tab.cpp:4369 msgid "" "WHITE BULLET icon indicates that the value is the same as in the last saved " "preset." msgstr "" "白丸アイコンは、値が最後に保存されたプリセットと同じであることを示します。" -#: src/libslic3r/PrintConfig.cpp:3881 +#: src/libslic3r/PrintConfig.cpp:3854 msgid "Wall thickness" msgstr "壁の厚さ" @@ -14632,7 +14634,7 @@ msgstr "" "移動後に引込みが補償されると、エクストルーダーはこの追加量のフィラメントを押" "し出します。 この設定はほとんど必要ありません。" -#: src/libslic3r/PrintConfig.cpp:3106 +#: src/libslic3r/PrintConfig.cpp:3108 msgid "" "When to create transitions between even and odd numbers of perimeters. A " "wedge shape with an angle greater than this setting will not have " @@ -14645,16 +14647,18 @@ msgstr "" "リントされません。この設定を小さくすると、中央の境界線の数と長さが減ります" "が、隙間ができたりはみ出したりすることがあります。" -#: src/libslic3r/PrintConfig.cpp:3081 +#: src/libslic3r/PrintConfig.cpp:3082 msgid "" "When transitioning between different numbers of perimeters as the part " "becomes thinner, a certain amount of space is allotted to split or join the " -"perimeter segments." +"perimeter segments. If expressed as a percentage (for example 100%), it will " +"be computed based on the nozzle diameter." msgstr "" "パーツが薄くなるにつれて、異なる数の境界線の間を移行する場合、境界線のセグメ" -"ントを分割または結合するために一定のスペースが割り当てられます。" +"ントを分割または結合するために一定のスペースが割り当てられます。パーセントで" +"表すと(例えば100%)、ノズルの直径に基づいて計算されます。" -#: src/slic3r/GUI/Tab.cpp:4052 +#: src/slic3r/GUI/Tab.cpp:4050 msgid "Whole word" msgstr "全文" @@ -14666,7 +14670,7 @@ msgstr "幅" msgid "Width (mm)" msgstr "幅(mm)" -#: src/libslic3r/PrintConfig.cpp:3585 +#: src/libslic3r/PrintConfig.cpp:3558 msgid "Width from the back sphere center to the front sphere center" msgstr "後部ボールの中心から前部ボールの中心までの幅" @@ -14674,16 +14678,16 @@ msgstr "後部ボールの中心から前部ボールの中心までの幅" msgid "Width of a wipe tower" msgstr "ワイプタワーの幅" -#: src/libslic3r/PrintConfig.cpp:3857 +#: src/libslic3r/PrintConfig.cpp:3830 msgid "" "Width of the connector sticks which connect the object and the generated pad." msgstr "オブジェクトと生成されたパッドを接続するコネクタスティックの幅。" -#: src/libslic3r/PrintConfig.cpp:3238 +#: src/libslic3r/PrintConfig.cpp:3211 msgid "Width of the display" msgstr "ディスプレイの幅" -#: src/libslic3r/PrintConfig.cpp:3169 +#: src/libslic3r/PrintConfig.cpp:3142 msgid "" "Width of the perimeter that will replace thin features (according to the " "Minimum feature size) of the model. If the Minimum perimeter width is " @@ -14696,7 +14700,7 @@ msgstr "" "の厚みと同じになります。パーセントで表すと(例えば85%)、ノズルの直径に基づ" "いて計算されます。" -#: src/libslic3r/PrintConfig.cpp:3358 +#: src/libslic3r/PrintConfig.cpp:3331 msgid "" "Will inflate or deflate the sliced 2D polygons according to the sign of the " "correction." @@ -14738,7 +14742,7 @@ msgstr "ワイプタワー-パージ量調整" msgid "Wipe tower brim width" msgstr "ワイプタワーのブリム幅" -#: src/slic3r/GUI/Tab.cpp:2048 +#: src/slic3r/GUI/Tab.cpp:2046 msgid "Wipe tower parameters" msgstr "ワイプタワーのパラメータ" @@ -14800,7 +14804,7 @@ msgstr "" "バージョンに問題がある場合はいつでも復元できます。アップデートされた設定に含" "まれるもの:" -#: src/libslic3r/PrintConfig.cpp:4451 +#: src/libslic3r/PrintConfig.cpp:4426 msgid "Write information about the model to the console." msgstr "コンソールにモデル情報をリストします。" @@ -14890,7 +14894,7 @@ msgstr "" "ここにメモを書いておくことができます。 このテキストは、Gコードヘッダーのコメ" "ントに追加されます。" -#: src/libslic3r/PrintConfig.cpp:3524 +#: src/libslic3r/PrintConfig.cpp:3497 msgid "You can put your notes regarding the SLA print material here." msgstr "SLAプリント材料に関するメモをここに記入できます。" @@ -15050,7 +15054,7 @@ msgstr "" "現在の変更により、保存されているすべてのエクストルーダー(ツール)の変更が削" "除されます。" -#: src/slic3r/GUI/MainFrame.cpp:1750 +#: src/slic3r/GUI/MainFrame.cpp:1754 msgid "Your file was repaired." msgstr "ファイルが修復されました。" @@ -15089,7 +15093,7 @@ msgstr "Zオフセット" msgid "Z travel" msgstr "Z移動" -#: src/libslic3r/PrintConfig.cpp:3633 +#: src/libslic3r/PrintConfig.cpp:3606 msgid "Zig-Zag" msgstr "ジグザグ" @@ -15211,7 +15215,7 @@ msgstr "デフォルトプリントプロファイル" msgid "default value" msgstr "デフォルト値" -#: src/slic3r/GUI/Tab.cpp:3701 +#: src/slic3r/GUI/Tab.cpp:3699 msgid "delete" msgstr "削除" @@ -15289,7 +15293,7 @@ msgid "flow rate is maximized" msgstr "最大送り量になります" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:4333 +#: src/slic3r/GUI/Tab.cpp:4331 msgid "" "for the left button: indicates a non-system (or non-default) preset,\n" "for the right button: indicates that the settings hasn't been modified." @@ -15313,7 +15317,7 @@ msgstr "g" msgid "g/cm³" msgstr "g/cm³" -#: src/libslic3r/PrintConfig.cpp:3429 +#: src/libslic3r/PrintConfig.cpp:3402 msgid "g/ml" msgstr "g/ml" @@ -15330,7 +15334,7 @@ msgid "in" msgstr "インチ" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:4326 +#: src/slic3r/GUI/Tab.cpp:4324 msgid "" "indicates that some settings were changed and are not equal to the system " "(or default) values for the current option group.\n" @@ -15343,7 +15347,7 @@ msgstr "" "ステム(またはデフォルト)値にリセットします。" #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:4322 +#: src/slic3r/GUI/Tab.cpp:4320 msgid "" "indicates that the settings are the same as the system (or default) values " "for the current option group" @@ -15351,7 +15355,7 @@ msgstr "" "設定が現在の設定グループのシステム(デフォルト)値と同じであることを示します" #. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:4338 +#: src/slic3r/GUI/Tab.cpp:4336 msgid "" "indicates that the settings were changed and are not equal to the last saved " "preset for the current option group.\n" @@ -15389,11 +15393,11 @@ msgstr "" "Alessandro RanellucciとRepRapコミュニティによるSlic3rに基づいています。 " #. TRN "Slic3r _is licensed under the_ License" -#: src/slic3r/GUI/AboutDialog.cpp:269 src/slic3r/GUI/GUI_App.cpp:268 +#: src/slic3r/GUI/AboutDialog.cpp:271 src/slic3r/GUI/GUI_App.cpp:268 msgid "is licensed under the" msgstr "の下でライセンスされています" -#: src/libslic3r/PrintConfig.cpp:3422 +#: src/libslic3r/PrintConfig.cpp:3395 msgid "kg" msgstr "kg" @@ -15417,7 +15421,7 @@ msgstr "最大PrusaSclierバージョン" msgid "min PrusaSlicer version" msgstr "最小PrusaSlicerバージョン" -#: src/libslic3r/PrintConfig.cpp:3415 +#: src/libslic3r/PrintConfig.cpp:3388 msgid "ml" msgstr "ml" @@ -15457,19 +15461,18 @@ msgstr "ml" #: src/libslic3r/PrintConfig.cpp:2995 src/libslic3r/PrintConfig.cpp:3002 #: src/libslic3r/PrintConfig.cpp:3016 src/libslic3r/PrintConfig.cpp:3040 #: src/libslic3r/PrintConfig.cpp:3050 src/libslic3r/PrintConfig.cpp:3060 -#: src/libslic3r/PrintConfig.cpp:3083 src/libslic3r/PrintConfig.cpp:3161 -#: src/libslic3r/PrintConfig.cpp:3367 src/libslic3r/PrintConfig.cpp:3408 -#: src/libslic3r/PrintConfig.cpp:3568 src/libslic3r/PrintConfig.cpp:3577 -#: src/libslic3r/PrintConfig.cpp:3586 src/libslic3r/PrintConfig.cpp:3596 -#: src/libslic3r/PrintConfig.cpp:3661 src/libslic3r/PrintConfig.cpp:3671 -#: src/libslic3r/PrintConfig.cpp:3683 src/libslic3r/PrintConfig.cpp:3703 -#: src/libslic3r/PrintConfig.cpp:3713 src/libslic3r/PrintConfig.cpp:3723 -#: src/libslic3r/PrintConfig.cpp:3741 src/libslic3r/PrintConfig.cpp:3756 -#: src/libslic3r/PrintConfig.cpp:3770 src/libslic3r/PrintConfig.cpp:3781 -#: src/libslic3r/PrintConfig.cpp:3794 src/libslic3r/PrintConfig.cpp:3839 -#: src/libslic3r/PrintConfig.cpp:3849 src/libslic3r/PrintConfig.cpp:3858 -#: src/libslic3r/PrintConfig.cpp:3868 src/libslic3r/PrintConfig.cpp:3884 -#: src/libslic3r/PrintConfig.cpp:3908 +#: src/libslic3r/PrintConfig.cpp:3340 src/libslic3r/PrintConfig.cpp:3381 +#: src/libslic3r/PrintConfig.cpp:3541 src/libslic3r/PrintConfig.cpp:3550 +#: src/libslic3r/PrintConfig.cpp:3559 src/libslic3r/PrintConfig.cpp:3569 +#: src/libslic3r/PrintConfig.cpp:3634 src/libslic3r/PrintConfig.cpp:3644 +#: src/libslic3r/PrintConfig.cpp:3656 src/libslic3r/PrintConfig.cpp:3676 +#: src/libslic3r/PrintConfig.cpp:3686 src/libslic3r/PrintConfig.cpp:3696 +#: src/libslic3r/PrintConfig.cpp:3714 src/libslic3r/PrintConfig.cpp:3729 +#: src/libslic3r/PrintConfig.cpp:3743 src/libslic3r/PrintConfig.cpp:3754 +#: src/libslic3r/PrintConfig.cpp:3767 src/libslic3r/PrintConfig.cpp:3812 +#: src/libslic3r/PrintConfig.cpp:3822 src/libslic3r/PrintConfig.cpp:3831 +#: src/libslic3r/PrintConfig.cpp:3841 src/libslic3r/PrintConfig.cpp:3857 +#: src/libslic3r/PrintConfig.cpp:3881 msgid "mm" msgstr "mm" @@ -15483,8 +15486,9 @@ msgstr "mm (0で無効化)" #: src/libslic3r/PrintConfig.cpp:1478 src/libslic3r/PrintConfig.cpp:1505 #: src/libslic3r/PrintConfig.cpp:1979 src/libslic3r/PrintConfig.cpp:2365 #: src/libslic3r/PrintConfig.cpp:2539 src/libslic3r/PrintConfig.cpp:2628 -#: src/libslic3r/PrintConfig.cpp:2863 src/libslic3r/PrintConfig.cpp:3098 -#: src/libslic3r/PrintConfig.cpp:3173 +#: src/libslic3r/PrintConfig.cpp:2863 src/libslic3r/PrintConfig.cpp:3085 +#: src/libslic3r/PrintConfig.cpp:3100 src/libslic3r/PrintConfig.cpp:3134 +#: src/libslic3r/PrintConfig.cpp:3146 msgid "mm or %" msgstr "mmまたは%" @@ -15546,7 +15550,7 @@ msgstr "モデル" msgid "modified" msgstr "変更あり" -#: src/libslic3r/PrintConfig.cpp:3436 +#: src/libslic3r/PrintConfig.cpp:3409 msgid "money/bottle" msgstr "金額/ボトル" @@ -15604,7 +15608,7 @@ msgstr "プリンター" msgid "printer model" msgstr "プリンターモデル" -#: src/slic3r/GUI/Tab.cpp:3701 +#: src/slic3r/GUI/Tab.cpp:3699 msgid "remove" msgstr "外す" @@ -15625,11 +15629,11 @@ msgstr "最小%sと最大%sが必要です" #: src/slic3r/GUI/RammingChart.cpp:90 src/slic3r/GUI/WipeTowerDialog.cpp:114 #: src/libslic3r/PrintConfig.cpp:951 src/libslic3r/PrintConfig.cpp:995 -#: src/libslic3r/PrintConfig.cpp:1010 src/libslic3r/PrintConfig.cpp:3292 -#: src/libslic3r/PrintConfig.cpp:3301 src/libslic3r/PrintConfig.cpp:3310 -#: src/libslic3r/PrintConfig.cpp:3451 src/libslic3r/PrintConfig.cpp:3459 -#: src/libslic3r/PrintConfig.cpp:3467 src/libslic3r/PrintConfig.cpp:3474 -#: src/libslic3r/PrintConfig.cpp:3482 src/libslic3r/PrintConfig.cpp:3490 +#: src/libslic3r/PrintConfig.cpp:1010 src/libslic3r/PrintConfig.cpp:3265 +#: src/libslic3r/PrintConfig.cpp:3274 src/libslic3r/PrintConfig.cpp:3283 +#: src/libslic3r/PrintConfig.cpp:3424 src/libslic3r/PrintConfig.cpp:3432 +#: src/libslic3r/PrintConfig.cpp:3440 src/libslic3r/PrintConfig.cpp:3447 +#: src/libslic3r/PrintConfig.cpp:3455 src/libslic3r/PrintConfig.cpp:3463 msgid "s" msgstr "s" @@ -15752,8 +15756,8 @@ msgstr "コールバックの書込に失敗しました" #: src/libslic3r/PrintConfig.cpp:478 src/libslic3r/PrintConfig.cpp:1097 #: src/libslic3r/PrintConfig.cpp:2250 src/libslic3r/PrintConfig.cpp:2260 #: src/libslic3r/PrintConfig.cpp:2551 src/libslic3r/PrintConfig.cpp:2792 -#: src/libslic3r/PrintConfig.cpp:3009 src/libslic3r/PrintConfig.cpp:3110 -#: src/libslic3r/PrintConfig.cpp:3693 src/libslic3r/PrintConfig.cpp:3814 +#: src/libslic3r/PrintConfig.cpp:3009 src/libslic3r/PrintConfig.cpp:3112 +#: src/libslic3r/PrintConfig.cpp:3666 src/libslic3r/PrintConfig.cpp:3787 msgid "°" msgstr "°" From 0c22ca3ece854d982faa6c5448f7320c85abcef6 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Thu, 18 Aug 2022 15:48:10 +0200 Subject: [PATCH 07/32] Sync with PrusaSlicer-settings --- resources/profiles/PrusaResearch.idx | 3 + resources/profiles/PrusaResearch.ini | 222 +++++++++++++++++++++------ 2 files changed, 179 insertions(+), 46 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index 1d4331c002..d551d750c9 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,6 +1,9 @@ min_slic3r_version = 2.5.0-alpha0 +1.5.0 Updated arachne parameters. Added profiles for Jessie filaments. +1.5.0-alpha1 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments. 1.5.0-alpha0 Added parameters for Arachne perimeter generator. Changed default seam position. Updated output filename format. min_slic3r_version = 2.4.0-rc +1.4.7 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments. 1.4.6 Added SLA materials. Updated filament profiles. 1.4.5 Added MMU2/S profiles for 0.25mm nozzle. Updated FW version. Enabled g-code thumbnails for MK3 family printers. Updated end g-code. 1.4.4 Added multiple Fiberlogy filament profiles. Updated Extrudr filament profiles. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 1760743ea5..c33f23f352 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.5.0-alpha0 +config_version = 1.5.0 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -30,7 +30,7 @@ technology = FFF family = MK3 bed_model = mk3_bed.stl bed_texture = mk3.svg -default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB +default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB; Prusament PA11 Carbon Fiber [printer_model:MK3] name = Original Prusa i3 MK3 @@ -39,7 +39,7 @@ technology = FFF family = MK3 bed_model = mk3_bed.stl bed_texture = mk3.svg -default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB +default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB; Prusament PA11 Carbon Fiber [printer_model:MK3SMMU2S] name = Original Prusa i3 MK3S && MK3S+ MMU2S @@ -66,7 +66,7 @@ technology = FFF family = MK2.5 bed_model = mk3_bed.stl bed_texture = mk3.svg -default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB +default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB; Prusament PA11 Carbon Fiber @MK2 [printer_model:MK2.5] name = Original Prusa i3 MK2.5 @@ -75,7 +75,7 @@ technology = FFF family = MK2.5 bed_model = mk3_bed.stl bed_texture = mk3.svg -default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB +default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB; Prusament PA11 Carbon Fiber @MK2 [printer_model:MK2.5SMMU2S] name = Original Prusa i3 MK2.5S MMU2S @@ -102,7 +102,7 @@ technology = FFF family = MK2 bed_model = mk2_bed.stl bed_texture = mk2.svg -default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB +default_materials = Generic PLA; Generic ABS; Generic PETG; Prusament PLA; Prusament PETG; Prusament ASA; Prusament PC Blend; Prusament PC Blend Carbon Fiber; Prusament PVB; Prusament PA11 Carbon Fiber @MK2 [printer_model:MK2SMM] name = Original Prusa i3 MK2S MMU1 @@ -243,14 +243,11 @@ bottom_solid_min_thickness = 0.5 gcode_label_objects = 1 infill_anchor = 2.5 infill_anchor_max = 12 -wall_add_middle_threshold = 75% -wall_split_middle_threshold = 50% wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 0.4 wall_distribution_count = 1 min_bead_width = 85% -min_feature_size = 0.1 [print:*MK3*] fill_pattern = grid @@ -297,14 +294,11 @@ thick_bridges = 0 bridge_flow_ratio = 1 bridge_speed = 20 wipe_tower_bridging = 6 -wall_add_middle_threshold = 85% -wall_split_middle_threshold = 70% wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 0.25 wall_distribution_count = 1 min_bead_width = 85% -min_feature_size = 0.0625 [print:*0.25nozzleMK3*] inherits = *0.25nozzle* @@ -353,14 +347,11 @@ bottom_solid_min_thickness = 0.6 thick_bridges = 1 bridge_flow_ratio = 0.95 bridge_speed = 25 -wall_add_middle_threshold = 85% -wall_split_middle_threshold = 70% wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 0.6 wall_distribution_count = 1 min_bead_width = 85% -min_feature_size = 0.15 [print:*0.6nozzleMK3*] inherits = *0.6nozzle* @@ -422,14 +413,11 @@ bottom_solid_min_thickness = 0.8 single_extruder_multi_material_priming = 0 thick_bridges = 1 overhangs = 0 -wall_add_middle_threshold = 85% -wall_split_middle_threshold = 70% wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 0.8 wall_distribution_count = 1 min_bead_width = 85% -min_feature_size = 0.2 [print:*soluble_support*] overhangs = 1 @@ -926,6 +914,7 @@ top_solid_infill_speed = 40 fill_pattern = gyroid fill_density = 15% perimeters = 3 +wipe_tower_bridging = 5 [print:0.15mm QUALITY @MK3] inherits = *0.15mm*; *MK3* @@ -1620,9 +1609,8 @@ filament_retract_lift = 0.2 compatible_printers_condition = printer_model=="MK2SMM" [filament:*PETMINI*] -# inherits = *PET* filament_retract_length = nil -filament_retract_speed = 40 +filament_retract_speed = 45 filament_deretract_speed = 25 filament_retract_lift = nil filament_retract_before_travel = 1 @@ -1631,9 +1619,8 @@ compatible_printers_condition = printer_model=="MINI" start_filament_gcode = "M900 K{if nozzle_diameter[0]==0.6}0.12{elsif nozzle_diameter[0]==0.8}0.06{else}0.2{endif} ; Filament gcode" [filament:*PETMINI06*] -# inherits = *PET* filament_retract_length = nil -filament_retract_speed = 40 +filament_retract_speed = 45 filament_deretract_speed = 25 filament_retract_lift = nil filament_retract_before_travel = 1 @@ -1642,7 +1629,6 @@ start_filament_gcode = "M900 K0.12 ; Filament gcode" filament_max_volumetric_speed = 13 [filament:*ABSMINI*] -# inherits = *ABS* bed_temperature = 100 first_layer_bed_temperature = 100 filament_retract_length = 2.7 @@ -2057,6 +2043,28 @@ disable_fan_first_layers = 6 compatible_printers_condition = nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! (printer_notes=~/.*PRINTER_MODEL_MK2.5.*/ and single_extruder_multi_material) start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.07{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" +[filament:Prusament PA11 Carbon Fiber] +inherits = Prusament PC Blend Carbon Fiber +filament_cost = 151.24 +filament_density = 1.11 +filament_type = NYLON +filament_max_volumetric_speed = 6.5 +extrusion_multiplier = 1.05 +first_layer_temperature = 275 +temperature = 285 +first_layer_bed_temperature = 90 +bed_temperature = 115 +fan_below_layer_time = 10 +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_model!="MINI" and ! single_extruder_multi_material + +[filament:Prusament PA11 Carbon Fiber @MK2] +inherits = Prusament PA11 Carbon Fiber +first_layer_bed_temperature = 90 +bed_temperature = 110 +disable_fan_first_layers = 6 +compatible_printers_condition = nozzle_diameter[0]>=0.4 and nozzle_diameter[0]!=0.8 and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! (printer_notes=~/.*PRINTER_MODEL_MK2.5.*/ and single_extruder_multi_material) +start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.07{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" + [filament:Fillamentum CPE] inherits = *PET* filament_vendor = Fillamentum @@ -2684,6 +2692,75 @@ filament_cost = 25.4 filament_density = 1.24 compatible_printers_condition = nozzle_diameter[0]!=0.8 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +[filament:3D-Fuel Standard PLA] +inherits = *PLA* +filament_vendor = 3D-Fuel +filament_cost = 22.14 +filament_density = 1.24 +filament_max_volumetric_speed = 10 +first_layer_temperature = 210 +temperature = 200 + +[filament:3D-Fuel EasiPrint PLA] +inherits = 3D-Fuel Standard PLA +filament_cost = 30.44 + +[filament:3D-Fuel Pro PLA] +inherits = *PLA* +filament_vendor = 3D-Fuel +filament_cost = 26.57 +filament_density = 1.22 +filament_max_volumetric_speed = 12 +first_layer_temperature = 220 +temperature = 215 +filament_retract_lift = 0 + +[filament:3D-Fuel Buzzed] +inherits = 3D-Fuel Standard PLA +filament_cost = 44.27 +filament_retract_lift = 0 +first_layer_temperature = 210 +temperature = 195 +filament_max_volumetric_speed = 8 + +[filament:3D-Fuel Wound up] +inherits = 3D-Fuel Buzzed +filament_cost = 44.27 +filament_retract_lift = nil +first_layer_temperature = 215 +temperature = 210 +filament_max_volumetric_speed = 8 + +[filament:3D-Fuel Workday ABS] +inherits = *ABSC* +filament_vendor = 3D-Fuel +filament_cost = 23.25 +filament_density = 1.04 + +[filament:3D-Fuel Workday ABS @MINI] +inherits = 3D-Fuel Workday ABS; *ABSMINI* + +[filament:Jessie PLA] +inherits = *PLA* +filament_vendor = Printed Solid +filament_cost = 21 +filament_density = 1.24 +filament_max_volumetric_speed = 12 + +[filament:Jessie PETG] +inherits = *PET* +filament_vendor = Printed Solid +filament_cost = 22 +filament_density = 1.27 +first_layer_temperature = 240 +first_layer_bed_temperature = 85 +temperature = 245 +bed_temperature = 90 +filament_max_volumetric_speed = 7 + +[filament:Jessie PETG @MINI] +inherits = Jessie PETG; *PETMINI* + [filament:Devil Design PLA] inherits = *PLA* filament_vendor = Devil Design @@ -4318,7 +4395,7 @@ inherits = *common* filament_vendor = Taulman filament_cost = 40 filament_density = 1.13 -bed_temperature = 90 +bed_temperature = 110 bridge_fan_speed = 40 cooling = 0 disable_fan_first_layers = 3 @@ -4328,12 +4405,21 @@ filament_colour = #DEE0E6 filament_max_volumetric_speed = 7 filament_soluble = 0 filament_type = NYLON -first_layer_bed_temperature = 60 -first_layer_temperature = 240 +first_layer_bed_temperature = 90 +first_layer_temperature = 260 +temperature = 260 max_fan_speed = 0 min_fan_speed = 0 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.08{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" +compatible_printers_condition = printer_model!="MINI" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) + +[filament:Taulman Bridge @MINI] +inherits = Taulman Bridge +bed_temperature = 90 +first_layer_bed_temperature = 60 +first_layer_temperature = 240 temperature = 250 +compatible_printers_condition = printer_model=="MINI" [filament:Fillamentum Nylon FX256] inherits = *common* @@ -4365,10 +4451,10 @@ inherits = *common* filament_vendor = Fiberthree filament_cost = 200.84 filament_density = 1.2 -bed_temperature = 70 -first_layer_bed_temperature = 75 -first_layer_temperature = 270 -temperature = 270 +bed_temperature = 90 +first_layer_bed_temperature = 90 +first_layer_temperature = 285 +temperature = 285 bridge_fan_speed = 30 cooling = 1 disable_fan_first_layers = 3 @@ -4395,10 +4481,10 @@ inherits = *common* filament_vendor = Fiberthree filament_cost = 208.1 filament_density = 1.25 -bed_temperature = 70 -first_layer_bed_temperature = 75 -first_layer_temperature = 275 -temperature = 275 +bed_temperature = 90 +first_layer_bed_temperature = 90 +first_layer_temperature = 285 +temperature = 285 bridge_fan_speed = 30 cooling = 1 disable_fan_first_layers = 3 @@ -4695,6 +4781,10 @@ compatible_printers_condition = printer_model=="MINI" and nozzle_diameter[0]!=0. [filament:Fiberthree F3 PA Pure Pro @MINI] inherits = Fiberthree F3 PA Pure Pro filament_max_volumetric_speed = 4 +first_layer_temperature = 280 +temperature = 280 +first_layer_bed_temperature = 75 +bed_temperature = 70 filament_retract_length = nil filament_retract_speed = nil filament_retract_lift = nil @@ -4704,6 +4794,10 @@ compatible_printers_condition = printer_model=="MINI" [filament:Fiberthree F3 PA-CF Pro @MINI] inherits = Fiberthree F3 PA-CF Pro +first_layer_temperature = 280 +temperature = 280 +first_layer_bed_temperature = 75 +bed_temperature = 70 filament_max_volumetric_speed = 4 filament_retract_length = nil filament_retract_speed = nil @@ -5083,6 +5177,16 @@ filament_max_volumetric_speed = 13 filament_retract_lift = 0.25 compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]==0.8 and printer_model!="MINI" and ! single_extruder_multi_material +[filament:Prusament PA11 Carbon Fiber @0.8 nozzle] +inherits = Prusament PA11 Carbon Fiber +filament_max_volumetric_speed = 11 +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]==0.8 and printer_model!="MINI" and ! single_extruder_multi_material + +[filament:Prusament PA11 Carbon Fiber @0.8 nozzle MK2] +inherits = Prusament PA11 Carbon Fiber @MK2 +filament_max_volumetric_speed = 11 +compatible_printers_condition = nozzle_diameter[0]==0.8 and printer_model!="MK2SMM" and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! (printer_notes=~/.*PRINTER_MODEL_MK2.5.*/ and single_extruder_multi_material) + [filament:Prusament PC Blend @0.8 nozzle MK2] inherits = Prusament PC Blend @MK2 filament_max_volumetric_speed = 13 @@ -8839,7 +8943,7 @@ inherits = Original Prusa i3 MK2S printer_model = MK2.5 remaining_times = 1 machine_max_jerk_e = 4.5 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0 +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0 [printer:Original Prusa i3 MK2.5 0.25 nozzle] inherits = Original Prusa i3 MK2S 0.25 nozzle @@ -8853,7 +8957,8 @@ inherits = Original Prusa i3 MK2S 0.6 nozzle printer_model = MK2.5 remaining_times = 1 machine_max_jerk_e = 4.5 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0 +deretract_speed = 25 +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0 [printer:Original Prusa i3 MK2.5 0.8 nozzle] inherits = Original Prusa i3 MK2S 0.6 nozzle @@ -8862,10 +8967,13 @@ nozzle_diameter = 0.8 printer_variant = 0.8 max_layer_height = 0.6 min_layer_height = 0.2 -retract_length = 1 +retract_length = 0.7 +retract_speed = 35 +deretract_speed = 20 +retract_lift = 0.25 remaining_times = 1 machine_max_jerk_e = 4.5 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0 +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0 default_print_profile = 0.40mm QUALITY @0.8 nozzle default_filament_profile = Prusament PLA @0.8 nozzle color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change @@ -8939,7 +9047,10 @@ max_layer_height = 0.6 min_layer_height = 0.2 nozzle_diameter = 0.8 printer_variant = 0.8 -retract_length = 1 +retract_length = 0.7 +retract_speed = 35 +deretract_speed = 20 +retract_lift = 0.25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n default_print_profile = 0.40mm QUALITY @0.8 nozzle default_filament_profile = Prusament PLA @0.8 nozzle @@ -8952,6 +9063,7 @@ max_layer_height = 0.35 min_layer_height = 0.1 nozzle_diameter = 0.6 printer_variant = 0.6 +deretract_speed = 25 default_print_profile = 0.20mm NORMAL @0.6 nozzle color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -8985,6 +9097,7 @@ nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 default_print_profile = 0.20mm NORMAL @0.6 nozzle color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -8994,6 +9107,7 @@ nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 default_print_profile = 0.20mm NORMAL @0.6 nozzle color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9067,7 +9181,7 @@ remaining_times = 1 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 max_print_height = 210 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif} +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif}\n\n; Don't change E values below. Excessive value can damage the printer.\n{if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif}\n{if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif} printer_model = MK3 default_print_profile = 0.15mm QUALITY @MK3 thumbnails = 160x120 @@ -9089,7 +9203,8 @@ nozzle_diameter = 0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif} +deretract_speed = 25 +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S{if layer_height<0.075}100{else}95{endif} default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3 color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9099,8 +9214,11 @@ nozzle_diameter = 0.8 max_layer_height = 0.6 min_layer_height = 0.2 printer_variant = 0.8 -retract_length = 1 -start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\nG92 E0\nM221 S95 +retract_length = 0.7 +retract_speed = 35 +deretract_speed = 20 +retract_lift = 0.25 +start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n{if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/}\nG1 Z0.3 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E9 F1000 ; intro line\n{else}\nG1 Z0.2 F720\nG1 Y-3 F1000 ; go outside print area\nG92 E0\nG1 X60 E9 F1000 ; intro line\nG1 X100 E12.5 F1000 ; intro line\n{endif}\nG92 E0\nM221 S95 default_print_profile = 0.40mm QUALITY @0.8 nozzle default_filament_profile = Prusament PLA @0.8 nozzle color_change_gcode = M600\nG1 E0.6 F1500 ; prime after color change @@ -9182,6 +9300,7 @@ nozzle_diameter = 0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3 color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9193,7 +9312,10 @@ nozzle_diameter = 0.8 max_layer_height = 0.6 min_layer_height = 0.2 printer_variant = 0.8 -retract_length = 1 +retract_length = 0.7 +retract_speed = 35 +deretract_speed = 20 +retract_lift = 0.25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.40mm QUALITY @0.8 nozzle default_filament_profile = Prusament PLA @0.8 nozzle @@ -9235,6 +9357,7 @@ nozzle_diameter = 0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3 color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9246,7 +9369,10 @@ nozzle_diameter = 0.8 max_layer_height = 0.6 min_layer_height = 0.2 printer_variant = 0.8 -retract_length = 1 +retract_length = 0.7 +retract_speed = 35 +deretract_speed = 20 +retract_lift = 0.25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nTc\n; purge line\nG1 X55 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.40mm QUALITY @0.8 nozzle default_filament_profile = Prusament PLA @0.8 nozzle @@ -9283,6 +9409,7 @@ nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E29 F1073\nG1 X5 E29 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3 color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9293,6 +9420,7 @@ nozzle_diameter = 0.6,0.6,0.6,0.6,0.6 max_layer_height = 0.40 min_layer_height = 0.15 printer_variant = 0.6 +deretract_speed = 25 start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.11.0 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3 F1000\nG1 Z0.4 F1000\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55 E32 F1073\nG1 X5 E32 F1800\nG1 X55 E8 F2000\nG1 Z0.3 F1000\nG92 E0\nG1 X240 E25 F2200\nG1 Y-2 F1000\nG1 X55 E25 F1400\nG1 Z0.2 F1000\nG1 X5 E4 F1000\nG92 E0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0 default_print_profile = 0.30mm QUALITY @0.6 nozzle MK3 color_change_gcode = M600\nG1 E0.5 F1500 ; prime after color change @@ -9424,8 +9552,10 @@ max_layer_height = 0.55 min_layer_height = 0.2 default_print_profile = 0.40mm QUALITY @0.8 nozzle MINI default_filament_profile = Prusament PLA @0.8 nozzle -retract_length = 3.5 +retract_length = 3 retract_before_travel = 1.5 +retract_speed = 45 +deretract_speed = 20 [printer:Original Prusa SL1] printer_technology = SLA From 952a6c882c7553644aec74563e7e2be3716a2bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 22 Jul 2022 11:50:58 +0200 Subject: [PATCH 08/32] Fixed an issue that the wipe was shorter when it was located where extrusion width was changing. --- src/libslic3r/Arachne/utils/ExtrusionLine.cpp | 4 +- src/libslic3r/Fill/Fill.cpp | 11 ++- src/libslic3r/GCode.cpp | 41 ++++++++- src/libslic3r/PerimeterGenerator.cpp | 85 ++++++++++++------- src/libslic3r/PerimeterGenerator.hpp | 2 +- 5 files changed, 100 insertions(+), 43 deletions(-) diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp index a5734f4785..75e4d53389 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp @@ -268,13 +268,13 @@ void extrusion_paths_append(ExtrusionPaths &dst, const ClipperLib_Z::Paths &extr { for (const ClipperLib_Z::Path &extrusion_path : extrusion_paths) { ThickPolyline thick_polyline = Arachne::to_thick_polyline(extrusion_path); - Slic3r::append(dst, thick_polyline_to_extrusion_paths(thick_polyline, role, flow, scaled(0.05), float(SCALED_EPSILON))); + Slic3r::append(dst, thick_polyline_to_multi_path(thick_polyline, role, flow, scaled(0.05), float(SCALED_EPSILON)).paths); } } void extrusion_paths_append(ExtrusionPaths &dst, const Arachne::ExtrusionLine &extrusion, const ExtrusionRole role, const Flow &flow) { ThickPolyline thick_polyline = Arachne::to_thick_polyline(extrusion); - Slic3r::append(dst, thick_polyline_to_extrusion_paths(thick_polyline, role, flow, scaled(0.05), float(SCALED_EPSILON))); + Slic3r::append(dst, thick_polyline_to_multi_path(thick_polyline, role, flow, scaled(0.05), float(SCALED_EPSILON)).paths); } } // namespace Slic3r \ No newline at end of file diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index d6eaff03af..9d25143fb0 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -426,14 +426,13 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: for (const ThickPolyline &thick_polyline : thick_polylines) { Flow new_flow = surface_fill.params.flow.with_spacing(float(f->spacing)); - ExtrusionPaths paths = thick_polyline_to_extrusion_paths(thick_polyline, surface_fill.params.extrusion_role, new_flow, scaled(0.05), 0); + ExtrusionMultiPath multi_path = thick_polyline_to_multi_path(thick_polyline, surface_fill.params.extrusion_role, new_flow, scaled(0.05), float(SCALED_EPSILON)); // Append paths to collection. - if (!paths.empty()) { - if (paths.front().first_point() == paths.back().last_point()) - eec->entities.emplace_back(new ExtrusionLoop(std::move(paths))); + if (!multi_path.empty()) { + if (multi_path.paths.front().first_point() == multi_path.paths.back().last_point()) + eec->entities.emplace_back(new ExtrusionLoop(std::move(multi_path.paths))); else - for (ExtrusionPath &path : paths) - eec->entities.emplace_back(new ExtrusionPath(std::move(path))); + eec->entities.emplace_back(new ExtrusionMultiPath(std::move(multi_path))); } } diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index f2c435c4f2..f8fc2e5a70 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2642,6 +2642,12 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou // thus empty path segments will not be produced by G-code export. loop.split_at(last_pos, false, scaled(0.0015)); + for (auto it = std::next(loop.paths.begin()); it != loop.paths.end(); ++it) { + assert(it->polyline.points.size() >= 2); + assert(std::prev(it)->polyline.last_point() == it->polyline.first_point()); + } + assert(loop.paths.front().first_point() == loop.paths.back().last_point()); + // clip the path to avoid the extruder to get exactly on the first point of the loop; // if polyline was shorter than the clipping distance we'd get a null polyline, so // we discard it in that case @@ -2670,8 +2676,21 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou // reset acceleration gcode += m_writer.set_acceleration((unsigned int)(m_config.default_acceleration.value + 0.5)); - if (m_wipe.enable) - m_wipe.path = paths.front().polyline; // TODO: don't limit wipe to last path + if (m_wipe.enable) { + m_wipe.path = paths.front().polyline; + + for (auto it = std::next(paths.begin()); it != paths.end(); ++it) { + if (is_bridge(it->role())) + break; // Don't perform a wipe on bridges. + + assert(it->polyline.points.size() >= 2); + assert(m_wipe.path.points.back() == it->polyline.first_point()); + if (m_wipe.path.points.back() != it->polyline.first_point()) + break; // ExtrusionLoop is interrupted in some place. + + m_wipe.path.points.insert(m_wipe.path.points.end(), it->polyline.points.begin() + 1, it->polyline.points.end()); + } + } // make a little move inwards before leaving loop if (paths.back().role() == erExternalPerimeter && m_layer != NULL && m_config.perimeters.value > 1 && paths.front().size() >= 2 && paths.back().polyline.points.size() >= 3) { @@ -2712,6 +2731,10 @@ std::string GCode::extrude_loop(ExtrusionLoop loop, std::string description, dou std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string description, double speed) { + for (auto it = std::next(multipath.paths.begin()); it != multipath.paths.end(); ++it) { + assert(it->polyline.points.size() >= 2); + assert(std::prev(it)->polyline.last_point() == it->polyline.first_point()); + } // extrude along the path std::string gcode; for (ExtrusionPath path : multipath.paths) { @@ -2721,8 +2744,20 @@ std::string GCode::extrude_multi_path(ExtrusionMultiPath multipath, std::string gcode += this->_extrude(path, description, speed); } if (m_wipe.enable) { - m_wipe.path = std::move(multipath.paths.back().polyline); // TODO: don't limit wipe to last path + m_wipe.path = std::move(multipath.paths.back().polyline); m_wipe.path.reverse(); + + for (auto it = std::next(multipath.paths.rbegin()); it != multipath.paths.rend(); ++it) { + if (is_bridge(it->role())) + break; // Do not perform a wipe on bridges. + + assert(it->polyline.points.size() >= 2); + assert(m_wipe.path.points.back() == it->polyline.last_point()); + if (m_wipe.path.points.back() != it->polyline.last_point()) + break; // ExtrusionMultiPath is interrupted in some place. + + m_wipe.path.points.insert(m_wipe.path.points.end(), it->polyline.points.rbegin() + 1, it->polyline.points.rend()); + } } // reset acceleration gcode += m_writer.set_acceleration((unsigned int)floor(m_config.default_acceleration.value + 0.5)); diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 830d48571d..e61f9097d1 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -21,12 +21,12 @@ namespace Slic3r { -ExtrusionPaths thick_polyline_to_extrusion_paths(const ThickPolyline &thick_polyline, ExtrusionRole role, const Flow &flow, const float tolerance, const float merge_tolerance) +ExtrusionMultiPath thick_polyline_to_multi_path(const ThickPolyline &thick_polyline, ExtrusionRole role, const Flow &flow, const float tolerance, const float merge_tolerance) { - ExtrusionPaths paths; - ExtrusionPath path(role); - ThickLines lines = thick_polyline.thicklines(); - + ExtrusionMultiPath multi_path; + ExtrusionPath path(role); + ThickLines lines = thick_polyline.thicklines(); + for (int i = 0; i < (int)lines.size(); ++i) { const ThickLine& line = lines[i]; assert(line.a_width >= SCALED_EPSILON && line.b_width >= SCALED_EPSILON); @@ -38,8 +38,8 @@ ExtrusionPaths thick_polyline_to_extrusion_paths(const ThickPolyline &thick_poly path.polyline.points.back() = line.b; // If the variable path is non-empty, connect this tiny line to it. else if (i + 1 < (int)lines.size()) // If there is at least one following line, connect this tiny line to it. lines[i + 1].a = line.a; - else if (!paths.empty()) - paths.back().polyline.points.back() = line.b; // Connect this tiny line to the last finished path. + else if (!multi_path.paths.empty()) + multi_path.paths.back().polyline.points.back() = line.b; // Connect this tiny line to the last finished path. // If any of the above isn't satisfied, then remove this tiny line. continue; @@ -103,40 +103,38 @@ ExtrusionPaths thick_polyline_to_extrusion_paths(const ThickPolyline &thick_poly path.polyline.append(line.b); } else { // we need to initialize a new line - paths.emplace_back(std::move(path)); + multi_path.paths.emplace_back(std::move(path)); path = ExtrusionPath(role); -- i; } } } if (path.polyline.is_valid()) - paths.emplace_back(std::move(path)); - return paths; + multi_path.paths.emplace_back(std::move(path)); + return multi_path; } -static void variable_width(const ThickPolylines& polylines, ExtrusionRole role, const Flow &flow, std::vector &out) +static void variable_width(const ThickPolylines &polylines, ExtrusionRole role, const Flow &flow, std::vector &out) { - // This value determines granularity of adaptive width, as G-code does not allow - // variable extrusion within a single move; this value shall only affect the amount - // of segments, and any pruning shall be performed before we apply this tolerance. - const auto tolerance = float(scale_(0.05)); - for (const ThickPolyline &p : polylines) { - ExtrusionPaths paths = thick_polyline_to_extrusion_paths(p, role, flow, tolerance, tolerance); - // Append paths to collection. - if (!paths.empty()) { - for (auto it = std::next(paths.begin()); it != paths.end(); ++it) { + // This value determines granularity of adaptive width, as G-code does not allow + // variable extrusion within a single move; this value shall only affect the amount + // of segments, and any pruning shall be performed before we apply this tolerance. + const auto tolerance = float(scale_(0.05)); + for (const ThickPolyline &p : polylines) { + ExtrusionMultiPath multi_path = thick_polyline_to_multi_path(p, role, flow, tolerance, tolerance); + // Append paths to collection. + if (!multi_path.paths.empty()) { + for (auto it = std::next(multi_path.paths.begin()); it != multi_path.paths.end(); ++it) { assert(it->polyline.points.size() >= 2); assert(std::prev(it)->polyline.last_point() == it->polyline.first_point()); } - if (paths.front().first_point() == paths.back().last_point()) { - out.emplace_back(new ExtrusionLoop(std::move(paths))); - } else { - for (ExtrusionPath &path : paths) - out.emplace_back(new ExtrusionPath(std::move(path))); - } - } - } + if (multi_path.paths.front().first_point() == multi_path.paths.back().last_point()) + out.emplace_back(new ExtrusionLoop(std::move(multi_path.paths))); + else + out.emplace_back(new ExtrusionMultiPath(std::move(multi_path))); + } + } } // Hierarchy of perimeters. @@ -534,10 +532,35 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator &p else extrusion_loop.make_clockwise(); + for (auto it = std::next(extrusion_loop.paths.begin()); it != extrusion_loop.paths.end(); ++it) { + assert(it->polyline.points.size() >= 2); + assert(std::prev(it)->polyline.last_point() == it->polyline.first_point()); + } + assert(extrusion_loop.paths.front().first_point() == extrusion_loop.paths.back().last_point()); + extrusion_coll.append(std::move(extrusion_loop)); - } else - for (ExtrusionPath &path : paths) - extrusion_coll.append(ExtrusionPath(std::move(path))); + } else { + // Because we are processing one ExtrusionLine all ExtrusionPaths should form one connected path. + // But there is possibility that due to numerical issue there is poss + assert([&paths = std::as_const(paths)]() -> bool { + for (auto it = std::next(paths.begin()); it != paths.end(); ++it) + if (std::prev(it)->polyline.last_point() != it->polyline.first_point()) + return false; + return true; + }()); + ExtrusionMultiPath multi_path; + multi_path.paths.emplace_back(std::move(paths.front())); + + for (auto it_path = std::next(paths.begin()); it_path != paths.end(); ++it_path) { + if (multi_path.paths.back().last_point() != it_path->first_point()) { + extrusion_coll.append(ExtrusionMultiPath(std::move(multi_path))); + multi_path = ExtrusionMultiPath(); + } + multi_path.paths.emplace_back(std::move(*it_path)); + } + + extrusion_coll.append(ExtrusionMultiPath(std::move(multi_path))); + } } } diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp index 2e478e107b..ecf09c593d 100644 --- a/src/libslic3r/PerimeterGenerator.hpp +++ b/src/libslic3r/PerimeterGenerator.hpp @@ -72,7 +72,7 @@ private: Polygons m_lower_slices_polygons; }; -ExtrusionPaths thick_polyline_to_extrusion_paths(const ThickPolyline &thick_polyline, ExtrusionRole role, const Flow &flow, float tolerance, float merge_tolerance); +ExtrusionMultiPath thick_polyline_to_multi_path(const ThickPolyline &thick_polyline, ExtrusionRole role, const Flow &flow, float tolerance, float merge_tolerance); } From d746ece41a75aaeaa9cdf5ba5e5a3fa51324f542 Mon Sep 17 00:00:00 2001 From: PavelMikus Date: Thu, 18 Aug 2022 17:14:36 +0200 Subject: [PATCH 09/32] fix performance problem in seam placer - do not generate merged islands for each layer; use lslices insted affects also overhang estiamtion and thus other params --- src/libslic3r/GCode/SeamPlacer.cpp | 36 +++++++++++++----------------- src/libslic3r/GCode/SeamPlacer.hpp | 4 +--- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index a54e55e005..ae6cd73971 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -473,6 +473,7 @@ void process_perimeter_polygon(const Polygon &orig_polygon, float z_coord, const } Polygon polygon = orig_polygon; bool was_clockwise = polygon.make_counter_clockwise(); + float angle_arm_len = region != nullptr ? region->flow(FlowRole::frExternalPerimeter).nozzle_diameter() : 0.5f; std::vector lengths { }; for (size_t point_idx = 0; point_idx < polygon.size() - 1; ++point_idx) { @@ -480,7 +481,7 @@ void process_perimeter_polygon(const Polygon &orig_polygon, float z_coord, const } lengths.push_back(std::max((unscale(polygon[0]) - unscale(polygon[polygon.size() - 1])).norm(), 0.1)); std::vector polygon_angles = calculate_polygon_angles_at_vertices(polygon, lengths, - SeamPlacer::polygon_local_angles_arm_distance); + angle_arm_len); result.perimeters.push_back( { }); Perimeter &perimeter = result.perimeters.back(); @@ -1015,11 +1016,7 @@ class PerimeterDistancer { public: PerimeterDistancer(const Layer *layer) { - static const float eps = float(scale_(layer->object()->config().slice_closing_radius.value)); - // merge with offset - ExPolygons merged = layer->merged(eps); - // ofsset back - ExPolygons layer_outline = offset_ex(merged, -eps); + ExPolygons layer_outline = layer->lslices; for (const ExPolygon &island : layer_outline) { assert(island.contour.is_counter_clockwise()); for (const auto &line : island.contour.lines()) { @@ -1035,8 +1032,8 @@ public: tree = AABBTreeLines::build_aabb_tree_over_indexed_lines(lines); } - float distance_from_perimeter(const Point &point) const { - Vec2d p = unscale(point); + float distance_from_perimeter(const Vec2f &point) const { + Vec2d p = point.cast(); size_t hit_idx_out { }; Vec2d hit_point_out = Vec2d::Zero(); auto distance = AABBTreeLines::squared_distance_to_indexed_lines(lines, tree, p, hit_idx_out, hit_point_out); @@ -1128,20 +1125,19 @@ void SeamPlacer::calculate_overhangs_and_layer_embedding(const PrintObject *po) std::unique_ptr current_layer_distancer = std::make_unique(po->layers()[layer_idx]); for (SeamCandidate &perimeter_point : layers[layer_idx].points) { - Point point = Point::new_scale(Vec2f { perimeter_point.position.head<2>() }); + Vec2f point = Vec2f { perimeter_point.position.head<2>() }; if (prev_layer_distancer.get() != nullptr) { - perimeter_point.overhang = (prev_layer_distancer->distance_from_perimeter(point) - + 0.5f * perimeter_point.perimeter.flow_width + perimeter_point.overhang = prev_layer_distancer->distance_from_perimeter(point) + + 0.6f * perimeter_point.perimeter.flow_width - tan(SeamPlacer::overhang_angle_threshold) - * po->layers()[layer_idx]->height) - / (3.0f * perimeter_point.perimeter.flow_width); - //NOTE disables the feature to place seams on slowly decreasing areas. Remove the following line to enable. - perimeter_point.overhang = perimeter_point.overhang < 0.0f ? 0.0f : perimeter_point.overhang; + * po->layers()[layer_idx]->height; + perimeter_point.overhang = + perimeter_point.overhang < 0.0f ? 0.0f : perimeter_point.overhang; } if (should_compute_layer_embedding) { // search for embedded perimeter points (points hidden inside the print ,e.g. multimaterial join, best position for seam) perimeter_point.embedded_distance = current_layer_distancer->distance_from_perimeter(point) - + 0.5f * perimeter_point.perimeter.flow_width; + + 0.6f * perimeter_point.perimeter.flow_width; } } @@ -1399,7 +1395,7 @@ void SeamPlacer::align_seam_points(const PrintObject *po, const SeamPlacerImpl:: observations[index] = current.position.head<2>(); observation_points[index] = current.position.z(); weights[index] = angle_weight(current.local_ccw_angle); - float sign = layer_angle > 2.0 * std::abs(current.local_ccw_angle) ? -1.0f : 1.0f; + float sign = layer_angle > 2.0 * std::abs(current.local_ccw_angle) ? -0.8f : 1.0f; if (current.type == EnforcedBlockedSeamPoint::Enforced) { sign = 1.0f; weights[index] += 3.0f; @@ -1417,10 +1413,10 @@ void SeamPlacer::align_seam_points(const PrintObject *po, const SeamPlacerImpl:: // Perimeter structure of the point; also set flag aligned to true for (size_t index = 0; index < seam_string.size(); ++index) { const auto &pair = seam_string[index]; - float t = std::min(1.0f, std::abs(layers[pair.first].points[pair.second].local_ccw_angle) - / SeamPlacer::sharp_angle_snapping_threshold); + float t = std::min(1.0f, std::pow(std::abs(layers[pair.first].points[pair.second].local_ccw_angle) + / SeamPlacer::sharp_angle_snapping_threshold, 3.0f)); if (layers[pair.first].points[pair.second].type == EnforcedBlockedSeamPoint::Enforced){ - t = std::max(0.7f, t); + t = std::max(0.4f, t); } Vec3f current_pos = layers[pair.first].points[pair.second].position; diff --git a/src/libslic3r/GCode/SeamPlacer.hpp b/src/libslic3r/GCode/SeamPlacer.hpp index 4275e4942e..696bbdf618 100644 --- a/src/libslic3r/GCode/SeamPlacer.hpp +++ b/src/libslic3r/GCode/SeamPlacer.hpp @@ -126,12 +126,10 @@ public: //square of number of rays per sample point static constexpr size_t sqr_rays_per_sample_point = 5; - // arm length used during angles computation - static constexpr float polygon_local_angles_arm_distance = 0.3f; // snapping angle - angles larger than this value will be snapped to during seam painting static constexpr float sharp_angle_snapping_threshold = 55.0f * float(PI) / 180.0f; // overhang angle for seam placement that still yields good results, in degrees, measured from vertical direction - static constexpr float overhang_angle_threshold = 45.0f * float(PI) / 180.0f; + static constexpr float overhang_angle_threshold = 50.0f * float(PI) / 180.0f; // determines angle importance compared to visibility ( neutral value is 1.0f. ) static constexpr float angle_importance_aligned = 0.6f; From be9cae74a03c1e54cb3819336da1fd531d6f1ffd Mon Sep 17 00:00:00 2001 From: PavelMikus Date: Thu, 18 Aug 2022 17:19:06 +0200 Subject: [PATCH 10/32] Random seam fix - pseudorandom generator instead of rand() --- src/libslic3r/GCode/SeamPlacer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index ae6cd73971..6096d60754 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -968,6 +968,10 @@ void pick_random_seam_point(const std::vector &perimeter_points, }; std::vector viables; + const Vec3f pseudornd_seed = perimeter_points[viable_example_index].position; + float rand = std::abs(sin(pseudornd_seed.dot(Vec3f(12.9898f,78.233f, 133.3333f))) * 43758.5453f); + rand = rand - (int) rand; + for (size_t index = start_index; index < end_index; ++index) { if (comparator.are_similar(perimeter_points[index], perimeter_points[viable_example_index])) { // index ok, push info into viables @@ -995,7 +999,7 @@ void pick_random_seam_point(const std::vector &perimeter_points, float len_sum = std::accumulate(viables.begin(), viables.end(), 0.0f, [](const float acc, const Viable &v) { return acc + v.edge_length; }); - float picked_len = len_sum * (rand() / (float(RAND_MAX) + 1)); + float picked_len = len_sum * rand; size_t point_idx = 0; while (picked_len - viables[point_idx].edge_length > 0) { From 263b23fb468a4d0981de8ecf590cfd5f6d4edbb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Thu, 18 Aug 2022 21:12:25 +0200 Subject: [PATCH 11/32] Follow-up to 6f5813a849e40b1bcae97270a317222dff92f5ec: Recalculate infill surfaces when infill_only_where_needed is enabled while switching from the Lightning infill to another infill or vice versa. --- src/libslic3r/PrintObject.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 5cebbb0566..419536bf4d 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -627,12 +627,21 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "bottom_fill_pattern" || opt_key == "external_fill_link_max_length" || opt_key == "fill_angle" - || opt_key == "fill_pattern" || opt_key == "infill_anchor" || opt_key == "infill_anchor_max" || opt_key == "top_infill_extrusion_width" || opt_key == "first_layer_extrusion_width") { steps.emplace_back(posInfill); + } else if (opt_key == "fill_pattern") { + steps.emplace_back(posInfill); + + const auto *old_fill_pattern = old_config.option>(opt_key); + const auto *new_fill_pattern = new_config.option>(opt_key); + assert(old_infill && new_infill); + // We need to recalculate infill surfaces when infill_only_where_needed is enabled, and we are switching from + // the Lightning infill to another infill or vice versa. + if (m_config.infill_only_where_needed && (new_fill_pattern->value == ipLightning || old_fill_pattern->value == ipLightning)) + steps.emplace_back(posPrepareInfill); } else if (opt_key == "fill_density") { // One likely wants to reslice only when switching between zero infill to simulate boolean difference (subtracting volumes), // normal infill and 100% (solid) infill. From f95a6e3d33364478987d2f5af1238f74959c60cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 19 Aug 2022 09:09:59 +0200 Subject: [PATCH 12/32] Follow-up to 263b23fb468a4d0981de8ecf590cfd5f6d4edbb6: Fixed an assert. --- src/libslic3r/PrintObject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 419536bf4d..9566641bf7 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -637,7 +637,7 @@ bool PrintObject::invalidate_state_by_config_options( const auto *old_fill_pattern = old_config.option>(opt_key); const auto *new_fill_pattern = new_config.option>(opt_key); - assert(old_infill && new_infill); + assert(old_fill_pattern && new_fill_pattern); // We need to recalculate infill surfaces when infill_only_where_needed is enabled, and we are switching from // the Lightning infill to another infill or vice versa. if (m_config.infill_only_where_needed && (new_fill_pattern->value == ipLightning || old_fill_pattern->value == ipLightning)) From 8c0db761c11cf7374ace8403d5001d17dc239cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 19 Aug 2022 12:14:45 +0200 Subject: [PATCH 13/32] Fix #8716, #8717, and #8718: The pressure equalizer was producing a malformed GCode that caused underextrusion. --- src/libslic3r/GCode/PressureEqualizer.cpp | 25 ++++++++++++++++++----- src/libslic3r/GCode/PressureEqualizer.hpp | 2 -- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/libslic3r/GCode/PressureEqualizer.cpp b/src/libslic3r/GCode/PressureEqualizer.cpp index b173cb684f..7135c0a5c0 100644 --- a/src/libslic3r/GCode/PressureEqualizer.cpp +++ b/src/libslic3r/GCode/PressureEqualizer.cpp @@ -669,17 +669,32 @@ inline void PressureEqualizer::push_to_output(const char *text, const size_t len output_buffer[output_buffer_length] = 0; } -inline bool PressureEqualizer::is_just_feedrate_provided(const GCodeLine &line) +inline bool is_just_line_with_extrude_set_speed_tag(const std::string &line) { - return line.pos_provided[4] && !line.pos_provided[0] && !line.pos_provided[1] && !line.pos_provided[2] && !line.pos_provided[3]; + if (line.empty() && !boost::starts_with(line, "G1 ") && !boost::ends_with(line, EXTRUDE_SET_SPEED_TAG)) + return false; + + const char *p_line = line.data() + 3; + const char *const line_end = line.data() + line.length() - 1; + while (!is_eol(*p_line)) { + if (toupper(*p_line++) == 'F') + break; + else + return false; + } + parse_float(p_line, line_end - p_line); + eatws(p_line); + p_line += EXTRUDE_SET_SPEED_TAG.length(); + return p_line <= line_end && is_eol(*p_line); } void PressureEqualizer::push_line_to_output(const size_t line_idx, const float new_feedrate, const char *comment) { const GCodeLine &line = this->m_gcode_lines[line_idx]; - if (line_idx > 0) { - const GCodeLine &prev_line = this->m_gcode_lines[line_idx - 1]; - if (prev_line.extrude_set_speed_tag && this->is_just_feedrate_provided(prev_line)) + if (line_idx > 0 && output_buffer_length > 0) { + const std::string prev_line_str = std::string(output_buffer.begin() + int(this->output_buffer_prev_length), + output_buffer.begin() + int(this->output_buffer_length) + 1); + if (is_just_line_with_extrude_set_speed_tag(prev_line_str)) this->output_buffer_length = this->output_buffer_prev_length; // Remove the last line because it only sets the speed for an empty block of g-code lines, so it is useless. else push_to_output(EXTRUDE_END_TAG.data(), EXTRUDE_END_TAG.length(), true); diff --git a/src/libslic3r/GCode/PressureEqualizer.hpp b/src/libslic3r/GCode/PressureEqualizer.hpp index 068b01df41..d6b7f2a4f1 100644 --- a/src/libslic3r/GCode/PressureEqualizer.hpp +++ b/src/libslic3r/GCode/PressureEqualizer.hpp @@ -193,8 +193,6 @@ private: // Push a G-code line to the output. void push_line_to_output(size_t line_idx, float new_feedrate, const char *comment); - inline bool is_just_feedrate_provided(const GCodeLine &line); - public: std::queue m_layer_results; From 9430387354078c9e36508824ebd83e683183f753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 19 Aug 2022 11:49:06 +0200 Subject: [PATCH 14/32] Windows specific: Use mipmaps generated through OpenGL for AMD graphics cards with drivers newer than 22.6.1. Since AMD driver version 22.7.1, there is probably some bug in the driver that causes the issue with the missing texture of the bed. It seems that this issue only triggers when mipmaps are generated manually (combined with a texture compression) and when mipmaps are generated through OpenGL glGenerateMipmap is working. This workaround detects the AMD driver version and generates mipmaps through OpenGL for driver versions newer than 22.6.1. --- src/slic3r/GUI/GLTexture.cpp | 7 ++++--- src/slic3r/GUI/OpenGLManager.cpp | 29 +++++++++++++++++++++++++++++ src/slic3r/GUI/OpenGLManager.hpp | 2 ++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index b97d8ae481..201c37296e 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -567,7 +567,7 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, boo else glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); - if (use_mipmaps) { + if (use_mipmaps && OpenGLManager::use_manually_generated_mipmaps()) { // we manually generate mipmaps because glGenerateMipmap() function is not reliable on all graphics cards int lod_w = m_width; int lod_h = m_height; @@ -596,8 +596,9 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, boo glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); } - } - else { + } else if (use_mipmaps && !OpenGLManager::use_manually_generated_mipmaps()) { + glGenerateMipmap(GL_TEXTURE_2D); + } else { glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); } diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index 6616cc20d7..a4d8d9a0fa 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -205,6 +205,7 @@ std::string OpenGLManager::GLInfo::to_string(bool for_github) const OpenGLManager::GLInfo OpenGLManager::s_gl_info; bool OpenGLManager::s_compressed_textures_supported = false; +bool OpenGLManager::m_use_manually_generated_mipmaps = true; OpenGLManager::EMultisampleState OpenGLManager::s_multisample = OpenGLManager::EMultisampleState::Unknown; OpenGLManager::EFramebufferType OpenGLManager::s_framebuffers_type = OpenGLManager::EFramebufferType::Unknown; @@ -274,6 +275,34 @@ bool OpenGLManager::init_gl() wxMessageBox(message, wxString("PrusaSlicer - ") + _L("Error loading shaders"), wxOK | wxICON_ERROR); } } + +#ifdef _WIN32 + // Since AMD driver version 22.7.1, there is probably some bug in the driver that causes the issue with the missing + // texture of the bed. It seems that this issue only triggers when mipmaps are generated manually + // (combined with a texture compression) and when mipmaps are generated through OpenGL glGenerateMipmap is working. + // So, for newer drivers than 22.6.1, the last working driver version, we use mipmaps generated through OpenGL. + if (const auto gl_info = OpenGLManager::get_gl_info(); boost::contains(gl_info.get_vendor(), "ATI Technologies Inc.")) { + // WHQL drivers seem to have one more version number at the end besides non-WHQL drivers. + // WHQL: 4.6.14800 Compatibility Profile Context 22.6.1 30.0.21023.1015 + // Non-WHQL: 4.6.0 Compatibility Profile Context 22.8.1.220810 + std::regex version_rgx(R"(Compatibility\sProfile\sContext\s(\d+)\.(\d+)\.(\d+))"); + if (std::smatch matches; std::regex_search(gl_info.get_version(), matches, version_rgx) && matches.size() == 4) { + int version_major = std::stoi(matches[1].str()); + int version_minor = std::stoi(matches[2].str()); + int version_patch = std::stoi(matches[3].str()); + BOOST_LOG_TRIVIAL(debug) << "Found AMD driver version: " << version_major << "." << version_minor << "." << version_patch; + + if (version_major > 22 || (version_major == 22 && version_minor > 6) || (version_major == 22 && version_minor == 6 && version_patch > 1)) { + m_use_manually_generated_mipmaps = false; + BOOST_LOG_TRIVIAL(debug) << "Mipmapping through OpenGL was enabled."; + } + } else { + BOOST_LOG_TRIVIAL(error) << "Not recognized format of version."; + } + } else { + BOOST_LOG_TRIVIAL(error) << "Unable to parse version of AMD driver."; + } +#endif } return true; diff --git a/src/slic3r/GUI/OpenGLManager.hpp b/src/slic3r/GUI/OpenGLManager.hpp index 72a4e6bc07..f1ba47c5ec 100644 --- a/src/slic3r/GUI/OpenGLManager.hpp +++ b/src/slic3r/GUI/OpenGLManager.hpp @@ -84,6 +84,7 @@ private: static EMultisampleState s_multisample; static EFramebufferType s_framebuffers_type; + static bool m_use_manually_generated_mipmaps; public: OpenGLManager() = default; ~OpenGLManager(); @@ -100,6 +101,7 @@ public: static EFramebufferType get_framebuffers_type() { return s_framebuffers_type; } static wxGLCanvas* create_wxglcanvas(wxWindow& parent); static const GLInfo& get_gl_info() { return s_gl_info; } + static bool use_manually_generated_mipmaps() { return m_use_manually_generated_mipmaps; } private: static void detect_multisample(int* attribList); From 6690d49beacd48f74bdc75633cb1e7a2280bbcfd Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 19 Aug 2022 16:41:23 +0200 Subject: [PATCH 15/32] Bumped up version to 2.5.0-rc1 --- src/slic3r/GUI/GUI_App.cpp | 4 ++-- version.inc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index f9ed37f21d..5205cd8e08 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -869,9 +869,9 @@ static boost::optional parse_semver_from_ini(std::string path) void GUI_App::init_app_config() { // Profiles for the alpha are stored into the PrusaSlicer-alpha directory to not mix with the current release. -// SetAppName(SLIC3R_APP_KEY); + SetAppName(SLIC3R_APP_KEY); // SetAppName(SLIC3R_APP_KEY "-alpha"); - SetAppName(SLIC3R_APP_KEY "-beta"); +// SetAppName(SLIC3R_APP_KEY "-beta"); // SetAppDisplayName(SLIC3R_APP_NAME); diff --git a/version.inc b/version.inc index 29862a3403..10f65c0d31 100644 --- a/version.inc +++ b/version.inc @@ -3,7 +3,7 @@ set(SLIC3R_APP_NAME "PrusaSlicer") set(SLIC3R_APP_KEY "PrusaSlicer") -set(SLIC3R_VERSION "2.5.0-beta1") +set(SLIC3R_VERSION "2.5.0-rc1") set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN") set(SLIC3R_RC_VERSION "2,5,0,0") set(SLIC3R_RC_VERSION_DOTS "2.5.0.0") From 025b249b856ef1f86b2b2b1419cdf11304f95069 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 22 Aug 2022 12:40:50 +0200 Subject: [PATCH 16/32] Localization: Update for zh_CN dictionary (manual merge for PR #8737 - Update translation for 2.5.0-rc1) + Fixed 1 line for JA dictionary --- resources/localization/ja/PrusaSlicer.mo | Bin 543567 -> 543568 bytes resources/localization/ja/PrusaSlicer_ja.po | 2 +- resources/localization/zh_CN/PrusaSlicer.mo | Bin 449547 -> 451048 bytes .../localization/zh_CN/PrusaSlicer_zh_CN.po | 13 ++++++++++--- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/resources/localization/ja/PrusaSlicer.mo b/resources/localization/ja/PrusaSlicer.mo index 32ad190b9af236dbae547d4aa069ace328b552ce..bca1e1cd07eafe08d1d9344b7d756a9bea2bb649 100644 GIT binary patch delta 13577 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 A>;M1& delta 97313 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 Date: Tue, 23 Aug 2022 17:10:35 +0200 Subject: [PATCH 17/32] Creality.ini: Ender-3 S1 (Pro) CR Touch support (#8743) --- resources/profiles/Creality.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 292b99d70f..0b47b41f63 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -1312,7 +1312,7 @@ inherits = *ENDER3V2NEO*; *0.6nozzle* [printer:*ENDER3S1*] -inherits = *common*; *bowden*; *spriteextruder*; *pauseprint* +inherits = *common*; *bowden*; *fastabl*; *spriteextruder*; *pauseprint* bed_shape = 5x0,215x0,215x220,5x220 max_print_height = 270 printer_model = ENDER3S1 @@ -1334,7 +1334,7 @@ inherits = *ENDER3S1*; *0.6nozzle* [printer:*ENDER3S1PRO*] -inherits = *common*; *bowden*; *spriteextruder*; *pauseprint* +inherits = *common*; *bowden*; *fastabl*; *spriteextruder*; *pauseprint* bed_shape = 5x0,215x0,215x220,5x220 max_print_height = 270 printer_model = ENDER3S1PRO From 57945708d9efafacd5018fbbabebba8852f486ea Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Tue, 23 Aug 2022 17:17:35 +0200 Subject: [PATCH 18/32] Creality.ini: add Ender-3 S1 Plus --- resources/profiles/Creality.ini | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 0b47b41f63..7eefa05830 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -77,6 +77,15 @@ bed_model = ender3v2_bed.stl bed_texture = ender3v2.svg default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY +[printer_model:ENDER3S1PLUS] +name = Creality Ender-3 S1 Plus +variants = 0.4; 0.3; 0.5; 0.6 +technology = FFF +family = ENDER +bed_model = cr10v2_bed.stl +bed_texture = cr10spro.svg +default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY + [printer_model:ENDER3MAX] name = Creality Ender-3 Max variants = 0.4; 0.3; 0.5; 0.6 @@ -1355,6 +1364,26 @@ inherits = *ENDER3S1PRO*; *0.6nozzle* +[printer:*ENDER3S1PLUS*] +inherits = *common*; *slowabl*; *spriteextruder*; *pauseprint* +bed_shape = 5x5,295x5,295x295,5x295 +max_print_height = 300 +printer_model = ENDER3S1PLUS +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER3S1PLUS + +[printer:Creality Ender-3 S1 Plus (0.3 mm nozzle)] +inherits = *ENDER3S1PLUS*; *0.3nozzle* + +[printer:Creality Ender-3 S1 Plus (0.4 mm nozzle)] +inherits = *ENDER3S1PLUS*; *0.4nozzle* + +[printer:Creality Ender-3 S1 Plus (0.5 mm nozzle)] +inherits = *ENDER3S1PLUS*; *0.5nozzle* + +[printer:Creality Ender-3 S1 Plus (0.6 mm nozzle)] +inherits = *ENDER3S1PLUS*; *0.6nozzle* + + [printer:*ENDER3MAX*] inherits = *common*; *bowdenlong*; *pauseprint* From 201a359bea2b27ec7413be29643f7cf835facc0c Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Tue, 23 Aug 2022 17:19:21 +0200 Subject: [PATCH 19/32] Creality.ini: remove bowden inherit from direct drive printers --- resources/profiles/Creality.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 7eefa05830..4824293a3f 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -1321,7 +1321,7 @@ inherits = *ENDER3V2NEO*; *0.6nozzle* [printer:*ENDER3S1*] -inherits = *common*; *bowden*; *fastabl*; *spriteextruder*; *pauseprint* +inherits = *common*; *fastabl*; *spriteextruder*; *pauseprint* bed_shape = 5x0,215x0,215x220,5x220 max_print_height = 270 printer_model = ENDER3S1 @@ -1343,7 +1343,7 @@ inherits = *ENDER3S1*; *0.6nozzle* [printer:*ENDER3S1PRO*] -inherits = *common*; *bowden*; *fastabl*; *spriteextruder*; *pauseprint* +inherits = *common*; *fastabl*; *spriteextruder*; *pauseprint* bed_shape = 5x0,215x0,215x220,5x220 max_print_height = 270 printer_model = ENDER3S1PRO @@ -1698,7 +1698,7 @@ inherits = *CR10SMART*; *0.6nozzle* [printer:*CR10SMARTPRO*] -inherits = *common*; *bowdenlong*; *slowabl*; *spriteextruder* +inherits = *common*; *slowabl*; *spriteextruder* bed_shape = 5x5,295x5,295x295,5x295 max_print_height = 400 printer_model = CR10SMARTPRO From b7315aa9f4a23a95aa9ff3488a9728aafdf971fd Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Tue, 23 Aug 2022 17:43:41 +0200 Subject: [PATCH 20/32] Creality.ini: restore first_layer/top_infill_extrusion_widths --- resources/profiles/Creality.ini | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 4824293a3f..8217ba2977 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -540,11 +540,11 @@ support_material_spacing = 1 first_layer_height = 0.2 extrusion_width = 0.33 external_perimeter_extrusion_width = 0.31 -first_layer_extrusion_width = 0.33 +first_layer_extrusion_width = 0.31 infill_extrusion_width = 0.33 perimeter_extrusion_width = 0.33 solid_infill_extrusion_width = 0.33 -top_infill_extrusion_width = 0.33 +top_infill_extrusion_width = 0.30 support_material_extrusion_width = 0.27 [print:*0.4nozzle*] @@ -554,11 +554,11 @@ support_material_spacing = 1 first_layer_height = 0.2 extrusion_width = 0.44 external_perimeter_extrusion_width = 0.42 -first_layer_extrusion_width = 0.44 +first_layer_extrusion_width = 0.42 infill_extrusion_width = 0.44 perimeter_extrusion_width = 0.44 solid_infill_extrusion_width = 0.44 -top_infill_extrusion_width = 0.44 +top_infill_extrusion_width = 0.40 support_material_extrusion_width = 0.36 [print:*0.5nozzle*] @@ -568,11 +568,11 @@ support_material_spacing = 1.1 first_layer_height = 0.2 extrusion_width = 0.55 external_perimeter_extrusion_width = 0.52 -first_layer_extrusion_width = 0.55 +first_layer_extrusion_width = 0.52 infill_extrusion_width = 0.55 perimeter_extrusion_width = 0.55 solid_infill_extrusion_width = 0.55 -top_infill_extrusion_width = 0.55 +top_infill_extrusion_width = 0.50 support_material_extrusion_width = 0.45 [print:*0.6nozzle*] @@ -582,11 +582,11 @@ support_material_spacing = 1.2 first_layer_height = 0.3 extrusion_width = 0.66 external_perimeter_extrusion_width = 0.63 -first_layer_extrusion_width = 0.66 +first_layer_extrusion_width = 0.63 infill_extrusion_width = 0.66 perimeter_extrusion_width = 0.66 solid_infill_extrusion_width = 0.66 -top_infill_extrusion_width = 0.66 +top_infill_extrusion_width = 0.60 support_material_extrusion_width = 0.54 From 5d724b38496817db8e6d092c397443937c9641b1 Mon Sep 17 00:00:00 2001 From: Pascal de Bruijn Date: Tue, 23 Aug 2022 18:23:58 +0200 Subject: [PATCH 21/32] Creality.ini: add Ender-3 Neo --- resources/profiles/Creality.ini | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 8217ba2977..69b7b22c54 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -41,6 +41,15 @@ bed_model = ender3_bed.stl bed_texture = ender3.svg default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY +[printer_model:ENDER3NEO] +name = Creality Ender-3 Neo +variants = 0.4; 0.3; 0.5; 0.6 +technology = FFF +family = ENDER +bed_model = ender3_bed.stl +bed_texture = ender3.svg +default_materials = Generic PLA @CREALITY; Generic PETG @CREALITY; Generic ABS @CREALITY; Creality PLA @CREALITY; Prusament PLA @CREALITY; Prusament PETG @CREALITY; AzureFilm PLA @CREALITY; Devil Design PLA @CREALITY; Devil Design PLA Matt @CREALITY; Devil Design PLA Galaxy @CREALITY; Extrudr PLA NX2 @CREALITY; Real Filament PLA @CREALITY; Velleman PLA @CREALITY; 3DJAKE ecoPLA @CREALITY; 3DJAKE ecoPLA Matt @CREALITY; 3DJAKE ecoPLA Tough @CREALITY; 123-3D Jupiter PLA @CREALITY; Verbatim PLA @CREALITY + [printer_model:ENDER3V2] name = Creality Ender-3 V2 variants = 0.4; 0.3; 0.5; 0.6 @@ -1277,6 +1286,25 @@ inherits = *ENDER3PRO*; *0.6nozzle* +[printer:*ENDER3NEO*] +inherits = *ENDER3*; *fastabl* +printer_model = ENDER3NEO +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER3NEO\nPRINTER_HAS_BOWDEN + +[printer:Creality Ender-3 Neo (0.3 mm nozzle)] +inherits = *ENDER3NEO*; *0.3nozzle* + +[printer:Creality Ender-3 Neo (0.4 mm nozzle)] +inherits = *ENDER3NEO*; *0.4nozzle* + +[printer:Creality Ender-3 Neo (0.5 mm nozzle)] +inherits = *ENDER3NEO*; *0.5nozzle* + +[printer:Creality Ender-3 Neo (0.6 mm nozzle)] +inherits = *ENDER3NEO*; *0.6nozzle* + + + [printer:*ENDER3V2*] inherits = *common*; *bowden*; *pauseprint* bed_shape = 5x0,215x0,215x220,5x220 From de3720c7b1833df74a239d3f1e61b8801949b4b6 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 24 Aug 2022 09:25:11 +0200 Subject: [PATCH 22/32] Added Ender 3 Neo and Ender 3 S1 Plus thumbnails https://github.com/prusa3d/PrusaSlicer/pull/8746 --- .../profiles/Creality/ENDER3NEO_thumbnail.png | Bin 0 -> 35265 bytes .../Creality/ENDER3S1PLUS_thumbnail.png | Bin 0 -> 29792 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 resources/profiles/Creality/ENDER3NEO_thumbnail.png create mode 100644 resources/profiles/Creality/ENDER3S1PLUS_thumbnail.png diff --git a/resources/profiles/Creality/ENDER3NEO_thumbnail.png b/resources/profiles/Creality/ENDER3NEO_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..809e186d5b85ab86c5f45c7792b5854846acbdfd GIT binary patch literal 35265 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/ENDER3S1PLUS_thumbnail.png b/resources/profiles/Creality/ENDER3S1PLUS_thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..ae7024f84223c64045a0ff252d7667ba7ebf9445 GIT binary patch literal 29792 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 literal 0 HcmV?d00001 From 106bf141af841b21f209d202d55c20657aea6f6b Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 24 Aug 2022 09:26:12 +0200 Subject: [PATCH 23/32] Bumped up bundle version --- resources/profiles/Creality.idx | 1 + resources/profiles/Creality.ini | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/profiles/Creality.idx b/resources/profiles/Creality.idx index 00db32f4fe..471ca8c560 100644 --- a/resources/profiles/Creality.idx +++ b/resources/profiles/Creality.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.5.0-alpha0 +0.2.1 Added Ender 3 Neo and Ender 3 S1 Plus. Various updates. 0.2.0 Added alternative nozzle support 0.1.5 Added Ender-3 S1 Pro min_slic3r_version = 2.4.1 diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index 69b7b22c54..82c1c0bd64 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -5,7 +5,7 @@ name = Creality # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.2.0 +config_version = 0.2.1 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% From 9e88954fbc3a2af1d424749e8069227a857c3c7e Mon Sep 17 00:00:00 2001 From: PavelMikus Date: Wed, 24 Aug 2022 11:36:41 +0200 Subject: [PATCH 24/32] Fix of issue 8695 - seam enforced areas were not respected with arachne generator. The real issue was with T-Junctions created by Arachne - seam placer then sometimes choose the wrong perimeter to split. The fix cases the seam placer to look for two consecutive points that point to the same perimeter, which enusres that the correct loop is split --- src/libslic3r/GCode/SeamPlacer.cpp | 38 ++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index 6096d60754..6139738755 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -1551,16 +1551,40 @@ void SeamPlacer::place_seam(const Layer *layer, ExtrusionLoop &loop, bool extern const size_t layer_index = layer->id() - po->slicing_parameters().raft_layers(); const double unscaled_z = layer->slice_z; + auto get_next_loop_point = [loop](ExtrusionLoop::ClosestPathPoint current) { + current.segment_idx += 1; + if (current.segment_idx >= loop.paths[current.path_idx].polyline.points.size()) { + current.path_idx = next_idx_modulo(current.path_idx, loop.paths.size()); + current.segment_idx = 0; + } + current.foot_pt = loop.paths[current.path_idx].polyline.points[current.segment_idx]; + return current; + }; + const PrintObjectSeamData::LayerSeams &layer_perimeters = m_seam_per_object.find(layer->object())->second.layers[layer_index]; - // Find the closest perimeter in the SeamPlacer to the first point of this loop. - size_t closest_perimeter_point_index; - { - const Point &fp = loop.first_point(); - Vec2f unscaled_p = unscaled(fp); - closest_perimeter_point_index = find_closest_point(*layer_perimeters.points_tree.get(), - to_3d(unscaled_p, float(unscaled_z))); + // Find the closest perimeter in the SeamPlacer to this loop. + // Repeat search until two consecutive points of the loop are found, that result in the same closest_perimeter + // This is beacuse with arachne, T-Junctions may exist and sometimes the wrong perimeter was chosen + size_t closest_perimeter_point_index = 0; + { // local space for the closest_perimeter_point_index + Perimeter *closest_perimeter = nullptr; + ExtrusionLoop::ClosestPathPoint closest_point{0,0,loop.paths[0].polyline.points[0]}; + size_t points_count = std::accumulate(loop.paths.begin(), loop.paths.end(), 0, [](size_t acc,const ExtrusionPath& p) { + return acc + p.polyline.points.size(); + }); + for (size_t _ = 0; _ < points_count; ++_) { + Vec2f unscaled_p = unscaled(closest_point.foot_pt); + closest_perimeter_point_index = find_closest_point(*layer_perimeters.points_tree.get(), + to_3d(unscaled_p, float(unscaled_z))); + if (closest_perimeter != &layer_perimeters.points[closest_perimeter_point_index].perimeter) { + closest_perimeter = &layer_perimeters.points[closest_perimeter_point_index].perimeter; + closest_point = get_next_loop_point(closest_point); + } else { + break; + } + } } Vec3f seam_position; From 508739a01183002a5e5da87d5fe670bba4d80c64 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Thu, 25 Aug 2022 22:45:31 +0200 Subject: [PATCH 25/32] Speed improvements, start gcode changes, added HIPS filament. https://github.com/prusa3d/PrusaSlicer/pull/8762 --- resources/profiles/gCreate.idx | 1 + resources/profiles/gCreate.ini | 31 ++++++++++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/resources/profiles/gCreate.idx b/resources/profiles/gCreate.idx index 70770916c5..ad3382435f 100644 --- a/resources/profiles/gCreate.idx +++ b/resources/profiles/gCreate.idx @@ -1,3 +1,4 @@ min_slic3r_version = 2.4.0-alpha0 +1.0.1 Speed improvements, start gcode changes, added HIPS filament. 1.0.0 Initial version diff --git a/resources/profiles/gCreate.ini b/resources/profiles/gCreate.ini index 61d6047ce8..39cd17edcc 100644 --- a/resources/profiles/gCreate.ini +++ b/resources/profiles/gCreate.ini @@ -1,14 +1,14 @@ # Print profiles for the gCreate printers. # -# GTL Modified 210706 (at gCreate Shop) -# +# GTL Modified 220825 (at gCreate Shop) +# Speed improvements, start/end gCode changes [vendor] # Vendor name will be shown by the Config Wizard. name = gCreate # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.0.0 +config_version = 1.0.1 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/gCreate/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -548,6 +548,7 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_GCREATE.*/ # Common filament preset across all PLA filaments [filament:*PLA*] inherits = *common* +extrusion_multiplier = 0.94 bed_temperature = 60 fan_below_layer_time = 15 filament_colour = #FF3232 @@ -749,11 +750,20 @@ filament_vendor = ProtoPasta temperature = 250 bed_temperature = 70 +[filament:Generic HIPS @GCREATE] +inherits = *PET* +filament_vendor = Generic +filament_density = 1.04 +temperature = 230 +first_layer_temperature = 235 +bed_temperature = 100 +first_layer_bed_temperature = 100 +filament_type = HIPS + [filament:Generic TPU 90A @GCREATE] inherits = *TPU90A* filament_vendor = Generic - [filament:Generic CF PETG @GCREATE] inherits = *CFPETG* filament_vendor = Generic @@ -770,8 +780,6 @@ filament_vendor = Generic inherits = *WOODFILLPLA* filament_vendor = ColorFabb - - [filament:Generic PVA @GCREATE - PLA and PVA Support] bed_temperature = 0 bridge_fan_speed = 75 @@ -830,8 +838,8 @@ machine_max_feedrate_x = 500 machine_max_feedrate_y = 500 machine_max_feedrate_z = 10 machine_max_jerk_e = 2.5 -machine_max_jerk_x = 3 -machine_max_jerk_y = 3 +machine_max_jerk_x = 10 +machine_max_jerk_y = 10 machine_max_jerk_z = 0.4 machine_min_extruding_rate = 0 machine_min_travel_rate = 0 @@ -893,7 +901,7 @@ retract_speed = 70 deretract_speed = 40 retract_before_wipe = 70% default_print_profile = 0.20mm - Standard Layers @GCREATE -start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 ; home all\nG92 E0.0 +start_gcode = M420 Z20\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 ; home all\nG92 E0.0 end_gcode = M104 S0 T0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+5, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F3000 ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+min(layer_z+70, max_print_height-10)} F600{endif} ; Move print head up\nM84 X Y E ; disable motors #[printer:*abl*] @@ -906,6 +914,7 @@ printer_model = GMAX2PRO max_layer_height = 0.7 min_layer_height = 0.08 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_GCREATE\nPRINTER_MODEL_GMAX2PRO +start_gcode = G90\nG28\nM420 Z20\nG1 Z5 F5000 bed_shape = 0x0,457x0,457x457,0x457 max_print_height = 610 @@ -929,7 +938,7 @@ printer_model = GMAX2DUAL2IN1 max_layer_height = 0.7 min_layer_height = 0.08 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_GCREATE\nPRINTER_MODEL_GMAX2DUAL2IN1 -start_gcode = G90 ;\n G28 ;\n G1 Z5 F5000 +start_gcode = G90\nG28\nM420 Z20\nG1 Z5 F5000 bed_shape = 0x0,457x0,457x457,0x457 max_print_height = 610 default_print_profile = 0.20mm - Standard Layers @GCREATE @@ -951,7 +960,7 @@ printer_model = GMAX2DUAL max_layer_height = 0.7 min_layer_height = 0.08 printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_GCREATE\nPRINTER_MODEL_GMAX2DUAL -start_gcode = G90\nG28\nG1 Z5 F5000\nM218 T1 X20 Y0 ; Set second extruder offset +start_gcode = G90\nG28\nM420 Z20\nG1 Z5 F5000\nM218 T1 X20 Y0 ; Set second extruder offset end_gcode = M104 S0 T0 ; turn off temperature\nM104 S0 T1 ; turn off 2nd extruder\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+5, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F3000 ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+min(layer_z+70, max_print_height-10)} F600{endif} ; Move print head up\nM84 X Y E ; disable motors bed_shape = 0x0,457x0,457x457,0x457 max_print_height = 610 From d53b0f8b3bd96fd0ba9a4ff63fd1edaef7199709 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Fri, 26 Aug 2022 11:12:36 +0200 Subject: [PATCH 26/32] Sync with PrusaSlicer-settings --- resources/profiles/PrusaResearch.idx | 1 + resources/profiles/PrusaResearch.ini | 36 ++++++++++++++++++---------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index d551d750c9..38894dbebc 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.5.0-alpha0 +1.5.1 Renamed filament type "NYLON" to "PA". Updated Adura X profile. Updated PETG fan settings for Prusa MINI (removed fan ramp up). 1.5.0 Updated arachne parameters. Added profiles for Jessie filaments. 1.5.0-alpha1 Added filament profile for Prusament PA11 Carbon Fiber. Added profiles for multiple 3D-Fuel filaments. 1.5.0-alpha0 Added parameters for Arachne perimeter generator. Changed default seam position. Updated output filename format. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index c33f23f352..17d8486c79 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.5.0 +config_version = 1.5.1 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/ changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -1609,6 +1609,7 @@ filament_retract_lift = 0.2 compatible_printers_condition = printer_model=="MK2SMM" [filament:*PETMINI*] +full_fan_speed_layer = 0 filament_retract_length = nil filament_retract_speed = 45 filament_deretract_speed = 25 @@ -1619,6 +1620,7 @@ compatible_printers_condition = printer_model=="MINI" start_filament_gcode = "M900 K{if nozzle_diameter[0]==0.6}0.12{elsif nozzle_diameter[0]==0.8}0.06{else}0.2{endif} ; Filament gcode" [filament:*PETMINI06*] +full_fan_speed_layer = 0 filament_retract_length = nil filament_retract_speed = 45 filament_deretract_speed = 25 @@ -2047,7 +2049,7 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and no inherits = Prusament PC Blend Carbon Fiber filament_cost = 151.24 filament_density = 1.11 -filament_type = NYLON +filament_type = PA filament_max_volumetric_speed = 6.5 extrusion_multiplier = 1.05 first_layer_temperature = 275 @@ -2384,10 +2386,10 @@ inherits = *PET* filament_vendor = addnorth filament_cost = 29.99 filament_density = 1.27 -filament_type = NYLON +filament_type = PA extrusion_multiplier = 0.98 -bed_temperature = 60 -first_layer_bed_temperature = 60 +bed_temperature = 115 +first_layer_bed_temperature = 105 first_layer_temperature = 265 temperature = 270 fan_always_on = 0 @@ -2404,7 +2406,7 @@ filament_retract_lift = 0.4 filament_max_volumetric_speed = 4 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.02{elsif nozzle_diameter[0]==0.6}0.04{else}0.08{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K24{elsif nozzle_diameter[0]==0.8};{else}M900 K45{endif} ; Filament gcode LA 1.0" filament_spool_weight = 0 -compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) +compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and nozzle_diameter[0]>=0.4 and printer_model!="MINI" and printer_model!="MK2SMM" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) [filament:addnorth Adura X @MINI] inherits = addnorth Adura X @@ -2412,14 +2414,24 @@ filament_retract_length = nil filament_retract_lift = nil filament_retract_speed = 40 filament_deretract_speed = 25 +bed_temperature = 60 +first_layer_bed_temperature = 60 compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MINI" [filament:addnorth Adura X @MMU1] inherits = addnorth Adura X filament_retract_length = nil filament_retract_lift = nil +bed_temperature = 60 +first_layer_bed_temperature = 60 compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_model=="MK2SMM" +[filament:addnorth Adura X @MK2] +inherits = addnorth Adura X +bed_temperature = 110 +first_layer_bed_temperature = 105 +compatible_printers_condition = nozzle_diameter[0]>=0.4 and printer_notes=~/.*PRINTER_MODEL_MK(2|2.5).*/ and ! (printer_notes=~/.*PRINTER_MODEL_MK2.5.*/ and single_extruder_multi_material) + [filament:addnorth E-PLA] inherits = *PLA* filament_vendor = addnorth @@ -3018,7 +3030,7 @@ bed_temperature = 115 fan_always_on = 0 cooling = 0 bridge_fan_speed = 25 -filament_type = NYLON +filament_type = PA filament_max_volumetric_speed = 8 compatible_printers_condition = printer_notes!~/.*PRINTER_MODEL_MK(2|2.5).*/ and printer_model!="MINI" and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK(2.5|3).*/ and single_extruder_multi_material) @@ -4162,7 +4174,7 @@ filament_cost = 27.65 [filament:Fiberlogy Nylon PA12] inherits = Fiberlogy ASA -filament_type = NYLON +filament_type = PA filament_density = 1.01 filament_cost = 48 first_layer_bed_temperature = 105 @@ -4404,7 +4416,7 @@ fan_below_layer_time = 20 filament_colour = #DEE0E6 filament_max_volumetric_speed = 7 filament_soluble = 0 -filament_type = NYLON +filament_type = PA first_layer_bed_temperature = 90 first_layer_temperature = 260 temperature = 260 @@ -4438,7 +4450,7 @@ slowdown_below_layer_time = 20 filament_colour = #DEE0E6 filament_max_volumetric_speed = 6 filament_soluble = 0 -filament_type = NYLON +filament_type = PA first_layer_bed_temperature = 90 first_layer_temperature = 250 max_fan_speed = 0 @@ -4465,7 +4477,7 @@ slowdown_below_layer_time = 10 filament_colour = #DEE0E6 filament_max_volumetric_speed = 5 filament_soluble = 0 -filament_type = NYLON +filament_type = PA max_fan_speed = 20 min_fan_speed = 20 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.04{else}0.05{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K18{elsif nozzle_diameter[0]==0.8};{else}M900 K30{endif} ; Filament gcode LA 1.0" @@ -4495,7 +4507,7 @@ slowdown_below_layer_time = 10 filament_colour = #DEE0E6 filament_max_volumetric_speed = 5 filament_soluble = 0 -filament_type = NYLON +filament_type = PA max_fan_speed = 0 min_fan_speed = 0 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.6}0.12{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/ and nozzle_diameter[0]==0.8}0.06{elsif printer_notes=~/.*PRINTER_MODEL_MINI.*/}0.2{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.6}0.04{else}0.05{endif} ; Filament gcode LA 1.5\n{if printer_notes=~/.*PRINTER_MODEL_MINI.*/};{elsif printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}M900 K200{elsif nozzle_diameter[0]==0.6}M900 K18{elsif nozzle_diameter[0]==0.8};{else}M900 K30{endif} ; Filament gcode LA 1.0" From c74f16d7c72418cb4126bc17e5c129c6c0220269 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Mon, 29 Aug 2022 17:39:33 +0200 Subject: [PATCH 27/32] Added filament type "PA" to the list of known filament types. While we already had "NYLON" in the list, "PA" code is promoted by Prusa Filament company. --- src/libslic3r/PrintConfig.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 579f1aebb5..2dfd85d4f8 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1042,6 +1042,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("HIPS"); def->enum_values.push_back("EDGE"); def->enum_values.push_back("NGEN"); + def->enum_values.push_back("PA"); def->enum_values.push_back("NYLON"); def->enum_values.push_back("PVA"); def->enum_values.push_back("PC"); From de48bcd1b2b8c479f2c2000258a9cf72c5f48829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 29 Aug 2022 15:58:57 +0200 Subject: [PATCH 28/32] Fix of #8724, #8747, and #8753: Crash when Voronoi vertexes of a finite edge have some coordinate NaN or infinite. --- .../Arachne/SkeletalTrapezoidation.cpp | 18 +++++++++++++++++- src/libslic3r/Arachne/utils/VoronoiUtils.cpp | 1 + src/libslic3r/Arachne/utils/VoronoiUtils.hpp | 5 +++++ src/libslic3r/Geometry/VoronoiUtilsCgal.cpp | 7 +++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp index d78ce06d19..c7014aa013 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp @@ -451,8 +451,23 @@ SkeletalTrapezoidation::SkeletalTrapezoidation(const Polygons& polys, const Bead constructFromPolygons(polys); } +static bool has_finite_edge_with_non_finite_vertex(const Geometry::VoronoiDiagram &voronoi_diagram) +{ + for (const VoronoiUtils::vd_t::edge_type &edge : voronoi_diagram.edges()) { + if (edge.is_finite()) { + assert(edge.vertex0() != nullptr && edge.vertex1() != nullptr); + if (edge.vertex0() == nullptr || edge.vertex1() == nullptr || !VoronoiUtils::is_finite(*edge.vertex0()) || + !VoronoiUtils::is_finite(*edge.vertex1())) + return true; + } + } + return false; +} static bool detect_missing_voronoi_vertex(const Geometry::VoronoiDiagram &voronoi_diagram, const std::vector &segments) { + if (has_finite_edge_with_non_finite_vertex(voronoi_diagram)) + return true; + for (VoronoiUtils::vd_t::cell_type cell : voronoi_diagram.cells()) { if (!cell.incident_edge()) continue; // There is no spoon @@ -471,7 +486,8 @@ static bool detect_missing_voronoi_vertex(const Geometry::VoronoiDiagram &vorono VoronoiUtils::vd_t::edge_type *ending_vd_edge = nullptr; VoronoiUtils::vd_t::edge_type *edge = cell.incident_edge(); do { - if (edge->is_infinite()) continue; + if (edge->is_infinite() || edge->vertex0() == nullptr || edge->vertex1() == nullptr || !VoronoiUtils::is_finite(*edge->vertex0()) || !VoronoiUtils::is_finite(*edge->vertex1())) + continue; Vec2i64 v0 = VoronoiUtils::p(edge->vertex0()); Vec2i64 v1 = VoronoiUtils::p(edge->vertex1()); diff --git a/src/libslic3r/Arachne/utils/VoronoiUtils.cpp b/src/libslic3r/Arachne/utils/VoronoiUtils.cpp index 3da556b470..82bd79523f 100644 --- a/src/libslic3r/Arachne/utils/VoronoiUtils.cpp +++ b/src/libslic3r/Arachne/utils/VoronoiUtils.cpp @@ -15,6 +15,7 @@ Vec2i64 VoronoiUtils::p(const vd_t::vertex_type *node) { const double x = node->x(); const double y = node->y(); + assert(std::isfinite(x) && std::isfinite(y)); assert(x <= double(std::numeric_limits::max()) && x >= std::numeric_limits::lowest()); assert(y <= double(std::numeric_limits::max()) && y >= std::numeric_limits::lowest()); return {int64_t(x + 0.5 - (x < 0)), int64_t(y + 0.5 - (y < 0))}; // Round to the nearest integer coordinates. diff --git a/src/libslic3r/Arachne/utils/VoronoiUtils.hpp b/src/libslic3r/Arachne/utils/VoronoiUtils.hpp index e736f98bcf..aa46936437 100644 --- a/src/libslic3r/Arachne/utils/VoronoiUtils.hpp +++ b/src/libslic3r/Arachne/utils/VoronoiUtils.hpp @@ -35,6 +35,11 @@ public: * The \p approximate_step_size is measured parallel to the \p source_segment, not along the parabola. */ static std::vector discretizeParabola(const Point &source_point, const Segment &source_segment, Point start, Point end, coord_t approximate_step_size, float transitioning_angle); + + static inline bool is_finite(const VoronoiUtils::vd_t::vertex_type &vertex) + { + return std::isfinite(vertex.x()) && std::isfinite(vertex.y()); + } }; } // namespace Slic3r::Arachne diff --git a/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp b/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp index caaf1ee9c5..062a3b3979 100644 --- a/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp +++ b/src/libslic3r/Geometry/VoronoiUtilsCgal.cpp @@ -3,6 +3,7 @@ #include #include "libslic3r/Geometry/Voronoi.hpp" +#include "libslic3r/Arachne/utils/VoronoiUtils.hpp" #include "VoronoiUtilsCgal.hpp" @@ -28,7 +29,8 @@ bool VoronoiUtilsCgal::is_voronoi_diagram_planar_intersection(const VD &voronoi_ if (edge.color() != 0) continue; - if (edge.is_finite() && edge.is_linear()) { + if (edge.is_finite() && edge.is_linear() && edge.vertex0() != nullptr && edge.vertex1() != nullptr && + Arachne::VoronoiUtils::is_finite(*edge.vertex0()) && Arachne::VoronoiUtils::is_finite(*edge.vertex1())) { segments.emplace_back(to_cgal_point(*edge.vertex0()), to_cgal_point(*edge.vertex1())); edge.color(1); assert(edge.twin() != nullptr); @@ -73,7 +75,8 @@ bool VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(const VoronoiDiagram &vor do { // FIXME Lukas H.: Also process parabolic segments. - if (edge->is_finite() && edge->is_linear()) + if (edge->is_finite() && edge->is_linear() && edge->vertex0() != nullptr && edge->vertex1() != nullptr && + Arachne::VoronoiUtils::is_finite(*edge->vertex0()) && Arachne::VoronoiUtils::is_finite(*edge->vertex1())) edges.emplace_back(edge); edge = edge->rot_next(); From 87a51165f321f0f4853ed5d6f76108e0073c12ba Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 30 Aug 2022 10:50:19 +0200 Subject: [PATCH 29/32] Fix of #8766: PP scripts not working on UNIX when $SHELL is undefined: thanks @jfbauer432 for pointing the problem out. --- src/libslic3r/GCode/PostProcessor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/PostProcessor.cpp b/src/libslic3r/GCode/PostProcessor.cpp index ced74e3ebd..de1807dbb8 100644 --- a/src/libslic3r/GCode/PostProcessor.cpp +++ b/src/libslic3r/GCode/PostProcessor.cpp @@ -153,7 +153,7 @@ static int run_script(const std::string &script, const std::string &gcode, std:: { // Try to obtain user's default shell const char *shell = ::getenv("SHELL"); - if (shell == nullptr) { shell = "sh"; } + if (shell == nullptr) { shell = "/bin/sh"; } // Quote and escape the gcode path argument std::string command { script }; From b878b3a80f01df5bd271361c0f02ea5346eb47af Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 30 Aug 2022 11:14:41 +0200 Subject: [PATCH 30/32] Follow-up to 9e88954 (avoid unnecessary copy) --- src/libslic3r/GCode/SeamPlacer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index 6139738755..89c47fbb23 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -1551,7 +1551,7 @@ void SeamPlacer::place_seam(const Layer *layer, ExtrusionLoop &loop, bool extern const size_t layer_index = layer->id() - po->slicing_parameters().raft_layers(); const double unscaled_z = layer->slice_z; - auto get_next_loop_point = [loop](ExtrusionLoop::ClosestPathPoint current) { + auto get_next_loop_point = [&loop](ExtrusionLoop::ClosestPathPoint current) { current.segment_idx += 1; if (current.segment_idx >= loop.paths[current.path_idx].polyline.points.size()) { current.path_idx = next_idx_modulo(current.path_idx, loop.paths.size()); From 614cd7081d4a33104272eb64d8f50939844ecbbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Tue, 30 Aug 2022 12:27:41 +0200 Subject: [PATCH 31/32] Fix of #8778 and #8760: Artifacts on models when Arachne was used. This was caused by mistakenly swapping the key and the value in a vertex map. --- .../Arachne/SkeletalTrapezoidation.cpp | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp index c7014aa013..04dede5469 100644 --- a/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp +++ b/src/libslic3r/Arachne/SkeletalTrapezoidation.cpp @@ -525,29 +525,36 @@ static bool has_missing_twin_edge(const SkeletalTrapezoidationGraph &graph) inline static std::unordered_map try_to_fix_degenerated_voronoi_diagram_by_rotation( Geometry::VoronoiDiagram &voronoi_diagram, const Polygons &polys, - Polygons &polys_copy, + Polygons &polys_rotated, std::vector &segments, const double fix_angle) { std::unordered_map vertex_mapping; - for (Polygon &poly : polys_copy) + for (Polygon &poly : polys_rotated) poly.rotate(fix_angle); - assert(polys_copy.size() == polys.size()); + assert(polys_rotated.size() == polys.size()); for (size_t poly_idx = 0; poly_idx < polys.size(); ++poly_idx) { - assert(polys_copy[poly_idx].size() == polys[poly_idx].size()); + assert(polys_rotated[poly_idx].size() == polys[poly_idx].size()); for (size_t point_idx = 0; point_idx < polys[poly_idx].size(); ++point_idx) - vertex_mapping.insert({polys[poly_idx][point_idx], polys_copy[poly_idx][point_idx]}); + vertex_mapping.insert({polys_rotated[poly_idx][point_idx], polys[poly_idx][point_idx]}); } segments.clear(); - for (size_t poly_idx = 0; poly_idx < polys_copy.size(); poly_idx++) - for (size_t point_idx = 0; point_idx < polys_copy[poly_idx].size(); point_idx++) - segments.emplace_back(&polys_copy, poly_idx, point_idx); + for (size_t poly_idx = 0; poly_idx < polys_rotated.size(); poly_idx++) + for (size_t point_idx = 0; point_idx < polys_rotated[poly_idx].size(); point_idx++) + segments.emplace_back(&polys_rotated, poly_idx, point_idx); voronoi_diagram.clear(); construct_voronoi(segments.begin(), segments.end(), &voronoi_diagram); +#ifdef ARACHNE_DEBUG_VORONOI + { + static int iRun = 0; + dump_voronoi_to_svg(debug_out_path("arachne_voronoi-diagram-rotated-%d.svg", iRun++).c_str(), voronoi_diagram, to_points(polys), to_lines(polys)); + } +#endif + assert(Geometry::VoronoiUtilsCgal::is_voronoi_diagram_planar_intersection(voronoi_diagram)); return vertex_mapping; @@ -607,10 +614,6 @@ void SkeletalTrapezoidation::constructFromPolygons(const Polygons& polys) } #endif -#ifdef ARACHNE_DEBUG - assert(Geometry::VoronoiUtilsCgal::is_voronoi_diagram_planar_intersection(voronoi_diagram)); -#endif - // Try to detect cases when some Voronoi vertex is missing and when // the Voronoi diagram is not planar. // When any Voronoi vertex is missing, or the Voronoi diagram is not @@ -731,6 +734,10 @@ process_voronoi_diagram: if (degenerated_voronoi_diagram) rotate_back_skeletal_trapezoidation_graph_after_fix(this->graph, fix_angle, vertex_mapping); +#ifdef ARACHNE_DEBUG + assert(Geometry::VoronoiUtilsCgal::is_voronoi_diagram_planar_intersection(voronoi_diagram)); +#endif + separatePointyQuadEndNodes(); graph.collapseSmallEdges(); From d0f0165f946dda4ee3e0ab4b033359534ab7b58a Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 30 Aug 2022 15:41:58 +0200 Subject: [PATCH 32/32] Bumped up version to 2.5.0-rc2 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 10f65c0d31..f9515713e9 100644 --- a/version.inc +++ b/version.inc @@ -3,7 +3,7 @@ set(SLIC3R_APP_NAME "PrusaSlicer") set(SLIC3R_APP_KEY "PrusaSlicer") -set(SLIC3R_VERSION "2.5.0-rc1") +set(SLIC3R_VERSION "2.5.0-rc2") set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN") set(SLIC3R_RC_VERSION "2,5,0,0") set(SLIC3R_RC_VERSION_DOTS "2.5.0.0")