diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b8477e12c6..c21e7778ca 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -8,7 +8,7 @@ body: **Thank you for using Orca Slicer and wanting to report a bug.** Please note that this is not the place to make feature requests or ask for help. - For this, please use the [Feature request](https://github.com/SoftFever/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others. + For this, please use the [Feature request](https://github.com/OrcaSlicer/OrcaSlicer/issues/new?assignees=&labels=&projects=&template=feature_request.yml) issue type or you can discuss your idea on our [Discord server](https://discord.gg/P4VE9UY9gJ) with others. Before filing, please check if the issue already exists (either open or closed) by using the search bar on the issues page. If it does, comment there. Even if it's closed, we can reopen it based on your comment. - type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3639de151a..066570738f 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,5 +4,5 @@ contact_links: url: https://discord.gg/P4VE9UY9gJ about: Please ask and answer support "how do I?"questions here. - name: Discussion Forum - url: https://github.com/SoftFever/OrcaSlicer/discussions + url: https://github.com/OrcaSlicer/OrcaSlicer/discussions about: Please raise ideas and feature suggestions here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 4ae8a24faa..8494386c5c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -8,7 +8,7 @@ body: Thanks for taking the time to fill out this feature request! If your idea is still at the formulation stage, or you're not sure it would - be useful to many users, you can raise it as a discussion topic under [Ideas](https://github.com/SoftFever/OrcaSlicer/discussions/categories/ideas) + be useful to many users, you can raise it as a discussion topic under [Ideas](https://github.com/OrcaSlicer/OrcaSlicer/discussions/categories/ideas) or you can raise it on the [Discord server](https://discord.gg/P4VE9UY9gJ). - type: checkboxes attributes: diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 668a9e45e6..aa9b1585d0 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -54,7 +54,7 @@ jobs: strategy: fail-fast: false # Don't run scheduled builds on forks: - if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'SoftFever/OrcaSlicer') }} + if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} uses: ./.github/workflows/build_check_cache.yml with: os: ubuntu-24.04 @@ -70,7 +70,7 @@ jobs: - os: macos-14 arch: arm64 # Don't run scheduled builds on forks: - if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'SoftFever/OrcaSlicer') }} + if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} uses: ./.github/workflows/build_check_cache.yml with: os: ${{ matrix.os }} @@ -135,7 +135,7 @@ jobs: - arch: aarch64 runner: ubuntu-24.04-arm # Don't run scheduled builds on forks: - if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'SoftFever/OrcaSlicer') }} + if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} runs-on: ${{ matrix.variant.runner }} env: date: @@ -174,10 +174,10 @@ jobs: name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak' - name: Deploy Flatpak to nightly release - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 2bb07ee2cf..1247937b08 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -108,7 +108,7 @@ jobs: # Thanks to RaySajuuk, it's working now - name: Sign app and notary - if: github.repository == 'SoftFever/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && inputs.os == 'macos-14' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && inputs.os == 'macos-14' working-directory: ${{ github.workspace }} env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} @@ -195,10 +195,10 @@ jobs: if-no-files-found: ignore - name: Deploy Mac release - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'macos-14' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'macos-14' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg asset_name: OrcaSlicer_Mac_universal_nightly.dmg @@ -206,10 +206,10 @@ jobs: max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted - name: Deploy Mac OrcaSlicer_profile_validator DMG release - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'macos-14' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'macos-14' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg asset_name: OrcaSlicer_profile_validator_Mac_universal_nightly.dmg @@ -282,10 +282,10 @@ jobs: path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe - name: Deploy Windows release portable - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip asset_name: OrcaSlicer_Windows_nightly_portable.zip @@ -293,10 +293,10 @@ jobs: max_releases: 1 - name: Deploy Windows release installer - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_Installer_${{ env.ver }}.exe asset_name: OrcaSlicer_Windows_Installer_nightly.exe @@ -304,10 +304,10 @@ jobs: max_releases: 1 - name: Deploy Windows OrcaSlicer_profile_validator release - if: github.repository == 'SoftFever/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' + if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest' uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe asset_name: OrcaSlicer_profile_validator_Windows_nightly.exe @@ -373,19 +373,19 @@ jobs: path: './build/src/Release/OrcaSlicer_profile_validator' - name: Deploy Ubuntu release - if: ${{ github.repository == 'SoftFever/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} + if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_nightly.AppImage asset_content_type: application/octet-stream max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted - name: Deploy Ubuntu release - if: ${{ github.repository == 'SoftFever/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }} + if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }} uses: rickstaa/action-create-tag@v1 with: tag: "nightly-builds" @@ -394,12 +394,12 @@ jobs: message: "nightly-builds" - name: Deploy Ubuntu OrcaSlicer_profile_validator release - if: ${{ github.repository == 'SoftFever/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} + if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} env: ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }} uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ./build/src/Release/OrcaSlicer_profile_validator asset_name: OrcaSlicer_profile_validator_Linux${{ env.ubuntu-ver-str }}_nightly @@ -407,10 +407,10 @@ jobs: max_releases: 1 - name: Deploy orca_custom_preset_tests - if: ${{ github.repository == 'SoftFever/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }} + if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }} uses: WebFreak001/deploy-nightly@v3.2.0 with: - upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label} + upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} release_id: 137995723 asset_path: ${{ github.workspace }}/resources/profiles/orca_custom_preset_tests.zip asset_name: orca_custom_preset_tests.zip diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index f1d75d818f..512c08c7c8 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -42,7 +42,7 @@ jobs: - name: validate custom presets working-directory: ${{ github.workspace }} run: | - curl -LJO https://github.com/SoftFever/OrcaSlicer/releases/download/nightly-builds/orca_custom_preset_tests.zip + curl -LJO https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/orca_custom_preset_tests.zip unzip ./orca_custom_preset_tests.zip -d ${{ github.workspace }}/resources/profiles ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 diff --git a/.github/workflows/validate-documentation.yml b/.github/workflows/validate-documentation.yml index b2ce951135..d4c4cfc9c0 100644 --- a/.github/workflows/validate-documentation.yml +++ b/.github/workflows/validate-documentation.yml @@ -258,7 +258,7 @@ jobs: # Validate images Write-Host "Validating images..." -ForegroundColor Blue - $expectedUrlPattern = '^https://github\.com/SoftFever/OrcaSlicer/blob/main/([^?]+)\?raw=true$' + $expectedUrlPattern = '^https://github\.com/OrcaSlicer/OrcaSlicer/blob/main/([^?]+)\?raw=true$' foreach ($file in $mdFiles) { $lines = Get-Content $file.FullName -Encoding UTF8 @@ -300,9 +300,9 @@ jobs: } } else { $urlIssues = @() - if (-not $url.StartsWith('https://github.com/SoftFever/OrcaSlicer/blob/main/')) { $urlIssues += "URL must start with expected prefix" } + if (-not $url.StartsWith('https://github.com/OrcaSlicer/OrcaSlicer/blob/main/')) { $urlIssues += "URL must start with expected prefix" } if (-not $url.EndsWith('?raw=true')) { $urlIssues += "URL must end with '?raw=true'" } - if ($url -match '^https?://(?!github\.com/SoftFever/OrcaSlicer)') { $urlIssues += "External URLs not allowed" } + if ($url -match '^https?://(?!github\.com/OrcaSlicer/OrcaSlicer)') { $urlIssues += "External URLs not allowed" } $issueText = "[$imageType] URL format issues: " + ($urlIssues -join '; ') $brokenReferences += Add-BrokenReference $relPath ($lineNumber + 1) $imageMatch $issueText "Image" diff --git a/CMakeLists.txt b/CMakeLists.txt index 247c295899..eb4d58c513 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -930,7 +930,7 @@ set (CPACK_PACKAGE_VERSION_MINOR "${ORCA_VERSION_MINOR}") set (CPACK_PACKAGE_VERSION_PATCH "${ORCA_VERSION_PATCH}") set (CPACK_PACKAGE_FILE_NAME "OrcaSlicer_Windows_Installer_V${SoftFever_VERSION}") set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Orca Slicer is an open source slicer for FDM printers") -set (CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/SoftFever/OrcaSlicer") +set (CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/OrcaSlicer/OrcaSlicer") set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) set (CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/resources/images\\\\OrcaSlicer.ico") set (CPACK_NSIS_MUI_ICON "${CPACK_PACKAGE_ICON}") diff --git a/README.md b/README.md index 2b9f804853..30cf379a5c 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ SoftFever%2FOrcaSlicer | Trendshift -[![GitHub Repo stars](https://img.shields.io/github/stars/SoftFever/OrcaSlicer)](https://github.com/SoftFever/OrcaSlicer/stargazers) [![Build all](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml/badge.svg?branch=main)](https://github.com/SoftFever/OrcaSlicer/actions/workflows/build_all.yml) +[![GitHub Repo stars](https://img.shields.io/github/stars/OrcaSlicer/OrcaSlicer)](https://github.com/OrcaSlicer/OrcaSlicer/stargazers) [![Build all](https://github.com/OrcaSlicer/OrcaSlicer/actions/workflows/build_all.yml/badge.svg?branch=main)](https://github.com/OrcaSlicer/OrcaSlicer/actions/workflows/build_all.yml) OrcaSlicer: an open source Next-Gen Slicing Software for Precision 3D Prints. Optimize your prints with ultra-fast slicing, intelligent support generation, and seamless printer compatibility—engineered for perfection. @@ -18,7 +18,7 @@ Optimize your prints with ultra-fast slicing, intelligent support generation, an OrcaSlicer.com #### Github Repository: -GitHub Logo +GitHub Logo #### Follow us: X Logo @@ -44,27 +44,27 @@ If you come across any of these in search results, please report them as # Main features -- **[Advanced Calibration Tools](https://github.com/SoftFever/OrcaSlicer/wiki/Calibration)** +- **[Advanced Calibration Tools](https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration)** Comprehensive suite: temperature towers, flow rate, retraction & more for optimal performance. -- **[Precise Wall](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_seam)** +- **[Precise Wall](https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_precision#precise-wall) and [Seam Control](https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_seam)** Adjust outer wall spacing and apply scarf seams to enhance print accuracy. -- **[Sandwich Mode](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_wall_and_surfaces#innerouterinner) and [Polyholes](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support** - Use varied infill [patterns](https://github.com/SoftFever/OrcaSlicer/wiki/strength_settings_patterns) and accurate hole shapes for improved clarity. -- **[Overhang](https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_overhangs) and [Support Optimization](https://github.com/SoftFever/OrcaSlicer/wiki#support-settings)** +- **[Sandwich Mode](https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_wall_and_surfaces#innerouterinner) and [Polyholes](https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_precision#polyholes) Support** + Use varied infill [patterns](https://github.com/OrcaSlicer/OrcaSlicer/wiki/strength_settings_patterns) and accurate hole shapes for improved clarity. +- **[Overhang](https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_overhangs) and [Support Optimization](https://github.com/OrcaSlicer/OrcaSlicer/wiki#support-settings)** Modify geometry for printable overhangs with precise support placement. -- **[Granular Controls](https://github.com/SoftFever/OrcaSlicer/wiki#process-settings) and Customization** +- **[Granular Controls](https://github.com/OrcaSlicer/OrcaSlicer/wiki#process-settings) and Customization** Fine-tune print speed, layer height, pressure, and temperature with precision. - **Network Printer Support** Seamless integration with Klipper, PrusaLink, and OctoPrint for remote control. -- **[Mouse Ear Brims](https://github.com/SoftFever/OrcaSlicer/wiki/others_settings_brim) & Adaptive Bed Mesh** +- **[Mouse Ear Brims](https://github.com/OrcaSlicer/OrcaSlicer/wiki/others_settings_brim) & Adaptive Bed Mesh** Automatic brims and adaptive mesh calibration ensure consistent adhesion. - **User-Friendly Interface** Intuitive drag-and-drop design with pre-made profiles for popular printers. -- **[Open-Source](https://github.com/SoftFever/OrcaSlicer) & [Community Driven](https://discord.gg/P4VE9UY9gJ)** +- **[Open-Source](https://github.com/OrcaSlicer/OrcaSlicer) & [Community Driven](https://discord.gg/P4VE9UY9gJ)** Regular updates fueled by continuous community contributions. - **Wide Printer Compatibility** Supports a broad range of printers: Bambu Lab, Prusa, Creality, Voron, and more. -- Additional features can be found in the [change notes](https://github.com/SoftFever/OrcaSlicer/releases/). +- Additional features can be found in the [change notes](https://github.com/OrcaSlicer/OrcaSlicer/releases/). # Wiki @@ -72,36 +72,36 @@ The wiki below aims to provide a detailed explanation of the slicer settings, in Please note that the wiki is a work in progress. We appreciate your patience as we continue to develop and improve it! -- **[Access the wiki here](https://github.com/SoftFever/OrcaSlicer/wiki)** -- **[Contribute to the wiki](https://github.com/SoftFever/OrcaSlicer/wiki/How-to-wiki)** +- **[Access the wiki here](https://github.com/OrcaSlicer/OrcaSlicer/wiki)** +- **[Contribute to the wiki](https://github.com/OrcaSlicer/OrcaSlicer/wiki/How-to-wiki)** # Download ## Stable Release -📥 **[Download the Latest Stable Release](https://github.com/SoftFever/OrcaSlicer/releases/latest)** +📥 **[Download the Latest Stable Release](https://github.com/OrcaSlicer/OrcaSlicer/releases/latest)** Visit our GitHub Releases page for the latest stable version of OrcaSlicer, recommended for most users. ## Nightly Builds -🌙 **[Download the Latest Nightly Build](https://github.com/SoftFever/OrcaSlicer/releases/tag/nightly-builds)** +🌙 **[Download the Latest Nightly Build](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds)** Explore the latest developments in OrcaSlicer with our nightly builds. Feedback on these versions is highly appreciated. # How to install ## Windows -Download the **Windows Installer exe** for your preferred version from the [releases page](https://github.com/SoftFever/OrcaSlicer/releases). +Download the **Windows Installer exe** for your preferred version from the [releases page](https://github.com/OrcaSlicer/OrcaSlicer/releases). - *For convenience there is also a portable build available.*
Troubleshooting - *If you have troubles to run the build, you might need to install following runtimes:* - - [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/SoftFever/OrcaSlicer/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe) + - [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/OrcaSlicer/OrcaSlicer/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe) - [Details of this runtime](https://aka.ms/webview2) - [Alternative Download Link Hosted by Microsoft](https://go.microsoft.com/fwlink/p/?LinkId=2124703) - - [vcredist2019_x64](https://github.com/SoftFever/OrcaSlicer/releases/download/v1.0.10-sf2/vcredist2019_x64.exe) + - [vcredist2019_x64](https://github.com/OrcaSlicer/OrcaSlicer/releases/download/v1.0.10-sf2/vcredist2019_x64.exe) - [Alternative Download Link Hosted by Microsoft](https://aka.ms/vs/17/release/vc_redist.x64.exe) - This file may already be available on your computer if you've installed visual studio. Check the following location: `%VCINSTALLDIR%Redist\MSVC\v142`
@@ -146,7 +146,7 @@ winget install --id=SoftFever.OrcaSlicer -e # How to Compile -All updated build instructions for Windows, macOS, and Linux are now available on the official [OrcaSlicer Wiki - How to build](https://github.com/SoftFever/OrcaSlicer/wiki/How-to-build) page. +All updated build instructions for Windows, macOS, and Linux are now available on the official [OrcaSlicer Wiki - How to build](https://github.com/OrcaSlicer/OrcaSlicer/wiki/How-to-build) page. Please refer to the wiki to ensure you're following the latest and most accurate steps for your platform. diff --git a/cmake/modules/MacOSXBundleInfo.plist.in b/cmake/modules/MacOSXBundleInfo.plist.in index 2f010c8a82..15979c4822 100644 --- a/cmake/modules/MacOSXBundleInfo.plist.in +++ b/cmake/modules/MacOSXBundleInfo.plist.in @@ -133,7 +133,7 @@ ${MACOSX_BUNDLE_COPYRIGHT} NSAppTransportSecurity - + NSAllowsArbitraryLoads NSAllowsArbitraryLoadsInWebContent diff --git a/doc/Home.md b/doc/Home.md index 406420b2ea..89e8e94ad1 100644 --- a/doc/Home.md +++ b/doc/Home.md @@ -17,16 +17,16 @@ OrcaSlicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki > [!WARNING] > This wiki is community-maintained. -> Some pages may be **outdated** while others may be **newer** and present only in [nightly build](https://github.com/SoftFever/OrcaSlicer/releases/tag/nightly-builds) or [latest release](https://github.com/SoftFever/OrcaSlicer/releases). +> Some pages may be **outdated** while others may be **newer** and present only in [nightly build](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds) or [latest release](https://github.com/OrcaSlicer/OrcaSlicer/releases). > [!NOTE] > Please consider contributing to the wiki following the [How to contribute to the wiki](How-to-wiki) guide. ## Printer Settings -![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png?raw=true) +![printer-preset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png?raw=true) -![printer](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/printer.svg?raw=true) Settings related to the 3D printer hardware and its configuration. +![printer](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/printer.svg?raw=true) Settings related to the 3D printer hardware and its configuration. - [Air filtration/Exhaust fan handling](air-filtration) - [Auxiliary fan handling](Auxiliary-fan) @@ -36,104 +36,104 @@ OrcaSlicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki ## Material Settings -![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png?raw=true) +![filament-preset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png?raw=true) -![filament](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/filament.svg?raw=true) Settings related to the 3D printing material. +![filament](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/filament.svg?raw=true) Settings related to the 3D printing material. - [Single Extruder Multimaterial](semm) - [Pellet Printers (pellet flow coefficient)](pellet-flow-coefficient) ## Process Settings -![process-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process-preset.png?raw=true) +![process-preset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process-preset.png?raw=true) -![process](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/process.svg?raw=true) Settings related to the 3D printing process. +![process](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/process.svg?raw=true) Settings related to the 3D printing process. ### Quality Settings -![custom-gcode_quality](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_quality.svg?raw=true) Settings related to print quality and aesthetics. -![process-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-quality.png?raw=true) +![custom-gcode_quality](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_quality.svg?raw=true) Settings related to print quality and aesthetics. +![process-quality](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-quality.png?raw=true) -- ![param_layer_height](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_layer_height.svg?raw=true) [Layer Height Settings](quality_settings_layer_height) -- ![param_line_width](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_line_width.svg?raw=true) [Line Width Settings](quality_settings_line_width) -- ![param_seam](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_seam.svg?raw=true) [Seam Settings](quality_settings_seam) -- ![param_precision](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_precision.svg?raw=true) [Precision](quality_settings_precision) -- ![param_ironing](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_ironing.svg?raw=true) [Ironing](quality_settings_ironing) -- ![param_wall_generator](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_wall_generator.svg?raw=true) [Wall generator](quality_settings_wall_generator) -- ![param_wall_surface](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_wall_surface.svg?raw=true) [Walls and surfaces](quality_settings_wall_and_surfaces) -- ![param_bridge](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_bridge.svg?raw=true) [Bridging](quality_settings_bridging) -- ![param_overhang](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_overhang.svg?raw=true) [Overhangs](quality_settings_overhangs) +- ![param_layer_height](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_layer_height.svg?raw=true) [Layer Height Settings](quality_settings_layer_height) +- ![param_line_width](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_line_width.svg?raw=true) [Line Width Settings](quality_settings_line_width) +- ![param_seam](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_seam.svg?raw=true) [Seam Settings](quality_settings_seam) +- ![param_precision](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_precision.svg?raw=true) [Precision](quality_settings_precision) +- ![param_ironing](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_ironing.svg?raw=true) [Ironing](quality_settings_ironing) +- ![param_wall_generator](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_wall_generator.svg?raw=true) [Wall generator](quality_settings_wall_generator) +- ![param_wall_surface](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_wall_surface.svg?raw=true) [Walls and surfaces](quality_settings_wall_and_surfaces) +- ![param_bridge](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_bridge.svg?raw=true) [Bridging](quality_settings_bridging) +- ![param_overhang](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_overhang.svg?raw=true) [Overhangs](quality_settings_overhangs) ### Strength Settings -![custom-gcode_strength](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_strength.svg?raw=true) Settings related to print strength and durability. -![process-strength](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-strength.png?raw=true) +![custom-gcode_strength](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_strength.svg?raw=true) Settings related to print strength and durability. +![process-strength](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-strength.png?raw=true) -- ![param_wall](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_wall.svg?raw=true) [Walls](strength_settings_walls) -- ![param_shell](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_shell.svg?raw=true) [Top and Bottom Shells](strength_settings_top_bottom_shells) -- ![param_infill](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_infill.svg?raw=true) [Infill](strength_settings_infill) - - ![param_concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_concentric.svg?raw=true) [Fill Patterns](strength_settings_patterns) - - ![param_gcode](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [Template Metalanguage for infill rotation](strength_settings_infill_rotation_template_metalanguage) -- ![param_advanced](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](strength_settings_advanced) +- ![param_wall](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_wall.svg?raw=true) [Walls](strength_settings_walls) +- ![param_shell](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_shell.svg?raw=true) [Top and Bottom Shells](strength_settings_top_bottom_shells) +- ![param_infill](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_infill.svg?raw=true) [Infill](strength_settings_infill) + - ![param_concentric](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_concentric.svg?raw=true) [Fill Patterns](strength_settings_patterns) + - ![param_gcode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [Template Metalanguage for infill rotation](strength_settings_infill_rotation_template_metalanguage) +- ![param_advanced](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](strength_settings_advanced) ### Speed Settings -![custom-gcode_speed](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_speed.svg?raw=true) Settings related to print speed and movement. -![process-speed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-speed.png?raw=true) +![custom-gcode_speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_speed.svg?raw=true) Settings related to print speed and movement. +![process-speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-speed.png?raw=true) -- ![param_speed_first](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_speed_first.svg?raw=true) [Initial Layer Speed](speed_settings_initial_layer_speed) -- ![param_speed](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_speed.svg?raw=true) [Other Layers Speed](speed_settings_other_layers_speed) -- ![param_overhang_speed](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_overhang_speed.svg?raw=true) [Overhang Speed](speed_settings_overhang_speed) -- ![param_travel_speed](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_travel_speed.svg?raw=true) [Travel Speed](speed_settings_travel) -- ![param_acceleration](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_acceleration.svg?raw=true) [Acceleration](speed_settings_acceleration) -- ![param_jerk](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_jerk.svg?raw=true) [Jerk (XY)](speed_settings_jerk_xy) -- ![param_advanced](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced / Extrusion rate smoothing](speed_settings_advanced) +- ![param_speed_first](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_speed_first.svg?raw=true) [Initial Layer Speed](speed_settings_initial_layer_speed) +- ![param_speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_speed.svg?raw=true) [Other Layers Speed](speed_settings_other_layers_speed) +- ![param_overhang_speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_overhang_speed.svg?raw=true) [Overhang Speed](speed_settings_overhang_speed) +- ![param_travel_speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_travel_speed.svg?raw=true) [Travel Speed](speed_settings_travel) +- ![param_acceleration](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_acceleration.svg?raw=true) [Acceleration](speed_settings_acceleration) +- ![param_jerk](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_jerk.svg?raw=true) [Jerk (XY)](speed_settings_jerk_xy) +- ![param_advanced](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced / Extrusion rate smoothing](speed_settings_advanced) ### Support Settings -![custom-gcode_support](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_support.svg?raw=true) Settings related to support structures and their properties. -![process-support](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-support.png?raw=true) +![custom-gcode_support](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_support.svg?raw=true) Settings related to support structures and their properties. +![process-support](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-support.png?raw=true) -- ![param_support](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_support.svg?raw=true) [Support](support_settings_support) -- ![param_raft](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_raft.svg?raw=true) [Raft](support_settings_raft) -- ![param_support_filament](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_support_filament.svg?raw=true) [Support Filament](support_settings_filament) -- ![param_ironing](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_ironing.svg?raw=true) [Support Ironing](support_settings_ironing) -- ![param_advanced](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](support_settings_advanced) -- ![param_support_tree](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_support_tree.svg?raw=true) [Tree Supports](support_settings_tree) +- ![param_support](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_support.svg?raw=true) [Support](support_settings_support) +- ![param_raft](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_raft.svg?raw=true) [Raft](support_settings_raft) +- ![param_support_filament](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_support_filament.svg?raw=true) [Support Filament](support_settings_filament) +- ![param_ironing](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_ironing.svg?raw=true) [Support Ironing](support_settings_ironing) +- ![param_advanced](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](support_settings_advanced) +- ![param_support_tree](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_support_tree.svg?raw=true) [Tree Supports](support_settings_tree) ### Multimaterial Settings -![custom-gcode_multi_material](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_multi_material.svg?raw=true) Settings related to multimaterial printing. -![process-multimaterial](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-multimaterial.png?raw=true) +![custom-gcode_multi_material](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_multi_material.svg?raw=true) Settings related to multimaterial printing. +![process-multimaterial](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-multimaterial.png?raw=true) -- ![param_tower](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_tower.svg?raw=true) [Prime Tower](multimaterial_settings_prime_tower) -- ![param_filament_for_features](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_filament_for_features.svg?raw=true) [Filament for Features](multimaterial_settings_filament_for_features) -- ![param_ooze_prevention](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_ooze_prevention.svg?raw=true) [Ooze Prevention](multimaterial_settings_ooze_prevention) -- ![param_flush](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_flush.svg?raw=true) [Flush Options](multimaterial_settings_flush_options) -- ![param_advanced](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](multimaterial_settings_advanced) +- ![param_tower](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_tower.svg?raw=true) [Prime Tower](multimaterial_settings_prime_tower) +- ![param_filament_for_features](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_filament_for_features.svg?raw=true) [Filament for Features](multimaterial_settings_filament_for_features) +- ![param_ooze_prevention](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_ooze_prevention.svg?raw=true) [Ooze Prevention](multimaterial_settings_ooze_prevention) +- ![param_flush](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_flush.svg?raw=true) [Flush Options](multimaterial_settings_flush_options) +- ![param_advanced](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_advanced.svg?raw=true) [Advanced](multimaterial_settings_advanced) ### Others Settings -![custom-gcode_other](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/custom-gcode_other.svg?raw=true) Settings related to various other print settings. -![process-others](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process/process-others.png?raw=true) +![custom-gcode_other](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/custom-gcode_other.svg?raw=true) Settings related to various other print settings. +![process-others](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process/process-others.png?raw=true) -- ![param_skirt](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_skirt.svg?raw=true) [Skirt](others_settings_skirt) -- ![param_adhension](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_adhension.svg?raw=true) [Brim](others_settings_brim) -- ![param_special](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_special.svg?raw=true) [Special Mode](others_settings_special_mode) -- ![fuzzy_skin](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/fuzzy_skin.svg?raw=true) [Fuzzy Skin](others_settings_fuzzy_skin) -- ![param_gcode](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [G-Code Output](others_settings_g_code_output) -- ![param_gcode](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [Post Processing Scripts](others_settings_post_processing_scripts) -- ![note](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/note.svg?raw=true) [Notes](others_settings_notes) +- ![param_skirt](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_skirt.svg?raw=true) [Skirt](others_settings_skirt) +- ![param_adhension](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_adhension.svg?raw=true) [Brim](others_settings_brim) +- ![param_special](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_special.svg?raw=true) [Special Mode](others_settings_special_mode) +- ![fuzzy_skin](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/fuzzy_skin.svg?raw=true) [Fuzzy Skin](others_settings_fuzzy_skin) +- ![param_gcode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [G-Code Output](others_settings_g_code_output) +- ![param_gcode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/param_gcode.svg?raw=true) [Post Processing Scripts](others_settings_post_processing_scripts) +- ![note](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/note.svg?raw=true) [Notes](others_settings_notes) ## Prepare -![tab_3d_active](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/tab_3d_active.svg?raw=true) First steps to prepare your model/s for printing. +![tab_3d_active](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/tab_3d_active.svg?raw=true) First steps to prepare your model/s for printing. - [STL Transformation](stl-transformation) ## Calibrations -![tab_calibration_active](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/tab_calibration_active.svg?raw=true) The [Calibration Guide](Calibration) outlines Orca’s key calibration tests and their suggested order of execution. +![tab_calibration_active](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/tab_calibration_active.svg?raw=true) The [Calibration Guide](Calibration) outlines Orca’s key calibration tests and their suggested order of execution. - [Temperature](temp-calib) - [Flow Rate](flow-rate-calib) @@ -149,7 +149,7 @@ OrcaSlicer is a powerful open source slicer for FFF (FDM) 3D Printers. This wiki ## Developer Section -![im_code](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/im_code.svg?raw=true) This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless. +![im_code](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/im_code.svg?raw=true) This is a documentation from someone exploring the code and is by no means complete or even completely accurate. Please edit the parts you might find inaccurate. This is probably going to be helpful nonetheless. - [How to build OrcaSlicer](How-to-build) - [How to run tests](How-to-test) diff --git a/doc/calibration/Calibration.md b/doc/calibration/Calibration.md index bc1e5b6a10..db8a9c83d6 100644 --- a/doc/calibration/Calibration.md +++ b/doc/calibration/Calibration.md @@ -6,7 +6,7 @@ It covers key aspects such as flow rate, pressure advance, temperature towers, r To access the calibration features, you can find them in the **Calibration** section of the OrcaSlicer interface. -![calibration](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/calibration.png?raw=true) +![calibration](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/calibration.png?raw=true) > [!IMPORTANT] > After completing the calibration process, remember to create a new project in order to exit the calibration mode. @@ -15,43 +15,43 @@ The recommended order for calibration is as follows: 1. **[Temperature](temp-calib):** Start by calibrating the temperature of the nozzle and the bed. This is crucial as it affects the viscosity of the filament, which in turn influences how well it flows through the nozzle and adheres to the print bed. - temp-tower + temp-tower 2. **[Flow](flow-rate-calib):** Calibrate the flow rate to ensure that the correct amount of filament is being extruded. This is important for achieving accurate dimensions and good layer adhesion. - flowcalibration-example + flowcalibration-example 3. **[Pressure Advance](pressure-advance-calib):** Calibrate the pressure advance settings to improve print quality and reduce artifacts caused by pressure fluctuations in the nozzle. - **[Adaptive Pressure Advance](adaptive-pressure-advance-calib):** This is an advanced calibration technique that can be used to further optimize the pressure advance settings for different print speeds and geometries. - pa-tower + pa-tower 4. **[Retraction](retraction-calib):** Calibrate the retraction settings to minimize stringing and improve print quality. Doing this after Flow and Pressure Advance calibration is recommended, as it ensures that the printer is already set up for optimal extrusion. - retraction_test_print + retraction_test_print 5. **[Max Volumetric Speed](volumetric-speed-calib):** Calibrate the maximum volumetric speed of the filament. This is important for ensuring that the printer can handle the flow rate of the filament without causing issues such as under-extrusion or over-extrusion. - mvf_measurement_point + mvf_measurement_point 6. **[Cornering](cornering-calib):** Calibrate the Jerk/Junction Deviation settings to improve print quality and reduce artifacts caused by sharp corners and changes in direction. - jd_second_print_measure + jd_second_print_measure 7. **[Input Shaping](input-shaping-calib):** This is an advanced calibration technique that can be used to reduce ringing and improve print quality by compensating for mechanical vibrations in the printer. - IS_damp_marlin_print_measure + IS_damp_marlin_print_measure 8. **[VFA](vfa-calib):** A VFA speed test is available to find resonance speeds. - vfa_test_print + vfa_test_print --- **[Tolerance](tolerance-calib):** Calibrate the tolerances of your printer to ensure that it can accurately reproduce the dimensions of the model being printed. This is important for achieving a good fit between parts and for ensuring that the final print meets the desired specifications. - OrcaToleranceTes_m6 + OrcaToleranceTes_m6 --- diff --git a/doc/calibration/adaptive-pressure-advance-calib.md b/doc/calibration/adaptive-pressure-advance-calib.md index a6ed751626..25d4fe4f6d 100644 --- a/doc/calibration/adaptive-pressure-advance-calib.md +++ b/doc/calibration/adaptive-pressure-advance-calib.md @@ -12,7 +12,7 @@ This feature introduces the below options under the filament settings: 3. **Pressure advance for bridges:** Sets the desired pressure advance value for bridges. Set it to 0 to disable this feature. Experiments have shown that a lower PA value when printing bridges helps reduce the appearance of slight under extrusion immediately after a bridge, which is caused by the pressure drop in the nozzle when printing in the air. Therefore, a lower pressure advance value helps counteract this. A good starting point is approximately half your usual PA value. 4. **Adaptive pressure advance measurements:** This field contains the calibration values used to generate the pressure advance profile for the nozzle/printer. Input sets of pressure advance (PA) values and the corresponding volumetric flow speeds and accelerations they were measured at, separated by a comma. Add one set of values per line. More information on how to calibrate the model follows in the sections below. 5. **Pressure advance:** The old field is still needed and is required to be populated with a PA value. A “good enough” median PA value should be entered here, as this will act as a fallback value when performing tool changes, printing a purge/wipe tower for multi-color prints as well as a fallback in case the model fails to identify an appropriate value (unlikely but it’s the ultimate backstop). -![apa-material-config](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-material-config.png?raw=true) +![apa-material-config](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-material-config.png?raw=true) ## Pre-Requisites @@ -49,16 +49,16 @@ Finally, if during calibration you notice that there is little to no variance be ### Expected results With this feature enabled there should be absolutely no bulge in the corners, just the smooth rounding caused by the square corner velocity of your printer. -![apa-expected-results](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-results.jpg?raw=true) +![apa-expected-results](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-expected-results.jpg?raw=true) In addition, seams should appear smooth with no bulging or under extrusion. -![apa-expected-seam](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-seam.jpg?raw=true) +![apa-expected-seam](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-expected-seam.jpg?raw=true) Solid infill should have no gaps, pinholes, or separation from the perimeters. -![apa-expected-solid-infill](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-expected-solid-infill.jpg?raw=true) +![apa-expected-solid-infill](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-expected-solid-infill.jpg?raw=true) Compared to with this feature disabled, where the internal solid infill and external-internal perimeters show signs of separation and under extrusion, when PA is tuned for optimal external perimeter performance as shown below. -![apa-unexpected-solid-infill](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-unexpected-solid-infill.jpg?raw=true) +![apa-unexpected-solid-infill](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-unexpected-solid-infill.jpg?raw=true) ## How to calibrate the adaptive pressure advance model @@ -119,7 +119,7 @@ We, therefore, need to run 12 PA tests as below: Test parameters needed to build adaptive PA table are printed on the test sample: -![apa-test](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-test.png?raw=true) +![apa-test](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-test.png?raw=true) Test sample above was done with acceleration 12000 mm/s² and flow rate 27.13 mm³/s @@ -127,7 +127,7 @@ Test sample above was done with acceleration 12000 mm/s² and flow rate 27.13 mm As mentioned earlier, **the print speed is used as a proxy to vary the extrusion flow rate**. Once your PA test is set up, change the gcode preview to “flow” and move the horizontal slider over one of the herringbone patterns and take note of the flow rate for different speeds. -![apa-test210](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-test210.png?raw=true) +![apa-test210](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-test210.png?raw=true) ### Running the tests @@ -139,13 +139,13 @@ It is recommended that the PA step is set to a small value, to allow you to make **If the test is too big to fit on the build plate, increase your starting PA value or the PA step value accordingly until the test can fit.** If the lowest value becomes too high and there is no ideal PA present in the test, focus on increasing the PA step value to reduce the number of herringbones printed (hence the size of the print). -![pa-pattern-general](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-general.png?raw=true) +![pa-pattern-general](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-general.png?raw=true) #### OrcaSlicer 2.3.0 and newer PA pattern calibration configuration window have been changed to simplify test setup. Now all is needed is to fill list of accelerations and speeds into relevant fields of the calibration window: -![pa-pattern-batch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true) +![pa-pattern-batch](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true) Test patterns generated for each acceleration-speed pair and all parameters are set accordingly. No additional actions needed from user side. Just slice and print all plates generated. @@ -155,9 +155,9 @@ Refer to [Calibration Guide](Calibration) for more details on batch mode calibra Setup your PA test as usual from the calibration menu in OrcaSlicer. Once setup, your PA test should look like the below: -![apa-setup-result-speed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-speed.png?raw=true) +![apa-setup-result-speed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-speed.png?raw=true) -![apa-setup-result-acceleration-jerk](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-acceleration-jerk.png?raw=true) +![apa-setup-result-acceleration-jerk](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-setup-result-acceleration-jerk.png?raw=true) Now input your identified print speeds and accelerations in the fields above and run the PA tests. @@ -191,7 +191,7 @@ Concatenate the PA value, the flow value, and the acceleration value into the fi Remember to paste the values in the adaptive pressure advance measurements text box as shown below, and save your filament profile. -![apa-profile](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-profile.png?raw=true) +![apa-profile](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-profile.png?raw=true) ### Tips @@ -212,10 +212,10 @@ Higher acceleration and higher flow rate PA tests are easier to identify the opt However, the lower the flow rate and accelerations are, the range of good values is much wider. Having examined the PA tests even under a microscope, what is evident, is that if you can’t distinguish a value as being evidently better than another (i.e. sharper corner with no gaps) with the naked eye, then both values are correct. In which case, if you can’t find any meaningful difference, simply use the optimal values from the higher flow rates. - **Too high PA** -![apa-identify-too-high](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-identify-too-high.jpg?raw=true) +![apa-identify-too-high](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-identify-too-high.jpg?raw=true) - **Too low PA** -![apa-identify-too-low](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-identify-too-low.jpg?raw=true) +![apa-identify-too-low](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-identify-too-low.jpg?raw=true) - **Optimal PA** -![apa-identify-optimal](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/apa-identify-optimal.jpg?raw=true) +![apa-identify-optimal](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/apa-identify-optimal.jpg?raw=true) diff --git a/doc/calibration/cornering-calib.md b/doc/calibration/cornering-calib.md index f076a2d792..923672badc 100644 --- a/doc/calibration/cornering-calib.md +++ b/doc/calibration/cornering-calib.md @@ -29,24 +29,24 @@ This test will be set detect automatically your printer firmware type and will a 2. Speed high enough to trigger ringing (e.g., 100 mm/s). 3. Use an opaque, high-gloss filament to make ringing more visible. 2. Open the Cornering test. - ![jd_first_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_menu.png?raw=true) + ![jd_first_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_menu.png?raw=true) 1. In this first approximation, set a wide range of Start and End values. - If you don't see any loss of quality, increase the End value and retry. - If you do see a loss of quality, measure the maximum height when the corners start losing sharpness and read the Cornering/Jerk/JunctionDeviation value set at that point in OrcaSlicer. - ![jd_first_print_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_print_measure.jpg?raw=true) - ![jd_first_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_slicer_measure.png?raw=true) + ![jd_first_print_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_print_measure.jpg?raw=true) + ![jd_first_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_first_slicer_measure.png?raw=true) 2. Print a new calibration tower with a maximum set near the point where corners start losing sharpness. **RECOMMENDED:** Use the *Ringing Tower* test model to more easily visualize the jerk limit. 3. Print the second Cornering test with the new maximum value. - ![jd_second_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_menu.png?raw=true) + ![jd_second_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_menu.png?raw=true) 4. Measure the maximum height when the corners start losing sharpness and read the Cornering/Jerk/JunctionDeviation value set at that point in OrcaSlicer. - ![jd_second_print_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_print_measure.jpg?raw=true) - ![jd_second_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_slicer_measure.png?raw=true) + ![jd_second_print_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_print_measure.jpg?raw=true) + ![jd_second_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_second_slicer_measure.png?raw=true) 3. Save the settings - Into your OrcaSlicer printer profile (**RECOMMENDED**): 1. Go to Printer settings → Motion ability → Jerk limitation: 2. Set your maximum Jerk X and Y or Junction Deviation values. - ![jd_printer_jerk_limitation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_printer_jerk_limitation.png?raw=true) + ![jd_printer_jerk_limitation](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/JunctionDeviation/jd_printer_jerk_limitation.png?raw=true) - Directly into your printer firmware: - Restore your 3D Printer settings to avoid keeping high acceleration and jerk values used for the test. diff --git a/doc/calibration/flow-rate-calib.md b/doc/calibration/flow-rate-calib.md index 21fd73d93a..246d4bb90d 100644 --- a/doc/calibration/flow-rate-calib.md +++ b/doc/calibration/flow-rate-calib.md @@ -14,7 +14,7 @@ A properly calibrated flow ratio ensures consistent layer adhesion and accurate > [!WARNING] > **BambuLab Printers:** Make sure you do **not** select the 'Flow calibration' option. -> ![flowrate-Bambulab-uncheck](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png?raw=true) +> ![flowrate-Bambulab-uncheck](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png?raw=true) > [!NOTE] > After v2.3.0, the [Top Pattern](strength_settings_top_bottom_shells#surface-pattern) changed to [Archimedean chords](strength_settings_patterns#archimedean-chords) from [Monotonic Line](strength_settings_patterns#monotonic-line). @@ -34,18 +34,18 @@ This method uses the [Archimedean Chords](strength_settings_patterns#archimedean This method is based on the filament's current flow ratio, so make sure you select the correct filament before proceeding. 2. In the `Calibration` menu, under the `Flow Rate` section, select `YOLO (Recommended)`. 3. A new project with eleven blocks will be created, each with a different flow rate modifier. Slice and print the project. - ![flowcalibration-yolo](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-yolo.gif?raw=true) + ![flowcalibration-yolo](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-yolo.gif?raw=true) 4. Examine the printed blocks and identify the one with the best surface quality. Look for: 1. The smoothest top surface. 2. No visible gaps between the pattern arcs. 3. Minimal or no visible line between the Inner Spiral and the Outer Arcs. - ![flowcalibration-guide](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-guide.png?raw=true) + ![flowcalibration-guide](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-guide.png?raw=true) In this example, the block with a flow modifier of `+0.01` produced the best results, despite a visible line between the Inner Spiral and the Outer Arcs; reducing the flow further begins to show gaps between the lines. - ![flowcalibration-example](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-example.png?raw=true) + ![flowcalibration-example](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration-example.png?raw=true) 5. Update the flow ratio in the filament settings using the equation: `OldFlowRatio ± modifier`. If your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+0.01`, the new value would be: `0.98 + 0.01 = 0.99`. **Remember** to save the filament profile. - ![flowcalibration_update_flowrate](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration_update_flowrate.png?raw=true) + ![flowcalibration_update_flowrate](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowcalibration_update_flowrate.png?raw=true) > [!NOTE] > The new Archimedean chords pattern uses a specific print order that prints the inner spiral last so you can check for material accumulation on the contact line at the end. @@ -54,23 +54,23 @@ This method uses the [Archimedean Chords](strength_settings_patterns#archimedean This example uses the Monotonic Line pattern with the 2-Pass Calibration approach. -![flow-calibration-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flow-calibration-monotonic.gif?raw=true) +![flow-calibration-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flow-calibration-monotonic.gif?raw=true) 1. Select the printer, filament, and process you want to use for the test. 2. In the `Calibration` menu, under the `Flow Rate` section, select `Pass 1`. 3. A new project with nine blocks will be created, each with a different flow rate modifier. Slice and print the project. 4. Examine the blocks and determine which one has the smoothest top surface. - ![flowrate-pass1-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass1-monotonic.jpg?raw=true) - ![flowrate-0-5-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-0-5-monotonic.jpg?raw=true) + ![flowrate-pass1-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass1-monotonic.jpg?raw=true) + ![flowrate-0-5-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-0-5-monotonic.jpg?raw=true) 5. Update the flow ratio in the filament settings using the equation: `OldFlowRatio * (100 + modifier) / 100`. For example, if your previous flow ratio was `0.98` and you selected the block with a flow rate modifier of `+5`, the new value would be: `0.98 × (100 + 5) / 100 = 1.029`. **Remember** to save the filament profile. 6. Perform the `Pass 2` calibration. This process is similar to `Pass 1`, but a new project with ten blocks will be generated. The flow rate modifiers for this project will range from `-9` to `0`. 7. Repeat steps 4 and 5. For example, if your previous flow ratio was `1.029` and you selected the block with a flow rate modifier of `-6`, the new value would be: `1.029 × (100 - 6) / 100 = 0.96726`. **Remember** to save the filament profile. - ![flowrate-pass2-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass2-monotonic.jpg?raw=true) - ![flowrate-6-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-6-monotonic.jpg?raw=true) - ![flowcalibration_update_flowrate_monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowcalibration_update_flowrate_monotonic.png?raw=true) + ![flowrate-pass2-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-pass2-monotonic.jpg?raw=true) + ![flowrate-6-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowrate-6-monotonic.jpg?raw=true) + ![flowcalibration_update_flowrate_monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/monotonic-flow-rate/flowcalibration_update_flowrate_monotonic.png?raw=true) > [!TIP] > @ItsDeidara has created an HTML tool to help with these calculations. Check it out if you find the equations confusing: [Orca-Slicer-Assistant](https://github.com/ItsDeidara/Orca-Slicer-Assistant). diff --git a/doc/calibration/input-shaping-calib.md b/doc/calibration/input-shaping-calib.md index b91ee7cb5e..651559d416 100644 --- a/doc/calibration/input-shaping-calib.md +++ b/doc/calibration/input-shaping-calib.md @@ -60,22 +60,22 @@ Every firmware and even its version may have a different default type but usuall 2. Select the [Input Shaper Type](#types) you want to test. Each firmware has different types available and each type has different performance. 3. Select a range of frequencies to test. The Default 15hz to 110hz range is usually a good start. 4. Select your damping. Usually, a value between 0.1 and 0.2 is a good start but you can change it to 0 and your printer will use the firmware default value (if available). - ![IS_freq_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_menu.png?raw=true) + ![IS_freq_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_menu.png?raw=true) 1. Measure the X and Y heights and read the frequency set at that point in OrcaSlicer. - ![IS_freq_marlin_print_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_marlin_print_measure.jpg?raw=true) + ![IS_freq_marlin_print_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_marlin_print_measure.jpg?raw=true) - Marlin: - ![IS_freq_marlin_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_marlin_slicer_measure.png?raw=true) + ![IS_freq_marlin_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_marlin_slicer_measure.png?raw=true) - Klipper: - ![IS_freq_klipper_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_klipper_slicer_measure.png?raw=true) + ![IS_freq_klipper_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_freq_klipper_slicer_measure.png?raw=true) 2. If not a clear result, you can measure a X and Y min and max acceptable heights and repeat the test with that min and max value. 5. Print the Damping test setting your X and Y frequency to the value you found in the previous step. - ![IS_damp_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_menu.png?raw=true) + ![IS_damp_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_menu.png?raw=true) 1. Measure the X and Y heights and read the damping set at that point in OrcaSlicer. - ![IS_damp_marlin_print_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_marlin_print_measure.jpg?raw=true) + ![IS_damp_marlin_print_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_marlin_print_measure.jpg?raw=true) - Marlin: - ![IS_damp_marlin_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_marlin_slicer_measure.png?raw=true) + ![IS_damp_marlin_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_marlin_slicer_measure.png?raw=true) - Klipper: - ![IS_damp_klipper_slicer_measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_klipper_slicer_measure.png?raw=true) + ![IS_damp_klipper_slicer_measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/InputShaping/IS_damp_klipper_slicer_measure.png?raw=true) 6. **Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.** 7. Save the settings diff --git a/doc/calibration/pressure-advance-calib.md b/doc/calibration/pressure-advance-calib.md index d34ebf135c..3bea6c8e06 100644 --- a/doc/calibration/pressure-advance-calib.md +++ b/doc/calibration/pressure-advance-calib.md @@ -10,7 +10,7 @@ OrcaSlicer includes three approaches for calibrating the Pressure Advance value. > [!WARNING] > **Bambulab Printers:** make sure you do not select the 'Flow calibration' option. -> ![flowrate-Bambulab-uncheck](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png?raw=true) +> ![flowrate-Bambulab-uncheck](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Flow-Rate/flowrate-Bambulab-uncheck.png?raw=true) - [Calibration](#calibration) - [Tower method](#tower-method) @@ -22,7 +22,7 @@ OrcaSlicer includes three approaches for calibrating the Pressure Advance value. You can use different methods to calibrate the Pressure Advance value, each with its own advantages and disadvantages. The results from these methods should be saved to the material profile. -![pressure_advance_enable](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pressure_advance_enable.png?raw=true) +![pressure_advance_enable](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pressure_advance_enable.png?raw=true) > [!TIP] > Consider using the [Adaptive Pressure Advance](adaptive-pressure-advance-calib) method for more accurate results. @@ -35,8 +35,8 @@ The tower method may take a bit more time to complete, but it does not rely on t 1. Select the printer, filament, and process you would like to use for the test. 2. Examine each corner of the print and mark the height that yields the best overall result. 3. In this example a height of 8 mm was selected, so the Pressure Advance value should be calculated as `PressureAdvanceStart + (PressureAdvanceStep x measured)`; example: `0 + (0.002 x 8) = 0.016`. - ![pa-tower](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-tower.jpg?raw=true) - ![pa-tower-measure](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-tower-measure.jpg?raw=true) + ![pa-tower](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-tower.jpg?raw=true) + ![pa-tower-measure](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-tower-measure.jpg?raw=true) > [!TIP] > @ItsDeidara has made an HTML tool to help with the calculation. Check it out if those equations give you a headache [here](https://github.com/ItsDeidara/Orca-Slicer-Assistant). @@ -50,20 +50,20 @@ The pattern method is adapted from [Andrew Ellis' pattern method generator](http The test configuration window allows the user to generate one or more tests in a single project. Multiple tests will be placed on the plate with extra plates added if needed. 1. Single test \ - ![pa-pattern-single](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-single.png?raw=true) + ![pa-pattern-single](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-single.png?raw=true) 2. Batch mode testing (multiple tests on a single plate) \ - ![pa-pattern-batch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true) + ![pa-pattern-batch](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch.png?raw=true) Once a test is generated, one or more small rectangular prisms will be placed on the plate, one for each test case. The prism object serves a few purposes: 1. The test pattern itself is added in as custom G-Code at each layer, same as you could do by hand. The rectangular prism provides the layers in which to insert that G-Code. This also means that **you'll see the full test pattern when you move to the Preview pane:** -![pa-pattern-batch-plater](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch-plater.png?raw=true) +![pa-pattern-batch-plater](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch-plater.png?raw=true) 2. The prism acts as a handle, enabling you to move the test pattern wherever you'd like on the plate by moving the prism. 3. Each test object is pre-configured with target parameters which are reflected in the object's name. Test parameters may be adjusted for each prism individually via the object list pane: -![pa-pattern-batch-objects](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch-objects.png?raw=true) +![pa-pattern-batch-objects](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-pattern-batch-objects.png?raw=true) Next, Ellis' generator provided the ability to adjust specific printer, filament, and print profile settings. You can make these same changes in OrcaSlicer by adjusting the settings in the Prepare pane as you would with any other print. When you initiate the calibration test, Ellis' default settings are applied. A few things to note about these settings: @@ -82,8 +82,8 @@ Steps: 2. Print the project and check the result. Choose the value corresponding to the most even line and update your Pressure Advance value in the filament settings. 3. In this test, a Pressure Advance value of `0.016` appears to be optimal. - ![pa-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-line.gif?raw=true) + ![pa-line](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-line.gif?raw=true) - ![pa-lines](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-lines.png?raw=true) + ![pa-lines](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-lines.png?raw=true) - ![pa-line-0-016](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/pa/pa-line-0-016.png?raw=true) + ![pa-line-0-016](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/pa/pa-line-0-016.png?raw=true) diff --git a/doc/calibration/retraction-calib.md b/doc/calibration/retraction-calib.md index 61872dc223..a36b6a6fc1 100644 --- a/doc/calibration/retraction-calib.md +++ b/doc/calibration/retraction-calib.md @@ -4,13 +4,13 @@ Retraction is the process of pulling the filament back into the nozzle to preven This test generates a retraction tower automatically. The retraction tower is a vertical structure with multiple notches, each printed at a different retraction length. After the print is complete, we can examine each section of the tower to determine the optimal retraction length for the filament. The optimal retraction length is the shortest one that produces the cleanest tower. -![retraction_test](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/retraction/retraction_test.gif?raw=true) +![retraction_test](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/retraction/retraction_test.gif?raw=true) -![retraction_test_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_menu.png?raw=true) +![retraction_test_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_menu.png?raw=true) In the dialog, you can select the start and end retraction length, as well as the retraction length increment step. The default values are 0mm for the start retraction length, 2mm for the end retraction length, and 0.1mm for the step. These values are suitable for most direct drive extruders. However, for Bowden extruders, you may want to increase the start and end retraction lengths to 1mm and 6mm, respectively, and set the step to 0.2mm. -![retraction_test_print](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_print.jpg?raw=true) +![retraction_test_print](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/retraction/retraction_test_print.jpg?raw=true) > [!NOTE] > When testing filaments such as PLA or ABS that have minimal oozing, the retraction settings can be highly effective. You may find that the retraction tower appears clean right from the start. In such situations, setting the retraction length to 0.2mm - 0.4mm using OrcaSlicer should suffice. diff --git a/doc/calibration/temp-calib.md b/doc/calibration/temp-calib.md index acdece9a97..7c7f57bf17 100644 --- a/doc/calibration/temp-calib.md +++ b/doc/calibration/temp-calib.md @@ -28,14 +28,14 @@ There is no other calibration that can have such a big impact on the print quali Nozzle temperature is one of the most important settings to calibrate for a successful print. The temperature of the nozzle affects the viscosity of the filament, which in turn affects how well it flows through the nozzle and adheres to the print bed. If the temperature is too low, the filament may not flow properly, leading to under-extrusion, poor layer adhesion and stringing. If the temperature is too high, the filament may degrade, over-extrude and produce stringing. -![temp-tower_test](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower_test.gif?raw=true) +![temp-tower_test](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower_test.gif?raw=true) -![temp-tower_test_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower_test_menu.png?raw=true) +![temp-tower_test_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower_test_menu.png?raw=true) Temp tower is a straightforward test. The temp tower is a vertical tower with multiple blocks, each printed at a different temperature. Once the print is complete, we can examine each block of the tower and determine the optimal temperature for the filament. The optimal temperature is the one that produces the highest quality print with the least amount of issues, such as stringing, layer adhesion, warping (overhang), and bridging. -![temp-tower](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower.jpg?raw=true) +![temp-tower](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Temp-calib/temp-tower.jpg?raw=true) > [!NOTE] > If a range of temperatures looks good, you may want to use the middle of that range as the optimal temperature. diff --git a/doc/calibration/tolerance-calib.md b/doc/calibration/tolerance-calib.md index 23f948de47..79b538a7a4 100644 --- a/doc/calibration/tolerance-calib.md +++ b/doc/calibration/tolerance-calib.md @@ -7,7 +7,7 @@ To correct for these variations, OrcaSlicer provides: - Shrinkage (XY) - ![FilamentShrinkageCompensation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/FilamentShrinkageCompensation.png?raw=true) + ![FilamentShrinkageCompensation](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Tolerance/FilamentShrinkageCompensation.png?raw=true) - Process Compensation: @@ -16,22 +16,22 @@ To correct for these variations, OrcaSlicer provides: - Precise wall - Precise Z height - ![QualityPrecision](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/QualityPrecision.png?raw=true) + ![QualityPrecision](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Tolerance/QualityPrecision.png?raw=true) ## Handy Models OrcaSlicer includes several handy models to help you test and calibrate your printer. Right-click on your plate in Prepare mode and select "Add Handy Model" to access these models. -![handy-models-list](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Handy-Models/handy-models-list.png?raw=true) +![handy-models-list](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Handy-Models/handy-models-list.png?raw=true) ### Orca Tolerance Test This calibration test is designed to evaluate the dimensional accuracy of your printer and filament. The model consists of a base with six hexagonal holes, each with a different tolerance: 0.0 mm, 0.05 mm, 0.1 mm, 0.2 mm, 0.3 mm, and 0.4 mm, as well as a hexagon-shaped tester. -![tolerance_hole](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/tolerance_hole.svg?raw=true) +![tolerance_hole](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Tolerance/tolerance_hole.svg?raw=true) You can check the tolerance using either an M6 Allen key or the included printed hexagon tester. Use calipers to measure both the holes and the inner tester. Based on your results, you can fine-tune the X-Y hole compensation and X-Y contour compensation settings. Repeat the process until you achieve the desired precision. -![OrcaToleranceTes_m6](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTes_m6.jpg?raw=true) -![OrcaToleranceTest_print](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTest_print.jpg?raw=true) +![OrcaToleranceTes_m6](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTes_m6.jpg?raw=true) +![OrcaToleranceTest_print](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Tolerance/OrcaToleranceTest_print.jpg?raw=true) diff --git a/doc/calibration/vfa-calib.md b/doc/calibration/vfa-calib.md index 0a064cd13c..e646175c49 100644 --- a/doc/calibration/vfa-calib.md +++ b/doc/calibration/vfa-calib.md @@ -11,12 +11,12 @@ Vertical Fine Artifacts (VFA) are small surface imperfections that appear on ver The VFA Speed Test in OrcaSlicer helps identify which print speeds trigger MRR artifacts. It prints a vertical tower with walls at various angles while progressively increasing the print speed. -![vfa_test_menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_menu.png?raw=true) +![vfa_test_menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_menu.png?raw=true) -![vfa_test_print](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_print.jpg?raw=true) +![vfa_test_print](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/vfa/vfa_test_print.jpg?raw=true) After printing, inspect the tower for MRR artifacts. Look for speeds where the surface becomes visibly smoother or rougher. This allows you to pinpoint problematic speed ranges. You can then configure the **Resonance Avoidance Speed Range** in the printer profile to skip speeds that cause visible artifacts. -![vfa_resonance_avoidance](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/vfa/vfa_resonance_avoidance.png?raw=true) +![vfa_resonance_avoidance](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/vfa/vfa_resonance_avoidance.png?raw=true) diff --git a/doc/calibration/volumetric-speed-calib.md b/doc/calibration/volumetric-speed-calib.md index 872a068aa3..fd6a9e942f 100644 --- a/doc/calibration/volumetric-speed-calib.md +++ b/doc/calibration/volumetric-speed-calib.md @@ -19,10 +19,10 @@ Once printed, take note of where the layers begin to fail and where the quality > [!TIP] > A **change in surface sheen** (glossy vs. matte) is often a visual cue of material degradation or poor layer adhesion. -![mvf_measurement_point](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_measurement_point.jpg?raw=true) +![mvf_measurement_point](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/MVF/mvf_measurement_point.jpg?raw=true) Use calipers or a ruler to measure the **height** of the model just before the defects begin. -![mvf_caliper_sample_mvf](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_caliper_sample_mvf.jpg?raw=true) +![mvf_caliper_sample_mvf](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/MVF/mvf_caliper_sample_mvf.jpg?raw=true) Then you can: @@ -35,10 +35,10 @@ Use calipers or a ruler to measure the **height** of the model just before the d In this case (19mm), so the calculation would be: `5 + (19 * 0.5) = 14.5mm³/s` - Use OrcaSlicer in the "Preview" tab, make sure the color scheme "flow" is selected. Scroll down to the layer height that you measured, and click on the toolhead slider. This will indicate the max flow level for your filament. -![mvf_gui_flow](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_gui_flow.png?raw=true) +![mvf_gui_flow](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/MVF/mvf_gui_flow.png?raw=true) After you have determined the maximum volumetric speed, you can set it in the filament settings. This will ensure that the printer does not exceed the maximum flow rate for the filament. -![mvf_material_settings](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/MVF/mvf_material_settings.png?raw=true) +![mvf_material_settings](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/MVF/mvf_material_settings.png?raw=true) > [!NOTE] > This test is a best case scenario and doesn't take into account Retraction or other settings that can increase clogs or under-extrusion. diff --git a/doc/developer-reference/How-to-build.md b/doc/developer-reference/How-to-build.md index 21957f4a31..77cadf566d 100644 --- a/doc/developer-reference/How-to-build.md +++ b/doc/developer-reference/How-to-build.md @@ -7,6 +7,7 @@ Whether you're a contributor or just want a custom build, this guide will help y - [Windows 64-bit](#windows-64-bit) - [Windows Tools Required](#windows-tools-required) + - [Windows Hardware Requirements](#windows-hardware-requirements) - [Windows Instructions](#windows-instructions) - [MacOS 64-bit](#macos-64-bit) - [MacOS Tools Required](#macos-tools-required) @@ -32,10 +33,15 @@ How to building with Visual Studio on Windows 64-bit. ### Windows Tools Required -- [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) or Visual Studio 2019 +- [Visual Studio](https://visualstudio.microsoft.com/vs/) 2022, 2026 or Visual Studio 2019 + - 2022 ```shell winget install --id=Microsoft.VisualStudio.2022.Professional -e ``` + - 2026 + ```shell + winget install --id=Microsoft.VisualStudio.Community -e + ``` - [CMake](https://cmake.org/) ```shell winget install --id=Kitware.CMake -e @@ -64,8 +70,23 @@ How to building with Visual Studio on Windows 64-bit. > If you see an older version (e.g. 3.29), it's likely due to another copy in your system's PATH (e.g. from Strawberry Perl). > You can run where cmake to check the active paths and rearrange your **System Environment Variables** > PATH, ensuring the correct CMake (e.g. C:\Program Files\CMake\bin) appears before others like C:\Strawberry\c\bin. -![windows_variables_path](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/windows_variables_path.png?raw=true) -![windows_variables_order](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/windows_variables_order.png?raw=true) +![windows_variables_path](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/windows_variables_path.png?raw=true) +![windows_variables_order](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/windows_variables_order.png?raw=true) + +> [!IMPORTANT] +> **For Visual Studio 2026**, you must use the CMake included with Visual Studio 2026 **until CMake 4.2 is released as a stable version**. +> To do this, you must include the cmake path contained in Visual Studio above the variable of the official cmake installed on your computer. +> The path will look something like this: +> ```shell +> C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin +> ``` + +### Windows Hardware Requirements + +- Minimum 16 GB RAM +- Minimum 23 GB free disk space +- 64-bit CPU +- 64-bit Windows 10 or later ### Windows Instructions @@ -74,21 +95,16 @@ How to building with Visual Studio on Windows 64-bit. - If using the command line: 1. Clone the repository: ```shell - git clone https://github.com/SoftFever/OrcaSlicer + git clone https://github.com/OrcaSlicer/OrcaSlicer ``` 2. Run lfs to download tools on Windows: ```shell git lfs pull ``` 2. Open the appropriate command prompt: - - Visual Studio 2022: - ```MD - x64 Native Tools Command Prompt for VS 2022 - ``` - - Visual Studio 2019: - ```MD - x64 Native Tools Command Prompt for VS 2019 - ``` + ```MD + x64 Native Tools Command Prompt for VS + ``` 1. Navigate to correct drive (if needed), e.g.: ```shell N: @@ -98,16 +114,11 @@ How to building with Visual Studio on Windows 64-bit. cd N:\Repos\OrcaSlicer ``` 3. Run the build script: - - Visual Studio 2022: - ```shell - build_release_vs2022.bat - ``` - - Visual Studio 2019: - ```shell - build_release.bat - ``` + ```shell + build_release_vs.bat + ``` -![vs2022cmd](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/vs2022cmd.png?raw=true) +![vs_cmd](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/vs_cmd.png?raw=true) > [!NOTE] > The build process will take a long time depending on your system but even with high-end hardware it can take up to 40 minutes. @@ -115,13 +126,13 @@ How to building with Visual Studio on Windows 64-bit. > [!TIP] > If you encounter issues, you can try to uninstall ZLIB from your Vcpkg library. -3. If successful, you will find the Visual Studio solution file in: +1. If successful, you will find the Visual Studio solution file in: ```shell build\OrcaSlicer.sln ``` -4. Open the solution in Visual Studio, set the build configuration to `Release` and run the `Local Windows Debugger`. - ![compile_vs2022_local_debugger](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/compile_vs2022_local_debugger.png?raw=true) -5. Your resulting executable will be located in: +2. Open the solution in Visual Studio, set the build configuration to `Release` and run the `Local Windows Debugger`. + ![compile_vs_local_debugger](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/compile_vs_local_debugger.png?raw=true) +3. Your resulting executable will be located in: ```shell \build\src\Release\orca-slicer.exe ``` @@ -181,7 +192,7 @@ cmake --version 1. Clone the repository: ```shell - git clone https://github.com/SoftFever/OrcaSlicer + git clone https://github.com/OrcaSlicer/OrcaSlicer cd OrcaSlicer ``` 2. Build the application: @@ -224,7 +235,7 @@ How to build and run OrcaSlicer using Docker. #### Docker Instructions ```shell -git clone https://github.com/SoftFever/OrcaSlicer && cd OrcaSlicer && ./scripts/DockerBuild.sh && ./scripts/DockerRun.sh +git clone https://github.com/OrcaSlicer/OrcaSlicer && cd OrcaSlicer && ./scripts/DockerBuild.sh && ./scripts/DockerRun.sh ``` ### Troubleshooting diff --git a/doc/developer-reference/How-to-create-profiles.md b/doc/developer-reference/How-to-create-profiles.md index 2c92d40b32..2dad9da7fa 100644 --- a/doc/developer-reference/How-to-create-profiles.md +++ b/doc/developer-reference/How-to-create-profiles.md @@ -139,9 +139,9 @@ The following sample JSON file shows how to create a new generic filament profil > When developing profiles, you may notice that changes aren't reflected in OrcaSlicer after editing profile files. This happens because OrcaSlicer caches profiles in the system folder. > To force OrcaSlicer to load your updated profiles: > 1. **Access the configuration folder**: Go to **Help** → **Show Configuration Folder** -> ![go-to-configuration-folder](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/go-to-configuration-folder.png?raw=true) +> ![go-to-configuration-folder](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/go-to-configuration-folder.png?raw=true) > 2. **Clear the cache**: Delete the `system` folder to remove cached profiles -> ![profile-delete-system-folder](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/develop/profile-delete-system-folder.png?raw=true) +> ![profile-delete-system-folder](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/develop/profile-delete-system-folder.png?raw=true) > 3. **Restart OrcaSlicer**: Launch the application to load your updated profiles > This process forces OrcaSlicer to update its profile cache from the source files in the `resources/profiles/` directory. diff --git a/doc/developer-reference/How-to-wiki.md b/doc/developer-reference/How-to-wiki.md index e59f5408da..bdf576746b 100644 --- a/doc/developer-reference/How-to-wiki.md +++ b/doc/developer-reference/How-to-wiki.md @@ -40,12 +40,12 @@ The Home page is the starting point for the OrcaSlicer wiki. From there you can When you create a new page or section, link it from the Home page under the appropriate category. The Home page currently organizes content in these top-level entries: -- ![printer](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/printer.svg?raw=true) [Printer Settings](home#printer-settings) -- ![filament](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/filament.svg?raw=true) [Material Settings](home#material-settings) -- ![process](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/process.svg?raw=true) [Process Settings](home#process-settings) -- ![tab_3d_active](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/tab_3d_active.svg?raw=true) [Prepare](home#prepare) -- ![tab_calibration_active](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/tab_calibration_active.svg?raw=true) [Calibrations](home#calibrations) -- ![im_code](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/im_code.svg?raw=true) [Developer Section](home#developer-section) +- ![printer](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/printer.svg?raw=true) [Printer Settings](home#printer-settings) +- ![filament](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/filament.svg?raw=true) [Material Settings](home#material-settings) +- ![process](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/process.svg?raw=true) [Process Settings](home#process-settings) +- ![tab_3d_active](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/tab_3d_active.svg?raw=true) [Prepare](home#prepare) +- ![tab_calibration_active](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/tab_calibration_active.svg?raw=true) [Calibrations](home#calibrations) +- ![im_code](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/im_code.svg?raw=true) [Developer Section](home#developer-section) Each section can have multiple pages covering specific topics. For example, the [Process Settings](home#process-settings) section includes pages on [quality](home#quality-settings), [support](home#support-settings), and [others](home#others-settings). @@ -86,7 +86,7 @@ When creating new pages, follow these file-naming conventions: OrcaSlicer can redirect users from the GUI to the appropriate wiki pages, making it easier to find relevant documentation. -The option-to-wiki mapping is defined in [src/slic3r/GUI/Tab.cpp](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.cpp). Any option added with `append_single_option_line` can be mapped to a wiki page using a second string argument. +The option-to-wiki mapping is defined in [src/slic3r/GUI/Tab.cpp](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.cpp). Any option added with `append_single_option_line` can be mapped to a wiki page using a second string argument. ```cpp optgroup->append_single_option_line("OPTION_NAME"); // Option without wiki page/redirection @@ -167,7 +167,7 @@ Format = `![`filename`](` + Base URL + filename.extension + Raw tag + `)` - Base URL: ```markdown - https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ + https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ ``` - Raw tag: @@ -181,13 +181,13 @@ Format = `![`filename`](` + Base URL + filename.extension + Raw tag + `)` - For an image in `doc/images/` named `calibration.png`: ```markdown - ![calibration](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/calibration.png?raw=true) + ![calibration](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/calibration.png?raw=true) ``` - For an image in a subdirectory like `doc/images/GUI/combobox.png`: ```markdown - ![combobox](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/combobox.png?raw=true) + ![combobox](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/combobox.png?raw=true) ``` > [!IMPORTANT] @@ -214,7 +214,7 @@ HTML Format = `` + filename + ` +IS_damp_marlin_print_measure ``` ### Image Cropping and Highlighting diff --git a/doc/developer-reference/Localization_guide.md b/doc/developer-reference/Localization_guide.md index c5d473901f..758160e88c 100644 --- a/doc/developer-reference/Localization_guide.md +++ b/doc/developer-reference/Localization_guide.md @@ -14,7 +14,7 @@ Full manual for GNUgettext can be seen here: [http://www.gnu.org/software/gettex ### Scenario 1. How do I add a translation or fix an existing translation 1. Get PO-file 'OrcaSlicer_xx.pot' from corresponding sub-folder here: - [https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n) + [https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n](https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n) 2. Open this file in PoEdit as "Edit a translation" 3. Apply your corrections to the translation 4. Push changed OrcaSlicer_xx.po into the original folder @@ -23,14 +23,14 @@ Full manual for GNUgettext can be seen here: [http://www.gnu.org/software/gettex ### Scenario 2. How do I add a new language support 1. Get file OrcaSlicer.pot here : - [https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n) + [https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n](https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n) 2. Open it in PoEdit for "Create new translation" 3. Select Translation Language (for example French). 4. As a result you will have fr.po - the file containing translation to French. Notice. When the translation is complete you need to: - Rename the file to OrcaSlicer_fr.po - Click "Save file" button. OrcaSlicer_fr.mo will be created immediately - - Bambu_Studio_fr.po needs to be copied into the sub-folder fr of [https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n](https://github.com/softfever/OrcaSlicer/tree/master/localization/i18n), and be pushed + - Bambu_Studio_fr.po needs to be copied into the sub-folder fr of [https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n](https://github.com/OrcaSlicer/OrcaSlicer/tree/master/localization/i18n), and be pushed - copy OrcaSlicer_xx.mo into resources/i18n/xx and rename it to OrcaSlicer.mo, then push the changed file. ( name of folder "fr" means "French" - the translation language). @@ -48,7 +48,7 @@ If you add new file resource, add it to the list of files containing macro `L()` ### Scenario 4. How do I use GNUgettext to localize my own application taking OrcaSlicer as an example 1. For convenience create a list of files with this macro `L(s)`. We have - https://github.com/softfever/OrcaSlicer/blob/master/localization/i18n/list.txt. + https://github.com/OrcaSlicer/OrcaSlicer/blob/master/localization/i18n/list.txt. 2. Create template file(*.POT) with GNUgettext command: diff --git a/doc/developer-reference/Preset-and-bundle.md b/doc/developer-reference/Preset-and-bundle.md index 4c4b35f3e9..e71032bd2c 100644 --- a/doc/developer-reference/Preset-and-bundle.md +++ b/doc/developer-reference/Preset-and-bundle.md @@ -2,7 +2,7 @@ This page deals with the explanation for 3 classes in the code. -## [`Preset`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp) +## [`Preset`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp) As the name might suggest this class deals with presets for various things. It defines an enum `Type` which basically tells you what kind of data the present contains. Below are a few explained and there corresponding UI elements @@ -11,19 +11,19 @@ As the name might suggest this class deals with presets for various things. It d - `TYPE_PRINT`: Refers to a process preset. It's called 'Print' probably due to some legacy code. -![process-preset-full](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/process-preset-full.png?raw=true) +![process-preset-full](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/process-preset-full.png?raw=true) - `TYPE_FILAMENT`: As the name suggests this preset is for filaments -![filament-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png?raw=true) +![filament-preset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/filament-preset.png?raw=true) - `TYPE_PRINTER`: Preset for printers. -![printer-preset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png?raw=true) +![printer-preset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/printer-preset.png?raw=true) There are other preset types but some of them are for SLA. Which is legacy code, since SLA printers are no longer supported. Above 3 are the important types. -## [`PresetBundle`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/PresetBundle.hpp) +## [`PresetBundle`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/libslic3r/PresetBundle.hpp) This is a bundle containing a few types of `PresetCollection`. One bundle has presets for some printers, filaments and some processes (TYPE_PRINT). @@ -36,7 +36,7 @@ each one of these contains a collection of processes, filaments and printers res > [!IMPORTANT] > Printers, filaments and processes in the bundle don't all have to be compatible with each other. In fact all the saved presets are stored in one `PresetBundle`. The `PresetBundle` is loaded on start up. The list of filaments and processes shown for a particular printer is a subset of `filaments` and `prints` `PresetCollection`s. -## [`PresetCollection`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp) +## [`PresetCollection`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/libslic3r/Preset.hpp) `PrinterPresetCollection` is a class derived from `PresetCollection`. diff --git a/doc/developer-reference/plater-sidebar-tab-combobox.md b/doc/developer-reference/plater-sidebar-tab-combobox.md index c0dc28a109..66e631be35 100644 --- a/doc/developer-reference/plater-sidebar-tab-combobox.md +++ b/doc/developer-reference/plater-sidebar-tab-combobox.md @@ -5,24 +5,24 @@ WIP... > [!WARNING] > !! incomplete, possibly inaccurate, being updated with new info !! -## [`Plater`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp) +## [`Plater`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp) Refers to the entire application. The whole view, file loading, project saving and loading is all managed by this class. This class contains members for the model viewer, the sidebar, gcode viewer and everything else. -## [`Sidebar`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp) +## [`Sidebar`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/slic3r/GUI/Plater.hpp) This is relating the the sidebar in the application window -![full-sidebar](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/full-sidebar.png?raw=true) +![full-sidebar](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/full-sidebar.png?raw=true) -## [`ComboBox`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Widgets/ComboBox.hpp) +## [`ComboBox`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/slic3r/GUI/Widgets/ComboBox.hpp) The drop down menus where you can see and select presets -![combobox](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/combobox.png?raw=true) +![combobox](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/combobox.png?raw=true) -## [`Tab`](https://github.com/SoftFever/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.hpp) +## [`Tab`](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/src/slic3r/GUI/Tab.hpp) Refers to the various windows with settings. e.g. the Popup to edit printer or filament preset. Also the section to edit process preset and the object list. These 4 are managed by `TabPrinter`, `TabFilament`, `TabPrint` and `TabPrintModel` respectively. -![tab-popup](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/GUI/tab-popup.png?raw=true) +![tab-popup](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/GUI/tab-popup.png?raw=true) diff --git a/doc/images/develop/compile_vs2022_local_debugger.png b/doc/images/develop/compile_vs2022_local_debugger.png deleted file mode 100644 index ea5aaee19e..0000000000 Binary files a/doc/images/develop/compile_vs2022_local_debugger.png and /dev/null differ diff --git a/doc/images/develop/compile_vs_local_debugger.png b/doc/images/develop/compile_vs_local_debugger.png new file mode 100644 index 0000000000..54d2b59963 Binary files /dev/null and b/doc/images/develop/compile_vs_local_debugger.png differ diff --git a/doc/images/develop/vs2022cmd.png b/doc/images/develop/vs2022cmd.png deleted file mode 100644 index 29b5de5152..0000000000 Binary files a/doc/images/develop/vs2022cmd.png and /dev/null differ diff --git a/doc/images/develop/vs_cmd.png b/doc/images/develop/vs_cmd.png new file mode 100644 index 0000000000..76cee67e09 Binary files /dev/null and b/doc/images/develop/vs_cmd.png differ diff --git a/doc/print_prepare/stl-transformation.md b/doc/print_prepare/stl-transformation.md index 3dd56ff40d..b4056179fb 100644 --- a/doc/print_prepare/stl-transformation.md +++ b/doc/print_prepare/stl-transformation.md @@ -5,7 +5,7 @@ OrcaSlicer primarily relies on STL meshes for slicing, but STL files may come wi Typically, STL files feature a low polygon count, which can adversely affect print quality. In contrast, using STEP files offers a higher-quality mesh that more accurately represents the original design. However, be aware that both high-polygon STL and STEP files can increase slicing time. -![stl-transformation-smooth-rough](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-smooth-rough.png?raw=true) +![stl-transformation-smooth-rough](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-smooth-rough.png?raw=true) ## Importing STEP files @@ -13,14 +13,14 @@ This setting determines how STEP files are converted into STL files and is displ If you don't see this when opening a STEP file, check [Don't show again](#dont-show-again) below. -![stl-transformation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation.png?raw=true) +![stl-transformation](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation.png?raw=true) ### Parameters: The transformation uses [Linear Deflection and Angular Deflection](https://dev.opencascade.org/doc/overview/html/occt_user_guides__mesh.html) parameters to control the mesh quality. A finer mesh will result in a more accurate representation of the original surface, but it will also increase the file size and processing time. -![stl-transformation-params](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-params.png?raw=true) +![stl-transformation-params](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-params.png?raw=true) - **Linear Deflection:** Specifies the maximum distance allowed between the original surface and its polygonal approximation. Lower values produce a mesh that more accurately follows the original curvature. - **Angular Deflection:** Defines the maximum allowable angle difference between the actual surface and its tessellated counterpart. Smaller angular deflection values yield a more precise mesh. @@ -29,14 +29,14 @@ A finer mesh will result in a more accurate representation of the original surfa Enabling this option will split the imported 3D file into separate objects. This is especially useful for adjusting individual object positions, tweaking print settings, or optimizing the model through simplification. -![stl-transformation-split](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-split.png?raw=true) +![stl-transformation-split](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-split.png?raw=true) #### Don't show again This option will hide the STL transformation dialog when opening a STEP file. To restore the dialog, go to "Preferences" (Ctrl + P) > "Show the STEP mesh parameter setting dialog". -![stl-transformation-enable](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-enable.png?raw=true) +![stl-transformation-enable](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/stl-transformation-enable.png?raw=true) ## Simplify model @@ -46,7 +46,7 @@ This function is especially useful for improving the performance of the slicer o To access the Simplify Model option, right-click on the object to simplify in the "Prepare" menu. -![simplify-menu](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/STL-Transformation/simplify-menu.png?raw=true) +![simplify-menu](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/STL-Transformation/simplify-menu.png?raw=true) It is recommended to enable the "Show Wireframe" option when running a simplification process to visually inspect the outcome. However, be cautious: overly aggressive simplification may lead to noticeable detail loss, increased ringing, or other printing issues. diff --git a/doc/print_settings/others/others_settings_brim.md b/doc/print_settings/others/others_settings_brim.md index 351c63c0dc..d92fd5d7dc 100644 --- a/doc/print_settings/others/others_settings_brim.md +++ b/doc/print_settings/others/others_settings_brim.md @@ -2,7 +2,7 @@ Brim is a flat layer printed around a model's base to improve adhesion to the print bed. It is useful for models with small footprints or those prone to warping. -![brim](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/brim/brim.png?raw=true) +![brim](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/brim/brim.png?raw=true) - [Type](#type) - [Auto](#auto) @@ -44,28 +44,28 @@ The computed brim width is capped at 20 mm and at 1.5× the thermal length. If t ### Painted -Generates a brim only on areas that have been painted ![toolbar_brimears_dark](https://github.com/SoftFever/OrcaSlicer/blob/main/resources/images/toolbar_brimears_dark.svg?raw=true) in the Prepare tab . +Generates a brim only on areas that have been painted ![toolbar_brimears_dark](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/resources/images/toolbar_brimears_dark.svg?raw=true) in the Prepare tab . ### Outer Creates a brim around the model's outer perimeter. Easier to remove than an inner brim, but may affect the model's appearance if not removed cleanly. -![brim-outer](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/brim/brim-outer.png?raw=true) +![brim-outer](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/brim/brim-outer.png?raw=true) ### Inner Creates a brim around inner perimeters. More difficult to remove and less effective than an outer brim and may obscure fine inner details, but it can hide the brim removal seam. -![brim-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/brim/brim-inner.png?raw=true) +![brim-inner](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/brim/brim-inner.png?raw=true) ### Outer and Inner Creates a brim around both the outer and inner perimeters of the model. This approach combines the **disadvantages** of both brim types, making it more difficult to remove while potentially obscuring fine details but improving overall adhesion. -![brim-outer-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/brim/brim-outer-inner.png?raw=true) +![brim-outer-inner](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/brim/brim-outer-inner.png?raw=true) > [!TIP] >> Consider using a [raft](support_settings_raft) on complex models/materials. @@ -75,7 +75,7 @@ This approach combines the **disadvantages** of both brim types, making it more Mouse ears are small, local brim extensions (typically placed near corners and sharp features) that improve bed adhesion and reduce warping while using less material than a full brim. The geometry analysis routine selects candidate locations based on the configured angle threshold and detection radius. -![brim-mouse-ears](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/brim/brim-mouse-ears.png?raw=true) +![brim-mouse-ears](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/brim/brim-mouse-ears.png?raw=true) #### Ear max angle diff --git a/doc/print_settings/others/others_settings_fuzzy_skin.md b/doc/print_settings/others/others_settings_fuzzy_skin.md index a02a11c96e..1af664214f 100644 --- a/doc/print_settings/others/others_settings_fuzzy_skin.md +++ b/doc/print_settings/others/others_settings_fuzzy_skin.md @@ -50,14 +50,14 @@ Select the underlying method used to produce the fuzzy effect. Each mode has dif ### Displacement -![Fuzzy-skin-Displacement-mode](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Displacement-mode.png?raw=true) +![Fuzzy-skin-Displacement-mode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Displacement-mode.png?raw=true) The classic method is when the pattern on the walls is achieved by shifting the printhead perpendicular to the wall. It gives a predictable result, but decreases the strength entire shells and open the pores inside the walls. It also increases the mechanical stress on the kinematics of the printer. The speed of general printing is slowing down. ### Extrusion -![Fuzzy-skin-Extrusion-mode](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Extrusion-mode.png?raw=true) +![Fuzzy-skin-Extrusion-mode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Extrusion-mode.png?raw=true) The fuzzy skin condition is obtained by changing the amount of extruded plastic as the print head moves linearly. There is no extra load on the kinematics, there is no decrease in the printing speed, the pores do not open, but the drawing turns out to be smoother by a factor of 2. It is suitable for creating "loose" walls to reduce internal stress into extruded plastic, or masking printing defects on the side walls - a matte effect. @@ -67,7 +67,7 @@ The fuzzy skin condition is obtained by changing the amount of extruded plastic ### Combined -![Fuzzy-skin-Combined-mode](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Combined-mode.png?raw=true) +![Fuzzy-skin-Combined-mode](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-Combined-mode.png?raw=true) This is a combination of Displacement and Extrusion modes. The clarity of the drawing is the same in the classic mode, but the walls remain strong and tight. The load on the kinematics is 2 times lower. The printing speed is faster than in Displacement mode, but the elapsed time will still be longer. @@ -82,31 +82,31 @@ Select the noise algorithm used to generate the random offsets. Different noise Simple uniform random noise. Produces a coarse, irregular texture. -![Fuzzy-skin-classic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-classic.png?raw=true) +![Fuzzy-skin-classic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-classic.png?raw=true) ### Perlin [Perlin noise](https://en.wikipedia.org/wiki/Perlin_noise) generates smooth, natural-looking variations with coherent structure. -![Fuzzy-skin-perlin](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-perlin.png?raw=true) +![Fuzzy-skin-perlin](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-perlin.png?raw=true) ### Billow Billow noise is similar to Perlin noise, but has a clumpier appearance. It can create more pronounced features and is often used for natural textures. -![Fuzzy-skin-billow](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-billow.png?raw=true) +![Fuzzy-skin-billow](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-billow.png?raw=true) ### Ridged Multifractal Creates sharp, jagged features and high-contrast detail. Useful for stone- or marble-like textures. -![Fuzzy-skin-ridged-multifractal](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-ridged-multifractal.png?raw=true) +![Fuzzy-skin-ridged-multifractal](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-ridged-multifractal.png?raw=true) ### Voronoi [Voronoi noise](https://en.wikipedia.org/wiki/Worley_noise) divides the surface into Voronoi cells and displaces each cell independently, creating a patchwork or cellular texture. -![Fuzzy-skin-voronoi](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-voronoi.png?raw=true) +![Fuzzy-skin-voronoi](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Fuzzy-skin/Fuzzy-skin-voronoi.png?raw=true) ## Point distance diff --git a/doc/print_settings/others/others_settings_skirt.md b/doc/print_settings/others/others_settings_skirt.md index 0f2ef8b4ab..a3d80dbf9d 100644 --- a/doc/print_settings/others/others_settings_skirt.md +++ b/doc/print_settings/others/others_settings_skirt.md @@ -20,7 +20,7 @@ Number of skirt loops to print. Usually 2 loops are recommended but increasing loops improve priming and give a larger buffer between the nozzle and the part, at the cost of extra filament and time. Set to 0 to disable the skirt. -![skirt](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/skirt/skirt.png?raw=true) +![skirt](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/skirt/skirt.png?raw=true) ## Type @@ -29,14 +29,14 @@ Set to 0 to disable the skirt. A single skirt that surrounds all objects on the bed. Recommended for general use. -![skirt-combined](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/skirt/skirt-combined.png?raw=true) +![skirt-combined](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/skirt/skirt-combined.png?raw=true) ### Per object Each object gets its own skirt printed separately. Recommended when using [Print sequence by object](others_settings_special_mode#by-object). -![skirt-per-object](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/skirt/skirt-per-object.png?raw=true) +![skirt-per-object](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/skirt/skirt-per-object.png?raw=true) ## Minimum extrusion Length diff --git a/doc/print_settings/others/others_settings_special_mode.md b/doc/print_settings/others/others_settings_special_mode.md index 753fe4415c..4a627f1c37 100644 --- a/doc/print_settings/others/others_settings_special_mode.md +++ b/doc/print_settings/others/others_settings_special_mode.md @@ -31,7 +31,7 @@ Use this for most prints where no special modifications are needed. Use "Close holes" to automatically close all holes in the model during slicing in the XY plane. This can help with models that have gaps or incomplete surfaces, ensuring a more solid print. -![close-holes](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/slicing-mode/close-holes.png?raw=true) +![close-holes](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/slicing-mode/close-holes.png?raw=true) ### Even Odd diff --git a/doc/print_settings/quality/quality_settings_bridging.md b/doc/print_settings/quality/quality_settings_bridging.md index 19e594417c..09f21dea6d 100644 --- a/doc/print_settings/quality/quality_settings_bridging.md +++ b/doc/print_settings/quality/quality_settings_bridging.md @@ -21,7 +21,7 @@ The actual internal bridge flow used is calculated by multiplying this value wit ## Thick bridges -![thick-bridges](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/bridging/thick-bridges.png?raw=true) +![thick-bridges](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/bridging/thick-bridges.png?raw=true) When enabled, thick bridges increase the reliability and strength of bridges, allowing you to span longer distances. However, this may result in a rougher surface finish. Disabling this option can improve the visual quality of bridges, but is recommended only for shorter spans or when using large nozzle sizes. @@ -64,8 +64,8 @@ This option creates bridges for counterbore holes, allowing them to be printed w Available modes include: - **None:** No bridge is created. - ![bridge-counterbore-none](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-none.png?raw=true) + ![bridge-counterbore-none](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-none.png?raw=true) - **Partially Bridged:** Only a part of the unsupported area will be bridged, creating a supporting layer for the next layer. - ![bridge-counterbore-partially](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-partially.gif?raw=true) + ![bridge-counterbore-partially](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-partially.gif?raw=true) - **Sacrificial Layer:** A full sacrificial bridge layer is created. This will close the counterbore hole, allowing the next layer to be printed without sagging. The sacrificial layer must be broken through after printing. - ![bridge-counterbore-sacrificial](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-sacrificial.png?raw=true) + ![bridge-counterbore-sacrificial](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/bridging/bridge-counterbore-sacrificial.png?raw=true) diff --git a/doc/print_settings/quality/quality_settings_ironing.md b/doc/print_settings/quality/quality_settings_ironing.md index c9b46b3889..5473411fb7 100644 --- a/doc/print_settings/quality/quality_settings_ironing.md +++ b/doc/print_settings/quality/quality_settings_ironing.md @@ -2,7 +2,7 @@ Ironing is a process used to improve the surface finish of 3D prints by smoothing out the top layers. This is achieved by printing a second time at the same height, but with a very [low flow rate](#flow) and a specific [pattern](#pattern). The result is a smoother surface that can enhance the aesthetic quality of the print increasing print time. -![ironing](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ironing/ironing.png?raw=true) +![ironing](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ironing/ironing.png?raw=true) > [!IMPORTANT] > Ironing can cause filament to move very slowly through the hotend, which increases the risk of heat creep and potential clogging. Monitor your printer during ironing and ensure your hotend cooling is adequate to prevent jams. @@ -12,11 +12,11 @@ Ironing is a process used to improve the surface finish of 3D prints by smoothin This setting controls which layer being ironed. - **Top Surfaces**: All [top surfaces](strength_settings_top_bottom_shells) will be ironed. This is the most common setting and is used to smooth out the top layers of the print. - ![ironing-top-surfaces](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ironing/ironing-top-surfaces.png?raw=true) + ![ironing-top-surfaces](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ironing/ironing-top-surfaces.png?raw=true) - **Topmost Surface**: Only the last [top layer](strength_settings_top_bottom_shells) of the print will be ironed. This is useful for prints where only the last layer needs to be smoothed. - ![ironing-topmost-surface](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ironing/ironing-topmost-surface.png?raw=true) + ![ironing-topmost-surface](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ironing/ironing-topmost-surface.png?raw=true) - **All solid layers**: All solid layers, including [internal solid infill](strength_settings_infill#internal-solid-infill) and [top layers](strength_settings_top_bottom_shells), will be ironed. This can be useful for prints that require a very smooth finish on all solid surfaces but may increase print time significantly. - ![ironing-all-solid-layers](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ironing/ironing-all-solid-layers.png?raw=true) + ![ironing-all-solid-layers](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ironing/ironing-all-solid-layers.png?raw=true) ## Pattern @@ -46,7 +46,7 @@ It's recommended to set this value to be equal to or less than the nozzle diamet The distance to keep from the edges, which can help prevent over-extrusion at the edges of the surface being ironed. -![ironing-inset](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ironing/ironing-inset.png?raw=true) +![ironing-inset](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ironing/ironing-inset.png?raw=true) If this value is set to 0, the ironing toolpath will start directly at the perimeter edges without any inward offset. This means the [ironing pattern](#pattern) will extend all the way to the outer boundaries of the top surface being ironed. @@ -54,7 +54,7 @@ If this value is set to 0, the ironing toolpath will start directly at the perim The angle of ironing lines offset relative to the top surface solid infill direction. -Commonly used ironing angle offsets are 0°, 45°, and 90° each producing a [different surface finish](https://github.com/SoftFever/OrcaSlicer/issues/10834#issuecomment-3322628589) which will depend on your printer nozzle. +Commonly used ironing angle offsets are 0°, 45°, and 90° each producing a [different surface finish](https://github.com/OrcaSlicer/OrcaSlicer/issues/10834#issuecomment-3322628589) which will depend on your printer nozzle. ## Fixed Angle diff --git a/doc/print_settings/quality/quality_settings_layer_height.md b/doc/print_settings/quality/quality_settings_layer_height.md index 4fd695faef..8a92e75f69 100644 --- a/doc/print_settings/quality/quality_settings_layer_height.md +++ b/doc/print_settings/quality/quality_settings_layer_height.md @@ -9,7 +9,7 @@ Using smaller layer heights increases print time but results in: - Enhanced detail on curves - [Better performance on overhangs](#layer-height-overhangs-impacts) -![layer-height-spheres](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/layer-height-spheres.png?raw=true) +![layer-height-spheres](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/layer-height-spheres.png?raw=true) - [Quick Reference](#quick-reference) - [Layer Height Guidelines](#layer-height-guidelines) @@ -47,6 +47,6 @@ A thicker first layer improves bed adhesion and compensates for build surface im Layer height directly affects [overhang angle](quality_settings_overhangs#maximum-angle) capability and quality. -![layer-height](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/layer-height.svg?raw=true) +![layer-height](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/layer-height.svg?raw=true) **Smaller layer heights** enable steeper overhangs by reducing the unsupported distance between layers, while **larger layer heights** increase this gap, leading to more sagging and requiring support material at shallower angles. diff --git a/doc/print_settings/quality/quality_settings_overhangs.md b/doc/print_settings/quality/quality_settings_overhangs.md index a3cddcb4f6..3251d4f393 100644 --- a/doc/print_settings/quality/quality_settings_overhangs.md +++ b/doc/print_settings/quality/quality_settings_overhangs.md @@ -14,7 +14,7 @@ Detect the overhang percentage relative to line width and use different speed to print. When detecting line width with 100% overhang, bridge options are used. -![overhang](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/overhangs/overhang.png?raw=true) +![overhang](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/overhangs/overhang.png?raw=true) ## Make overhang printable @@ -26,7 +26,7 @@ Every overhang exceeding the [maximum angle](#maximum-angle) will be modified to Maximum angle of overhangs to allow after making more steep overhangs printable. 90° will not change the model at all and allow any overhang, while 0 will replace all overhangs with conical material. -![overhang-printable](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/overhangs/overhang-printable.png?raw=true) +![overhang-printable](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/overhangs/overhang-printable.png?raw=true) > [!TIP] > Usually, a value between 45° and 60° works well for most printers and models. @@ -40,7 +40,7 @@ A value of 0 will fill all the holes in the model base. Create additional perimeter (overhang wall) paths over steep overhangs and areas where bridges cannot be anchored. -![extra-perimeters-on-overhangs](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/overhangs/extra-perimeters-on-overhangs.png?raw=true) +![extra-perimeters-on-overhangs](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/overhangs/extra-perimeters-on-overhangs.png?raw=true) ## Reverse on even @@ -52,7 +52,7 @@ It can also help reduce warping on floating regions over supports. For this setting to be the most effective, it is recommended to set the [Reverse Threshold](#reverse-threshold) to 0 so that all walls print in alternating directions on even layers irrespective of their overhang degree. A disadvantage of this setting is that the outer wall may show a texture due to the alternating extrusion direction. -![reverse-odd-texture](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/reverse-odd-texture.png?raw=true) +![reverse-odd-texture](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/reverse-odd-texture.png?raw=true) > [!NOTE] > Only be available if [Wall loop direction](quality_settings_wall_and_surfaces#wall-loop-direction) is set on **Auto** and [spiral vase mode](others_settings_special_mode#spiral-vase) is **disabled**. diff --git a/doc/print_settings/quality/quality_settings_precision.md b/doc/print_settings/quality/quality_settings_precision.md index 58a47ef893..e9a2386356 100644 --- a/doc/print_settings/quality/quality_settings_precision.md +++ b/doc/print_settings/quality/quality_settings_precision.md @@ -30,7 +30,7 @@ After a model is sliced this feature will replace straight line segments with ar This will result in a smaller G-code file for the same model, as arcs are used instead of many short line segments. This can improve print quality and reduce printing time, especially for curved surfaces. -![arc-fitting](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/arc-fitting.svg?raw=true) +![arc-fitting](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/arc-fitting.svg?raw=true) > [!IMPORTANT] > This option is only available for machines that support G2 and G3 commands and may impact in CPU usage on the printer. @@ -44,7 +44,7 @@ Klipper does not benefit from arc commands as these are split again into line se Used to compensate external dimensions of the model. With this option you can compensate material expansion or shrinkage, which can occur due to various factors such as the type of filament used, temperature fluctuations, or printer calibration issues. -Follow the [Calibration Guide](https://github.com/SoftFever/OrcaSlicer/wiki/Calibration) and [Filament Tolerance Calibration](https://github.com/SoftFever/OrcaSlicer/wiki/tolerance-calib) to determine the correct value for your printer and filament combination. +Follow the [Calibration Guide](https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration) and [Filament Tolerance Calibration](https://github.com/OrcaSlicer/OrcaSlicer/wiki/tolerance-calib) to determine the correct value for your printer and filament combination. ## Elephant foot compensation @@ -55,11 +55,11 @@ This feature compensates for the "elephant foot" effect, which occurs when the f - Bed temperature being too high. - Inaccurate bed height. -![elephant-foot](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot.svg?raw=true) +![elephant-foot](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot.svg?raw=true) To mitigate this effect, OrcaSlicer allows you to specify a negative distance that will be applied to the first specified number of layers. This adjustment effectively reduces the width of the first few layers, helping to achieve a more accurate final print size. -![elephant-foot-compensation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot-compensation.png?raw=true) +![elephant-foot-compensation](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/elephant-foot-compensation.png?raw=true) The compensation works as follows: When the `current_layer` is <= `input_compensation_layers` @@ -101,11 +101,11 @@ Slic3r and its forks, such as PrusaSlicer, SuperSlicer and OrcaSlicer, assume th - **Precise Wall Off** - ![PreciseWallOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOff.svg?raw=true) + ![PreciseWallOff](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOff.svg?raw=true) - **Precise Wall On** - ![PreciseWallOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOn.svg?raw=true) + ![PreciseWallOn](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/PreciseWallOn.svg?raw=true) This approach enhances the strength of 3D-printed parts. However, it does have some side effects. For instance, when the inner-outer wall order is used, the outer wall can be pushed outside, leading to potential size inaccuracy and more layer inconsistency. @@ -123,17 +123,17 @@ By enabling this parameter, the layer height of the last five layers is adjusted - **Precise Z Height Off** - ![PreciseZOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOff.png?raw=true) + ![PreciseZOff](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOff.png?raw=true) - **Precise Z Height On** - ![PreciseZOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOn.png?raw=true) + ![PreciseZOn](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/PreciseZOn.png?raw=true) ## Polyholes A polyhole is a technique used in FFF 3D printing to improve the accuracy of circular holes. Instead of modeling a perfect circle, the hole is represented as a polygon with a reduced number of flat sides. This simplification forces the slicer to treat each segment as a straight line, which prints more reliably. By carefully choosing the number of sides and ensuring the polygon sits on the outer boundary of the hole, you can produce openings that more closely match the intended diameter. -![PolyHoles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Precision/PolyHoles.png?raw=true) +![PolyHoles](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Precision/PolyHoles.png?raw=true) - Original implementation: [SuperSlicer Polyholes](https://github.com/supermerill/SuperSlicer/wiki/Polyholes) - Idea and mathematics: [Hydraraptor](https://hydraraptor.blogspot.com/2011/02/polyholes.html) diff --git a/doc/print_settings/quality/quality_settings_seam.md b/doc/print_settings/quality/quality_settings_seam.md index b0a5dce3a3..4a77879da7 100644 --- a/doc/print_settings/quality/quality_settings_seam.md +++ b/doc/print_settings/quality/quality_settings_seam.md @@ -42,7 +42,7 @@ However, as seams create weak points and slight surface "bulges" or "divots", [r Will attempt to align the seam to a hidden internal facet of the model. -![seam-aligned](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-aligned.png?raw=true) +![seam-aligned](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-aligned.png?raw=true) ### Aligned Back @@ -50,26 +50,26 @@ Combines [Aligned](#aligned) and [Back](#back) strategies by prioritizing seam p This is particularly useful for directional models like sculptures or figurines that have a clear front view. Unlike "Back" which always places seams at the rearmost position, "Aligned Back" uses intelligent positioning that avoids the front while maintaining sophisticated seam hiding capabilities. -![seam-aligned-back](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-aligned-back.png?raw=true) +![seam-aligned-back](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-aligned-back.png?raw=true) ### Nearest Will place the seam at the nearest starting point compared to where the nozzle stopped printing in the previous layer. This is optimized for speed, low travel, and acceptable strength. -![seam-nearest](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-nearest.png?raw=true) +![seam-nearest](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-nearest.png?raw=true) ### Back This option places the seam on the back side (Min Y point in that layer) of the object, away from the view. It is useful for objects that will be displayed with a specific orientation. -![seam-back](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-back.png?raw=true) +![seam-back](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-back.png?raw=true) ### Random This option places the seam randomly across the object, which can help to distribute the seam points and increase the overall strength of the print. -![seam-random](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-random.png?raw=true) +![seam-random](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-random.png?raw=true) ## Modifiers @@ -77,7 +77,7 @@ This option places the seam randomly across the object, which can help to distri As the seam location forms a weak point in the print, staggering the seam on the internal perimeters can help reduce stress points. This setting moves the start of the internal wall's seam around across layers as well as away from the external perimeter seam. This way, the internal and external seams don't all align at the same point and between them across layers, distributing those weak points further away from the seam location, hence making the part stronger. It can also help improve the water tightness of your model. -![seam-staggered-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-staggered-inner.gif?raw=true) +![seam-staggered-inner](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-staggered-inner.gif?raw=true) ### Seam gap @@ -88,13 +88,13 @@ Controls the gap in mm or as a percentage of the nozzle size between the two end For a well-tuned printer with [pressure advance](pressure-advance-calib) and [filament retraction](retraction-calib), a value of **0-15%** is typically optimal. -![seam-gap](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-gap.gif?raw=true) +![seam-gap](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-gap.gif?raw=true) ### Scarf joint seam Adjusts the extrusion flow rate at seam points to create a smooth overlap between the start and end of each loop, minimizing visible defects. -![scarf-joint-seam](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/scarf-joint-seam.png?raw=true) +![scarf-joint-seam](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/scarf-joint-seam.png?raw=true) Advantages: @@ -169,9 +169,9 @@ If role-based wipe speed is disabled, set this field to the absolute wipe speed When finishing printing a "loop" (i.e., an extrusion that starts and ends at the same point), move the nozzle slightly inwards towards the part. That move aims to reduce seam unevenness by tucking in the end of the seam to the part. It also slightly cleans the nozzle before traveling to the next area of the model, reducing stringing. This setting will use your printer/material Wipe Distance and retract amount before wipe values. -![seam-wipe-on-loop](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-wipe-on-loop.png?raw=true) +![seam-wipe-on-loop](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-wipe-on-loop.png?raw=true) -![seam-wipe-on-loops-options](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-wipe-on-loops-options.png?raw=true) +![seam-wipe-on-loops-options](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-wipe-on-loops-options.png?raw=true) ### Wipe Before External @@ -197,7 +197,7 @@ There are several factors that influence how clean the seam of your model is, wi However, due to mechanical and material tolerances, as well as the very nature of 3D printing with FFF, that is not always possible. Hopefully with some tuning you'll be able to achieve prints like this! -![seam-quality](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/seam/seam-quality.jpg?raw=true) +![seam-quality](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/seam/seam-quality.jpg?raw=true) ### Troubleshooting the Start of a Seam diff --git a/doc/print_settings/quality/quality_settings_wall_and_surfaces.md b/doc/print_settings/quality/quality_settings_wall_and_surfaces.md index fce72eff22..5ff7f29431 100644 --- a/doc/print_settings/quality/quality_settings_wall_and_surfaces.md +++ b/doc/print_settings/quality/quality_settings_wall_and_surfaces.md @@ -22,29 +22,29 @@ Print sequence of the internal (inner) and external (outer) walls. Use Inner/Outer for best overhangs. This is because the overhanging walls can adhere to a neighboring perimeter while printing. However, this option results in slightly reduced surface quality as the external perimeter is deformed by being squashed to the internal perimeter. -![inner-outer](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer.gif?raw=true) +![inner-outer](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer.gif?raw=true) ### Inner/Outer/Inner Use Inner/Outer/Inner for the best external surface finish and dimensional accuracy as the external wall is printed undisturbed from an internal perimeter. However, overhang performance will reduce as there is no internal perimeter to print the external wall against. This option requires a minimum of 3 walls to be effective as it prints the internal walls from the 3rd perimeter onwards first, then the external perimeter and, finally, the first internal perimeter. This option is recommended against the Outer/Inner option in most cases. -![inner-outer-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer-inner.gif?raw=true) +![inner-outer-inner](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/inner-outer-inner.gif?raw=true) ### Outer/Inner Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of [Inner/Outer/Inner](#innerouterinner) option. However, the z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface. -![outer-inner](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/outer-inner.gif?raw=true) +![outer-inner](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/outer-inner.gif?raw=true) ### Print infill first When this option is enabled, the [infill](strength_settings_infill) and [top/bottom shells](strength_settings_top_bottom_shells) are printed first, followed by the walls. This can be useful for some overhangs where the infill can support the walls. -![infill-first](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-first.gif?raw=true) +![infill-first](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-first.gif?raw=true) **However**, the infill will slightly push out the printed walls where it is attached to them, resulting in a worse external surface finish. It can also cause the infill to shine through the external surfaces of the part. -![infill-ghosting](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-ghosting.png?raw=true) +![infill-ghosting](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/infill-ghosting.png?raw=true) When using this option is recommended to use the [Precise Wall](quality_settings_precision#precise-wall), [Inner/Outer/Inner](#innerouterinner) wall printing order or reduce [Infill/Wall Overlap](strength_settings_infill#infill-wall-overlap) to avoid the infill pushing out the external wall. @@ -72,14 +72,14 @@ Other flow ratios, such as ratios for the first layer (does not affect brims and Use only one wall on flat surfaces, to give more space to the [top infill pattern](strength_settings_top_bottom_shells#surface-pattern). Specially useful in small features, like letters, where the top surface is very small and [concentric pattern](strength_settings_patterns#concentric) from walls would not cover it properly. -![only-one-wall](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall.gif?raw=true) +![only-one-wall](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall.gif?raw=true) ### Threshold If a top surface has to be printed and it's partially covered by another layer, it won't be considered at a top layer where its width is below this value. This can be useful to not let the 'one perimeter on top' trigger on surface that should be covered only by perimeters. This value can be a mm or a % of the perimeter extrusion width. -![only-one-wall-threshold](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall-threshold.png?raw=true) +![only-one-wall-threshold](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/only-one-wall-threshold.png?raw=true) > [!WARNING] > If enabled, artifacts can be created if you have some thin features on the next layer, like letters. Set this setting to 0 to remove these artifacts. @@ -92,7 +92,7 @@ Instead of traveling directly through a wall, the print head will detour around While this increases print time slightly, the improvement in print quality—especially with materials prone to stringing like **PETG** or **TPU**, often justifies the tradeoff. Highly recommended for detailed or aesthetic prints. -![avoid-crossing-walls](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/avoid-crossing-walls.png?raw=true) +![avoid-crossing-walls](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/avoid-crossing-walls.png?raw=true) > [!NOTE] > This feature is not compatible with Timelapse mode, as it can cause unexpected travel moves. @@ -114,7 +114,7 @@ Enables adaptive flow control for small infill areas. This feature helps address extrusion problems that often occur in small regions of solid infill, such as the tops of narrow letters or fine features. In these cases, standard extrusion flow may be too much for the available space, leading to over-extrusion or poor surface quality. -![flow-compensation-model](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model.png?raw=true) +![flow-compensation-model](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model.png?raw=true) It works by dynamically adjusting the extrusion flow based on the length of the extrusion path, ensuring more precise material deposition in small spaces. @@ -125,7 +125,7 @@ This is a native implementation of @Alexander-T-Moss [Small Area Flow Compensati The model uses a list of Extrusion Length and Flow Correction Factor value pairs. Each pair defines how much flow should be used for a specific Extrusion Length. For values between the listed points, the flow is calculated using linear interpolation. -![flow-compensation-model-graph](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model-graph.png?raw=true) +![flow-compensation-model-graph](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Wall-Order/flow-compensation-model-graph.png?raw=true) For example for the following model: diff --git a/doc/print_settings/quality/quality_settings_wall_generator.md b/doc/print_settings/quality/quality_settings_wall_generator.md index e464ee5c76..52c76b86fe 100644 --- a/doc/print_settings/quality/quality_settings_wall_generator.md +++ b/doc/print_settings/quality/quality_settings_wall_generator.md @@ -18,13 +18,13 @@ The Wall Generator defines how the outer and inner walls (perimeters) of the mod The Classic wall generator is a simple and reliable method used in many slicers. It creates as many walls as possible (limited by [Wall Loops](strength_settings_walls#wall-loops)) by extruding along the model’s perimeter using the defined [Line Width](quality_settings_line_width). This method does not vary extrusion width and is ideal for fast, predictable slicing. -![wallgenerator-classic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-classic.png?raw=true) +![wallgenerator-classic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-classic.png?raw=true) ## Arachne The Arachne wall generator dynamically adjusts extrusion width to follow the shape of the model more closely. This allows better handling of thin features and smooth transitions between wall counts. -![wallgenerator-arachne](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-arachne.png?raw=true) +![wallgenerator-arachne](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/WallGenerator/wallgenerator-arachne.png?raw=true) > [!NOTE] > [A Framework for Adaptive Width Control of Dense Contour-Parallel Toolpaths in Fused Deposition Modeling](https://www.sciencedirect.com/science/article/pii/S0010448520301007?via%3Dihub) diff --git a/doc/print_settings/speed/speed_settings_advanced.md b/doc/print_settings/speed/speed_settings_advanced.md index d86834d626..1c1b2afb53 100644 --- a/doc/print_settings/speed/speed_settings_advanced.md +++ b/doc/print_settings/speed/speed_settings_advanced.md @@ -7,7 +7,7 @@ This happens by reducing the stresses put on the extrusion system as well as red This feature is especially helpful when printing at high accelerations and large flow rates as the deviations are larger in these cases. -![ers-intro](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-intro.png?raw=true) +![ers-intro](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ERS/ers-intro.png?raw=true) - [Theory](#theory) - [Acceleration vs. Extrusion rate smoothing](#acceleration-vs-extrusion-rate-smoothing) @@ -28,7 +28,7 @@ In summary, **it takes the "edge" off rapid extrusion changes caused by accelera **The example below shows the artifact that is mitigated by ERS.** -![ers-artefact](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-artefact.jpg?raw=true) +![ers-artefact](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ERS/ers-artefact.jpg?raw=true) The bulging visible above is due to the extruder not being able to respond fast enough to the required speed change when printing with high accelerations and high speeds and being requested to slow down for an overhang. @@ -70,7 +70,7 @@ t = \frac{v_f - v_i}{a} A printer printing at 200mm/sec with a 0.42 line width and 0.16 layer height would be extruding plastic at approx. 12.16mm³/sec, as can also be seen from the below visual. -![ers-printspeed](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/ERS/ers-printspeed.png?raw=true) +![ers-printspeed](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/ERS/ers-printspeed.png?raw=true) When the printer is extruding at 40mm/sec with the same line width and layer height as above, the flow rate is 2.43mm³/sec. diff --git a/doc/print_settings/speed/speed_settings_initial_layer_speed.md b/doc/print_settings/speed/speed_settings_initial_layer_speed.md index fc1a5ed635..05b9da9131 100644 --- a/doc/print_settings/speed/speed_settings_initial_layer_speed.md +++ b/doc/print_settings/speed/speed_settings_initial_layer_speed.md @@ -20,4 +20,4 @@ Usually, this is set to 100% of the [travel speed](speed_settings_travel), but i Specifies how many of the first layers should be printed at a reduced speed. Instead of jumping straight to full speed after the first layer, the speed gradually increases in a linear fashion over this number of layers. This gradual ramp-up helps maintain adhesion and gives the print more stability in its early stages, especially on prints with a small contact area or materials prone to warping. -![number-of-slow-layers](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/speed/number-of-slow-layers.png?raw=true) +![number-of-slow-layers](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/speed/number-of-slow-layers.png?raw=true) diff --git a/doc/print_settings/speed/speed_settings_other_layers_speed.md b/doc/print_settings/speed/speed_settings_other_layers_speed.md index cca1b32d9a..c29277756d 100644 --- a/doc/print_settings/speed/speed_settings_other_layers_speed.md +++ b/doc/print_settings/speed/speed_settings_other_layers_speed.md @@ -40,7 +40,7 @@ Any shape (not only circles) will be considered as a small perimeter. If expressed as percentage (for example: 80%) it will be calculated on the [outer wall speed](#outer-wall). > [!NOTE] -> Zero will use [50%](https://github.com/SoftFever/OrcaSlicer/blob/7d2a12aa3cbf2e7ca5d0523446bf1d1d4717f8d1/src/libslic3r/GCode.cpp#L4698) of [outer wall speed](#outer-wall). +> Zero will use [50%](https://github.com/OrcaSlicer/OrcaSlicer/blob/7d2a12aa3cbf2e7ca5d0523446bf1d1d4717f8d1/src/libslic3r/GCode.cpp#L4698) of [outer wall speed](#outer-wall). ### Small perimeters threshold diff --git a/doc/print_settings/speed/speed_settings_overhang_speed.md b/doc/print_settings/speed/speed_settings_overhang_speed.md index 41dd8829c3..b2a23a0230 100644 --- a/doc/print_settings/speed/speed_settings_overhang_speed.md +++ b/doc/print_settings/speed/speed_settings_overhang_speed.md @@ -14,7 +14,7 @@ This can help improve print quality and reduce issues like stringing or sagging. Enable this option to slow down printing in areas where perimeters may have curled upwards. For example, additional slowdown will be applied when printing overhangs on sharp corners like the front of the Benchy hull, reducing curling which compounds over multiple layers. -![slow-down-for-curled-perimeters](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/speed/slow-down-for-curled-perimeters.png?raw=true) +![slow-down-for-curled-perimeters](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/speed/slow-down-for-curled-perimeters.png?raw=true) It is generally recommended to have this option switched on unless your printer cooling is powerful enough or the print speed slow enough that perimeter curling does not happen. If printing with a high external perimeter speed, this parameter may introduce slight artifacts when slowing down due to the large variance in print speeds. If you notice artifacts, ensure your pressure advance is tuned correctly. diff --git a/doc/print_settings/speed/speed_settings_travel.md b/doc/print_settings/speed/speed_settings_travel.md index d3411db24a..f2f170f513 100644 --- a/doc/print_settings/speed/speed_settings_travel.md +++ b/doc/print_settings/speed/speed_settings_travel.md @@ -1,6 +1,6 @@ # Travel -![travel-lines](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/speed/travel-lines.png?raw=true) +![travel-lines](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/speed/travel-lines.png?raw=true) Travel speed is the speed at which the print head moves when not extruding filament. This speed is typically faster than the printing speed, as there is no need to carefully place material. However, setting the travel speed too high can lead to issues such as missed steps or ringing artifacts. diff --git a/doc/print_settings/strength/strength_settings_advanced.md b/doc/print_settings/strength/strength_settings_advanced.md index 461f998c44..e20e534fb5 100644 --- a/doc/print_settings/strength/strength_settings_advanced.md +++ b/doc/print_settings/strength/strength_settings_advanced.md @@ -13,7 +13,7 @@ Aligns infill and surface fill directions to follow the model's orientation on the build plate. When enabled, fill directions rotate with the model to maintain optimal characteristics. -![fill-direction-to-model](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/fill-direction-to-model.png?raw=true) +![fill-direction-to-model](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/fill-direction-to-model.png?raw=true) ## Bridge infill direction @@ -30,7 +30,7 @@ This setting helps to ensure that small areas of sparse infill do not compromise Automatically combine [sparse infill](strength_settings_infill) of several layers so they print together and reduce print time and while increasing strength. While walls are still printed with the original [layer height](quality_settings_layer_height). -![fill-combination](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/fill-combination.png?raw=true) +![fill-combination](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/fill-combination.png?raw=true) ### Max layer height diff --git a/doc/print_settings/strength/strength_settings_infill.md b/doc/print_settings/strength/strength_settings_infill.md index 78c0ae54a4..b0bca4113c 100644 --- a/doc/print_settings/strength/strength_settings_infill.md +++ b/doc/print_settings/strength/strength_settings_infill.md @@ -37,7 +37,7 @@ Infill density determines the amount of material used to fill the interior of a This setting allows you to generate your selected [infill pattern](#sparse-infill-pattern) using multiple parallel lines while preserving both the defined [infill density](#sparse-infill-density) and the overall material usage. -![infill-multiline-1-5](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-1-5.gif?raw=true) +![infill-multiline-1-5](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-1-5.gif?raw=true) > [!NOTE] > Orca's approach is different from other slicers that simply multiply the number of lines and material usage, generating a denser infill than expected. @@ -62,12 +62,12 @@ This setting allows you to generate your selected [infill pattern](#sparse-infil - **Fire-retardant applications:** Some flame-resistant materials (like PolyMax PC-FR) require a minimum printed wall/infill thickness—often 1.5–3 mm—to comply with standards. Since infill contributes to overall part thickness, using multiple lines helps achieve the necessary thickness without switching to a large nozzle or printing with 100% infill. This is especially useful for high-temperature materials like PC, which are prone to warping when fully solid. - Creating **aesthetic** infill patterns (like [Grid](strength_settings_patterns#grid) or [Honeycomb](strength_settings_patterns#honeycomb)) with multiple line widths—without relying on CAD modeling or being limited to a single extrusion width. -![infill-multiline-aesthetic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-aesthetic.gif?raw=true) +![infill-multiline-aesthetic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-aesthetic.gif?raw=true) > [!WARNING] > For self intersecting infills (e.g. [Cubic](strength_settings_patterns#cubic), [Grid](strength_settings_patterns#grid)) multiline count greater than 3 may cause layer shift, extruder clog or other issues due to overlapping of lines on intersection points. > -> ![infill-multiline-overlapping](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-overlapping.gif?raw=true) +> ![infill-multiline-overlapping](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-multiline-overlapping.gif?raw=true) ## Direction and Rotation @@ -78,7 +78,7 @@ This setting allows you to generate your selected [infill pattern](#sparse-infil Controls the direction of the infill lines to optimize or strengthen the print. -![fill-direction](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/fill-direction.png?raw=true) +![fill-direction](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/fill-direction.png?raw=true) ### Rotation @@ -91,7 +91,7 @@ For example: 0,90 ``` -![fill-rotation](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/fill-rotation.png?raw=true) +![fill-rotation](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/fill-rotation.png?raw=true) The first layer uses 0°, the second uses 90°, and the pattern repeats for subsequent layers. @@ -117,11 +117,11 @@ Infill area is enlarged slightly to overlap with wall for better bonding. The pe - **Infill Wall Overlap Off** -![InfillWallOverlapOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/InfillWallOverlapOff.svg?raw=true) +![InfillWallOverlapOff](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/InfillWallOverlapOff.svg?raw=true) - **Infill Wall Overlap On** -![InfillWallOverlapOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/InfillWallOverlapOn.svg?raw=true) +![InfillWallOverlapOn](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/InfillWallOverlapOn.svg?raw=true) ## Apply gap fill @@ -151,11 +151,11 @@ OrcaSlicer tries to connect two close infill lines to a short perimeter segment. - **Anchor Off** -![InfillAnchorOff](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/InfillAnchorOff.png?raw=true) +![InfillAnchorOff](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/InfillAnchorOff.png?raw=true) - **Anchor On** -![InfillAnchorOn](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/InfillAnchorOn.png?raw=true) +![InfillAnchorOn](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/InfillAnchorOn.png?raw=true) ## Internal Solid Infill Line pattern of internal solid infill. If the [detect narrow internal solid infill](strength_settings_advanced#detect-narrow-internal-solid-infill) be enabled, the [concentric pattern](strength_settings_patterns#concentric) will be used for the small area. @@ -165,7 +165,7 @@ Line pattern of internal solid infill. If the [detect narrow internal solid infi Insert extra solid infills at specific layers to add strength at critical points in your print. This feature allows you to strategically reinforce your part without changing the overall sparse infill density. -![extra-solid-infill](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/extra-solid-infill.gif?raw=true) +![extra-solid-infill](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/extra-solid-infill.gif?raw=true) The pattern supports two formats: diff --git a/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md b/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md index e3b61a9c5e..7ecc608652 100644 --- a/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md +++ b/doc/print_settings/strength/strength_settings_infill_rotation_template_metalanguage.md @@ -65,48 +65,48 @@ This metalanguage provides a way to define the [direction and rotation](strength `[joint sign]` - the symbol which determines the method of connection for turning of the infill: - `/` - linear displacement of the infill. e.g. `+22.5/50%` - ![linear-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/linear-joint.png?raw=true) + ![linear-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/linear-joint.png?raw=true) - `#` - infill of multiple layers with vertical displacement at finish angle. e.g. `+22.5#50%` - ![multiple-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint.png?raw=true) + ![multiple-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint.png?raw=true) - `#-` - infill of multiple layers with vertical displacement at initial angle. e.g. `+22.5#-50%` - ![multiple-joint-initial-angle](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint-initial-angle.png?raw=true) + ![multiple-joint-initial-angle](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint-initial-angle.png?raw=true) - `|` - infill of multiple layers with vertical displacement at middle angle. e.g. `+22.5|50%` - ![multiple-joint-middle-angle](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint-middle-angle.png?raw=true) + ![multiple-joint-middle-angle](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/multiple-joint-middle-angle.png?raw=true) - `N` - infill formed by sinus function (vertical connection). e.g. `+22.5N50%` - ![v-sinus-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/v-sinus-joint.png?raw=true) + ![v-sinus-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/v-sinus-joint.png?raw=true) - `n` - infill formed by sinus function (vertical connection, lazy). e.g. `+22.5n50%` - ![v-sinus-joint-lazy](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/v-sinus-joint-lazy.png?raw=true) + ![v-sinus-joint-lazy](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/v-sinus-joint-lazy.png?raw=true) - `Z` - infill formed by sinus function (horizontal connection). e.g. `+22.5Z50%` - ![z-h-sinus-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/z-h-sinus-joint.png?raw=true) + ![z-h-sinus-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/z-h-sinus-joint.png?raw=true) - `z` - infill formed by sinus function (horizontal connection, lazy). e.g. `+22.5z50%` - ![h-sinus-joint-lazy](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/h-sinus-joint-lazy.png?raw=true) + ![h-sinus-joint-lazy](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/h-sinus-joint-lazy.png?raw=true) - `L` - infill formed by quarter of circle (horizontal to vertical connection). e.g. `+22.5L50%` - ![vh-quarter-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/vh-quarter-joint.png?raw=true) + ![vh-quarter-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/vh-quarter-joint.png?raw=true) - `l` - infill formed by quarter of circle (vertical to horizontal connection). e.g. `+22.5l50%` - ![hv-quarter-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/hv-quarter-joint.png?raw=true) + ![hv-quarter-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/hv-quarter-joint.png?raw=true) - `U` - infill formed by squared function. e.g. `+22.5U50%` - ![squared-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/squared-joint.png?raw=true) + ![squared-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/squared-joint.png?raw=true) - `u-` - infill formed by squared function (inverse). e.g. `+22.5u-50%` - ![squared-joint-inverse](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/squared-joint-inverse.png?raw=true) + ![squared-joint-inverse](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/squared-joint-inverse.png?raw=true) - `Q` - infill formed by cubic function. e.g. `+22.5Q50%` - ![cubic-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/cubic-joint.png?raw=true) + ![cubic-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/cubic-joint.png?raw=true) - `q-` - infill formed by cubic function (inverse). e.g. `+22.5q-50%` - ![cubic-joint-inverse](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/cubic-joint-inverse.png?raw=true) + ![cubic-joint-inverse](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/cubic-joint-inverse.png?raw=true) - `$` - infill formed by arcsinus method. e.g. `+22.5$50%` - ![arcsinus-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/arcsinus-joint.png?raw=true) + ![arcsinus-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/arcsinus-joint.png?raw=true) - `~` - infill formed with random angle. e.g. `+22.5~50%` - ![random-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/random-joint.png?raw=true) + ![random-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/random-joint.png?raw=true) - `^` - infill formed with pseudorandom angle. e.g. `+22.5^50%` - ![pseudorandom-joint](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/pseudorandom-joint.png?raw=true) + ![pseudorandom-joint](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/pseudorandom-joint.png?raw=true) ### Counting `[-]ℕ` - counting the distance at which the turn will take place: - `ℕ` - the count will take place by ℕ layers. e.g. `+22.5/50%` - ![infill-counting](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/infill-counting.png?raw=true) + ![infill-counting](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/infill-counting.png?raw=true) - `-ℕ` - indicates that the joint form will be flipped upward. e.g. `+22.5/-50%` - ![infill-counting-flipped](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/infill-counting-flipped.png?raw=true) + ![infill-counting-flipped](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/infill-counting-flipped.png?raw=true) - `B` - the count will take place over the next layers equal to the bottom_shell_layers parameter - `T` - the count will take place over the next layers equal to the top_shell_layers parameter @@ -136,31 +136,31 @@ They include a simple definition of the angle for each layer. Note that the init - `0`, `15`, `45.5`, `256.5605`... - just fill at the existing angle. The initial direction starts at the X-axis, and the acceptable range of values is from 0 to 360 - `0` as well as `+0`, `-0` or just empty template - ![0](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0.png?raw=true) + ![0](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0.png?raw=true) - `45` - ![45](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/45.png?raw=true) + ![45](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/45.png?raw=true) - `0, 30` - is a simple alternation through each layer in the direction of 0 and 30 degrees. - ![0-30](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0-30.png?raw=true) + ![0-30](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0-30.png?raw=true) - `0%`, `10%`, `25%`, `100%`... - infill angle determined from relative terms from a full turn of 360 degree rotation. Rotate by 0, 36, 90, and 0 degrees. - `25%` - the equivalent of `90` instruction. - ![90](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/90.png?raw=true) + ![90](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/90.png?raw=true) - `30, 60, 90, 120, 150, 0` - a more complex command defines a turn every layer at 30 degrees. At the end of the template line, the next instruction is read first, and this process continues until the entire height of the model is filled. ### Relative instructions - `+30` - this is a short instruction for counterclockwise rotation. The equivalent of `30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 0` or `30, 60, 90, 120, 150, 0` instruction. - ![+30](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30.png?raw=true) + ![+30](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30.png?raw=true) - `-30` - this is the same instruction, but with clockwise rotation. The equivalent of `330, 300, 270, 240, 210, 180, 150, 120, 90, 60, 30, 0` or `330, 300, 270, 240, 210, 0` instruction. - `+150` - you can specify a different multiple of the irrational angle for better fill dispersion = `150, 300, 90, 240, 30, 180, 330, 120, 270, 60, 210, 0` ... - `+45` - The equivalent of `45, 90, 135, 180, 225, 270, 315, 0` or `45, 90, 135, 0` instruction. - ![+45](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45.png?raw=true) + ![+45](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45.png?raw=true) - `+90` - The equivalent of `90, 180, 270, 0` or `90, 0` instruction. - ![+90](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+90.png?raw=true) + ![+90](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+90.png?raw=true) - `+15%` - useful for dividing angles on a decimal basis = `54, 108, 162, 270, 324, 18, 72, 126, 180, 234, 288, 342, 36, 90, 144, 196, 252, 306, 0` ... - `+30, +90` - a complex instruction setting the rotation of each layer in these positions = `30, 120, 150, 240, 270, 0` ... - ![+30+90](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30+90.png?raw=true) + ![+30+90](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30+90.png?raw=true) - `0, +30, +90` - a complex instruction setting the rotation of each layer in these positions = `0, 30, 120` ... - ![0+30+90](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0+30+90.png?raw=true) + ![0+30+90](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/0+30+90.png?raw=true) ### Repetitive, adjusting and one-time instructions @@ -183,9 +183,9 @@ If there is a `-` sign before the numeric value, then the initial fill angle cha It is important to know that this will not be the exact length, but will be tied to the nearest layer from below. - `+45/100` - rotate the next 100 layers linearly at a 45 degree angle. For this model, this instruction is equivalent to `+45/100%` as it contains 100 layers. - ![+45-100](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45-100.png?raw=true) + ![+45-100](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45-100.png?raw=true) - When changing the height of the instruction `+45/50` or `+45/50%` - the final angle will be 90, as the turn will occur twice. - ![+45-50](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45-50.png?raw=true) + ![+45-50](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+45-50.png?raw=true) - `-50%Z1cm` - rotate one centimeter of infill by sinus function at a 180 degree CW. ### Constant layer number instructions @@ -200,11 +200,11 @@ There are 2 letter signs `T` and `B` that can determine the number of shell laye ## Complex template examples - `+10L25%, -10l25%, -10L25%, +10l25%` - fill the model with sine period with 10 degree amplitude - ![10period](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/10period.png?raw=true) + ![10period](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/10period.png?raw=true) - `+30/-10#` - rotate the infill at height of 10 standard layers (or @ standard layer height is 0.2mm x 10 = 2mm) inverse linearly at a 30 degree angle. - ![+30-10](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30-10.png?raw=true) + ![+30-10](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+30-10.png?raw=true) - `+360~100%` or `+100%~100%` - fill the model with infill with random direction at each layer. - ![+360-100p](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+360-100p.png?raw=true) + ![+360-100p](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/Template-metalanguage/+360-100p.png?raw=true) ## Credits diff --git a/doc/print_settings/strength/strength_settings_patterns.md b/doc/print_settings/strength/strength_settings_patterns.md index 94c1a243d3..9e5a24f777 100644 --- a/doc/print_settings/strength/strength_settings_patterns.md +++ b/doc/print_settings/strength/strength_settings_patterns.md @@ -33,49 +33,49 @@ Some patterns may complete faster due to more efficient use of the print head's Layer time variability refers to the differences in time it takes to print each layer of a pattern. Some patterns may have consistent layer times, while others may experience significant fluctuations. These variations can potentially impact the outer appearance of the print due to differences in cooling and material flow between layers. -![fill-layer-time-variability](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/fill-layer-time-variability.png?raw=true) +![fill-layer-time-variability](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/fill-layer-time-variability.png?raw=true) ## Patterns Quick Reference | - | Pattern | Strength | Material Usage | Print Time | Layer time Variability | |---|---|---|---|---|---| -| param_monotonic | [Monotonic](#monotonic) | X-Y: ⚪️ Normal
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_monotonicline | [Monotonic line](#monotonic-line) | X-Y: ⚪️ Normal
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_rectilinear | [Rectilinear](#rectilinear) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_alignedrectilinear | [Aligned Rectilinear](#aligned-rectilinear) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_zigzag | [Zig Zag](#zig-zag) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_crosszag | [Cross Zag](#cross-zag) | X-Y: ⚪️ Normal
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_lockedzag | [Locked Zag](#locked-zag) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal-Low | ⚪️ Normal-High | ⚪️ Normal-High | 🟢 None | -| param_line | [Line](#line) | X-Y: 🟡 Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_grid | [Grid](#grid) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🟣 Low | 🟢 None | -| param_triangles | [Triangles](#triangles) | X-Y: 🟣 High
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_tri-hexagon | [Tri-hexagon](#tri-hexagon) | X-Y: 🟣 High
Z: 🔘 Normal-High | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_cubic | [Cubic](#cubic) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_adaptivecubic | [Adaptive Cubic](#adaptive-cubic) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | 🟣 Low | 🟣 Low | 🔵 Unnoticeable | -| param_quartercubic | [Quarter Cubic](#quarter-cubic) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_supportcubic | [Support Cubic](#support-cubic) | X-Y: 🟡 Low
Z: 🟡 Low | 🔵 Extra-Low | 🔵 Extra-Low | 🔴 Likely Noticeable | -| param_lightning | [Lightning](#lightning) | X-Y: 🟡 Low
Z: 🟡 Low | 🟢 Ultra-Low | 🟢 Ultra-Low | 🔴 Likely Noticeable | -| param_honeycomb | [Honeycomb](#honeycomb) | X-Y: 🟣 High
Z: 🟣 High | 🟡 High | 🔴 Ultra-High | 🟢 None | -| param_3dhoneycomb | [3D Honeycomb](#3d-honeycomb) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | 🔘 Normal-Low | 🟠 Extra-High | 🟡 Possibly Noticeable | -| param_lateral-honeycomb | [Lateral Honeycomb](#lateral-honeycomb) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal-Low | ⚪️ Normal | 🔘 Normal-Low | 🟡 Possibly Noticeable | -| param_lateral-lattice | [Lateral Lattice](#lateral-lattice) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | -| param_crosshatch | [Cross Hatch](#cross-hatch) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | ⚪️ Normal | 🟡 High | 🔴 Likely Noticeable | -| param_tpmsd | [TPMS-D](#tpms-d) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🟡 High | 🟡 Possibly Noticeable | -| param_tpmsfk | [TPMS-FK](#tpms-fk) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | ⚪️ Normal | 🔴 Ultra-High | 🟡 Possibly Noticeable | -| param_gyroid | [Gyroid](#gyroid) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔴 Ultra-High | 🔵 Unnoticeable | -| param_concentric | [Concentric](#concentric) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_hilbertcurve | [Hilbert Curve](#hilbert-curve) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🟠 Extra-High | 🟢 None | -| param_archimedeanchords | [Archimedean Chords](#archimedean-chords) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | -| param_octagramspiral | [Octagram Spiral](#octagram-spiral) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | ⚪️ Normal | 🟢 None | +| param_monotonic | [Monotonic](#monotonic) | X-Y: ⚪️ Normal
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_monotonicline | [Monotonic line](#monotonic-line) | X-Y: ⚪️ Normal
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_rectilinear | [Rectilinear](#rectilinear) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_alignedrectilinear | [Aligned Rectilinear](#aligned-rectilinear) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_zigzag | [Zig Zag](#zig-zag) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_crosszag | [Cross Zag](#cross-zag) | X-Y: ⚪️ Normal
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_lockedzag | [Locked Zag](#locked-zag) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal-Low | ⚪️ Normal-High | ⚪️ Normal-High | 🟢 None | +| param_line | [Line](#line) | X-Y: 🟡 Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_grid | [Grid](#grid) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🟣 Low | 🟢 None | +| param_triangles | [Triangles](#triangles) | X-Y: 🟣 High
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_tri-hexagon | [Tri-hexagon](#tri-hexagon) | X-Y: 🟣 High
Z: 🔘 Normal-High | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_cubic | [Cubic](#cubic) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_adaptivecubic | [Adaptive Cubic](#adaptive-cubic) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | 🟣 Low | 🟣 Low | 🔵 Unnoticeable | +| param_quartercubic | [Quarter Cubic](#quarter-cubic) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_supportcubic | [Support Cubic](#support-cubic) | X-Y: 🟡 Low
Z: 🟡 Low | 🔵 Extra-Low | 🔵 Extra-Low | 🔴 Likely Noticeable | +| param_lightning | [Lightning](#lightning) | X-Y: 🟡 Low
Z: 🟡 Low | 🟢 Ultra-Low | 🟢 Ultra-Low | 🔴 Likely Noticeable | +| param_honeycomb | [Honeycomb](#honeycomb) | X-Y: 🟣 High
Z: 🟣 High | 🟡 High | 🔴 Ultra-High | 🟢 None | +| param_3dhoneycomb | [3D Honeycomb](#3d-honeycomb) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | 🔘 Normal-Low | 🟠 Extra-High | 🟡 Possibly Noticeable | +| param_lateral-honeycomb | [Lateral Honeycomb](#lateral-honeycomb) | X-Y: ⚪️ Normal-Low
Z: ⚪️ Normal-Low | ⚪️ Normal | 🔘 Normal-Low | 🟡 Possibly Noticeable | +| param_lateral-lattice | [Lateral Lattice](#lateral-lattice) | X-Y: ⚪️ Normal-Low
Z: 🟡 Low | ⚪️ Normal | 🔘 Normal-Low | 🔵 Unnoticeable | +| param_crosshatch | [Cross Hatch](#cross-hatch) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | ⚪️ Normal | 🟡 High | 🔴 Likely Noticeable | +| param_tpmsd | [TPMS-D](#tpms-d) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🟡 High | 🟡 Possibly Noticeable | +| param_tpmsfk | [TPMS-FK](#tpms-fk) | X-Y: 🔘 Normal-High
Z: 🔘 Normal-High | ⚪️ Normal | 🔴 Ultra-High | 🟡 Possibly Noticeable | +| param_gyroid | [Gyroid](#gyroid) | X-Y: 🟣 High
Z: 🟣 High | ⚪️ Normal | 🔴 Ultra-High | 🔵 Unnoticeable | +| param_concentric | [Concentric](#concentric) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_hilbertcurve | [Hilbert Curve](#hilbert-curve) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🟠 Extra-High | 🟢 None | +| param_archimedeanchords | [Archimedean Chords](#archimedean-chords) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | 🔘 Normal-Low | 🟢 None | +| param_octagramspiral | [Octagram Spiral](#octagram-spiral) | X-Y: 🟡 Low
Z: ⚪️ Normal | ⚪️ Normal | ⚪️ Normal | 🟢 None | > [!NOTE] > This estimations are based in a Cube model to maintain consistency. > This **WILL NOT** be the same for all models and only serves as a standard guideline. > [!TIP] -> You can see how this analysis was made in [infill-analysis](https://github.com/SoftFever/OrcaSlicer/tree/main/doc/print_settings/strength/infill-analysis) folder: -> - [Infill calculator Project](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/print_settings/strength/infill-analysis/infill_calculator.3mf?raw=true) to generate the gcode files and images. -> - [infill_desc_calculator.xlsx](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/print_settings/strength/infill-analysis/infill_desc_calculator.xlsx?raw=true) used to calculate the values above. +> You can see how this analysis was made in [infill-analysis](https://github.com/OrcaSlicer/OrcaSlicer/tree/main/doc/print_settings/strength/infill-analysis) folder: +> - [Infill calculator Project](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/print_settings/strength/infill-analysis/infill_calculator.3mf?raw=true) to generate the gcode files and images. +> - [infill_desc_calculator.xlsx](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/print_settings/strength/infill-analysis/infill_desc_calculator.xlsx?raw=true) used to calculate the values above. > - Time, and material usage where simulated with the same [Klipper Estimator](https://github.com/Annex-Engineering/klipper_estimator) values to maintain consistency. ## Monotonic @@ -94,7 +94,7 @@ Layer time variability refers to the differences in time it takes to print each - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-monotonic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-monotonic.png?raw=true) +![infill-top-monotonic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-monotonic.png?raw=true) ## Monotonic line @@ -112,7 +112,7 @@ Layer time variability refers to the differences in time it takes to print each - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-monotonic-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-monotonic-line.png?raw=true) +![infill-top-monotonic-line](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-monotonic-line.png?raw=true) ## Rectilinear @@ -132,7 +132,7 @@ Parallel lines spaced according to infill density. Each layer is printed perpend - **[Surface](strength_settings_top_bottom_shells)** - **[Ironing](quality_settings_ironing)** -![infill-top-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-rectilinear.png?raw=true) +![infill-top-rectilinear](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-rectilinear.png?raw=true) ## Aligned Rectilinear @@ -152,7 +152,7 @@ Recommended with layer anchoring to improve not perpendicular strength. - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-aligned-rectilinear](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-aligned-rectilinear.png?raw=true) +![infill-top-aligned-rectilinear](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-aligned-rectilinear.png?raw=true) ## Zig Zag @@ -169,7 +169,7 @@ Similar to [rectilinear](#rectilinear) with consistent pattern between layers. A - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-zig-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-zig-zag.png?raw=true) +![infill-top-zig-zag](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-zig-zag.png?raw=true) ## Cross Zag @@ -186,7 +186,7 @@ Similar to [Zig Zag](#zig-zag) but displacing each layer with Infill shift step - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-cross-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-zag.png?raw=true) +![infill-top-cross-zag](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-zag.png?raw=true) ## Locked Zag @@ -205,7 +205,7 @@ Skin density * ( Infill Area - Skin Area + lock depth area) + ( Skin density * S - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-locked-zag](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-locked-zag.png?raw=true) +![infill-top-locked-zag](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-locked-zag.png?raw=true) ## Line @@ -222,7 +222,7 @@ Similar to [rectilinear](#rectilinear), but each line is slightly rotated to imp - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-line](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-line.png?raw=true) +![infill-top-line](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-line.png?raw=true) ## Grid @@ -239,7 +239,7 @@ Two-layer pattern of perpendicular lines, forming a grid. Overlapping points may - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-grid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-grid.png?raw=true) +![infill-top-grid](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-grid.png?raw=true) ## Triangles @@ -256,7 +256,7 @@ Triangle-based grid, offering strong X-Y strength but with triple overlaps at in - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-triangles](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-triangles.png?raw=true) +![infill-top-triangles](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-triangles.png?raw=true) ## Tri-hexagon @@ -273,7 +273,7 @@ Similar to the [triangles](#triangles) pattern but offset to prevent triple over - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-tri-hexagon](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tri-hexagon.png?raw=true) +![infill-top-tri-hexagon](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-tri-hexagon.png?raw=true) ## Cubic @@ -290,7 +290,7 @@ Similar to the [triangles](#triangles) pattern but offset to prevent triple over - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cubic.png?raw=true) +![infill-top-cubic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-cubic.png?raw=true) ## Adaptive Cubic @@ -307,7 +307,7 @@ Similar to the [triangles](#triangles) pattern but offset to prevent triple over - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-adaptive-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-adaptive-cubic.png?raw=true) +![infill-top-adaptive-cubic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-adaptive-cubic.png?raw=true) ## Quarter Cubic @@ -324,7 +324,7 @@ Similar to the [triangles](#triangles) pattern but offset to prevent triple over - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-quarter-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-quarter-cubic.png?raw=true) +![infill-top-quarter-cubic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-quarter-cubic.png?raw=true) ## Support Cubic @@ -341,7 +341,7 @@ Support |Cubic is a variation of the [Cubic](#cubic) infill pattern that is spec - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-support-cubic](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-support-cubic.png?raw=true) +![infill-top-support-cubic](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-support-cubic.png?raw=true) ## Lightning @@ -358,7 +358,7 @@ Ultra-fast, ultra-low material infill. Designed for speed and efficiency, ideal - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-lightning](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-lightning.png?raw=true) +![infill-top-lightning](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-lightning.png?raw=true) ## Honeycomb @@ -375,7 +375,7 @@ Hexagonal pattern balancing strength and material use. Double walls in each hexa - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-honeycomb.png?raw=true) +![infill-top-honeycomb](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-honeycomb.png?raw=true) ## 3D Honeycomb @@ -392,7 +392,7 @@ This infill tries to generate a printable honeycomb structure by printing square - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-3d-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-3d-honeycomb.png?raw=true) +![infill-top-3d-honeycomb](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-3d-honeycomb.png?raw=true) ## Lateral Honeycomb @@ -409,7 +409,7 @@ Vertical Honeycomb pattern. Acceptable torsional stiffness. Developed for low de - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-lateral-honeycomb](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-lateral-honeycomb.png?raw=true) +![infill-top-lateral-honeycomb](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-lateral-honeycomb.png?raw=true) ## Lateral Lattice @@ -426,7 +426,7 @@ Low-strength pattern with good flexibility. You can adjust **Angle 1** and **Ang - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-lateral-lattice](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-lateral-lattice.png?raw=true) +![infill-top-lateral-lattice](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-lateral-lattice.png?raw=true) ## Cross Hatch @@ -444,7 +444,7 @@ Easier to slice but consider using [TPMS-D](#tpms-d) or [Gyroid](#gyroid) for be - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-cross-hatch](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-hatch.png?raw=true) +![infill-top-cross-hatch](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-cross-hatch.png?raw=true) ## TPMS-D @@ -461,7 +461,7 @@ Triply Periodic Minimal Surface (Schwarz Diamond). Hybrid between [Cross Hatch]( - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-tpms-d](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tpms-d.png?raw=true) +![infill-top-tpms-d](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-tpms-d.png?raw=true) ## TPMS-FK @@ -478,7 +478,7 @@ Triply Periodic Minimal Surface (Fischer–Koch S) pattern. Its smooth, continuo - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-tpms-fk](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-tpms-fk.png?raw=true) +![infill-top-tpms-fk](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-tpms-fk.png?raw=true) ## Gyroid @@ -495,7 +495,7 @@ Mathematical, isotropic surface providing equal strength in all directions. Exce - **Applies to:** - **[Sparse Infill](strength_settings_infill#sparse-infill-density)** -![infill-top-gyroid](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-gyroid.png?raw=true) +![infill-top-gyroid](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-gyroid.png?raw=true) ## Concentric @@ -515,7 +515,7 @@ Fills the area with progressively smaller versions of the outer contour, creatin - **[Surface](strength_settings_top_bottom_shells)** - **[Ironing](quality_settings_ironing)** -![infill-top-concentric](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-concentric.png?raw=true) +![infill-top-concentric](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-concentric.png?raw=true) ## Hilbert Curve @@ -535,7 +535,7 @@ Print speed is very low due to the complexity of the path, which can lead to lon - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-hilbert-curve](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-hilbert-curve.png?raw=true) +![infill-top-hilbert-curve](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-hilbert-curve.png?raw=true) ## Archimedean Chords @@ -554,7 +554,7 @@ Spiral pattern that fills the area with concentric arcs, creating a smooth and c - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-archimedean-chords](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-archimedean-chords.png?raw=true) +![infill-top-archimedean-chords](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-archimedean-chords.png?raw=true) ## Octagram Spiral @@ -573,4 +573,4 @@ Aesthetic pattern with low strength and high print time. - **[Solid Infill](strength_settings_infill#internal-solid-infill)** - **[Surface](strength_settings_top_bottom_shells)** -![infill-top-octagram-spiral](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/fill/infill-top-octagram-spiral.png?raw=true) +![infill-top-octagram-spiral](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/fill/infill-top-octagram-spiral.png?raw=true) diff --git a/doc/print_settings/strength/strength_settings_top_bottom_shells.md b/doc/print_settings/strength/strength_settings_top_bottom_shells.md index a4c8885243..674fa94b8f 100644 --- a/doc/print_settings/strength/strength_settings_top_bottom_shells.md +++ b/doc/print_settings/strength/strength_settings_top_bottom_shells.md @@ -2,7 +2,7 @@ Controls how the top and bottom solid layers (shells) are generated. -![top-bottom-shells](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/top-bottom-shells/top-bottom-shells.png?raw=true) +![top-bottom-shells](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/top-bottom-shells/top-bottom-shells.png?raw=true) ## Shell Layers diff --git a/doc/print_settings/strength/strength_settings_walls.md b/doc/print_settings/strength/strength_settings_walls.md index badfcde8d1..a2ffcb1ee0 100644 --- a/doc/print_settings/strength/strength_settings_walls.md +++ b/doc/print_settings/strength/strength_settings_walls.md @@ -3,7 +3,7 @@ In 3D printing, "walls" refer to the outer layers of a printed object that provide its shape and structural integrity. Adjusting wall settings can significantly affect layer adhesion, strength, appearance and print time of your model. -![walls](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/walls/walls.png?raw=true) +![walls](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/walls/walls.png?raw=true) - [Wall loops](#wall-loops) - [Alternate extra wall](#alternate-extra-wall) @@ -39,7 +39,7 @@ Thin walls printed this way may have reduced surface quality and strength becaus > Usually, it is recommended to use [Arachne wall generator](quality_settings_wall_generator#arachne) which will disable "Detect thin walls" because it uses a different approach to wall generation. - In small details it can generate details that wouldn't be possible with traditional wall generation methods. - ![walls-small-detect-thin-off](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/walls/walls-small-detect-thin-off.png?raw=true) - ![walls-small-detect-thin-on](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/walls/walls-small-detect-thin-on.png?raw=true) + ![walls-small-detect-thin-off](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/walls/walls-small-detect-thin-off.png?raw=true) + ![walls-small-detect-thin-on](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/walls/walls-small-detect-thin-on.png?raw=true) - In large prints, it can generate defects more easily due to the reduced wall thickness. - ![walls-big-detect-thin-off-on](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/walls/walls-big-detect-thin-off-on.png?raw=true) + ![walls-big-detect-thin-off-on](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/walls/walls-big-detect-thin-off-on.png?raw=true) diff --git a/doc/printer_settings/Chamber-temperature.md b/doc/printer_settings/Chamber-temperature.md index 52b81d7aa8..c8be8da497 100644 --- a/doc/printer_settings/Chamber-temperature.md +++ b/doc/printer_settings/Chamber-temperature.md @@ -4,8 +4,8 @@ OrcaSlicer use `M141/M191` command to control active chamber heater. If your Filament's `Activate temperature control` and your printer `Support control chamber temperature` option are checked , OrcaSlicer will insert `M191` command at the beginning of the gcode (before `Machine G-code`). -![Chamber-Temperature-Control-Printer](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Chamber/Chamber-Temperature-Control-Printer.png?raw=true) -![Chamber-Temperature-Control-Material](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Chamber/Chamber-Temperature-Control-Material.png?raw=true) +![Chamber-Temperature-Control-Printer](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Chamber/Chamber-Temperature-Control-Printer.png?raw=true) +![Chamber-Temperature-Control-Material](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Chamber/Chamber-Temperature-Control-Material.png?raw=true) > [!NOTE] diff --git a/doc/printer_settings/adaptive-bed-mesh.md b/doc/printer_settings/adaptive-bed-mesh.md index 2f8f7f3928..e964824f0d 100644 --- a/doc/printer_settings/adaptive-bed-mesh.md +++ b/doc/printer_settings/adaptive-bed-mesh.md @@ -6,7 +6,7 @@ This feature allows users to seamlessly integrate adaptive bed mesh commands wit The implementation is designed to be straightforward, requiring no additional plugins or alterations to firmware settings, thereby enhancing user experience and print quality directly from OrcaSlicer. -![ABM-PrinterConfig](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png?raw=true) +![ABM-PrinterConfig](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Adaptative-Bed-Mesh/ABM-PrinterConfig.png?raw=true) ## Settings in OrcaSlicer @@ -54,4 +54,4 @@ BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1] M557 X{adaptive_bed_mesh_min[0]}:{adaptive_bed_mesh_max[0]} Y{adaptive_bed_mesh_min[1]}:{adaptive_bed_mesh_max[1]} P{bed_mesh_probe_count[0]}:{bed_mesh_probe_count[1]} ``` -![ABM-Machine-G-code](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/Adaptative-Bed-Mesh/ABM-Machine-G-code.png?raw=true) +![ABM-Machine-G-code](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/Adaptative-Bed-Mesh/ABM-Machine-G-code.png?raw=true) diff --git a/doc/printer_settings/bed-types.md b/doc/printer_settings/bed-types.md index 73b18e6fa0..eb079689d5 100644 --- a/doc/printer_settings/bed-types.md +++ b/doc/printer_settings/bed-types.md @@ -5,7 +5,7 @@ You can enable it in printer settings. Once enabled, you can select the bed type in the drop-down menu, corresponding bed temperature will be set automatically. You can set the bed temperature for each bed type in the filament settings as demonstrated in the following image. -![bed-types](https://github.com/SoftFever/OrcaSlicer/blob/main/doc/images/bed-types.gif?raw=true) +![bed-types](https://github.com/OrcaSlicer/OrcaSlicer/blob/main/doc/images/bed-types.gif?raw=true) Orca also support `curr_bed_type` variable in custom G-code. For example, the following sample G-codes can detect the selected bed type and adjust the G-code offset accordingly for Klipper: diff --git a/resources/data/hints.ini b/resources/data/hints.ini index f4edae1265..27e6da9e24 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -64,26 +64,26 @@ [hint:Precise wall] text = Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency? -documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/quality_settings_precision +documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/quality_settings_precision [hint:Sandwich mode] text = Sandwich mode\nDid you know that you can use sandwich mode (inner-outer-inner) to improve precision and layer consistency if your model doesn't have very steep overhangs? [hint:Chamber temperature] text = Chamber temperature\nDid you know that OrcaSlicer supports chamber temperature? -documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/Chamber-temperature +documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Chamber-temperature [hint:Calibration] text = Calibration\nDid you know that calibrating your printer can do wonders? Check out our beloved calibration solution in OrcaSlicer. -documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/Calibration +documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration [hint:Auxiliary fan] text = Auxiliary fan\nDid you know that OrcaSlicer supports Auxiliary part cooling fan? -documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/Auxiliary-fan +documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/Auxiliary-fan [hint:Air filtration] text = Air filtration/Exhaust Fan\nDid you know that OrcaSlicer can support Air filtration/Exhaust Fan? -documentation_link = https://github.com/SoftFever/OrcaSlicer/wiki/air-filtration +documentation_link = https://github.com/OrcaSlicer/OrcaSlicer/wiki/air-filtration [hint:G-code window] text = G-code window\nYou can turn on/off the G-code window by pressing the C key. diff --git a/resources/profiles/Anycubic.json b/resources/profiles/Anycubic.json index d0e7881a75..de4c325c1b 100644 --- a/resources/profiles/Anycubic.json +++ b/resources/profiles/Anycubic.json @@ -63,6 +63,10 @@ { "name": "Anycubic i3 Mega S", "sub_path": "machine/Anycubic i3 Mega S.json" + }, + { + "name": "Anycubic Predator", + "sub_path": "machine/Anycubic Predator.json" } ], "process_list": [ @@ -233,6 +237,10 @@ { "name": "0.40mm Standard @Anycubic Kobra 3 0.8 nozzle", "sub_path": "process/0.40mm Standard @Anycubic Kobra 3 0.8 nozzle.json" + }, + { + "name": "0.20mm Standard @Anycubic Predator", + "sub_path": "process/0.20mm Standard @Anycubic Predator.json" } ], "filament_list": [ @@ -493,6 +501,10 @@ { "name": "Anycubic i3 Mega S 0.4 nozzle", "sub_path": "machine/Anycubic i3 Mega S 0.4 nozzle.json" + }, + { + "name": "Anycubic Predator 0.4 nozzle", + "sub_path": "machine/Anycubic Predator 0.4 nozzle.json" } ] -} \ No newline at end of file +} diff --git a/resources/profiles/Anycubic/Anycubic Predator_buildplate_model.stl b/resources/profiles/Anycubic/Anycubic Predator_buildplate_model.stl new file mode 100644 index 0000000000..fc5b568a0d Binary files /dev/null and b/resources/profiles/Anycubic/Anycubic Predator_buildplate_model.stl differ diff --git a/resources/profiles/Anycubic/Anycubic Predator_buildplate_texture.svg b/resources/profiles/Anycubic/Anycubic Predator_buildplate_texture.svg new file mode 100644 index 0000000000..0bbeb0f6cc --- /dev/null +++ b/resources/profiles/Anycubic/Anycubic Predator_buildplate_texture.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Anycubic/Anycubic Predator_cover.png b/resources/profiles/Anycubic/Anycubic Predator_cover.png new file mode 100644 index 0000000000..5e7627ad1c Binary files /dev/null and b/resources/profiles/Anycubic/Anycubic Predator_cover.png differ diff --git a/resources/profiles/Anycubic/machine/Anycubic Predator 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Predator 0.4 nozzle.json new file mode 100644 index 0000000000..38c14c21aa --- /dev/null +++ b/resources/profiles/Anycubic/machine/Anycubic Predator 0.4 nozzle.json @@ -0,0 +1,99 @@ +{ + "type": "machine", + "name": "Anycubic Predator 0.4 nozzle", + "inherits": "fdm_machine_common", + "from": "system", + "setting_id": "GM003", + "instantiation": "true", + "printer_model": "Anycubic Predator", + "default_print_profile": "0.20mm Standard @Anycubic Predator", + "gcode_flavor": "marlin", + "nozzle_diameter": [ + "0.4" + ], + "bed_exclude_area": [ + "0x0" + ], + "printable_area": [ + "184.296x16.1238", + "182.189x32.1249", + "178.696x47.8815", + "173.843x63.2737", + "167.667x78.1844", + "160.215x92.5", + "151.543x106.112", + "141.718x118.916", + "130.815x130.815", + "118.916x141.718", + "106.112x151.543", + "92.5x160.215", + "78.1844x167.667", + "63.2737x173.843", + "47.8815x178.696", + "32.1249x182.189", + "16.1238x184.296", + "1.1328e-14x185", + "-16.1238x184.296", + "-32.1249x182.189", + "-47.8815x178.696", + "-63.2737x173.843", + "-78.1844x167.667", + "-92.5x160.215", + "-106.112x151.543", + "-118.916x141.718", + "-130.815x130.815", + "-141.718x118.916", + "-151.543x106.112", + "-160.215x92.5", + "-167.667x78.1844", + "-173.843x63.2737", + "-178.696x47.8815", + "-182.189x32.1249", + "-184.296x16.1238", + "-185x2.2656e-14", + "-184.296x-16.1238", + "-182.189x-32.1249", + "-178.696x-47.8815", + "-173.843x-63.2737", + "-167.667x-78.1844", + "-160.215x-92.5", + "-151.543x-106.112", + "-141.718x-118.916", + "-130.815x-130.815", + "-118.916x-141.718", + "-106.112x-151.543", + "-92.5x-160.215", + "-78.1844x-167.667", + "-63.2737x-173.843", + "-47.8815x-178.696", + "-32.1249x-182.189", + "-16.1238x-184.296", + "-3.39839e-14x-185", + "16.1238x-184.296", + "32.1249x-182.189", + "47.8815x-178.696", + "63.2737x-173.843", + "78.1844x-167.667", + "92.5x-160.215", + "106.112x-151.543", + "118.916x-141.718", + "130.815x-130.815", + "141.718x-118.916", + "151.543x-106.112", + "160.215x-92.5", + "167.667x-78.1844", + "173.843x-63.2737", + "178.696x-47.8815", + "182.189x-32.1249", + "184.296x-16.1238", + "185x-4.53119e-14" + ], + "printable_height": "455", + "machine_end_gcode": "M107 T0\nM104 S0\nM104 S0 T1\nM140 S0\nG92 E0\nG91\nG1 E-1 F300\nG1 Z+0.5 F6000\nG28 \nG90 ;absolute positioning", + "machine_start_gcode": "G21 ; use millimeters\nG90 ; absolute positioning\nM82 ; absolute extrusion\nM107 T0 ; turn off part cooling fan\n\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM104 S[nozzle_temperature_initial_layer] T0 ; set nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed\nM109 S[nozzle_temperature_initial_layer] T0 ; wait for nozzle\n\nG28 ; home all\nG1 X0 Y0 Z5.0 F4000 ; jump to center\nG1 X-180 Y0 Z0.4 F2000 ; move to near bed edge\nG92 E0 ; reset the extruder\n\n; --- Prime line ---\nG1 E5 F300 ; initial prime\nG0 X-180.00 Y0.00 Z0.30 E0 F1000\nG1 X-179.385 Y-14.864 Z0.30 E3.57042\nG1 X-177.545 Y-29.627 Z0.30 E7.14094\nG1 X-174.492 Y-44.187 Z0.30 E10.71134\nG1 X-170.247 Y-58.446 Z0.30 E14.28195\nG1 X-164.839 Y-72.305 Z0.30 E17.85235\nG1 X-158.305 Y-85.671 Z0.30 E21.42298\nG1 X-150.690 Y-98.451 Z0.30 E24.99339\nG1 X-142.045 Y-110.558 Z0.30 E27.56379 ; gradually reducing extrusion\nG1 F1500 E26.56379 ; retract 1mm\nG1 Z0.5 F3000 ; lift Z slightly\nG92 E0 ; reset the extruder\n; --- End priming line ---", + "layer_change_gcode": "", + "machine_pause_gcode": "PAUSE", + "scan_first_layer": "0", + "nozzle_type": "brass", + "auxiliary_fan": "0" +} diff --git a/resources/profiles/Anycubic/machine/Anycubic Predator.json b/resources/profiles/Anycubic/machine/Anycubic Predator.json new file mode 100644 index 0000000000..d59230ad23 --- /dev/null +++ b/resources/profiles/Anycubic/machine/Anycubic Predator.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Anycubic Predator", + "model_id": "Anycubic_Predator", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Anycubic", + "bed_model": "Anycubic Predator_buildplate_model.stl", + "bed_texture": "Anycubic Predator_buildplate_texture.svg", + "hotend_model": "", + "default_materials": "Anycubic Generic ABS;Anycubic Generic PLA;Anycubic Generic PLA-CF;Anycubic Generic PETG;Anycubic Generic TPU;Anycubic Generic ASA;Anycubic Generic PC;Anycubic Generic PVA;Anycubic Generic PA;Anycubic Generic PA-CF" +} diff --git a/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Predator.json b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Predator.json new file mode 100644 index 0000000000..f343ff09eb --- /dev/null +++ b/resources/profiles/Anycubic/process/0.20mm Standard @Anycubic Predator.json @@ -0,0 +1,31 @@ +{ + "default_acceleration": "1500", + "default_jerk": "9", + "exclude_object": "1", + "from": "system", + "gap_infill_speed": "200", + "inherits": "fdm_process_common", + "initial_layer_acceleration": "1500", + "initial_layer_infill_speed": "100", + "initial_layer_speed": "50", + "inner_wall_acceleration": "1500", + "inner_wall_speed": "200", + "instantiation": "true", + "internal_solid_infill_speed": "200", + "name": "0.20mm Standard @Anycubic Predator", + "outer_wall_acceleration": "1500", + "outer_wall_speed": "120", + "overhang_1_4_speed": "80", + "setting_id": "GP001", + "sparse_infill_speed": "250", + "top_surface_acceleration": "1500", + "top_surface_speed": "200", + "travel_acceleration": "1500", + "travel_speed": "400", + "travel_jerk": "9", + "type": "process", + "compatible_printers": [ + "Anycubic Predator 0.4 nozzle" + ] +} + diff --git a/resources/profiles/iQ.json b/resources/profiles/iQ.json index 1876c4f6a1..17d813bac9 100644 --- a/resources/profiles/iQ.json +++ b/resources/profiles/iQ.json @@ -76,6 +76,10 @@ { "name": "0.20mm Standard @iQ TiQ8 P1 - ABS Natur Material4Print (0.4 Nozzle)", "sub_path": "process/0.20mm Standard @iQ TiQ8 P1 - ABS Natur Material4Print (0.4 Nozzle).json" + }, + { + "name": "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)", + "sub_path": "process/0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle).json" } ], "filament_list": [ @@ -94,6 +98,14 @@ { "name": "Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle", "sub_path": "filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json" + }, + { + "name": "Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle", + "sub_path": "filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json" + }, + { + "name": "VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle", + "sub_path": "filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json" } ] } diff --git a/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json index bf2db18552..dbfd90a8bb 100644 --- a/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Fiberthree PACF Pro P1 @iQ TiQ2 0.4 Nozzle.json @@ -102,7 +102,7 @@ "1.75" ], "filament_end_gcode": [ - "; filament end gcode \nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000" + "; filament end gcode\n{if current_extruder==0}\nG1 Z{layer_z+2} F900 ; safe distance for T0 while tool change\nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{endif}\n\n{if current_extruder==1}\n{if current_extruder==0}T1{endif}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}\n" ], "filament_flow_ratio": [ "1.089" @@ -189,7 +189,7 @@ "29" ], "filament_start_gcode": [ - "; Filament gcode\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000" + "; Filament gcode\n{if current_extruder==0}\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{if layer_z==0}G1 Z{first_layer_height + 2.0}{endif}\n{if layer_z==0}G1 X[first_layer_print_min_0] Y[first_layer_print_min_1]{endif}\n{if layer_z==0}G1 Z{layer_z}{endif}\n{endif}\n\n{if current_extruder==1}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}\n" ], "filament_toolchange_delay": [ "0" diff --git a/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json new file mode 100644 index 0000000000..05c4eee8db --- /dev/null +++ b/resources/profiles/iQ/filament/Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle.json @@ -0,0 +1,302 @@ +{ + "type": "filament", + "name": "Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle", + "inherits": "fdm_filament_common", + "from": "system", + "setting_id": "IQS7", + "filament_id": "IQM7", + "instantiation": "true", + "compatible_prints": [ + "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)" + ], + "filament_cost": [ + "200" + ], + "filament_density": [ + "1.25" + ], + "filament_end_gcode": [ + "; filament end gcode\n{if current_extruder==0}\nG1 Z{layer_z+2} F900 ; safe distance for T0 while tool change\nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{endif}\n\n{if current_extruder==1}\n{if current_extruder==0}T1{endif}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}" + ], + "filament_flow_ratio": [ + "1.1" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_notes": [ + "Filament file version 1.0 20251103" + ], + "filament_settings_id": [ + "Fiberthree PACF Pro P2 @iQ TiQ2 0.4 Nozzle" + ], + "filament_start_gcode": [ + "; Filament gcode\n{if current_extruder==0}\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{if layer_z==0}G1 Z{first_layer_height + 2.0}{endif}\n{if layer_z==0}G1 X[first_layer_print_min_0] Y[first_layer_print_min_1]{endif}\n{if layer_z==0}G1 Z{layer_z}{endif}\n{endif}\n\n{if current_extruder==1}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "idle_temperature": [ + "240" + ], + "is_custom_defined": "0", + + "nozzle_temperature": [ + "275" + ], + "nozzle_temperature_initial_layer": [ + "275" + ], + "nozzle_temperature_range_high": [ + "275" + ], + "version": "2.3.1.10", + "activate_air_filtration": [ + "0" + ], + "activate_chamber_temp_control": [ + "0" + ], + "adaptive_pressure_advance": [ + "0" + ], + "adaptive_pressure_advance_bridges": [ + "0" + ], + "adaptive_pressure_advance_model": [ + "0,0,0\n0,0,0" + ], + "adaptive_pressure_advance_overhangs": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "compatible_printers": [ + "iQ TiQ2 0.4 Nozzle" + ], + "compatible_printers_condition": "", + "compatible_prints_condition": "", + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "105" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "default_filament_colour": [ + "#000000" + ], + "dont_slow_down_outer_wall": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_is_support": [ + "0" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_long_retractions_when_cut": [ + "nil" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_ramming_parameters": [ + "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_lift_enforce": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil" + ], + "filament_retraction_length": [ + "4" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_shrink": [ + "100%" + ], + "filament_shrinkage_compensation_z": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_type": [ + "PACF Pro" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_vendor": [ + "iQ Materials" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "internal_bridge_fan_speed": [ + "-1" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "pellet_flow_coefficient": [ + "0.4157" + ], + "pressure_advance": [ + "0.02" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "supertack_plate_temp": [ + "35" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "support_material_interface_fan_speed": [ + "-1" + ], + "temperature_vitrification": [ + "110" + ], + "textured_cool_plate_temp": [ + "40" + ], + "textured_cool_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ] +} diff --git a/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json index 50f4ad1fb7..457b37f8cd 100644 --- a/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json +++ b/resources/profiles/iQ/filament/Polymaker PETG Polymax black P1 @iQ TiQ2 0.4 Nozzle.json @@ -102,7 +102,7 @@ "1.75" ], "filament_end_gcode": [ - "; filament end gcode \nG1 Z{layer_z+2} F900 ; safe distance for T0 while tool change\nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000" + "; filament end gcode\n{if current_extruder==0}\nG1 Z{layer_z+2} F900 ; safe distance for T0 while tool change\nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{endif}\n\n{if current_extruder==1}\n{if current_extruder==0}T1{endif}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}\n" ], "filament_flow_ratio": [ "0.9405" @@ -189,7 +189,7 @@ "0" ], "filament_start_gcode": [ - "; Filament gcode\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{if layer_z==0}G1 Z{first_layer_height + 2.0}{endif}\n{if layer_z==0}G1 X[first_layer_print_min_0] Y[first_layer_print_min_1]{endif}\n{if layer_z==0}G1 Z{layer_z}{endif}" + "; Filament gcode\n{if current_extruder==0}\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{if layer_z==0}G1 Z{first_layer_height + 2.0}{endif}\n{if layer_z==0}G1 X[first_layer_print_min_0] Y[first_layer_print_min_1]{endif}\n{if layer_z==0}G1 Z{layer_z}{endif}\n{endif}\n\n{if current_extruder==1}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}\n" ], "filament_toolchange_delay": [ "0" diff --git a/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json b/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json new file mode 100644 index 0000000000..1a3f9b9ba6 --- /dev/null +++ b/resources/profiles/iQ/filament/VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle.json @@ -0,0 +1,152 @@ +{ + "type": "filament", + "name": "VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle", + "inherits": "fdm_filament_common", + "from": "system", + "setting_id": "IQS1011", + "filament_id": "IQM1011", + "instantiation": "true", + "compatible_prints": [ + "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)" + ], + "filament_vendor": [ + "iQ Materials" + ], + "compatible_printers": [ + "iQ TiQ2 0.4 Nozzle" + ], + "filament_diameter": [ + "1.75" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "default_filament_colour": [ + "#FFFFFF" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_cost": [ + "150" + ], + "temperature_vitrification": [ + "110" + ], + "filament_density": [ + "1.1" + ], + "filament_end_gcode": [ + "; filament end gcode\n{if current_extruder==0}\nG1 Z{layer_z+2} F900 ; safe distance for T0 while tool change\nG1 X-17 Y1 F9000\nG1 X-17 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{endif}\n\n{if current_extruder==1}\n{if current_extruder==0}T1{endif}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}" + ], + "filament_flow_ratio": [ + "1" + ], + "enable_pressure_advance": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "overhang_fan_threshold": [ + "25%" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_retraction_length": [ + "4" + ], + "filament_is_support": [ + "1" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_loading_speed": [ + "10" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_notes": [ + "Filament file version 1.0 20251103" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_settings_id": [ + "VXL90 TiQ2 P2 @iQ TiQ2 0.4 Nozzle" + ], + "filament_soluble": [ + "1" + ], + "filament_start_gcode": [ + "; Filament gcode\n{if current_extruder==0}\nG1 X-17 Y1 F9000\nG1 Y45 F9000\nG1 Y1 F9000\nG1 Y45 F9000\n{if layer_z==0}G1 Z{first_layer_height + 2.0}{endif}\n{if layer_z==0}G1 X[first_layer_print_min_0] Y[first_layer_print_min_1]{endif}\n{if layer_z==0}G1 Z{layer_z}{endif}\n{endif}\n\n{if current_extruder==1}\nG1 X-23 Y3 F9000\nG1 Y45 F9000\nG1 Y3 F9000\nG1 Y45 F9000\n{endif}" + ], + "filament_type": [ + "VXL90 Xioneer" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "idle_temperature": [ + "205" + ], + "is_custom_defined": "0", + "nozzle_temperature": [ + "235" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "version": "2.3.1.10" +} diff --git a/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle).json b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle).json index 80efc6549d..93d69ab0b0 100644 --- a/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle).json +++ b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle).json @@ -1,21 +1,20 @@ { "type": "process", - "name": "0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle)", - "inherits": "fdm_process_tiq_common", - "from": "system", - "instantiation": "true", "bridge_flow": "1.07", "bridge_speed": "25", "brim_type": "no_brim", "enable_support": "1", "exclude_object": "0", + "from": "system", "gcode_label_objects": "0", - "compatible_printers": [ - "iQ TiQ2 0.4 Nozzle" - ], + "instantiation": "true", + "compatible_printers": ["iQ TiQ2 0.4 Nozzle"], + "inherits": "fdm_process_tiq_common", "internal_bridge_speed": "50%", "internal_solid_infill_speed": "60", "ironing_pattern": "concentric", + "is_custom_defined": "0", + "name": "0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle)", "prime_tower_width": "80", "layer_height": "0.2", "print_settings_id": "0.20mm Standard @iQ TiQ2 P1 - PACF Pro Fiberthree (0.4 Nozzle)", @@ -32,8 +31,8 @@ "support_bottom_interface_spacing": "0.3", "support_bottom_z_distance": "0.24", "support_expansion": "0.5", - "support_filament": "1", - "support_interface_filament": "1", + "support_filament": "0", + "support_interface_filament": "0", "support_interface_pattern": "rectilinear_interlaced", "support_interface_spacing": "0", "support_object_xy_distance": "0.25", @@ -45,5 +44,6 @@ "tree_support_branch_diameter_angle": "10", "tree_support_branch_diameter_organic": "3", "tree_support_tip_diameter": "2", + "version": "2.2.0.4", "wall_loops": "2" -} \ No newline at end of file +} diff --git a/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PETG Polymax Polymaker (0.4 Nozzle).json b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PETG Polymax Polymaker (0.4 Nozzle).json index 692efa7c59..096eb82e13 100644 --- a/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PETG Polymax Polymaker (0.4 Nozzle).json +++ b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P1 - PETG Polymax Polymaker (0.4 Nozzle).json @@ -8,8 +8,8 @@ "gcode_label_objects": "0", "enable_support": "1", "support_type": "tree(auto)", - "support_filament": "1", - "support_interface_filament": "1", + "support_filament": "0", + "support_interface_filament": "0", "compatible_printers": [ "iQ TiQ2 0.4 Nozzle" ], diff --git a/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle).json b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle).json new file mode 100644 index 0000000000..50265405ce --- /dev/null +++ b/resources/profiles/iQ/process/0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle).json @@ -0,0 +1,65 @@ +{ + "type": "process", + "from": "system", + "gap_infill_speed": "70", + "independent_support_layer_height": "0", + "inherits": "fdm_process_tiq_common", + "initial_layer_infill_speed": "75", + "inner_wall_speed": "90", + "is_custom_defined": "0", + "name": "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)", + "notes": "Deutsch P2 PACF\n\n1.\tUeberpruefen Sie, dass sich das Fiberthree PACF Pro (100625) im linken Extruder befindet. Halten Sie das Filament trocken! Detailierte Trocknungsanleitung, siehe unten.\n2.\tueberpruefen Sie, dass sich eine 0,4 mm Wolfram-Kupfer Duese im linken Extruder befindet fuer PACF.\n3.\tueberpruefen Sie, dass sich eine 0,4 mm Wolfram-Kupfer Duese im rechten Extruder befindet fuer Xioneer VXL90 filament\n4.\tVerwenden Sie Magigoo PA Kleber auf der PET-Folie, um eine bessere Haftung zu gewaehrleisten.\n5.\tReinigen Sie ggf. die Duese mit einer Messing-Drahtbuerste.\nNun sind sie bereit, um Ihren Druck zu starten.\n\nTipp: Belassen Sie die Einstellung raft, damit sich das Bauteil einfach und ohne Beschaedigung der Folie vom Druckbett loesen laesst.\n\n\nAnleitung zum trocknen von PA-CF-Filament:\nNylon ist sehr hydrophil. Wenn Sie stringing und oozing an Ihrem Bauteil beobachten, ist dies ein Indiz dafuer, dass das Filament zu feucht ist.\nUm das Filament zu trocknen, belassen Sie die Spule in einem industriellen Trockner bei 75°C fuer 2-4 Tage mit 30 % Frischluftzirkulation.\n\n///// STUETZMATERIAL AUFLOESENDES VORGEHENSWEISE ///////\nVERBRAUCHSSTOFFE FUER DAS AUFLOESEN VON STUETZMATERIAL KOENNEN BEI innovatiQ ERWORBEN WERDEN.\n1. Lesen Sie die Sicherheitshinweise zu Ihrer Entnahmestation fuer Industriestuetzen.\n2. Brechen Sie die \"leicht zu entfernenden Stuetzen\" vorsichtig so weit wie moeglich vom Teil ab. Das spart Zeit und Reinigungsmittel beim Loesen.\n3. Das Verhaeltnis von \"Reinigungsmittel\" zu \"aufzuloesendem Traeger\" ist 1:1. Wenn Sie z. B. 100 g Traeger auf Ihrem Teil haben, muessen Sie 100 g Reinigungsmittel mit Wasser hinzufuegen.\n4. Die Solltemperatur der Aufloesestation zum Aufloesen von Xioneer VXL90 zusammen mit PACF betraegt 60°C. Ein ueberschreiten dieser Temperatur fuehrt zu einer Verformung des Werkstuecks.\n5. Fuer PACF wird eine Aufloesungszeit von etwa 5 bis 6 Stunden empfohlen.\n6. Nach dem Aufloesen ist die geloeste Fluessigkeit als alkalischer Industrieabfall zu entsorgen.\n7. Ausfuehrliche Informationen entnehmen Sie bitte den technischen Datenblaettern, der Betriebsanleitung und den Sicherheitsdatenblaettern von Xioneer VXL90 und Xioneer VXL EX detergent.\n\n\n\nEnglish P2 - PACF\n1.\tCheck Left extruder filament: innovatiQ PACF 100625 - Keep the filament dry!! Detailed drying instruction below.\n2.\tCheck left extruder nozzle: 0.4mm Wolfram for PACF\n3.\tCheck right extruder nozzle: 0.4mm Wolfram for Xioneer VXL90 filament\n4.\tCheck bed: PET with Magigoo PA glue\n5.\tCheck nozzle: Clean it with brush\nWELLDONE! YOU ARE READY NOW TO START YOUR PRINT JOB!\n\nTip for EASY part removal from print bed: Leave the raft-setting, to remove the part from the bed without damaging the foil.\n\n\nFILAMENT DRYING INSTRUCTION\nNylon material is highly hydroscopic. If you feel you have stringing and oozing in your printed part, the filament have moisture in it.\nTo dry the filament, keep the spool in a industrial oven for 2-4 days at 75°C with 30% fresh air intake circulation.\n\n///// SUPPORT DISSOLVING PROCEDURE ///////\nCONSUMABLES FOR DISSOLVING SUPPORT CAN BE PURCHASED FROM innovatiQ.\n1. Read the safety instructions of your Industrial support removal station.\n2. Carefully break-off the 'easy to remove supports' as much as possible from the part. This will save time and detergent in the dissolving process.\n3. The ratio of the 'detergent' to 'support to dissolve' is 1:1. Eg. If you have 100g of support on your part, you have to add 100g of detergent with water.\n4. The Set temperature of the dissolving station to dissolve Xioneer VXL90 together with PACF is 60°C. Exceeding this temperature will deform your part.\n5. For PACF, around 5 to 6 hours of dissolving time is recommeneded.\n6. After the dissolving process, dispose the dissolved liquid as alkaline industrial waste.\n7. For detailed information, please read the technical data sheets, operating instruction and safety data sheets of Xioneer VXL90 and Xioneer VXL EX detergent.", + "outer_wall_speed": "70", + "prime_volume": "80", + "print_settings_id": "0.20mm Standard @iQ TiQ2 P2 - PACF Pro Fiberthree + VXL90 Xioneer (0.4 Nozzle)", + "sparse_infill_density": "50%", + "sparse_infill_speed": "80", + "support_base_pattern": "rectilinear", + "support_bottom_z_distance": "0", + "support_expansion": "1.7", + "support_filament": "2", + "support_interface_filament": "2", + "support_interface_spacing": "0.1", + "support_interface_speed": "50", + "support_line_width": "100%", + "support_object_xy_distance": "0.6", + "support_on_build_plate_only": "0", + "support_speed": "75", + "support_style": "snug", + "support_top_z_distance": "0.02", + "support_type": "normal(auto)", + "top_solid_infill_flow_ratio": "1.01", + "top_surface_speed": "75", + "wall_generator": "classic", + "wipe_tower_extra_spacing": "110%", + "wipe_tower_max_purge_speed": "50", + "bridge_flow": "1.07", + "bridge_speed": "25", + "brim_type": "no_brim", + "enable_support": "1", + "exclude_object": "0", + "gcode_label_objects": "0", + "instantiation": "true", + "compatible_printers": ["iQ TiQ2 0.4 Nozzle"], + "internal_bridge_speed": "50%", + "internal_solid_infill_speed": "60", + "ironing_pattern": "concentric", + "prime_tower_width": "80", + "layer_height": "0.2", + "reduce_crossing_wall": "1", + "skirt_height": "1", + "skirt_loops": "2", + "small_perimeter_speed": "30%", + "small_perimeter_threshold": "5", + "sparse_infill_pattern": "triangles", + "support_angle": "45", + "support_base_pattern_spacing": "1", + "support_bottom_interface_spacing": "0.3", + "support_interface_pattern": "rectilinear_interlaced", + "top_shell_thickness": "0", + "tree_support_branch_diameter_angle": "10", + "tree_support_branch_diameter_organic": "3", + "tree_support_tip_diameter": "2", + "version": "2.2.0.4", + "wall_loops": "2" +} diff --git a/scripts/flatpak/io.github.softfever.OrcaSlicer.metainfo.xml b/scripts/flatpak/io.github.softfever.OrcaSlicer.metainfo.xml index 4c04ff99a0..d5763f8f35 100755 --- a/scripts/flatpak/io.github.softfever.OrcaSlicer.metainfo.xml +++ b/scripts/flatpak/io.github.softfever.OrcaSlicer.metainfo.xml @@ -10,9 +10,9 @@ ... seriously though, thanks --> Get even more perfect prints! SoftFever - https://github.com/SoftFever/OrcaSlicer - https://github.com/SoftFever/OrcaSlicer/wiki - https://github.com/SoftFever/OrcaSlicer/issues/ + https://github.com/OrcaSlicer/OrcaSlicer + https://github.com/OrcaSlicer/OrcaSlicer/wiki + https://github.com/OrcaSlicer/OrcaSlicer/issues/ https://ko-fi.com/SoftFever 0BSD AGPL-3.0-only @@ -42,7 +42,7 @@ #009688 - https://github.com/SoftFever/OrcaSlicer/commit/951fc8e98a0d5ca0ccb254315646ce7889a44836 + https://github.com/OrcaSlicer/OrcaSlicer/commit/951fc8e98a0d5ca0ccb254315646ce7889a44836 diff --git a/scripts/run_unit_tests.sh b/scripts/run_unit_tests.sh index 254221dd64..315c14b594 100755 --- a/scripts/run_unit_tests.sh +++ b/scripts/run_unit_tests.sh @@ -9,5 +9,5 @@ ROOT_DIR="$(dirname "$0")/.." cd "${ROOT_DIR}" || exit 1 -# TODO: github.com/SoftFever/OrcaSlicer/issues/10309 - Run all tests +# TODO: github.com/OrcaSlicer/OrcaSlicer/issues/10309 - Run all tests ctest --test-dir build/tests/slic3rutils --output-junit "$(pwd)/ctest_results.xml" --output-on-failure diff --git a/src/dev-utils/platform/unix/build_linux_image.sh.in b/src/dev-utils/platform/unix/build_linux_image.sh.in index ad1b492b7b..810701dccc 100755 --- a/src/dev-utils/platform/unix/build_linux_image.sh.in +++ b/src/dev-utils/platform/unix/build_linux_image.sh.in @@ -82,7 +82,7 @@ EOF chmod ug+x @SLIC3R_APP_CMD@ cp -fl @SLIC3R_APP_CMD@ package/@SLIC3R_APP_CMD@ # Nothing uses this tar? Remove if nobody has complained and it's been a while since this comment added. - # Original commit was https://github.com/SoftFever/OrcaSlicer/commit/f5a4862da52fc68f77b5201ddf330a9800d83228 + # Original commit was https://github.com/OrcaSlicer/OrcaSlicer/commit/f5a4862da52fc68f77b5201ddf330a9800d83228 # and it doesn't appear to have been used there either. #pushd package > /dev/null #tar -cvf ../@SLIC3R_APP_KEY@.tar . &>/dev/null diff --git a/src/libslic3r/GCodeWriter.cpp b/src/libslic3r/GCodeWriter.cpp index 1cabed0066..4ceac69e34 100644 --- a/src/libslic3r/GCodeWriter.cpp +++ b/src/libslic3r/GCodeWriter.cpp @@ -1029,7 +1029,7 @@ void GCodeWriter::add_object_end_labels(std::string& gcode) m_gcode_label_objects_end = ""; // Orca: reset E so that e value remain correct after skipping the object - // ref to: https://github.com/SoftFever/OrcaSlicer/pull/205/commits/7f1fe0bd544077626080aa1a9a0576aa735da1a4#r1083470162 + // ref to: https://github.com/OrcaSlicer/OrcaSlicer/pull/205/commits/7f1fe0bd544077626080aa1a9a0576aa735da1a4#r1083470162 if (!this->config.use_relative_e_distances) gcode += reset_e(true); } diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index fe2847baee..cc055c9d8a 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -159,7 +159,7 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime BoundingBox bbox(polygon.points); bbox.offset(SCALED_EPSILON); - // Always reverse extrusion if use fuzzy skin: https://github.com/SoftFever/OrcaSlicer/pull/2413#issuecomment-1769735357 + // Always reverse extrusion if use fuzzy skin: https://github.com/OrcaSlicer/OrcaSlicer/pull/2413#issuecomment-1769735357 if (overhangs_reverse && perimeter_generator.has_fuzzy_skin) { if (loop.is_contour) { steep_overhang_contour = true; @@ -406,7 +406,7 @@ static ExtrusionEntityCollection traverse_extrusions(const PerimeterGenerator& p extrusion_paths_append(paths, clip_extrusion(extrusion_path, lower_slices_paths, ClipperLib_Z::ctIntersection), role, is_external ? perimeter_generator.ext_perimeter_flow : perimeter_generator.perimeter_flow); - // Always reverse extrusion if use fuzzy skin: https://github.com/SoftFever/OrcaSlicer/pull/2413#issuecomment-1769735357 + // Always reverse extrusion if use fuzzy skin: https://github.com/OrcaSlicer/OrcaSlicer/pull/2413#issuecomment-1769735357 if (overhangs_reverse && perimeter_generator.has_fuzzy_skin) { if (pg_extrusion.is_contour) { steep_overhang_contour = true; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index c053cad8a9..d2d0be5225 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -664,7 +664,7 @@ void PrintConfigDef::init_common_params() def->label = L("Elephant foot compensation"); def->category = L("Quality"); def->tooltip = L("Shrinks the initial layer on build plate to compensate for elephant foot effect."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.)); @@ -684,14 +684,14 @@ void PrintConfigDef::init_common_params() def->label = L("Layer height"); def->category = L("Quality"); def->tooltip = L("Slicing height for each layer. Smaller layer height means more accurate and more printing time."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloat(0.2)); def = this->add("printable_height", coFloat); def->label = L("Printable height"); def->tooltip = L("Maximum printable height which is limited by mechanism of printer."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 214700; def->mode = comSimple; @@ -700,7 +700,7 @@ void PrintConfigDef::init_common_params() def = this->add("extruder_printable_height", coFloats); def->label = L("Extruder printable height"); def->tooltip = L("Maximum printable height of this extruder which is limited by mechanism of printer."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 1000; def->mode = comAdvanced; @@ -852,7 +852,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the Cool Plate SuperTack."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 120; @@ -862,7 +862,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the Cool Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 300; @@ -872,7 +872,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the Textured Cool Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 300; @@ -882,7 +882,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the Engineering Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 300; @@ -892,7 +892,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the High Temp Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 300; @@ -902,7 +902,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Other layers"); def->tooltip = L("Bed temperature for layers except the initial one. " "A value of 0 means the filament does not support printing on the Textured PEI Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Bed temperature"); def->min = 0; def->max = 300; @@ -913,7 +913,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the Cool Plate SuperTack."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = 120; def->set_default_value(new ConfigOptionInts{ 35 }); @@ -923,7 +923,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the Cool Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = 120; def->set_default_value(new ConfigOptionInts{ 35 }); @@ -933,7 +933,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the Textured Cool Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = 120; def->set_default_value(new ConfigOptionInts{ 40 }); @@ -943,7 +943,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the Engineering Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = 300; def->set_default_value(new ConfigOptionInts{ 45 }); @@ -953,7 +953,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the High Temp Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->max = 300; def->set_default_value(new ConfigOptionInts{ 45 }); @@ -962,7 +962,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Initial layer bed temperature"); def->tooltip = L("Bed temperature of the initial layer. " "A value of 0 means the filament does not support printing on the Textured PEI Plate."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = 300; def->set_default_value(new ConfigOptionInts{45}); @@ -1061,7 +1061,7 @@ void PrintConfigDef::init_fff_params() "thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that " "this setting is disabled and thickness of bottom shell is absolutely determined by bottom shell layers."); def->full_label = L("Bottom shell thickness"); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloat(0.)); @@ -1503,7 +1503,7 @@ void PrintConfigDef::init_fff_params() "In addition, if Slow down for curled perimeters is disabled or Classic overhang mode is enabled, " "it will be the print speed of overhang walls that are supported by less than 13%, " "whether they are part of a bridge or an overhang."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(25)); @@ -1522,7 +1522,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Brim width"); def->category = L("Support"); def->tooltip = L("Distance from model to the outermost brim line."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 100; def->mode = comSimple; @@ -1555,7 +1555,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Brim-object gap"); def->category = L("Support"); def->tooltip = L("A gap between innermost brim line and object can make brim be removed more easily."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 2; def->mode = comAdvanced; @@ -1586,7 +1586,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("The geometry will be decimated before detecting sharp angles. " "This parameter indicates the minimum length of the deviation for the decimation.\n" "0 to deactivate."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(1)); @@ -1678,7 +1678,7 @@ void PrintConfigDef::init_fff_params() def = this->add("default_acceleration", coFloat); def->label = L("Normal printing"); def->tooltip = L("The default acceleration of both normal printing and travel except initial layer."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(500.0)); @@ -1817,7 +1817,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Max bridge length"); def->category = L("Support"); def->tooltip = L("Max length of bridges that don't need support. Set it to 0 if you want all bridges to be supported, and set it to a very large value if you don't want any bridges to be supported."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(10)); @@ -1926,7 +1926,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Speed"); def->tooltip = L("Speed of outer wall which is outermost and visible. " "It's used to be slower than inner wall speed to get better quality."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(60)); @@ -1947,7 +1947,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Small perimeters threshold"); def->category = L("Speed"); def->tooltip = L("This sets the threshold for small perimeter length. Default threshold is 0mm."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -2015,7 +2015,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Height to rod"); def->tooltip = L("Distance of the nozzle tip to the lower rod. " "Used for collision avoidance in by-object printing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(40)); @@ -2025,7 +2025,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Height to lid"); def->tooltip = L("Distance of the nozzle tip to the lid. " "Used for collision avoidance in by-object printing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(120)); @@ -2033,7 +2033,7 @@ void PrintConfigDef::init_fff_params() def = this->add("extruder_clearance_radius", coFloat); def->label = L("Radius"); def->tooltip = L("Clearance radius around extruder. Used for collision avoidance in by-object printing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(40)); @@ -2041,7 +2041,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_height", coFloat); def->label = L("Nozzle height"); def->tooltip = L("The height of nozzle tip."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloat(2.5)); @@ -2054,7 +2054,7 @@ void PrintConfigDef::init_fff_params() "set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max " "points. This information can usually be obtained from your printer manufacturer. The default setting is (-99999, -99999), which " "means there are no limits, thus allowing probing across the entire bed."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoint(Vec2d(-99999, -99999))); @@ -2066,7 +2066,7 @@ void PrintConfigDef::init_fff_params() "set appropriately. OrcaSlicer ensures that adaptive_bed_mesh_min/adaptive_bed_mesh_max values do not exceed these min/max " "points. This information can usually be obtained from your printer manufacturer. The default setting is (99999, 99999), which " "means there are no limits, thus allowing probing across the entire bed."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoint(Vec2d(99999, 99999))); @@ -2075,20 +2075,20 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("This option sets the preferred distance between probe points (grid size) for the X and Y directions, with the " "default being 50mm for both X and Y."); def->min = 0; - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoint(Vec2d(50, 50))); def = this->add("adaptive_bed_mesh_margin", coFloat); def->label = L("Mesh margin"); def->tooltip = L("This option determines the additional distance by which the adaptive bed mesh area should be expanded in the XY directions."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); def = this->add("grab_length",coFloats); def->label = L("Grab length"); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloats({0})); @@ -2107,7 +2107,7 @@ void PrintConfigDef::init_fff_params() // "to take it into account. This option lets you specify the displacement of each extruder " // "with respect to the first one. It expects positive coordinates (they will be subtracted " // "from the XY coordinate)."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoints { Vec2d(0,0) }); @@ -2235,7 +2235,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Layer time"); def->tooltip = L("Part cooling fan will be enabled for layers of which estimated time is shorter than this value. " "Fan speed is interpolated between the minimum and maximum fan speeds according to layer printing time."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->max = 1000; def->mode = comSimple; @@ -2319,7 +2319,7 @@ void PrintConfigDef::init_fff_params() def->nullable = true; def->min = 0; def->max = max_temp; - def->sidetext = "°C"; + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->set_default_value(new ConfigOptionIntsNullable{0}); def = this->add("filament_flush_volumetric_speed", coFloats); @@ -2329,7 +2329,7 @@ void PrintConfigDef::init_fff_params() def->nullable = true; def->min = 0; def->max = 200; - def->sidetext = u8"mm³/s"; // cubic milimeters per second, don't need translation + def->sidetext = L(u8"mm³/s"); // cubic milimeters per second, CIS languages need translation def->set_default_value(new ConfigOptionFloatsNullable{ 0 }); def = this->add("filament_max_volumetric_speed", coFloats); @@ -2337,7 +2337,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("This setting stands for how much volume of filament can be melted and extruded per second. " "Printing speed is limited by max volumetric speed, in case of too high and unreasonable speed setting. " "Can't be zero."); - def->sidetext = u8"mm³/s"; // cubic milimeters per second, don't need translation + def->sidetext = L(u8"mm³/s"); // cubic milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 2. }); @@ -2346,7 +2346,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Filament load time"); def->tooltip = L("Time to load new filament when switch filament. It's usually applicable for single-extruder multi-material machines. " "For tool changers or multi-tool machines, it's typically 0. For statistics only."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); @@ -2355,7 +2355,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Filament unload time"); def->tooltip = L("Time to unload old filament when switch filament. It's usually applicable for single-extruder multi-material machines. " "For tool changers or multi-tool machines, it's typically 0. For statistics only."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); @@ -2364,7 +2364,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tool change time"); def->tooltip = L("Time taken to switch tools. It's usually applicable for tool changers or multi-tool machines. " "For single-extruder multi-material machines, it's typically 0. For statistics only."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat { 0. }); @@ -2391,7 +2391,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_diameter", coFloats); def->label = L("Diameter"); def->tooltip = L("Filament diameter is used to calculate extrusion in G-code, so it is important and should be accurate."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloats { 1.75 }); @@ -2475,7 +2475,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_loading_speed", coFloats); def->label = L("Loading speed"); def->tooltip = L("Speed used for loading the filament on the wipe tower."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 28. }); @@ -2483,7 +2483,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_loading_speed_start", coFloats); def->label = L("Loading speed at the start"); def->tooltip = L("Speed used at the very beginning of loading phase."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 3. }); @@ -2492,7 +2492,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Unloading speed"); def->tooltip = L("Speed used for unloading the filament on the wipe tower (does not affect " "initial part of unloading just after ramming)."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 90. }); @@ -2500,7 +2500,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_unloading_speed_start", coFloats); def->label = L("Unloading speed at the start"); def->tooltip = L("Speed used for unloading the tip of the filament immediately after ramming."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 100. }); @@ -2510,7 +2510,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Time to wait after the filament is unloaded. " "May help to get reliable tool changes with flexible materials " "that may need more time to shrink to original dimensions."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -2542,7 +2542,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_cooling_initial_speed", coFloats); def->label = L("Speed of the first cooling move"); def->tooltip = L("Cooling moves are gradually accelerating beginning at this speed."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 2.2 }); @@ -2553,7 +2553,7 @@ void PrintConfigDef::init_fff_params() "the nozzle may not be known, and the filament pressure is likely not yet stable. " "Before purging the print head into an infill or a sacrificial object, Orca Slicer will always prime " "this amount of material into the wipe tower to produce successive infill or sacrificial object extrusions reliably."); - def->sidetext = u8"mm³"; // cubic milimeters, don't need translation + def->sidetext = L(u8"mm³"); // cubic milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 15. }); @@ -2561,7 +2561,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_cooling_final_speed", coFloats); def->label = L("Speed of the last cooling move"); def->tooltip = L("Cooling moves are gradually accelerating towards this speed."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 3.4 }); @@ -2584,7 +2584,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_multitool_ramming_volume", coFloats); def->label = L("Multi-tool ramming volume"); def->tooltip = L("The volume to be rammed before the tool change."); - def->sidetext = u8"mm³"; // cubic milimeters, don't need translation + def->sidetext = L(u8"mm³"); // cubic milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 10. }); @@ -2592,7 +2592,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_multitool_ramming_flow", coFloats); def->label = L("Multi-tool ramming flow"); def->tooltip = L("Flow used for ramming the filament before the tool change."); - def->sidetext = u8"mm³/s"; // cubic milimeters per second, don't need translation + def->sidetext = L(u8"mm³/s"); // cubic milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 10. }); @@ -2600,7 +2600,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_density", coFloats); def->label = L("Density"); def->tooltip = L("Filament density. For statistics only."); - def->sidetext = u8"g/cm³"; // grams per cubic milimeter, don't need translation + def->sidetext = L(u8"g/cm³"); // grams per cubic centimeter, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -2628,7 +2628,7 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_change_length", coFloats); def->label = L("Filament ramming length"); def->tooltip = L("When changing the extruder, it is recommended to extrude a certain length of filament from the original extruder. This helps minimize nozzle oozing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats{10}); @@ -2654,7 +2654,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Softening temperature"); def->tooltip = L("The material softens at this temperature, so when the bed temperature is equal to or greater than this, " "it's highly recommended to open the front door and/or remove the upper glass to avoid clogging."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->mode = comSimple; def->set_default_value(new ConfigOptionInts{ 100 }); @@ -2878,7 +2878,7 @@ void PrintConfigDef::init_fff_params() def = this->add("outer_wall_acceleration", coFloat); def->label = L("Outer wall"); def->tooltip = L("Acceleration of outer walls."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(10000)); @@ -2886,7 +2886,7 @@ void PrintConfigDef::init_fff_params() def = this->add("inner_wall_acceleration", coFloat); def->label = L("Inner wall"); def->tooltip = L("Acceleration of inner walls."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(10000)); @@ -2894,7 +2894,7 @@ void PrintConfigDef::init_fff_params() def = this->add("travel_acceleration", coFloat); def->label = L("Travel"); def->tooltip = L("Acceleration of travel moves."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(10000)); @@ -2902,7 +2902,7 @@ void PrintConfigDef::init_fff_params() def = this->add("top_surface_acceleration", coFloat); def->label = L("Top surface"); def->tooltip = L("Acceleration of top surface infill. Using a lower value may improve top surface quality."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(500)); @@ -2910,7 +2910,7 @@ void PrintConfigDef::init_fff_params() def = this->add("outer_wall_acceleration", coFloat); def->label = L("Outer wall"); def->tooltip = L("Acceleration of outer wall. Using a lower value can improve quality."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(500)); @@ -2945,7 +2945,7 @@ void PrintConfigDef::init_fff_params() def = this->add("initial_layer_acceleration", coFloat); def->label = L("Initial layer"); def->tooltip = L("Acceleration of initial layer. Using a lower value can improve build plate adhesion."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(300)); @@ -2968,7 +2968,7 @@ void PrintConfigDef::init_fff_params() def = this->add("default_jerk", coFloat); def->label = L("Default"); def->tooltip = L("Default jerk."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -2976,7 +2976,7 @@ void PrintConfigDef::init_fff_params() def = this->add("default_junction_deviation", coFloat); def->label = L("Junction Deviation"); def->tooltip = L("Marlin Firmware Junction Deviation (replaces the traditional XY Jerk setting)."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -2984,7 +2984,7 @@ void PrintConfigDef::init_fff_params() def = this->add("outer_wall_jerk", coFloat); def->label = L("Outer wall"); def->tooltip = L("Jerk of outer walls."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); @@ -2992,7 +2992,7 @@ void PrintConfigDef::init_fff_params() def = this->add("inner_wall_jerk", coFloat); def->label = L("Inner wall"); def->tooltip = L("Jerk of inner walls."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); @@ -3000,7 +3000,7 @@ void PrintConfigDef::init_fff_params() def = this->add("top_surface_jerk", coFloat); def->label = L("Top surface"); def->tooltip = L("Jerk for top surface."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); @@ -3008,7 +3008,7 @@ void PrintConfigDef::init_fff_params() def = this->add("infill_jerk", coFloat); def->label = L("Infill"); def->tooltip = L("Jerk for infill."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); @@ -3016,7 +3016,7 @@ void PrintConfigDef::init_fff_params() def = this->add("initial_layer_jerk", coFloat); def->label = L("Initial layer"); def->tooltip = L("Jerk for initial layer."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(9)); @@ -3024,7 +3024,7 @@ void PrintConfigDef::init_fff_params() def = this->add("travel_jerk", coFloat); def->label = L("Travel"); def->tooltip = L("Jerk for travel."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(12)); @@ -3046,7 +3046,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Initial layer height"); def->category = L("Quality"); def->tooltip = L("Height of initial layer. Making initial layer height to be thick slightly can improve build plate adhesion."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloat(0.2)); @@ -3061,7 +3061,7 @@ void PrintConfigDef::init_fff_params() def = this->add("initial_layer_speed", coFloat); def->label = L("Initial layer"); def->tooltip = L("Speed of initial layer except the solid infill part."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(30)); @@ -3069,7 +3069,7 @@ void PrintConfigDef::init_fff_params() def = this->add("initial_layer_infill_speed", coFloat); def->label = L("Initial layer infill"); def->tooltip = L("Speed of solid infill part of initial layer."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(60.0)); @@ -3098,7 +3098,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Initial layer"); def->full_label = L("Initial layer nozzle temperature"); def->tooltip = L("Nozzle temperature for printing initial layer when using this filament."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = max_temp; def->set_default_value(new ConfigOptionInts { 200 }); @@ -3171,7 +3171,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Fuzzy skin thickness"); def->category = L("Others"); def->tooltip = L("The width within which to jitter. It's advised to be below outer wall line width."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 1; def->mode = comSimple; @@ -3181,7 +3181,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Fuzzy skin point distance"); def->category = L("Others"); def->tooltip = L("The average distance between the random points introduced on each line segment."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 5; def->mode = comSimple; @@ -3244,7 +3244,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Fuzzy skin feature size"); def->category = L("Others"); def->tooltip = L("The base size of the coherent noise features, in mm. Higher values will result in larger features."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0.1; def->max = 500; def->mode = comAdvanced; @@ -3273,7 +3273,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Layers and Perimeters"); def->tooltip = L("Don't print gap fill with a length is smaller than the threshold specified (in mm). This setting applies to top, " "bottom and solid infill and, if using the classic perimeter generator, to wall gap fill."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -3281,7 +3281,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Gap infill"); def->category = L("Speed"); def->tooltip = L("Speed of gap infill. Gap usually has irregular line width and should be printed more slowly."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(30)); @@ -3395,7 +3395,7 @@ void PrintConfigDef::init_fff_params() "\nIt won't move fan commands from custom G-code (they act as a sort of 'barrier')." "\nIt won't move fan commands into the start G-code if the 'only custom start G-code' is activated." "\nUse 0 to deactivate."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -3411,7 +3411,7 @@ void PrintConfigDef::init_fff_params() "\nThis is useful for fans where a low PWM/power may be insufficient to get the fan started spinning from a stop, or to " "get the fan up to speed faster." "\nSet to 0 to deactivate."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -3519,7 +3519,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Infill shift step"); def->category = L("Strength"); def->tooltip = L("This parameter adds a slight displacement to each layer of infill to create a cross texture."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 10; def->mode = comAdvanced; @@ -3581,7 +3581,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Skin infill depth"); def->category = L("Strength"); def->tooltip = L("The parameter sets the depth of skin."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 100; def->mode = comAdvanced; @@ -3591,7 +3591,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Infill lock depth"); def->category = L("Strength"); def->tooltip = L("The parameter sets the overlapping depth between the interior and skin."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 100; def->mode = comAdvanced; @@ -3601,7 +3601,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Skin line width"); def->category = L("Strength"); def->tooltip = L("Adjust the line width of the selected skin paths."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->ratio_over = "nozzle_diameter"; def->min = 0; def->mode = comAdvanced; @@ -3611,7 +3611,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Skeleton line width"); def->category = L("Strength"); def->tooltip = L("Adjust the line width of the selected skeleton paths."); - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->ratio_over = "nozzle_diameter"; def->min = 0; def->mode = comAdvanced; @@ -3711,7 +3711,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Sparse infill"); def->category = L("Speed"); def->tooltip = L("Speed of internal sparse infill."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(100)); @@ -3742,7 +3742,7 @@ void PrintConfigDef::init_fff_params() def = this->add("mmu_segmented_region_max_width", coFloat); def->label = L("Maximum width of a segmented region"); def->tooltip = L("Maximum width of a segmented region. Zero disables this feature."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->category = L("Advanced"); def->mode = comAdvanced; @@ -3753,7 +3753,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Interlocking depth of a segmented region. It will be ignored if " "\"mmu_segmented_region_max_width\" is zero or if \"mmu_segmented_region_interlocking_depth\" " "is bigger than \"mmu_segmented_region_max_width\". Zero disables this feature."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->category = L("Advanced"); def->mode = comAdvanced; @@ -3769,7 +3769,7 @@ void PrintConfigDef::init_fff_params() def = this->add("interlocking_beam_width", coFloat); def->label = L("Interlocking beam width"); def->tooltip = L("The width of the interlocking structure beams."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0.01; def->category = L("Advanced"); def->mode = comAdvanced; @@ -3859,7 +3859,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Ironing line spacing"); def->category = L("Quality"); def->tooltip = L("The distance between the lines of ironing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 1; def->mode = comAdvanced; @@ -3869,7 +3869,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Ironing inset"); def->category = L("Quality"); def->tooltip = L("The distance to keep from the edges. A value of 0 sets this to half of the nozzle diameter."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 100; def->mode = comAdvanced; @@ -3879,7 +3879,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Ironing speed"); def->category = L("Quality"); def->tooltip = L("Print speed of ironing lines."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(20)); @@ -4012,7 +4012,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum Y speed"); (void)L("Maximum Z speed"); (void)L("Maximum E speed"); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionFloats(axis.max_feedrate)); @@ -4030,7 +4030,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum acceleration of the Y axis"); (void)L("Maximum acceleration of the Z axis"); (void)L("Maximum acceleration of the E axis"); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionFloats(axis.max_acceleration)); @@ -4048,7 +4048,7 @@ void PrintConfigDef::init_fff_params() (void)L("Maximum jerk of the Y axis"); (void)L("Maximum jerk of the Z axis"); (void)L("Maximum jerk of the E axis"); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionFloats(axis.max_jerk)); @@ -4059,7 +4059,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Maximum Junction Deviation"); def->category = L("Machine limits"); def->tooltip = L("Maximum junction deviation (M205 J, only apply if JD > 0 for Marlin Firmware\nIf your Marlin 2 printer uses Classic Jerk set this value to 0.)"); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 1; def->mode = comAdvanced; @@ -4070,7 +4070,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Minimum speed for extruding"); def->category = L("Machine limits"); def->tooltip = L("Minimum speed for extruding (M205 S)"); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloats{ 0., 0. }); @@ -4080,7 +4080,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Minimum travel speed"); def->category = L("Machine limits"); def->tooltip = L("Minimum travel speed (M205 T)"); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloats{ 0., 0. }); @@ -4092,7 +4092,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Maximum acceleration for extruding (M204 P)"); // "Marlin (legacy) firmware flavor will use this also " // "as travel acceleration (M204 T)."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->readonly = false; def->mode = comSimple; @@ -4104,7 +4104,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Maximum acceleration for retracting"); def->category = L("Machine limits"); def->tooltip = L("Maximum acceleration for retracting (M204 R)"); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->readonly = false; def->mode = comSimple; @@ -4115,7 +4115,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Maximum acceleration for travel"); def->category = L("Machine limits"); def->tooltip = L("Maximum acceleration for travel (M204 T), it only applies to Marlin 2."); - def->sidetext = u8"mm/s²"; // milimeters per second per second, don't need translation + def->sidetext = L(u8"mm/s²"); // milimeters per second per second, CIS languages need translation def->min = 0; def->readonly = false; def->mode = comAdvanced; @@ -4133,7 +4133,7 @@ void PrintConfigDef::init_fff_params() def = this->add("min_resonance_avoidance_speed", coFloat); def->label = L("Min"); def->tooltip = L("Minimum speed of resonance avoidance."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(70)); @@ -4141,7 +4141,7 @@ void PrintConfigDef::init_fff_params() def = this->add("max_resonance_avoidance_speed", coFloat); def->label = L("Max"); def->tooltip = L("Maximum speed of resonance avoidance."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(120)); @@ -4160,7 +4160,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Max"); def->tooltip = L("The highest printable layer height for the extruder. " "Used to limit the maximum layer height when enable adaptive layer height."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -4181,7 +4181,7 @@ void PrintConfigDef::init_fff_params() "A value of 10-15 mm³/s² is a good starting point for direct drive extruders and 5-10 mm³/s² for Bowden style.\n\n" "This feature is known as Pressure Equalizer in Prusa slicer.\n\n" "Note: this parameter disables arc fitting."); - def->sidetext = u8"mm³/s²"; // cubic milimeters per second per second, don't need translation + def->sidetext = L(u8"mm³/s²"); // cubic milimeters per second per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -4194,7 +4194,7 @@ void PrintConfigDef::init_fff_params() "Allowed values: 0.5-5"); def->min = 0.5; def->max = 5; - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(3.0)); @@ -4229,7 +4229,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Min"); def->tooltip = L("The lowest printable layer height for the extruder. " "Used to limit the minimum layer height when enable adaptive layer height."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0.07 }); @@ -4238,7 +4238,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Min print speed"); def->tooltip = L("The minimum print speed to which the printer slows down to maintain the minimum layer time defined above " "when the slowdown for better layer cooling is enabled."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 10. }); @@ -4246,7 +4246,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_diameter", coFloats); def->label = L("Nozzle diameter"); def->tooltip = L("The diameter of nozzle."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->max = 100; def->set_default_value(new ConfigOptionFloats { 0.4 }); @@ -4301,7 +4301,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_volume", coFloats); def->label = L("Nozzle volume"); def->tooltip = L("Volume of nozzle between the cutter and the end of nozzle."); - def->sidetext = u8"mm³"; // cubic milimeters, don't need translation + def->sidetext = L(u8"mm³"); // cubic milimeters, CIS languages need translation def->mode = comAdvanced; def->readonly = false; def->nullable = true; @@ -4310,7 +4310,7 @@ void PrintConfigDef::init_fff_params() def = this->add("cooling_tube_retraction", coFloat); def->label = L("Cooling tube position"); def->tooltip = L("Distance of the center-point of the cooling tube from the extruder tip."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(91.5)); @@ -4318,7 +4318,7 @@ void PrintConfigDef::init_fff_params() def = this->add("cooling_tube_length", coFloat); def->label = L("Cooling tube length"); def->tooltip = L("Length of the cooling tube to limit space for cooling moves inside it."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(5.)); @@ -4335,7 +4335,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Filament parking position"); def->tooltip = L("Distance of the extruder tip from the position where the filament is parked " "when unloaded. This should match the value in printer firmware."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(92.)); @@ -4345,7 +4345,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("When set to zero, the distance the filament is moved from parking position during load " "is exactly the same as it was moved back during unload. When positive, it is loaded further, " "if negative, the loading move is shorter than unloading."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(-2.)); @@ -4402,7 +4402,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Quality"); def->tooltip = L("Maximum area of a hole in the base of the model before it's filled by conical material. " "A value of 0 will fill all the holes in the model base."); - def->sidetext = u8"mm²"; // square millimeters, don't need translation + def->sidetext = L(u8"mm²"); // square milimeters, CIS languages need translation def->mode = comAdvanced; def->min = 0.; def->set_default_value(new ConfigOptionFloat(0.)); @@ -4440,7 +4440,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Inner wall"); def->category = L("Speed"); def->tooltip = L("Speed of inner wall."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->aliases = { "perimeter_feed_rate" }; def->min = 1; def->mode = comAdvanced; @@ -4511,7 +4511,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Raft contact Z distance"); def->category = L("Support"); def->tooltip = L("Z gap between object and raft. Ignored for soluble interface."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.1)); @@ -4520,7 +4520,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Raft expansion"); def->category = L("Support"); def->tooltip = L("Expand all raft layers in XY plane."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(1.5)); @@ -4539,7 +4539,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Initial layer expansion"); def->category = L("Support"); def->tooltip = L("Expand the first raft or support layer to improve bed plate adhesion."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; //BBS: change from 3.0 to 2.0 @@ -4560,7 +4560,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Resolution"); def->tooltip = L("The G-code path is generated after simplifying the contour of models to avoid too many points and G-code lines. " "Smaller value means higher resolution and more time to slice."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.01)); @@ -4568,7 +4568,7 @@ void PrintConfigDef::init_fff_params() def = this->add("retraction_minimum_travel", coFloats); def->label = L("Travel distance threshold"); def->tooltip = L("Only trigger retraction when the travel distance is longer than this threshold."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 2. }); @@ -4590,7 +4590,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Retraction Length"); def->tooltip = L("Some amount of material in extruder is pulled back to avoid ooze during long travel. " "Set zero to disable retraction."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comSimple; def->set_default_value(new ConfigOptionFloats { 0.8 }); @@ -4625,7 +4625,7 @@ void PrintConfigDef::init_fff_params() def->nullable = true; def->min = 0; def->max = 10; - def->sidetext = L("mm"); + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->set_default_value(new ConfigOptionFloatsNullable{10}); def = this->add("retract_length_toolchange", coFloats); @@ -4635,7 +4635,7 @@ void PrintConfigDef::init_fff_params() //def->tooltip = L("When retraction is triggered before changing tool, filament is pulled back " // "by the specified amount (the length is measured on raw filament, before it enters " // "the extruder)."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 10. }); @@ -4644,7 +4644,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Whenever the retraction is done, the nozzle is lifted a little to create clearance between nozzle and the print. " "It prevents nozzle from hitting the print when travel move. " "Using spiral lines to lift Z can prevent stringing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comSimple; def->min = 0; def->max = 5; @@ -4653,7 +4653,7 @@ void PrintConfigDef::init_fff_params() def = this->add("retract_lift_above", coFloats); def->label = L("Z-hop lower boundary"); def->tooltip = L("Z-hop will only come into effect when Z is above this value and is below the parameter: \"Z-hop upper boundary\"."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->min = 0; def->set_default_value(new ConfigOptionFloats{0.}); @@ -4661,7 +4661,7 @@ void PrintConfigDef::init_fff_params() def = this->add("retract_lift_below", coFloats); def->label = L("Z-hop upper boundary"); def->tooltip = L("If this value is positive, Z-hop will only come into effect when Z is above the parameter: \"Z-hop lower boundary\" and is below this value."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->min = 0; def->set_default_value(new ConfigOptionFloats{0.}); @@ -4693,14 +4693,14 @@ void PrintConfigDef::init_fff_params() def = this->add("retract_lift_above", coFloats); def->label = L("Only lift Z above"); def->tooltip = L("If you set this to a positive value, Z lift will only take place above the specified absolute Z."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats{0.}); def = this->add("retract_lift_below", coFloats); def->label = L("Only lift Z below"); def->tooltip = L("If you set this to a positive value, Z lift will only take place below the specified absolute Z."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats{0.}); @@ -4827,7 +4827,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Extra length on restart"); def->tooltip = L("When the retraction is compensated after the travel move, the extruder will push " "this additional amount of filament. This setting is rarely needed."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -4835,7 +4835,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Extra length on restart"); def->tooltip = L("When the retraction is compensated after changing tool, the extruder will push " "this additional amount of filament."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -4843,7 +4843,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Retraction Speed"); def->full_label = L("Retraction Speed"); def->tooltip = L("Speed for retracting filament from the nozzle."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 30. }); @@ -4851,7 +4851,7 @@ void PrintConfigDef::init_fff_params() def->label = L("De-retraction Speed"); def->full_label = L("De-retraction Speed"); def->tooltip = L("Speed for reloading filament into the nozzle. Zero means same speed of retraction."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 0. }); @@ -4989,7 +4989,7 @@ void PrintConfigDef::init_fff_params() def = this->add("seam_slope_min_length", coFloat); def->label = L("Scarf length"); def->tooltip = L("Length of the scarf. Setting this parameter to zero effectively disables the scarf."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(20)); @@ -5044,7 +5044,7 @@ void PrintConfigDef::init_fff_params() def = this->add("skirt_distance", coFloat); def->label = L("Skirt distance"); def->tooltip = L("The distance from the skirt to the brim or the object."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 60; def->mode = comAdvanced; @@ -5114,7 +5114,7 @@ void PrintConfigDef::init_fff_params() def->full_label = L("Skirt speed"); def->tooltip = L("Speed of skirt, in mm/s. Zero means use default layer extrusion speed."); def->min = 0; - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(50.0)); @@ -5125,7 +5125,7 @@ void PrintConfigDef::init_fff_params() "Using a non-zero value is useful if the printer is set up to print without a prime line.\n" "Final number of loops is not taking into account while arranging or validating objects distance. Increase loop number in such case."); def->min = 0; - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.0)); @@ -5133,7 +5133,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Layer time"); def->tooltip = L("The printing speed in exported G-code will be slowed down when the estimated layer time is " "shorter than this value in order to get better cooling for these layers."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->max = 1000; def->mode = comSimple; @@ -5143,7 +5143,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Minimum sparse infill threshold"); def->category = L("Strength"); def->tooltip = L("Sparse infill area which is smaller than threshold value is replaced by internal solid infill."); - def->sidetext = u8"mm²"; // square millimeters, don't need translation + def->sidetext = L(u8"mm²"); // square milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(15)); @@ -5173,7 +5173,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Internal solid infill"); def->category = L("Speed"); def->tooltip = L("Speed of internal solid infill, not the top and bottom surface."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(100)); @@ -5251,7 +5251,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Temperature difference to be applied when an extruder is not active. " "The value is not used when 'idle_temperature' in filament settings " "is set to non-zero value."); - def->sidetext = u8"∆\u2103"; // delta degrees Celsius, don't need translation + def->sidetext = L(u8"∆\u2103"); // delta degrees Celsius, CIS languages need translation def->min = -max_temp; def->max = max_temp; def->mode = comAdvanced; @@ -5261,7 +5261,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Preheat time"); def->tooltip = L("To reduce the waiting time after tool change, Orca can preheat the next tool while the current tool is still in use. " "This setting specifies the time in seconds to preheat the next tool. Orca will insert a M104 command to preheat the tool in advance."); - def->sidetext = "s"; // seconds, don't need translation + def->sidetext = L("s"); // seconds, CIS languages need translation def->min = 0; def->max = 120; def->mode = comAdvanced; @@ -5341,7 +5341,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Quality"); def->tooltip = L("Cracks smaller than 2x gap closing radius are being filled during the triangle mesh slicing. " "The gap closing operation may reduce the final print resolution, therefore it is advisable to keep the value reasonably low."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.049)); @@ -5366,7 +5366,7 @@ void PrintConfigDef::init_fff_params() "in the output G-code. It is used to compensate for bad Z endstop position: " "for example, if your endstop zero actually leaves the nozzle 0.3mm far " "from the print bed, set this to -0.3 (or fix your endstop)."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -5398,7 +5398,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support/object XY distance"); def->category = L("Support"); def->tooltip = L("XY separation between an object and its support."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 10; def->mode = comAdvanced; @@ -5409,7 +5409,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support/object first layer gap"); def->category = L("Support"); def->tooltip = L("XY separation between an object and its support at the first layer."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 10; def->mode = comAdvanced; @@ -5456,7 +5456,7 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->category = L("Support"); def->tooltip = L("The Z gap between the top support interface and object."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation // def->min = 0; #if 0 //def->enum_values.push_back("0"); @@ -5473,7 +5473,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Bottom Z distance"); def->category = L("Support"); def->tooltip = L("The Z gap between the bottom support interface and object."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.2)); @@ -5574,7 +5574,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Support"); def->tooltip = L("Spacing of interface lines. Zero means solid interface.\n" "Force using solid interface when support ironing is enabled."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.5)); @@ -5584,7 +5584,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Bottom interface spacing"); def->category = L("Support"); def->tooltip = L("Spacing of bottom interface lines. Zero means solid interface."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0.5)); @@ -5593,7 +5593,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support interface"); def->category = L("Speed"); def->tooltip = L("Speed of support interface."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(80)); @@ -5642,7 +5642,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Base pattern spacing"); def->category = L("Support"); def->tooltip = L("Spacing between support lines."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(2.5)); @@ -5651,7 +5651,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Normal Support expansion"); def->category = L("Support"); def->tooltip = L("Expand (+) or shrink (-) the horizontal span of normal support."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -5659,7 +5659,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support"); def->category = L("Speed"); def->tooltip = L("Speed of support."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(80)); @@ -5759,7 +5759,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tree support branch distance"); def->category = L("Support"); def->tooltip = L("This setting determines the distance between neighboring tree support nodes."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 1.0; def->max = 10; def->mode = comAdvanced; @@ -5769,7 +5769,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tree support branch distance"); def->category = L("Support"); def->tooltip = L("This setting determines the distance between neighboring tree support nodes."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 1.0; def->max = 10; def->mode = comAdvanced; @@ -5807,7 +5807,7 @@ void PrintConfigDef::init_fff_params() def->category = L("Support"); // TRN PrintSettings: "Organic supports" > "Tip Diameter" def->tooltip = L("Branch tip diameter for organic supports."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0.1f; def->max = 100.f; def->mode = comAdvanced; @@ -5817,7 +5817,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tree support branch diameter"); def->category = L("Support"); def->tooltip = L("This setting determines the initial diameter of support nodes."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 1.0; def->max = 10; def->mode = comAdvanced; @@ -5841,7 +5841,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Tree support branch diameter"); def->category = L("Support"); def->tooltip = L("This setting determines the initial diameter of support nodes."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 1.0; def->max = 10; def->mode = comAdvanced; @@ -5899,7 +5899,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support Ironing line spacing"); def->category = L("Support"); def->tooltip = L("The distance between the lines of ironing."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 1; def->mode = comAdvanced; @@ -5929,7 +5929,7 @@ void PrintConfigDef::init_fff_params() "This may be useful if your printer does not support M141/M191 commands, or if you desire " "to handle heat soaking in the print start macro if no active chamber heater is installed." ); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Chamber temperature"); def->min = 0; def->max = max_temp; @@ -5938,7 +5938,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_temperature", coInts); def->label = L("Other layers"); def->tooltip = L("Nozzle temperature for layers after the initial one."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->full_label = L("Nozzle temperature"); def->min = 0; def->max = max_temp; @@ -5947,7 +5947,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_temperature_range_low", coInts); def->label = L("Min"); //def->tooltip = L(""); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = max_temp; def->set_default_value(new ConfigOptionInts { 190 }); @@ -5955,7 +5955,7 @@ void PrintConfigDef::init_fff_params() def = this->add("nozzle_temperature_range_high", coInts); def->label = L("Max"); //def->tooltip = L(""); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = max_temp; def->set_default_value(new ConfigOptionInts { 240 }); @@ -6007,7 +6007,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Top surface"); def->category = L("Speed"); def->tooltip = L("Speed of top surface infill which is solid."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(100)); @@ -6030,7 +6030,7 @@ void PrintConfigDef::init_fff_params() "thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that " "this setting is disabled and thickness of top shell is absolutely determined by top shell layers."); def->full_label = L("Top shell thickness"); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloat(0.6)); @@ -6061,7 +6061,7 @@ void PrintConfigDef::init_fff_params() def = this->add("travel_speed", coFloat); def->label = L("Travel"); def->tooltip = L("Speed of travel which is faster and without extrusion."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 1; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(120)); @@ -6071,7 +6071,7 @@ void PrintConfigDef::init_fff_params() //def->tooltip = L("Speed of vertical travel along z axis. " // "This is typically lower because build plate or gantry is hard to be moved. " // "Zero means using travel speed directly in G-code, but will be limited by printer's ability when run G-code."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->min = 0; def->mode = comDevelop; def->set_default_value(new ConfigOptionFloat(0.)); @@ -6089,7 +6089,7 @@ void PrintConfigDef::init_fff_params() "Depending on how long the wipe operation lasts, how fast and long the extruder/filament retraction settings are, " "a retraction move may be needed to retract the remaining filament.\n\n" "Setting a value in the retract amount before wipe setting below will perform any excess retraction before the wipe, else it will be performed after."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloats { 1. }); @@ -6130,14 +6130,14 @@ void PrintConfigDef::init_fff_params() def = this->add("flush_multiplier", coFloats); def->label = L("Flush multiplier"); def->tooltip = L("The actual flushing volumes is equal to the flush multiplier multiplied by the flushing volumes in the table."); - def->sidetext = ""; + //def->sidetext = ""; def->set_default_value(new ConfigOptionFloats{0.3}); // BBS def = this->add("prime_volume", coFloat); def->label = L("Prime volume"); def->tooltip = L("The volume of material to prime extruder on tower."); - def->sidetext = u8"mm³"; // cubic milimeters, don't need translation + def->sidetext = L(u8"mm³"); // cubic milimeters, CIS languages need translation def->min = 1.0; def->mode = comSimple; def->set_default_value(new ConfigOptionFloat(45.)); @@ -6145,7 +6145,7 @@ void PrintConfigDef::init_fff_params() def = this->add("wipe_tower_x", coFloats); //def->label = L("Position X"); //def->tooltip = L("X coordinate of the left front corner of a wipe tower."); - //def->sidetext = "mm"; // milimeters, don't need translation + //def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comDevelop; // BBS: change data type to floats to add partplate logic def->set_default_value(new ConfigOptionFloats{ 15. }); @@ -6153,7 +6153,7 @@ void PrintConfigDef::init_fff_params() def = this->add("wipe_tower_y", coFloats); //def->label = L("Position Y"); //def->tooltip = L("Y coordinate of the left front corner of a wipe tower."); - //def->sidetext = "mm"; // milimeters, don't need translation + //def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comDevelop; // BBS: change data type to floats to add partplate logic def->set_default_value(new ConfigOptionFloats{ 220. }); @@ -6161,7 +6161,7 @@ void PrintConfigDef::init_fff_params() def = this->add("prime_tower_width", coFloat); def->label = L("Width"); def->tooltip = L("Width of the prime tower."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 2.0; def->mode = comSimple; def->set_default_value(new ConfigOptionFloat(60.)); @@ -6177,7 +6177,7 @@ void PrintConfigDef::init_fff_params() def->gui_type = ConfigOptionDef::GUIType::f_enum_open; def->label = L("Brim width"); def->tooltip = L("Brim width of prime tower, negative number means auto calculated width based on the height of prime tower."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->min = -1; def->enum_values.push_back("-1"); @@ -6202,7 +6202,7 @@ void PrintConfigDef::init_fff_params() "Increasing this speed may affect the tower's stability as well as increase the force with which the nozzle collides with any blobs that may have formed on the wipe tower.\n\n" "Before increasing this parameter beyond the default of 90 mm/s, make sure your printer can reliably bridge at the increased speeds and that ooze when tool changing is well controlled.\n\n" "For the wipe tower external perimeters the internal perimeter speed is used regardless of this setting."); - def->sidetext = "mm/s"; // milimeters per second, don't need translation + def->sidetext = L("mm/s"); // milimeters per second, CIS languages need translation def->mode = comAdvanced; def->min = 10; def->set_default_value(new ConfigOptionFloat(90.)); @@ -6227,7 +6227,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Extra rib length"); def->tooltip = L("Positive values can increase the size of the rib wall, while negative values can reduce the size. " "However, the size of the rib wall can not be smaller than that determined by the cleaning volume."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->max = 300; def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -6235,7 +6235,7 @@ void PrintConfigDef::init_fff_params() def = this->add("wipe_tower_rib_width", coFloat); def->label = L("Rib width"); def->tooltip = L("Rib width is always less than half the prime tower side length."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->min = 0; def->max = 300; @@ -6311,7 +6311,7 @@ void PrintConfigDef::init_fff_params() def = this->add("wipe_tower_bridging", coFloat); def->label = L("Maximal bridging distance"); def->tooltip = L("Maximal distance between supports on sparse infill sections."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(10.)); @@ -6338,7 +6338,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Idle temperature"); def->tooltip = L("Nozzle temperature when the tool is currently not used in multi-tool setups. " "This is only used when 'Ooze prevention' is active in Print Settings. Set to 0 to disable."); - def->sidetext = u8"\u2103" /* °C */; // degrees Celsius, don't need translation + def->sidetext = L(u8"\u2103" /* °C */); // degrees Celsius, CIS languages need translation def->min = 0; def->max = max_temp; def->set_default_value(new ConfigOptionInts{0}); @@ -6349,7 +6349,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Holes in objects will expand or contract in the XY plane by the configured value. " "Positive values make holes bigger, negative values make holes smaller. " "This function is used to adjust sizes slightly when the objects have assembling issues."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -6359,7 +6359,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Contours of objects will expand or contract in the XY plane by the configured value. " "Positive values make contours bigger, negative values make contours smaller. " "This function is used to adjust sizes slightly when the objects have assembling issues."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(0)); @@ -6506,7 +6506,7 @@ void PrintConfigDef::init_fff_params() "NOTE: Bottom and top surfaces will not be affected by this value to prevent visual gaps on the outside of the model. " "Adjust 'One wall threshold' in the Advanced settings below to adjust the sensitivity of what is considered a top-surface. " "'One wall threshold' is only visible if this setting is set above the default value of 0.5, or if single-wall top surfaces is enabled."); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->mode = comAdvanced; def->min = 0.0; def->max = 25.0; @@ -7120,7 +7120,7 @@ void PrintConfigDef::init_sla_params() //def->label = L(""); //def->category = L(""); //def->tooltip = L(""); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->set_default_value(new ConfigOptionFloat(1.)); @@ -7261,7 +7261,7 @@ void PrintConfigDef::init_sla_params() //def->label = L(""); //def->category = L(""); //def->tooltip = L(""); - def->sidetext = "mm"; // milimeters, don't need translation + def->sidetext = L("mm"); // milimeters, CIS languages need translation def->min = 0; def->max = 10; def->mode = comAdvanced; diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index 06e968631b..72e456426c 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -332,7 +332,7 @@ AboutDialog::AboutDialog() (boost::format( "" "" - "

https://github.com/SoftFever/Orcaslicer

" + "

https://github.com/OrcaSlicer/OrcaSlicer

" "" "") ).str()); diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index ff2697558b..fea07e7540 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -50,7 +50,7 @@ void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter para def.min = 0; def.max = 214700; def.width = 10; // increase width for large scale printers with 4 digit values - def.sidetext = "mm"; // milimeters, don't need translation + def.sidetext = L("mm"); // milimeters, CIS languages need translation def.label = get_option_label(param); def.tooltip = L("Size in X and Y of the rectangular plate."); key = "rect_size"; @@ -61,7 +61,7 @@ void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter para def.min = -107350; def.max = 107350; def.width = 10; // increase width for large scale printers with 4 digit values - def.sidetext = "mm"; // milimeters, don't need translation + def.sidetext = L("mm"); // milimeters, CIS languages need translation def.label = get_option_label(param); def.tooltip = L("Distance of the 0,0 G-code coordinate from the front left corner of the rectangle."); key = "rect_origin"; @@ -70,7 +70,7 @@ void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter para def.type = coFloat; def.set_default_value(new ConfigOptionFloat(200)); def.width = 10; // match size - def.sidetext = "mm"; // milimeters, don't need translation + def.sidetext = L("mm"); // milimeters, CIS languages need translation def.label = get_option_label(param); def.tooltip = L("Diameter of the print bed. It is assumed that origin (0,0) is located in the center."); key = "diameter"; diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 3656fa38fd..47ab2f093b 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -338,7 +338,7 @@ void CaliPresetCustomRangePanel::create_panel(wxWindow* parent) m_title_texts[i]->Wrap(-1); m_title_texts[i]->SetFont(::Label::Body_14); item_sizer->Add(m_title_texts[i], 0, wxALL, 0); - m_value_inputs[i] = new TextInput(parent, wxEmptyString, wxString::FromUTF8("\u2103" /* °C */), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, 0); + m_value_inputs[i] = new TextInput(parent, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, 0); m_value_inputs[i]->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); m_value_inputs[i]->GetTextCtrl()->Bind(wxEVT_TEXT, [this, i](wxCommandEvent& event) { std::string number = m_value_inputs[i]->GetTextCtrl()->GetValue().ToStdString(); @@ -417,7 +417,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent) auto nozzle_temp_sizer = new wxBoxSizer(wxVERTICAL); auto nozzle_temp_text = new Label(parent, _L("Nozzle temperature")); nozzle_temp_text->SetFont(Label::Body_12); - m_nozzle_temp = new TextInput(parent, wxEmptyString, wxString::FromUTF8("\u2103" /* °C */), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); + m_nozzle_temp = new TextInput(parent, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); m_nozzle_temp->SetBorderWidth(0); nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT); nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND); @@ -432,7 +432,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent) auto bed_temp_text = new Label(parent, _L("Bed temperature")); bed_temp_text->SetFont(Label::Body_12); - m_bed_temp = new Label(parent, wxString::FromUTF8("- °C")); + m_bed_temp = new Label(parent, _L("- \u2103" /* °C */)); m_bed_temp->SetFont(Label::Body_12); bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(10)); bed_temp_sizer->Add(m_bed_temp, 0, wxALIGN_CENTER); @@ -440,7 +440,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent) auto max_flow_sizer = new wxBoxSizer(wxVERTICAL); auto max_flow_text = new Label(parent, _L("Max volumetric speed")); max_flow_text->SetFont(Label::Body_12); - m_max_volumetric_speed = new TextInput(parent, wxEmptyString, wxString::FromUTF8("mm³"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); + m_max_volumetric_speed = new TextInput(parent, wxEmptyString, _L("mm³"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); m_max_volumetric_speed->SetBorderWidth(0); max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT); max_flow_sizer->Add(m_max_volumetric_speed, 0, wxEXPAND); @@ -2774,7 +2774,7 @@ MaxVolumetricSpeedPresetPage::MaxVolumetricSpeedPresetPage( titles.push_back(_L("Step")); m_custom_range_panel->set_titles(titles); - m_custom_range_panel->set_unit(wxString::FromUTF8("mm³/s")); + m_custom_range_panel->set_unit(_L("mm³/s")); } } }} diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 063f7c088a..58df5b1c09 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -278,7 +278,7 @@ PrinterPicker::PrinterPicker(wxWindow *parent, const VendorProfile &vendor, wxSt const auto &variant = model.variants[i]; const auto label = model.technology == ptFFF - ? from_u8((boost::format("%1% %2% %3%") % variant.name % _utf8("mm") % _utf8(L("nozzle"))).str()) + ? from_u8((boost::format("%1% %2% %3%") % variant.name % _utf8(L("mm")) % _utf8(L("nozzle"))).str()) : from_u8(model.name); if (i == 1) { @@ -1353,7 +1353,7 @@ PageDiameters::PageDiameters(ConfigWizard *parent) auto *sizer_nozzle = new wxFlexGridSizer(3, 5, 5); auto *text_nozzle = new wxStaticText(this, wxID_ANY, _L("Nozzle Diameter:")); - auto *unit_nozzle = new wxStaticText(this, wxID_ANY, "mm"); + auto *unit_nozzle = new wxStaticText(this, wxID_ANY, _L("mm")); sizer_nozzle->AddGrowableCol(0, 1); sizer_nozzle->Add(text_nozzle, 0, wxALIGN_CENTRE_VERTICAL); sizer_nozzle->Add(diam_nozzle); @@ -1367,7 +1367,7 @@ PageDiameters::PageDiameters(ConfigWizard *parent) auto *sizer_filam = new wxFlexGridSizer(3, 5, 5); auto *text_filam = new wxStaticText(this, wxID_ANY, _L("Filament Diameter:")); - auto *unit_filam = new wxStaticText(this, wxID_ANY, "mm"); + auto *unit_filam = new wxStaticText(this, wxID_ANY, _L("mm")); sizer_filam->AddGrowableCol(0, 1); sizer_filam->Add(text_filam, 0, wxALIGN_CENTRE_VERTICAL); sizer_filam->Add(diam_filam); @@ -1448,7 +1448,7 @@ PageTemperatures::PageTemperatures(ConfigWizard *parent) auto *sizer_extr = new wxFlexGridSizer(3, 5, 5); auto *text_extr = new wxStaticText(this, wxID_ANY, _L("Extrusion Temperature:")); - auto *unit_extr = new wxStaticText(this, wxID_ANY, wxString::FromUTF8("\u2103") /* °C */); + auto *unit_extr = new wxStaticText(this, wxID_ANY, _L("\u2103" /* °C */)); sizer_extr->AddGrowableCol(0, 1); sizer_extr->Add(text_extr, 0, wxALIGN_CENTRE_VERTICAL); sizer_extr->Add(spin_extr); @@ -1462,7 +1462,7 @@ PageTemperatures::PageTemperatures(ConfigWizard *parent) auto *sizer_bed = new wxFlexGridSizer(3, 5, 5); auto *text_bed = new wxStaticText(this, wxID_ANY, _L("Bed Temperature:")); - auto *unit_bed = new wxStaticText(this, wxID_ANY, wxString::FromUTF8("\u2103") /* °C */); + auto *unit_bed = new wxStaticText(this, wxID_ANY, _L("\u2103" /* °C */)); sizer_bed->AddGrowableCol(0, 1); sizer_bed->Add(text_bed, 0, wxALIGN_CENTRE_VERTICAL); sizer_bed->Add(spin_bed); diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index 849b6f6faa..5c64733d75 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -82,7 +82,7 @@ static const std::unordered_map> printer_m {{"Anker", {"Anker M5", "Anker M5 All-Metal Hot End", "Anker M5C"}}, {"Anycubic", {"Anycubic i3 Mega S", "Anycubic Chiron", "Anycubic Vyper", "Anycubic Kobra", "Anycubic Kobra Max", "Anycubic Kobra Plus", "Anycubic 4Max Pro", "Anycubic 4Max Pro 2", "Anycubic Kobra 2", "Anycubic Kobra 2 Plus", - "Anycubic Kobra 2 Max", "Anycubic Kobra 2 Pro", "Anycubic Kobra 2 Neo", "Anycubic Kobra 3", "Anycubic Kobra S1"}}, + "Anycubic Kobra 2 Max", "Anycubic Kobra 2 Pro", "Anycubic Kobra 2 Neo", "Anycubic Kobra 3", "Anycubic Kobra S1", "Anycubic Predator", }}, {"Artillery", {"Artillery Sidewinder X1", "Artillery Genius", "Artillery Genius Pro", "Artillery Sidewinder X2", "Artillery Hornet", "Artillery Sidewinder X3 Pro", "Artillery Sidewinder X3 Plus", "Artillery Sidewinder X4 Pro", "Artillery Sidewinder X4 Plus"}}, {"Bambulab", {"Bambu Lab X1 Carbon", "Bambu Lab X1", "Bambu Lab X1E", "Bambu Lab P1P", "Bambu Lab P1S", @@ -1967,7 +1967,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_bed_size_item(wxWindow *parent) // ORCA use icon on input box to match style with other Point fields horizontal_sizer->Add(length_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxALIGN_CENTER_VERTICAL, FromDIP(10)); wxBoxSizer *length_input_sizer = new wxBoxSizer(wxVERTICAL); - m_bed_size_x_input = new TextInput(parent, "200", "mm", "inputbox_x", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); + m_bed_size_x_input = new TextInput(parent, "200", _L("mm"), "inputbox_x", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); wxTextValidator validator(wxFILTER_DIGITS); m_bed_size_x_input->GetTextCtrl()->SetValidator(validator); length_input_sizer->Add(m_bed_size_x_input, 0, wxEXPAND | wxLEFT, FromDIP(5)); @@ -1977,7 +1977,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_bed_size_item(wxWindow *parent) // ORCA use icon on input box to match style with other Point fields horizontal_sizer->Add(width_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxALIGN_CENTER_VERTICAL, FromDIP(10)); wxBoxSizer *width_input_sizer = new wxBoxSizer(wxVERTICAL); - m_bed_size_y_input = new TextInput(parent, "200", "mm", "inputbox_y", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); + m_bed_size_y_input = new TextInput(parent, "200", _L("mm"), "inputbox_y", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); m_bed_size_y_input->GetTextCtrl()->SetValidator(validator); width_input_sizer->Add(m_bed_size_y_input, 0, wxEXPAND | wxALL, 0); horizontal_sizer->Add(width_input_sizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5)); @@ -2000,7 +2000,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_origin_item(wxWindow *parent) // ORCA use icon on input box to match style with other Point fields horizontal_sizer->Add(length_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxALIGN_CENTER_VERTICAL, FromDIP(10)); wxBoxSizer *length_input_sizer = new wxBoxSizer(wxVERTICAL); - m_bed_origin_x_input = new TextInput(parent, "0", "mm", "inputbox_x", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); + m_bed_origin_x_input = new TextInput(parent, "0", _L("mm"), "inputbox_x", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); wxTextValidator validator(wxFILTER_DIGITS); m_bed_origin_x_input->GetTextCtrl()->SetValidator(validator); length_input_sizer->Add(m_bed_origin_x_input, 0, wxEXPAND | wxLEFT, FromDIP(5)); // Align with other @@ -2010,7 +2010,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_origin_item(wxWindow *parent) // ORCA use icon on input box to match style with other Point fields horizontal_sizer->Add(width_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxALIGN_CENTER_VERTICAL, FromDIP(10)); wxBoxSizer *width_input_sizer = new wxBoxSizer(wxVERTICAL); - m_bed_origin_y_input = new TextInput(parent, "0", "mm", "inputbox_y", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); + m_bed_origin_y_input = new TextInput(parent, "0", _L("mm"), "inputbox_y", wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); m_bed_origin_y_input->GetTextCtrl()->SetValidator(validator); width_input_sizer->Add(m_bed_origin_y_input, 0, wxEXPAND | wxALL, 0); horizontal_sizer->Add(width_input_sizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5)); @@ -2081,7 +2081,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_max_print_height_item(wxWindow *pa horizontal_sizer->Add(optionSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(10)); wxBoxSizer *hight_input_sizer = new wxBoxSizer(wxVERTICAL); - m_print_height_input = new TextInput(parent, "200", "mm", wxEmptyString, wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); // Use same alignment with all other input boxes + m_print_height_input = new TextInput(parent, "200", _L("mm"), wxEmptyString, wxDefaultPosition, PRINTER_SPACE_SIZE, wxTE_PROCESS_ENTER); // Use same alignment with all other input boxes wxTextValidator validator(wxFILTER_DIGITS); m_print_height_input->GetTextCtrl()->SetValidator(validator); hight_input_sizer->Add(m_print_height_input, 0, wxEXPAND | wxLEFT, FromDIP(5)); diff --git a/src/slic3r/GUI/ExtrusionCalibration.cpp b/src/slic3r/GUI/ExtrusionCalibration.cpp index 78d839f747..fc8e294283 100644 --- a/src/slic3r/GUI/ExtrusionCalibration.cpp +++ b/src/slic3r/GUI/ExtrusionCalibration.cpp @@ -127,21 +127,21 @@ void ExtrusionCalibration::create() wxWindow::GetTextExtent(_L("Bed Temperature")).x), wxWindow::GetTextExtent(_L("Max volumetric speed")).x), EXTRUSION_CALIBRATION_INPUT_SIZE.x); - m_nozzle_temp = new TextInput(m_step_1_panel, wxEmptyString, wxString::FromUTF8("\u2103") /* °C */, "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); + m_nozzle_temp = new TextInput(m_step_1_panel, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT); nozzle_temp_sizer->AddSpacer(FromDIP(4)); nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND); auto bed_temp_sizer = new wxBoxSizer(wxVERTICAL); auto bed_temp_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Bed temperature")); - m_bed_temp = new TextInput(m_step_1_panel, wxEmptyString, wxString::FromUTF8("\u2103") /* °C */, "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); + m_bed_temp = new TextInput(m_step_1_panel, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_LEFT); bed_temp_sizer->AddSpacer(FromDIP(4)); bed_temp_sizer->Add(m_bed_temp, 0, wxEXPAND); auto max_flow_sizer = new wxBoxSizer(wxVERTICAL); auto max_flow_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Max volumetric speed")); - m_max_flow_ratio = new TextInput(m_step_1_panel, wxEmptyString, wxString::FromUTF8("mm³"), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); + m_max_flow_ratio = new TextInput(m_step_1_panel, wxEmptyString, _L("mm³"), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY); max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT); max_flow_sizer->AddSpacer(FromDIP(4)); max_flow_sizer->Add(m_max_flow_ratio, 0, wxEXPAND); diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 2cfb45340b..98cbcc0e54 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -4943,13 +4943,13 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv auto upto_label = [](double z) { char buf[64]; ::sprintf(buf, "%.2f", z); - return _u8L("up to") + " " + std::string(buf) + " " + "mm"; + return _u8L("up to") + " " + std::string(buf) + " " + _u8L("mm"); }; auto above_label = [](double z) { char buf[64]; ::sprintf(buf, "%.2f", z); - return _u8L("above") + " " + std::string(buf) + " " + "mm"; + return _u8L("above") + " " + std::string(buf) + " " + _u8L("mm"); }; auto fromto_label = [](double z1, double z2) { @@ -4957,7 +4957,7 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv ::sprintf(buf1, "%.2f", z1); char buf2[64]; ::sprintf(buf2, "%.2f", z2); - return _u8L("from") + " " + std::string(buf1) + " " + _u8L("to") + " " + std::string(buf2) + " " + "mm"; + return _u8L("from") + " " + std::string(buf1) + " " + _u8L("to") + " " + std::string(buf2) + " " + _u8L("mm"); }; auto role_time_and_percent = [time_mode](ExtrusionRole role) { diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 4b37fd8e91..0c1cdad36c 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1843,7 +1843,7 @@ void GLCanvas3D::enable_picking(bool enable) // Orca: invalidate hover state when dragging is toggled, otherwise if we turned off dragging // while hovering above a volume, the hovering state won't update even if mouse has moved away. - // Fixes https://github.com/SoftFever/OrcaSlicer/pull/9979#issuecomment-3065575889 + // Fixes https://github.com/OrcaSlicer/OrcaSlicer/pull/9979#issuecomment-3065575889 m_hover_volume_idxs.clear(); } diff --git a/src/slic3r/GUI/GUI_ObjectLayers.cpp b/src/slic3r/GUI/GUI_ObjectLayers.cpp index a96891bcf2..3b36158bd1 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.cpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.cpp @@ -139,7 +139,7 @@ wxSizer* ObjectLayers::create_layer(const t_layer_height_range& range, PlusMinus m_grid_sizer->Add(editor, 1, wxEXPAND); auto sizer2 = new wxBoxSizer(wxHORIZONTAL); - auto unit_text = new wxStaticText(m_og->ctrl_parent(), wxID_ANY, "mm", wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); + auto unit_text = new wxStaticText(m_og->ctrl_parent(), wxID_ANY, _L("mm"), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); unit_text->SetBackgroundStyle(wxBG_STYLE_PAINT); unit_text->SetFont(wxGetApp().normal_font()); sizer2->Add(unit_text, 0, wxALIGN_CENTER_VERTICAL); @@ -160,7 +160,7 @@ wxSizer* ObjectLayers::create_layer(const t_layer_height_range& range, PlusMinus //auto sizer = new wxBoxSizer(wxHORIZONTAL); //sizer->Add(editor); - //auto temp = new wxStaticText(m_parent, wxID_ANY, "mm"); + //auto temp = new wxStaticText(m_parent, wxID_ANY, _L("mm")); //temp->SetBackgroundStyle(wxBG_STYLE_PAINT); //temp->SetFont(wxGetApp().normal_font()); //sizer->Add(temp, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, wxGetApp().em_unit()); diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 49c82ce50d..5b5e0bd77a 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -132,7 +132,7 @@ ObjectList::ObjectList(wxWindow* parent) : #ifdef __linux__ // Temporary fix for incorrect dark mode application regarding list item's text color. - // See: https://github.com/SoftFever/OrcaSlicer/issues/2086 + // See: https://github.com/OrcaSlicer/OrcaSlicer/issues/2086 this->SetForegroundColour(*wxBLACK); #endif diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 1db5d68030..966076968b 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -2296,7 +2296,7 @@ void MainFrame::on_sys_color_changed() } // On macOS, we use system menu bar, which handles the key accelerators automatically and breaks key handling in normal typing -// See https://github.com/SoftFever/OrcaSlicer/issues/8152 +// See https://github.com/OrcaSlicer/OrcaSlicer/issues/8152 // So we disable some of the accelerators on macOS, by replacing the accelerator seperator to a hyphen. #ifdef __APPLE__ static const wxString sep = " - "; @@ -3113,7 +3113,7 @@ void MainFrame::init_menubar_as_editor() // help append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Tutorial"), _L("Calibration help"), [this](wxCommandEvent&) { - std::string url = "https://github.com/SoftFever/OrcaSlicer/wiki/Calibration"; + std::string url = "https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration"; if (const std::string country_code = wxGetApp().app_config->get_country_code(); country_code == "CN") { // Use gitee mirror for China users url = "https://gitee.com/n0isyfox/orca-slicer-docs/wikis/%E6%A0%A1%E5%87%86/%E6%89%93%E5%8D%B0%E5%8F%82%E6%95%B0%E6%A0%A1%E5%87%86"; @@ -3229,7 +3229,7 @@ void MainFrame::init_menubar_as_editor() [this]() {return m_plater->is_view3D_shown();; }, this); // help append_menu_item(calib_menu, wxID_ANY, _L("Tutorial"), _L("Calibration help"), - [this](wxCommandEvent&) { wxLaunchDefaultBrowser("https://github.com/SoftFever/OrcaSlicer/wiki/Calibration", wxBROWSER_NEW_WINDOW); }, "", nullptr, + [this](wxCommandEvent&) { wxLaunchDefaultBrowser("https://github.com/OrcaSlicer/OrcaSlicer/wiki/Calibration", wxBROWSER_NEW_WINDOW); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); m_menubar->Append(calib_menu,wxString::Format("&%s", _L("Calibration"))); diff --git a/src/slic3r/GUI/NetworkTestDialog.cpp b/src/slic3r/GUI/NetworkTestDialog.cpp index 468ab2a71a..f4cca3ea95 100644 --- a/src/slic3r/GUI/NetworkTestDialog.cpp +++ b/src/slic3r/GUI/NetworkTestDialog.cpp @@ -248,7 +248,7 @@ void NetworkTestDialog::start_all_job_sequence() update_status(-1, "start_test_sequence"); start_test_url(TEST_BING_JOB, "Bing", "http://www.bing.com"); if (m_closing) return; - start_test_url(TEST_ORCA_JOB, "OrcaSlicer(GitHub)", "https://github.com/SoftFever/OrcaSlicer"); + start_test_url(TEST_ORCA_JOB, "OrcaSlicer(GitHub)", "https://github.com/OrcaSlicer/OrcaSlicer"); if (m_closing) return; update_status(-1, "end_test_sequence"); }); @@ -306,7 +306,7 @@ void NetworkTestDialog::start_test_github_thread() if (m_in_testing[TEST_ORCA_JOB]) return; test_job[TEST_ORCA_JOB] = new boost::thread([this] { - start_test_url(TEST_ORCA_JOB, "OrcaSlicer(GitHub)", "https://github.com/SoftFever/OrcaSlicer"); + start_test_url(TEST_ORCA_JOB, "OrcaSlicer(GitHub)", "https://github.com/OrcaSlicer/OrcaSlicer"); }); } void NetworkTestDialog::start_test_bing_thread() diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index fc777a36d8..14f1e86b44 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -158,7 +158,7 @@ ObjectDataViewModelNode::ObjectDataViewModelNode(ObjectDataViewModelNode* parent parent->GetNthChild(i)->SetIdx(i + 1); } const std::string label_range = (boost::format(" %.2f-%.2f ") % layer_range.first % layer_range.second).str(); - m_name = _(L("Range")) + label_range + "(" + _("mm") + ")"; + m_name = _(L("Range")) + label_range + "(" + _(L("mm")) + ")"; m_bmp = create_scaled_bitmap(LayerIcon); set_icons(); diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index a319cafab5..3d0318f663 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -1312,7 +1312,7 @@ wxString OptionsGroup::get_url(const std::string& path_end) str = str.Left(pos) + anchor; } // Orca: point to sf wiki for seam parameters - return wxString::Format(L"https://github.com/SoftFever/OrcaSlicer/wiki/%s", from_u8(path_end)); + return wxString::Format(L"https://github.com/OrcaSlicer/OrcaSlicer/wiki/%s", from_u8(path_end)); } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 3225e25cb3..c85968dc8d 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -11728,7 +11728,7 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) if (accels.empty()) { accels.assign({accel}); const auto msg{_L("INFO:") + "\n" + - _L("No accelerations provided for calibration. Use default acceleration value ") + std::to_string(long(accel)) + wxString::FromUTF8("mm/s²")}; + _L("No accelerations provided for calibration. Use default acceleration value ") + std::to_string(long(accel)) + _L(u8"mm/s²")}; get_notification_manager()->push_notification(msg.ToStdString()); } else { // set max acceleration in case of batch mode to get correct test pattern size @@ -11795,7 +11795,7 @@ void Plater::_calib_pa_pattern(const Calib_Params& params) speeds.assign({speed}); const auto msg{_L("INFO:") + "\n" + - _L("No speeds provided for calibration. Use default optimal speed ") + std::to_string(long(speed)) + "mm/s"}; + _L("No speeds provided for calibration. Use default optimal speed ") + std::to_string(long(speed)) + _L("mm/s")}; get_notification_manager()->push_notification(msg.ToStdString()); } else if (speeds.size() == 1) { // If we have single value provided, set speed using global configuration. diff --git a/src/slic3r/GUI/RammingChart.cpp b/src/slic3r/GUI/RammingChart.cpp index 9dd1c85965..96cd3b65a7 100644 --- a/src/slic3r/GUI/RammingChart.cpp +++ b/src/slic3r/GUI/RammingChart.cpp @@ -89,10 +89,10 @@ void Chart::draw() { } // axis labels: - wxString label = _(L("Time")) + " (" + _("s") + ")"; + wxString label = _(L("Time")) + " (" + _(L("s")) + ")"; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawText(label,wxPoint(0.5*(m_rect.GetRight()+m_rect.GetLeft())-text_width/2.f, m_rect.GetBottom()+0.6*legend_side)); - label = _(L("Volumetric speed")) + " (" + wxString::FromUTF8("mm³/s") + ")"; + label = _(L("Volumetric speed")) + " (" + _(L(u8"mm³/s")) + ")"; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawRotatedText(label,wxPoint(0,0.5*(m_rect.GetBottom()+m_rect.GetTop())+text_width/2.f),90); diff --git a/src/slic3r/GUI/StepMeshDialog.cpp b/src/slic3r/GUI/StepMeshDialog.cpp index 685b8e8290..db281a8ebf 100644 --- a/src/slic3r/GUI/StepMeshDialog.cpp +++ b/src/slic3r/GUI/StepMeshDialog.cpp @@ -123,7 +123,7 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file, double line tips->SetForegroundColour(StateColor::darkModeColorFor(wxColour(0, 151, 137))); tips->SetFont(font); tips->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { - wxLaunchDefaultBrowser("https://github.com/SoftFever/OrcaSlicer/wiki/stl-transformation"); + wxLaunchDefaultBrowser("https://github.com/OrcaSlicer/OrcaSlicer/wiki/stl-transformation"); }); info->Wrap(FromDIP(400)); tips_sizer->Add(info, 0, wxALIGN_LEFT); diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index 5e26860e0e..ba0cd7e8fa 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -107,8 +107,8 @@ RammingPanel::RammingPanel(wxWindow* parent, const std::string& parameters) label->SetLabel(multiline_message); sizer_chart->Add(label, 0, wxEXPAND | wxALL, 5); - m_widget_time = new SpinInput(this, wxEmptyString, "ms" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 5000 , 3000, 250); - m_widget_volume = new SpinInput(this, wxEmptyString, wxString::FromUTF8("mm³"), wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 10000, 0 ); + m_widget_time = new SpinInput(this, wxEmptyString, _L("ms"), wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 5000 , 3000, 250); + m_widget_volume = new SpinInput(this, wxEmptyString, _L("mm³"), wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 0 , 10000, 0 ); m_widget_ramming_line_width_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 300 , 100 ); m_widget_ramming_step_multiplicator = new SpinInput(this, wxEmptyString, "%" , wxDefaultPosition, wxSize(scale(120), -1), wxSP_ARROW_KEYS, 10, 300 , 100 ); diff --git a/src/slic3r/GUI/calib_dlg.cpp b/src/slic3r/GUI/calib_dlg.cpp index f9d42bc19f..8dd338f88e 100644 --- a/src/slic3r/GUI/calib_dlg.cpp +++ b/src/slic3r/GUI/calib_dlg.cpp @@ -176,12 +176,12 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* // Help links auto help_sizer = new wxBoxSizer(wxVERTICAL); auto help_link_pa = new wxHyperlinkCtrl(this, wxID_ANY, _L("Pressure Advance Guide"), - "https://github.com/SoftFever/OrcaSlicer/wiki/pressure-advance-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/pressure-advance-calib"); help_link_pa->SetForegroundColour(wxColour("#1890FF")); help_sizer->Add(help_link_pa, 0, wxALL, FromDIP(5)); auto help_link_apa = new wxHyperlinkCtrl(this, wxID_ANY, _L("Adaptive Pressure Advance Guide"), - "https://github.com/SoftFever/OrcaSlicer/wiki/adaptive-pressure-advance-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/adaptive-pressure-advance-calib"); help_link_apa->SetForegroundColour(wxColour("#1890FF")); help_sizer->Add(help_link_apa, 0, wxALL, FromDIP(5)); @@ -356,7 +356,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat // start temp auto start_temp_sizer = new wxBoxSizer(wxHORIZONTAL); auto start_temp_text = new wxStaticText(this, wxID_ANY, start_temp_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStart = new TextInput(this, std::to_string(230), wxString::FromUTF8("\u2103") /* °C */, "", wxDefaultPosition, ti_size); + m_tiStart = new TextInput(this, std::to_string(230), _L("\u2103" /* °C */), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); start_temp_sizer->Add(start_temp_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); start_temp_sizer->Add(m_tiStart , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -365,7 +365,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat // end temp auto end_temp_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_temp_text = new wxStaticText(this, wxID_ANY, end_temp_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiEnd = new TextInput(this, std::to_string(190), wxString::FromUTF8("\u2103") /* °C */, "", wxDefaultPosition, ti_size); + m_tiEnd = new TextInput(this, std::to_string(190), _L("\u2103" /* °C */), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_temp_sizer->Add(end_temp_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_temp_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -374,7 +374,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat // temp step auto temp_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto temp_step_text = new wxStaticText(this, wxID_ANY, temp_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStep = new TextInput(this, wxString::FromDouble(5), wxString::FromUTF8("\u2103") /* °C */, "", wxDefaultPosition, ti_size); + m_tiStep = new TextInput(this, wxString::FromDouble(5), _L("\u2103" /* °C */), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); m_tiStep->Enable(false); temp_step_sizer->Add(temp_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -387,7 +387,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Temperature Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/temp-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/temp-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -409,7 +409,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat return; if(t> 350 || t < 170){ MessageDialog msg_dlg(nullptr, wxString::Format(L"Supported range: 170%s - 350%s", - wxString::FromUTF8("\u2103") /* °C */, wxString::FromUTF8("\u2103") /* °C */), + _L("\u2103" /* °C */), _L("\u2103" /* °C */)), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); if(t > 350) @@ -537,7 +537,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin // start vol auto start_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto start_vol_text = new wxStaticText(this, wxID_ANY, start_vol_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStart = new TextInput(this, std::to_string(5), wxString::FromUTF8("mm³/s"), "", wxDefaultPosition, ti_size); + m_tiStart = new TextInput(this, std::to_string(5), _L(u8"mm³/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); start_vol_sizer->Add(start_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -547,7 +547,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin // end vol auto end_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_vol_text = new wxStaticText(this, wxID_ANY, end_vol_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiEnd = new TextInput(this, std::to_string(20), wxString::FromUTF8("mm³/s"), "", wxDefaultPosition, ti_size); + m_tiEnd = new TextInput(this, std::to_string(20), _L(u8"mm³/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_vol_sizer->Add(end_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_vol_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -556,7 +556,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin // vol step auto vol_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto vol_step_text = new wxStaticText(this, wxID_ANY, vol_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStep = new TextInput(this, wxString::FromDouble(0.5), wxString::FromUTF8("mm³/s"), "", wxDefaultPosition, ti_size); + m_tiStep = new TextInput(this, wxString::FromDouble(0.5), _L(u8"mm³/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); vol_step_sizer->Add(vol_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); vol_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -566,7 +566,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Volumetric Speed Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/volumetric-speed-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/volumetric-speed-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -641,7 +641,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) // start vol auto start_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto start_vol_text = new wxStaticText(this, wxID_ANY, start_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStart = new TextInput(this, std::to_string(40), "mm/s", "", wxDefaultPosition, ti_size); + m_tiStart = new TextInput(this, std::to_string(40), _L("mm/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); start_vol_sizer->Add(start_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -651,7 +651,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) // end vol auto end_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_vol_text = new wxStaticText(this, wxID_ANY, end_vol_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiEnd = new TextInput(this, std::to_string(200), "mm/s", "", wxDefaultPosition, ti_size); + m_tiEnd = new TextInput(this, std::to_string(200), _L("mm/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_vol_sizer->Add(end_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_vol_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -660,7 +660,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) // vol step auto vol_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto vol_step_text = new wxStaticText(this, wxID_ANY, vol_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStep = new TextInput(this, wxString::FromDouble(10), "mm/s", "", wxDefaultPosition, ti_size); + m_tiStep = new TextInput(this, wxString::FromDouble(10), _L("mm/s"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); vol_step_sizer->Add(vol_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); vol_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -672,7 +672,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: VFA"), - "https://github.com/SoftFever/OrcaSlicer/wiki/vfa-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/vfa-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -748,7 +748,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater // start length auto start_length_sizer = new wxBoxSizer(wxHORIZONTAL); auto start_length_text = new wxStaticText(this, wxID_ANY, start_length_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStart = new TextInput(this, std::to_string(0), "mm", "", wxDefaultPosition, ti_size); + m_tiStart = new TextInput(this, std::to_string(0), _L("mm"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); start_length_sizer->Add(start_length_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -758,7 +758,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater // end length auto end_length_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_length_text = new wxStaticText(this, wxID_ANY, end_length_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiEnd = new TextInput(this, std::to_string(2), "mm", "", wxDefaultPosition, ti_size); + m_tiEnd = new TextInput(this, std::to_string(2), _L("mm"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_length_sizer->Add(end_length_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_length_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -767,7 +767,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater // length step auto length_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto length_step_text = new wxStaticText(this, wxID_ANY, length_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiStep = new TextInput(this, wxString::FromDouble(0.1), "mm", "", wxDefaultPosition, ti_size); + m_tiStep = new TextInput(this, wxString::FromDouble(0.1), _L("mm"), "", wxDefaultPosition, ti_size); m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); length_step_sizer->Add(length_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); length_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -779,7 +779,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Retraction Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/retraction-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/retraction-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -898,9 +898,9 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin // X axis frequencies auto x_freq_sizer = new wxBoxSizer(wxHORIZONTAL); auto start_x_text = new wxStaticText(this, wxID_ANY, x_axis_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiFreqStartX = new TextInput(this, std::to_string(15) , "Hz", "", wxDefaultPosition, ti_size); + m_tiFreqStartX = new TextInput(this, std::to_string(15) , _L("Hz"), "", wxDefaultPosition, ti_size); m_tiFreqStartX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); - m_tiFreqEndX = new TextInput(this, std::to_string(110), "Hz", "", wxDefaultPosition, ti_size); + m_tiFreqEndX = new TextInput(this, std::to_string(110), _L("Hz"), "", wxDefaultPosition, ti_size); m_tiFreqEndX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); x_freq_sizer->Add(start_x_text , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -956,7 +956,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Input Shaping Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/input-shaping-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/input-shaping-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -1112,9 +1112,9 @@ Input_Shaping_Damp_Test_Dlg::Input_Shaping_Damp_Test_Dlg(wxWindow* parent, wxWin auto freq_sizer = new wxBoxSizer(wxHORIZONTAL); auto freq_text = new wxStaticText(this, wxID_ANY, freq_str, wxDefaultPosition, st_size, wxALIGN_LEFT); - m_tiFreqX = new TextInput(this, std::to_string(30), "Hz", "", wxDefaultPosition, ti_size); + m_tiFreqX = new TextInput(this, std::to_string(30), _L("Hz"), "", wxDefaultPosition, ti_size); m_tiFreqX->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); - m_tiFreqY = new TextInput(this, std::to_string(30), "Hz", "", wxDefaultPosition, ti_size); + m_tiFreqY = new TextInput(this, std::to_string(30), _L("Hz"), "", wxDefaultPosition, ti_size); m_tiFreqY->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); freq_sizer->Add(freq_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); freq_sizer->Add(m_tiFreqX, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -1153,7 +1153,7 @@ Input_Shaping_Damp_Test_Dlg::Input_Shaping_Damp_Test_Dlg(wxWindow* parent, wxWin v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Input Shaping Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/input-shaping-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/input-shaping-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10)); @@ -1344,7 +1344,7 @@ Cornering_Test_Dlg::Cornering_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* v_sizer->AddSpacer(FromDIP(5)); auto help_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Wiki Guide: Cornering Calibration"), - "https://github.com/SoftFever/OrcaSlicer/wiki/cornering-calib"); + "https://github.com/OrcaSlicer/OrcaSlicer/wiki/cornering-calib"); help_link->SetForegroundColour(wxColour("#1890FF")); v_sizer->Add(help_link, 0, wxALL, FromDIP(10));