Merge branch 'main' into release/v2.4

This commit is contained in:
SoftFever
2026-06-08 22:19:50 +08:00
224 changed files with 6219 additions and 4591 deletions
+127
View File
@@ -0,0 +1,127 @@
name: Publish to draft release
# Manually pulls the platform binaries produced by a "Build all" run and uploads
# them to an existing DRAFT release. Decoupled from the build so you can test a
# build first, then publish exactly that run's artifacts once you're happy.
#
# Trigger: Actions tab -> "Publish to draft release" -> Run workflow.
# Locked to a single person: the first step aborts unless the actor matches the
# `RELEASE_PUBLISHER` repo variable (set to "SoftFever"). To allow someone else,
# change that variable: gh variable set RELEASE_PUBLISHER --body "<login>".
on:
workflow_dispatch:
inputs:
run_id:
description: 'Run ID of the "Build all" workflow to pull binaries from (the number in the Actions run URL)'
required: true
type: string
tag:
description: 'Tag of the draft release to upload to (e.g. v2.4.0-beta)'
required: true
type: string
permissions:
contents: write # upload release assets
actions: read # download artifacts from another run
jobs:
publish:
name: Publish binaries to draft release
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RUN_ID: ${{ inputs.run_id }}
TAG: ${{ inputs.tag }}
steps:
- name: Restrict to the release publisher
env:
PUBLISHER: ${{ vars.RELEASE_PUBLISHER }}
run: |
if [ -z "$PUBLISHER" ]; then
echo "::error::RELEASE_PUBLISHER repo variable is not set."
exit 1
fi
if [ "${{ github.actor }}" != "$PUBLISHER" ]; then
echo "::error::Only @$PUBLISHER may run this workflow (you are @${{ github.actor }})."
exit 1
fi
echo "Authorized: @${{ github.actor }}"
- name: Verify target is a draft release
run: |
if ! gh release view "$TAG" --repo "$GITHUB_REPOSITORY" --json isDraft >/dev/null 2>&1; then
echo "::error::Release '$TAG' not found. Create the draft (with this tag) first."
exit 1
fi
is_draft=$(gh release view "$TAG" --repo "$GITHUB_REPOSITORY" --json isDraft --jq '.isDraft')
if [ "$is_draft" != "true" ]; then
echo "::error::Release '$TAG' is published, not a draft. Aborting to avoid touching a live release."
exit 1
fi
- name: Verify source build run
run: |
info=$(gh run view "$RUN_ID" --repo "$GITHUB_REPOSITORY" --json workflowName,conclusion,headBranch)
name=$(echo "$info" | jq -r '.workflowName')
conclusion=$(echo "$info" | jq -r '.conclusion')
branch=$(echo "$info" | jq -r '.headBranch')
echo "Source run #$RUN_ID: '$name' on '$branch' (conclusion: $conclusion)"
if [ "$conclusion" != "success" ]; then
echo "::warning::Source run did not conclude 'success' ($conclusion). Some assets may be missing."
fi
- name: Download release artifacts from build run
run: |
gh run download "$RUN_ID" --repo "$GITHUB_REPOSITORY" --dir artifacts \
-p 'OrcaSlicer_Windows_*' \
-p 'OrcaSlicer_Mac_universal_*' \
-p 'OrcaSlicer_Linux_ubuntu_*' \
-p 'OrcaSlicer-Linux-flatpak_*' \
-p 'PDB'
echo "Downloaded artifact folders:"
ls -1 artifacts
- name: Assemble release assets
run: |
set -euo pipefail
mkdir -p upload
# gh run download auto-extracts each artifact into a folder, so the inner
# binaries are already unzipped. Copy the inner binary for each platform.
# -type f is required (some artifact *folders* are named "*.flatpak").
# Windows installer: the .exe inside the installer artifact, NOT the
# orca-slicer.exe that lives in the portable app folder.
find artifacts -type f -name '*.exe' -path '*OrcaSlicer_Windows_*' ! -path '*_portable*' -exec cp -v {} upload/ \;
# macOS universal DMG (profile-validator DMG isn't downloaded).
find artifacts -type f -name '*.dmg' -path '*OrcaSlicer_Mac_universal_*' -exec cp -v {} upload/ \;
# Linux AppImage.
find artifacts -type f -name '*.AppImage' -exec cp -v {} upload/ \;
# Flatpak bundles (x86_64 + aarch64).
find artifacts -type f -name '*.flatpak' -exec cp -v {} upload/ \;
# Windows debug symbols (PDB archive, for developers).
find artifacts -type f -name 'Debug_PDB_*.7z' -exec cp -v {} upload/ \;
# Portable Windows build is an unzipped folder artifact; re-zip it to the
# released filename (this one stays a .zip on the release).
portable_dir=$(find artifacts -maxdepth 1 -type d -name 'OrcaSlicer_Windows_*_portable' | head -n1)
if [ -n "${portable_dir:-}" ]; then
( cd "$portable_dir" && zip -qr "$GITHUB_WORKSPACE/upload/$(basename "$portable_dir").zip" . )
echo "Zipped portable -> $(basename "$portable_dir").zip"
else
echo "::warning::Windows portable artifact not found."
fi
echo "Assets to upload:"
ls -lh upload
if [ -z "$(ls -A upload)" ]; then
echo "::error::No assets assembled. Check the run_id and that its artifacts haven't expired."
exit 1
fi
- name: Upload assets to draft release
run: |
gh release upload "$TAG" upload/* --repo "$GITHUB_REPOSITORY" --clobber
echo "Uploaded to draft release: $TAG"
gh release view "$TAG" --repo "$GITHUB_REPOSITORY" --json assets --jq '.assets[].name'
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
<line x1="0.5" y1="4.5" x2="7.5" y2="4.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/>
<line x1="15.5" y1="4.5" x2="16.5" y2="4.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/>
<rect x="7.5" y="0.5" width="8" height="13" rx="1" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/>
<circle cx="11.5" cy="7.5" r="2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/>
<polyline points="9.5 13.5 11.5 16.5 13.5 13.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/>
<path d="M1.5 6.2 L1.5 11.6 C1.5 14.0 3.0 15.5 5.4 15.5 L8.2 15.5"
style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/>
</svg>

After

Width:  |  Height:  |  Size: 867 B

+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
"version": "02.01.00.15",
"version": "02.01.00.16",
"force_update": "0",
"description": "BBL configurations",
"machine_model_list": [
@@ -145,6 +145,7 @@
"20"
],
"support_chamber_temp_control": "1",
"support_air_filtration": "1",
"upward_compatible_machine": [
"Bambu Lab A1 0.4 nozzle",
"Bambu Lab P2S 0.4 nozzle",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "M3D",
"version": "02.04.00.00",
"version": "02.04.00.01",
"force_update": "0",
"description": "Configuration for M3D printers",
"machine_model_list": [
@@ -40,6 +40,5 @@
"support_type": "normal(manual)",
"travel_speed": "100",
"wall_loops": "2",
"wipe_tower_extra_spacing": "200%",
"wipe_tower_filament": "2"
"wipe_tower_extra_spacing": "200%"
}
@@ -41,6 +41,5 @@
"top_surface_speed": "40",
"travel_speed": "100",
"wall_loops": "2",
"wipe_tower_extra_spacing": "200%",
"wipe_tower_filament": "2"
"wipe_tower_extra_spacing": "200%"
}
@@ -25,6 +25,5 @@
"top_surface_speed": "40",
"travel_speed": "100",
"wall_loops": "2",
"wipe_tower_extra_spacing": "200%",
"wipe_tower_filament": "2"
"wipe_tower_extra_spacing": "200%"
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "SeeMeCNC",
"version": "2.4.0.00",
"version": "2.4.0.01",
"force_update": "1",
"description": "SeeMeCNC configurations - Full profile set for Artemis, BOSSdelta, and RostockMAX printers",
"machine_model_list": [
@@ -261,5 +261,17 @@
],
"keep_fan_always_on": [
"0"
],
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
]
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC ABS 0.4 nozzle",
"inherits": "SeeMeCNC ABS",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC ABS 0.4 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.4 nozzle",
"SeeMeCNC BOSSdelta 300 0.4 nozzle",
"SeeMeCNC RostockMAX v3.2 0.4 nozzle",
"SeeMeCNC RostockMAX v4 0.4 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.16mm Fine @SeeMeCNC Artemis 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v4 0.4",
"0.20mm Standard @SeeMeCNC Artemis 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v4 0.4",
"0.24mm Draft @SeeMeCNC Artemis 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v4 0.4",
"0.28mm Extra Draft @SeeMeCNC Artemis 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.2"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFB00104"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC ABS 0.5 nozzle",
"inherits": "SeeMeCNC ABS",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC ABS 0.5 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.5 nozzle",
"SeeMeCNC BOSSdelta 300 0.5 nozzle",
"SeeMeCNC RostockMAX v3.2 0.5 nozzle",
"SeeMeCNC RostockMAX v4 0.5 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.20mm Fine @SeeMeCNC Artemis 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v4 0.5",
"0.25mm Standard @SeeMeCNC Artemis 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v4 0.5",
"0.30mm Draft @SeeMeCNC Artemis 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v4 0.5",
"0.35mm Extra Draft @SeeMeCNC Artemis 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFB00105"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC ABS 0.7 nozzle",
"inherits": "SeeMeCNC ABS",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC ABS 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.28mm Fine @SeeMeCNC Artemis 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v4 0.7",
"0.35mm Standard @SeeMeCNC Artemis 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v4 0.7",
"0.42mm Draft @SeeMeCNC Artemis 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v4 0.7",
"0.49mm Extra Draft @SeeMeCNC Artemis 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.4"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFB00107"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC ABS 1.0 nozzle",
"inherits": "SeeMeCNC ABS",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC ABS 1.0 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0505 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0510 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0521 1.0 nozzle",
"SeeMeCNC BOSSdelta 300 1.0 nozzle",
"SeeMeCNC RostockMAX v3.2 1.0 nozzle",
"SeeMeCNC RostockMAX v4 1.0 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.40mm Fine @SeeMeCNC Artemis 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v4 1.0",
"0.50mm Standard @SeeMeCNC Artemis 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v4 1.0",
"0.60mm Draft @SeeMeCNC Artemis 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v4 1.0",
"0.70mm Extra Draft @SeeMeCNC Artemis 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.5"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFB00110"
}
@@ -264,5 +264,17 @@
],
"keep_fan_always_on": [
"0"
],
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
]
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PA-CF 0.4 nozzle",
"inherits": "SeeMeCNC PA-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PA-CF 0.4 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.4 nozzle",
"SeeMeCNC BOSSdelta 300 0.4 nozzle",
"SeeMeCNC RostockMAX v3.2 0.4 nozzle",
"SeeMeCNC RostockMAX v4 0.4 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.16mm Fine @SeeMeCNC Artemis 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v4 0.4",
"0.20mm Standard @SeeMeCNC Artemis 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v4 0.4",
"0.24mm Draft @SeeMeCNC Artemis 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v4 0.4",
"0.28mm Extra Draft @SeeMeCNC Artemis 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.2"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFN00104"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PA-CF 0.5 nozzle",
"inherits": "SeeMeCNC PA-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PA-CF 0.5 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.5 nozzle",
"SeeMeCNC BOSSdelta 300 0.5 nozzle",
"SeeMeCNC RostockMAX v3.2 0.5 nozzle",
"SeeMeCNC RostockMAX v4 0.5 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.20mm Fine @SeeMeCNC Artemis 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v4 0.5",
"0.25mm Standard @SeeMeCNC Artemis 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v4 0.5",
"0.30mm Draft @SeeMeCNC Artemis 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v4 0.5",
"0.35mm Extra Draft @SeeMeCNC Artemis 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFN00105"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PA-CF 0.7 nozzle",
"inherits": "SeeMeCNC PA-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PA-CF 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.28mm Fine @SeeMeCNC Artemis 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v4 0.7",
"0.35mm Standard @SeeMeCNC Artemis 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v4 0.7",
"0.42mm Draft @SeeMeCNC Artemis 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v4 0.7",
"0.49mm Extra Draft @SeeMeCNC Artemis 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.4"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFN00107"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PA-CF 1.0 nozzle",
"inherits": "SeeMeCNC PA-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PA-CF 1.0 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0505 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0510 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0521 1.0 nozzle",
"SeeMeCNC BOSSdelta 300 1.0 nozzle",
"SeeMeCNC RostockMAX v3.2 1.0 nozzle",
"SeeMeCNC RostockMAX v4 1.0 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.40mm Fine @SeeMeCNC Artemis 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v4 1.0",
"0.50mm Standard @SeeMeCNC Artemis 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v4 1.0",
"0.60mm Draft @SeeMeCNC Artemis 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v4 1.0",
"0.70mm Extra Draft @SeeMeCNC Artemis 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.5"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFN00110"
}
@@ -261,5 +261,17 @@
],
"keep_fan_always_on": [
"0"
],
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
]
}
@@ -261,5 +261,17 @@
],
"keep_fan_always_on": [
"1"
],
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
]
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG 0.4 nozzle",
"inherits": "SeeMeCNC PETG",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG 0.4 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.4 nozzle",
"SeeMeCNC BOSSdelta 300 0.4 nozzle",
"SeeMeCNC RostockMAX v3.2 0.4 nozzle",
"SeeMeCNC RostockMAX v4 0.4 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.16mm Fine @SeeMeCNC Artemis 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v4 0.4",
"0.20mm Standard @SeeMeCNC Artemis 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v4 0.4",
"0.24mm Draft @SeeMeCNC Artemis 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v4 0.4",
"0.28mm Extra Draft @SeeMeCNC Artemis 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.2"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00104"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG 0.5 nozzle",
"inherits": "SeeMeCNC PETG",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG 0.5 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.5 nozzle",
"SeeMeCNC BOSSdelta 300 0.5 nozzle",
"SeeMeCNC RostockMAX v3.2 0.5 nozzle",
"SeeMeCNC RostockMAX v4 0.5 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.20mm Fine @SeeMeCNC Artemis 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v4 0.5",
"0.25mm Standard @SeeMeCNC Artemis 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v4 0.5",
"0.30mm Draft @SeeMeCNC Artemis 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v4 0.5",
"0.35mm Extra Draft @SeeMeCNC Artemis 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00105"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG 0.7 nozzle",
"inherits": "SeeMeCNC PETG",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.28mm Fine @SeeMeCNC Artemis 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v4 0.7",
"0.35mm Standard @SeeMeCNC Artemis 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v4 0.7",
"0.42mm Draft @SeeMeCNC Artemis 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v4 0.7",
"0.49mm Extra Draft @SeeMeCNC Artemis 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.4"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00107"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG 1.0 nozzle",
"inherits": "SeeMeCNC PETG",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG 1.0 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0505 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0510 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0521 1.0 nozzle",
"SeeMeCNC BOSSdelta 300 1.0 nozzle",
"SeeMeCNC RostockMAX v3.2 1.0 nozzle",
"SeeMeCNC RostockMAX v4 1.0 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.40mm Fine @SeeMeCNC Artemis 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v4 1.0",
"0.50mm Standard @SeeMeCNC Artemis 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v4 1.0",
"0.60mm Draft @SeeMeCNC Artemis 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v4 1.0",
"0.70mm Extra Draft @SeeMeCNC Artemis 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"7"
],
"filament_z_hop": [
"0.5"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00110"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG-CF 0.4 nozzle",
"inherits": "SeeMeCNC PETG-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG-CF 0.4 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.4 nozzle",
"SeeMeCNC BOSSdelta 300 0.4 nozzle",
"SeeMeCNC RostockMAX v3.2 0.4 nozzle",
"SeeMeCNC RostockMAX v4 0.4 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.16mm Fine @SeeMeCNC Artemis 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v4 0.4",
"0.20mm Standard @SeeMeCNC Artemis 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v4 0.4",
"0.24mm Draft @SeeMeCNC Artemis 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v4 0.4",
"0.28mm Extra Draft @SeeMeCNC Artemis 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.2"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00204"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG-CF 0.5 nozzle",
"inherits": "SeeMeCNC PETG-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG-CF 0.5 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.5 nozzle",
"SeeMeCNC BOSSdelta 300 0.5 nozzle",
"SeeMeCNC RostockMAX v3.2 0.5 nozzle",
"SeeMeCNC RostockMAX v4 0.5 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.20mm Fine @SeeMeCNC Artemis 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v4 0.5",
"0.25mm Standard @SeeMeCNC Artemis 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v4 0.5",
"0.30mm Draft @SeeMeCNC Artemis 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v4 0.5",
"0.35mm Extra Draft @SeeMeCNC Artemis 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00205"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG-CF 0.7 nozzle",
"inherits": "SeeMeCNC PETG-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG-CF 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.28mm Fine @SeeMeCNC Artemis 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v4 0.7",
"0.35mm Standard @SeeMeCNC Artemis 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v4 0.7",
"0.42mm Draft @SeeMeCNC Artemis 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v4 0.7",
"0.49mm Extra Draft @SeeMeCNC Artemis 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.4"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00207"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PETG-CF 1.0 nozzle",
"inherits": "SeeMeCNC PETG-CF",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PETG-CF 1.0 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0505 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0510 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0521 1.0 nozzle",
"SeeMeCNC BOSSdelta 300 1.0 nozzle",
"SeeMeCNC RostockMAX v3.2 1.0 nozzle",
"SeeMeCNC RostockMAX v4 1.0 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.40mm Fine @SeeMeCNC Artemis 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v4 1.0",
"0.50mm Standard @SeeMeCNC Artemis 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v4 1.0",
"0.60mm Draft @SeeMeCNC Artemis 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v4 1.0",
"0.70mm Extra Draft @SeeMeCNC Artemis 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.5"
],
"filament_retraction_speed": [
"40"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFG00210"
}
@@ -443,5 +443,17 @@
"volumetric_speed_coefficients": [
""
],
"description": "SeeMeCNC configurations"
"description": "SeeMeCNC configurations",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
]
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PLA 0.4 nozzle",
"inherits": "SeeMeCNC PLA",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PLA 0.4 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.4 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.4 nozzle",
"SeeMeCNC BOSSdelta 300 0.4 nozzle",
"SeeMeCNC RostockMAX v3.2 0.4 nozzle",
"SeeMeCNC RostockMAX v4 0.4 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.16mm Fine @SeeMeCNC Artemis 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 300 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.16mm Fine @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v3.2 0.4",
"0.16mm Fine @SeeMeCNC RostockMAX v4 0.4",
"0.20mm Standard @SeeMeCNC Artemis 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 300 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.20mm Standard @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v3.2 0.4",
"0.20mm Standard @SeeMeCNC RostockMAX v4 0.4",
"0.24mm Draft @SeeMeCNC Artemis 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.24mm Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.24mm Draft @SeeMeCNC RostockMAX v4 0.4",
"0.28mm Extra Draft @SeeMeCNC Artemis 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 300 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.4",
"0.28mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.4",
"0.28mm Extra Draft @SeeMeCNC RostockMAX v4 0.4"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.2"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFL00104"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PLA 0.5 nozzle",
"inherits": "SeeMeCNC PLA",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PLA 0.5 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.5 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.5 nozzle",
"SeeMeCNC BOSSdelta 300 0.5 nozzle",
"SeeMeCNC RostockMAX v3.2 0.5 nozzle",
"SeeMeCNC RostockMAX v4 0.5 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.20mm Fine @SeeMeCNC Artemis 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 300 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.20mm Fine @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v3.2 0.5",
"0.20mm Fine @SeeMeCNC RostockMAX v4 0.5",
"0.25mm Standard @SeeMeCNC Artemis 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 300 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.25mm Standard @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v3.2 0.5",
"0.25mm Standard @SeeMeCNC RostockMAX v4 0.5",
"0.30mm Draft @SeeMeCNC Artemis 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.30mm Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.30mm Draft @SeeMeCNC RostockMAX v4 0.5",
"0.35mm Extra Draft @SeeMeCNC Artemis 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 300 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.5",
"0.35mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.5",
"0.35mm Extra Draft @SeeMeCNC RostockMAX v4 0.5"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"5"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFL00105"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PLA 0.7 nozzle",
"inherits": "SeeMeCNC PLA",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PLA 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.28mm Fine @SeeMeCNC Artemis 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 300 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.28mm Fine @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v3.2 0.7",
"0.28mm Fine @SeeMeCNC RostockMAX v4 0.7",
"0.35mm Standard @SeeMeCNC Artemis 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm Standard @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm Standard @SeeMeCNC RostockMAX v4 0.7",
"0.42mm Draft @SeeMeCNC Artemis 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.42mm Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.42mm Draft @SeeMeCNC RostockMAX v4 0.7",
"0.49mm Extra Draft @SeeMeCNC Artemis 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 300 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.49mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v3.2 0.7",
"0.49mm Extra Draft @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.4"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFL00107"
}
@@ -0,0 +1,64 @@
{
"type": "filament",
"name": "SeeMeCNC PLA 1.0 nozzle",
"inherits": "SeeMeCNC PLA",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC PLA 1.0 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0505 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0510 1.0 nozzle",
"SeeMeCNC BOSSdelta 500 0521 1.0 nozzle",
"SeeMeCNC BOSSdelta 300 1.0 nozzle",
"SeeMeCNC RostockMAX v3.2 1.0 nozzle",
"SeeMeCNC RostockMAX v4 1.0 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.40mm Fine @SeeMeCNC Artemis 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 300 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.40mm Fine @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v3.2 1.0",
"0.40mm Fine @SeeMeCNC RostockMAX v4 1.0",
"0.50mm Standard @SeeMeCNC Artemis 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 300 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.50mm Standard @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v3.2 1.0",
"0.50mm Standard @SeeMeCNC RostockMAX v4 1.0",
"0.60mm Draft @SeeMeCNC Artemis 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.60mm Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.60mm Draft @SeeMeCNC RostockMAX v4 1.0",
"0.70mm Extra Draft @SeeMeCNC Artemis 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 300 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0505 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0510 1.0",
"0.70mm Extra Draft @SeeMeCNC BOSSdelta 500 0521 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v3.2 1.0",
"0.70mm Extra Draft @SeeMeCNC RostockMAX v4 1.0"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"6"
],
"filament_z_hop": [
"0.5"
],
"filament_retraction_speed": [
"45"
],
"filament_deretraction_speed": [
"35"
],
"filament_id": "SMCFL00110"
}
@@ -141,13 +141,13 @@
"60"
],
"filament_retraction_length": [
"20"
"6"
],
"filament_retraction_speed": [
"120"
"30"
],
"filament_deretraction_speed": [
"120"
"25"
],
"filament_retraction_minimum_travel": [
"15"
@@ -162,7 +162,7 @@
"0"
],
"filament_z_hop": [
"0"
"0.3"
],
"filament_z_hop_types": [
"Normal Lift"
@@ -0,0 +1,50 @@
{
"type": "filament",
"name": "SeeMeCNC TPU 0.7 nozzle",
"inherits": "SeeMeCNC TPU",
"from": "System",
"instantiation": "true",
"filament_settings_id": [
"SeeMeCNC TPU 0.7 nozzle"
],
"compatible_printers": [
"SeeMeCNC Artemis 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0505 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0510 0.7 nozzle",
"SeeMeCNC BOSSdelta 500 0521 0.7 nozzle",
"SeeMeCNC BOSSdelta 300 0.7 nozzle",
"SeeMeCNC RostockMAX v3.2 0.7 nozzle",
"SeeMeCNC RostockMAX v4 0.7 nozzle"
],
"compatible_printers_condition": "",
"compatible_prints": [
"0.30mm TPU Solid @SeeMeCNC Artemis 0.7",
"0.30mm TPU Solid @SeeMeCNC BOSSdelta 300 0.7",
"0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.30mm TPU Solid @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.30mm TPU Solid @SeeMeCNC RostockMAX v3.2 0.7",
"0.30mm TPU Solid @SeeMeCNC RostockMAX v4 0.7",
"0.35mm TPU Vase @SeeMeCNC Artemis 0.7",
"0.35mm TPU Vase @SeeMeCNC BOSSdelta 300 0.7",
"0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0505 0.7",
"0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0510 0.7",
"0.35mm TPU Vase @SeeMeCNC BOSSdelta 500 0521 0.7",
"0.35mm TPU Vase @SeeMeCNC RostockMAX v3.2 0.7",
"0.35mm TPU Vase @SeeMeCNC RostockMAX v4 0.7"
],
"compatible_prints_condition": "",
"filament_retraction_length": [
"7"
],
"filament_z_hop": [
"0.3"
],
"filament_retraction_speed": [
"30"
],
"filament_deretraction_speed": [
"30"
],
"filament_id": "SMCFU00107"
}
@@ -208,10 +208,8 @@
"\n10,1"
],
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_rotate_template": "",
"sparse_infill_acceleration": "100%",
"sparse_infill_filament": "1",
"sparse_infill_flow_ratio": "1",
"sparse_infill_pattern": "gyroid",
"sparse_infill_rotate_template": "",
@@ -277,7 +275,6 @@
"tree_support_wall_count": "2",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
@@ -208,10 +208,10 @@
"\n10,1"
],
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_filament": "0",
"solid_infill_rotate_template": "",
"sparse_infill_acceleration": "100%",
"sparse_infill_filament": "1",
"sparse_infill_filament": "0",
"sparse_infill_flow_ratio": "1",
"sparse_infill_pattern": "gyroid",
"sparse_infill_rotate_template": "",
@@ -277,7 +277,7 @@
"tree_support_wall_count": "2",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_filament": "0",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
@@ -208,10 +208,10 @@
"\n10,1"
],
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_filament": "0",
"solid_infill_rotate_template": "",
"sparse_infill_acceleration": "100%",
"sparse_infill_filament": "1",
"sparse_infill_filament": "0",
"sparse_infill_flow_ratio": "1",
"sparse_infill_pattern": "gyroid",
"sparse_infill_rotate_template": "",
@@ -277,7 +277,7 @@
"tree_support_wall_count": "2",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_filament": "0",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
@@ -208,10 +208,10 @@
"\n10,1"
],
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_filament": "0",
"solid_infill_rotate_template": "",
"sparse_infill_acceleration": "100%",
"sparse_infill_filament": "1",
"sparse_infill_filament": "0",
"sparse_infill_flow_ratio": "1",
"sparse_infill_pattern": "gyroid",
"sparse_infill_rotate_template": "",
@@ -272,12 +272,12 @@
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_tip_diameter": "0.9",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "2",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_filament": "0",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
@@ -208,10 +208,10 @@
"\n10,1"
],
"solid_infill_direction": "45",
"solid_infill_filament": "1",
"solid_infill_filament": "0",
"solid_infill_rotate_template": "",
"sparse_infill_acceleration": "100%",
"sparse_infill_filament": "1",
"sparse_infill_filament": "0",
"sparse_infill_flow_ratio": "1",
"sparse_infill_pattern": "gyroid",
"sparse_infill_rotate_template": "",
@@ -268,16 +268,16 @@
"tree_support_branch_angle_organic": "40",
"tree_support_branch_diameter": "5",
"tree_support_branch_diameter_angle": "5",
"tree_support_branch_diameter_organic": "2",
"tree_support_branch_diameter_organic": "3",
"tree_support_branch_distance": "5",
"tree_support_branch_distance_organic": "1",
"tree_support_brim_width": "3",
"tree_support_tip_diameter": "0.8",
"tree_support_tip_diameter": "2",
"tree_support_top_rate": "30%",
"tree_support_wall_count": "2",
"wall_direction": "auto",
"wall_distribution_count": "1",
"wall_filament": "1",
"wall_filament": "0",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"wall_transition_angle": "10",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Snapmaker",
"version": "02.04.00.01",
"version": "02.04.00.03",
"force_update": "0",
"description": "Snapmaker configurations",
"machine_model_list": [
@@ -8,7 +8,7 @@
"printer_model": "Snapmaker U1",
"printer_variant": "0.4",
"auxiliary_fan": "1",
"change_filament_gcode": ";===== date: 20260605 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\n endif\n\nendif\n\n\"G91\nG90\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n",
"change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n",
"extruder_colour": [
"#FCE94F",
"#FCE94F",
@@ -223,9 +223,8 @@
"Auto Lift"
],
"enable_filament_ramming": "0",
"extruder_clearance_height_to_rod": "60",
"extruder_clearance_height_to_lid": "130",
"extruder_clearance_radius": "80",
"extruder_clearance_height_to_rod": "27.5",
"extruder_clearance_radius": "72.5",
"machine_load_filament_time": "0",
"machine_unload_filament_time": "0",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT",
@@ -13,6 +13,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -22,6 +22,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -13,6 +13,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -20,6 +20,5 @@
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"slowdown_for_curled_perimeters": "0",
"wipe_tower_filament": "1"
"slowdown_for_curled_perimeters": "0"
}
@@ -22,6 +22,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -13,6 +13,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -19,6 +19,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -16,6 +16,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -19,6 +19,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -13,6 +13,5 @@
],
"ooze_prevention": "1",
"slowdown_for_curled_perimeters": "0",
"standby_temperature_delta": "-150",
"wipe_tower_filament": "1"
"standby_temperature_delta": "-150"
}
@@ -11,6 +11,5 @@
"compatible_printers": [
"Snapmaker U1 (0.4 nozzle)"
],
"slowdown_for_curled_perimeters": "0",
"wipe_tower_filament": "1"
"slowdown_for_curled_perimeters": "0"
}
+11
View File
@@ -2573,6 +2573,12 @@ void ModelVolume::update_extruder_count(size_t extruder_count)
break;
}
}
// Clear a stale per-volume filament assignment that no longer exists after the extruder count
// shrank (e.g. printer switch to one with fewer filaments), so downstream readers never index
// per-filament config vectors out of range. Ported from BambuStudio (STUDIO-15763).
if (extruder_id() > extruder_count) {
this->config.erase("extruder");
}
}
void ModelVolume::update_extruder_count_when_delete_filament(size_t extruder_count, size_t filament_id, int replace_filament_id)
@@ -2584,6 +2590,11 @@ void ModelVolume::update_extruder_count_when_delete_filament(size_t extruder_cou
break;
}
}
// Same stale-assignment cleanup as update_extruder_count, for the filament-delete path.
// Ported from BambuStudio (STUDIO-15763).
if (extruder_id() > extruder_count) {
this->config.erase("extruder");
}
}
void ModelVolume::center_geometry_after_creation(bool update_source_offset)
+3 -6
View File
@@ -1836,15 +1836,12 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons*
}
}
}
// Check junction deviation
// Orca: Only marlin FW supports max junction deviation. Dont display warning if firmware is not supporting it.
const bool support_max_junction_deviation = ( m_config.gcode_flavor == gcfMarlinFirmware);
if (warning_key.empty() && m_default_object_config.default_junction_deviation.value > max_junction_deviation && support_max_junction_deviation) {
// check junction deviation
else if (m_default_object_config.default_junction_deviation.value > max_junction_deviation) {
warning->string = L( "Junction deviation setting exceeds the printer's maximum value (machine_max_junction_deviation).\n"
"Orca will automatically cap the junction deviation to ensure it doesn't surpass the printer's capabilities.\n"
"You can adjust the machine_max_junction_deviation value in your printer's configuration to get higher limits.");
warning->opt_key = warning_key;
warning->opt_key = "default_junction_deviation";
}
// check acceleration
+12
View File
@@ -10256,6 +10256,18 @@ void DynamicPrintConfig::update_diff_values_to_child_config(DynamicPrintConfig&
int stride = 1;
if (key_set2.find(opt) != key_set2.end())
stride = 2;
// set_only_diff() requires the base vector length to equal variant_index.size()*stride, where
// variant_index is sized from the parent's printer_extruder_variant list (or 1 when it has none).
// Legacy / multi-extruder / multi-variant presets can violate this in either direction when a key's
// stored length and the variant-list length were sized inconsistently - e.g. a Snapmaker U1 base
// (4 nozzles) whose stride-2 machine limits were length-extended to nozzles*2 while its
// printer_extruder_variant list is empty (variant_index == 1), so base length != variant_index*stride.
// Rather than throw (which is caught upstream and DELETES the user preset file), fall back to the
// child's explicit value, which is authoritative for its own extruder/variant layout.
if (opt_vec_src->size() != variant_index.size() * size_t(stride)) {
opt_src->set(opt_target);
}
else
opt_vec_src->set_only_diff(opt_vec_dest, variant_index, stride);
}
}
+2 -2
View File
@@ -1733,8 +1733,8 @@ void generate_support_toolpaths(
interface_as_base ? ExtrusionRole::erSupportMaterial : ExtrusionRole::erSupportMaterialInterface, interface_flow);
}
};
const bool top_interfaces = config.support_interface_top_layers.value != 0;
const bool bottom_interfaces = top_interfaces && config.support_interface_bottom_layers != 0;
const bool top_interfaces = support_params.num_top_interface_layers > 0;
const bool bottom_interfaces = top_interfaces && support_params.num_bottom_interface_layers > 0;
extrude_interface(top_contact_layer, raft_layer ? InterfaceLayerType::RaftContact : top_interfaces ? InterfaceLayerType::TopContact : InterfaceLayerType::InterfaceAsBase);
if (!organic_tree)
extrude_interface(bottom_contact_layer, bottom_interfaces ? InterfaceLayerType::BottomContact : InterfaceLayerType::InterfaceAsBase);
+9 -2
View File
@@ -6,6 +6,14 @@
#include "../Flow.hpp"
namespace Slic3r {
inline int number_of_support_interface_bottom_layers(const PrintObjectConfig& object_config)
{
return object_config.support_interface_bottom_layers.value < 0 ?
object_config.support_interface_top_layers.value :
object_config.support_interface_bottom_layers.value;
}
struct SupportParameters {
SupportParameters() = delete;
SupportParameters(const PrintObject& object)
@@ -26,8 +34,7 @@ struct SupportParameters {
{
this->num_top_interface_layers = std::max(0, object_config.support_interface_top_layers.value);
this->num_bottom_interface_layers = object_config.support_interface_bottom_layers < 0 ?
num_top_interface_layers : object_config.support_interface_bottom_layers;
this->num_bottom_interface_layers = number_of_support_interface_bottom_layers(object_config);
this->has_top_contacts = num_top_interface_layers > 0;
this->has_bottom_contacts = num_bottom_interface_layers > 0;
// BBS: if support interface and support base do not use the same filament, add a base layer to improve their adhesion
+3 -4
View File
@@ -2013,8 +2013,8 @@ void TreeSupport::draw_circles()
// generate areas
const coordf_t layer_height = config.layer_height.value;
const size_t top_interface_layers = config.support_interface_top_layers.value;
const size_t bottom_interface_layers = config.support_interface_bottom_layers.value < 0 ? top_interface_layers : config.support_interface_bottom_layers.value;
const size_t top_interface_layers = m_support_params.num_top_interface_layers;
const size_t bottom_interface_layers = number_of_support_interface_bottom_layers(config);
const double nozzle_diameter = m_object->print()->config().nozzle_diameter.get_at(0);
const coordf_t line_width = config.get_abs_value("support_line_width", nozzle_diameter);
const coordf_t line_width_scaled = scale_(line_width);
@@ -2653,8 +2653,7 @@ void TreeSupport::drop_nodes()
const size_t tip_layers = base_radius / layer_height; //The number of layers to be shrinking the circle to create a tip. This produces a 45 degree angle.
const coordf_t radius_sample_resolution = m_ts_data->m_radius_sample_resolution;
const bool support_on_buildplate_only = config.support_on_build_plate_only.value;
const size_t top_interface_layers = config.support_interface_top_layers.value;
const size_t bottom_interface_layers = config.support_interface_bottom_layers.value < 0 ? top_interface_layers : config.support_interface_bottom_layers.value;
const size_t bottom_interface_layers = number_of_support_interface_bottom_layers(config);
SupportNode::diameter_angle_scale_factor = diameter_angle_scale_factor;
float DO_NOT_MOVER_UNDER_MM = is_slim ? 0 : 5; // do not move contact points under 5mm
+28 -10
View File
@@ -2917,6 +2917,7 @@ static std::pair<float, float> extrude_branch(
const TreeSupportSettings &config,
const SlicingParameters &slicing_params,
const std::vector<SupportElements> &move_bounds,
bool has_root,
indexed_triangle_set &result)
{
Vec3d p1, p2, p3;
@@ -2938,8 +2939,22 @@ static std::pair<float, float> extrude_branch(
v1 = (p2 - p1).normalized();
if (ipath == 1) {
nprev = v1;
// Extrude the bottom half sphere.
float radius = unscaled<float>(support_element_radius(config, prev));
if (has_root && prev.state.layer_idx == 0) {
// Orca: Buildplate roots need a flat foot. A rounded cap can extend far
// below the bed and make the first layer slice cut unrelated trunk geometry.
const Vec3f normal(0.f, 0.f, 1.f);
const Vec3f bottom_center(float(p1.x()), float(p1.y()), 0.f);
const Vec3f top_center(float(p1.x()), float(p1.y()), float(p1.z()));
int ifan = int(result.vertices.size());
result.vertices.emplace_back(bottom_center);
std::pair<int, int> bottom_strip = discretize_circle(bottom_center, normal, radius, eps, result.vertices);
triangulate_fan<false>(result, ifan, bottom_strip.first, bottom_strip.second);
prev_strip = discretize_circle(top_center, normal, radius, eps, result.vertices);
triangulate_strip(result, bottom_strip.first, bottom_strip.second, prev_strip.first, prev_strip.second);
zmin = 0.f;
} else {
// Extrude the bottom half sphere.
float angle_step = 2. * acos(1. - eps / radius);
auto nsteps = int(ceil(M_PI / (2. * angle_step)));
angle_step = M_PI / (2. * nsteps);
@@ -2953,11 +2968,11 @@ static std::pair<float, float> extrude_branch(
triangulate_fan<false>(result, ifan, strip.first, strip.second);
else
triangulate_strip(result, prev_strip.first, prev_strip.second, strip.first, strip.second);
// sprintf(fname, "d:\\temp\\meshes\\tree-partial-%d.obj", ++ irun);
// its_write_obj(result, fname);
prev_strip = strip;
}
}
}
if (ipath + 1 == path.size()) {
// End of the tube.
ncurrent = v1;
@@ -3142,16 +3157,19 @@ static void organic_smooth_branches_avoid_collisions(
// Orca:
// Collision and Laplacian smoothing run iteratively; keep each candidate reachable from linked upper/lower layers to avoid accumulated drift.
auto limit_candidate_to_linked_layers = [&collision_spheres, &linear_data_layers, &config](const size_t collision_sphere_id, Vec2d candidate) {
auto constrain_to_anchor = [](Vec2d candidate, const Vec2d &anchor, const double allowed_shift) {
auto constrain_to_anchor = [](Vec2d candidate, const Vec2d &current_pos, const Vec2d &anchor, double allowed_shift) {
const Vec2d delta = candidate - anchor;
const double dist = delta.norm();
return dist > allowed_shift && dist > EPSILON ?
anchor + delta * (allowed_shift / dist) :
const double candidate_dist = delta.norm();
const double current_dist = (current_pos - anchor).norm();
allowed_shift = std::max(allowed_shift, current_dist);
return candidate_dist > allowed_shift && candidate_dist > EPSILON ?
anchor + delta * (allowed_shift / candidate_dist) :
candidate;
};
const CollisionSphere &sphere = collision_spheres[collision_sphere_id];
const LayerIndex layer_idx = sphere.element.state.layer_idx;
const Vec2d current_pos = to_2d(sphere.position).cast<double>();
const double current_radius = double(support_element_radius(config, sphere.element));
const double maximum_move_distance_slow = double(config.maximum_move_distance_slow);
@@ -3161,7 +3179,7 @@ static void organic_smooth_branches_avoid_collisions(
const CollisionSphere &lower = collision_spheres[lower_id];
const double lower_radius = double(support_element_radius(config, lower.element));
const double allowed_shift = unscaled<double>(std::max(0., lower_radius - current_radius) + maximum_move_distance_slow);
candidate = constrain_to_anchor(candidate, to_2d(lower.prev_position).cast<double>(), allowed_shift);
candidate = constrain_to_anchor(candidate, current_pos, to_2d(lower.prev_position).cast<double>(), allowed_shift);
}
}
@@ -3175,7 +3193,7 @@ static void organic_smooth_branches_avoid_collisions(
const CollisionSphere &upper = collision_spheres[upper_id];
const double upper_radius = double(support_element_radius(config, upper.element));
const double allowed_shift = unscaled<double>(std::max(0., current_radius - upper_radius) + maximum_move_distance_slow);
candidate = constrain_to_anchor(candidate, to_2d(upper.prev_position).cast<double>(), allowed_shift);
candidate = constrain_to_anchor(candidate, current_pos, to_2d(upper.prev_position).cast<double>(), allowed_shift);
}
}
@@ -3845,7 +3863,7 @@ void organic_draw_branches(
for (const Branch &branch : tree.branches) {
// Triangulate the tube.
partial_mesh.clear();
std::pair<float, float> zspan = extrude_branch(branch.path, config, slicing_params, move_bounds, partial_mesh);
std::pair<float, float> zspan = extrude_branch(branch.path, config, slicing_params, move_bounds, branch.has_root, partial_mesh);
LayerIndex layer_begin = branch.has_root ?
branch.path.front()->state.layer_idx :
std::min(branch.path.front()->state.layer_idx, layer_idx_ceil(slicing_params, config, zspan.first));
+5 -7
View File
@@ -61,12 +61,10 @@ struct TreeSupportMeshGroupSettings {
this->support_angle = 0.5 * M_PI - std::clamp<double>((config.support_threshold_angle + 1) * M_PI / 180., 0., 0.5 * M_PI);
this->support_line_width = support_material_flow(&print_object, config.layer_height).scaled_width();
this->support_roof_line_width = support_material_interface_flow(&print_object, config.layer_height).scaled_width();
//FIXME add it to SlicingParameters and reuse in both tree and normal supports?
this->support_bottom_enable = config.support_interface_top_layers.value > 0 && config.support_interface_bottom_layers.value != 0;
const int bottom_interface_layers = number_of_support_interface_bottom_layers(config);
this->support_bottom_enable = config.support_interface_top_layers.value > 0 && bottom_interface_layers > 0;
this->support_bottom_height = this->support_bottom_enable ?
(config.support_interface_bottom_layers.value > 0 ?
config.support_interface_bottom_layers.value :
config.support_interface_top_layers.value) * this->layer_height :
bottom_interface_layers * this->layer_height :
0;
this->support_material_buildplate_only = config.support_on_build_plate_only;
this->support_xy_distance = scaled<coord_t>(config.support_object_xy_distance.value);
@@ -77,8 +75,8 @@ struct TreeSupportMeshGroupSettings {
this->support_bottom_distance = scaled<coord_t>(slicing_params.gap_object_support);
this->support_roof_enable = config.support_interface_top_layers.value > 0;
this->support_roof_layers = config.support_interface_top_layers.value;
this->support_floor_enable = config.support_interface_bottom_layers.value > 0;
this->support_floor_layers = config.support_interface_bottom_layers.value;
this->support_floor_enable = bottom_interface_layers > 0;
this->support_floor_layers = bottom_interface_layers;
this->support_roof_pattern = config.support_interface_pattern;
this->support_pattern = config.support_base_pattern;
this->support_line_spacing = scaled<coord_t>(config.support_base_pattern_spacing.value);
+27 -18
View File
@@ -571,7 +571,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
{
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
auto gcflavor = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
const GCodeFlavor gcflavor = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
// Orca: use booleans to avoid repeated comparisons with enum values
const bool gcf_is_marlin_firmware = gcflavor == GCodeFlavor::gcfMarlinFirmware;
const bool gcf_is_klipper = gcflavor == GCodeFlavor::gcfKlipper;
bool have_volumetric_extrusion_rate_slope = config->option<ConfigOptionFloat>("max_volumetric_extrusion_rate_slope")->value > 0;
float have_volumetric_extrusion_rate_slope_segment_length = config->option<ConfigOptionFloat>("max_volumetric_extrusion_rate_slope_segment_length")->value;
@@ -675,23 +679,28 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
"top_surface_acceleration", "travel_acceleration", "bridge_acceleration", "sparse_infill_acceleration", "internal_solid_infill_acceleration"})
toggle_field(el, have_default_acceleration);
bool machine_supports_junction_deviation = false;
if (gcflavor == gcfMarlinFirmware) {
if (const auto *machine_jd = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("machine_max_junction_deviation")) {
machine_supports_junction_deviation = !machine_jd->values.empty() && machine_jd->values.front() > 0.0;
}
}
toggle_line("default_junction_deviation", gcflavor == gcfMarlinFirmware);
if (machine_supports_junction_deviation) {
toggle_field("default_junction_deviation", true);
toggle_field("default_jerk", false);
for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"})
const bool junction_deviation_enabled =
gcf_is_marlin_firmware &&
[&]() {
const auto *machine_jd = preset_bundle->printers.get_edited_preset().config.option<ConfigOptionFloats>("machine_max_junction_deviation");
return machine_jd && !machine_jd->values.empty() && machine_jd->values.front() > 0.0;
}();
toggle_line("default_junction_deviation", gcf_is_marlin_firmware);
toggle_field("default_junction_deviation", junction_deviation_enabled);
toggle_field("default_jerk", !junction_deviation_enabled);
const std::initializer_list<const char*> jerk_options = {
"outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk",
"initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"
};
if (junction_deviation_enabled) {
for (auto el : jerk_options)
toggle_line(el, false);
} else {
toggle_field("default_junction_deviation", false);
toggle_field("default_jerk", true);
bool have_default_jerk = config->has("default_jerk") && config->opt_float("default_jerk") > 0;
for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "initial_layer_travel_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"}) {
const bool have_default_jerk = config->has("default_jerk") && config->opt_float("default_jerk") > 0;
for (auto el : jerk_options) {
toggle_line(el, true);
toggle_field(el, have_default_jerk);
}
@@ -905,8 +914,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
toggle_field("wipe_speed",!is_role_based_wipe_speed);
for (auto el : {"accel_to_decel_enable", "accel_to_decel_factor"})
toggle_line(el, gcflavor == gcfKlipper);
if(gcflavor == gcfKlipper)
toggle_line(el, gcf_is_klipper);
if(gcf_is_klipper)
toggle_field("accel_to_decel_factor", config->opt_bool("accel_to_decel_enable"));
bool have_make_overhang_printable = config->opt_bool("make_overhang_printable");
+6
View File
@@ -2639,8 +2639,14 @@ void GCodeViewer::render_all_plates_stats(const std::vector<const GCodeProcessor
{
auto plate_print_statistics = plate->get_slice_result()->print_statistics;
auto plate_extruders = plate->get_extruders(true);
auto max_extruders_colors = wxGetApp().plater()->get_extruders_colors().size();
for (size_t extruder_id : plate_extruders) {
extruder_id -= 1;
// Skip stale/overflow extruder indices (e.g. from object assignments that outlived a
// filament-count change) so downstream per-extruder lookups stay in range. Ported
// from BambuStudio (STUDIO-15763).
if (extruder_id >= max_extruders_colors)
continue;
if (plate_print_statistics.model_volumes_per_extruder.find(extruder_id) == plate_print_statistics.model_volumes_per_extruder.end())
model_volume_of_extruders_all_plates[extruder_id] += 0;
else {
+29 -37
View File
@@ -576,55 +576,47 @@ wxMenu* MenuFactory::append_submenu_add_generic(wxMenu* menu, ModelVolumeType ty
wxMenu* MenuFactory::append_submenu_add_handy_model(wxMenu* menu, ModelVolumeType type) {
auto sub_menu = new wxMenu;
for (auto &item : {L("Orca Cube"), L("OrcaSliced Combo"), L("Orca Tolerance Test"), L("3DBenchy"), L("Cali Cat"), L("Autodesk FDM Test"),
L("Voron Cube"), L("Stanford Bunny"), L("Orca String Hell") }) {
append_menu_item(
sub_menu, wxID_ANY, _(item), "",
[type, item](wxCommandEvent&) {
std::vector<boost::filesystem::path> input_files;
bool is_stringhell = false;
// Orca: handy models shipped under <resources>/handy_models. Defining everything in one table
// keeps the menu label, the files to load and the per-model behavior in a single place and
// avoids repeating the label strings (and the value-vs-pointer comparison pitfalls that come
// with that). Labels are wrapped in L() so they are picked up for translation.
struct HandyModel
{
const char* label;
std::vector<std::string> file_names;
bool arrange_after_import = false;
if (item == L("Orca Cube")){
file_names = { "OrcaCube_v2.drc", "OrcaPlug_v2.drc"};
arrange_after_import = true;
}
else if (item == L("OrcaSliced Combo"))
{
file_names = { "OrcaSliced.3mf", "OrcaCube_v2.drc", "OrcaPlug_v2.drc" };
arrange_after_import = true;
}
else if (item == L("Orca Tolerance Test"))
file_names = { "OrcaToleranceTest.drc" };
else if (item == L("3DBenchy"))
file_names = { "3DBenchy.drc" };
else if (item == L("Cali Cat"))
file_names = { "calicat.drc" };
else if (item == L("Autodesk FDM Test"))
file_names = { "ksr_fdmtest_v4.drc" };
else if (item == L("Voron Cube"))
file_names = { "Voron_Design_Cube_v7.drc" };
else if (item == L("Stanford Bunny"))
file_names = { "Stanford_Bunny.drc" };
else if (item == L("Orca String Hell")) {
file_names = { "Orca_stringhell.drc" };
is_stringhell = true;
} else
return;
bool is_stringhell = false;
};
static const std::vector<HandyModel> handy_models = {
{L("Orca Cube"), {"OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true},
{L("OrcaSliced Combo"), {"OrcaSliced.3mf", "OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true},
{L("Orca Tolerance Test"), {"OrcaToleranceTest.drc"}},
{L("3DBenchy"), {"3DBenchy.drc"}},
{L("Cali Cat"), {"calicat.drc"}},
{L("Autodesk FDM Test"), {"ksr_fdmtest_v4.drc"}},
{L("Voron Cube"), {"Voron_Design_Cube_v7.drc"}},
{L("Stanford Bunny"), {"Stanford_Bunny.drc"}},
{L("Orca String Hell"), {"Orca_stringhell.drc"}, false, true},
};
input_files.reserve(file_names.size());
for (const auto& file_name : file_names)
for (const auto& model : handy_models) {
append_menu_item(
sub_menu, wxID_ANY, _(model.label), "",
[&model](wxCommandEvent&) {
std::vector<boost::filesystem::path> input_files;
input_files.reserve(model.file_names.size());
for (const auto& file_name : model.file_names)
input_files.push_back((boost::filesystem::path(Slic3r::resources_dir()) / "handy_models" / file_name));
plater()->load_files(input_files, LoadStrategy::LoadModel);
if (arrange_after_import) {
if (model.arrange_after_import) {
plater()->set_prepare_state(Job::PREPARE_STATE_MENU);
plater()->arrange();
}
// Suggest to change settings for stringhell
// This serves as mini tutorial for new users
if (is_stringhell) {
if (model.is_stringhell) {
wxGetApp().CallAfter([=] {
DynamicPrintConfig* m_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
+4
View File
@@ -764,6 +764,10 @@ void ObjectList::update_filament_values_for_items(const size_t filaments_count)
if (!object->volumes[id]->config.has("extruder") ||
size_t(object->volumes[id]->config.extruder()) > filaments_count) {
extruder = wxString::Format("%d", object->config.extruder());
// Clear the stale per-volume assignment so it falls back to the object's
// extruder; otherwise the out-of-range index survives. Ported from
// BambuStudio (STUDIO-15763).
object->volumes[id]->config.erase("extruder");
}
else {
extruder = wxString::Format("%d", object->volumes[id]->config.extruder());
+12 -3
View File
@@ -1931,11 +1931,20 @@ bool PartPlate::check_filament_printable(const DynamicPrintConfig &config, wxStr
std::vector<int> used_filaments = get_extruders(true); // 1 base
if (!used_filaments.empty()) {
const std::vector<std::string>& filament_types = config.option<ConfigOptionStrings>("filament_type")->values;
const std::vector<int>& filament_printables = config.option<ConfigOptionInts>("filament_printable")->values;
const std::vector<int>& filament_map = get_real_filament_maps(config);
// This runs synchronously mid printer-switch (load_current_preset -> reload_scene), before the
// filament-count reconciliation clears stale per-object assignments, so the plate objects can
// still reference filament indices beyond the freshly selected printer config. Skip those to
// avoid an out-of-range access. Matches BambuStudio's guards in the same function.
const int filament_count = std::min({(int) filament_types.size(), (int) filament_printables.size(), (int) filament_map.size()});
for (auto filament_idx : used_filaments) {
int filament_id = filament_idx - 1;
std::string filament_type = config.option<ConfigOptionStrings>("filament_type")->values.at(filament_id);
int filament_printable_status = config.option<ConfigOptionInts>("filament_printable")->values.at(filament_id);
std::vector<int> filament_map = get_real_filament_maps(config);
if (filament_id < 0 || filament_id >= filament_count)
continue;
std::string filament_type = filament_types[filament_id];
int filament_printable_status = filament_printables[filament_id];
int extruder_idx = filament_map[filament_id] - 1;
if (!(filament_printable_status >> extruder_idx & 1)) {
wxString extruder_name = extruder_idx == 0 ? _L("left") : _L("right");
+22 -14
View File
@@ -2559,8 +2559,10 @@ void TabPrint::build()
optgroup->append_single_option_line("accel_to_decel_enable", "speed_settings_acceleration");
optgroup->append_single_option_line("accel_to_decel_factor", "speed_settings_acceleration");
optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_jerk", 15);
optgroup = page->new_optgroup(L("Junction Deviation"), L"param_junction_deviation", 15);
optgroup->append_single_option_line("default_junction_deviation", "speed_settings_jerk_xy#junction-deviation");
optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_jerk", 15);
optgroup->append_single_option_line("default_jerk", "speed_settings_jerk_xy#default");
optgroup->append_single_option_line("outer_wall_jerk", "speed_settings_jerk_xy#outer-wall");
optgroup->append_single_option_line("inner_wall_jerk", "speed_settings_jerk_xy#inner-wall");
@@ -5448,8 +5450,8 @@ void TabPrinter::toggle_options()
for (auto el : {"use_firmware_retraction", "use_relative_e_distances", "support_multi_bed_types", "pellet_modded_printer", "bed_mesh_max", "bed_mesh_min", "bed_mesh_probe_distance", "adaptive_bed_mesh_margin", "thumbnails"})
toggle_line(el, !is_BBL_printer);
auto gcf = m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
toggle_line("enable_power_loss_recovery", is_BBL_printer || gcf == gcfMarlinFirmware);
bool gcf_is_marlin_firmware = m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value == GCodeFlavor::gcfMarlinFirmware;
toggle_line("enable_power_loss_recovery", is_BBL_printer || gcf_is_marlin_firmware);
const bool support_parallel_printheads = printer_cfg.opt_bool("support_parallel_printheads");
toggle_line("parallel_printheads_count", support_parallel_printheads);
@@ -5581,18 +5583,25 @@ void TabPrinter::toggle_options()
if (m_active_page->title() == L("Motion ability")) {
auto gcf = m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value;
update_input_shaper_menu(gcf);
// Orca: use booleans to avoid repeated comparisons with enum values
const bool gcf_is_marlin_legacy = gcf == GCodeFlavor::gcfMarlinLegacy;
const bool gcf_is_marlin_firmware = gcf == GCodeFlavor::gcfMarlinFirmware;
const bool gcf_is_klipper = gcf == GCodeFlavor::gcfKlipper;
const bool gcf_is_reprap_firmware = gcf == GCodeFlavor::gcfRepRapFirmware;
bool silent_mode = m_config->opt_bool("silent_mode");
int max_field = silent_mode ? 2 : 1;
for (int i = 0; i < max_field; ++i)
toggle_option("machine_max_acceleration_travel", gcf != gcfMarlinLegacy && gcf != gcfKlipper, i);
toggle_line("machine_max_acceleration_travel", gcf != gcfMarlinLegacy && gcf != gcfKlipper);
toggle_option("machine_max_acceleration_travel", !gcf_is_marlin_legacy && !gcf_is_klipper, i);
toggle_line("machine_max_acceleration_travel", !gcf_is_marlin_legacy && !gcf_is_klipper);
for (int i = 0; i < max_field; ++i)
toggle_option("machine_max_junction_deviation", gcf == gcfMarlinFirmware, i);
toggle_line("machine_max_junction_deviation", gcf == gcfMarlinFirmware);
toggle_option("machine_max_junction_deviation", gcf_is_marlin_firmware, i);
toggle_line("machine_max_junction_deviation", gcf_is_marlin_firmware);
// Check if junction deviation value is non-zero and firmware is Marlin
bool enable_jerk = gcf != gcfMarlinFirmware;
if (gcf == gcfMarlinFirmware) {
bool enable_jerk = !gcf_is_marlin_firmware;
if (gcf_is_marlin_firmware) {
const auto *junction_deviation = m_config->option<ConfigOptionFloats>("machine_max_junction_deviation");
if (junction_deviation != nullptr) {
const auto &values = junction_deviation->values;
@@ -5608,14 +5617,14 @@ void TabPrinter::toggle_options()
toggle_option("machine_max_jerk_e", enable_jerk, i);
}
bool emittable_limits = m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfMarlinLegacy || m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfMarlinFirmware || m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfRepRapFirmware;
bool emittable_limits = gcf_is_marlin_legacy || gcf_is_marlin_firmware || gcf_is_reprap_firmware;
toggle_option("emit_machine_limits_to_gcode", emittable_limits);
bool resonance_avoidance = m_config->opt_bool("resonance_avoidance");
toggle_option("min_resonance_avoidance_speed", resonance_avoidance);
toggle_option("max_resonance_avoidance_speed", resonance_avoidance);
bool input_shaping_compatible = m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfMarlinFirmware || m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfRepRapFirmware;
bool input_shaping_compatible = gcf_is_marlin_firmware || gcf_is_reprap_firmware;
for (auto is : {"input_shaping_emit", "input_shaping_type", "input_shaping_freq_x", "input_shaping_freq_y",
"input_shaping_damp_x", "input_shaping_damp_y"})
@@ -5625,12 +5634,11 @@ void TabPrinter::toggle_options()
bool emit_machine_limits_to_gcode = m_config->opt_bool("emit_machine_limits_to_gcode");
toggle_option("input_shaping_emit", emit_machine_limits_to_gcode);
bool input_shaping_emit = emit_machine_limits_to_gcode && m_config->opt_bool("input_shaping_emit");
bool reprap = m_config->opt_enum<GCodeFlavor>("gcode_flavor") == GCodeFlavor::gcfRepRapFirmware;
toggle_option("input_shaping_type", input_shaping_emit);
toggle_option("input_shaping_freq_x", input_shaping_emit);
toggle_option("input_shaping_freq_y", input_shaping_emit && !reprap);
toggle_option("input_shaping_freq_y", input_shaping_emit && !gcf_is_reprap_firmware);
toggle_option("input_shaping_damp_x", input_shaping_emit);
toggle_option("input_shaping_damp_y", input_shaping_emit && !reprap);
toggle_option("input_shaping_damp_y", input_shaping_emit && !gcf_is_reprap_firmware);
}
}
+48
View File
@@ -315,6 +315,54 @@ SCENARIO("update_non_diff_values_to_base_config preserves child vectors when chi
}
}
SCENARIO("update_diff_values_to_child_config tolerates legacy machine-limit vector sizes",
"[Config][Variant]") {
// Regression: loading a user printer preset that inherits a non-BBL multi-extruder base and
// overrides stride-2 machine limits used to throw in ConfigOptionVector::set_only_diff
// ("invalid diff_index size"). The base's machine-limit vectors get length-extended by the
// nozzle count while it carries no printer_extruder_variant, so the base length (nozzles*2)
// no longer matches variant_index.size()*2. The throw was caught upstream and DELETED the
// user's preset file. The merge must instead degrade gracefully.
GIVEN("A 4-nozzle parent with stride-2 limits extended to nozzles*2 but no printer_extruder_variant") {
Slic3r::DynamicPrintConfig parent;
Slic3r::DynamicPrintConfig child;
parent.set_key_value("nozzle_diameter",
new Slic3r::ConfigOptionFloats({0.4, 0.4, 0.4, 0.4}));
parent.set_key_value("machine_max_acceleration_x",
new Slic3r::ConfigOptionFloats({25000, 25000, 25000, 25000, 25000, 25000, 25000, 25000}));
// Child user preset declares 4 extruder variants and overrides the machine limit.
child.set_key_value("printer_extruder_id",
new Slic3r::ConfigOptionInts({1, 2, 3, 4}));
child.set_key_value("printer_extruder_variant",
new Slic3r::ConfigOptionStrings({"Direct Drive Standard", "Direct Drive Standard",
"Direct Drive Standard", "Direct Drive Standard"}));
child.set_key_value("machine_max_acceleration_x",
new Slic3r::ConfigOptionFloats({8000, 8000, 8000, 8000, 8000, 8000, 8000, 8000}));
WHEN("update_diff_values_to_child_config merges the child overrides") {
std::string id_name = "printer_extruder_id";
std::string var_name = "printer_extruder_variant";
THEN("it does not throw on the legacy size mismatch") {
REQUIRE_NOTHROW(parent.update_diff_values_to_child_config(
child, id_name, var_name,
Slic3r::printer_options_with_variant_1,
Slic3r::printer_options_with_variant_2));
AND_THEN("the child's overridden machine limit is preserved") {
auto* mx = parent.option<Slic3r::ConfigOptionFloats>("machine_max_acceleration_x");
REQUIRE(mx != nullptr);
REQUIRE(mx->values.size() >= 2);
REQUIRE_THAT(mx->values[0], Catch::Matchers::WithinAbs(8000.0, 1e-6));
REQUIRE_THAT(mx->values[1], Catch::Matchers::WithinAbs(8000.0, 1e-6));
}
}
}
}
}
// SCENARIO("DynamicPrintConfig JSON serialization", "[Config]") {
// WHEN("DynamicPrintConfig is serialized and deserialized") {
// auto now = std::chrono::high_resolution_clock::now();