Merge branch 'main' into dev/arachen-sync

This commit is contained in:
SoftFever 2025-01-05 23:47:38 +08:00 committed by GitHub
commit 4c1a42e2e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 3271 additions and 1699 deletions

View File

@ -63,18 +63,47 @@ jobs:
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
env:
date:
ver:
ver_pure:
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-46
options: --privileged
volumes:
- /usr/local/lib/android:/usr/local/lib/android
- /usr/share/dotnet:/usr/share/dotnet
- /opt/ghc:/opt/ghc1
- /usr/local/share/boost:/usr/local/share/boost1
steps:
# maybe i'm too dumb and fucked up to do CI. OH WELL :D -ppd
- name: "Remove unneeded stuff to free disk space"
run:
sudo rm -rf /usr/share/dotnet /opt/ghc "/usr/local/share/boost" "$AGENT_TOOLSDIRECTORY"
sudo rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*"
- uses: actions/checkout@v4
- name: Get the version and date
run: |
ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2)
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
ver="PR-${{ github.event.number }}"
else
ver=V$ver_pure
fi
echo "ver=$ver" >> $GITHUB_ENV
echo "ver_pure=$ver_pure" >> $GITHUB_ENV
echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
shell: bash
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: orcaslicer.flatpak
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
cache-key: flatpak-builder-${{ github.sha }}
cache: false
cache: true
- name: Deploy Flatpak to nightly release
if: ${{github.ref == 'refs/heads/main'}}
uses: WebFreak001/deploy-nightly@v3.1.0
with:
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
asset_name: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted

View File

@ -257,8 +257,8 @@ jobs:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
run: |
./BuildLinux.sh -isr
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
- name: Build orca_custom_preset_tests
if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04'
@ -277,7 +277,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
- name: Deploy Ubuntu release
if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
@ -287,8 +287,8 @@ jobs:
with:
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: ./build/OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
asset_name: OrcaSlicer_Linux${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted

View File

@ -22,6 +22,18 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (default Release)" FORCE)
endif()
find_package(Git)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Check current Git commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
endif()
if(DEFINED ENV{SLIC3R_STATIC})
set(SLIC3R_STATIC_INITIAL $ENV{SLIC3R_STATIC})
else()

View File

@ -36,7 +36,7 @@
</screenshot>
</screenshots>
<description>
<p>A 3D printer slicer forked from Bambu Studio, PrusaSlicer, and SuperSlicer with many more printer profiles, helpful calibration prints, and many more features to get your 3D printer printing perfectly!</p>
<p>A powerful, free and open-source 3D printer slicer that features cutting-edge technology.</p>
</description>
<branding>
<color type="primary" scheme_preference="light">#009688</color>

View File

@ -0,0 +1,15 @@
#! /bin/bash
sudo apt update
sudo apt install build-essential flatpak flatpak-builder gnome-software-plugin-flatpak -y
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gnome.Platform//46 org.gnome.Sdk//46
##
# in OrcaSlicer folder, run following command to build Orca
# # First time build
# flatpak-builder --state-dir=.flatpak-builder --keep-build-dirs --user --force-clean build-dir flatpak/io.github.softfever.OrcaSlicer.yml
# # Subsequent builds (only rebuilding OrcaSlicer)
# flatpak-builder --state-dir=.flatpak-builder --keep-build-dirs --user build-dir flatpak/io.github.softfever.OrcaSlicer.yml --build-only=OrcaSlicer

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
{
"name": "Thinker X400",
"version": "01.09.00.02",
"force_update": "0",
"description": "Eryone configurations",
"machine_model_list": [
{
"name": "Thinker X400",
"sub_path": "machine/Thinker X400.json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "0.20mm Standard @Thinker X400",
"sub_path": "process/0.20mm Standard @Thinker X400.json"
},
{
"name": "0.12mm Standard @Thinker X400",
"sub_path": "process/0.12mm Standard @Thinker X400.json"
},
{
"name": "0.16mm Standard @Thinker X400",
"sub_path": "process/0.16mm Standard @Thinker X400.json"
},
{
"name": "0.24mm Standard @Thinker X400",
"sub_path": "process/0.24mm Standard @Thinker X400.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "Eryone Standard PLA",
"sub_path": "filament/Eryone Standard PLA.json"
},
{
"name": "Eryone Generic PLA",
"sub_path": "filament/Eryone Generic PLA.json"
},
{
"name": "Eryone Generic ABS",
"sub_path": "filament/Eryone Generic ABS.json"
},
{
"name": "Eryone Generic PETG",
"sub_path": "filament/Eryone Generic PETG.json"
},
{
"name": "Eryone Generic ASA",
"sub_path": "filament/Eryone Generic ASA.json"
},
{
"name": "Eryone Generic Silk PLA",
"sub_path": "filament/Eryone Generic Silk PLA.json"
},
{
"name": "Eryone Generic TPU",
"sub_path": "filament/Eryone Generic TPU.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "Thinker X400 0.4 nozzle",
"sub_path": "machine/Thinker X400 0.4 nozzle.json"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

View File

@ -0,0 +1,54 @@
{
"type": "filament",
"filament_id": "EFL91",
"setting_id": "EFSA01",
"name": "Eryone Generic ABS",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"30"
],
"filament_settings_id": [
"Eryone Generic ABS"
],
"filament_type": [
"ABS"
],
"filament_vendor": [
"Eryone"
],
"hot_plate_temp": [
"115"
],
"hot_plate_temp_initial_layer": [
"115"
],
"nozzle_temperature": [
"250"
],
"nozzle_temperature_initial_layer": [
"250"
],
"nozzle_temperature_range_high": [
"280"
],
"nozzle_temperature_range_low": [
"240"
],
"slow_down_layer_time": [
"12"
]
}

View File

@ -0,0 +1,54 @@
{
"type": "filament",
"filament_id": "EFL92",
"setting_id": "EFSA02",
"name": "Eryone Generic ASA",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"fan_max_speed": [
"30"
],
"fan_min_speed": [
"30"
],
"filament_settings_id": [
"Eryone Generic ASA"
],
"filament_type": [
"ASA"
],
"filament_vendor": [
"Eryone"
],
"hot_plate_temp": [
"115"
],
"hot_plate_temp_initial_layer": [
"115"
],
"nozzle_temperature": [
"265"
],
"nozzle_temperature_initial_layer": [
"265"
],
"nozzle_temperature_range_high": [
"280"
],
"nozzle_temperature_range_low": [
"240"
],
"slow_down_layer_time": [
"12"
]
}

View File

@ -0,0 +1,49 @@
{
"type": "filament",
"filament_id": "EFL93",
"setting_id": "EFSA03",
"name": "Eryone Generic PETG",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"fan_min_speed": [
"90"
],
"close_fan_the_first_x_layers": [
"2"
],
"filament_vendor": [
"Eryone"
],
"filament_settings_id": [
"Eryone Generic PETG"
],
"filament_type": [
"PETG"
],
"hot_plate_temp": [
"85"
],
"hot_plate_temp_initial_layer": [
"85"
],
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"245"
],
"nozzle_temperature_range_high": [
"270"
],
"nozzle_temperature_range_low": [
"225"
],
"slow_down_layer_time": [
"8"
]
}

View File

@ -0,0 +1,31 @@
{
"type": "filament",
"filament_id": "EFL90",
"setting_id": "EFSA00",
"name": "Eryone Generic PLA",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"fan_min_speed": [
"90"
],
"filament_max_volumetric_speed": [
"20"
],
"filament_settings_id": [
"Eryone Generic PLA"
],
"from": "User",
"hot_plate_temp": [
"65"
],
"slow_down_layer_time": [
"4"
],
"slow_down_min_speed": [
"15"
]
}

View File

@ -0,0 +1,34 @@
{
"type": "filament",
"filament_id": "EFL941",
"setting_id": "EFSA041",
"name": "Eryone Generic Silk PLA",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"fan_min_speed": [
"90"
],
"filament_settings_id": [
"Eryone Generic Silk PLA"
],
"from": "User",
"hot_plate_temp": [
"65"
],
"nozzle_temperature": [
"225"
],
"nozzle_temperature_initial_layer": [
"225"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"15"
]
}

View File

@ -0,0 +1,43 @@
{
"type": "filament",
"filament_id": "EFL95",
"setting_id": "EFSA05",
"name": "Eryone Generic TPU",
"from": "system",
"instantiation": "true",
"inherits": "Eryone Standard PLA",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"fan_min_speed": [
"90"
],
"filament_max_volumetric_speed": [
"4.2"
],
"filament_retraction_length": [
"1.6"
],
"filament_settings_id": [
"Eryone Generic TPU"
],
"filament_type": [
"TPU"
],
"from": "User",
"nozzle_temperature": [
"230"
],
"nozzle_temperature_initial_layer": [
"230"
],
"hot_plate_temp": [
"50"
],
"hot_plate_temp_initial_layer": [
"50"
],
"slow_down_layer_time": [
"8"
]
}

View File

@ -0,0 +1,250 @@
{
"type": "filament",
"name": "Eryone Standard PLA",
"from": "system",
"instantiation": "false",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"additional_cooling_fan_speed": [
"70"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"compatible_printers_condition": "",
"compatible_prints": [],
"compatible_prints_condition": "",
"complete_print_exhaust_fan_speed": [
"80"
],
"cool_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"default_filament_colour": [
""
],
"during_print_exhaust_fan_speed": [
"60"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"0"
],
"eng_plate_temp": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"fan_cooling_layer_time": [
"100"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"filament_cooling_final_speed": [
"3.4"
],
"filament_cooling_initial_speed": [
"2.2"
],
"filament_cooling_moves": [
"4"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_flow_ratio": [
"0.98"
],
"filament_is_support": [
"0"
],
"filament_load_time": [
"0"
],
"filament_loading_speed": [
"28"
],
"filament_loading_speed_start": [
"3"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [
""
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
"Eryone Standard PLA"
],
"filament_shrink": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_start_gcode": [
"; filament start gcode"
],
"filament_toolchange_delay": [
"0"
],
"filament_type": [
"PLA"
],
"filament_unload_time": [
"0"
],
"filament_unloading_speed": [
"90"
],
"filament_unloading_speed_start": [
"100"
],
"filament_vendor": [
"Eryone"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"65"
],
"nozzle_temperature": [
"220"
],
"nozzle_temperature_initial_layer": [
"220"
],
"nozzle_temperature_range_high": [
"260"
],
"nozzle_temperature_range_low": [
"180"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"pressure_advance": [
"0.02"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"0"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"5"
],
"slow_down_min_speed": [
"10"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"60"
],
"textured_plate_temp": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
]
}

View File

@ -0,0 +1,132 @@
{
"type": "filament",
"name": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"60"
],
"eng_plate_temp": [
"60"
],
"hot_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"overhang_fan_threshold": [
"95%"
],
"overhang_fan_speed": [
"100"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_flow_ratio": [
"1"
],
"reduce_fan_stop_start_freq": [
"0"
],
"fan_cooling_layer_time": [
"60"
],
"filament_cost": [
"0"
],
"filament_density": [
"0"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_max_volumetric_speed": [
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
""
],
"filament_soluble": [
"0"
],
"filament_type": [
"PLA"
],
"filament_vendor": [
"Generic"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"nozzle_temperature_initial_layer": [
"200"
],
"full_fan_speed_layer": [
"0"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"35"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"5"
],
"filament_start_gcode": [
"; Filament gcode\n"
],
"nozzle_temperature": [
"200"
],
"temperature_vitrification": [
"100"
]
}

View File

@ -0,0 +1,91 @@
{
"type": "filament",
"name": "fdm_filament_pla",
"from": "system",
"instantiation": "false",
"inherits": "fdm_filament_common",
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_type": [
"PLA"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"cool_plate_temp": [
"35"
],
"eng_plate_temp": [
"0"
],
"hot_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"35"
],
"eng_plate_temp_initial_layer": [
"0"
],
"hot_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"220"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"0"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"60"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"230"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"4"
],
"additional_cooling_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}

View File

@ -0,0 +1,211 @@
{
"type": "machine",
"setting_id": "GM003",
"name": "Thinker X400 0.4 nozzle",
"from": "system",
"instantiation": "true",
"printer_model": "Thinker X400",
"default_print_profile": "0.20mm Standard @Thinker X400",
"default_filament_profile":"Eryone Generic PLA;Eryone Generic ABS;Eryone Generic ASA;Eryone Generic PETG;Eryone Generic Silk PLA;Eryone Generic TPU",
"auxiliary_fan": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"best_object_pos": "0.5,0.5",
"change_filament_gcode": "",
"cooling_tube_length": "5",
"cooling_tube_retraction": "91.5",
"deretraction_speed": [
"30"
],
"enable_filament_ramming": "1",
"extra_loading_move": "-2",
"extruder_clearance_height_to_lid": "135",
"extruder_clearance_height_to_rod": "40",
"extruder_clearance_radius": "85",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"gcode_flavor": "klipper",
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"machine_end_gcode": "PRINT_END",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"10000",
"5000"
],
"machine_max_acceleration_extruding": [
"5000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"12000",
"20000"
],
"machine_max_acceleration_x": [
"10000",
"20000"
],
"machine_max_acceleration_y": [
"10000",
"20000"
],
"machine_max_acceleration_z": [
"300",
"200"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"0.3",
"0.4"
],
"machine_max_speed_e": [
"30",
"25"
],
"machine_max_speed_x": [
"500",
"200"
],
"machine_max_speed_y": [
"500",
"200"
],
"machine_max_speed_z": [
"8",
"12"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "M117 Heating\nM104 S[first_layer_temperature] ; set extruder temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nPRINT_START \nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\n\nM104 S0\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM117 Heating\nM190 S[bed_temperature_initial_layer_single]\nM104 S[first_layer_temperature] ; set extruder temp\nM109 S[first_layer_temperature] ; wait for extruder temp\n\n;QUAD_GANTRY_LEVEL\nCLEAN_N S=[first_layer_temperature] X=240 Y=-3 A=0\nM117 Quad Level\n_QUAD_GANTRY_LEVEL horizontal_move_z=10 retry_tolerance=1 LIFT_SPEED=5\nG28 Z\nM117 Quad Level\n_QUAD_GANTRY_LEVEL horizontal_move_z=5 retry_tolerance=0.05 LIFT_SPEED=5\nHOME_Z X=132.5 Y=197.5\nM117 Bed Mesh Level\nBED_MESH_CALIBRATE\nM117 Heating\nG1 Y0.0 Z0.3 F1500 ; move print head up\nM104 S[first_layer_temperature] ; set extruder temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nM117 .\nG92 E0.0\n; intro line\nG1 X175.0 E12 F1000\nG1 Y0.6\nG1 X5.0 E10 F1000\nG92 E0.0\n; intro line\nG1 Y1.0 Z0.2 F1000\nG1 X200.0 E15.0 F1000\nG92 E0.0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.08"
],
"nozzle_diameter": [
"0.4"
],
"nozzle_hrc": "0",
"nozzle_type": "hardened_steel",
"nozzle_volume": "0",
"parking_pos_retraction": "92",
"print_host": "192.168.2.8",
"print_host_webui": "",
"printable_area": [
"0x0",
"400x0",
"400x400",
"0x400"
],
"printable_height": "400",
"printer_notes": "",
"printer_settings_id": "Thinker X400 0.4 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.4",
"printhost_apikey": "",
"printhost_authorization_type": "key",
"printhost_cafile": "",
"printhost_password": "",
"printhost_port": "",
"printhost_ssl_ignore_revoke": "0",
"printhost_user": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"2"
],
"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_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": "1",
"support_chamber_temp_control": "1",
"template_custom_gcode": "",
"thumbnails": [
"250x250"
],
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "",
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"wipe": [
"1"
],
"wipe_distance": [
"2"
],
"z_hop": [
"0.3"
],
"z_hop_types": [
"Auto Lift"
]
}

View File

@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "Thinker X400",
"model_id": "Thinker-X400",
"nozzle_diameter": "0.4",
"machine_tech": "FFF",
"family": "Eryone",
"bed_model": "X400_bed.stl",
"bed_texture": "Thinker_texture.png",
"hotend_model": "",
"default_materials": "Eryone Generic PLA;Eryone Generic ABS;Eryone Generic ASA;Eryone Generic PETG;Eryone Generic Silk PLA;Eryone Generic TPU"
}

View File

@ -0,0 +1,174 @@
{
"type": "machine",
"name": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"gcode_flavor": "marlin2",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n",
"machine_start_gcode": "M4899 T3 ; Enable v3 jerk and S-curve acceleration \nM104 S150 ; Set hotend temp to 150 degrees to prevent ooze\nM190 S{first_layer_bed_temperature[0]} ; set and wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; set final nozzle temp to stabilize\nG28 ;Home",
"machine_end_gcode": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM18",
"change_filament_gcode": "M600",
"machine_pause_gcode": "M601",
"extruder_colour": [
"#018001"
],
"extruder_offset": [
"0x0"
],
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"5000",
"20000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"10000",
"20000"
],
"machine_max_acceleration_y": [
"10000",
"20000"
],
"machine_max_acceleration_z": [
"200",
"200"
],
"machine_max_jerk_e": [
"2.5",
"2.5"
],
"machine_max_jerk_x": [
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9"
],
"machine_max_jerk_z": [
"0.2",
"0.4"
],
"machine_max_speed_e": [
"50",
"25"
],
"machine_max_speed_x": [
"500",
"200"
],
"machine_max_speed_y": [
"500",
"200"
],
"machine_max_speed_z": [
"8",
"12"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\n\nG28 ; home all\nQUAD_GANTRY_LEVEL\n\nG28\n\nBED_MESH_CALIBRATE\n\nG1 Y1.0 Z0.3 F1500 ; move print head up\n\nG92 E0.0\n; intro line\nG1 X205.0 E10 F1000\nG1 Y1.6\nG1 X5.0 E15 F1000\nG92 E0.0\n; intro line\nG1 Y2.0 Z0.2 F1000\nG1 X200.0 E20.0 F1000\nG92 E0.0\n",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.08"
],
"nozzle_diameter": [
"0.4"
],
"printer_notes": "",
"printer_settings_id": "Thinker X400 0.4 nozzle",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.4",
"printhost_apikey": "",
"printhost_authorization_type": "key",
"printhost_cafile": "",
"printhost_password": "",
"printhost_port": "",
"printhost_ssl_ignore_revoke": "0",
"printhost_user": "",
"purge_in_prime_tower": "1",
"retract_before_wipe": [
"0%"
],
"retract_length_toolchange": [
"2"
],
"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_length": [
"0.7"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"40"
],
"scan_first_layer": "0",
"silent_mode": "0",
"single_extruder_multi_material": "1",
"support_air_filtration": "1",
"support_chamber_temp_control": "1",
"template_custom_gcode": "",
"thumbnails": [
"400x400"
],
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "",
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"version": "1.6.0.0",
"wipe": [
"1"
],
"wipe_distance": [
"0.3"
],
"z_hop": [
"0"
],
"z_hop_types": [
"Spiral Lift"
],
"z_offset": "0"
}

View File

@ -0,0 +1,27 @@
{
"brim_object_gap": "0",
"default_acceleration": "8000",
"elefant_foot_compensation": "0.12",
"from": "User",
"gap_infill_speed": "300",
"inherits": "0.20mm Standard @Thinker X400",
"inner_wall_acceleration": "8000",
"inner_wall_speed": "300",
"internal_solid_infill_speed": "300",
"is_custom_defined": "0",
"layer_height": "0.12",
"name": "0.12mm Standard @Thinker X400",
"only_one_wall_top": "1",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"print_settings_id": "0.12mm Standard @Thinker X400",
"raft_first_layer_expansion": "10",
"sparse_infill_density": "15%",
"sparse_infill_speed": "300",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"version": "1.9.0.2",
"wall_generator": "classic"
}

View File

@ -0,0 +1,27 @@
{
"brim_object_gap": "0",
"default_acceleration": "8000",
"elefant_foot_compensation": "0.12",
"from": "User",
"gap_infill_speed": "300",
"inherits": "0.20mm Standard @Thinker X400",
"inner_wall_acceleration": "8000",
"inner_wall_speed": "300",
"internal_solid_infill_speed": "300",
"is_custom_defined": "0",
"layer_height": "0.16",
"name": "0.16mm Standard @Thinker X400",
"only_one_wall_top": "1",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60",
"overhang_2_4_speed": "30",
"overhang_3_4_speed": "10",
"print_settings_id": "0.16mm Standard @Thinker X400",
"raft_first_layer_expansion": "10",
"sparse_infill_density": "15%",
"sparse_infill_speed": "300",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"version": "1.9.0.2",
"wall_generator": "classic"
}

View File

@ -0,0 +1,242 @@
{
"type": "process",
"setting_id": "GP004",
"name": "0.20mm Standard @Thinker X400",
"from": "",
"instantiation": "true",
"inherits": "fdm_process_common",
"compatible_printers": [
"Thinker X400 0.4 nozzle"
],
"accel_to_decel_enable": "1",
"accel_to_decel_factor": "50%",
"bottom_shell_layers": "3",
"bottom_shell_thickness": "0",
"bottom_solid_infill_flow_ratio": "1",
"bottom_surface_pattern": "monotonic",
"bridge_acceleration": "50%",
"bridge_angle": "0",
"bridge_density": "100%",
"bridge_flow": "0.95",
"bridge_no_support": "0",
"bridge_speed": "50",
"brim_ears_detection_length": "1",
"brim_ears_max_angle": "125",
"brim_object_gap": "0",
"brim_type": "auto_brim",
"brim_width": "5",
"compatible_printers_condition": "",
"default_acceleration": "8000",
"default_jerk": "0",
"detect_overhang_wall": "1",
"detect_thin_wall": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.12",
"elefant_foot_compensation_layers": "1",
"enable_arc_fitting": "1",
"enable_overhang_speed": "1",
"enable_prime_tower": "0",
"enable_support": "0",
"enforce_support_layers": "0",
"exclude_object": "1",
"extra_perimeters_on_overhangs": "0",
"filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode",
"filter_out_gap_fill": "0",
"flush_into_infill": "0",
"flush_into_objects": "0",
"flush_into_support": "1",
"fuzzy_skin": "none",
"fuzzy_skin_point_distance": "0.8",
"fuzzy_skin_thickness": "0.3",
"gap_infill_speed": "250",
"gcode_add_line_number": "0",
"gcode_comments": "0",
"gcode_label_objects": "1",
"hole_to_polyhole": "0",
"hole_to_polyhole_threshold": "0.01",
"hole_to_polyhole_twisted": "1",
"independent_support_layer_height": "1",
"infill_anchor": "400%",
"infill_anchor_max": "20",
"infill_combination": "0",
"infill_direction": "45",
"infill_jerk": "9",
"infill_wall_overlap": "25%",
"initial_layer_acceleration": "500",
"initial_layer_infill_speed": "105",
"initial_layer_jerk": "9",
"initial_layer_line_width": "0.5",
"initial_layer_min_bead_width": "85%",
"initial_layer_print_height": "0.2",
"initial_layer_speed": "50",
"initial_layer_travel_speed": "100%",
"inner_wall_acceleration": "8000",
"inner_wall_jerk": "9",
"inner_wall_line_width": "0.45",
"inner_wall_speed": "250",
"interface_shells": "0",
"internal_bridge_speed": "150%",
"internal_solid_infill_acceleration": "100%",
"internal_solid_infill_line_width": "0.42",
"internal_solid_infill_pattern": "monotonic",
"internal_solid_infill_speed": "250",
"ironing_angle": "-1",
"ironing_flow": "10%",
"ironing_pattern": "zig-zag",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"layer_height": "0.2",
"line_width": "0.42",
"make_overhang_printable": "0",
"make_overhang_printable_angle": "55",
"make_overhang_printable_hole_size": "0",
"max_bridge_length": "10",
"max_travel_detour_distance": "0",
"max_volumetric_extrusion_rate_slope": "0",
"max_volumetric_extrusion_rate_slope_segment_length": "3",
"min_bead_width": "85%",
"min_feature_size": "25%",
"min_width_top_surface": "300%",
"minimum_sparse_infill_area": "15",
"notes": "",
"only_one_wall_first_layer": "0",
"only_one_wall_top": "1",
"ooze_prevention": "0",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "9",
"outer_wall_line_width": "0.42",
"outer_wall_speed": "200",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"overhang_reverse": "0",
"overhang_reverse_threshold": "50%",
"overhang_speed_classic": "0",
"post_process": [],
"precise_outer_wall": "0",
"prime_tower_brim_width": "3",
"prime_tower_width": "60",
"prime_volume": "45",
"print_flow_ratio": "1",
"print_sequence": "by layer",
"print_settings_id": "0.20mm Standard @Thinker X400",
"raft_contact_distance": "0.1",
"raft_expansion": "1.5",
"raft_first_layer_density": "95%",
"raft_first_layer_expansion": "10",
"raft_layers": "0",
"reduce_crossing_wall": "0",
"reduce_infill_retraction": "1",
"resolution": "0.012",
"role_based_wipe_speed": "1",
"seam_gap": "10%",
"seam_position": "aligned",
"single_extruder_multi_material_priming": "1",
"skirt_distance": "2",
"skirt_height": "1",
"skirt_loops": "0",
"skirt_speed": "0",
"slice_closing_radius": "0.049",
"slicing_mode": "regular",
"slow_down_layers": "0",
"slowdown_for_curled_perimeters": "0",
"small_perimeter_speed": "50%",
"small_perimeter_threshold": "0",
"solid_infill_filament": "1",
"sparse_infill_acceleration": "100%",
"sparse_infill_density": "15%",
"sparse_infill_filament": "1",
"sparse_infill_line_width": "0.45",
"sparse_infill_pattern": "grid",
"sparse_infill_speed": "250",
"spiral_mode": "0",
"staggered_inner_seams": "0",
"standby_temperature_delta": "-5",
"support_angle": "0",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "2.5",
"support_bottom_interface_spacing": "0.5",
"support_bottom_z_distance": "0.2",
"support_critical_regions_only": "0",
"support_expansion": "0",
"support_filament": "0",
"support_interface_bottom_layers": "2",
"support_interface_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_pattern": "rectilinear",
"support_interface_spacing": "0.5",
"support_interface_speed": "60",
"support_interface_top_layers": "2",
"support_line_width": "0.42",
"support_object_xy_distance": "0.35",
"support_on_build_plate_only": "0",
"support_remove_small_overhang": "1",
"support_speed": "80",
"support_style": "default",
"support_threshold_angle": "30",
"support_top_z_distance": "0.2",
"support_type": "normal(auto)",
"thick_bridges": "0",
"timelapse_type": "0",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"top_solid_infill_flow_ratio": "1",
"top_surface_acceleration": "2000",
"top_surface_jerk": "9",
"top_surface_line_width": "0.42",
"top_surface_pattern": "monotonic",
"top_surface_speed": "200",
"travel_acceleration": "5000",
"travel_jerk": "12",
"travel_speed": "350",
"travel_speed_z": "0",
"tree_support_adaptive_layer_height": "1",
"tree_support_angle_slow": "25",
"tree_support_auto_brim": "1",
"tree_support_branch_angle": "45",
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_double_wall": "3",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "2",
"version": "1.9.0.2",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "classic",
"wall_infill_order": "inner wall/outer wall/infill",
"wall_loops": "2",
"wall_transition_angle": "10",
"wall_transition_filter_deviation": "25%",
"wall_transition_length": "100%",
"wipe_on_loops": "0",
"wipe_speed": "80%",
"wipe_tower_bridging": "10",
"wipe_tower_cone_angle": "0",
"wipe_tower_extra_spacing": "100%",
"wipe_tower_extruder": "0",
"wipe_tower_no_sparse_layers": "0",
"wipe_tower_rotation_angle": "0",
"wiping_volumes_extruders": [
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70",
"70"
],
"xy_contour_compensation": "0",
"xy_hole_compensation": "0"
}

View File

@ -0,0 +1,24 @@
{
"brim_object_gap": "0",
"default_acceleration": "8000",
"elefant_foot_compensation": "0.12",
"from": "User",
"gap_infill_speed": "220",
"inherits": "0.20mm Standard @Thinker X400",
"inner_wall_acceleration": "8000",
"inner_wall_speed": "220",
"internal_solid_infill_speed": "220",
"is_custom_defined": "0",
"layer_height": "0.24",
"name": "0.24mm Standard @Thinker X400",
"only_one_wall_top": "1",
"outer_wall_speed": "200",
"print_settings_id": "0.24mm Standard @Thinker X400",
"raft_first_layer_expansion": "10",
"sparse_infill_density": "15%",
"sparse_infill_speed": "220",
"top_shell_layers": "5",
"top_shell_thickness": "1",
"version": "1.9.0.2",
"wall_generator": "classic"
}

View File

@ -0,0 +1,118 @@
{
"type": "process",
"name": "fdm_process_common",
"from": "system",
"instantiation": "false",
"adaptive_layer_height": "0",
"reduce_crossing_wall": "0",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_thickness": "0.5",
"bridge_speed": "50",
"bridge_acceleration": "500",
"brim_width": "5",
"brim_object_gap": "0.1",
"compatible_printers": [],
"compatible_printers_condition": "",
"print_sequence": "by layer",
"default_acceleration": "2500",
"travel_acceleration": "2500",
"inner_wall_acceleration": "500",
"outer_wall_acceleration": "500",
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0.2",
"outer_wall_line_width": "0.42",
"wall_infill_order": "inner wall/outer wall/infill",
"line_width": "0.45",
"infill_direction": "45",
"sparse_infill_density": "15%",
"sparse_infill_pattern": "cubic",
"initial_layer_line_width": "0.45",
"initial_layer_print_height": "0.2",
"infill_combination": "0",
"sparse_infill_line_width": "0.48",
"infill_wall_overlap": "23%",
"interface_shells": "0",
"ironing_flow": "10%",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"filename_format": "{input_filename_base}_{filament_type[0]}_{printer_model}.gcode",
"detect_overhang_wall": "1",
"enable_overhang_speed": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "25",
"overhang_4_4_speed": "15",
"inner_wall_line_width": "0.45",
"wall_loops": "3",
"print_settings_id": "",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "3",
"skirt_height": "1",
"skirt_loops": "2",
"minimum_sparse_infill_area": "15",
"internal_solid_infill_line_width": "0.45",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "0",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.2",
"support_filament": "0",
"support_line_width": "0.36",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "2",
"support_interface_bottom_layers": "2",
"support_interface_spacing": "0.5",
"support_interface_speed": "80",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "2.5",
"support_speed": "125",
"support_threshold_angle": "40",
"support_object_xy_distance": "2.5",
"tree_support_branch_angle": "30",
"tree_support_wall_count": "0",
"tree_support_with_infill": "0",
"detect_thin_wall": "0",
"top_surface_pattern": "monotonicline",
"top_surface_line_width": "0.4",
"top_shell_thickness": "0.7",
"top_solid_infill_flow_ratio": "1",
"enable_prime_tower": "0",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"layer_height": "0.2",
"bottom_shell_layers": "4",
"top_shell_layers": "5",
"bridge_flow": "0.95",
"initial_layer_speed": "50",
"initial_layer_infill_speed": "50",
"initial_layer_travel_speed": "100%",
"outer_wall_speed": "125",
"inner_wall_speed": "250",
"sparse_infill_speed": "250",
"internal_solid_infill_speed": "200",
"top_surface_speed": "150",
"gap_infill_speed": "150",
"travel_speed": "300",
"travel_speed_z": "0",
"enable_arc_fitting": "0",
"ensure_vertical_shell_thickness": "1",
"precise_outer_wall": "1",
"independent_support_layer_height": "1",
"default_jerk": "15",
"infill_jerk": "15",
"initial_layer_jerk": "12",
"inner_wall_jerk": "15",
"outer_wall_jerk": "10",
"top_surface_jerk": "12",
"travel_jerk": "20"
}

View File

@ -62,6 +62,7 @@ PressureEqualizer::PressureEqualizer(const Slic3r::GCodeConfig &config) : m_use_
m_max_volumetric_extrusion_rate_slope_positive = float(config.max_volumetric_extrusion_rate_slope.value) * 60.f * 60.f;
m_max_volumetric_extrusion_rate_slope_negative = float(config.max_volumetric_extrusion_rate_slope.value) * 60.f * 60.f;
m_max_segment_length = float(config.max_volumetric_extrusion_rate_slope_segment_length.value);
m_extrusion_rate_smoothing_external_perimeter_only = bool(config.extrusion_rate_smoothing_external_perimeter_only.value);
}
for (ExtrusionRateSlope &extrusion_rate_slope : m_max_volumetric_extrusion_rate_slopes) {
@ -482,11 +483,25 @@ void PressureEqualizer::output_gcode_line(const size_t line_idx)
if (*comment != ';')
comment = nullptr;
// Emit the line with lowered extrusion rates.
// get the gcode line length
float l = line.dist_xyz();
if (auto nSegments = size_t(ceil(l / m_max_segment_length)); nSegments == 1) { // Just update this segment.
// number of segments this line can be broken down to
auto nSegments = size_t(ceil(l / m_max_segment_length));
// Orca:
// Calculate the absolute difference in volumetric extrusion rate between the start and end point of the line.
// Quantize it to 1mm3/min (0.016mm3/sec).
int delta_volumetric_rate = std::round(fabs(line.volumetric_extrusion_rate_end - line.volumetric_extrusion_rate_start));
// Emit the line with lowered extrusion rates.
// Orca:
// First, check if the change in volumetric extrusion rate is trivial (less than 10mm3/min -> 0.16mm3/sec (5mm/sec speed for a 0.25 mm nozzle).
// Or if the line size is equal in length with the smallest segment.
// If so, then emit the line as a single extrusion, i.e. dont split into segments.
if ( nSegments == 1 || delta_volumetric_rate < 10) {
push_line_to_output(line_idx, line.feedrate() * line.volumetric_correction_avg(), comment);
} else {
} else // The line needs to be split the line into segments and apply extrusion rate smoothing
{
bool accelerating = line.volumetric_extrusion_rate_start < line.volumetric_extrusion_rate_end;
// Update the initial and final feed rate values.
line.pos_start[4] = line.volumetric_extrusion_rate_start * line.pos_end[4] / line.volumetric_extrusion_rate;
@ -615,7 +630,9 @@ void PressureEqualizer::adjust_volumetric_rate(const size_t fist_line_idx, const
rate_end = rate_succ;
// don't alter the flow rate for these extrusion types
if (!line.adjustable_flow || line.extrusion_role == ExtrusionRole::erBridgeInfill || line.extrusion_role == ExtrusionRole::erIroning) {
// Orca: Limit ERS to external perimeters and overhangs if option selected by user
if (!line.adjustable_flow || line.extrusion_role == ExtrusionRole::erBridgeInfill || line.extrusion_role == ExtrusionRole::erIroning ||
(m_extrusion_rate_smoothing_external_perimeter_only && line.extrusion_role != ExtrusionRole::erOverhangPerimeter && line.extrusion_role != ExtrusionRole::erExternalPerimeter)) {
rate_end = line.volumetric_extrusion_rate_end;
} else if (line.volumetric_extrusion_rate_end > rate_end) {
line.volumetric_extrusion_rate_end = rate_end;
@ -670,10 +687,13 @@ void PressureEqualizer::adjust_volumetric_rate(const size_t fist_line_idx, const
float rate_start = feedrate_per_extrusion_role[iRole];
// don't alter the flow rate for these extrusion types
if (!line.adjustable_flow || line.extrusion_role == ExtrusionRole::erBridgeInfill || line.extrusion_role == ExtrusionRole::erIroning) {
// Orca: Limit ERS to external perimeters and overhangs if option selected by user
if (!line.adjustable_flow || line.extrusion_role == ExtrusionRole::erBridgeInfill || line.extrusion_role == ExtrusionRole::erIroning ||
(m_extrusion_rate_smoothing_external_perimeter_only && line.extrusion_role != ExtrusionRole::erOverhangPerimeter && line.extrusion_role != ExtrusionRole::erExternalPerimeter)) {
rate_start = line.volumetric_extrusion_rate_start;
} else if (iRole == size_t(line.extrusion_role) && rate_prec < rate_start)
rate_start = rate_prec;
if (line.volumetric_extrusion_rate_start > rate_start) {
line.volumetric_extrusion_rate_start = rate_start;
line.max_volumetric_extrusion_rate_slope_positive = rate_slope;
@ -769,7 +789,8 @@ void PressureEqualizer::push_line_to_output(const size_t line_idx, float new_fee
// Orca: sanity check, 1 mm/s is the minimum feedrate.
if (new_feedrate < 60)
new_feedrate = 60;
new_feedrate = std::round(new_feedrate);
// Quantize speed changes to a minimum of 1mm/sec, to reduce gcode volume for trivial speed changes.
new_feedrate = std::round(new_feedrate / 60.0) * 60.0;
const GCodeLine &line = m_gcode_lines[line_idx];
if (line_idx > 0 && output_buffer_length > 0) {
const std::string prev_line_str = std::string(output_buffer.begin() + int(this->output_buffer_prev_length),

View File

@ -83,6 +83,9 @@ private:
// Maximum segment length to split a long segment if the initial and the final flow rate differ.
// Smaller value means a smoother transition between two different flow rates.
float m_max_segment_length;
// Apply ERS only on external perimeters and overhangs
bool m_extrusion_rate_smoothing_external_perimeter_only;
// Indicate if extrude set speed block was opened using the tag ";_EXTRUDE_SET_SPEED"
// or not (not opened, or it was closed using the tag ";_EXTRUDE_END").

View File

@ -770,7 +770,7 @@ static std::vector<std::string> s_Preset_print_options {
"ironing_type", "ironing_pattern", "ironing_flow", "ironing_speed", "ironing_spacing", "ironing_angle",
"max_travel_detour_distance",
"fuzzy_skin", "fuzzy_skin_thickness", "fuzzy_skin_point_distance", "fuzzy_skin_first_layer",
"max_volumetric_extrusion_rate_slope", "max_volumetric_extrusion_rate_slope_segment_length",
"max_volumetric_extrusion_rate_slope", "max_volumetric_extrusion_rate_slope_segment_length","extrusion_rate_smoothing_external_perimeter_only",
"inner_wall_speed", "outer_wall_speed", "sparse_infill_speed", "internal_solid_infill_speed",
"top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed",
"bridge_speed", "internal_bridge_speed", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed",

View File

@ -144,6 +144,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
"slow_down_min_speed",
"max_volumetric_extrusion_rate_slope",
"max_volumetric_extrusion_rate_slope_segment_length",
"extrusion_rate_smoothing_external_perimeter_only",
"reduce_infill_retraction",
"filename_format",
"retraction_minimum_travel",

View File

@ -722,7 +722,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("Initial layer");
def->full_label = L("Initial layer bed temperature");
def->tooltip = L("Bed temperature of the initial layer. "
"Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack");
"Value 0 means the filament does not support to print on the Cool Plate SuperTack");
def->sidetext = "°C";
def->min = 0;
def->max = 120;
@ -789,8 +789,8 @@ void PrintConfigDef::init_fff_params()
def->enum_values.emplace_back("High Temp Plate");
def->enum_values.emplace_back("Textured PEI Plate");
def->enum_values.emplace_back("Textured Cool Plate");
def->enum_labels.emplace_back(L("Bambu Cool Plate SuperTack"));
def->enum_labels.emplace_back(L("Smooth Cool Plate / PLA Plate"));
def->enum_labels.emplace_back(L("Cool Plate (SuperTack)"));
def->enum_labels.emplace_back(L("Smooth Cool Plate"));
def->enum_labels.emplace_back(L("Engineering Plate"));
def->enum_labels.emplace_back(L("Smooth High Temp Plate"));
def->enum_labels.emplace_back(L("Textured PEI Plate"));
@ -3345,16 +3345,25 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0));
def = this->add("max_volumetric_extrusion_rate_slope_segment_length", coInt);
def = this->add("max_volumetric_extrusion_rate_slope_segment_length", coFloat);
def->label = L("Smoothing segment length");
def->tooltip = L("A lower value results in smoother extrusion rate transitions. However, this results in a significantly larger gcode file "
"and more instructions for the printer to process. \n\n"
"Default value of 3 works well for most cases. If your printer is stuttering, increase this value to reduce the number of adjustments made\n\n"
"Allowed values: 1-5");
def->min = 1;
"Allowed values: 0.5-5");
def->min = 0.5;
def->max = 5;
def->sidetext = L("mm");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionInt(3));
def->set_default_value(new ConfigOptionFloat(3.0));
def = this->add("extrusion_rate_smoothing_external_perimeter_only", coBool);
def->label = L("Apply only on external features");
def->tooltip = L("Applies extrusion rate smoothing only on external perimeters and overhangs. This can help reduce artefacts due to sharp speed transitions on externally visible "
"overhangs without impacting the print speed of features that will not be visible to the user.");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false));
def = this->add("fan_min_speed", coFloats);
def->label = L("Fan speed");

View File

@ -1091,7 +1091,9 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionString, time_lapse_gcode))
((ConfigOptionFloat, max_volumetric_extrusion_rate_slope))
((ConfigOptionInt, max_volumetric_extrusion_rate_slope_segment_length))
((ConfigOptionFloat, max_volumetric_extrusion_rate_slope_segment_length))
((ConfigOptionBool, extrusion_rate_smoothing_external_perimeter_only))
((ConfigOptionPercents, retract_before_wipe))
((ConfigOptionFloats, retraction_length))

View File

@ -5,6 +5,9 @@
#define SLIC3R_APP_KEY "@SLIC3R_APP_KEY@"
#define SLIC3R_VERSION "@SLIC3R_VERSION@"
#define SoftFever_VERSION "@SoftFever_VERSION@"
#ifndef GIT_COMMIT_HASH
#define GIT_COMMIT_HASH "0000000" // 0000000 means uninitialized
#endif
#define SLIC3R_BUILD_ID "@SLIC3R_BUILD_ID@"
#define SLIC3R_BUILD_TIME "@SLIC3R_BUILD_TIME@"
//#define SLIC3R_RC_VERSION "@SLIC3R_VERSION@"

View File

@ -241,11 +241,18 @@ AboutDialog::AboutDialog()
// version
{
auto _build_string_font = Label::Body_10;
// _build_string_font.SetStyle(wxFONTSTYLE_ITALIC);
vesizer->Add(0, FromDIP(165), 1, wxEXPAND, FromDIP(5));
auto version_string = _L("Orca Slicer ") + " " + std::string(SoftFever_VERSION);
auto version_string = _L("Orca Slicer") + " " + std::string(SoftFever_VERSION);
wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize);
wxStaticText* bs_version = new wxStaticText(this, wxID_ANY, wxString::Format("Based on PrusaSlicer and BambuStudio"), wxDefaultPosition, wxDefaultSize);
bs_version->SetFont(Label::Body_12);
wxStaticText* credits_string = new wxStaticText(this, wxID_ANY,
wxString::Format("Build %s.\nOrcaSlicer is based on PrusaSlicer and BambuStudio",
std::string(GIT_COMMIT_HASH)),
wxDefaultPosition, wxDefaultSize);
credits_string->SetFont(_build_string_font);
wxFont version_font = GetFont();
#ifdef __WXMSW__
version_font.SetPointSize(version_font.GetPointSize()-1);
@ -255,13 +262,12 @@ AboutDialog::AboutDialog()
version_font.SetPointSize(FromDIP(16));
version->SetFont(version_font);
version->SetForegroundColour(wxColour("#FFFFFD"));
bs_version->SetForegroundColour(wxColour("#FFFFFD"));
credits_string->SetForegroundColour(wxColour("#FFFFFD"));
version->SetBackgroundColour(wxColour("#4d4d4d"));
bs_version->SetBackgroundColour(wxColour("#4d4d4d"));
credits_string->SetBackgroundColour(wxColour("#4d4d4d"));
vesizer->Add(version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5));
vesizer->Add(bs_version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5));
vesizer->Add(credits_string, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5));
// #if BBL_INTERNAL_TESTING
// wxString build_time = wxString::Format("Build Time: %s", std::string(SLIC3R_BUILD_TIME));
// wxStaticText* build_time_text = new wxStaticText(this, wxID_ANY, build_time, wxDefaultPosition, wxDefaultSize);

View File

@ -494,13 +494,14 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
auto gcflavor = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
bool have_volumetric_extrusion_rate_slope = config->option<ConfigOptionFloat>("max_volumetric_extrusion_rate_slope")->value > 0;
int have_volumetric_extrusion_rate_slope_segment_length = config->option<ConfigOptionInt>("max_volumetric_extrusion_rate_slope_segment_length")->value;
float have_volumetric_extrusion_rate_slope_segment_length = config->option<ConfigOptionFloat>("max_volumetric_extrusion_rate_slope_segment_length")->value;
toggle_field("enable_arc_fitting", !have_volumetric_extrusion_rate_slope);
toggle_line("max_volumetric_extrusion_rate_slope_segment_length", have_volumetric_extrusion_rate_slope);
toggle_line("extrusion_rate_smoothing_external_perimeter_only", have_volumetric_extrusion_rate_slope);
if(have_volumetric_extrusion_rate_slope) config->set_key_value("enable_arc_fitting", new ConfigOptionBool(false));
if(have_volumetric_extrusion_rate_slope_segment_length==0) {
if(have_volumetric_extrusion_rate_slope_segment_length < 0.5) {
DynamicPrintConfig new_conf = *config;
new_conf.set_key_value("max_volumetric_extrusion_rate_slope_segment_length", new ConfigOptionInt(1));
new_conf.set_key_value("max_volumetric_extrusion_rate_slope_segment_length", new ConfigOptionFloat(1));
apply(config, &new_conf);
}

View File

@ -2215,6 +2215,7 @@ void TabPrint::build()
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "extrusion-rate-smoothing");
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_segment_length", "extrusion-rate-smoothing");
optgroup->append_single_option_line("extrusion_rate_smoothing_external_perimeter_only", "extrusion-rate-smoothing");
page = add_options_page(L("Support"), "custom-gcode_support"); // ORCA: icon only visible on placeholders
optgroup = page->new_optgroup(L("Support"), L"param_support");
@ -3335,12 +3336,12 @@ void TabFilament::build()
optgroup->append_line(line);
optgroup = page->new_optgroup(L("Bed temperature"), L"param_bed_temp");
line = {L("Bambu Cool Plate SuperTack"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Bambu Cool Plate SuperTack")};
line = {L("Cool Plate (SuperTack)"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate SuperTack")};
line.append_option(optgroup->get_option("supertack_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("supertack_plate_temp"));
optgroup->append_line(line);
line = { L("Cool Plate / PLA Plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") };
line = { L("Cool Plate"), L("Bed temperature when cool plate is installed. Value 0 means the filament does not support to print on the Cool Plate") };
line.append_option(optgroup->get_option("cool_plate_temp_initial_layer"));
line.append_option(optgroup->get_option("cool_plate_temp"));
optgroup->append_line(line);
@ -3611,7 +3612,9 @@ void TabFilament::toggle_options()
{
bool pa = m_config->opt_bool("enable_pressure_advance", 0);
toggle_option("pressure_advance", pa);
// Orca: Enable the plates that should be visible when multi bed support is enabled or a BBL printer is selected
auto support_multi_bed_types = is_BBL_printer || cfg.opt_bool("support_multi_bed_types");
toggle_line("supertack_plate_temp_initial_layer", support_multi_bed_types );
toggle_line("cool_plate_temp_initial_layer", support_multi_bed_types );
toggle_line("textured_cool_plate_temp_initial_layer", support_multi_bed_types);
toggle_line("eng_plate_temp_initial_layer", support_multi_bed_types);
@ -3633,9 +3636,6 @@ void TabFilament::toggle_options()
bool support_chamber_temp_control = this->m_preset_bundle->printers.get_edited_preset().config.opt_bool("support_chamber_temp_control");
toggle_line("chamber_temperatures", support_chamber_temp_control);
for (auto el : {"supertack_plate_temp", "supertack_plate_temp_initial_layer", "cool_plate_temp", "cool_plate_temp_initial_layer", "eng_plate_temp", "eng_plate_temp_initial_layer", "textured_plate_temp", "textured_plate_temp_initial_layer"})
toggle_line(el, is_BBL_printer);
}
if (m_active_page->title() == L("Setting Overrides"))
update_filament_overrides_page(&cfg);

View File

@ -227,6 +227,7 @@ enum FILAMENT_TYPE : int
tPLA = 0,
tABS_ASA,
tPETG,
tPCTG,
tTPU,
tPA_CF,
tPET_CF,
@ -384,6 +385,10 @@ void Temp_Calibration_Dlg::on_filament_type_changed(wxCommandEvent& event) {
start = 250;
end = 230;
break;
case tPCTG:
start = 240;
end = 280;
break;
case tTPU:
start = 240;
end = 210;