diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 2257133d40..1e944a7667 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -48,16 +48,17 @@ concurrency: jobs: - build_linux: + build_linux: # Separate so unit tests can wait on just Linux builds to complete. name: Build Linux strategy: fail-fast: false # Don't run scheduled builds on forks: if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} - uses: ./.github/workflows/build_check_cache.yml + uses: ./.github/workflows/build_deps.yml with: os: ubuntu-24.04 build-deps-only: ${{ inputs.build-deps-only || false }} + force-build: ${{ github.event_name == 'schedule' }} secrets: inherit build_all: name: Build Non-Linux @@ -70,7 +71,7 @@ jobs: arch: arm64 # Don't run scheduled builds on forks: if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} - uses: ./.github/workflows/build_check_cache.yml + uses: ./.github/workflows/build_deps.yml with: os: ${{ matrix.os }} arch: ${{ matrix.arch }} @@ -112,7 +113,7 @@ jobs: path: build/tests/**/*.log - name: Publish Test Results if: always() - uses: EnricoMi/publish-unit-test-result-action@v2 + uses: EnricoMi/publish-unit-test-result-action/linux@v2 with: files: "ctest_results.xml" flatpak: diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml deleted file mode 100644 index 00b5f71ecd..0000000000 --- a/.github/workflows/build_check_cache.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Check Cache - -on: - workflow_call: - inputs: - os: - required: true - type: string - arch: - required: false - type: string - build-deps-only: - required: false - type: boolean - force-build: - required: false - type: boolean - -jobs: - check_cache: # determines if there is a cache and outputs variables used in caching process - name: Check Cache - runs-on: ${{ inputs.os }} - outputs: - cache-key: ${{ steps.set_outputs.outputs.cache-key }} - cache-path: ${{ steps.set_outputs.outputs.cache-path }} - valid-cache: ${{ steps.cache_deps.outputs.cache-hit }} - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'true' - - - name: set outputs - id: set_outputs - env: - dep-folder-name: ${{ inputs.os != 'macos-14' && '/OrcaSlicer_dep' || '' }} - output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} - run: | - echo cache-key=${{ inputs.os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }} - echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }} - - - name: load cache - id: cache_deps - uses: actions/cache@v4 - with: - path: ${{ steps.set_outputs.outputs.cache-path }} - key: ${{ steps.set_outputs.outputs.cache-key }} - lookup-only: true - - build_deps: # call next step - name: Build Deps - needs: [check_cache] - uses: ./.github/workflows/build_deps.yml - with: - cache-key: ${{ needs.check_cache.outputs.cache-key }} - cache-path: ${{ needs.check_cache.outputs.cache-path }} - valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }} - os: ${{ inputs.os }} - arch: ${{ inputs.arch }} - build-deps-only: ${{ inputs.build-deps-only }} - force-build: ${{ inputs.force-build }} - secrets: inherit diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index b255b6abf7..045f9f7f2a 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -1,15 +1,6 @@ on: workflow_call: inputs: - cache-key: - required: true - type: string - cache-path: - required: true - type: string - valid-cache: - required: true - type: boolean os: required: true type: string @@ -26,55 +17,62 @@ on: jobs: build_deps: name: Build Deps - if: ${{ !cancelled() && (inputs.build-deps-only || inputs.force-build || inputs.valid-cache != true) }} runs-on: ${{ inputs.os }} + outputs: + artifact-name: ${{ env.ARTIFACT_NAME }} + artifact-path: ${{ env.DEPS_PATH }} env: - date: + DO_BUILD: ${{ inputs.build-deps-only || inputs.force-build }} + DEPS_PATH: ${{ github.workspace }}/deps/build${{ inputs.os != 'macos-14' && '/OrcaSlicer_dep' || '' }} + ARTIFACT_NAME: OrcaSlicer_dep_${{ inputs.os }}_${{ inputs.arch }} steps: - - # Setup the environment - name: Checkout uses: actions/checkout@v6 with: lfs: 'true' + # Cached deps are just the final outputs, no intermediate files. + # So building XOR cache loading. + # We use `lookup-only` to skip pulling cache. - name: load cached deps - uses: actions/cache@v4 + uses: actions/cache/restore@v4 + id: cache-load with: - path: ${{ inputs.cache-path }} - key: ${{ inputs.cache-key }} + path: ${{ env.DEPS_PATH }} + key: ${{ inputs.os }}-${{ inputs.arch }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} + lookup-only: ${{ env.DO_BUILD == 'true' }} # Doing this instead of `if` preserves the outputs of this step - uses: lukka/get-cmake@latest + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') }} with: cmakeVersion: "~3.28.0" # use most recent 3.28.x version - name: setup dev on Windows - if: inputs.os == 'windows-latest' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os == 'windows-latest' }} uses: microsoft/setup-msbuild@v2 - name: Get the date on Ubuntu and macOS - if: inputs.os != 'windows-latest' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os != 'windows-latest' }} run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV shell: bash - name: Get the date on Windows - if: inputs.os == 'windows-latest' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os == 'windows-latest' }} run: echo "date=$(Get-Date -Format 'yyyyMMdd')" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 shell: pwsh - - # Build Dependencies - name: Build on Windows - if: inputs.os == 'windows-latest' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os == 'windows-latest' }} working-directory: ${{ github.workspace }} run: | choco install strawberryperl .\build_release_vs.bat deps - .\build_release_vs.bat pack - cd ${{ github.workspace }}/deps/build + # Windows and Linux don't need to delete any directories, because they only package up deps/build/OrcaSlicer_dep. + # But Mac has multiple and we're preserving their directory structure relationship. + # So the garbage siblings of OrcaSlicer_dep can be deleted to save artifact and cache space. - name: Build on Mac ${{ inputs.arch }} - if: inputs.os == 'macos-14' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os == 'macos-14' }} working-directory: ${{ github.workspace }} run: | brew install automake texinfo libtool @@ -87,53 +85,40 @@ jobs: done brew install zstd - - name: Apt-Install Dependencies - if: inputs.os == 'ubuntu-24.04' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && inputs.os == 'ubuntu-24.04' }} uses: ./.github/actions/apt-install-deps - name: Build on Ubuntu - if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' + if: ${{ !cancelled() && (env.DO_BUILD == 'true' || steps.cache-load.outputs.cache-hit != 'true') && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }} working-directory: ${{ github.workspace }} run: | - mkdir -p ${{ github.workspace }}/deps/build/destdir ./build_linux.sh -dr - cd deps/build - tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir - - # Upload Artifacts - # - name: Upload Mac ${{ inputs.arch }} artifacts - # if: inputs.os == 'macos-14' - # uses: actions/upload-artifact@v5 - # with: - # name: OrcaSlicer_dep_mac_${{ env.date }} - # path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.tar.gz - - - name: Upload Windows artifacts - if: inputs.os == 'windows-latest' + - name: Upload OrcaSlicer_dep director(ies) for use later + if: ${{ !cancelled() && ! env.ACT}} uses: actions/upload-artifact@v5 with: - name: OrcaSlicer_dep_win64_${{ env.date }} - path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.DEPS_PATH }} + retention-days: 10 # It's not too big, but we don't need it for a very long time. + if-no-files-found: error - - name: Upload Ubuntu artifacts - if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }} - env: - ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }} - uses: actions/upload-artifact@v5 + - name: Save cache from main branch + if: ${{ !cancelled() && github.ref == 'refs/heads/main' && steps.cache-load.outputs.cache-hit != 'true' }} + uses: actions/cache/save@v4 with: - name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }} - path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz + path: ${{ env.DEPS_PATH }} + key: ${{ steps.cache-load.outputs.cache-primary-key }} build_orca: name: Build OrcaSlicer needs: [build_deps] - if: ${{ !cancelled() && !inputs.build-deps-only && (inputs.force-build || (inputs.valid-cache == true && needs.build_deps.result == 'skipped') || (inputs.valid-cache != true && success())) }} + if: ${{ !cancelled() && (!inputs.build-deps-only || inputs.force-build) }} uses: ./.github/workflows/build_orca.yml with: - cache-key: ${{ inputs.cache-key }} - cache-path: ${{ inputs.cache-path }} + artifact-name: ${{ needs.build_deps.outputs.artifact-name }} + artifact-path: ${{ needs.build_deps.outputs.artifact-path }} os: ${{ inputs.os }} arch: ${{ inputs.arch }} secrets: inherit diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 5a315bed74..986ac4059c 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -1,10 +1,10 @@ on: workflow_call: inputs: - cache-key: + artifact-name: required: true type: string - cache-path: + artifact-path: required: true type: string os: @@ -30,12 +30,11 @@ jobs: with: lfs: 'true' - - name: load cached deps - uses: actions/cache@v4 + - name: Download deps artifacts + uses: actions/download-artifact@v4 with: - path: ${{ inputs.cache-path }} - key: ${{ inputs.cache-key }} - fail-on-cache-miss: false + name: ${{ inputs.artifact-name }} + path: ${{ inputs.artifact-path }} - uses: lukka/get-cmake@latest with: diff --git a/build_linux.sh b/build_linux.sh index 9a9a9160ba..3159557146 100755 --- a/build_linux.sh +++ b/build_linux.sh @@ -21,7 +21,7 @@ function usage() { echo " -p: boost ccache hit rate by disabling precompiled headers (default: ON)" echo " -r: skip RAM and disk checks (low RAM compiling)" echo " -s: build the Orca Slicer (optional)" - echo " -t: build tests (optional), requires -s flag" + echo " -t: build tests (optional)" echo " -u: install system dependencies (asks for sudo password; build prerequisite)" echo " -l: use Clang instead of GCC (default: GCC)" echo " -L: use ld.lld as linker (if available)" diff --git a/deps/CGAL/0001-clang19.patch b/deps/CGAL/0001-clang19.patch deleted file mode 100644 index 92a0293735..0000000000 --- a/deps/CGAL/0001-clang19.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- a/BGL/include/CGAL/boost/graph/iterator.h 2022-10-07 19:04:41 UTC -+++ b/BGL/include/CGAL/boost/graph/iterator.h -@@ -213,18 +213,7 @@ class Halfedge_around_source_iterator { (public) - {} - - #ifndef DOXYGEN_RUNNING -- // design patter: "safe bool" -- // will be replaced by explicit operator bool with C++11 -- typedef void (Halfedge_around_source_iterator::*bool_type)() const; - -- void this_type_does_not_support_comparisons() const {} -- -- operator bool_type() const -- { -- return (! (this->base() == nullptr)) ? -- &Halfedge_around_source_iterator::this_type_does_not_support_comparisons : 0; -- } -- - bool operator==( const Self& i) const { - CGAL_assertion( anchor == anchor); - return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding); -@@ -313,18 +302,7 @@ class Halfedge_around_target_iterator { (public) - {} - - #ifndef DOXYGEN_RUNNING -- // design patter: "safe bool" -- // will be replaced by explicit operator bool with C++11 -- typedef void (Halfedge_around_target_iterator::*bool_type)() const; - -- void this_type_does_not_support_comparisons() const {} -- -- operator bool_type() const -- { -- return (! (this->base() == nullptr)) ? -- &Halfedge_around_target_iterator::this_type_does_not_support_comparisons : 0; -- } -- - bool operator==( const Self& i) const { - CGAL_assertion( anchor == anchor); - return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding); -@@ -411,18 +389,6 @@ class Halfedge_around_face_iterator { (public) - const value_type& operator * ( ) const { return pos; } - pointer operator -> ( ) { return &pos; } - const value_type* operator -> ( ) const { return &pos; } -- -- // design patter: "safe bool" -- // will be replaced by explicit operator bool with C++11 -- typedef void (Halfedge_around_face_iterator::*bool_type)() const; -- -- void this_type_does_not_support_comparisons() const {} -- -- operator bool_type() const -- { -- return (! (this->base() == nullptr)) ? -- &Halfedge_around_face_iterator::this_type_does_not_support_comparisons : 0; -- } - - bool operator==( const Self& i) const { - CGAL_assertion( anchor == anchor); diff --git a/deps/CGAL/CGAL.cmake b/deps/CGAL/CGAL.cmake index 73eee6701b..ec77e0ebae 100644 --- a/deps/CGAL/CGAL.cmake +++ b/deps/CGAL/CGAL.cmake @@ -5,11 +5,10 @@ endif () orcaslicer_add_cmake_project( CGAL # GIT_REPOSITORY https://github.com/CGAL/cgal.git - # GIT_TAG bec70a6d52d8aacb0b3d82a7b4edc3caa899184b # releases/CGAL-5.0 + # GIT_TAG 3654f780ae0c64675cabaef0e5ddaf904c48b4b7 # releases/CGAL-5.6.3 # For whatever reason, this keeps downloading forever (repeats downloads if finished) - URL https://github.com/CGAL/cgal/archive/refs/tags/v5.4.zip - URL_HASH SHA256=d7605e0a5a5ca17da7547592f6f6e4a59430a0bc861948974254d0de43eab4c0 - PATCH_COMMAND git apply ${CGAL_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-clang19.patch + URL https://github.com/CGAL/cgal/releases/download/v5.6.3/CGAL-5.6.3.zip + URL_HASH SHA256=5d577acb4a9918ccb960491482da7a3838f8d363aff47e14d703f19fd84733d4 DEPENDS dep_Boost dep_GMP dep_MPFR ) diff --git a/resources/profiles/M3D.json b/resources/profiles/M3D.json new file mode 100644 index 0000000000..6b77a142df --- /dev/null +++ b/resources/profiles/M3D.json @@ -0,0 +1,37 @@ +{ + "name": "M3D", + "version": "1.0.0", + "force_update": "0", + "description": "Configuration for M3D printers", + "machine_model_list": [ + { + "name": "M3D Enabler D8500 MM Model", + "sub_path": "machine/M3D Enabler D8500 MM Model.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "M3D Enabler D8500 MM", + "sub_path": "machine/M3D Enabler D8500 MM.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "0.15mm MM @D8500", + "sub_path": "process/0.15mm MM @D8500.json" + }, + { + "name": "0.20mm MM @D8500", + "sub_path": "process/0.20mm MM @D8500.json" + } + ], + "filament_list": [] +} \ No newline at end of file diff --git a/resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png b/resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png new file mode 100644 index 0000000000..eb067195cf Binary files /dev/null and b/resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png differ diff --git a/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json b/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json new file mode 100644 index 0000000000..1e8c6e9b89 --- /dev/null +++ b/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "M3D Enabler D8500 MM Model", + "model_id": "M3D_D8500_MM", + "family": "M3D", + "machine_tech": "FFF", + "nozzle_diameter": "0.4", + "bed_model": "model/M3D_bed_model.stl", + "bed_texture": "model/M3D_bed_texture.png", + "default_materials": "Generic PLA @system", + "scan_folder": "1" +} \ No newline at end of file diff --git a/resources/profiles/M3D/machine/M3D Enabler D8500 MM.json b/resources/profiles/M3D/machine/M3D Enabler D8500 MM.json new file mode 100644 index 0000000000..2bcfbfcdae --- /dev/null +++ b/resources/profiles/M3D/machine/M3D Enabler D8500 MM.json @@ -0,0 +1,166 @@ +{ + "type": "machine", + "name": "M3D Enabler D8500 MM", + "printer_model": "M3D Enabler D8500 MM Model", + "printer_variant": "0.4", + "inherits": "fdm_machine_common", + "from": "system", + "instantiation": "true", + "is_custom_defined": "0", + "setting_id": "M3D_D8500_MM_04", + "version": "1.0.0", + + "auxiliary_fan": "1", + "change_filament_gcode": "M18 E", + "deretraction_speed": [ + "50", + "50" + ], + "extruder_clearance_height_to_rod": "19", + "extruder_clearance_radius": "100", + "extruder_colour": [ + "#FCE94F", + "#FCE94F" + ], + "extruder_offset": [ + "0x0", + "0x0" + ], + "fan_speedup_time": "1", + "host_type": "esp3d", + "long_retractions_when_cut": [ + "0", + "0" + ], + "machine_end_gcode": "; ===== ORCA END GCODE =====\nM400\nM83\nG92 E0\nG1 E-17 F1800 ; retract BEFORE any moves or power changes\n\n; Now lift and park\nG91\nG1 Z2 F2000\nG90\nG1 X100 Y160 F3000 ; parking point\n\n; Power down in order\nM104 T0 S0\nM104 T1 S0\nM106 S50 ; keep fan at ~50% while cooling (adjust if desired)\n; (Leave steppers on by omitting M84)\n; ===== END ORCA END GCODE =====\n", + "machine_load_filament_time": "0.5", + "machine_max_acceleration_e": [ + "10000", + "10000" + ], + "machine_max_acceleration_x": [ + "2000", + "2000" + ], + "machine_max_acceleration_y": [ + "2000", + "2000" + ], + "machine_max_acceleration_z": [ + "400", + "400" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "400", + "400" + ], + "machine_max_speed_y": [ + "300", + "300" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_start_gcode": "; ===== ORCA START GCODE =====\n; minx:{first_layer_print_min[0]}\n; miny:{first_layer_print_min[1]}\n; maxx:{first_layer_print_max[0]}\n; maxy:{first_layer_print_max[1]}\n; used_0:{is_extruder_used[0]}\n; used_1:{is_extruder_used[1]}\n\n; Heaters\n{if is_extruder_used[0]}M104 T0 S{first_layer_temperature[0]}{endif}\n{if !is_extruder_used[0]}M104 T0 S150{endif}\n{if is_extruder_used[1]}M104 T1 S{first_layer_temperature[1]}{endif}\n{if !is_extruder_used[1]}M104 T1 S150{endif}\nM140 S0\nM106 S50\n\n; Home and clearance\nG28 X Y\nG28 Z\nG91\nG1 Z10 F1200 ; lift 10mm\nG90\n\n; Bed wait (dummy)\nM190 S0\n\n; Wait for target temps\n{if is_extruder_used[0]}M109 T0 S{first_layer_temperature[0]}{endif}\n{if is_extruder_used[1]}M109 T1 S{first_layer_temperature[1]}{endif}\n\n; Absolute XYZ / Relative E\nG90\nM83\n\n; ===== Dynamic Bed Leveling ====\nT0\nG1 Z3 F3000\nG1 X15 Y15 F6000\nG1 Z0.25 F1000; Otherwise Orca displays with a 3mm height\n; Single probe touch\nG30\nM420 S1\n; Bias the contact as -0.25 and fix Z-zero\nG92 Z-0.25 ; probed contact now treated as Z = -0.25\nG1 Z0.3 F300\n\n; ===== PRIME / TWO-LINE WIPES (sparse, no air extrude) =====\n\n; --- Tool 0: lines at Y=5 and Y=6 ---\n{if is_extruder_used[0]}\nT0\nG92 E0\nG1 X20 Y5 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y6.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; --- Tool 1: lines at Y=7 and Y=8 ---\n{if is_extruder_used[1]}\nT1\nG92 E0\nG1 X20 Y7 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y8.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; Activate initial tool (no retracts; Orca starts immediately)\nT{initial_extruder}\nG92 E0\n; ===== END ORCA START GCODE =====\n", + "machine_tool_change_time": "0.5", + "machine_unload_filament_time": "0.5", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_pause_gcode": "M601", + "max_layer_height": [ + "0.32", + "0.32" + ], + "min_layer_height": [ + "0.1", + "0.1" + ], + "nozzle_diameter": [ + "0.4", + "0.4" + ], + "nozzle_type": "brass", + "print_host": "m3d-enabler.local", + "printable_area": [ + "0x0", + "210x0", + "210x150", + "0x150" + ], + "printer_settings_id": "M3D Enabler D8500 MM", + "retract_before_wipe": [ + "100%", + "100%" + ], + "retract_length_toolchange": [ + "17", + "17" + ], + "retract_lift_above": [ + "0", + "0" + ], + "retract_lift_below": [ + "0", + "0" + ], + "retract_lift_enforce": [ + "All Surfaces", + "All Surfaces" + ], + "retract_restart_extra": [ + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0" + ], + "retract_when_changing_layer": [ + "1", + "1" + ], + "retraction_distances_when_cut": [ + "18", + "18" + ], + "retraction_length": [ + "4.5", + "4.5" + ], + "retraction_minimum_travel": [ + "2.5", + "2.5" + ], + "retraction_speed": [ + "60", + "60" + ], + "single_extruder_multi_material": "0", + "thumbnails": "120x60/PNG", + "travel_slope": [ + "45", + "45" + ], + "wipe": [ + "1", + "1" + ], + "wipe_distance": [ + "2", + "2" + ], + "z_hop": [ + "0", + "0" + ], + "z_hop_types": [ + "Normal Lift", + "Normal Lift" + ] +} \ No newline at end of file diff --git a/resources/profiles/M3D/machine/fdm_machine_common.json b/resources/profiles/M3D/machine/fdm_machine_common.json new file mode 100644 index 0000000000..9132e65373 --- /dev/null +++ b/resources/profiles/M3D/machine/fdm_machine_common.json @@ -0,0 +1,126 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "printer_technology": "FFF", + "printer_settings_id": "fdm_machine_common", + "version": "1.0.0.0", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "210x0", + "210x150", + "0x150" + ], + "thumbnails": [ + "16x16" + ], + "auxiliary_fan": "1", + "change_filament_gcode": "M18 E", + "deretraction_speed": [ + "50" + ], + "extruder_clearance_height_to_rod": "19", + "extruder_clearance_radius": "100", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_speedup_time": "1", + "host_type": "esp3d", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "; ===== ORCA END GCODE =====\nM400\nM83\nG92 E0\nG1 E-17 F1800 ; retract BEFORE any moves or power changes\n\n; Now lift and park\nG91\nG1 Z2 F2000\nG90\nG1 X100 Y160 F3000 ; parking point\n\n; Power down in order\nM104 T0 S0\nM104 T1 S0\nM106 S50 ; keep fan at ~50% while cooling (adjust if desired)\n; (Leave steppers on by omitting M84)\n; ===== END ORCA END GCODE =====\n", + "machine_load_filament_time": "0.5", + "machine_max_acceleration_e": [ + "10000" + ], + "machine_max_acceleration_x": [ + "2000" + ], + "machine_max_acceleration_y": [ + "2000" + ], + "machine_max_acceleration_z": [ + "400" + ], + "machine_max_speed_e": [ + "30" + ], + "machine_max_speed_x": [ + "400" + ], + "machine_max_speed_y": [ + "300" + ], + "machine_max_speed_z": [ + "12" + ], + "machine_start_gcode": "; ===== ORCA START GCODE =====\n; minx:{first_layer_print_min[0]}\n; miny:{first_layer_print_min[1]}\n; maxx:{first_layer_print_max[0]}\n; maxy:{first_layer_print_max[1]}\n; used_0:{is_extruder_used[0]}\n; used_1:{is_extruder_used[1]}\n\n; Heaters\n{if is_extruder_used[0]}M104 T0 S{first_layer_temperature[0]}{endif}\n{if !is_extruder_used[0]}M104 T0 S150{endif}\n{if is_extruder_used[1]}M104 T1 S{first_layer_temperature[1]}{endif}\n{if !is_extruder_used[1]}M104 T1 S150{endif}\nM140 S0\nM106 S50\n\n; Home and clearance\nG28 X Y\nG28 Z\nG91\nG1 Z10 F1200 ; lift 10mm\nG90\n\n; Bed wait (dummy)\nM190 S0\n\n; Wait for target temps\n{if is_extruder_used[0]}M109 T0 S{first_layer_temperature[0]}{endif}\n{if is_extruder_used[1]}M109 T1 S{first_layer_temperature[1]}{endif}\n\n; Absolute XYZ / Relative E\nG90\nM83\n\n; ===== Dynamic Bed Leveling ====\nT0\nG1 Z3 F3000\nG1 X15 Y15 F6000\nG1 Z0.25 F1000; Otherwise Orca displays with a 3mm height\n; Single probe touch\nG30\nM420 S1\n; Bias the contact as -0.25 and fix Z-zero\nG92 Z-0.25 ; probed contact now treated as Z = -0.25\nG1 Z0.3 F300\n\n; ===== PRIME / TWO-LINE WIPES (sparse, no air extrude) =====\n\n; --- Tool 0: lines at Y=5 and Y=6 ---\n{if is_extruder_used[0]}\nT0\nG92 E0\nG1 X20 Y5 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y6.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; --- Tool 1: lines at Y=7 and Y=8 ---\n{if is_extruder_used[1]}\nT1\nG92 E0\nG1 X20 Y7 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y8.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; Activate initial tool (no retracts; Orca starts immediately)\nT{initial_extruder}\nG92 E0\n; ===== END ORCA START GCODE =====\n", + "machine_tool_change_time": "0.5", + "machine_unload_filament_time": "0.5", + "max_layer_height": [ + "0.32" + ], + "min_layer_height": [ + "0.1" + ], + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "17" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "4.5" + ], + "retraction_minimum_travel": [ + "2.5" + ], + "retraction_speed": [ + "60" + ], + "single_extruder_multi_material": "0", + "travel_slope": [ + "45" + ], + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0" + ], + "z_hop_types": [ + "Normal Lift" + ] +} \ No newline at end of file diff --git a/resources/profiles/M3D/model/M3D_bed_model.stl b/resources/profiles/M3D/model/M3D_bed_model.stl new file mode 100644 index 0000000000..8ed24335dd Binary files /dev/null and b/resources/profiles/M3D/model/M3D_bed_model.stl differ diff --git a/resources/profiles/M3D/model/M3D_bed_texture.png b/resources/profiles/M3D/model/M3D_bed_texture.png new file mode 100644 index 0000000000..bd0e6b8b80 Binary files /dev/null and b/resources/profiles/M3D/model/M3D_bed_texture.png differ diff --git a/resources/profiles/M3D/process/0.15mm MM @D8500.json b/resources/profiles/M3D/process/0.15mm MM @D8500.json new file mode 100644 index 0000000000..ada09ff7ab --- /dev/null +++ b/resources/profiles/M3D/process/0.15mm MM @D8500.json @@ -0,0 +1,45 @@ +{ + "type": "process", + "name": "0.15mm MM @D8500", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 MM" + ], + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "layer_height": "0.15", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "travel_speed": "100", + "wall_loops": "2", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} \ No newline at end of file diff --git a/resources/profiles/M3D/process/0.20mm MM @D8500.json b/resources/profiles/M3D/process/0.20mm MM @D8500.json new file mode 100644 index 0000000000..a2e2bd5a6a --- /dev/null +++ b/resources/profiles/M3D/process/0.20mm MM @D8500.json @@ -0,0 +1,46 @@ +{ + "type": "process", + "name": "0.20mm MM @D8500", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 MM" + ], + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "layer_height": "0.2", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wall_loops": "2", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} \ No newline at end of file diff --git a/resources/profiles/M3D/process/fdm_process_common.json b/resources/profiles/M3D/process/fdm_process_common.json new file mode 100644 index 0000000000..ac39c20dde --- /dev/null +++ b/resources/profiles/M3D/process/fdm_process_common.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "brim_type": "no_brim", + "enable_overhang_speed": "0", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wall_loops": "2", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE.json b/resources/profiles/OpenEYE.json new file mode 100644 index 0000000000..b3bd6496dd --- /dev/null +++ b/resources/profiles/OpenEYE.json @@ -0,0 +1,198 @@ +{ + "name": "OpenEYE", + "url": "http://www.openeye.tech", + "version": "01.00.00.03", + "force_update": "0", + "description": "OpenEYE Printers Configurations", + "machine_model_list": [ + { + "name": "OpenEYE Peacock V2", + "sub_path": "machine/OpenEYE Peacock V2.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_openeye_common", + "sub_path": "process/fdm_process_openeye_common.json" + }, + { + "name": "fdm_process_openeye_0.06_nozzle_0.2", + "sub_path": "process/fdm_process_openeye_0.06_nozzle_0.2.json" + }, + { + "name": "fdm_process_openeye_0.08_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.08_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.08_nozzle_0.2", + "sub_path": "process/fdm_process_openeye_0.08_nozzle_0.2.json" + }, + { + "name": "fdm_process_openeye_0.10_nozzle_0.2", + "sub_path": "process/fdm_process_openeye_0.10_nozzle_0.2.json" + }, + { + "name": "fdm_process_openeye_0.12_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.12_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.12_nozzle_0.2", + "sub_path": "process/fdm_process_openeye_0.12_nozzle_0.2.json" + }, + { + "name": "fdm_process_openeye_0.14_nozzle_0.2", + "sub_path": "process/fdm_process_openeye_0.14_nozzle_0.2.json" + }, + { + "name": "fdm_process_openeye_0.16_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.16_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.18_nozzle_0.6", + "sub_path": "process/fdm_process_openeye_0.18_nozzle_0.6.json" + }, + { + "name": "fdm_process_openeye_0.20_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.20_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.24_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.24_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.24_nozzle_0.6", + "sub_path": "process/fdm_process_openeye_0.24_nozzle_0.6.json" + }, + { + "name": "fdm_process_openeye_0.24_nozzle_0.8", + "sub_path": "process/fdm_process_openeye_0.24_nozzle_0.8.json" + }, + { + "name": "fdm_process_openeye_0.28_nozzle_0.4", + "sub_path": "process/fdm_process_openeye_0.28_nozzle_0.4.json" + }, + { + "name": "fdm_process_openeye_0.30_nozzle_0.6", + "sub_path": "process/fdm_process_openeye_0.30_nozzle_0.6.json" + }, + { + "name": "fdm_process_openeye_0.32_nozzle_0.8", + "sub_path": "process/fdm_process_openeye_0.32_nozzle_0.8.json" + }, + { + "name": "fdm_process_openeye_0.36_nozzle_0.6", + "sub_path": "process/fdm_process_openeye_0.36_nozzle_0.6.json" + }, + { + "name": "fdm_process_openeye_0.40_nozzle_0.8", + "sub_path": "process/fdm_process_openeye_0.40_nozzle_0.8.json" + }, + { + "name": "fdm_process_openeye_0.42_nozzle_0.6", + "sub_path": "process/fdm_process_openeye_0.42_nozzle_0.6.json" + }, + { + "name": "fdm_process_openeye_0.48_nozzle_0.8", + "sub_path": "process/fdm_process_openeye_0.48_nozzle_0.8.json" + }, + { + "name": "fdm_process_openeye_0.56_nozzle_0.8", + "sub_path": "process/fdm_process_openeye_0.56_nozzle_0.8.json" + }, + { + "name": "0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle", + "sub_path": "process/0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @OpenEYE Peacock V2", + "sub_path": "process/0.08mm Extra Fine @OpenEYE Peacock V2.json" + }, + { + "name": "0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle", + "sub_path": "process/0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle.json" + }, + { + "name": "0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle", + "sub_path": "process/0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle.json" + }, + { + "name": "0.12mm Fine @OpenEYE Peacock V2", + "sub_path": "process/0.12mm Fine @OpenEYE Peacock V2.json" + }, + { + "name": "0.16mm Balanced Quality @OpenEYE Peacock V2", + "sub_path": "process/0.16mm Balanced Quality @OpenEYE Peacock V2.json" + }, + { + "name": "0.16mm Standard @OpenEYE Peacock V2", + "sub_path": "process/0.16mm Standard @OpenEYE Peacock V2.json" + }, + { + "name": "0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle", + "sub_path": "process/0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle.json" + }, + { + "name": "0.20mm Balanced Strength @OpenEYE Peacock V2", + "sub_path": "process/0.20mm Balanced Strength @OpenEYE Peacock V2.json" + }, + { + "name": "0.20mm Standard @OpenEYE Peacock V2", + "sub_path": "process/0.20mm Standard @OpenEYE Peacock V2.json" + }, + { + "name": "0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle", + "sub_path": "process/0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle.json" + }, + { + "name": "0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle", + "sub_path": "process/0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @OpenEYE Peacock V2", + "sub_path": "process/0.24mm Standard @OpenEYE Peacock V2.json" + }, + { + "name": "0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle", + "sub_path": "process/0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle.json" + }, + { + "name": "0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle", + "sub_path": "process/0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle", + "sub_path": "process/0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle.json" + } + ], + "filament_list": [], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_openeye_common", + "sub_path": "machine/fdm_openeye_common.json" + }, + { + "name": "OpenEYE Peacock V2 0.4 nozzle", + "sub_path": "machine/OpenEYE Peacock V2 0.4 nozzle.json" + }, + { + "name": "OpenEYE Peacock V2 0.2 nozzle", + "sub_path": "machine/OpenEYE Peacock V2 0.2 nozzle.json" + }, + { + "name": "OpenEYE Peacock V2 0.6 nozzle", + "sub_path": "machine/OpenEYE Peacock V2 0.6 nozzle.json" + }, + { + "name": "OpenEYE Peacock V2 0.8 nozzle", + "sub_path": "machine/OpenEYE Peacock V2 0.8 nozzle.json" + } + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/OpenEYE Peacock V2_cover.png b/resources/profiles/OpenEYE/OpenEYE Peacock V2_cover.png new file mode 100644 index 0000000000..394f42c693 Binary files /dev/null and b/resources/profiles/OpenEYE/OpenEYE Peacock V2_cover.png differ diff --git a/resources/profiles/OpenEYE/Plate.stl b/resources/profiles/OpenEYE/Plate.stl new file mode 100644 index 0000000000..c57b67b0aa Binary files /dev/null and b/resources/profiles/OpenEYE/Plate.stl differ diff --git a/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.2 nozzle.json b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.2 nozzle.json new file mode 100644 index 0000000000..1c427d38c2 --- /dev/null +++ b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.2 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "machine", + "name": "OpenEYE Peacock V2 0.2 nozzle", + "inherits": "OpenEYE Peacock V2 0.4 nozzle", + "from": "system", + "setting_id": "GM002", + "instantiation": "true", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "OpenEYE Peacock V2", + "printer_variant": "0.2", + "default_print_profile": "0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle", + "default_bed_type": "Textured PEI Plate", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.04" + ], + "retraction_length": [ + "0.4" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.4 nozzle.json b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.4 nozzle.json new file mode 100644 index 0000000000..4528b72fe1 --- /dev/null +++ b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.4 nozzle.json @@ -0,0 +1,48 @@ +{ + "default_print_profile": "0.20mm Standard @OpenEYE Peacock V2", + "default_bed_type": "Textured PEI Plate", + "from": "system", + "inherits": "fdm_openeye_common", + "instantiation": "true", + "layer_change_gcode": "SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}\n_MMU_UPDATE_HEIGHT", + "machine_end_gcode": "MMU_END\nEND_PRINT", + "machine_load_filament_time": "30", + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "30", + "30" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nMMU_START_SETUP INITIAL_TOOL={initial_tool} TOTAL_TOOLCHANGES=!total_toolchanges! REFERENCED_TOOLS=!referenced_tools! TOOL_COLORS=!colors! TOOL_TEMPS=!temperatures! TOOL_MATERIALS=!materials! FILAMENT_NAMES=!filament_names! PURGE_VOLUMES=!purge_volumes!\nMMU_START_CHECK\nSTART_PRINT BED_TEMP=[bed_temperature_initial_layer] EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TYPE=\"{curr_bed_type}\"\n; Enter YOUR exist start_print macro call here (minus purging logic because tool may not be loaded yet)\nMMU_START_LOAD_INITIAL_TOOL\n; Optionally add YOUR additional start logic (like purging) here to run just prior to start\nSTART_PRINT_SECONDARY\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} ; For pause at layer functionality and better print stats", + "machine_unload_filament_time": "30", + "name": "OpenEYE Peacock V2 0.4 nozzle", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "1.5x7", + "235x7", + "235x235", + "1.5x235" + ], + "printable_height": "200", + "printer_model": "OpenEYE Peacock V2", + "printer_variant": "0.4", + "retract_lift_below": [ + "180", + "180" + ], + "setting_id": "GM001", + "type": "machine" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.6 nozzle.json b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.6 nozzle.json new file mode 100644 index 0000000000..aa78fa17ab --- /dev/null +++ b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "machine", + "name": "OpenEYE Peacock V2 0.6 nozzle", + "inherits": "OpenEYE Peacock V2 0.4 nozzle", + "from": "system", + "setting_id": "GM003", + "instantiation": "true", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "OpenEYE Peacock V2", + "printer_variant": "0.6", + "default_print_profile": "0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle", + "default_bed_type": "Textured PEI Plate", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ], + "retraction_length": [ + "1.4" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.8 nozzle.json b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.8 nozzle.json new file mode 100644 index 0000000000..ef5c46aed3 --- /dev/null +++ b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2 0.8 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "machine", + "name": "OpenEYE Peacock V2 0.8 nozzle", + "inherits": "OpenEYE Peacock V2 0.4 nozzle", + "from": "system", + "setting_id": "GM004", + "instantiation": "true", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "OpenEYE Peacock V2", + "printer_variant": "0.8", + "default_print_profile": "0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle", + "default_bed_type": "Textured PEI Plate", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retraction_length": [ + "3" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2.json new file mode 100644 index 0000000000..44b78a7450 --- /dev/null +++ b/resources/profiles/OpenEYE/machine/OpenEYE Peacock V2.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "OpenEYE Peacock V2", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "url": "http://www.openeye.tech", + "bed_model": "Plate.stl", + "bed_texture": "pei.png", + "default_bed_type": "Textured PEI Plate", + "family": "OpenEYE", + "machine_tech": "FFF", + "model_id": "openeye_01", + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/fdm_machine_common.json b/resources/profiles/OpenEYE/machine/fdm_machine_common.json new file mode 100644 index 0000000000..7a32c1630a --- /dev/null +++ b/resources/profiles/OpenEYE/machine/fdm_machine_common.json @@ -0,0 +1,121 @@ +{ + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5x0.5", + "change_filament_gcode": "", + "default_filament_profile": [], + "default_print_profile": "", + "deretraction_speed": [ + "40" + ], + "extruder_clearance_height_to_lid": "140", + "extruder_clearance_height_to_rod": "34", + "extruder_clearance_radius": "65", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "from": "system", + "gcode_flavor": "marlin", + "instantiation": "false", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end", + "machine_max_acceleration_e": [ + "5000" + ], + "machine_max_acceleration_extruding": [ + "10000" + ], + "machine_max_acceleration_retracting": [ + "1000" + ], + "machine_max_acceleration_x": [ + "10000" + ], + "machine_max_acceleration_y": [ + "10000" + ], + "machine_max_acceleration_z": [ + "100" + ], + "machine_max_jerk_e": [ + "5" + ], + "machine_max_jerk_x": [ + "8" + ], + "machine_max_jerk_y": [ + "8" + ], + "machine_max_jerk_z": [ + "3" + ], + "machine_max_speed_e": [ + "60" + ], + "machine_max_speed_x": [ + "500" + ], + "machine_max_speed_y": [ + "500" + ], + "machine_max_speed_z": [ + "10" + ], + "machine_min_extruding_rate": [ + "0" + ], + "machine_min_travel_rate": [ + "0" + ], + "machine_pause_gcode": "M601", + "machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up", + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "name": "fdm_machine_common", + "nozzle_diameter": [ + "0.4" + ], + "printable_height": "250", + "printer_settings_id": "", + "printer_technology": "FFF", + "printer_variant": "0.4", + "retract_before_wipe": [ + "70%" + ], + "retract_length_toolchange": [ + "1" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "5" + ], + "retraction_minimum_travel": [ + "2" + ], + "retraction_speed": [ + "60" + ], + "silent_mode": "0", + "single_extruder_multi_material": "1", + "type": "machine", + "wipe": [ + "1" + ], + "z_hop": [ + "0" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/machine/fdm_openeye_common.json b/resources/profiles/OpenEYE/machine/fdm_openeye_common.json new file mode 100644 index 0000000000..130e3b189f --- /dev/null +++ b/resources/profiles/OpenEYE/machine/fdm_openeye_common.json @@ -0,0 +1,226 @@ +{ + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "bed_temperature_formula": "by_highest_temp", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_bed_type": "Textured PEI Plate", + "default_filament_profile": [ + "Generic PLA @System" + ], + "default_print_profile": "0.20mm Standard @OpenEYE Peacock V2", + "deretraction_speed": [ + "30" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "0", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "34", + "extruder_clearance_height_to_rod": "34", + "extruder_clearance_radius": "47", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "from": "system", + "gcode_flavor": "klipper", + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "inherits": "fdm_machine_common", + "instantiation": "false", + "layer_change_gcode": "SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}\n_MMU_UPDATE_HEIGHT", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "MMU_END\nEND_PRINT", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "9000", + "9000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_max_junction_deviation": [ + "0", + "0" + ], + "machine_max_speed_e": [ + "60", + "60" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "30", + "30" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nMMU_START_SETUP INITIAL_TOOL={initial_tool} TOTAL_TOOLCHANGES=!total_toolchanges! REFERENCED_TOOLS=!referenced_tools! TOOL_COLORS=!colors! TOOL_TEMPS=!temperatures! TOOL_MATERIALS=!materials! FILAMENT_NAMES=!filament_names! PURGE_VOLUMES=!purge_volumes!\nMMU_START_CHECK\nSTART_PRINT BED_TEMP=[bed_temperature_initial_layer] EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TYPE=\"{curr_bed_type}\"\n; Enter YOUR exist start_print macro call here (minus purging logic because tool may not be loaded yet)\nMMU_START_LOAD_INITIAL_TOOL\n; Optionally add YOUR additional start logic (like purging) here to run just prior to start\nSTART_PRINT_SECONDARY\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} ; For pause at layer functionality and better print stats", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "max_layer_height": [ + "0.28" + ], + "max_resonance_avoidance_speed": "120", + "min_layer_height": [ + "0.08" + ], + "min_resonance_avoidance_speed": "70", + "name": "fdm_openeye_common", + "nozzle_diameter": [ + "0.4", + "0.4" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "print_host": "openeye3dpi.local", + "printable_height": "250", + "printer_settings_id": "", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "1", + "resonance_avoidance": "0", + "retract_before_wipe": [ + "0%" + ], + "retract_length_toolchange": [ + "0" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "180", + "180" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "0.8" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "30" + ], + "scan_first_layer": "0", + "silent_mode": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "template_custom_gcode": "", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "type": "machine", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "1" + ], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/pei.png b/resources/profiles/OpenEYE/pei.png new file mode 100644 index 0000000000..30c64391b8 Binary files /dev/null and b/resources/profiles/OpenEYE/pei.png differ diff --git a/resources/profiles/OpenEYE/peo.png b/resources/profiles/OpenEYE/peo.png new file mode 100644 index 0000000000..b3d70117d7 Binary files /dev/null and b/resources/profiles/OpenEYE/peo.png differ diff --git a/resources/profiles/OpenEYE/pet.png b/resources/profiles/OpenEYE/pet.png new file mode 100644 index 0000000000..0679d1bf93 Binary files /dev/null and b/resources/profiles/OpenEYE/pet.png differ diff --git a/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle.json b/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle.json new file mode 100644 index 0000000000..b936ec8a5e --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @OpenEYE Peacock V2 0.2 nozzle", + "inherits": "fdm_process_openeye_0.08_nozzle_0.2", + "from": "system", + "setting_id": "GP139", + "instantiation": "true", + "description": "High quality profile for 0.2mm nozzle, prioritizing print quality.", + "default_acceleration": "8000", + "initial_layer_speed": "40", + "overhang_1_4_speed": "60", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..a0a4d450db --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.08mm Extra Fine @OpenEYE Peacock V2.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.08_nozzle_0.4", + "from": "system", + "setting_id": "GP136", + "instantiation": "true", + "default_acceleration": "4000", + "gap_infill_speed": "50", + "initial_layer_infill_speed": "70", + "initial_layer_speed": "40", + "inner_wall_speed": "120", + "internal_solid_infill_speed": "120", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": "100", + "top_surface_speed": "120", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle.json b/resources/profiles/OpenEYE/process/0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle.json new file mode 100644 index 0000000000..3b7dad1b6d --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.10mm Standard @OpenEYE Peacock V2 0.2 nozzle", + "inherits": "fdm_process_openeye_0.10_nozzle_0.2", + "from": "system", + "setting_id": "GP123", + "instantiation": "true", + "default_acceleration": "8000", + "initial_layer_speed": "40", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle.json b/resources/profiles/OpenEYE/process/0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle.json new file mode 100644 index 0000000000..a0f9480ac6 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "name": "0.12mm Balanced Quality @OpenEYE Peacock V2 0.2 nozzle", + "inherits": "fdm_process_openeye_0.12_nozzle_0.2", + "from": "system", + "setting_id": "GP140", + "instantiation": "true", + "default_acceleration": "8000", + "initial_layer_speed": "40", + "overhang_1_4_speed": "60", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.12mm Fine @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.12mm Fine @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..5977f3977d --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.12mm Fine @OpenEYE Peacock V2.json @@ -0,0 +1,31 @@ +{ + "type": "process", + "name": "0.12mm Fine @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.12_nozzle_0.4", + "from": "system", + "setting_id": "GP142", + "instantiation": "true", + "bottom_shell_layers": "7", + "default_acceleration": "4000", + "gap_infill_speed": "50", + "initial_layer_infill_speed": "70", + "initial_layer_speed": "40", + "inner_wall_speed": "120", + "internal_solid_infill_speed": "150", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": "100", + "top_color_penetration_layers": "7", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_surface_speed": "150", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.16mm Balanced Quality @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.16mm Balanced Quality @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..9d3101e52d --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.16mm Balanced Quality @OpenEYE Peacock V2.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "0.16mm Balanced Quality @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.16_nozzle_0.4", + "from": "system", + "setting_id": "GP174", + "instantiation": "true", + "description": "High quality profile for 0.16mm layer height, prioritizing print quality and strength.", + "default_acceleration": "4000", + "initial_layer_speed": "50", + "inner_wall_speed": "150", + "internal_solid_infill_speed": "180", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_pattern": "gyroid", + "sparse_infill_speed": "180", + "top_surface_speed": "150", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.16mm Standard @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.16mm Standard @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..66e8d419b0 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.16mm Standard @OpenEYE Peacock V2.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "name": "0.16mm Standard @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.16_nozzle_0.4", + "from": "system", + "setting_id": "GP143", + "instantiation": "true", + "description": "Standard profile for 0.16mm layer height, prioritizing speed.", + "default_acceleration": "8000", + "initial_layer_speed": "50", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_1_4_speed": "60", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle.json b/resources/profiles/OpenEYE/process/0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle.json new file mode 100644 index 0000000000..07e5caf0ad --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "0.18mm Balanced Quality @OpenEYE Peacock V2 0.6 nozzle", + "inherits": "fdm_process_openeye_0.18_nozzle_0.6", + "from": "system", + "setting_id": "GP137", + "instantiation": "true", + "description": "High quality profile for 0.6mm nozzle, prioritizing print quality and strength.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.20mm Balanced Strength @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.20mm Balanced Strength @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..997c79a2d1 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.20mm Balanced Strength @OpenEYE Peacock V2.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "0.20mm Balanced Strength @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.20_nozzle_0.4", + "from": "system", + "setting_id": "GP173", + "instantiation": "true", + "description": "High quality profile for 0.2mm layer height, prioritizing strength and print quality.", + "bottom_shell_layers": "4", + "default_acceleration": "4000", + "initial_layer_speed": "50", + "inner_wall_speed": "150", + "internal_solid_infill_speed": "200", + "outer_wall_acceleration": "2000", + "outer_wall_speed": "60", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "200", + "top_shell_layers": "6", + "top_surface_speed": "150", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.20mm Standard @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.20mm Standard @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..6cfd900f45 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.20mm Standard @OpenEYE Peacock V2.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "name": "0.20mm Standard @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.20_nozzle_0.4", + "from": "system", + "setting_id": "GP124", + "instantiation": "true", + "description": "Standard profile for 0.4mm nozzle, prioritizing speed.", + "default_acceleration": "8000", + "initial_layer_speed": "50", + "internal_solid_infill_speed": "250", + "inner_wall_speed": "300", + "outer_wall_speed": "200", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle.json b/resources/profiles/OpenEYE/process/0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle.json new file mode 100644 index 0000000000..1485ca9fe0 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "0.24mm Balanced Quality @OpenEYE Peacock V2 0.8 nozzle", + "inherits": "fdm_process_openeye_0.24_nozzle_0.8", + "from": "system", + "setting_id": "GP138", + "instantiation": "true", + "description": "High quality profile for 0.8mm nozzle, prioritizing print quality.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle.json b/resources/profiles/OpenEYE/process/0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle.json new file mode 100644 index 0000000000..316b2e7ae0 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "0.24mm Balanced Strength @OpenEYE Peacock V2 0.6 nozzle", + "inherits": "fdm_process_openeye_0.24_nozzle_0.6", + "from": "system", + "setting_id": "GP146", + "instantiation": "true", + "description": "Strength profile for 0.6mm nozzle, prioritizing strength.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.24mm Standard @OpenEYE Peacock V2.json b/resources/profiles/OpenEYE/process/0.24mm Standard @OpenEYE Peacock V2.json new file mode 100644 index 0000000000..71492028d9 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.24mm Standard @OpenEYE Peacock V2.json @@ -0,0 +1,19 @@ +{ + "type": "process", + "name": "0.24mm Standard @OpenEYE Peacock V2", + "inherits": "fdm_process_openeye_0.24_nozzle_0.4", + "from": "system", + "setting_id": "GP144", + "instantiation": "true", + "default_acceleration": "8000", + "initial_layer_speed": "50", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle.json b/resources/profiles/OpenEYE/process/0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle.json new file mode 100644 index 0000000000..4733f27324 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "0.30mm Standard @OpenEYE Peacock V2 0.6 nozzle", + "inherits": "fdm_process_openeye_0.30_nozzle_0.6", + "from": "system", + "setting_id": "GP125", + "instantiation": "true", + "description": "Standard profile for 0.6mm nozzle, prioritizing speed.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle.json b/resources/profiles/OpenEYE/process/0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle.json new file mode 100644 index 0000000000..170c9e4e7f --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "0.32mm Balanced Strength @OpenEYE Peacock V2 0.8 nozzle", + "inherits": "fdm_process_openeye_0.32_nozzle_0.8", + "from": "system", + "setting_id": "GP149", + "instantiation": "true", + "description": "Strength profile for 0.8mm nozzle, prioritizing strength.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle.json b/resources/profiles/OpenEYE/process/0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle.json new file mode 100644 index 0000000000..878383b1f6 --- /dev/null +++ b/resources/profiles/OpenEYE/process/0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "0.40mm Standard @OpenEYE Peacock V2 0.8 nozzle", + "inherits": "fdm_process_openeye_0.40_nozzle_0.8", + "from": "system", + "setting_id": "GP126", + "instantiation": "true", + "description": "Standard profile for 0.8mm nozzle, prioritizing speed.", + "bridge_speed": "50", + "default_acceleration": "8000", + "gap_infill_speed": "250", + "initial_layer_infill_speed": "105", + "initial_layer_speed": "50", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "outer_wall_speed": "200", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "sparse_infill_speed": "350", + "top_surface_speed": "200", + "travel_speed": "500", + "compatible_printers": [ + "OpenEYE Peacock V2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_common.json b/resources/profiles/OpenEYE/process/fdm_process_common.json new file mode 100644 index 0000000000..40987d67ab --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_common.json @@ -0,0 +1,116 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "adaptive_layer_height": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_surface_pattern": "monotonic", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_object_gap": "0.1", + "brim_width": "5", + "compatible_printers_condition": "", + "default_acceleration": "10000", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "gap_infill_speed": "30", + "infill_combination": "0", + "infill_direction": "45", + "infill_wall_overlap": "15%", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "40", + "interface_shells": "0", + "internal_bridge_support_thickness": "0.8", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_speed": "40", + "ironing_flow": "10%", + "ironing_inset": "0.21", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "layer_height": "0.2", + "line_width": "0.42", + "max_bridge_length": "0", + "max_travel_detour_distance": "0", + "minimum_sparse_infill_area": "15", + "only_one_wall_top": "1", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "120", + "prime_tower_width": "35", + "print_sequence": "by layer", + "print_settings_id": "", + "prime_tower_brim_width": "3", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "scarf_angle_threshold": "155", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "sparse_infill_density": "15%", + "skeleton_infill_density": "15%", + "skin_infill_density": "15%", + "sparse_infill_line_width": "0.45", + "skin_infill_line_width": "0.45", + "skin_infill_depth": "2.0", + "skeleton_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_bottom_z_distance": "0.2", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_speed": "40", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "tree(auto)", + "seam_slope_type": "none", + "seam_slope_start_height": "10%", + "seam_slope_min_length": "10", + "symmetric_infill_y_axis": "0", + "top_shell_layers": "3", + "top_shell_thickness": "0.8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "10000", + "travel_speed": "400", + "tree_support_branch_angle": "45", + "tree_support_branch_diameter": "2", + "tree_support_wall_count": "0", + "wall_generator": "classic", + "wall_infill_order": "inner wall/outer wall/infill", + "wall_loops": "2", + "wipe_tower_no_sparse_layers": "0", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.06_nozzle_0.2.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.06_nozzle_0.2.json new file mode 100644 index 0000000000..6354d949fd --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.06_nozzle_0.2.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.06_nozzle_0.2", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_inset": "0.11", + "initial_layer_infill_speed": "70", + "layer_height": "0.06", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.06", + "support_line_width": "0.22", + "support_top_z_distance": "0.06", + "top_shell_layers": "7", + "top_color_penetration_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": "150", + "wall_loops": "4" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.2.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.2.json new file mode 100644 index 0000000000..309d338619 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.2.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.08_nozzle_0.2", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_inset": "0.11", + "initial_layer_infill_speed": "70", + "layer_height": "0.08", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.08", + "support_line_width": "0.22", + "support_top_z_distance": "0.08", + "top_shell_layers": "7", + "top_color_penetration_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": "150", + "wall_loops": "4" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.4.json new file mode 100644 index 0000000000..25f9cc89a5 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.08_nozzle_0.4.json @@ -0,0 +1,25 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.08_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "7", + "bottom_color_penetration_layers": "7", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed":"20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "ironing_flow": "8%", + "initial_layer_infill_speed": "105", + "layer_height": "0.08", + "sparse_infill_speed": "270", + "support_bottom_z_distance": "0.08", + "support_threshold_angle": "15", + "support_top_z_distance": "0.08", + "top_shell_layers": "9", + "top_color_penetration_layers": "9", + "top_shell_thickness": "1.0" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.10_nozzle_0.2.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.10_nozzle_0.2.json new file mode 100644 index 0000000000..983138a494 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.10_nozzle_0.2.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.10_nozzle_0.2", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_inset": "0.11", + "initial_layer_infill_speed": "70", + "layer_height": "0.1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.1", + "support_line_width": "0.22", + "support_top_z_distance": "0.1", + "top_shell_layers": "7", + "top_color_penetration_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": "150", + "wall_loops": "4" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.2.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.2.json new file mode 100644 index 0000000000..67146aef2c --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.2.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.12_nozzle_0.2", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_inset": "0.11", + "initial_layer_infill_speed": "70", + "layer_height": "0.12", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.12", + "support_line_width": "0.22", + "support_top_z_distance": "0.12", + "top_shell_layers": "7", + "top_color_penetration_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": "150", + "wall_loops": "4" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.4.json new file mode 100644 index 0000000000..a08f0fc9ff --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.12_nozzle_0.4.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.12_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed": "20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "layer_height": "0.12", + "sparse_infill_speed": "270", + "support_bottom_z_distance": "0.12", + "support_threshold_angle": "20", + "support_top_z_distance": "0.12", + "top_shell_layers": "5", + "top_color_penetration_layers": "5", + "top_shell_thickness": "0.6" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.14_nozzle_0.2.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.14_nozzle_0.2.json new file mode 100644 index 0000000000..f5ced921a7 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.14_nozzle_0.2.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.14_nozzle_0.2", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "5", + "bottom_color_penetration_layers": "5", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.25", + "initial_layer_print_height": "0.1", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "ironing_inset": "0.11", + "initial_layer_infill_speed": "70", + "layer_height": "0.14", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "sparse_infill_line_width": "0.22", + "skin_infill_line_width": "0.22", + "skeleton_infill_line_width": "0.22", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.14", + "support_line_width": "0.22", + "support_top_z_distance": "0.14", + "top_shell_layers": "7", + "top_color_penetration_layers": "7", + "top_surface_line_width": "0.22", + "top_surface_speed": "150", + "wall_loops": "4" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.16_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.16_nozzle_0.4.json new file mode 100644 index 0000000000..8a106a5385 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.16_nozzle_0.4.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.16_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "4", + "bottom_color_penetration_layers": "4", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed": "20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "layer_height": "0.16", + "sparse_infill_speed": "270", + "support_bottom_z_distance": "0.16", + "support_threshold_angle": "25", + "support_top_z_distance": "0.16", + "top_shell_layers": "6", + "top_color_penetration_layers": "6", + "top_shell_thickness": "1.0" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.18_nozzle_0.6.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.18_nozzle_0.6.json new file mode 100644 index 0000000000..8b6629efba --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.18_nozzle_0.6.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.18_nozzle_0.6", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "ironing_inset": "0.31", + "initial_layer_infill_speed": "55", + "layer_height": "0.18", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "overhang_3_4_speed": "15", + "sparse_infill_line_width": "0.62", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_speed": "100", + "support_bottom_z_distance": "0.18", + "support_line_width": "0.62", + "support_top_z_distance": "0.18", + "top_surface_line_width": "0.62", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.20_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.20_nozzle_0.4.json new file mode 100644 index 0000000000..6689407a67 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.20_nozzle_0.4.json @@ -0,0 +1,18 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.20_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed": "20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "sparse_infill_speed": "270", + "top_shell_layers": "5", + "top_color_penetration_layers": "5", + "top_shell_thickness": "1.0" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.4.json new file mode 100644 index 0000000000..552092e6d9 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.4.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.24_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed": "20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "layer_height": "0.24", + "sparse_infill_speed": "270", + "support_threshold_angle": "35", + "top_shell_layers": "4", + "top_color_penetration_layers": "4", + "top_shell_thickness": "1.0", + "top_surface_line_width": "0.45" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.6.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.6.json new file mode 100644 index 0000000000..7f0e3b3e88 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.6.json @@ -0,0 +1,28 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.24_nozzle_0.6", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "ironing_inset": "0.31", + "initial_layer_infill_speed": "55", + "layer_height": "0.24", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "overhang_3_4_speed": "15", + "sparse_infill_line_width": "0.62", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_speed": "100", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.8.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.8.json new file mode 100644 index 0000000000..34e37cea92 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.24_nozzle_0.8.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.24_nozzle_0.8", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "ironing_inset": "0.41", + "initial_layer_infill_speed": "55", + "layer_height": "0.24", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5", + "sparse_infill_line_width": "0.82", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_speed": "100", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.28_nozzle_0.4.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.28_nozzle_0.4.json new file mode 100644 index 0000000000..d1a15baea5 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.28_nozzle_0.4.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.28_nozzle_0.4", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "elefant_foot_compensation": "0.15", + "gap_infill_speed": "250", + "initial_layer_speed": "20", + "inner_wall_speed": "300", + "internal_solid_infill_speed": "250", + "initial_layer_infill_speed": "105", + "layer_height": "0.28", + "sparse_infill_speed": "270", + "support_threshold_angle": "40", + "top_shell_layers": "4", + "top_color_penetration_layers": "4", + "top_shell_thickness": "1.0", + "top_surface_line_width": "0.45" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.30_nozzle_0.6.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.30_nozzle_0.6.json new file mode 100644 index 0000000000..b1106a1682 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.30_nozzle_0.6.json @@ -0,0 +1,28 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.30_nozzle_0.6", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "ironing_inset": "0.31", + "initial_layer_infill_speed": "55", + "layer_height": "0.3", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "overhang_3_4_speed": "15", + "sparse_infill_line_width": "0.62", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_speed": "100", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.32_nozzle_0.8.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.32_nozzle_0.8.json new file mode 100644 index 0000000000..f0f9f2da9d --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.32_nozzle_0.8.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.32_nozzle_0.8", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "ironing_inset": "0.41", + "initial_layer_infill_speed": "55", + "layer_height": "0.32", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5", + "sparse_infill_line_width": "0.82", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_speed": "100", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.36_nozzle_0.6.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.36_nozzle_0.6.json new file mode 100644 index 0000000000..b625904c7b --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.36_nozzle_0.6.json @@ -0,0 +1,28 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.36_nozzle_0.6", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "ironing_inset": "0.31", + "initial_layer_infill_speed": "55", + "layer_height": "0.36", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "overhang_3_4_speed": "15", + "sparse_infill_line_width": "0.62", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_speed": "100", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.40_nozzle_0.8.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.40_nozzle_0.8.json new file mode 100644 index 0000000000..304d66c8de --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.40_nozzle_0.8.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.40_nozzle_0.8", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "ironing_inset": "0.41", + "initial_layer_infill_speed": "55", + "layer_height": "0.4", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5", + "sparse_infill_line_width": "0.82", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_speed": "100", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.42_nozzle_0.6.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.42_nozzle_0.6.json new file mode 100644 index 0000000000..e2fd061207 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.42_nozzle_0.6.json @@ -0,0 +1,28 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.42_nozzle_0.6", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.62", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.62", + "internal_solid_infill_line_width": "0.62", + "ironing_inset": "0.31", + "initial_layer_infill_speed": "55", + "layer_height": "0.42", + "line_width": "0.62", + "outer_wall_line_width": "0.62", + "overhang_3_4_speed": "15", + "sparse_infill_line_width": "0.62", + "skin_infill_line_width": "0.62", + "skeleton_infill_line_width": "0.62", + "sparse_infill_speed": "100", + "support_line_width": "0.62", + "top_surface_line_width": "0.62", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.48_nozzle_0.8.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.48_nozzle_0.8.json new file mode 100644 index 0000000000..12a5931ee2 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.48_nozzle_0.8.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.48_nozzle_0.8", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "ironing_inset": "0.41", + "initial_layer_infill_speed": "55", + "layer_height": "0.48", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5", + "sparse_infill_line_width": "0.82", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_speed": "100", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_0.56_nozzle_0.8.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.56_nozzle_0.8.json new file mode 100644 index 0000000000..6522f6b686 --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_0.56_nozzle_0.8.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_openeye_0.56_nozzle_0.8", + "inherits": "fdm_process_openeye_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "1", + "bridge_speed": "30", + "elefant_foot_compensation": "0.15", + "initial_layer_line_width": "0.82", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "20", + "inner_wall_line_width": "0.82", + "internal_solid_infill_line_width": "0.82", + "ironing_inset": "0.41", + "initial_layer_infill_speed": "55", + "layer_height": "0.56", + "line_width": "0.82", + "outer_wall_line_width": "0.82", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "5", + "sparse_infill_line_width": "0.82", + "skin_infill_line_width": "0.82", + "skeleton_infill_line_width": "0.82", + "sparse_infill_speed": "100", + "support_line_width": "0.82", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonic", + "top_surface_speed": "150" +} \ No newline at end of file diff --git a/resources/profiles/OpenEYE/process/fdm_process_openeye_common.json b/resources/profiles/OpenEYE/process/fdm_process_openeye_common.json new file mode 100644 index 0000000000..c83936321b --- /dev/null +++ b/resources/profiles/OpenEYE/process/fdm_process_openeye_common.json @@ -0,0 +1,54 @@ +{ + "type": "process", + "name": "fdm_process_openeye_common", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "align_infill_direction_to_model": "1", + "exclude_object": "1", + "bridge_speed": "50", + "default_acceleration": "10000", + "enable_overhang_speed": "1", + "gap_infill_speed": "50", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_speed": "30", + "inner_wall_acceleration": "0", + "inner_wall_speed": "150", + "internal_solid_infill_speed": "150", + "outer_wall_acceleration": "5000", + "outer_wall_speed": "120", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "reduce_crossing_wall": "1", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned_back", + "seam_slope_conditional": "1", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "1", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "sparse_infill_acceleration": "100%", + "sparse_infill_speed": "250", + "support_interface_speed": "80", + "support_speed": "150", + "support_on_build_plate_only": "1", + "travel_acceleration": "10000", + "top_surface_acceleration": "2000", + "top_surface_speed": "200", + "travel_speed": "500", + "travel_speed_z": "0", + "wipe_tower_wall_type": "rib", + "wipe_tower_rib_width": "8" +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index ca80b86d12..1f4b2cf779 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1212,9 +1212,80 @@ "name": "COEX PLA+Silk @System", "sub_path": "filament/COEX/COEX PLA+Silk @System.json" }, - { - "name": "Numakers PLA+ @System", + { "name": "Numakers PLA+ @System", "sub_path": "filament/Numakers/Numakers PLA+ @System.json" + }, + { + "name": "Eolas Prints PLA Premium @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Premium @System.json" + }, + { + "name": "Eolas Prints PLA Matte @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Matte @System.json" + }, + { + "name": "Eolas Prints PLA Silk @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Silk @System.json" + }, + { + "name": "Eolas Prints PLA Neon @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Neon @System.json" + }, + { + "name": "Eolas Prints PLA High Speed @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA High Speed @System.json" + }, + { + "name": "Eolas Prints PLA INGEO 850 @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json" + }, + { + "name": "Eolas Prints PLA INGEO 870 @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json" + }, + { + "name": "Eolas Prints PLA Antibacterial @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json" + }, + { + "name": "Eolas Prints PLA Transition @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PLA Transition @System.json" + }, + { + "name": "Eolas Prints PETG @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PETG @System.json" + }, + { + "name": "Eolas Prints PETG UV Resistant @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json" + }, + { + "name": "Eolas Prints PETG Transition @System", + "sub_path": "filament/Eolas Prints/Eolas Prints PETG Transition @System.json" + }, + { + "name": "Eolas Prints TPU Flex 93A @System", + "sub_path": "filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json" + }, + { + "name": "Eolas Prints TPU Flex D53 @System", + "sub_path": "filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json" + }, + { + "name": "Eolas Prints TPU Flex D60 UV Resistant @System", + "sub_path": "filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json" + }, + { + "name": "Eolas Prints TPU Transition @System", + "sub_path": "filament/Eolas Prints/Eolas Prints TPU Transition @System.json" + }, + { + "name": "Eolas Prints ABS @System", + "sub_path": "filament/Eolas Prints/Eolas Prints ABS @System.json" + }, + { + "name": "Eolas Prints ASA @System", + "sub_path": "filament/Eolas Prints/Eolas Prints ASA @System.json" } ], "process_list": [], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json new file mode 100644 index 0000000000..bf8afa8b31 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ABS @System.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFSEP017", + "setting_id": "GFSEP017_00", + "name": "Eolas Prints ABS @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["ABS"], + "nozzle_temperature": ["255"], + "nozzle_temperature_initial_layer": ["260"], + "nozzle_temperature_range_low": ["240"], + "nozzle_temperature_range_high": ["270"], + "hot_plate_temp": ["100"], + "hot_plate_temp_initial_layer": ["105"], + "chamber_temperature": ["40"], + "filament_density": ["1.04"], + "filament_cost": ["19.50"], + "filament_spool_weight": ["900"], + "filament_max_volumetric_speed": ["18"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json new file mode 100644 index 0000000000..21d7ef887b --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints ASA @System.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFSEP018", + "setting_id": "GFSEP018_00", + "name": "Eolas Prints ASA @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_asa", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["ASA"], + "nozzle_temperature": ["260"], + "nozzle_temperature_initial_layer": ["270"], + "nozzle_temperature_range_low": ["245"], + "nozzle_temperature_range_high": ["275"], + "hot_plate_temp": ["100"], + "hot_plate_temp_initial_layer": ["105"], + "chamber_temperature": ["40"], + "filament_density": ["1.07"], + "filament_cost": ["22.50"], + "filament_spool_weight": ["900"], + "filament_max_volumetric_speed": ["18"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json new file mode 100644 index 0000000000..6f02d13138 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP010", + "setting_id": "GFSEP010_00", + "name": "Eolas Prints PETG @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PETG"], + "nozzle_temperature": ["240"], + "nozzle_temperature_initial_layer": ["245"], + "nozzle_temperature_range_low": ["230"], + "nozzle_temperature_range_high": ["260"], + "hot_plate_temp": ["80"], + "hot_plate_temp_initial_layer": ["85"], + "filament_density": ["1.27"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json new file mode 100644 index 0000000000..d9e125b8ff --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG Transition @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP012", + "setting_id": "GFSEP012_00", + "name": "Eolas Prints PETG Transition @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PETG"], + "nozzle_temperature": ["240"], + "nozzle_temperature_initial_layer": ["245"], + "nozzle_temperature_range_low": ["230"], + "nozzle_temperature_range_high": ["260"], + "hot_plate_temp": ["80"], + "hot_plate_temp_initial_layer": ["85"], + "filament_density": ["1.27"], + "filament_cost": ["17.40"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json new file mode 100644 index 0000000000..8810346918 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PETG UV Resistant @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP011", + "setting_id": "GFSEP011_00", + "name": "Eolas Prints PETG UV Resistant @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pet", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PETG"], + "nozzle_temperature": ["245"], + "nozzle_temperature_initial_layer": ["250"], + "nozzle_temperature_range_low": ["235"], + "nozzle_temperature_range_high": ["265"], + "hot_plate_temp": ["80"], + "hot_plate_temp_initial_layer": ["85"], + "filament_density": ["1.27"], + "filament_cost": ["30.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json new file mode 100644 index 0000000000..b41e563301 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Antibacterial @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP008", + "setting_id": "GFSEP008_00", + "name": "Eolas Prints PLA Antibacterial @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["216"], + "nozzle_temperature_initial_layer": ["220"], + "nozzle_temperature_range_low": ["195"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["30.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json new file mode 100644 index 0000000000..fd41493192 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA High Speed @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP005", + "setting_id": "GFSEP005_00", + "name": "Eolas Prints PLA High Speed @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["220"], + "nozzle_temperature_initial_layer": ["220"], + "nozzle_temperature_range_low": ["210"], + "nozzle_temperature_range_high": ["240"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["17.8"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json new file mode 100644 index 0000000000..ccef240d17 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 850 @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP006", + "setting_id": "GFSEP006_00", + "name": "Eolas Prints PLA INGEO 850 @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["210"], + "nozzle_temperature_initial_layer": ["215"], + "nozzle_temperature_range_low": ["190"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json new file mode 100644 index 0000000000..da7ebe735d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA INGEO 870 @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP007", + "setting_id": "GFSEP007_00", + "name": "Eolas Prints PLA INGEO 870 @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["220"], + "nozzle_temperature_initial_layer": ["225"], + "nozzle_temperature_range_low": ["200"], + "nozzle_temperature_range_high": ["235"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.22"], + "filament_cost": ["30.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json new file mode 100644 index 0000000000..5c90dff774 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Matte @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP002", + "setting_id": "GFSEP002_00", + "name": "Eolas Prints PLA Matte @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["215"], + "nozzle_temperature_initial_layer": ["220"], + "nozzle_temperature_range_low": ["200"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json new file mode 100644 index 0000000000..857924f75a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Neon @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP004", + "setting_id": "GFSEP004_00", + "name": "Eolas Prints PLA Neon @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["210"], + "nozzle_temperature_initial_layer": ["215"], + "nozzle_temperature_range_low": ["200"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["10"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json new file mode 100644 index 0000000000..ceeaabbcf5 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Premium @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP001", + "setting_id": "GFSEP001_00", + "name": "Eolas Prints PLA Premium @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["210"], + "nozzle_temperature_initial_layer": ["215"], + "nozzle_temperature_range_low": ["190"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["19.90"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json new file mode 100644 index 0000000000..0409a36e12 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Silk @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP003", + "setting_id": "GFSEP003_00", + "name": "Eolas Prints PLA Silk @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["215"], + "nozzle_temperature_initial_layer": ["220"], + "nozzle_temperature_range_low": ["205"], + "nozzle_temperature_range_high": ["235"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["25.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["8"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json new file mode 100644 index 0000000000..0804a78a64 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints PLA Transition @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP009", + "setting_id": "GFSEP009_00", + "name": "Eolas Prints PLA Transition @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["PLA"], + "nozzle_temperature": ["210"], + "nozzle_temperature_initial_layer": ["215"], + "nozzle_temperature_range_low": ["200"], + "nozzle_temperature_range_high": ["230"], + "hot_plate_temp": ["60"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.24"], + "filament_cost": ["13.90"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["15"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json new file mode 100644 index 0000000000..90cc77ff33 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex 93A @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP013", + "setting_id": "GFSEP013_00", + "name": "Eolas Prints TPU Flex 93A @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_tpu", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["TPU"], + "nozzle_temperature": ["220"], + "nozzle_temperature_initial_layer": ["225"], + "nozzle_temperature_range_low": ["210"], + "nozzle_temperature_range_high": ["240"], + "hot_plate_temp": ["50"], + "hot_plate_temp_initial_layer": ["55"], + "filament_density": ["1.21"], + "filament_cost": ["34.99"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["6"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json new file mode 100644 index 0000000000..96237eb712 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D53 @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP014", + "setting_id": "GFSEP014_00", + "name": "Eolas Prints TPU Flex D53 @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_tpu", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["TPU"], + "nozzle_temperature": ["220"], + "nozzle_temperature_initial_layer": ["225"], + "nozzle_temperature_range_low": ["205"], + "nozzle_temperature_range_high": ["235"], + "hot_plate_temp": ["45"], + "hot_plate_temp_initial_layer": ["50"], + "filament_density": ["1.17"], + "filament_cost": ["38.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["8"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json new file mode 100644 index 0000000000..e88f950722 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Flex D60 UV Resistant @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP015", + "setting_id": "GFSEP015_00", + "name": "Eolas Prints TPU D60 UV Resistant @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_tpu", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["TPU"], + "nozzle_temperature": ["225"], + "nozzle_temperature_initial_layer": ["230"], + "nozzle_temperature_range_low": ["215"], + "nozzle_temperature_range_high": ["245"], + "hot_plate_temp": ["55"], + "hot_plate_temp_initial_layer": ["60"], + "filament_density": ["1.16"], + "filament_cost": ["37.90"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["8"] +} \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json new file mode 100644 index 0000000000..c1029399d4 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Eolas Prints/Eolas Prints TPU Transition @System.json @@ -0,0 +1,22 @@ +{ + "type": "filament", + "filament_id": "GFSEP016", + "setting_id": "GFSEP016_00", + "name": "Eolas Prints TPU Transition @System", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_tpu", + "filament_color": ["#4d9398"], + "filament_vendor": ["Eolas Prints"], + "filament_type": ["TPU"], + "nozzle_temperature": ["220"], + "nozzle_temperature_initial_layer": ["225"], + "nozzle_temperature_range_low": ["210"], + "nozzle_temperature_range_high": ["240"], + "hot_plate_temp": ["50"], + "hot_plate_temp_initial_layer": ["55"], + "filament_density": ["1.21"], + "filament_cost": ["22.50"], + "filament_spool_weight": ["1000"], + "filament_max_volumetric_speed": ["5"] +} \ No newline at end of file diff --git a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json index 6f7bd1649a..b63413d8ce 100644 --- a/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MINIIS 0.4 nozzle.json @@ -94,6 +94,9 @@ ], "z_hop": [ "0.2" + ], + "machine_max_junction_deviation": [ + "0.01" ], "fan_speedup_time": "0.2", "fan_speedup_overhangs": "1", @@ -102,7 +105,7 @@ "printable_height": "180", "machine_end_gcode": "{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F720 ; Move print head up{endif}\nG1 X170 Y170 F4200 ; park print head\n{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+50, max_print_height)} F720 ; Move print head further up{endif}\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nM221 S100 ; reset flow\nM572 S0 ; reset PA\nM569 S1 X Y ; reset to stealthchop for X Y\nM84 ; disable motors\n; max_layer_z = [max_layer_z]", "machine_pause_gcode": "M601", - "machine_start_gcode": "M862.3 P \"MINI\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.0.3+14902\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nG28 ; home all without mesh bed level\nM104 S170 ; set extruder temp for bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 R170 ; wait for bed leveling temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM569 S1 X Y ; set stealthchop for X Y\nM204 T1250 ; set travel acceleration\nG29 ; mesh bed leveling \nM104 S[first_layer_temperature] ; set extruder temp\nG92 E0\n\nG1 X0 Y-2 Z3 F2400\n\nM109 S[first_layer_temperature] ; wait for extruder temp\n\n; intro line\nG1 X10 Z0.2 F1000\nG1 X70 E8 F900\nG1 X140 E10 F700\nG92 E0\n\nM569 S0 X Y ; set spreadcycle for X Y\nM204 T[machine_max_acceleration_travel] ; restore travel acceleration\nM572 W0.06 ; set smooth time\nM221 S95 ; set flow", + "machine_start_gcode": "M862.3 P \"MINI\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.4.0+11974\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nG28 ; home all without mesh bed level\nM104 S170 ; set extruder temp for bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM109 R170 ; wait for bed leveling temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM569 S1 X Y ; set stealthchop for X Y\nM204 T1250 ; set travel acceleration\nG29 ; mesh bed leveling \nM104 S[first_layer_temperature] ; set extruder temp\nG92 E0\n\nG1 X0 Y-2 Z3 F2400\n\nM109 S[first_layer_temperature] ; wait for extruder temp\n\n; intro line\nG1 X10 Z0.2 F1000\nG1 X70 E8 F900\nG1 X140 E10 F700\nG92 E0\n\nM569 S0 X Y ; set spreadcycle for X Y\nM204 T[machine_max_acceleration_travel] ; restore travel acceleration\nM572 W0.06 ; set smooth time\nM221 S95 ; set flow", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\nM201 X{interpolate_table(extruded_weight_total, (0,4000), (1000,1700), (10000,1700))} Y{interpolate_table(extruded_weight_total, (0,4000), (1000,1700), (10000,1700))}", "change_filament_gcode": "M600", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n{if ! spiral_mode}M74 W[extruded_weight_total]{endif}\n", diff --git a/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json index 8d5307d1a8..18576df366 100644 --- a/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK3.5 0.4 nozzle.json @@ -95,6 +95,9 @@ "z_hop": [ "0.2" ], + "machine_max_junction_deviation": [ + "0.01" + ], "fan_speedup_time": "0.2", "fan_speedup_overhangs": "1", "fan_kickstart": "0", @@ -102,7 +105,7 @@ "printable_height": "210", "machine_end_gcode": "{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X241 Y201 F3600 ; park\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+23, max_print_height)} F300 ; Move print head up{endif}\nG4 ; wait\nM572 S0 ; reset PA\nM593 X T2 F0 ; disable IS\nM593 Y T2 F0 ; disable IS\nM84 X Y E ; disable motors\n; max_layer_z = [max_layer_z]", "machine_pause_gcode": "M601", - "machine_start_gcode": "M17 ; enable steppers\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.3 P \"MK3.5\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.2.2+8853\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nG28 ; home all\n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 T0 S170 ; set extruder temp for bed leveling\nM109 T0 R170 ; wait for temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X23 Y5 W80 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\n\n; prepare for purge\nM104 S{first_layer_temperature[0]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[0]}\n\n; Extrude purge line\n\nG92 E0 ; reset extruder position\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X25 E4 F500 ; purge\nG0 X35 E4 F650 ; purge\nG0 X45 E4 F800 ; purge\nG0 X{45 + 3} Z0.05 F8000 ; wipe, move close to the bed\nG0 X{45 + 3 * 2} Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; reset flow to 100%\n", + "machine_start_gcode": "M17 ; enable steppers\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM862.3 P \"MK3.5\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM115 U6.4.0+11974\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nG28 ; home all\n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 T0 S170 ; set extruder temp for bed leveling\nM109 T0 R170 ; wait for temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X23 Y5 W80 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\n\n; prepare for purge\nM104 S{first_layer_temperature[0]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[0]}\n\n; Extrude purge line\n\nG92 E0 ; reset extruder position\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X25 E4 F500 ; purge\nG0 X35 E4 F650 ; purge\nG0 X45 E4 F800 ; purge\nG0 X{45 + 3} Z0.05 F8000 ; wipe, move close to the bed\nG0 X{45 + 3 * 2} Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; reset flow to 100%\n", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\nM201 X{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (10000,2500))} Y{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (10000,2500))}\n", "change_filament_gcode": "M600", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n{if ! spiral_mode}M74 W[extruded_weight_total]{endif}\n", diff --git a/resources/profiles/Prusa/process/0.05mm DETAIL @CORE One 0.25.json b/resources/profiles/Prusa/process/0.05mm DETAIL @CORE One 0.25.json index 90282356ee..5a5e94e124 100644 --- a/resources/profiles/Prusa/process/0.05mm DETAIL @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.05mm DETAIL @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "gap_infill_speed": "45", + "small_perimeter_speed": "45", + "outer_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json index 9f2b524b57..6298c71d49 100644 --- a/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.05mm Detail @MINIIS.json @@ -19,6 +19,9 @@ "top_shell_layers": "13", "bottom_shell_thickness": "0.5", "bottom_shell_layers": "10", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.05mm Detail @MK3.5.json b/resources/profiles/Prusa/process/0.05mm Detail @MK3.5.json index 9f82ceb6eb..a9a79b47a1 100644 --- a/resources/profiles/Prusa/process/0.05mm Detail @MK3.5.json +++ b/resources/profiles/Prusa/process/0.05mm Detail @MK3.5.json @@ -19,7 +19,9 @@ "top_shell_layers": "13", "bottom_shell_thickness": "0.5", "bottom_shell_layers": "10", + "support_base_pattern_spacing": "1", "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.07mm DETAIL @CORE One 0.25.json b/resources/profiles/Prusa/process/0.07mm DETAIL @CORE One 0.25.json index aa1fb6b9f7..cda4e3096b 100644 --- a/resources/profiles/Prusa/process/0.07mm DETAIL @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.07mm DETAIL @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "gap_infill_speed": "45", + "small_perimeter_speed": "45", + "outer_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json index 9217fc2f00..63d1757fd0 100644 --- a/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.07mm Detail @MINIIS.json @@ -21,7 +21,9 @@ "bottom_shell_layers": "8", "bridge_speed": "30", "internal_solid_infill_speed": "140", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.07mm Detail @MK3.5.json b/resources/profiles/Prusa/process/0.07mm Detail @MK3.5.json index 6fc9c6886c..eb90dc1922 100644 --- a/resources/profiles/Prusa/process/0.07mm Detail @MK3.5.json +++ b/resources/profiles/Prusa/process/0.07mm Detail @MK3.5.json @@ -21,7 +21,9 @@ "bottom_shell_layers": "8", "bridge_speed": "30", "internal_solid_infill_speed": "140", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.10mm FAST DETAIL @CORE One 0.4.json b/resources/profiles/Prusa/process/0.10mm FAST DETAIL @CORE One 0.4.json index d481f3139d..b2c2ca9528 100644 --- a/resources/profiles/Prusa/process/0.10mm FAST DETAIL @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.10mm FAST DETAIL @CORE One 0.4.json @@ -13,5 +13,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "100", "initial_layer_speed": "45", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4", + "small_perimeter_speed": "145", + "inner_wall_speed": "145", + "outer_wall_speed": "145" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.10mm STRUCTURAL @CORE One 0.5.json b/resources/profiles/Prusa/process/0.10mm STRUCTURAL @CORE One 0.5.json index f5f6a460b0..df335dbe67 100644 --- a/resources/profiles/Prusa/process/0.10mm STRUCTURAL @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.10mm STRUCTURAL @CORE One 0.5.json @@ -4,9 +4,9 @@ "inherits": "0.10mm STRUCTURAL @MK4S 0.5", "from": "system", "instantiation": "true", - "inner_wall_speed": "80", - "small_perimeter_speed": "45", - "outer_wall_speed": "45", + "inner_wall_speed": "70", + "small_perimeter_speed": "50", + "outer_wall_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.10mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.10mm Speed @MINIIS.json index b8107625fa..6a87714bb0 100644 --- a/resources/profiles/Prusa/process/0.10mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.10mm Speed @MINIIS.json @@ -24,7 +24,9 @@ "internal_solid_infill_acceleration": "3000", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MINIIS 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.10mm Speed @MK3.5.json b/resources/profiles/Prusa/process/0.10mm Speed @MK3.5.json index 92d201b8e1..7327e51e82 100644 --- a/resources/profiles/Prusa/process/0.10mm Speed @MK3.5.json +++ b/resources/profiles/Prusa/process/0.10mm Speed @MK3.5.json @@ -24,7 +24,9 @@ "internal_solid_infill_acceleration": "3000", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MK3.5 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.12mm SPEED @CORE One 0.25.json b/resources/profiles/Prusa/process/0.12mm SPEED @CORE One 0.25.json index 69ef541dae..3fc92e8b42 100644 --- a/resources/profiles/Prusa/process/0.12mm SPEED @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.12mm SPEED @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "small_perimeter_speed": "150", + "outer_wall_speed": "150", + "inner_wall_speed": "150" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.25.json b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.25.json index a61d130cb5..ec754dc350 100644 --- a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "gap_infill_speed": "45", + "small_perimeter_speed": "45", + "outer_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.3.json b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.3.json index 35b0d2c525..101e7f0968 100644 --- a/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.3.json +++ b/resources/profiles/Prusa/process/0.12mm STRUCTURAL @CORE One 0.3.json @@ -12,5 +12,8 @@ "initial_layer_infill_speed": "60", "initial_layer_speed": "45", "top_surface_acceleration": "1500", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3", + "small_perimeter_speed": "45", + "inner_wall_speed": "70", + "outer_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json index e8518fdb25..c4d772993f 100644 --- a/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.12mm Speed @MINIIS.json @@ -31,7 +31,8 @@ "overhang_1_4_speed": "60", "internal_solid_infill_acceleration": "2500", "sparse_infill_acceleration": "2500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.12mm Speed @MK3.5.json b/resources/profiles/Prusa/process/0.12mm Speed @MK3.5.json index abaef8f727..76ce6b9221 100644 --- a/resources/profiles/Prusa/process/0.12mm Speed @MK3.5.json +++ b/resources/profiles/Prusa/process/0.12mm Speed @MK3.5.json @@ -31,7 +31,8 @@ "overhang_1_4_speed": "60", "internal_solid_infill_acceleration": "2500", "sparse_infill_acceleration": "2500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json index f0d03268c4..72175e280d 100644 --- a/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.12mm Standard @MINIIS.json @@ -36,7 +36,9 @@ "internal_solid_infill_acceleration": "2500", "sparse_infill_acceleration": "2500", "travel_acceleration": "3000", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.12mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.12mm Standard @MK3.5.json index 6099147be4..8f4b41b380 100644 --- a/resources/profiles/Prusa/process/0.12mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.12mm Standard @MK3.5.json @@ -36,7 +36,9 @@ "internal_solid_infill_acceleration": "2500", "sparse_infill_acceleration": "2500", "travel_acceleration": "3000", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm High Flow @MINIIS.json b/resources/profiles/Prusa/process/0.15mm High Flow @MINIIS.json index 58a8211986..81711734a1 100644 --- a/resources/profiles/Prusa/process/0.15mm High Flow @MINIIS.json +++ b/resources/profiles/Prusa/process/0.15mm High Flow @MINIIS.json @@ -29,7 +29,8 @@ "inner_wall_acceleration": "3500", "outer_wall_acceleration": "2500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MINIIS 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm High Flow @MK3.5.json b/resources/profiles/Prusa/process/0.15mm High Flow @MK3.5.json index 92db093a4c..a3ecfea49b 100644 --- a/resources/profiles/Prusa/process/0.15mm High Flow @MK3.5.json +++ b/resources/profiles/Prusa/process/0.15mm High Flow @MK3.5.json @@ -29,7 +29,8 @@ "inner_wall_acceleration": "3500", "outer_wall_acceleration": "2500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MK3.5 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.25.json b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.25.json index 8e5f0cab2d..4600a136a8 100644 --- a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "small_perimeter_speed": "150", + "inner_wall_speed": "150", + "outer_wall_speed": "150" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.4.json b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.4.json index 2c3b531050..e08b21a26f 100644 --- a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.15mm SPEED @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -16,5 +16,6 @@ "internal_solid_infill_acceleration": "6000", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "support_threshold_angle": "35" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One HF 0.4.json b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One HF 0.4.json index fa9fb8c30c..50ad496cd2 100644 --- a/resources/profiles/Prusa/process/0.15mm SPEED @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/process/0.15mm SPEED @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.15mm SPEED @MK4S HF0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_1_4_speed": "50", "overhang_3_4_speed": "60%", "sparse_infill_speed": "300", "travel_speed": "350", @@ -18,5 +18,6 @@ "internal_solid_infill_acceleration": "6000", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "support_threshold_angle": "35" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.25.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.25.json index 55e9dc654c..51886f189e 100644 --- a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.25.json @@ -10,5 +10,8 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "45", "initial_layer_speed": "25", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.25", + "gap_infill_speed": "45", + "small_perimeter_speed": "45", + "outer_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.4.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.4.json index fd2d410e48..017b232df4 100644 --- a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.15mm STRUCTURAL @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "sparse_infill_speed": "120", "travel_speed": "350", "travel_acceleration": "7000", diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.5.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.5.json index 2cecda0dd0..765d0efa49 100644 --- a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.15mm STRUCTURAL @MK4S 0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.6.json b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.6.json index 2f58de84e9..0024001fd9 100644 --- a/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.15mm STRUCTURAL @CORE One 0.6.json @@ -4,9 +4,9 @@ "inherits": "0.15mm STRUCTURAL @MK4S 0.6", "from": "system", "instantiation": "true", - "inner_wall_speed": "80", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "inner_wall_speed": "70", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -18,5 +18,6 @@ "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.6", "inner_wall_acceleration": "2500", "outer_wall_acceleration": "1500", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "gap_infill_speed": "70" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json index 30d9a165d5..3aa3019d76 100644 --- a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS 0.25.json @@ -29,7 +29,8 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS.json index 853e0e01e6..6f6a9cffcd 100644 --- a/resources/profiles/Prusa/process/0.15mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.15mm Speed @MINIIS.json @@ -29,7 +29,8 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MINIIS 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Speed @MK3.5 0.25.json b/resources/profiles/Prusa/process/0.15mm Speed @MK3.5 0.25.json index 09c562d356..e322f1ce63 100644 --- a/resources/profiles/Prusa/process/0.15mm Speed @MK3.5 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Speed @MK3.5 0.25.json @@ -29,7 +29,8 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.09", + "support_bottom_interface_spacing": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Speed @MK3.5.json b/resources/profiles/Prusa/process/0.15mm Speed @MK3.5.json index 175c896845..31eb1443bb 100644 --- a/resources/profiles/Prusa/process/0.15mm Speed @MK3.5.json +++ b/resources/profiles/Prusa/process/0.15mm Speed @MK3.5.json @@ -29,7 +29,8 @@ "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_interface_spacing": "0.17", "compatible_printers": [ "Prusa MK3.5 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json index b6fe166ce1..362ed653d2 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.25.json @@ -29,7 +29,9 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MINIIS 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json index 606e52ecb7..5cd6746563 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS 0.6.json @@ -37,7 +37,10 @@ "inner_wall_acceleration": "2500", "outer_wall_acceleration": "1500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS.json index 3f1a5c6825..d61a785155 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MINIIS.json @@ -33,7 +33,8 @@ "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MINIIS 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.25.json b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.25.json index eca3cdad8c..3d55cc1e39 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.25.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.25.json @@ -29,7 +29,9 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "1", + "support_top_z_distance": "0.09", + "support_bottom_z_distance": "0.09", "compatible_printers": [ "Prusa MK3.5 0.25 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.6.json b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.6.json index 6c6a80a261..c0087d57ea 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.6.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5 0.6.json @@ -37,7 +37,11 @@ "inner_wall_acceleration": "2500", "outer_wall_acceleration": "1500", "bridge_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5.json index 4044df4712..e6161e5896 100644 --- a/resources/profiles/Prusa/process/0.15mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.15mm Standard @MK3.5.json @@ -28,7 +28,8 @@ "internal_solid_infill_acceleration": "2500", "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", - "support_top_z_distance": "0.1", + "support_top_z_distance": "0.17", + "support_bottom_z_distance": "0.17", "compatible_printers": [ "Prusa MK3.5 0.4 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.16mm SPEED @CORE One 0.3.json b/resources/profiles/Prusa/process/0.16mm SPEED @CORE One 0.3.json index d0ca7859df..15096ebd6b 100644 --- a/resources/profiles/Prusa/process/0.16mm SPEED @CORE One 0.3.json +++ b/resources/profiles/Prusa/process/0.16mm SPEED @CORE One 0.3.json @@ -13,5 +13,8 @@ "initial_layer_infill_speed": "60", "initial_layer_speed": "45", "top_surface_acceleration": "1500", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3", + "small_perimeter_speed": "160", + "inner_wall_speed": "160", + "outer_wall_speed": "160" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.16mm STRUCTURAL @CORE One 0.3.json b/resources/profiles/Prusa/process/0.16mm STRUCTURAL @CORE One 0.3.json index 192682e5b7..4e11371cfe 100644 --- a/resources/profiles/Prusa/process/0.16mm STRUCTURAL @CORE One 0.3.json +++ b/resources/profiles/Prusa/process/0.16mm STRUCTURAL @CORE One 0.3.json @@ -12,5 +12,8 @@ "initial_layer_infill_speed": "60", "initial_layer_speed": "45", "top_surface_acceleration": "1500", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3", + "small_perimeter_speed": "50", + "inner_wall_speed": "70", + "outer_wall_speed": "50" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm High Flow @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.20mm High Flow @MINIIS 0.6.json index aeca348889..15363df16c 100644 --- a/resources/profiles/Prusa/process/0.20mm High Flow @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm High Flow @MINIIS 0.6.json @@ -36,5 +36,10 @@ "outer_wall_acceleration": "4000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", - "overhang_1_4_speed": "45" + "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm High Flow @MK3.5 0.6.json b/resources/profiles/Prusa/process/0.20mm High Flow @MK3.5 0.6.json index 2aa0d96b93..c9056822db 100644 --- a/resources/profiles/Prusa/process/0.20mm High Flow @MK3.5 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm High Flow @MK3.5 0.6.json @@ -36,5 +36,10 @@ "outer_wall_acceleration": "4000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", - "overhang_1_4_speed": "45" + "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @CORE One 0.4.json b/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @CORE One 0.4.json index 3fe89b38a6..7e0f0042c0 100644 --- a/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm SOLUBLE FULL @CORE One 0.4.json @@ -4,12 +4,15 @@ "inherits": "0.20mm SOLUBLE FULL @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4 and printer_notes!~/.*HF_NOZZLE.*/", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", "support_interface_top_layers": "3", "initial_layer_infill_speed": "100", - "initial_layer_speed": "45" + "initial_layer_speed": "45", + "small_perimeter_speed": "50", + "inner_wall_speed": "70", + "outer_wall_speed": "50" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @CORE One 0.4.json b/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @CORE One 0.4.json index 49c4c28280..222663644c 100644 --- a/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm SOLUBLE INTERFACE @CORE One 0.4.json @@ -4,12 +4,15 @@ "inherits": "0.20mm SOLUBLE INTERFACE @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4 and printer_notes!~/.*HF_NOZZLE.*/", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", "support_interface_top_layers": "3", "initial_layer_infill_speed": "100", - "initial_layer_speed": "45" + "initial_layer_speed": "45", + "small_perimeter_speed": "50", + "inner_wall_speed": "70", + "outer_wall_speed": "50" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.3.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.3.json index df4d8e80cc..0f0cc78362 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.3.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.3.json @@ -13,5 +13,8 @@ "initial_layer_infill_speed": "60", "initial_layer_speed": "45", "top_surface_acceleration": "1500", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3", + "small_perimeter_speed": "160", + "inner_wall_speed": "160", + "outer_wall_speed": "160" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.4.json index 9171ec4b21..79cd06680f 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.20mm SPEED @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -16,5 +16,6 @@ "internal_solid_infill_acceleration": "6000", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "support_threshold_angle": "35" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.5.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.5.json index e7299809ea..20d64e324c 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.20mm SPEED @MK4S 0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.6.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.6.json index 78446c1687..1bbd442a02 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One 0.6.json @@ -4,8 +4,8 @@ "inherits": "0.20mm SPEED @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -17,5 +17,8 @@ "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.6 and printer_notes!~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "small_perimeter_speed": "130", + "inner_wall_speed": "130", + "outer_wall_speed": "130" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.4.json index 96433e26e8..5b9b42f34c 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.4.json @@ -4,8 +4,8 @@ "inherits": "0.20mm SPEED @MK4S HF0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", - "overhang_3_4_speed": "60%", + "overhang_3_4_speed": "50", + "overhang_4_4_speed": "70%", "sparse_infill_speed": "300", "travel_speed": "350", "travel_acceleration": "7000", @@ -18,5 +18,6 @@ "internal_solid_infill_acceleration": "6000", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "support_threshold_angle": "35" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.5.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.5.json index 3ad26d4548..c7324713ea 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.20mm SPEED @MK4S HF0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.6.json index 204f356661..8cb0eb8f1c 100644 --- a/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm SPEED @CORE One HF 0.6.json @@ -4,8 +4,8 @@ "inherits": "0.20mm SPEED @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.3.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.3.json index e7dd110d1d..d9b1a2ef54 100644 --- a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.3.json +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.3.json @@ -12,5 +12,8 @@ "initial_layer_infill_speed": "60", "initial_layer_speed": "45", "top_surface_acceleration": "1500", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.3", + "small_perimeter_speed": "50", + "inner_wall_speed": "70", + "outer_wall_speed": "50" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.4.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.4.json index 95d97fea4e..a139f2cd4f 100644 --- a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.4.json +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.20mm STRUCTURAL @MK4S 0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.5.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.5.json index c6fba65551..57c2968e0d 100644 --- a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.20mm STRUCTURAL @MK4S 0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.6.json b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.6.json index 5445f967b5..9bbd5097c8 100644 --- a/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm STRUCTURAL @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "0.20mm STRUCTURAL @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", + "overhang_3_4_speed": "30", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json index 2e2cb971fe..29f9977358 100644 --- a/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Speed @MINIIS 0.6.json @@ -34,5 +34,10 @@ "outer_wall_acceleration": "2000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", - "overhang_1_4_speed": "45" + "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Speed @MK3.5 0.6.json b/resources/profiles/Prusa/process/0.20mm Speed @MK3.5 0.6.json index fb256ecc05..79c38ffeea 100644 --- a/resources/profiles/Prusa/process/0.20mm Speed @MK3.5 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Speed @MK3.5 0.6.json @@ -34,5 +34,10 @@ "outer_wall_acceleration": "2000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", - "overhang_1_4_speed": "45" + "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json b/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json index 6ed283fa8c..d27e89b756 100644 --- a/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Standard @MINIIS 0.6.json @@ -29,6 +29,11 @@ "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.20mm Standard @MK3.5 0.6.json b/resources/profiles/Prusa/process/0.20mm Standard @MK3.5 0.6.json index f6e1946a04..e4b4f4b5d1 100644 --- a/resources/profiles/Prusa/process/0.20mm Standard @MK3.5 0.6.json +++ b/resources/profiles/Prusa/process/0.20mm Standard @MK3.5 0.6.json @@ -29,6 +29,11 @@ "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", "overhang_1_4_speed": "45", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm High Flow @MINIIS.json b/resources/profiles/Prusa/process/0.25mm High Flow @MINIIS.json index 4521f5fbb1..f1784af6c5 100644 --- a/resources/profiles/Prusa/process/0.25mm High Flow @MINIIS.json +++ b/resources/profiles/Prusa/process/0.25mm High Flow @MINIIS.json @@ -40,7 +40,11 @@ "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", "overhang_1_4_speed": "45", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm High Flow @MK3.5.json b/resources/profiles/Prusa/process/0.25mm High Flow @MK3.5.json index 00faf7f563..0cb9257ddf 100644 --- a/resources/profiles/Prusa/process/0.25mm High Flow @MK3.5.json +++ b/resources/profiles/Prusa/process/0.25mm High Flow @MK3.5.json @@ -40,7 +40,11 @@ "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", "overhang_1_4_speed": "45", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.5.json b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.5.json index bfe931bc62..cb087eb345 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.25mm SPEED @MK4S 0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.6.json b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.6.json index 4cd0500e7b..621c94e9d8 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One 0.6.json @@ -4,8 +4,8 @@ "inherits": "0.25mm SPEED @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -17,5 +17,8 @@ "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.6 and printer_notes!~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "small_perimeter_speed": "75", + "inner_wall_speed": "95", + "outer_wall_speed": "75" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.4.json b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.4.json index b0b066e261..634c502f73 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.4.json @@ -4,8 +4,8 @@ "inherits": "0.25mm SPEED @MK4S HF0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", - "overhang_3_4_speed": "60%", + "overhang_3_4_speed": "50", + "overhang_4_4_speed": "70%", "sparse_infill_speed": "300", "travel_speed": "350", "travel_acceleration": "7000", @@ -13,10 +13,11 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "100", "initial_layer_speed": "45", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", +"compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.4 and printer_notes=~/.*HF_NOZZLE.*/", "sparse_infill_acceleration": "7000", "internal_solid_infill_acceleration": "6000", "inner_wall_acceleration": "6000", "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "top_surface_acceleration": "2000", + "support_threshold_angle": "35" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.5.json b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.5.json index 20634c06e1..268891fb46 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.25mm SPEED @MK4S HF0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.6.json index 493f82b29b..bb26e69f5d 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @CORE One HF 0.6.json @@ -4,8 +4,8 @@ "inherits": "0.25mm SPEED @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.5.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.5.json index a89610e3ee..c4d22efeb2 100644 --- a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.5.json +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.25mm STRUCTURAL @MK4S 0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.6.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.6.json index 5418273bb2..96a614266d 100644 --- a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "0.25mm STRUCTURAL @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", + "overhang_3_4_speed": "30", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One HF 0.4.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One HF 0.4.json index 6392a2c0f7..978f3f94d0 100644 --- a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.25mm STRUCTURAL @MK4S HF0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json b/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json index c5085cbf7c..33e3de92dc 100644 --- a/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json +++ b/resources/profiles/Prusa/process/0.25mm Speed @MINIIS.json @@ -30,7 +30,11 @@ "overhang_1_4_speed": "45", "travel_speed": "300", "internal_solid_infill_acceleration": "3000", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm Speed @MK3.5.json b/resources/profiles/Prusa/process/0.25mm Speed @MK3.5.json index 6dec0d7f5c..7ebe2664ef 100644 --- a/resources/profiles/Prusa/process/0.25mm Speed @MK3.5.json +++ b/resources/profiles/Prusa/process/0.25mm Speed @MK3.5.json @@ -30,7 +30,11 @@ "overhang_1_4_speed": "45", "travel_speed": "300", "internal_solid_infill_acceleration": "3000", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json index e98b851fc4..4191366100 100644 --- a/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.25mm Standard @MINIIS.json @@ -29,7 +29,11 @@ "gap_infill_speed": "60", "support_speed": "80", "travel_speed": "300", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.25mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.25mm Standard @MK3.5.json index e9c0451d61..64e099d97e 100644 --- a/resources/profiles/Prusa/process/0.25mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.25mm Standard @MK3.5.json @@ -29,7 +29,11 @@ "gap_infill_speed": "60", "support_speed": "80", "travel_speed": "300", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.28mm DRAFT @CORE One HF 0.4.json b/resources/profiles/Prusa/process/0.28mm DRAFT @CORE One HF 0.4.json index a1f896b3c0..e493e19467 100644 --- a/resources/profiles/Prusa/process/0.28mm DRAFT @CORE One HF 0.4.json +++ b/resources/profiles/Prusa/process/0.28mm DRAFT @CORE One HF 0.4.json @@ -4,7 +4,7 @@ "inherits": "0.28mm DRAFT @MK4S HF0.4", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "support_threshold_angle": "35", "outer_wall_acceleration": "3000", "inner_wall_acceleration": "6000", diff --git a/resources/profiles/Prusa/process/0.30mm DETAIL @CORE One 0.8.json b/resources/profiles/Prusa/process/0.30mm DETAIL @CORE One 0.8.json index 0ecac72e60..db88957c69 100644 --- a/resources/profiles/Prusa/process/0.30mm DETAIL @CORE One 0.8.json +++ b/resources/profiles/Prusa/process/0.30mm DETAIL @CORE One 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.30mm DETAIL @MK4S 0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", - "top_surface_speed": "2000", + "overhang_3_4_speed": "35", + "top_surface_acceleration": "2000", "inner_wall_acceleration": "2500", "internal_solid_infill_acceleration": "5000", "sparse_infill_acceleration": "7000", @@ -15,5 +15,6 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "55", "initial_layer_speed": "45", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/", + "gap_infill_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json b/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json index 90a7a28fb8..dcc20a87bd 100644 --- a/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json +++ b/resources/profiles/Prusa/process/0.30mm Detail @MINIIS.json @@ -21,7 +21,11 @@ "bottom_shell_thickness": "0.5", "bottom_shell_layers": "2", "travel_speed": "300", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MINIIS 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.30mm Detail @MK3.5.json b/resources/profiles/Prusa/process/0.30mm Detail @MK3.5.json index 7d4ed7d622..975851d38f 100644 --- a/resources/profiles/Prusa/process/0.30mm Detail @MK3.5.json +++ b/resources/profiles/Prusa/process/0.30mm Detail @MK3.5.json @@ -21,7 +21,11 @@ "bottom_shell_thickness": "0.5", "bottom_shell_layers": "2", "travel_speed": "300", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MK3.5 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.30mm SPEED @CORE One HF 0.8.json b/resources/profiles/Prusa/process/0.30mm SPEED @CORE One HF 0.8.json index 8477a7c0f9..d4be25be9a 100644 --- a/resources/profiles/Prusa/process/0.30mm SPEED @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/process/0.30mm SPEED @CORE One HF 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.30mm SPEED @MK4S HF0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", - "top_surface_speed": "2000", + "overhang_3_4_speed": "45", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.30mm STRUCTURAL @CORE One HF 0.8.json b/resources/profiles/Prusa/process/0.30mm STRUCTURAL @CORE One HF 0.8.json index d8cb0916af..7426aa3a21 100644 --- a/resources/profiles/Prusa/process/0.30mm STRUCTURAL @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/process/0.30mm STRUCTURAL @CORE One HF 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.30mm STRUCTURAL @MK4S HF0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "40", - "top_surface_speed": "2000", + "overhang_3_4_speed": "40", + "top_surface_acceleration": "2000", "support_speed": "100", "support_interface_speed": "55%", "travel_speed": "350", @@ -18,6 +18,5 @@ "sparse_infill_acceleration": "6000", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "2500", - "outer_wall_acceleration": "1500", - "top_surface_acceleration": "2000" + "outer_wall_acceleration": "1500" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm High Flow @MINIIS.json b/resources/profiles/Prusa/process/0.32mm High Flow @MINIIS.json index a1fbbc989f..7602017ccd 100644 --- a/resources/profiles/Prusa/process/0.32mm High Flow @MINIIS.json +++ b/resources/profiles/Prusa/process/0.32mm High Flow @MINIIS.json @@ -37,7 +37,11 @@ "outer_wall_acceleration": "4000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.32mm High Flow @MK3.5.json b/resources/profiles/Prusa/process/0.32mm High Flow @MK3.5.json index 43a0733ac4..b295a0b1b3 100644 --- a/resources/profiles/Prusa/process/0.32mm High Flow @MK3.5.json +++ b/resources/profiles/Prusa/process/0.32mm High Flow @MK3.5.json @@ -39,7 +39,11 @@ "outer_wall_acceleration": "4000", "bridge_acceleration": "1500", "internal_solid_infill_acceleration": "3000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One 0.6.json b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One 0.6.json index 549b62c466..8b4b7511b1 100644 --- a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One 0.6.json @@ -4,8 +4,8 @@ "inherits": "0.32mm SPEED @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", - "overhang_3_4_speed": "70%", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "70%", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.5.json b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.5.json index 1471abb700..55594a5dd2 100644 --- a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.32mm SPEED @MK4S HF0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "50", + "overhang_3_4_speed": "50", "support_interface_speed": "50%", "travel_speed": "350", "travel_acceleration": "7000", diff --git a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.6.json index e9bde33023..533da07e95 100644 --- a/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.32mm SPEED @CORE One HF 0.6.json @@ -4,9 +4,9 @@ "inherits": "0.32mm SPEED @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", - "overhang_3_4_speed": "70%", - "top_surface_speed": "2000", + "overhang_3_4_speed": "35", + "overhang_4_4_speed": "70%", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -17,6 +17,5 @@ "sparse_infill_acceleration": "7000", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "6000", - "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "outer_wall_acceleration": "3000" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One 0.6.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One 0.6.json index e52aa90a5f..a652b7097c 100644 --- a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One 0.6.json +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One 0.6.json @@ -4,7 +4,7 @@ "inherits": "0.32mm STRUCTURAL @MK4S 0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "30", + "overhang_3_4_speed": "30", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.5.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.5.json index a1f851d518..7fb4500b02 100644 --- a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.5.json +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.5.json @@ -4,7 +4,7 @@ "inherits": "0.32mm STRUCTURAL @MK4S HF0.5", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", + "overhang_3_4_speed": "45", "support_speed": "120", "support_interface_speed": "50%", "travel_speed": "350", diff --git a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.6.json index 2a3f2ce950..887768ee8e 100644 --- a/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.32mm STRUCTURAL @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "0.32mm STRUCTURAL @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", + "overhang_3_4_speed": "35", "support_speed": "110", "support_interface_speed": "50%", "travel_speed": "350", diff --git a/resources/profiles/Prusa/process/0.32mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.32mm Standard @MINIIS.json index 411a870db7..c1edeeb9eb 100644 --- a/resources/profiles/Prusa/process/0.32mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.32mm Standard @MINIIS.json @@ -30,7 +30,11 @@ "top_surface_speed": "55", "gap_infill_speed": "45", "travel_speed": "300", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.32mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.32mm Standard @MK3.5.json index 1f4001c0fb..5674aed58e 100644 --- a/resources/profiles/Prusa/process/0.32mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.32mm Standard @MK3.5.json @@ -30,7 +30,11 @@ "top_surface_speed": "55", "gap_infill_speed": "45", "travel_speed": "300", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json index bb7145adc8..edc3044976 100644 --- a/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.35mm Standard @MINIIS.json @@ -30,7 +30,11 @@ "top_surface_speed": "55", "gap_infill_speed": "45", "travel_speed": "300", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MINIIS 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.35mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.35mm Standard @MK3.5.json index 9ff6c800c2..82e2034788 100644 --- a/resources/profiles/Prusa/process/0.35mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.35mm Standard @MK3.5.json @@ -30,7 +30,11 @@ "top_surface_speed": "55", "gap_infill_speed": "45", "travel_speed": "300", - "support_top_z_distance": "0.25", + "support_base_pattern_spacing": "2", + "support_top_z_distance": "0.22", + "support_bottom_z_distance": "0.22", + "support_bottom_interface_spacing": "0.22", + "support_interface_spacing": "0.25", "compatible_printers": [ "Prusa MK3.5 0.6 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.40mm High Flow @MINIIS.json b/resources/profiles/Prusa/process/0.40mm High Flow @MINIIS.json index 593fda4beb..ea55022d19 100644 --- a/resources/profiles/Prusa/process/0.40mm High Flow @MINIIS.json +++ b/resources/profiles/Prusa/process/0.40mm High Flow @MINIIS.json @@ -41,7 +41,11 @@ "inner_wall_acceleration": "3000", "outer_wall_acceleration": "2500", "bridge_acceleration": "1000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MINIIS 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.40mm High Flow @MK3.5.json b/resources/profiles/Prusa/process/0.40mm High Flow @MK3.5.json index 056c8cb2be..79fda27a93 100644 --- a/resources/profiles/Prusa/process/0.40mm High Flow @MK3.5.json +++ b/resources/profiles/Prusa/process/0.40mm High Flow @MK3.5.json @@ -41,7 +41,11 @@ "inner_wall_acceleration": "3000", "outer_wall_acceleration": "2500", "bridge_acceleration": "1000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MK3.5 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.40mm QUALITY @CORE One 0.8.json b/resources/profiles/Prusa/process/0.40mm QUALITY @CORE One 0.8.json index 4567cd1dd7..a92c5eb3dd 100644 --- a/resources/profiles/Prusa/process/0.40mm QUALITY @CORE One 0.8.json +++ b/resources/profiles/Prusa/process/0.40mm QUALITY @CORE One 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.40mm QUALITY @MK4S 0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", - "top_surface_speed": "2000", + "overhang_3_4_speed": "35", + "top_surface_acceleration": "2000", "inner_wall_acceleration": "2500", "internal_solid_infill_acceleration": "5000", "sparse_infill_acceleration": "7000", diff --git a/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.6.json index e0b870c9ad..bb913bcabd 100644 --- a/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.6.json @@ -4,9 +4,9 @@ "inherits": "0.40mm SPEED @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", - "overhang_3_4_speed": "70%", - "top_surface_speed": "2000", + "overhang_3_4_speed": "35", + "overhang_4_4_speed": "70%", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -17,6 +17,5 @@ "sparse_infill_acceleration": "7000", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.6 and printer_notes=~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "6000", - "outer_wall_acceleration": "3000", - "top_surface_acceleration": "2000" + "outer_wall_acceleration": "3000" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.8.json b/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.8.json index 142556619a..7e6f2c156c 100644 --- a/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/process/0.40mm SPEED @CORE One HF 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.40mm SPEED @MK4S HF0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", - "top_surface_speed": "2000", + "overhang_3_4_speed": "45", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -14,5 +14,7 @@ "initial_layer_speed": "45", "internal_solid_infill_acceleration": "5000", "sparse_infill_acceleration": "7000", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", + "small_perimeter_speed": "85", + "outer_wall_speed": "85" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.6.json b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.6.json index adfba858f2..fe8697d887 100644 --- a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.6.json +++ b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.6.json @@ -4,7 +4,7 @@ "inherits": "0.40mm STRUCTURAL @MK4S HF0.6", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "35", + "overhang_3_4_speed": "35", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.8.json b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.8.json index e651c26ce3..6fbe39f6ba 100644 --- a/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/process/0.40mm STRUCTURAL @CORE One HF 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.40mm STRUCTURAL @MK4S HF0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "40", - "top_surface_speed": "2000", + "overhang_3_4_speed": "40", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", @@ -16,6 +16,5 @@ "sparse_infill_acceleration": "6000", "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes=~/.*HF_NOZZLE.*/", "inner_wall_acceleration": "2500", - "outer_wall_acceleration": "1500", - "top_surface_acceleration": "2000" + "outer_wall_acceleration": "1500" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json b/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json index c040568d16..a29bbbdbbe 100644 --- a/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json +++ b/resources/profiles/Prusa/process/0.40mm Standard @MINIIS.json @@ -40,7 +40,11 @@ "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", "bridge_acceleration": "1000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MINIIS 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.40mm Standard @MK3.5.json b/resources/profiles/Prusa/process/0.40mm Standard @MK3.5.json index 31fddc238b..41659260f1 100644 --- a/resources/profiles/Prusa/process/0.40mm Standard @MK3.5.json +++ b/resources/profiles/Prusa/process/0.40mm Standard @MK3.5.json @@ -41,7 +41,11 @@ "inner_wall_acceleration": "2000", "outer_wall_acceleration": "1500", "bridge_acceleration": "1000", + "support_base_pattern_spacing": "2", "support_top_z_distance": "0.25", + "support_bottom_z_distance": "0.25", + "support_bottom_interface_spacing": "0.25", + "support_interface_spacing": "0.35", "compatible_printers": [ "Prusa MK3.5 0.8 nozzle" ] diff --git a/resources/profiles/Prusa/process/0.55mm DRAFT @CORE One 0.8.json b/resources/profiles/Prusa/process/0.55mm DRAFT @CORE One 0.8.json index 6037cbdbda..5d350f3738 100644 --- a/resources/profiles/Prusa/process/0.55mm DRAFT @CORE One 0.8.json +++ b/resources/profiles/Prusa/process/0.55mm DRAFT @CORE One 0.8.json @@ -4,7 +4,7 @@ "inherits": "0.55mm DRAFT @MK4S 0.8", "from": "system", "instantiation": "true", - "top_surface_speed": "2000", + "top_surface_acceleration": "2000", "inner_wall_acceleration": "2500", "internal_solid_infill_acceleration": "5000", "sparse_infill_acceleration": "7000", @@ -14,5 +14,6 @@ "support_interface_top_layers": "3", "initial_layer_infill_speed": "55", "initial_layer_speed": "45", - "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/" + "compatible_printers_condition": "printer_notes=~/.*PRINTER_MODEL_COREONE.*/ and nozzle_diameter[0]==0.8 and printer_notes!~/.*HF_NOZZLE.*/", + "inner_wall_speed": "45" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/0.55mm SPEED @CORE One HF 0.8.json b/resources/profiles/Prusa/process/0.55mm SPEED @CORE One HF 0.8.json index 11b159f114..f9270671a2 100644 --- a/resources/profiles/Prusa/process/0.55mm SPEED @CORE One HF 0.8.json +++ b/resources/profiles/Prusa/process/0.55mm SPEED @CORE One HF 0.8.json @@ -4,8 +4,8 @@ "inherits": "0.55mm SPEED @MK4S HF0.8", "from": "system", "instantiation": "true", - "overhang_2_4_speed": "45", - "top_surface_speed": "2000", + "overhang_3_4_speed": "45", + "top_surface_acceleration": "2000", "travel_speed": "350", "travel_acceleration": "7000", "default_acceleration": "3000", diff --git a/resources/profiles/Prusa/process/process_common_MK3.5.json b/resources/profiles/Prusa/process/process_common_MK3.5.json index a5471d2bf6..4873772bf7 100644 --- a/resources/profiles/Prusa/process/process_common_MK3.5.json +++ b/resources/profiles/Prusa/process/process_common_MK3.5.json @@ -55,10 +55,13 @@ "raft_contact_distance": "0.15", "raft_expansion": "1.5", "raft_first_layer_density": "90%", - "raft_first_layer_expansion": "3.5", "support_threshold_angle": "40", "support_interface_bottom_layers": "0", "support_base_pattern": "rectilinear", "support_interface_top_layers": "3", - "support_top_z_distance": "0.17" + "raft_first_layer_expansion": "3", + "support_base_pattern_spacing": "2", + "support_bottom_interface_spacing": "0.2", + "support_interface_spacing": "0.2", + "support_top_z_distance": "0.2" } \ No newline at end of file diff --git a/resources/profiles/Prusa/process/process_common_miniis.json b/resources/profiles/Prusa/process/process_common_miniis.json index 443fae9dc3..533d660224 100644 --- a/resources/profiles/Prusa/process/process_common_miniis.json +++ b/resources/profiles/Prusa/process/process_common_miniis.json @@ -55,10 +55,13 @@ "raft_contact_distance": "0.15", "raft_expansion": "1.5", "raft_first_layer_density": "90%", - "raft_first_layer_expansion": "3.5", "support_threshold_angle": "40", "support_interface_bottom_layers": "0", "support_base_pattern": "rectilinear", "support_interface_top_layers": "3", - "support_top_z_distance": "0.17" + "raft_first_layer_expansion": "3", + "support_base_pattern_spacing": "2", + "support_bottom_interface_spacing": "0.2", + "support_interface_spacing": "0.2", + "support_top_z_distance": "0.2" } \ No newline at end of file diff --git a/scripts/run_unit_tests.sh b/scripts/run_unit_tests.sh index 081467b300..292c6c9d3f 100755 --- a/scripts/run_unit_tests.sh +++ b/scripts/run_unit_tests.sh @@ -9,4 +9,4 @@ ROOT_DIR="$(dirname "$0")/.." cd "${ROOT_DIR}" || exit 1 -ctest --test-dir build/tests --output-junit "$(pwd)/ctest_results.xml" --output-on-failure -j +ctest --test-dir build/tests -L "Http|PlaceholderParser" --output-junit "$(pwd)/ctest_results.xml" --output-on-failure -j diff --git a/src/libslic3r/Clipper2Utils.cpp b/src/libslic3r/Clipper2Utils.cpp index 9f1f678a9c..12fd867500 100644 --- a/src/libslic3r/Clipper2Utils.cpp +++ b/src/libslic3r/Clipper2Utils.cpp @@ -35,6 +35,11 @@ Clipper2Lib::Paths64 Slic3rPoints_to_Paths64(const Container& in) return out; } +Clipper2Lib::Paths64 Slic3rPolylines_to_Paths64(const Polylines& in) +{ + return Slic3rPoints_to_Paths64(in); +} + Points Path64ToPoints(const Clipper2Lib::Path64& path64) { Points points; diff --git a/src/libslic3r/Clipper2Utils.hpp b/src/libslic3r/Clipper2Utils.hpp index c5485ad1bd..54b48d6bd7 100644 --- a/src/libslic3r/Clipper2Utils.hpp +++ b/src/libslic3r/Clipper2Utils.hpp @@ -4,9 +4,12 @@ #include "ExPolygon.hpp" #include "Polygon.hpp" #include "Polyline.hpp" +#include "clipper2/clipper.h" namespace Slic3r { +Clipper2Lib::Paths64 Slic3rPolylines_to_Paths64(const Slic3r::Polylines& in); +Slic3r::Polylines Paths64_to_polylines(const Clipper2Lib::Paths64& in); Slic3r::Polylines intersection_pl_2(const Slic3r::Polylines& subject, const Slic3r::Polygons& clip); Slic3r::Polylines diff_pl_2(const Slic3r::Polylines& subject, const Slic3r::Polygons& clip); ExPolygons union_ex_2(const Polygons &expolygons); diff --git a/src/libslic3r/Fill/Fill3DHoneycomb.cpp b/src/libslic3r/Fill/Fill3DHoneycomb.cpp index 34a1ff1b50..de4aaeacd3 100644 --- a/src/libslic3r/Fill/Fill3DHoneycomb.cpp +++ b/src/libslic3r/Fill/Fill3DHoneycomb.cpp @@ -200,6 +200,10 @@ void Fill3DHoneycomb::_fill_surface_single( if (std::abs(infill_angle) >= EPSILON) expolygon.rotate(-infill_angle); BoundingBox bb = expolygon.contour.bounding_box(); + // Expand the bounding box to avoid artifacts at the edges + coord_t expand = 5 * (scale_(this->spacing)); + bb.offset(expand); + // Note: with equally-scaled X/Y/Z, the pattern will create a vertically-stretched // truncated octahedron; so Z is pre-adjusted first by scaling by sqrt(2) coordf_t zScale = sqrt(2); diff --git a/src/libslic3r/Fill/FillAdaptive.cpp b/src/libslic3r/Fill/FillAdaptive.cpp index ed3bfcf0a0..344bb529f0 100644 --- a/src/libslic3r/Fill/FillAdaptive.cpp +++ b/src/libslic3r/Fill/FillAdaptive.cpp @@ -1371,42 +1371,47 @@ void Filler::_fill_surface_single( all_polylines.reserve(lines.size()); std::transform(lines.begin(), lines.end(), std::back_inserter(all_polylines), [](const Line& l) { return Polyline{ l.a, l.b }; }); - // Apply multiline offset if needed - multiline_fill(all_polylines, params, spacing); + // Apply multiline offset if needed + multiline_fill(all_polylines, params, spacing); // Crop all polylines all_polylines = intersection_pl(std::move(all_polylines), expolygon); #endif } - // After intersection_pl some polylines with only one line are split into more lines - for (Polyline &polyline : all_polylines) { - //FIXME assert that all the points are collinear and in between the start and end point. - if (polyline.points.size() > 2) - polyline.points.erase(polyline.points.begin() + 1, polyline.points.end() - 1); - } -// assert(has_no_collinear_lines(all_polylines)); + if (params.multiline == 1) { + // After intersection_pl some polylines with only one line are split into more lines + for (Polyline& polyline : all_polylines) { + // FIXME assert that all the points are collinear and in between the start and end point. + if (polyline.points.size() > 2) + polyline.points.erase(polyline.points.begin() + 1, polyline.points.end() - 1); + } + // assert(has_no_collinear_lines(all_polylines)); #ifdef ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT - { - static int iRun = 0; - export_infill_lines_to_svg(expolygon, all_polylines, debug_out_path("FillAdaptive-initial-%d.svg", iRun++)); - } + { + static int iRun = 0; + export_infill_lines_to_svg(expolygon, all_polylines, debug_out_path("FillAdaptive-initial-%d.svg", iRun++)); + } #endif /* ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT */ - const auto hook_length = coordf_t(std::min(std::numeric_limits::max(), scale_(params.anchor_length))); - const auto hook_length_max = coordf_t(std::min(std::numeric_limits::max(), scale_(params.anchor_length_max))); + const auto hook_length = coordf_t(std::min(std::numeric_limits::max(), scale_(params.anchor_length))); + const auto hook_length_max = coordf_t(std::min(std::numeric_limits::max(), scale_(params.anchor_length_max))); Polylines all_polylines_with_hooks = all_polylines.size() > 1 ? connect_lines_using_hooks(std::move(all_polylines), expolygon, this->spacing, hook_length, hook_length_max) : std::move(all_polylines); #ifdef ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT - { - static int iRun = 0; - export_infill_lines_to_svg(expolygon, all_polylines_with_hooks, debug_out_path("FillAdaptive-hooks-%d.svg", iRun++)); - } + { + static int iRun = 0; + export_infill_lines_to_svg(expolygon, all_polylines_with_hooks, debug_out_path("FillAdaptive-hooks-%d.svg", iRun++)); + } #endif /* ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT */ - chain_or_connect_infill(std::move(all_polylines_with_hooks), expolygon, polylines_out, this->spacing, params); + chain_or_connect_infill(std::move(all_polylines_with_hooks), expolygon, polylines_out, this->spacing, params); + } else { + // if multiline is > 1 infill is ready to connect + chain_or_connect_infill(std::move(all_polylines), expolygon, polylines_out, this->spacing, params); + } #ifdef ADAPTIVE_CUBIC_INFILL_DEBUG_OUTPUT { @@ -1443,6 +1448,17 @@ static std::vector make_cubes_properties(double max_cube_edge_le if (edge_length > max_cube_edge_length) break; } + // Orca: Ensure at least 2 levels so build_octree() will insert triangles. + // Fixes scenario where adaptive fill is disconnected from walls on low densities + if (cubes_properties.size() == 1) { + CubeProperties p = cubes_properties.back(); + p.edge_length *= 2.0; + p.height = p.edge_length * sqrt(3); + p.diagonal_length = p.edge_length * sqrt(2); + p.line_z_distance = p.edge_length / sqrt(3); + p.line_xy_distance = p.edge_length / sqrt(6); + cubes_properties.push_back(p); + } return cubes_properties; } diff --git a/src/libslic3r/Fill/FillBase.cpp b/src/libslic3r/Fill/FillBase.cpp index 3a9412119f..c585329079 100644 --- a/src/libslic3r/Fill/FillBase.cpp +++ b/src/libslic3r/Fill/FillBase.cpp @@ -3,6 +3,7 @@ #include #include "../ClipperUtils.hpp" +#include "../Clipper2Utils.hpp" #include "../EdgeGrid.hpp" #include "../Geometry.hpp" #include "../Geometry/Circle.hpp" @@ -2699,60 +2700,77 @@ void Fill::connect_base_support(Polylines &&infill_ordered, const Polygons &boun connect_base_support(std::move(infill_ordered), polygons_src, bbox, polylines_out, spacing, params); } -//Fill Multiline +// Fill Multiline -Clipper2 version void multiline_fill(Polylines& polylines, const FillParams& params, float spacing) { - if (params.multiline > 1) { - const int n_lines = params.multiline; - const int n_polylines = static_cast(polylines.size()); - Polylines all_polylines; - all_polylines.reserve(n_lines * n_polylines); + if (params.multiline <= 1) + return; - const float center = (n_lines - 1) / 2.0f; + const int n_lines = params.multiline; + const int n_polylines = static_cast(polylines.size()); + Polylines all_polylines; + all_polylines.reserve(n_lines * n_polylines); - for (int line = 0; line < n_lines; ++line) { - float offset = scale_((static_cast(line) - center) * spacing); + // Remove invalid polylines + polylines.erase(std::remove_if(polylines.begin(), polylines.end(), + [](const Polyline& p) { return p.size() < 2; }), + polylines.end()); - for (const Polyline& pl : polylines) { - const size_t n = pl.points.size(); - if (n < 2) { - all_polylines.emplace_back(pl); - continue; - } + if (polylines.empty()) + return; + // Convert source polylines to Clipper2 paths + Clipper2Lib::Paths64 subject_paths = Slic3rPolylines_to_Paths64(polylines); - Points new_points; - new_points.reserve(n); - for (size_t i = 0; i < n; ++i) { - Vec2f tangent; - // For the first and last point, if the polyline is a - // closed loop, get the tangent from the points on either - // side of the join, otherwise just use the first or last - // line. - if (i == 0) { - if (pl.points[0] == pl.points[n-1]) { - tangent = (pl.points[1] - pl.points[n-2]).template cast().normalized(); - } else { - tangent = (pl.points[1] - pl.points[0]).template cast().normalized(); - } - } else if (i == n - 1) { - if (pl.points[0] == pl.points[n-1]) { - tangent = (pl.points[1] - pl.points[n-2]).template cast().normalized(); - } else { - tangent = (pl.points[n-1] - pl.points[n-2]).template cast().normalized(); - } - } else - tangent = (pl.points[i+1] - pl.points[i-1]).template cast().normalized(); - Vec2f normal(-tangent.y(), tangent.x()); + const double miter_limit = 2.0; + const int rings = n_lines / 2; - Point p = pl.points[i] + (normal * offset).template cast(); - new_points.push_back(p); - } + // Compute offsets (in units of spacing) + std::vector offsets; + offsets.reserve(n_lines); - all_polylines.emplace_back(std::move(new_points)); - } - } - polylines = std::move(all_polylines); + if (n_lines % 2 != 0) { + // Odd: center line at offset = 0 + offsets.push_back(0.0); + + for (int i = 1; i <= rings; ++i) + offsets.push_back(i * spacing); + } else { + // Even: no center, start at 0.5 * spacing + double start = 0.5 * spacing; + for (int i = 0; i < rings; ++i) + offsets.push_back(start + i * spacing); } + + // Process each offset + Clipper2Lib::ClipperOffset offsetter(miter_limit); + offsetter.AddPaths(subject_paths, Clipper2Lib::JoinType::Round, Clipper2Lib::EndType::Round); + + for (double t : offsets) { + if (t == 0.0) { + // Center line (only applies when n_lines is odd) + all_polylines.insert(all_polylines.end(), polylines.begin(), polylines.end()); + continue; + } + + // ClipperOffset with current offset distance (union is not needed here) + Clipper2Lib::Paths64 offset_paths; + offsetter.Execute(scale_(t), offset_paths); + if (offset_paths.empty()) + continue; + + // Convert back to polylines + Polylines new_polylines = Paths64_to_polylines(offset_paths); + + for (Polyline& pl : new_polylines) { + if (pl.points.size() < 3) + continue; + if (pl.points.front() != pl.points.back()) + pl.points.push_back(pl.points.front()); + all_polylines.emplace_back(std::move(pl)); + } + } + + polylines = std::move(all_polylines); } } // namespace Slic3r diff --git a/src/libslic3r/Fill/FillConcentric.cpp b/src/libslic3r/Fill/FillConcentric.cpp index 93a54a0739..4f2a0b8970 100644 --- a/src/libslic3r/Fill/FillConcentric.cpp +++ b/src/libslic3r/Fill/FillConcentric.cpp @@ -19,7 +19,7 @@ void FillConcentric::_fill_surface_single( // no rotation is supported for this infill pattern BoundingBox bounding_box = expolygon.contour.bounding_box(); - coord_t min_spacing = scale_(this->spacing); + coord_t min_spacing = scale_(this->spacing) * params.multiline; coord_t distance = coord_t(min_spacing / params.density); if (params.density > 0.9999f && !params.dont_adjust) { @@ -27,8 +27,12 @@ void FillConcentric::_fill_surface_single( this->spacing = unscale(distance); } - Polygons loops = to_polygons(expolygon); - ExPolygons last { std::move(expolygon) }; + // Contract surface polygon by half line width to avoid excesive overlap with perimeter + ExPolygons contracted = offset_ex(expolygon, -float(scale_(0.5 * (params.multiline - 1) * this->spacing ))); + + Polygons loops = to_polygons(contracted); + + ExPolygons last { std::move(contracted) }; while (! last.empty()) { last = offset2_ex(last, -(distance + min_spacing/2), +min_spacing/2); append(loops, to_polygons(last)); @@ -46,6 +50,9 @@ void FillConcentric::_fill_surface_single( last_pos = polylines_out.back().last_point(); } + // Apply multiline offset if needed + multiline_fill(polylines_out, params, spacing); + // clip the paths to prevent the extruder from getting exactly on the first point of the loop // Keep valid paths only. size_t j = iPathFirst; diff --git a/src/libslic3r/Fill/FillHoneycomb.cpp b/src/libslic3r/Fill/FillHoneycomb.cpp index e750425a82..a595cdb664 100644 --- a/src/libslic3r/Fill/FillHoneycomb.cpp +++ b/src/libslic3r/Fill/FillHoneycomb.cpp @@ -74,7 +74,7 @@ void FillHoneycomb::_fill_surface_single( } } // Apply multiline offset if needed - multiline_fill(all_polylines, params, 1.1 * spacing); + multiline_fill(all_polylines, params, spacing); all_polylines = intersection_pl(std::move(all_polylines), expolygon); chain_or_connect_infill(std::move(all_polylines), expolygon, polylines_out, this->spacing, params); diff --git a/src/libslic3r/Fill/FillPlanePath.cpp b/src/libslic3r/Fill/FillPlanePath.cpp index 6044ba43a2..b4681d05f9 100644 --- a/src/libslic3r/Fill/FillPlanePath.cpp +++ b/src/libslic3r/Fill/FillPlanePath.cpp @@ -81,6 +81,9 @@ void FillPlanePath::_fill_surface_single( BoundingBox snug_bounding_box = get_extents(expolygon).inflated(SCALED_EPSILON); + // Expand the bounding box to avoid artifacts at the edges + snug_bounding_box.offset(scale_(this->spacing)*params.multiline); + // Rotated bounding box of the area to fill in with the pattern. BoundingBox bounding_box = align ? // Sparse infill needs to be aligned across layers. Align infill across layers using the object's bounding box. @@ -97,7 +100,7 @@ void FillPlanePath::_fill_surface_single( Polyline polyline; { - auto distance_between_lines = scaled(this->spacing) / params.density; + auto distance_between_lines = scaled(this->spacing) * params.multiline / params.density; auto min_x = coord_t(ceil(coordf_t(bounding_box.min.x()) / distance_between_lines)); auto min_y = coord_t(ceil(coordf_t(bounding_box.min.y()) / distance_between_lines)); auto max_x = coord_t(ceil(coordf_t(bounding_box.max.x()) / distance_between_lines)); @@ -117,8 +120,13 @@ void FillPlanePath::_fill_surface_single( } } + Polylines polylines = {polyline}; + + // Apply multiline offset if needed + multiline_fill(polylines, params, spacing); + if (polyline.size() >= 2) { - Polylines polylines = intersection_pl(polyline, expolygon); + polylines = intersection_pl(std::move(polylines), expolygon); if (!polylines.empty()) { Polylines chained; if (params.dont_connect() || params.density > 0.5) { diff --git a/src/libslic3r/Fill/FillRectilinear.cpp b/src/libslic3r/Fill/FillRectilinear.cpp index cfb9c32300..775b3e8b42 100644 --- a/src/libslic3r/Fill/FillRectilinear.cpp +++ b/src/libslic3r/Fill/FillRectilinear.cpp @@ -3000,7 +3000,7 @@ bool FillRectilinear::fill_surface_by_multilines(const Surface *surface, FillPar params.density /= double(sweep_params.size()); assert(params.density > 0.0001f && params.density <= 1.f); - ExPolygonWithOffset poly_with_offset_base(surface->expolygon, 0, float(scale_(this->overlap - 0.5 * this->spacing))); + ExPolygonWithOffset poly_with_offset_base(surface->expolygon, 0, float(scale_(this->overlap + 0.5 * params.multiline * this->spacing)));//increase offset to crop infill lines when using multiline infill if (poly_with_offset_base.n_contours == 0) // Not a single infill line fits. return true; @@ -3012,19 +3012,24 @@ bool FillRectilinear::fill_surface_by_multilines(const Surface *surface, FillPar for (const SweepParams &sweep : sweep_params) { // Rotate polygons so that we can work with vertical lines here float angle = rotate_vector.first + sweep.angle_base; - //Fill Multiline - for (int i = 0; i < params.multiline; ++i) { - coord_t group_offset = i * line_spacing; - coord_t internal_offset = (i - (params.multiline - 1) / 2.0f) * line_width; - coord_t total_offset = group_offset + internal_offset; - coord_t pattern_shift = scale_(sweep.pattern_shift + unscale_(total_offset)); - make_fill_lines(ExPolygonWithOffset(poly_with_offset_base, -angle), rotate_vector.second.rotated(-angle), angle, - line_width + coord_t(SCALED_EPSILON), line_spacing, pattern_shift, fill_lines); - } + make_fill_lines(ExPolygonWithOffset(poly_with_offset_base, -angle), rotate_vector.second.rotated(-angle), angle, + line_width + coord_t(SCALED_EPSILON), line_spacing, coord_t(scale_(sweep.pattern_shift)), fill_lines); } + + // Apply multiline offset if needed + multiline_fill(fill_lines, params, spacing); + + // Contract surface polygon by half line width to avoid excesive overlap with perimeter + ExPolygons contracted = offset_ex(surface->expolygon, -float(scale_(0.5 * this->spacing))); + + // if contraction results in empty polygon, use original surface + const ExPolygon &intersection_surface = contracted.empty() ? surface->expolygon : contracted.front(); -if ((params.pattern == ipLateralLattice || params.pattern == ipLateralHoneycomb ) && params.multiline >1 ) + // Intersect polylines with perimeter + fill_lines = intersection_pl(std::move(fill_lines), intersection_surface); + + if ((params.pattern == ipLateralLattice || params.pattern == ipLateralHoneycomb ) && params.multiline >1 ) remove_overlapped(fill_lines, line_width); if (!fill_lines.empty()) { @@ -3033,7 +3038,260 @@ if ((params.pattern == ipLateralLattice || params.pattern == ipLateralHoneycomb fill_lines = chain_polylines(std::move(fill_lines)); append(polylines_out, std::move(fill_lines)); } else - connect_infill(std::move(fill_lines), poly_with_offset_base.polygons_outer, get_extents(surface->expolygon.contour), polylines_out, this->spacing, params); + connect_infill(std::move(fill_lines), intersection_surface, polylines_out, this->spacing, params); + } + + return true; +} + +bool FillRectilinear::fill_surface_trapezoidal( + const Surface* surface, + FillParams params, + const std::initializer_list& sweep_params, + Polylines& polylines_out, + int Pattern_type) // 0=grid, 1=triangular +{ + assert(params.multiline > 1); + + Polylines polylines; + + // Common parameters + const coord_t d1 = coord_t(scale_(this->spacing)) * params.multiline; // Infill total wall thickness + + // Pattern-specific parameters + coord_t period; + double base_angle; + std::pair rotate_vector = this->_infill_direction(surface); + + if (Pattern_type == 0) { + // Grid pattern parameters + period = coord_t((2.0 * d1 / params.density) * std::sqrt(2.0)); + base_angle = rotate_vector.first + M_PI_4; // 45 + } else { + // Triangular pattern parameters + period = coord_t(( 2.0 * d1 / params.density) * std::sqrt(3.0)); + base_angle = rotate_vector.first + M_PI_2; //90 + } + + // Obtain the expolygon and rotate to align with pattern base angle + ExPolygon expolygon = surface->expolygon; + if (std::abs(base_angle) >= EPSILON) { + expolygon.rotate(-base_angle, rotate_vector.second); + } + + // Use extended object bounding box for consistent pattern across layers + BoundingBox bb = this->extended_object_bounding_box(); + + switch (Pattern_type) { + case 0: // Grid / Trapezoidal + { + // Generate a non-crossing trapezoidal pattern to avoid overextrusion at intersections when `multiline > 1`. + // P1--P2 + // / \ + // P0/ \P3__P4 + // + // P1x-P2x=P3x-P4x=d1 + // P0y-P1y=P2y-P3y=d2 + + const coord_t d2 = coord_t(0.5 * period - d1); + + // Align bounding box to the grid + bb.merge(align_to_grid(bb.min, Point(period, period))); + const coord_t xmin = bb.min.x(); + const coord_t xmax = bb.max.x(); + const coord_t ymin = bb.min.y(); + const coord_t ymax = bb.max.y(); + + // Create the two base row patterns once + Polyline base_row_normal; + base_row_normal.points.reserve(((xmax - xmin) / period + 1) * 5); // 5 points per trapezoid + Polyline base_row_flipped; + base_row_flipped.points.reserve(((xmax - xmin) / period + 1) * 5); // 5 points per trapezoid + + // Build complete rows from xmin to xmax + for (coord_t x = xmin; x < xmax; x += period) { + // Normal row + base_row_normal.points.emplace_back(Point(x, d1 / 2)); // P0 + base_row_normal.points.emplace_back(Point(x + d1, d1 / 2)); // P1 + base_row_normal.points.emplace_back(Point(x + d1 + d2, d1 / 2 + d2)); // P2 + base_row_normal.points.emplace_back(Point(x + 2 * d1 + d2, d1 / 2 + d2)); // P3 + base_row_normal.points.emplace_back(Point(x + 2 * d1 + 2 * d2, d1 / 2)); // P4 + } + + // Flipped row (mirrored vertically) + base_row_flipped.points = base_row_normal.points; + for (auto& p : base_row_flipped.points) { + p.y() = period / 2 - p.y(); + } + + // Pre-allocate polylines + const size_t estimated_rows = ((ymax - ymin) / (period / 2) + 1); + polylines.reserve(estimated_rows); + + bool flip_vertical = false; + + // Now just copy and translate vertically + for (coord_t y = ymin; y < ymax; y += period / 2) { + Polyline pl_row = flip_vertical ? base_row_flipped : base_row_normal; + + // Translate all points vertically + for (Point& p : pl_row.points) { + p.y() += y; + } + + polylines.emplace_back(std::move(pl_row)); + flip_vertical = !flip_vertical; + } + + // transpose points for odd layers + if (layer_id % 2 == 1) { + for (Polyline& pl : polylines) { + for (Point& p : pl.points) { + std::swap(p.x(), p.y()); + p.x() += d1 / 2; + p.y() -= d1 / 2; + } + } + } + break; + } + + case 1: // Triangular + { + // Generate a non-crossing trapezoidal pattern with a base line below. + // P1-P2 + // / \ + // P0/ \P3_P4 + // ---------------- + // P1x-P2x=P3x-P4x=d2 + // P0y-P1y=P2y-P3y=h-2d1 + // + + // Triangular pattern density adjustment: + const coord_t d2_tri = coord_t(2.0 / std::sqrt(3.0) * d1); + const coord_t h = coord_t(0.5 * std::sqrt(3.0) * period); // height of triangle + + // Align bounding box to the grid + bb.merge(align_to_grid(bb.center(), Point(period,h))); + const int layer_mod = layer_id % 3; + const double angle = layer_mod * 2.0 * M_PI / 3.0; + + const Point rotation_center = bb.center(); + const coord_t half_w = bb.size().x() / 2; + const coord_t half_h = bb.size().y() / 2; + + // Compute how many full periods fit in each direction + const coord_t num_periods_x = coord_t(std::ceil(half_w / double(period))); + coord_t num_periods_y =coord_t(std::ceil(half_h / double(h))); + // Ensure an even number of rows so the pattern stays centered + if ((num_periods_y % 2) != 0) + ++num_periods_y; + + // Compute aligned limits (symmetric around the origin) + const coord_t x_min_aligned = -num_periods_x * period; + const coord_t x_max_aligned = num_periods_x * period; + const coord_t y_min_aligned = -num_periods_y * h; + const coord_t y_max_aligned = num_periods_y * h; + + // Pre-allocate estimated number of polylines + const size_t estimated_rows = (y_max_aligned - y_min_aligned) / h + 2; + const size_t estimated_polylines = (estimated_rows + 1) * 2; // base line + trapezoid line per row + polylines.reserve(estimated_polylines); + + // Create the two base row templates once + Polyline base_line_template; + base_line_template.points.reserve(2); // 2 points for base line + Polyline trapezoid_row_normal; + trapezoid_row_normal.points.reserve(((x_max_aligned - x_min_aligned) / period + 1) * 5); // 5 points per trapezoid + Polyline trapezoid_row_shifted; + trapezoid_row_shifted.points.reserve(((x_max_aligned - x_min_aligned) / period + 1) * 5); // 5 points per trapezoid + // Build base line template (from x_min_aligned to x_max_aligned) + base_line_template.points.emplace_back(Point(x_min_aligned, 0)); + base_line_template.points.emplace_back(Point(x_max_aligned, 0)); + + // Build complete trapezoid rows once + // Normal row (no shift) + for (coord_t x = x_min_aligned; x < x_max_aligned; x += period) { + trapezoid_row_normal.points.emplace_back(Point(x + d2_tri / 2, d1)); // P0 + trapezoid_row_normal.points.emplace_back(Point(x + period / 2 - d2_tri / 2, h - d1)); // P1 + trapezoid_row_normal.points.emplace_back(Point(x + period / 2 + d2_tri / 2, h - d1)); // P2 + trapezoid_row_normal.points.emplace_back(Point(x + period - d2_tri / 2, d1)); // P3 + trapezoid_row_normal.points.emplace_back(Point(x + period, d1)); // P4 + } + + // Shifted row (mirrored vertically) + trapezoid_row_shifted.points = trapezoid_row_normal.points; + for (auto& p : trapezoid_row_shifted.points) + p.y() = h - p.y(); + + bool shift_row = false; + + // Generate pattern by copying and translating templates vertically + for (coord_t y = y_min_aligned; y < y_max_aligned; y += h) { + // Base line - copy and translate + Polyline base_line = base_line_template; + for (Point& p : base_line.points) { + p.y() += y; + } + polylines.emplace_back(std::move(base_line)); + + // Trapezoid line - copy and translate the appropriate template + Polyline trapezoid_line = shift_row ? trapezoid_row_shifted : trapezoid_row_normal; + for (Point& p : trapezoid_line.points) { + p.y() += y; + } + + if (!trapezoid_line.points.empty()) { + polylines.emplace_back(std::move(trapezoid_line)); + } + + shift_row = !shift_row; + } + + // Rotate around origin (0,0) + if (layer_mod) + for (auto& pl : polylines) + pl.rotate(angle, Point(0,0)); + + break; + } + + default: + // Handle unknown pattern type + break; + } + + // Apply multiline fill + multiline_fill(polylines, params, spacing); + + // Contract surface polygon by half line width to avoid excesive overlap with perimeter + ExPolygons contracted = offset_ex(expolygon, -float(scale_(0.5 * this->spacing))); + + // if contraction results in empty polygon, use original surface + const ExPolygon &intersection_surface = contracted.empty() ? expolygon : contracted.front(); + + // Intersect polylines with offset expolygon + polylines = intersection_pl(std::move(polylines), intersection_surface); + + // Remove very short segments that may cause connection issues + const double minlength = scale_(0.8 * this->spacing); + if (minlength > 0 && !polylines.empty()) { + polylines.erase(std::remove_if(polylines.begin(), polylines.end(), + [minlength](const Polyline& pl) { return pl.length() < minlength; }), + polylines.end()); + } + + // Connect infill lines using offset expolygon + int infill_start_idx = polylines_out.size(); + if (!polylines.empty()) { + Slic3r::Fill::chain_or_connect_infill(std::move(polylines), intersection_surface, polylines_out, this->spacing, params); + + // Rotate back the infill lines to original orientation + if (std::abs(base_angle) >= EPSILON) { + for (auto it = polylines_out.begin() + infill_start_idx; it != polylines_out.end(); ++it) { + it->rotate(base_angle, rotate_vector.second); + } + } } return true; @@ -3077,15 +3335,27 @@ Polylines FillMonotonicLine::fill_surface(const Surface* surface, const FillPara Polylines FillGrid::fill_surface(const Surface *surface, const FillParams ¶ms) { Polylines polylines_out; - if (! this->fill_surface_by_multilines( - surface, params, - { { 0.f, 0.f }, { float(M_PI / 2.), 0.f } }, - polylines_out)) - BOOST_LOG_TRIVIAL(error) << "FillGrid::fill_surface() failed to fill a region."; - if (this->layer_id % 2 == 1) - for (int i = 0; i < polylines_out.size(); i++) - std::reverse(polylines_out[i].begin(), polylines_out[i].end()); + if (params.multiline > 1) { + // Experimental trapezoidal grid + if (!this->fill_surface_trapezoidal( + surface, params, + { { 0.f, 0.f }, { float(M_PI / 2.), 0.f } }, + polylines_out,0)) + BOOST_LOG_TRIVIAL(error) << "FillGrid::fill_surface_trapezoidal() failed."; + + } else { + if (!this->fill_surface_by_multilines( + surface, params, + { { 0.f, 0.f }, { float(M_PI / 2.), 0.f } }, + polylines_out)) + BOOST_LOG_TRIVIAL(error) << "FillGrid::fill_surface() failed to fill a region."; + + + if (this->layer_id % 2 == 1) + for (int i = 0; i < polylines_out.size(); i++) + std::reverse(polylines_out[i].begin(), polylines_out[i].end()); + } return polylines_out; } @@ -3108,12 +3378,23 @@ Polylines FillLateralLattice::fill_surface(const Surface *surface, const FillPar Polylines FillTriangles::fill_surface(const Surface *surface, const FillParams ¶ms){ Polylines polylines_out; + if (params.multiline > 1) { + // Experimental trapezoidal grid + if (!this->fill_surface_trapezoidal( + surface, params, + { { 0.f, 0.f }, { float(M_PI / 2.), 0.f } }, + polylines_out,1)) + BOOST_LOG_TRIVIAL(error) << "FillGrid::fill_surface_trapezoidal() failed."; + + } else { if (! this->fill_surface_by_multilines( surface, params, { { 0.f, 0.f }, { float(M_PI / 3.), 0.f }, { float(2. * M_PI / 3.), 0. } }, polylines_out)) BOOST_LOG_TRIVIAL(error) << "FillTriangles::fill_surface() failed to fill a region."; + } return polylines_out; + } Polylines FillStars::fill_surface(const Surface *surface, const FillParams ¶ms) @@ -3144,8 +3425,8 @@ Polylines FillQuarterCubic::fill_surface(const Surface* surface, const FillParam using namespace boost::math::float_constants; Polylines polylines_out; - coord_t line_width = coord_t(scale_(this->spacing)); - coord_t period = coord_t(scale_(this->spacing) / params.density) * 4; + coord_t line_width = coord_t(scale_(this->spacing)) * params.multiline; + coord_t period = coord_t(scale_(this->spacing) *params.multiline / params.density) * 4; // First half tetrahedral fill double pattern_z_shift = 0.0; diff --git a/src/libslic3r/Fill/FillRectilinear.hpp b/src/libslic3r/Fill/FillRectilinear.hpp index 3e4f3cf92f..126cbe3a15 100644 --- a/src/libslic3r/Fill/FillRectilinear.hpp +++ b/src/libslic3r/Fill/FillRectilinear.hpp @@ -29,6 +29,7 @@ protected: float pattern_shift; }; bool fill_surface_by_multilines(const Surface *surface, FillParams params, const std::initializer_list &sweep_params, Polylines &polylines_out); + bool fill_surface_trapezoidal(const Surface *surface, FillParams params, const std::initializer_list &sweep_params, Polylines &polylines_out,int Pattern_type); // The extended bounding box of the whole object that covers any rotation of every layer. BoundingBox extended_object_bounding_box() const; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index e3ad309b02..707dadd9f9 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2727,8 +2727,8 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato auto probe_dist_x = std::max(1., m_config.bed_mesh_probe_distance.value.x()); auto probe_dist_y = std::max(1., m_config.bed_mesh_probe_distance.value.y()); - int probe_count_x = std::max(3, (int) std::ceil(mesh_bbox.size().x() / probe_dist_x)); - int probe_count_y = std::max(3, (int) std::ceil(mesh_bbox.size().y() / probe_dist_y)); + int probe_count_x = std::max(3, (int) std::ceil(mesh_bbox.size().x() / probe_dist_x) + 1); + int probe_count_y = std::max(3, (int) std::ceil(mesh_bbox.size().y() / probe_dist_y) + 1); auto bed_mesh_algo = "bicubic"; if (probe_count_x * probe_count_y <= 6) { // lagrange needs up to a total of 6 mesh points bed_mesh_algo = "lagrange"; @@ -6186,10 +6186,16 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description, ); } - // if still in avoidance mode and under “max”, clamp to “min” - if (m_resonance_avoidance - && speed <= m_config.max_resonance_avoidance_speed.value) { - speed = std::min(speed, m_config.min_resonance_avoidance_speed.value); + // if still in avoidance mode and under "max", adjust speed: + // - speeds in lower half of range: clamp down to "min" + // - speeds in upper half of range: boost up to "max" + if (m_resonance_avoidance && speed < m_config.max_resonance_avoidance_speed.value) { + if (speed < m_config.min_resonance_avoidance_speed.value + + ((m_config.max_resonance_avoidance_speed.value - m_config.min_resonance_avoidance_speed.value) / 2)) { + speed = std::min(speed, m_config.min_resonance_avoidance_speed.value); + } else { + speed = m_config.max_resonance_avoidance_speed.value; + } } // reset flag for next segment diff --git a/src/libslic3r/PlaceholderParser.cpp b/src/libslic3r/PlaceholderParser.cpp index 92e4210f3c..f03a5cee38 100644 --- a/src/libslic3r/PlaceholderParser.cpp +++ b/src/libslic3r/PlaceholderParser.cpp @@ -1045,8 +1045,8 @@ namespace client case coFloatOrPercent: { std::string opt_key(opt.it_range.begin(), opt.it_range.end()); - if (boost::ends_with(opt_key, "extrusion_width")) { - // Extrusion width supports defaults and a complex graph of dependencies. + if (boost::ends_with(opt_key, "line_width")) { + // Line width supports defaults and a complex graph of dependencies. output.set_d(Flow::extrusion_width(opt_key, *ctx, static_cast(ctx->current_extruder_id))); } else if (! static_cast(opt.opt)->percent) { // Not a percent, just return the value. @@ -1060,8 +1060,8 @@ namespace client const ConfigOption *opt_parent = opt_def->ratio_over.empty() ? nullptr : ctx->resolve_symbol(opt_def->ratio_over); if (opt_parent == nullptr) ctx->throw_exception("FloatOrPercent variable failed to resolve the \"ratio_over\" dependencies", opt.it_range); - if (boost::ends_with(opt_def->ratio_over, "extrusion_width")) { - // Extrusion width supports defaults and a complex graph of dependencies. + if (boost::ends_with(opt_def->ratio_over, "line_width")) { + // Line width supports defaults and a complex graph of dependencies. assert(opt_parent->type() == coFloatOrPercent); v *= Flow::extrusion_width(opt_def->ratio_over, static_cast(opt_parent), *ctx, static_cast(ctx->current_extruder_id)); break; @@ -2197,9 +2197,8 @@ namespace client initializer_list(_r1)[px::bind(&MyContext::vector_variable_new_from_initializer_list, _r1, _a, _b, _1)] // Process it before conditional_expression, as conditional_expression requires a vector reference to be augmented with an index. // Only process such variable references, which return a naked vector variable. - // Orca todo: following code cause strange build errors with MSVC C++17 - // | eps(px::bind(&MyContext::could_be_vector_variable_reference, _b)) >> - // variable_reference(_r1)[px::val(qi::_pass) = px::bind(&MyContext::vector_variable_new_from_copy, _r1, _a, _b, _1)] + | eps(px::bind(&MyContext::could_be_vector_variable_reference, _b)) >> + variable_reference(_r1)[qi::_pass = px::bind(&MyContext::vector_variable_new_from_copy, _r1, _a, _b, _1)] // Would NOT consume '(' conditional_expression ')' because such value was consumed with the expression above. | conditional_expression(_r1) [px::bind(&MyContext::scalar_variable_new_from_scalar_expression, _r1, _a, _b, _1)] diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index c123cf53d0..b3efae168f 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2751,6 +2751,8 @@ Preset *PresetBundle::get_similar_printer_preset(std::string printer_model, std: { if (printer_model.empty()) printer_model = printers.get_selected_preset().config.opt_string("printer_model"); + if (printer_model.empty()) // ORCA ensure a compatible model exist. fixes switches to blank preset if preset has no inherited value + return nullptr; auto printer_variant_old = printers.get_selected_preset().config.opt_string("printer_variant"); std::map printer_presets; for (auto &preset : printers.m_presets) { @@ -2761,7 +2763,8 @@ Preset *PresetBundle::get_similar_printer_preset(std::string printer_model, std: } if (printer_presets.empty()) return nullptr; - auto prefer_printer = printers.get_selected_preset().name; + auto prefer_printer = printers.get_selected_preset().alias; //.name ORCA use alias instead "name" for calling system presets. otherwise nozzle combo will not change printer presets if they custom named + if (!printer_variant.empty()) boost::replace_all(prefer_printer, printer_variant_old, printer_variant); else if (auto n = prefer_printer.find(printer_variant_old); n != std::string::npos) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 6287e77ceb..37fc895411 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2733,7 +2733,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Fill Multiline"); def->tooltip = L("Using multiple lines for the infill pattern, if supported by infill pattern."); def->min = 1; - def->max = 5; // Maximum number of lines for infill pattern + def->max = 10; // Maximum number of lines for infill pattern def->set_default_value(new ConfigOptionInt(1)); def = this->add("sparse_infill_pattern", coEnum); @@ -7646,6 +7646,9 @@ std::set filament_options_with_variant = { "filament_retraction_length", "filament_z_hop", "filament_z_hop_types", + "filament_retract_lift_above", + "filament_retract_lift_below", + "filament_retract_lift_enforce", "filament_retract_restart_extra", "filament_retraction_speed", "filament_deretraction_speed", @@ -7664,7 +7667,11 @@ std::set filament_options_with_variant = { "filament_flush_volumetric_speed", "filament_flush_temp", "volumetric_speed_coefficients", - "filament_adaptive_volumetric_speed" + "filament_adaptive_volumetric_speed", + "filament_ironing_flow", + "filament_ironing_spacing", + "filament_ironing_inset", + "filament_ironing_speed" }; // Parameters that are the same as the number of extruders diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 60828cedcf..6c5fa69534 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -604,8 +604,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co // Infill patterns that support multiline infill. InfillPattern pattern = config->opt_enum("sparse_infill_pattern"); - bool have_multiline_infill_pattern = pattern == ipGyroid || pattern == ipGrid || pattern == ipRectilinear || pattern == ipTpmsD || pattern == ipTpmsFK || pattern == ipCrossHatch || pattern == ipHoneycomb || pattern == ipLateralLattice || pattern == ipLateralHoneycomb || - pattern == ipCubic || pattern == ipStars || pattern == ipAlignedRectilinear || pattern == ipLightning || pattern == ip3DHoneycomb || pattern == ipAdaptiveCubic || pattern == ipSupportCubic; + bool have_multiline_infill_pattern = pattern == ipGyroid || pattern == ipGrid || pattern == ipRectilinear || pattern == ipTpmsD || pattern == ipTpmsFK || pattern == ipCrossHatch || pattern == ipHoneycomb || pattern == ipLateralLattice || pattern == ipLateralHoneycomb || pattern == ipConcentric || + pattern == ipCubic || pattern == ipStars || pattern == ipAlignedRectilinear || pattern == ipLightning || pattern == ip3DHoneycomb || pattern == ipAdaptiveCubic || pattern == ipSupportCubic|| pattern == ipTriangles || pattern == ipQuarterCubic|| pattern == ipArchimedeanChords || pattern == ipHilbertCurve || pattern == ipOctagramSpiral; // If there is infill, enable/disable fill_multiline according to whether the pattern supports multiline infill. if (have_infill) { @@ -774,10 +774,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co // Orca: Force solid support interface when using support ironing toggle_field("support_interface_spacing", have_support_material && have_support_interface && !has_support_ironing); - bool have_skirt_height = have_skirt && - (config->opt_int("skirt_height") > 1 || config->opt_enum("draft_shield") != dsEnabled); - toggle_line("support_speed", have_support_material || have_skirt_height); - toggle_line("support_interface_speed", have_support_material && have_support_interface); +// see issue #10915 +// bool have_skirt_height = have_skirt && +// (config->opt_int("skirt_height") > 1 || config->opt_enum("draft_shield") != dsEnabled); +// toggle_line("support_speed", have_support_material || have_skirt_height); +// toggle_line("support_interface_speed", have_support_material && have_support_interface); // BBS //toggle_field("support_material_synchronize_layers", have_support_soluble); @@ -934,12 +935,15 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool lattice_options = config->opt_enum("sparse_infill_pattern") == InfillPattern::ipLateralLattice; for (auto el : { "lateral_lattice_angle_1", "lateral_lattice_angle_2"}) toggle_line(el, lattice_options); + + // Adaptative Cubic and support cubic infill patterns do not support infill rotation. + bool FillAdaptive = (pattern == InfillPattern::ipAdaptiveCubic || pattern == InfillPattern::ipSupportCubic); - //Orca: disable infill_direction/solid_infill_direction if sparse_infill_rotate_template/solid_infill_rotate_template is not empty value - toggle_field("infill_direction", config->opt_string("sparse_infill_rotate_template") == ""); + //Orca: disable infill_direction/solid_infill_direction if sparse_infill_rotate_template/solid_infill_rotate_template is not empty value and adaptive cubic/support cubic infill pattern is not selected + toggle_field("sparse_infill_rotate_template", !FillAdaptive); + toggle_field("infill_direction", config->opt_string("sparse_infill_rotate_template") == "" && !FillAdaptive); toggle_field("solid_infill_direction", config->opt_string("solid_infill_rotate_template") == ""); - - + toggle_line("infill_overhang_angle", config->opt_enum("sparse_infill_pattern") == InfillPattern::ipLateralHoneycomb); std::string printer_type = wxGetApp().preset_bundle->printers.get_edited_preset().get_printer_type(wxGetApp().preset_bundle); diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index ba336e9ee5..7d97cabf9c 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -868,24 +868,13 @@ void GCodeViewer::init(ConfigOptionMode mode, PresetBundle* preset_bundle) m_gl_data_initialized = true; - if (preset_bundle) - m_nozzle_nums = preset_bundle->get_printer_extruder_count(); - bool multimaterial = preset_bundle->filament_presets.empty() ? 0 : preset_bundle->filament_presets.size() > 1; - - // set to color print by default if use multi extruders - if (m_nozzle_nums > 1) { - m_view_type_sel = std::distance(view_type_items.begin(), - std::find(view_type_items.begin(), view_type_items.end(), EViewType::Summary)); - set_view_type(EViewType::Summary); - } else if (multimaterial) { - m_view_type_sel = std::distance(view_type_items.begin(), - std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint)); - set_view_type(EViewType::ColorPrint); - } else { - m_view_type_sel = std::distance(view_type_items.begin(), - std::find(view_type_items.begin(), view_type_items.end(), EViewType::FeatureType)); - set_view_type(EViewType::FeatureType); - } + // Orca: + // Default view type at first slice. + // May be overridden in load() once we know how many tools are actually used in the G-code. + m_nozzle_nums = preset_bundle ? preset_bundle->get_printer_extruder_count() : 1; + auto it = std::find(view_type_items.begin(), view_type_items.end(), EViewType::FeatureType); + m_view_type_sel = (it != view_type_items.end()) ? std::distance(view_type_items.begin(), it) : 0; + set_view_type(EViewType::FeatureType); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": finished"); } @@ -995,6 +984,20 @@ void GCodeViewer::load(const GCodeProcessorResult& gcode_result, const Print& pr m_max_print_height = gcode_result.printable_height; load_toolpaths(gcode_result, build_volume, exclude_bounding_box); + + // ORCA: Only show filament/color print preview if more than one tool/extruder is actually used in the toolpaths. + // Only reset back to Toolpaths (FeatureType) if we are currently in ColorPrint and this load is single-tool. + if (m_extruder_ids.size() > 1) { + auto it = std::find(view_type_items.begin(), view_type_items.end(), EViewType::ColorPrint); + if (it != view_type_items.end()) + m_view_type_sel = std::distance(view_type_items.begin(), it); + set_view_type(EViewType::ColorPrint); + } else if (m_view_type == EViewType::ColorPrint) { + auto it = std::find(view_type_items.begin(), view_type_items.end(), EViewType::FeatureType); + if (it != view_type_items.end()) + m_view_type_sel = std::distance(view_type_items.begin(), it); + set_view_type(EViewType::FeatureType); + } // BBS: data for rendering color arrangement recommendation m_nozzle_nums = print.config().option("nozzle_diameter")->values.size(); diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index ce0c24d08a..d133720c7e 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -108,7 +108,12 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt try{ if (config.def()->get(opt_key)->type == coBools && config.def()->get(opt_key)->nullable) { - auto vec_new = std::make_unique(1, boost::any_cast(value) ); + const auto v = boost::any_cast(value); + auto vec_new = std::make_unique(1, v); + if (v == ConfigOptionBoolsNullable::nil_value()) { + vec_new->set_at_to_nil(0); + } + config.option(opt_key)->set_at(vec_new.get(), opt_index, 0); return; } diff --git a/src/slic3r/GUI/ImageDPIFrame.cpp b/src/slic3r/GUI/ImageDPIFrame.cpp index 06c3f59c3f..2133f18784 100644 --- a/src/slic3r/GUI/ImageDPIFrame.cpp +++ b/src/slic3r/GUI/ImageDPIFrame.cpp @@ -29,6 +29,14 @@ ImageDPIFrame::ImageDPIFrame() #ifdef __APPLE__ SetWindowStyleFlag(GetWindowStyleFlag() | wxSTAY_ON_TOP); #endif + + // ORCA add border + Bind(wxEVT_PAINT, [this](wxPaintEvent& evt) { + wxPaintDC dc(this); + dc.SetPen(StateColor::darkModeColorFor(wxColour("#DBDBDB"))); + dc.SetBrush(*wxTRANSPARENT_BRUSH); + dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y, 0); + }); m_sizer_main = new wxBoxSizer(wxVERTICAL); diff --git a/src/slic3r/GUI/Jobs/EmbossJob.cpp b/src/slic3r/GUI/Jobs/EmbossJob.cpp index 032ed288dd..856864d5c1 100644 --- a/src/slic3r/GUI/Jobs/EmbossJob.cpp +++ b/src/slic3r/GUI/Jobs/EmbossJob.cpp @@ -427,16 +427,18 @@ void UpdateJob::update_volume(ModelVolume *volume, TriangleMesh &&mesh, const Da volume->set_new_unique_id(); volume->calculate_convex_hull(); - // write data from base into volume - base.write(*volume); - GUI_App &app = wxGetApp(); // may be move to input + if (volume->name != base.volume_name) { - volume->name = base.volume_name; + // write data from base into volume + base.write(*volume); const ObjectList *obj_list = app.obj_list(); if (obj_list != nullptr) update_name_in_list(*obj_list, *volume); + } else { + // write data from base into volume + base.write(*volume); } ModelObject *object = volume->get_object(); diff --git a/src/slic3r/GUI/OG_CustomCtrl.cpp b/src/slic3r/GUI/OG_CustomCtrl.cpp index 8be287fd3d..331d4a5db8 100644 --- a/src/slic3r/GUI/OG_CustomCtrl.cpp +++ b/src/slic3r/GUI/OG_CustomCtrl.cpp @@ -53,7 +53,7 @@ OG_CustomCtrl::OG_CustomCtrl( wxWindow* parent, // BBS: new font m_font = Label::Body_14; SetFont(m_font); - m_em_unit = em_unit(m_parent); + m_em_unit = em_unit(m_parent); m_v_gap = lround(1.2 * m_em_unit); m_v_gap2 = lround(0.8 * m_em_unit); m_h_gap = lround(0.2 * m_em_unit); @@ -597,7 +597,7 @@ void OG_CustomCtrl::msw_rescale() SetFont(m_font); m_em_unit = em_unit(m_parent); m_v_gap = lround(1.2 * m_em_unit); - m_v_gap2 = lround(0.8 * m_em_unit); + m_v_gap2 = lround(0.8 * m_em_unit); m_h_gap = lround(0.2 * m_em_unit); //m_bmp_mode_sz = create_scaled_bitmap("mode_simple", this, wxOSX ? 10 : 12).GetSize(); @@ -992,7 +992,7 @@ wxPoint OG_CustomCtrl::CtrlLine::draw_act_bmps(wxDC& dc, wxPoint pos, const wxBi pos.y += lround((height - get_bitmap_size(bmp_undo).GetHeight()) / 2); } #endif - wxCoord h_pos = pos.x; + wxCoord h_pos = pos.x - ctrl->m_h_gap; // Orca: adjust position to the left wxCoord v_pos = pos.y; #ifndef DISABLE_UNDO_SYS diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0a462a06f3..cc67ee11fd 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -220,9 +220,14 @@ wxDEFINE_EVENT(EVT_NOTICE_FULL_SCREEN_CHANGED, IntEvent); static string get_diameter_string(float diameter) { - std::ostringstream stream; - stream << std::fixed << std::setprecision(1) << diameter; - return stream.str(); + std::ostringstream stream; // ORCA ensure 0.25 returned as 0.25. previous code returned as 0.2 because of std::setprecision(1) + stream << std::fixed << std::setprecision(2) << diameter; // Use 2 decimals to capture 0.25 / 0.15 reliably + std::string s = stream.str(); + if (s.find('.') != std::string::npos) { // Remove trailing zeros, but keep at least one decimal if needed + s.erase(s.find_last_not_of('0') + 1); + if (s.back() == '.') s += '0'; // Ensure "1." → "1.0" + } + return s; } bool Plater::has_illegal_filename_characters(const wxString& wxs_name) @@ -574,7 +579,9 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual) // ORCA show plate type combo box only when its supported PresetBundle &preset_bundle = *wxGetApp().preset_bundle; auto cfg = preset_bundle.printers.get_edited_preset().config; - panel_printer_bed->Show(isBBL || cfg.opt_bool("support_multi_bed_types")); + // Orca: we use preset_bundle.is_bbl_vendor() instead of isBBL to determine if the plate type combo box should be shown + // ref: https://github.com/OrcaSlicer/OrcaSlicer/pull/11610#discussion_r2607411847 + panel_printer_bed->Show(preset_bundle.is_bbl_vendor() || cfg.opt_bool("support_multi_bed_types")); extruder_dual_sizer->Show(isDual); @@ -1230,7 +1237,8 @@ bool Sidebar::priv::switch_diameter(bool single) } auto preset = wxGetApp().preset_bundle->get_similar_printer_preset({}, diameter.ToStdString()); if (preset == nullptr) { - MessageDialog dlg(this->plater, "", ""); + // ORCA add a text. this appears when user tries to change nozzle value but config doesnt have a inherited or compatible preset + MessageDialog dlg(this->plater, _L("Configuration incompatible"), _L("Warning"), wxICON_WARNING | wxOK); dlg.ShowModal(); return false; } @@ -2536,9 +2544,18 @@ void Sidebar::update_presets(Preset::Type preset_type) p->layout_printer(preset_bundle.use_bbl_network(), isBBL && is_dual_extruder); auto diameters = wxGetApp().preset_bundle->printers.diameters_of_selected_printer(); auto diameter = printer_preset.config.opt_string("printer_variant"); - auto update_extruder_diameter = [&diameters, &diameter](ExtruderGroup & extruder) { + auto update_extruder_diameter = [&diameters, &diameter, &nozzle_diameter](int extruder_index,ExtruderGroup & extruder) { extruder.combo_diameter->Clear(); int select = -1; + // ORCA if user defined a custom nozzle in printer config select it instead inherited one. this will show correct nozzle diameter in combobox if its exist in nozzle diameters list + auto nozzle_dia = get_diameter_string(nozzle_diameter->values[extruder_index]); + if(nozzle_dia != diameter && std::find(diameters.begin(), diameters.end(), nozzle_dia) != diameters.end()) + diameter = nozzle_dia; + // ORCA try to add nozzle diameter from config if list is empty. fixes blank nozzle combo box when preset has no alias + if(diameters[0].empty() && !nozzle_dia.empty()){ + diameters[0] = nozzle_dia; + diameter = nozzle_dia; + } for (size_t i = 0; i < diameters.size(); ++i) { if (diameters[i] == diameter) select = extruder.combo_diameter->GetCount(); @@ -2552,14 +2569,14 @@ void Sidebar::update_presets(Preset::Type preset_type) AMSCountPopupWindow::UpdateAMSCount(0, p->left_extruder); AMSCountPopupWindow::UpdateAMSCount(1, p->right_extruder); //if (!p->is_switching_diameter) { - update_extruder_diameter(*p->left_extruder); - update_extruder_diameter(*p->right_extruder); + update_extruder_diameter(0, *p->left_extruder); + update_extruder_diameter(1, *p->right_extruder); //} p->image_printer_bed->SetBitmap(create_scaled_bitmap(image_path, this, PRINTER_THUMBNAIL_SIZE.GetHeight())); } else { AMSCountPopupWindow::UpdateAMSCount(0, p->single_extruder); //if (!p->is_switching_diameter) - update_extruder_diameter(*p->single_extruder); + update_extruder_diameter(0, *p->single_extruder); // ORCA sync unified nozzle combo box p->combo_nozzle_dia->Clear(); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 1f3d73751b..fd8ede92d2 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -353,9 +353,9 @@ void Tab::create_preset_tab() }); - m_undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent) { on_roll_back_value(); })); - //m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent) { on_roll_back_value(true); })); - /* m_search_btn->Bind(wxEVT_BUTTON, [](wxCommandEvent) { wxGetApp().plater()->search(false); });*/ + m_undo_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent&) { on_roll_back_value(); })); + //m_undo_to_sys_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent&) { on_roll_back_value(true); })); + /* m_search_btn->Bind(wxEVT_BUTTON, [](wxCommandEvent&) { wxGetApp().plater()->search(false); });*/ // Colors for ui "decoration" m_sys_label_clr = wxGetApp().get_label_clr_sys(); @@ -540,14 +540,14 @@ void Tab::create_preset_tab() m_hsizer->Add(m_page_view, 1, wxEXPAND | wxLEFT, 5);*/ //m_btn_compare_preset->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { compare_preset(); })); - m_btn_save_preset->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { save_preset(); })); - m_btn_delete_preset->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { delete_preset(); })); + m_btn_save_preset->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) { save_preset(); })); + m_btn_delete_preset->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) { delete_preset(); })); /*m_btn_hide_incompatible_presets->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { toggle_show_hide_incompatible(); })); if (m_btn_edit_ph_printer) - m_btn_edit_ph_printer->Bind(wxEVT_BUTTON, [this](wxCommandEvent e) { + m_btn_edit_ph_printer->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e) { if (m_preset_bundle->physical_printers.has_selection()) m_presets_choice->edit_physical_printer(); else @@ -892,7 +892,8 @@ void Tab::decorate() void Tab::filter_diff_option(std::vector &options) { for (auto &opt : options) { - if (opt.find_last_of('#') == std::string::npos) continue; + const auto hash_pos = opt.find_last_of('#'); + if (hash_pos == std::string::npos) continue; bool found = false; for (auto page : m_pages) { if (auto iter = page->m_opt_id_map.find(opt); iter != page->m_opt_id_map.end()) { @@ -901,7 +902,7 @@ void Tab::filter_diff_option(std::vector &options) break; } } - if (!found) opt.clear(); + if (!found) opt = opt.substr(0, hash_pos); } options.erase(std::remove(options.begin(), options.end(), ""), options.end()); } @@ -912,7 +913,7 @@ void Tab::update_changed_ui() if (m_postpone_update_ui) return; - const bool deep_compare = (m_type == Preset::TYPE_PRINTER || m_type == Preset::TYPE_PRINT + const bool deep_compare = (m_type == Preset::TYPE_PRINTER || m_type == Preset::TYPE_PRINT || m_type == Preset::TYPE_FILAMENT || m_type == Preset::TYPE_SLA_MATERIAL || m_type == Preset::TYPE_MODEL); auto dirty_options = m_presets->current_dirty_options(deep_compare); auto nonsys_options = m_presets->current_different_from_parent_options(deep_compare); @@ -3559,7 +3560,7 @@ void TabFilament::add_filament_overrides_page() auto append_retraction_option = [this, retraction_optgroup](const std::string& opt_key, int opt_index) { Line line {"",""}; - line = retraction_optgroup->create_single_option_line(retraction_optgroup->get_option(opt_key)); + line = retraction_optgroup->create_single_option_line(retraction_optgroup->get_option(opt_key, opt_index)); line.near_label_widget = [this, optgroup_wk = ConfigOptionsGroupWkp(retraction_optgroup), opt_key, opt_index](wxWindow* parent) { auto check_box = new ::CheckBox(parent); // ORCA modernize checkboxes @@ -3581,6 +3582,7 @@ void TabFilament::add_filament_overrides_page() } } } + evt.Skip(); }, check_box->GetId()); m_overrides_options[opt_key] = check_box; @@ -3616,7 +3618,7 @@ void TabFilament::add_filament_overrides_page() auto append_ironing_option = [this, ironing_optgroup](const std::string& opt_key, int opt_index) { Line line {"",""}; - line = ironing_optgroup->create_single_option_line(ironing_optgroup->get_option(opt_key)); + line = ironing_optgroup->create_single_option_line(ironing_optgroup->get_option(opt_key, opt_index)); line.near_label_widget = [this, optgroup_wk = ConfigOptionsGroupWkp(ironing_optgroup), opt_key, opt_index](wxWindow* parent) { auto check_box = new ::CheckBox(parent); // ORCA modernize checkboxes @@ -3682,6 +3684,7 @@ void TabFilament::add_filament_overrides_page() } } } + evt.Skip(); }, check_box->GetId()); m_overrides_options[opt_key] = check_box; @@ -3888,8 +3891,8 @@ void TabFilament::build() optgroup = page->new_optgroup(L("Print temperature"), L"param_extruder_temp"); line = { L("Nozzle"), L("Nozzle temperature when printing") }; line.label_path = "material_temperatures#nozzle"; - line.append_option(optgroup->get_option("nozzle_temperature_initial_layer")); - line.append_option(optgroup->get_option("nozzle_temperature")); + line.append_option(optgroup->get_option("nozzle_temperature_initial_layer", 0)); + line.append_option(optgroup->get_option("nozzle_temperature", 0)); optgroup->append_line(line); optgroup = page->new_optgroup(L("Bed temperature"), L"param_bed_temp"); @@ -3968,7 +3971,7 @@ void TabFilament::build() //BBS optgroup = page->new_optgroup(L("Volumetric speed limitation"), L"param_volumetric_speed"); optgroup->append_single_option_line("filament_adaptive_volumetric_speed", "material_volumetric_speed_limitation#adaptive-volumetric-speed", 0); - optgroup->append_single_option_line("filament_max_volumetric_speed", "material_volumetric_speed_limitation#max-volumetric-speed"); + optgroup->append_single_option_line("filament_max_volumetric_speed", "material_volumetric_speed_limitation#max-volumetric-speed", 0); //line = { "", "" }; //line.full_width = 1; @@ -4140,6 +4143,9 @@ void TabFilament::reload_config() this->compatible_widget_reload(m_compatible_printers); this->compatible_widget_reload(m_compatible_prints); Tab::reload_config(); + + // Recompute derived override UI from the newly loaded config + update_filament_overrides_page(&m_preset_bundle->printers.get_edited_preset().config); } //void TabFilament::update_volumetric_flow_preset_hints() @@ -6698,18 +6704,18 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep this->update_changed_ui(); }; - deps.checkbox_title->Bind(wxEVT_LEFT_DOWN,([this, &deps, on_toggle](wxMouseEvent e) { + deps.checkbox_title->Bind(wxEVT_LEFT_DOWN,([this, &deps, on_toggle](wxMouseEvent& e) { if (e.GetEventType() == wxEVT_LEFT_DCLICK) return; on_toggle(!deps.checkbox->GetValue()); e.Skip(); })); - deps.checkbox_title->Bind(wxEVT_LEFT_DCLICK,([this, &deps, on_toggle](wxMouseEvent e) { + deps.checkbox_title->Bind(wxEVT_LEFT_DCLICK,([this, &deps, on_toggle](wxMouseEvent& e) { on_toggle(!deps.checkbox->GetValue()); e.Skip(); })); - deps.checkbox->Bind(wxEVT_TOGGLEBUTTON, ([this, on_toggle](wxCommandEvent e) { + deps.checkbox->Bind(wxEVT_TOGGLEBUTTON, ([this, on_toggle](wxCommandEvent& e) { on_toggle(e.IsChecked()); e.Skip(); }), deps.checkbox->GetId()); @@ -6734,7 +6740,7 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep } */ - deps.btn->Bind(wxEVT_BUTTON, ([this, parent, &deps](wxCommandEvent e) + deps.btn->Bind(wxEVT_BUTTON, ([this, parent, &deps](wxCommandEvent& e) { // Collect names of non-default non-external profiles. PrinterTechnology printer_technology = m_preset_bundle->printers.get_edited_preset().printer_technology(); @@ -6816,7 +6822,7 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL); - btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { + btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) { bool is_configed_by_BBL = PresetUtils::system_printer_bed_model(m_preset_bundle->printers.get_edited_preset()).size() > 0; BedShapeDialog dlg(this); dlg.build_dialog(m_config->option("printable_area")->values, diff --git a/tests/libslic3r/test_placeholder_parser.cpp b/tests/libslic3r/test_placeholder_parser.cpp index 2394aad4bf..93c848b3a2 100644 --- a/tests/libslic3r/test_placeholder_parser.cpp +++ b/tests/libslic3r/test_placeholder_parser.cpp @@ -14,40 +14,22 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") { { "nozzle_diameter", "0.6;0.6;0.6;0.6" }, { "nozzle_temperature", "357;359;363;378" } }); - // To let the PlaceholderParser throw when referencing initial_layer_line_width if it is set to percent, as the PlaceholderParser does not know + // To test the "min_width_top_surface" over "inner_wall_line_width". + config.option("inner_wall_line_width")->value = 150.; + config.option("inner_wall_line_width")->percent = true; + // To let the PlaceholderParser throw when referencing scarf_joint_speed if it is set to percent, as the PlaceholderParser does not know // a percent to what. - config.option("initial_layer_line_width")->value = 50.; - config.option("initial_layer_line_width")->percent = true; + config.option("scarf_joint_speed")->value = 50.; + config.option("scarf_joint_speed")->percent = true; parser.apply_config(config); parser.set("foo", 0); parser.set("bar", 2); parser.set("num_extruders", 4); - SECTION("nested config options (legacy syntax)") { REQUIRE(parser.process("[nozzle_temperature_[foo]]") == "357"); } + SECTION("nested config options (legacy syntax)") { REQUIRE(parser.process("[nozzle_temperature[foo]]") == "357"); } SECTION("array reference") { REQUIRE(parser.process("{nozzle_temperature[foo]}") == "357"); } - SECTION("whitespaces and newlines are maintained") { REQUIRE(parser.process("test [ nozzle_temperature_ [foo] ] \n hu") == "test 357 \n hu"); } - - // Test the "coFloatOrPercent" and "xxx_width" substitutions. - - // FIXME: Don't know what exactly this referred to in Prusaslicer or - // whether it should apply to Orca or not. - // {outer_wall_line_width} returns as its default value, 0. - // SECTION("outer_wall_line_width") { REQUIRE(std::stod(parser.process("{outer_wall_line_width}")) == Catch::Approx(0.67500001192092896)); } - SECTION("support_object_xy_distance") { REQUIRE(std::stod(parser.process("{support_object_xy_distance}")) == Catch::Approx(0.35)); } - // initial_layer_line_width ratio over nozzle_diameter. - // FIXME: either something else which correctly calculates a ratio should be here, - // or something else should be found for for the REQUIRE_THROWS - // SECTION("initial_layer_line_width") { REQUIRE(std::stod(parser.process("{initial_layer_line_width}")) == Catch::Approx(0.9)); } - // small_perimeter_speed ratio over outer_wall_speed - SECTION("small_perimeter_speed") { REQUIRE(std::stod(parser.process("{small_perimeter_speed}")) == Catch::Approx(30.)); } - // infill_wall_overlap over inner_wall_line_width - // FIXME: Shouldn't this return the calculated value and not the percentage 15? - // SECTION("infill_wall_overlap") { REQUIRE(std::stod(parser.process("{infill_wall_overlap}")) == Catch::Approx(0.16875)); } - - // If initial_layer_line_width is set to percent, then it is applied over respective extrusion types by overriding their respective speeds. - // The PlaceholderParser has no way to know which extrusion type the caller has in mind, therefore it throws. - SECTION("initial_layer_line_width throws failed to resolve the ratio_over dependencies") { REQUIRE_THROWS(parser.process("{initial_layer_line_width}")); } + SECTION("whitespaces and newlines are maintained") { REQUIRE(parser.process("test [ nozzle_temperature [foo] ] \n hu") == "test 357 \n hu"); } // Test the math expressions. SECTION("math: 2*3") { REQUIRE(parser.process("{2*3}") == "6"); } @@ -84,6 +66,20 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") { SECTION("math: interpolate_table(13, (0, 0), (20, 20), (30, 20))") { REQUIRE(std::stod(parser.process("{interpolate_table(13, (0, 0), (20, 20), (30, 20))}")) == Catch::Approx(13.)); } SECTION("math: interpolate_table(25, (0, 0), (20, 20), (30, 20))") { REQUIRE(std::stod(parser.process("{interpolate_table(25, (0, 0), (20, 20), (30, 20))}")) == Catch::Approx(20.)); } + // Test the "coFloatOrPercent" and "xxx_line_width" substitutions. + // min_width_top_surface ratio_over inner_wall_line_width. + SECTION("line_width") { REQUIRE(std::stod(parser.process("{line_width}")) == Catch::Approx(0.67500001192092896)); } + SECTION("min_width_top_surface") { REQUIRE(std::stod(parser.process("{min_width_top_surface}")) == Catch::Approx(2.7)); } + // Orca: this one is not coFloatOrPercent + //SECTION("support_object_xy_distance") { REQUIRE(std::stod(parser.process("{support_object_xy_distance}")) == Catch::Approx(0.3375)); } + // small_perimeter_speed over outer_wall_speed + SECTION("small_perimeter_speed") { REQUIRE(std::stod(parser.process("{small_perimeter_speed}")) == Catch::Approx(30.)); } + // infill_anchor over sparse_infill_line_width + SECTION("infill_anchor") { REQUIRE(std::stod(parser.process("{infill_anchor}")) == Catch::Approx(2.7)); } + // If scarf_joint_speed is set to percent, then it is applied over respective extrusion types by overriding their respective speeds. + // The PlaceholderParser has no way to know which extrusion type the caller has in mind, therefore it throws. + SECTION("scarf_joint_speed") { REQUIRE_THROWS(parser.process("{scarf_joint_speed}")); } + // Test the boolean expression parser. auto boolean_expression = [&parser](const std::string& templ) { return parser.evaluate_boolean_expression(templ, parser.config()); }; @@ -116,3 +112,131 @@ SCENARIO("Placeholder parser scripting", "[PlaceholderParser]") { SECTION("complex expression2") { REQUIRE(boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.6 and num_extruders>1)")); } SECTION("complex expression3") { REQUIRE(! boolean_expression("printer_notes=~/.*PRINTER_VEwerfNDOR_PRUSA3D.*/ or printer_notes=~/.*PRINTertER_MODEL_MK2.*/ or (nozzle_diameter[0]==0.3 and num_extruders>1)")); } } + +SCENARIO("Placeholder parser variables", "[PlaceholderParser]") { + PlaceholderParser parser; + auto config = DynamicPrintConfig::full_print_config(); + + config.set_deserialize_strict({ + { "filament_notes", "testnotes" }, + { "enable_pressure_advance", "1" }, + { "nozzle_diameter", "0.6;0.6;0.6;0.6" }, + { "nozzle_temperature", "357;359;363;378" } + }); + + PlaceholderParser::ContextData context_with_global_dict; + context_with_global_dict.global_config = std::make_unique(); + + SECTION("create an int local variable") { REQUIRE(parser.process("{local myint = 33+2}{myint}", 0, nullptr, nullptr, nullptr) == "35"); } + SECTION("create a string local variable") { REQUIRE(parser.process("{local mystr = \"mine\" + \"only\" + \"mine\"}{mystr}", 0, nullptr, nullptr, nullptr) == "mineonlymine"); } + SECTION("create a bool local variable") { REQUIRE(parser.process("{local mybool = 1 + 1 == 2}{mybool}", 0, nullptr, nullptr, nullptr) == "true"); } + SECTION("create an int global variable") { REQUIRE(parser.process("{global myint = 33+2}{myint}", 0, nullptr, nullptr, &context_with_global_dict) == "35"); } + SECTION("create a string global variable") { REQUIRE(parser.process("{global mystr = \"mine\" + \"only\" + \"mine\"}{mystr}", 0, nullptr, nullptr, &context_with_global_dict) == "mineonlymine"); } + SECTION("create a bool global variable") { REQUIRE(parser.process("{global mybool = 1 + 1 == 2}{mybool}", 0, nullptr, nullptr, &context_with_global_dict) == "true"); } + + SECTION("create an int local variable and overwrite it") { REQUIRE(parser.process("{local myint = 33+2}{myint = 12}{myint}", 0, nullptr, nullptr, nullptr) == "12"); } + SECTION("create a string local variable and overwrite it") { REQUIRE(parser.process("{local mystr = \"mine\" + \"only\" + \"mine\"}{mystr = \"yours\"}{mystr}", 0, nullptr, nullptr, nullptr) == "yours"); } + SECTION("create a bool local variable and overwrite it") { REQUIRE(parser.process("{local mybool = 1 + 1 == 2}{mybool = false}{mybool}", 0, nullptr, nullptr, nullptr) == "false"); } + SECTION("create an int global variable and overwrite it") { REQUIRE(parser.process("{global myint = 33+2}{myint = 12}{myint}", 0, nullptr, nullptr, &context_with_global_dict) == "12"); } + SECTION("create a string global variable and overwrite it") { REQUIRE(parser.process("{global mystr = \"mine\" + \"only\" + \"mine\"}{mystr = \"yours\"}{mystr}", 0, nullptr, nullptr, &context_with_global_dict) == "yours"); } + SECTION("create a bool global variable and overwrite it") { REQUIRE(parser.process("{global mybool = 1 + 1 == 2}{mybool = false}{mybool}", 0, nullptr, nullptr, &context_with_global_dict) == "false"); } + + SECTION("create an int local variable and redefine it") { REQUIRE(parser.process("{local myint = 33+2}{local myint = 12}{myint}", 0, nullptr, nullptr, nullptr) == "12"); } + SECTION("create a string local variable and redefine it") { REQUIRE(parser.process("{local mystr = \"mine\" + \"only\" + \"mine\"}{local mystr = \"yours\"}{mystr}", 0, nullptr, nullptr, nullptr) == "yours"); } + SECTION("create a bool local variable and redefine it") { REQUIRE(parser.process("{local mybool = 1 + 1 == 2}{local mybool = false}{mybool}", 0, nullptr, nullptr, nullptr) == "false"); } + SECTION("create an int global variable and redefine it") { REQUIRE(parser.process("{global myint = 33+2}{global myint = 12}{myint}", 0, nullptr, nullptr, &context_with_global_dict) == "12"); } + SECTION("create a string global variable and redefine it") { REQUIRE(parser.process("{global mystr = \"mine\" + \"only\" + \"mine\"}{global mystr = \"yours\"}{mystr}", 0, nullptr, nullptr, &context_with_global_dict) == "yours"); } + SECTION("create a bool global variable and redefine it") { REQUIRE(parser.process("{global mybool = 1 + 1 == 2}{global mybool = false}{mybool}", 0, nullptr, nullptr, &context_with_global_dict) == "false"); } + + SECTION("create an ints local variable with repeat()") { REQUIRE(parser.process("{local myint = repeat(2*3, 4*6)}{myint[5]}", 0, nullptr, nullptr, nullptr) == "24"); } + SECTION("create a strings local variable with repeat()") { REQUIRE(parser.process("{local mystr = repeat(2*3, \"mine\" + \"only\" + \"mine\")}{mystr[5]}", 0, nullptr, nullptr, nullptr) == "mineonlymine"); } + SECTION("create a bools local variable with repeat()") { REQUIRE(parser.process("{local mybool = repeat(5, 1 + 1 == 2)}{mybool[4]}", 0, nullptr, nullptr, nullptr) == "true"); } + SECTION("create an ints global variable with repeat()") { REQUIRE(parser.process("{global myint = repeat(2*3, 4*6)}{myint[5]}", 0, nullptr, nullptr, &context_with_global_dict) == "24"); } + SECTION("create a strings global variable with repeat()") { REQUIRE(parser.process("{global mystr = repeat(2*3, \"mine\" + \"only\" + \"mine\")}{mystr[5]}", 0, nullptr, nullptr, &context_with_global_dict) == "mineonlymine"); } + SECTION("create a bools global variable with repeat()") { REQUIRE(parser.process("{global mybool = repeat(5, 1 + 1 == 2)}{mybool[4]}", 0, nullptr, nullptr, &context_with_global_dict) == "true"); } + + SECTION("create an ints local variable with initializer list") { REQUIRE(parser.process("{local myint = (2*3, 4*6, 5*5)}{myint[1]}", 0, nullptr, nullptr, nullptr) == "24"); } + SECTION("create a strings local variable with initializer list") { REQUIRE(parser.process("{local mystr = (2*3, \"mine\" + \"only\" + \"mine\", 8)}{mystr[1]}", 0, nullptr, nullptr, nullptr) == "mineonlymine"); } + SECTION("create a bools local variable with initializer list") { REQUIRE(parser.process("{local mybool = (3*3 == 8, 1 + 1 == 2)}{mybool[1]}", 0, nullptr, nullptr, nullptr) == "true"); } + SECTION("create an ints global variable with initializer list") { REQUIRE(parser.process("{global myint = (2*3, 4*6, 5*5)}{myint[1]}", 0, nullptr, nullptr, &context_with_global_dict) == "24"); } + SECTION("create a strings global variable with initializer list") { REQUIRE(parser.process("{global mystr = (2*3, \"mine\" + \"only\" + \"mine\", 8)}{mystr[1]}", 0, nullptr, nullptr, &context_with_global_dict) == "mineonlymine"); } + SECTION("create a bools global variable with initializer list") { REQUIRE(parser.process("{global mybool = (2*3 == 8, 1 + 1 == 2, 5*5 != 33)}{mybool[1]}", 0, nullptr, nullptr, &context_with_global_dict) == "true"); } + + SECTION("create an ints local variable by a copy") { REQUIRE(parser.process("{local myint = nozzle_temperature}{myint[0]}", 0, &config, nullptr, nullptr) == "357"); } + SECTION("create a strings local variable by a copy") { REQUIRE(parser.process("{local mystr = filament_notes}{mystr[0]}", 0, &config, nullptr, nullptr) == "testnotes"); } + SECTION("create a bools local variable by a copy") { REQUIRE(parser.process("{local mybool = enable_pressure_advance}{mybool[0]}", 0, &config, nullptr, nullptr) == "true"); } + SECTION("create an ints global variable by a copy") { REQUIRE(parser.process("{global myint = nozzle_temperature}{myint[0]}", 0, &config, nullptr, &context_with_global_dict) == "357"); } + SECTION("create a strings global variable by a copy") { REQUIRE(parser.process("{global mystr = filament_notes}{mystr[0]}", 0, &config, nullptr, &context_with_global_dict) == "testnotes"); } + SECTION("create a bools global variable by a copy") { REQUIRE(parser.process("{global mybool = enable_pressure_advance}{mybool[0]}", 0, &config, nullptr, &context_with_global_dict) == "true"); } + + SECTION("create an ints local variable by a copy and overwrite it") { + REQUIRE(parser.process("{local myint = nozzle_temperature}{myint = repeat(2*3, 4*6)}{myint[5]}", 0, &config, nullptr, nullptr) == "24"); + REQUIRE(parser.process("{local myint = nozzle_temperature}{myint = (2*3, 4*6)}{myint[1]}", 0, &config, nullptr, nullptr) == "24"); + REQUIRE(parser.process("{local myint = nozzle_temperature}{myint = (1)}{myint = nozzle_temperature}{myint[0]}", 0, &config, nullptr, nullptr) == "357"); + } + SECTION("create a strings local variable by a copy and overwrite it") { + REQUIRE(parser.process("{local mystr = filament_notes}{mystr = repeat(2*3, \"mine\" + \"only\" + \"mine\")}{mystr[5]}", 0, &config, nullptr, nullptr) == "mineonlymine"); + REQUIRE(parser.process("{local mystr = filament_notes}{mystr = (2*3, \"mine\" + \"only\" + \"mine\")}{mystr[1]}", 0, &config, nullptr, nullptr) == "mineonlymine"); + REQUIRE(parser.process("{local mystr = filament_notes}{mystr = (2*3, \"mine\" + \"only\" + \"mine\")}{mystr = filament_notes}{mystr[0]}", 0, &config, nullptr, nullptr) == "testnotes"); + } + SECTION("create a bools local variable by a copy and overwrite it") { + REQUIRE(parser.process("{local mybool = enable_pressure_advance}{mybool = repeat(2*3, true)}{mybool[5]}", 0, &config, nullptr, nullptr) == "true"); + REQUIRE(parser.process("{local mybool = enable_pressure_advance}{mybool = (false, true)}{mybool[1]}", 0, &config, nullptr, nullptr) == "true"); + REQUIRE(parser.process("{local mybool = enable_pressure_advance}{mybool = (false, false)}{mybool = enable_pressure_advance}{mybool[0]}", 0, &config, nullptr, nullptr) == "true"); + } + + SECTION("size() of a non-empty vector returns the right size") { REQUIRE(parser.process("{local myint = (0, 1, 2, 3)}{size(myint)}", 0, nullptr, nullptr, nullptr) == "4"); } + SECTION("size() of a an empty vector returns the right size") { REQUIRE(parser.process("{local myint = (0);myint=();size(myint)}", 0, nullptr, nullptr, nullptr) == "0"); } + SECTION("empty() of a non-empty vector returns false") { REQUIRE(parser.process("{local myint = (0, 1, 2, 3)}{empty(myint)}", 0, nullptr, nullptr, nullptr) == "false"); } + SECTION("empty() of a an empty vector returns true") { REQUIRE(parser.process("{local myint = (0);myint=();empty(myint)}", 0, nullptr, nullptr, nullptr) == "true"); } + + SECTION("nested if with new variables") { + std::string script = + "{if 1 == 1}{local myints = (5, 4, 3, 2, 1)}{else}{local myfloats = (1., 2., 3., 4., 5., 6., 7.)}{endif}" + "{myints[1]},{size(myints)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "4,5"); + } + SECTION("nested if with new variables 2") { + std::string script = + "{if 1 == 0}{local myints = (5, 4, 3, 2, 1)}{else}{local myfloats = (1., 2., 3., 4., 5., 6., 7.)}{endif}" + "{size(myfloats)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "7"); + } + SECTION("nested if with new variables 2, mixing }{ with ;") { + std::string script = + "{if 1 == 0 then local myints = (5, 4, 3, 2, 1);else;local myfloats = (1., 2., 3., 4., 5., 6., 7.);endif}" + "{size(myfloats)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "7"); + } + SECTION("nested if with new variables, two level") { + std::string script = + "{if 1 == 1}{if 2 == 3}{nejaka / haluz}{else}{local myints = (6, 5, 4, 3, 2, 1)}{endif}{else}{if zase * haluz}{else}{local myfloats = (1., 2., 3., 4., 5., 6., 7.)}{endif}{endif}" + "{size(myints)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "6"); + } + SECTION("if with empty block and ;") { + std::string script = + "{if false then else;local myfloats = (1., 2., 3., 4., 5., 6., 7.);endif}" + "{size(myfloats)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "7"); + } + SECTION("nested if with new variables, two level, mixing }{ with ;") { + std::string script = + "{if 1 == 1 then if 2 == 3}nejaka / haluz{else local myints = (6, 5, 4, 3, 2, 1) endif else if zase * haluz then else local myfloats = (1., 2., 3., 4., 5., 6., 7.) endif endif}" + "{size(myints)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "6"); + } + SECTION("nested if with new variables, two level, mixing }{ with ; 2") { + std::string script = + "{if 1 == 1 then if 2 == 3 then nejaka / haluz else}{local myints = (6, 5, 4, 3, 2, 1)}{endif else if zase * haluz then else local myfloats = (1., 2., 3., 4., 5., 6., 7.) endif endif}" + "{size(myints)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "6"); + } + SECTION("nested if with new variables, two level, mixing }{ with ; 3") { + std::string script = + "{if 1 == 1 then if 2 == 3 then nejaka / haluz else}{local myints = (6, 5, 4, 3, 2, 1)}{endif else}{if zase * haluz}{else local myfloats = (1., 2., 3., 4., 5., 6., 7.) endif}{endif}" + "{size(myints)}"; + REQUIRE(parser.process(script, 0, nullptr, nullptr, nullptr) == "6"); + } + SECTION("if else completely empty") { REQUIRE(parser.process("{if false then elsif false then else endif}", 0, nullptr, nullptr, nullptr) == ""); } +}