Merge branch 'main' into main

This commit is contained in:
Rodrigo Faselli
2026-05-09 11:11:17 -03:00
committed by GitHub
158 changed files with 6432 additions and 899 deletions
+52 -3
View File
@@ -34,6 +34,46 @@ jobs:
python3 ./scripts/orca_extra_profile_check.py 2>&1 | tee ${{ runner.temp }}/extra_json_check.log
exit ${PIPESTATUS[0]}
- name: Check profile indentation
id: indentation_check
continue-on-error: true
run: |
set +e
python3 - <<'PY' 2>&1 | tee ${{ runner.temp }}/indentation_check.log
import re
from pathlib import Path
import sys
profiles_root = Path("resources/profiles")
invalid_files = []
for file_path in sorted(profiles_root.rglob("*.json")):
try:
for line_number, line in enumerate(file_path.read_text(encoding="utf-8").splitlines(), start=1):
if not line.strip():
continue
leading_ws = re.match(r"^[ \t]*", line).group(0)
if " " in leading_ws:
invalid_files.append((file_path, line_number))
break
except Exception as exc:
print(f"[ERROR] Unable to read {file_path}: {exc}")
invalid_files.append((file_path, 0))
if invalid_files:
for path, line in invalid_files:
if line > 0:
print(f"[ERROR] Space indentation found in {path}:{line}")
else:
print(f"[ERROR] Could not validate indentation in {path}")
print("Use tab indentation in profile JSON files (1 tab per indentation level).")
print("Tip: run python3 ./scripts/orca_filament_lib.py --fix --force to normalize formatting.")
sys.exit(1)
print("All profile JSON files use tab-only indentation.")
PY
exit ${PIPESTATUS[0]}
# download
- name: Download
working-directory: ${{ github.workspace }}
@@ -62,7 +102,7 @@ jobs:
exit ${PIPESTATUS[0]}
- name: Prepare comment artifact
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
mkdir -p ${{ runner.temp }}/profile-check-results
@@ -79,6 +119,15 @@ jobs:
echo ""
fi
if [ "${{ steps.indentation_check.outcome }}" = "failure" ]; then
echo "### Indentation Check Failed"
echo ""
echo '```'
head -c 30000 ${{ runner.temp }}/indentation_check.log || echo "No output captured"
echo '```'
echo ""
fi
if [ "${{ steps.validate_system.outcome }}" = "failure" ]; then
echo "### System Profile Validation Failed"
echo ""
@@ -104,7 +153,7 @@ jobs:
echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt
- name: Upload comment artifact
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
uses: actions/upload-artifact@v7
with:
name: profile-check-results
@@ -112,7 +161,7 @@ jobs:
retention-days: 1
- name: Fail if any check failed
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.indentation_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
run: |
echo "One or more profile checks failed. See above for details."
exit 1
+3
View File
@@ -13121,6 +13121,9 @@ msgstr ""
msgid "Contour"
msgstr ""
msgid "Hole"
msgstr ""
msgid "Contour and hole"
msgstr ""
+3
View File
@@ -15232,6 +15232,9 @@ msgstr "Només pintat"
msgid "Contour"
msgstr "Contorn"
msgid "Hole"
msgstr "Forat"
msgid "Contour and hole"
msgstr "Contorn i forat"
+43 -40
View File
@@ -11072,7 +11072,7 @@ msgid "Gizmo assemble"
msgstr "Gizmo sestavit"
msgid "Gizmo brim ears"
msgstr "Gizmo přídavky okraje (uši)"
msgstr "Gizmo ouška lemu"
msgid "Zoom in"
msgstr "Přiblížit"
@@ -12583,13 +12583,13 @@ msgstr ""
"průtokovým poměrem filamentu a případně průtokovým poměrem objektu."
msgid "Set other flow ratios"
msgstr "Set other flow ratios"
msgstr "Nastavit další poměry průtoku"
msgid "Change flow ratios for other extrusion path types."
msgstr "Change flow ratios for other extrusion path types."
msgstr "Změnit poměry průtoku pro další typy extruzních drah."
msgid "First layer flow ratio"
msgstr "First layer flow ratio"
msgstr "Poměr průtoku první vrstvy"
msgid ""
"This factor affects the amount of material on the first layer for the "
@@ -12598,14 +12598,14 @@ msgid ""
"For the first layer, the actual flow ratio for each path role (does not "
"affect brims and skirts) will be multiplied by this value."
msgstr ""
"This factor affects the amount of material on the first layer for the "
"extrusion path roles listed in this section.\n"
"Tento faktor ovlivňuje množství materiálu na první vrstvě pro role extruzních "
"drah uvedené v této sekci.\n"
"\n"
"For the first layer, the actual flow ratio for each path role (does not "
"affect brims and skirts) will be multiplied by this value."
"Pro první vrstvu bude skutečný poměr průtoku pro každou roli dráhy (neovlivňuje "
"lem a sukni) vynásoben touto hodnotou."
msgid "Outer wall flow ratio"
msgstr "Outer wall flow ratio"
msgstr "Poměr průtoku vnější stěny"
msgid ""
"This factor affects the amount of material for outer walls.\n"
@@ -12613,13 +12613,13 @@ msgid ""
"The actual outer wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for outer walls.\n"
"Tento faktor ovlivňuje množství materiálu pro vnější stěny.\n"
"\n"
"The actual outer wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro vnější stěny se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Inner wall flow ratio"
msgstr "Inner wall flow ratio"
msgstr "Poměr průtoku vnitřní stěny"
msgid ""
"This factor affects the amount of material for inner walls.\n"
@@ -12627,13 +12627,13 @@ msgid ""
"The actual inner wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for inner walls.\n"
"Tento faktor ovlivňuje množství materiálu pro vnitřní stěny.\n"
"\n"
"The actual inner wall flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro vnitřní stěny se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Overhang flow ratio"
msgstr "Overhang flow ratio"
msgstr "Poměr průtoku převisů"
msgid ""
"This factor affects the amount of material for overhangs.\n"
@@ -12641,13 +12641,13 @@ msgid ""
"The actual overhang flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for overhangs.\n"
"Tento faktor ovlivňuje množství materiálu pro převisy.\n"
"\n"
"The actual overhang flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro převisy se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Sparse infill flow ratio"
msgstr "Sparse infill flow ratio"
msgstr "Poměr průtoku řídké výplně"
msgid ""
"This factor affects the amount of material for sparse infill.\n"
@@ -12655,13 +12655,13 @@ msgid ""
"The actual sparse infill flow used is calculated by multiplying this value "
"by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for sparse infill.\n"
"Tento faktor ovlivňuje množství materiálu pro řídkou výplň.\n"
"\n"
"The actual sparse infill flow used is calculated by multiplying this value "
"by the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro řídkou výplň se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Internal solid infill flow ratio"
msgstr "Internal solid infill flow ratio"
msgstr "Poměr průtoku vnitřní plné výplně"
msgid ""
"This factor affects the amount of material for internal solid infill.\n"
@@ -12669,13 +12669,13 @@ msgid ""
"The actual internal solid infill flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for internal solid infill.\n"
"Tento faktor ovlivňuje množství materiálu pro vnitřní plnou výplň.\n"
"\n"
"The actual internal solid infill flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro vnitřní plnou výplň se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Gap fill flow ratio"
msgstr "Gap fill flow ratio"
msgstr "Poměr průtoku vyplnění mezer"
msgid ""
"This factor affects the amount of material for filling the gaps.\n"
@@ -12683,13 +12683,13 @@ msgid ""
"The actual gap filling flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for filling the gaps.\n"
"Tento faktor ovlivňuje množství materiálu pro vyplnění mezer.\n"
"\n"
"The actual gap filling flow used is calculated by multiplying this value by "
"the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro vyplnění mezer se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Support flow ratio"
msgstr "Support flow ratio"
msgstr "Poměr průtoku podpěr"
msgid ""
"This factor affects the amount of material for support.\n"
@@ -12697,13 +12697,13 @@ msgid ""
"The actual support flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for support.\n"
"Tento faktor ovlivňuje množství materiálu pro podpěry.\n"
"\n"
"The actual support flow used is calculated by multiplying this value by the "
"filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro podpěry se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Support interface flow ratio"
msgstr "Support interface flow ratio"
msgstr "Poměr průtoku rozhraní podpěr"
msgid ""
"This factor affects the amount of material for the support interface.\n"
@@ -12711,10 +12711,10 @@ msgid ""
"The actual support interface flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
msgstr ""
"This factor affects the amount of material for the support interface.\n"
"Tento faktor ovlivňuje množství materiálu pro rozhraní podpěr.\n"
"\n"
"The actual support interface flow used is calculated by multiplying this "
"value by the filament flow ratio, and if set, the object's flow ratio."
"Skutečný průtok pro rozhraní podpěr se vypočítá vynásobením této hodnoty "
"poměrem průtoku filamentu a případně také poměrem průtoku objektu."
msgid "Precise wall"
msgstr "Přesná stěna"
@@ -14821,6 +14821,9 @@ msgstr "Painted only"
msgid "Contour"
msgstr "Obrys"
msgid "Hole"
msgstr "Otvor"
msgid "Contour and hole"
msgstr "Obrys a otvor"
+3
View File
@@ -15357,6 +15357,9 @@ msgstr "Nur lackiert"
msgid "Contour"
msgstr "Kontur"
msgid "Hole"
msgstr "Loch"
msgid "Contour and hole"
msgstr "Kontur und Loch"
+3
View File
@@ -13403,6 +13403,9 @@ msgstr ""
msgid "Contour"
msgstr ""
msgid "Hole"
msgstr ""
msgid "Contour and hole"
msgstr ""
+3
View File
@@ -15294,6 +15294,9 @@ msgstr "Solo pintado"
msgid "Contour"
msgstr "Contorno"
msgid "Hole"
msgstr "Orificio"
msgid "Contour and hole"
msgstr "Contorno y orificio"
+3
View File
@@ -15433,6 +15433,9 @@ msgstr "Peint uniquement"
msgid "Contour"
msgstr "Contour"
msgid "Hole"
msgstr "Trou"
msgid "Contour and hole"
msgstr "Contour et trou"
+3
View File
@@ -15122,6 +15122,9 @@ msgstr "Csak festett"
msgid "Contour"
msgstr "Kontúr"
msgid "Hole"
msgstr "Lyuk"
msgid "Contour and hole"
msgstr "Kontúr és lyuk"
+3
View File
@@ -15319,6 +15319,9 @@ msgstr "Solo verniciato"
msgid "Contour"
msgstr "Contorno"
msgid "Hole"
msgstr "Foro"
msgid "Contour and hole"
msgstr "Contorno e foro"
+3
View File
@@ -14093,6 +14093,9 @@ msgstr "塗装のみ"
msgid "Contour"
msgstr "輪郭"
msgid "Hole"
msgstr "穴"
msgid "Contour and hole"
msgstr "輪郭と穴"
+3
View File
@@ -14240,6 +14240,9 @@ msgstr "도색만"
msgid "Contour"
msgstr "윤곽"
msgid "Hole"
msgstr "구멍"
msgid "Contour and hole"
msgstr "윤곽 및 구멍"
+3
View File
@@ -15043,6 +15043,9 @@ msgstr "Tik dažytas"
msgid "Contour"
msgstr "Kontūras"
msgid "Hole"
msgstr "Skylė"
msgid "Contour and hole"
msgstr "Kontūras ir skylė"
+3
View File
@@ -15043,6 +15043,9 @@ msgstr "Alleen geverfd"
msgid "Contour"
msgstr "Contour"
msgid "Hole"
msgstr "Gat"
msgid "Contour and hole"
msgstr "Contour en gat"
+3
View File
@@ -14539,6 +14539,9 @@ msgstr "Tylko malowane"
msgid "Contour"
msgstr "Kontur"
msgid "Hole"
msgstr "Otwory"
msgid "Contour and hole"
msgstr "Kontur i otwory"
@@ -15186,6 +15186,9 @@ msgstr "Somente pintado"
msgid "Contour"
msgstr "Contorno"
msgid "Hole"
msgstr "Furo"
msgid "Contour and hole"
msgstr "Contorno e furo"
+3
View File
@@ -15501,6 +15501,9 @@ msgstr "Вручную"
msgid "Contour"
msgstr "Контур"
msgid "Hole"
msgstr "Отверстия"
msgid "Contour and hole"
msgstr "Контур и отверстия"
+3
View File
@@ -14883,6 +14883,9 @@ msgstr "Endast målad"
msgid "Contour"
msgstr "Kontur"
msgid "Hole"
msgstr "Hål"
msgid "Contour and hole"
msgstr "Kontur och hål"
+3
View File
@@ -13339,6 +13339,9 @@ msgstr "Sadece boyalı"
msgid "Contour"
msgstr "Kontur"
msgid "Hole"
msgstr "Delik"
msgid "Contour and hole"
msgstr "Kontur ve delik"
+3
View File
@@ -14536,6 +14536,9 @@ msgstr "Тільки пофарбовані"
msgid "Contour"
msgstr "Контур"
msgid "Hole"
msgstr "Отвір"
msgid "Contour and hole"
msgstr "Контур та отвір"
+3
View File
@@ -14730,6 +14730,9 @@ msgstr "Chỉ được sơn"
msgid "Contour"
msgstr "Đường viền"
msgid "Hole"
msgstr "Lỗ"
msgid "Contour and hole"
msgstr "Đường viền và lỗ"
@@ -13894,6 +13894,9 @@ msgstr "仅涂漆"
msgid "Contour"
msgstr "轮廓"
msgid "Hole"
msgstr "孔"
msgid "Contour and hole"
msgstr "轮廓和孔"
@@ -14006,6 +14006,9 @@ msgstr "僅塗漆"
msgid "Contour"
msgstr "輪廓"
msgid "Hole"
msgstr "孔洞"
msgid "Contour and hole"
msgstr "輪廓和孔"
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
"version": "02.01.00.10",
"version": "02.01.00.11",
"force_update": "0",
"description": "the initial version of BBL configurations",
"machine_model_list": [
File diff suppressed because one or more lines are too long
@@ -11,6 +11,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -10,6 +10,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -10,6 +10,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -10,6 +10,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -10,6 +10,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -11,6 +11,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -11,6 +11,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"4000",
"4000"
@@ -11,6 +11,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -10,6 +10,7 @@
"50",
"50"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
@@ -11,6 +11,7 @@
"30",
"30"
],
"enable_arc_fitting": "0",
"default_acceleration": [
"10000",
"10000"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Creality",
"version": "02.03.02.70",
"version": "02.03.02.71",
"force_update": "0",
"description": "Creality configurations",
"machine_model_list": [
@@ -5,6 +5,7 @@
"from": "system",
"setting_id": "GM001",
"instantiation": "true",
"printer_variant": "0.2",
"printer_settings_id": "Creality",
"printer_model": "Creality Ender-3 V3 KE",
"gcode_flavor": "klipper",
@@ -5,6 +5,7 @@
"from": "system",
"setting_id": "GM001",
"instantiation": "true",
"printer_variant": "0.4",
"printer_settings_id": "Creality",
"printer_model": "Creality Ender-3 V3 KE",
"gcode_flavor": "klipper",
@@ -5,6 +5,7 @@
"from": "system",
"setting_id": "GM001",
"instantiation": "true",
"printer_variant": "0.6",
"printer_settings_id": "Creality",
"printer_model": "Creality Ender-3 V3 KE",
"gcode_flavor": "klipper",
@@ -5,6 +5,7 @@
"from": "system",
"setting_id": "GM001",
"instantiation": "true",
"printer_variant": "0.8",
"printer_settings_id": "Creality",
"printer_model": "Creality Ender-3 V3 KE",
"gcode_flavor": "klipper",
+159
View File
@@ -0,0 +1,159 @@
{
"name": "LH",
"url": "https://github.com/lhndo/LH-Stinger",
"version": "01.00.00.00",
"force_update": "0",
"description": "LH 3D Printer Configuration",
"machine_model_list": [
{
"name": "LH Stinger",
"sub_path": "machine/LH Stinger.json"
},
{
"name": "LH Stinger MMU",
"sub_path": "machine/LH Stinger MMU.json"
}
],
"process_list": [
{
"name": "fdm_process_common",
"sub_path": "process/fdm_process_common.json"
},
{
"name": "fdm_process_lh_common",
"sub_path": "process/fdm_process_lh_common.json"
},
{
"name": "0.20mm Daily @LH Stinger",
"sub_path": "process/0.20mm Daily @LH Stinger.json"
},
{
"name": "0.25mm Vase Mode @LH Stinger",
"sub_path": "process/0.25mm Vase Mode @LH Stinger.json"
},
{
"name": "0.20mm TPU @LH Stinger",
"sub_path": "process/0.20mm TPU @LH Stinger.json"
},
{
"name": "0.20mm Strength @LH Stinger",
"sub_path": "process/0.20mm Strength @LH Stinger.json"
},
{
"name": "0.20mm Speed @LH Stinger",
"sub_path": "process/0.20mm Speed @LH Stinger.json"
},
{
"name": "0.20mm Solid @LH Stinger",
"sub_path": "process/0.20mm Solid @LH Stinger.json"
},
{
"name": "0.20mm Quiet @LH Stinger",
"sub_path": "process/0.20mm Quiet @LH Stinger.json"
},
{
"name": "0.20mm PETG @LH Stinger",
"sub_path": "process/0.20mm PETG @LH Stinger.json"
},
{
"name": "0.20mm MMU @LH Stinger",
"sub_path": "process/0.20mm MMU @LH Stinger.json"
},
{
"name": "0.10mm HueForge @LH Stinger",
"sub_path": "process/0.10mm HueForge @LH Stinger.json"
},
{
"name": "0.14mm Detail Strength @LH Stinger",
"sub_path": "process/0.14mm Detail Strength @LH Stinger.json"
},
{
"name": "0.14mm Detail @LH Stinger",
"sub_path": "process/0.14mm Detail @LH Stinger.json"
}
],
"filament_list": [
{
"name": "fdm_filament_common",
"sub_path": "filament/fdm_filament_common.json"
},
{
"name": "fdm_filament_abs",
"sub_path": "filament/fdm_filament_abs.json"
},
{
"name": "fdm_filament_asa",
"sub_path": "filament/fdm_filament_asa.json"
},
{
"name": "fdm_filament_pc",
"sub_path": "filament/fdm_filament_pc.json"
},
{
"name": "fdm_filament_pet",
"sub_path": "filament/fdm_filament_pet.json"
},
{
"name": "fdm_filament_pla",
"sub_path": "filament/fdm_filament_pla.json"
},
{
"name": "fdm_filament_tpu",
"sub_path": "filament/fdm_filament_tpu.json"
},
{
"name": "LHS ASA",
"sub_path": "filament/LHS ASA.json"
},
{
"name": "LHS ABS",
"sub_path": "filament/LHS ABS.json"
},
{
"name": "LHS TPU",
"sub_path": "filament/LHS TPU.json"
},
{
"name": "LHS PLA",
"sub_path": "filament/LHS PLA.json"
},
{
"name": "LHS TPU Foamy 78A",
"sub_path": "filament/LHS TPU Foamy 78A.json"
},
{
"name": "LHS PETG",
"sub_path": "filament/LHS PETG.json"
},
{
"name": "LHS PCTG",
"sub_path": "filament/LHS PCTG.json"
},
{
"name": "LHS PC CF",
"sub_path": "filament/LHS PC CF.json"
}
],
"machine_list": [
{
"name": "fdm_machine_common",
"sub_path": "machine/fdm_machine_common.json"
},
{
"name": "fdm_lh_common",
"sub_path": "machine/fdm_lh_common.json"
},
{
"name": "fdm_lh_mmu_common",
"sub_path": "machine/fdm_lh_mmu_common.json"
},
{
"name": "LH Stinger 0.4 nozzle",
"sub_path": "machine/LH Stinger 0.4 nozzle.json"
},
{
"name": "LH Stinger MMU 0.4 nozzle",
"sub_path": "machine/LH Stinger MMU 0.4 nozzle.json"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+355
View File
@@ -0,0 +1,355 @@
{
"name": "LHS ABS",
"type": "filament",
"filament_id": "LHF_abs",
"setting_id": "LHF_S_abs",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_asa",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"2"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"100"
],
"eng_plate_temp_initial_layer": [
"105"
],
"fan_cooling_layer_time": [
"25"
],
"fan_max_speed": [
"25"
],
"fan_min_speed": [
"25"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.04"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.926"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"45"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
"LHS - ASA"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.07 FILAMENT_HEAT_CAPACITY=2.1\nMAX_FAN LINK_AUX=0"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"ASA"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"4"
],
"hot_plate_temp": [
"105"
],
"hot_plate_temp_initial_layer": [
"105"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"-1"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"260"
],
"nozzle_temperature_initial_layer": [
"260"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"240"
],
"overhang_fan_speed": [
"50"
],
"overhang_fan_threshold": [
"50%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.019"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"15"
],
"slow_down_min_speed": [
"10"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"110"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"100"
],
"textured_plate_temp_initial_layer": [
"105"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
+352
View File
@@ -0,0 +1,352 @@
{
"name": "LHS ASA",
"filament_id": "LHF_asa",
"setting_id": "LHF_S_asa",
"type": "filament",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_asa",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"2"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"0"
],
"cool_plate_temp_initial_layer": [
"0"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"100"
],
"eng_plate_temp_initial_layer": [
"105"
],
"fan_cooling_layer_time": [
"25"
],
"fan_max_speed": [
"25"
],
"fan_min_speed": [
"25"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.04"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.926"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"45"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.07 FILAMENT_HEAT_CAPACITY=2.1\nMAX_FAN LINK_AUX=0"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"ASA"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"4"
],
"hot_plate_temp": [
"105"
],
"hot_plate_temp_initial_layer": [
"105"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"-1"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"260"
],
"nozzle_temperature_initial_layer": [
"260"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"240"
],
"overhang_fan_speed": [
"50"
],
"overhang_fan_threshold": [
"50%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.019"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"15"
],
"slow_down_min_speed": [
"10"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"support_material_interface_fan_speed": [
"-1"
],
"temperature_vitrification": [
"110"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"100"
],
"textured_plate_temp_initial_layer": [
"105"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
@@ -0,0 +1,122 @@
{
"name": "LHS PC CF",
"type": "filament",
"filament_id": "LHF_pccf",
"setting_id": "LHF_S_pccf",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"additional_cooling_fan_speed": [
"0"
],
"close_fan_the_first_x_layers": [
"4"
],
"enable_pressure_advance": [
"1"
],
"fan_cooling_layer_time": [
"11"
],
"fan_max_speed": [
"5"
],
"fan_min_speed": [
"5"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_density": [
"1.18"
],
"filament_flow_ratio": [
"0.945"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_max_volumetric_speed": [
"35"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
"Extrusion Override set to a higher value\nAux disabled\nZ-Offset increased to 0.025 due to nozzle expansion at 300C"
],
"filament_retraction_length": [
"0.4"
],
"filament_shrink": [
"99.8%"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.36 FILAMENT_HEAT_CAPACITY=2.6\nMAX_FAN LINK_AUX=0"
],
"filament_type": [
"PC"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"hot_plate_temp": [
"105"
],
"hot_plate_temp_initial_layer": [
"105"
],
"is_custom_defined": "0",
"nozzle_temperature": [
"300"
],
"nozzle_temperature_initial_layer": [
"300"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"270"
],
"overhang_fan_speed": [
"35"
],
"pressure_advance": [
"0.025"
],
"slow_down_layer_time": [
"7"
],
"slow_down_min_speed": [
"12"
],
"filament_vendor": [
"LH Stinger"
],
"temperature_vitrification": [
"140"
]
}
@@ -0,0 +1,352 @@
{
"name": "LHS PCTG",
"type": "filament",
"filament_id": "LHF_pctg",
"setting_id": "LHF_S_pctg",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"13"
],
"fan_max_speed": [
"50"
],
"fan_min_speed": [
"20"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"25"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.953"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"25"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"10"
],
"filament_multitool_ramming_volume": [
"10"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.6"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.25 FILAMENT_HEAT_CAPACITY=5.5\nMAX_FAN LINK_AUX=0"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"PCTG"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"0"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"90"
],
"hot_plate_temp_initial_layer": [
"85"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"30"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"280"
],
"nozzle_temperature_initial_layer": [
"270"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"230"
],
"overhang_fan_speed": [
"50"
],
"overhang_fan_threshold": [
"50%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.038"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"12"
],
"slow_down_min_speed": [
"15"
],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"support_material_interface_fan_speed": [
"50"
],
"temperature_vitrification": [
"80"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"55"
],
"textured_plate_temp_initial_layer": [
"55"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
@@ -0,0 +1,352 @@
{
"name": "LHS PETG",
"type": "filament",
"filament_id": "LHF_petg",
"setting_id": "LHF_S_petg",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"0"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"15"
],
"fan_max_speed": [
"65"
],
"fan_min_speed": [
"35"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.923"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"27"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.6"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.27 FILAMENT_HEAT_CAPACITY=5.5\nMAX_FAN LINK_AUX=0"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"PETG"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"3"
],
"hot_plate_temp": [
"80"
],
"hot_plate_temp_initial_layer": [
"80"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"50"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"260"
],
"nozzle_temperature_initial_layer": [
"260"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"230"
],
"overhang_fan_speed": [
"90"
],
"overhang_fan_threshold": [
"50%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.047"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"14"
],
"slow_down_min_speed": [
"15"
],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"support_material_interface_fan_speed": [
"80"
],
"temperature_vitrification": [
"80"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"55"
],
"textured_plate_temp_initial_layer": [
"55"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
+352
View File
@@ -0,0 +1,352 @@
{
"name": "LHS PLA",
"type": "filament",
"filament_id": "LHF_pla",
"setting_id": "LHF_S_pla",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pla",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"70"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"35"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"0"
],
"eng_plate_temp_initial_layer": [
"0"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"65"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.24"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.95"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"45"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.24 FILAMENT_HEAT_CAPACITY=3.2\n; MAX_FAN LINK_AUX=0"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"PLA"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"-1"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"235"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"280"
],
"nozzle_temperature_range_low": [
"190"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"25%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.02"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"8"
],
"slow_down_min_speed": [
"15"
],
"supertack_plate_temp": [
"45"
],
"supertack_plate_temp_initial_layer": [
"45"
],
"support_material_interface_fan_speed": [
"100"
],
"temperature_vitrification": [
"45"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"55"
],
"textured_plate_temp_initial_layer": [
"60"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
@@ -0,0 +1,352 @@
{
"name": "LHS TPU Foamy 78A",
"type": "filament",
"filament_id": "LHF_ftpuf",
"setting_id": "LHF_S_ftpuf",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"55"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"30"
],
"cool_plate_temp_initial_layer": [
"30"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"30"
],
"eng_plate_temp_initial_layer": [
"30"
],
"fan_cooling_layer_time": [
"30"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"60"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.02"
],
"filament_deretraction_speed": [
"20"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.85"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"4"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"1.2"
],
"filament_retraction_minimum_travel": [
"1"
],
"filament_retraction_speed": [
"30"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.02 FILAMENT_HEAT_CAPACITY=2\n; MAX_FAN LINK_AUX=0 \nSET_PRESSURE_ADVANCE EXTRUDER=extruder SMOOTH_TIME=0.04"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"TPU"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"0"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"0"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"25"
],
"hot_plate_temp_initial_layer": [
"25"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"-1"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"265"
],
"nozzle_temperature_initial_layer": [
"260"
],
"nozzle_temperature_range_high": [
"280"
],
"nozzle_temperature_range_low": [
"240"
],
"overhang_fan_speed": [
"70"
],
"overhang_fan_threshold": [
"25%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.06"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"5"
],
"slow_down_min_speed": [
"20"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"support_material_interface_fan_speed": [
"100"
],
"temperature_vitrification": [
"30"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"35"
],
"textured_plate_temp_initial_layer": [
"35"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
+352
View File
@@ -0,0 +1,352 @@
{
"name": "LHS TPU",
"type": "filament",
"filament_id": "LHF_ptpu_pl",
"setting_id": "LHF_S_ptpu_pl",
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_tpu",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"activate_air_filtration": [
"0"
],
"activate_chamber_temp_control": [
"0"
],
"adaptive_pressure_advance": [
"0"
],
"adaptive_pressure_advance_bridges": [
"0"
],
"adaptive_pressure_advance_model": [
"0,0,0\n0,0,0"
],
"adaptive_pressure_advance_overhangs": [
"0"
],
"additional_cooling_fan_speed": [
"55"
],
"chamber_temperature": [
"0"
],
"close_fan_the_first_x_layers": [
"1"
],
"complete_print_exhaust_fan_speed": [
"70"
],
"cool_plate_temp": [
"30"
],
"cool_plate_temp_initial_layer": [
"30"
],
"default_filament_colour": [
""
],
"dont_slow_down_outer_wall": [
"0"
],
"during_print_exhaust_fan_speed": [
"70"
],
"enable_overhang_bridge_fan": [
"1"
],
"enable_pressure_advance": [
"1"
],
"eng_plate_temp": [
"30"
],
"eng_plate_temp_initial_layer": [
"30"
],
"fan_cooling_layer_time": [
"20"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"60"
],
"filament_adaptive_volumetric_speed": [
"0"
],
"filament_adhesiveness_category": [
"0"
],
"filament_change_length": [
"10"
],
"filament_cooling_final_speed": [
"0"
],
"filament_cooling_initial_speed": [
"0"
],
"filament_cooling_moves": [
"0"
],
"filament_cost": [
"20"
],
"filament_density": [
"1.22"
],
"filament_deretraction_speed": [
"20"
],
"filament_diameter": [
"1.75"
],
"filament_end_gcode": [
"; filament end gcode\n"
],
"filament_extruder_variant": [
"Direct Drive Standard"
],
"filament_flow_ratio": [
"0.965"
],
"filament_flush_temp": [
"0"
],
"filament_flush_volumetric_speed": [
"0"
],
"filament_ironing_flow": [
"nil"
],
"filament_ironing_inset": [
"nil"
],
"filament_ironing_spacing": [
"nil"
],
"filament_ironing_speed": [
"nil"
],
"filament_is_support": [
"0"
],
"filament_loading_speed": [
"0"
],
"filament_loading_speed_start": [
"0"
],
"filament_long_retractions_when_cut": [
"nil"
],
"filament_max_volumetric_speed": [
"20"
],
"filament_minimal_purge_on_wipe_tower": [
"0"
],
"filament_multitool_ramming": [
"0"
],
"filament_multitool_ramming_flow": [
"0"
],
"filament_multitool_ramming_volume": [
"0"
],
"filament_notes": [
""
],
"filament_printable": [
"3"
],
"filament_ramming_parameters": [
"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_lift_above": [
"nil"
],
"filament_retract_lift_below": [
"nil"
],
"filament_retract_lift_enforce": [
"Bottom Only"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_distances_when_cut": [
"nil"
],
"filament_retraction_length": [
"0.9"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retraction_speed": [
"35"
],
"filament_shrink": [
"100%"
],
"filament_shrinkage_compensation_z": [
"100%"
],
"filament_soluble": [
"0"
],
"filament_stamping_distance": [
"0"
],
"filament_stamping_loading_speed": [
"0"
],
"filament_start_gcode": [
"; filament start gcode\n; MPC_SET HEATER=extruder FILAMENT_DENSITY=1.22 FILAMENT_HEAT_CAPACITY=2\n; MAX_FAN LINK_AUX=0\nSET_PRESSURE_ADVANCE EXTRUDER=extruder SMOOTH_TIME=0.04"
],
"filament_toolchange_delay": [
"0"
],
"filament_tower_interface_pre_extrusion_dist": [
"10"
],
"filament_tower_interface_pre_extrusion_length": [
"0"
],
"filament_tower_interface_print_temp": [
"-1"
],
"filament_tower_interface_purge_volume": [
"20"
],
"filament_tower_ironing_area": [
"4"
],
"filament_type": [
"TPU"
],
"filament_unloading_speed": [
"0"
],
"filament_unloading_speed_start": [
"0"
],
"filament_wipe": [
"0"
],
"filament_wipe_distance": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_z_hop_types": [
"nil"
],
"full_fan_speed_layer": [
"0"
],
"hot_plate_temp": [
"30"
],
"hot_plate_temp_initial_layer": [
"30"
],
"idle_temperature": [
"0"
],
"internal_bridge_fan_speed": [
"-1"
],
"ironing_fan_speed": [
"-1"
],
"long_retractions_when_ec": [
"0"
],
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"230"
],
"nozzle_temperature_range_high": [
"300"
],
"nozzle_temperature_range_low": [
"200"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"25%"
],
"pellet_flow_coefficient": [
"0.4157"
],
"pressure_advance": [
"0.08"
],
"reduce_fan_stop_start_freq": [
"1"
],
"required_nozzle_HRC": [
"3"
],
"retraction_distances_when_ec": [
"10"
],
"slow_down_for_layer_cooling": [
"1"
],
"slow_down_layer_time": [
"12"
],
"slow_down_min_speed": [
"12"
],
"supertack_plate_temp": [
"0"
],
"supertack_plate_temp_initial_layer": [
"0"
],
"support_material_interface_fan_speed": [
"100"
],
"temperature_vitrification": [
"30"
],
"textured_cool_plate_temp": [
"40"
],
"textured_cool_plate_temp_initial_layer": [
"40"
],
"textured_plate_temp": [
"35"
],
"textured_plate_temp_initial_layer": [
"35"
],
"filament_vendor": [
"LH Stinger"
],
"volumetric_speed_coefficients": [
""
]
}
@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_abs",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"105"
],
"eng_plate_temp": [
"105"
],
"hot_plate_temp": [
"105"
],
"textured_plate_temp": [
"105"
],
"cool_plate_temp_initial_layer": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"hot_plate_temp_initial_layer": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"filament_max_volumetric_speed": [
"28.6"
],
"filament_type": [
"ABS"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"260"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"80"
],
"nozzle_temperature": [
"260"
],
"temperature_vitrification": [
"110"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"270"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"3"
]
}
@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_asa",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"105"
],
"eng_plate_temp": [
"105"
],
"hot_plate_temp": [
"105"
],
"textured_plate_temp": [
"105"
],
"cool_plate_temp_initial_layer": [
"105"
],
"eng_plate_temp_initial_layer": [
"105"
],
"hot_plate_temp_initial_layer": [
"105"
],
"textured_plate_temp_initial_layer": [
"105"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"35"
],
"filament_max_volumetric_speed": [
"28.6"
],
"filament_type": [
"ASA"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"260"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"80"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"80"
],
"nozzle_temperature": [
"260"
],
"temperature_vitrification": [
"110"
],
"nozzle_temperature_range_low": [
"240"
],
"nozzle_temperature_range_high": [
"270"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"3"
]
}
@@ -0,0 +1,141 @@
{
"type": "filament",
"name": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"60"
],
"eng_plate_temp": [
"60"
],
"hot_plate_temp": [
"60"
],
"textured_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
],
"overhang_fan_threshold": [
"95%"
],
"overhang_fan_speed": [
"100"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_flow_ratio": [
"1"
],
"reduce_fan_stop_start_freq": [
"0"
],
"fan_cooling_layer_time": [
"60"
],
"filament_cost": [
"0"
],
"filament_density": [
"0"
],
"filament_deretraction_speed": [
"nil"
],
"filament_diameter": [
"1.75"
],
"filament_max_volumetric_speed": [
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"filament_retraction_minimum_travel": [
"nil"
],
"filament_retract_before_wipe": [
"nil"
],
"filament_retract_when_changing_layer": [
"nil"
],
"filament_retraction_length": [
"nil"
],
"filament_z_hop": [
"nil"
],
"filament_retract_restart_extra": [
"nil"
],
"filament_retraction_speed": [
"nil"
],
"filament_settings_id": [
""
],
"filament_soluble": [
"0"
],
"filament_type": [
"PLA"
],
"filament_vendor": [
"Generic"
],
"filament_wipe": [
"nil"
],
"filament_wipe_distance": [
"nil"
],
"bed_type": [
"Cool Plate"
],
"nozzle_temperature_initial_layer": [
"200"
],
"full_fan_speed_layer": [
"0"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"35"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"8"
],
"filament_start_gcode": [
"; Filament gcode\n"
],
"nozzle_temperature": [
"200"
],
"temperature_vitrification": [
"100"
]
}
@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_pc",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"0"
],
"eng_plate_temp": [
"110"
],
"hot_plate_temp": [
"110"
],
"textured_plate_temp": [
"110"
],
"cool_plate_temp_initial_layer": [
"0"
],
"eng_plate_temp_initial_layer": [
"110"
],
"hot_plate_temp_initial_layer": [
"110"
],
"textured_plate_temp_initial_layer": [
"110"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"30"
],
"filament_max_volumetric_speed": [
"23.2"
],
"filament_type": [
"PC"
],
"filament_density": [
"1.04"
],
"filament_cost": [
"20"
],
"nozzle_temperature_initial_layer": [
"270"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"60"
],
"fan_min_speed": [
"10"
],
"overhang_fan_threshold": [
"25%"
],
"overhang_fan_speed": [
"60"
],
"nozzle_temperature": [
"280"
],
"temperature_vitrification": [
"140"
],
"nozzle_temperature_range_low": [
"260"
],
"nozzle_temperature_range_high": [
"280"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"2"
]
}
@@ -0,0 +1,82 @@
{
"type": "filament",
"name": "fdm_filament_pet",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"60"
],
"eng_plate_temp": [
"0"
],
"hot_plate_temp": [
"80"
],
"textured_plate_temp": [
"80"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp_initial_layer": [
"0"
],
"hot_plate_temp_initial_layer": [
"80"
],
"textured_plate_temp_initial_layer": [
"80"
],
"slow_down_for_layer_cooling": [
"1"
],
"close_fan_the_first_x_layers": [
"3"
],
"fan_cooling_layer_time": [
"20"
],
"filament_max_volumetric_speed": [
"25"
],
"filament_type": [
"PETG"
],
"filament_density": [
"1.27"
],
"filament_cost": [
"30"
],
"nozzle_temperature_initial_layer": [
"255"
],
"reduce_fan_stop_start_freq": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"20"
],
"overhang_fan_speed": [
"100"
],
"nozzle_temperature": [
"255"
],
"temperature_vitrification": [
"80"
],
"nozzle_temperature_range_low": [
"220"
],
"nozzle_temperature_range_high": [
"260"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}
@@ -0,0 +1,94 @@
{
"type": "filament",
"name": "fdm_filament_pla",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"12"
],
"filament_type": [
"PLA"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"cool_plate_temp": [
"60"
],
"eng_plate_temp": [
"60"
],
"hot_plate_temp": [
"60"
],
"textured_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"60"
],
"eng_plate_temp_initial_layer": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"textured_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"220"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"overhang_fan_threshold": [
"50%"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"60"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"230"
],
"slow_down_min_speed": [
"10"
],
"slow_down_layer_time": [
"4"
],
"additional_cooling_fan_speed": [
"70"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}
@@ -0,0 +1,88 @@
{
"type": "filament",
"name": "fdm_filament_tpu",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"cool_plate_temp": [
"30"
],
"eng_plate_temp": [
"30"
],
"hot_plate_temp": [
"35"
],
"textured_plate_temp": [
"35"
],
"cool_plate_temp_initial_layer": [
"30"
],
"eng_plate_temp_initial_layer": [
"30"
],
"hot_plate_temp_initial_layer": [
"35"
],
"textured_plate_temp_initial_layer": [
"35"
],
"fan_cooling_layer_time": [
"100"
],
"filament_max_volumetric_speed": [
"15"
],
"filament_type": [
"TPU"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"20"
],
"filament_retraction_length": [
"0.4"
],
"nozzle_temperature_initial_layer": [
"240"
],
"reduce_fan_stop_start_freq": [
"1"
],
"slow_down_for_layer_cooling": [
"1"
],
"fan_max_speed": [
"100"
],
"fan_min_speed": [
"100"
],
"overhang_fan_speed": [
"100"
],
"additional_cooling_fan_speed": [
"70"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"240"
],
"temperature_vitrification": [
"60"
],
"nozzle_temperature_range_low": [
"200"
],
"nozzle_temperature_range_high": [
"250"
],
"filament_start_gcode": [
"; filament start gcode\n"
]
}
@@ -0,0 +1,16 @@
{
"type": "machine",
"name": "LH Stinger 0.4 nozzle",
"inherits": "fdm_lh_common",
"from": "system",
"setting_id": "LHS_m01_04",
"instantiation": "true",
"printer_model": "LH Stinger",
"nozzle_diameter": [
"0.4"
],
"default_filament_profile": [
"LHS PLA"
],
"printer_variant": "0.4"
}
@@ -0,0 +1,16 @@
{
"type": "machine",
"name": "LH Stinger MMU 0.4 nozzle",
"inherits": "fdm_lh_mmu_common",
"from": "system",
"setting_id": "LHS_m01_mmu_04",
"instantiation": "true",
"printer_model": "LH Stinger MMU",
"nozzle_diameter": [
"0.4"
],
"default_filament_profile": [
"LHS PLA"
],
"printer_variant": "0.4"
}
@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "LH Stinger MMU",
"model_id": "LHS_M_mmu",
"nozzle_diameter": "0.4",
"machine_tech": "FFF",
"family": "LH",
"bed_model": "LH_Stinger_buildplate_model.STL",
"bed_texture": "LH_Stinger_MMU_buildplate_texture.png",
"hotend_model": "",
"default_materials": "LHS PLA;LHS PETG;LHS PCTG;LHS ASA;LHS ABS;LHS PC CF;LHS TPU Foamy 78A;LHS TPU;"
}
@@ -0,0 +1,12 @@
{
"type": "machine_model",
"name": "LH Stinger",
"model_id": "LHS_M_base",
"nozzle_diameter": "0.4",
"machine_tech": "FFF",
"family": "LH",
"bed_model": "LH_Stinger_buildplate_model.STL",
"bed_texture": "LH_Stinger_buildplate_texture.png",
"hotend_model": "",
"default_materials": "LHS PLA;LHS PETG;LHS PCTG;LHS ASA;LHS ABS;LHS PC CF;LHS TPU Foamy 78A;LHS TPU;"
}
@@ -0,0 +1,157 @@
{
"type": "machine",
"name": "fdm_lh_common",
"inherits": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"gcode_flavor": "klipper",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"200000",
"20000"
],
"machine_max_acceleration_retracting": [
"200000",
"5000"
],
"machine_max_acceleration_travel": [
"20000",
"20000"
],
"machine_max_acceleration_x": [
"200000",
"20000"
],
"machine_max_acceleration_y": [
"200000",
"20000"
],
"machine_max_acceleration_z": [
"2000",
"200"
],
"machine_max_speed_e": [
"200",
"25"
],
"machine_max_speed_x": [
"1000",
"200"
],
"machine_max_speed_y": [
"1000",
"200"
],
"machine_max_speed_z": [
"100",
"12"
],
"machine_max_jerk_e": [
"15",
"2.5"
],
"machine_max_jerk_x": [
"15",
"9"
],
"machine_max_jerk_y": [
"15",
"9"
],
"machine_max_jerk_z": [
"15",
"0.4"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.08"
],
"printable_area": [
"18x38",
"218x38",
"218x238",
"18x238"
],
"printable_height": "180",
"extruder_clearance_radius": "65",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"printer_settings_id": "",
"printer_technology": "FFF",
"printer_variant": "0.4",
"retraction_minimum_travel": [
"1"
],
"retract_before_wipe": [
"70%"
],
"retract_when_changing_layer": [
"1"
],
"retraction_length": [
"0.3"
],
"retract_length_toolchange": [
"0"
],
"z_hop": [
"0.2"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retraction_speed": [
"40"
],
"deretraction_speed": [
"30"
],
"retract_lift_enforce": [
"Top and Bottom"
],
"z_hop_types": [
"Auto Lift"
],
"silent_mode": "0",
"single_extruder_multi_material": "1",
"change_filament_gcode": "",
"manual_filament_change": "1",
"wipe": [
"1"
],
"default_filament_profile": [
"LH Generic PLA"
],
"enable_filament_ramming": "0",
"default_print_profile": "0.20mm Daily @LH Stinger",
"bed_exclude_area": [
"0x0"
],
"machine_start_gcode": "PRINT_START_LHS BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] AUTOMESH=1 AUTOPURGE=1 QUIETMODE={if print_preset =~ /.*Quiet.*/ }1{else}0{endif}\n",
"machine_end_gcode": "PRINT_END",
"layer_change_gcode": ";AFTER_LAYER_CHANGES\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"machine_pause_gcode": "PAUSE",
"scan_first_layer": "0",
"nozzle_type": [
"brass"
],
"bed_temperature_formula": "by_first_filament",
"auxiliary_fan": "1"
}
@@ -0,0 +1,21 @@
{
"type": "machine",
"name": "fdm_lh_mmu_common",
"inherits": "fdm_lh_common",
"from": "system",
"instantiation": "false",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"enable_filament_ramming": "0",
"extra_loading_move": "0",
"machine_start_gcode": " _SP_PRINT_START LANE=[initial_tool] TEMP=[nozzle_temperature_initial_layer]\n\nPRINT_START_LHS BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] AUTOMESH=1 AUTOPURGE=1 QUIETMODE={if print_preset =~ /.*Quiet.*/ }1{else}0{endif}\n\n",
"change_filament_gcode": " _SP_SET_PURGE PURGE=[first_flush_volume] ",
"layer_change_gcode": ";AFTER_LAYER_CHANGES\n;[layer_z]",
"machine_end_gcode": "PRINT_END\n\n_SP_PRINT_END",
"machine_tool_change_time": "20",
"parking_pos_retraction": "0",
"manual_filament_change": "0",
"retract_length_toolchange": [
"0"
]
}
@@ -0,0 +1,119 @@
{
"type": "machine",
"name": "fdm_machine_common",
"from": "system",
"instantiation": "false",
"printer_technology": "FFF",
"deretraction_speed": [
"40"
],
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"gcode_flavor": "marlin",
"silent_mode": "0",
"machine_max_acceleration_e": [
"5000"
],
"machine_max_acceleration_extruding": [
"10000"
],
"machine_max_acceleration_retracting": [
"1000"
],
"machine_max_acceleration_x": [
"10000"
],
"machine_max_acceleration_y": [
"10000"
],
"machine_max_acceleration_z": [
"500"
],
"machine_max_speed_e": [
"60"
],
"machine_max_speed_x": [
"500"
],
"machine_max_speed_y": [
"500"
],
"machine_max_speed_z": [
"10"
],
"machine_max_jerk_e": [
"5"
],
"machine_max_jerk_x": [
"8"
],
"machine_max_jerk_y": [
"8"
],
"machine_max_jerk_z": [
"0.4"
],
"machine_min_extruding_rate": [
"0"
],
"machine_min_travel_rate": [
"0"
],
"max_layer_height": [
"0.32"
],
"min_layer_height": [
"0.08"
],
"printable_height": "250",
"extruder_clearance_radius": "65",
"extruder_clearance_height_to_rod": "36",
"extruder_clearance_height_to_lid": "140",
"nozzle_diameter": [
"0.4"
],
"printer_settings_id": "",
"printer_variant": "0.4",
"retraction_minimum_travel": [
"2"
],
"retract_before_wipe": [
"70%"
],
"retract_when_changing_layer": [
"1"
],
"retraction_length": [
"1"
],
"retract_length_toolchange": [
"1"
],
"z_hop": [
"0"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retraction_speed": [
"60"
],
"single_extruder_multi_material": "1",
"change_filament_gcode": "",
"wipe": [
"1"
],
"default_print_profile": "",
"machine_start_gcode": "G0 Z20 F9000\nG92 E0; G1 E-10 F1200\nG28\nM970 Q1 A10 B10 C130 K0\nM970 Q1 A10 B131 C250 K1\nM974 Q1 S1 P0\nM970 Q0 A10 B10 C130 H20 K0\nM970 Q0 A10 B131 C250 K1\nM974 Q0 S1 P0\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nG29 ;Home\nG90;\nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM109 S205;\nG1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder \nG1 X110 Y110 Z2.0 F3000 ;Move Z Axis up",
"machine_end_gcode": "M400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-4.0 F3600; retract \nG91\nG1 Z3;\nM104 S0 ; turn off hotend\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nG90 \nG0 X110 Y200 F3600 \nprint_end",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"machine_pause_gcode": "M601"
}
@@ -0,0 +1,42 @@
{
"type": "process",
"name": "0.10mm HueForge @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_hueforge",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"bottom_shell_layers": "999",
"bottom_solid_infill_flow_ratio": "0.98",
"detect_narrow_internal_solid_infill": "0",
"ensure_vertical_shell_thickness": "none",
"initial_layer_acceleration": "1000",
"initial_layer_infill_speed": "150",
"initial_layer_print_height": "0.16",
"initial_layer_speed": "80",
"layer_height": "0.1",
"max_travel_detour_distance": "60",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"reduce_crossing_wall": "1",
"skirt_loops": "1",
"slice_closing_radius": "0.042",
"sparse_infill_density": "0%",
"top_bottom_infill_wall_overlap": "15%",
"top_shell_layers": "0",
"top_solid_infill_flow_ratio": "0.98",
"brim_type": "no_brim",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"reduce_infill_retraction": "1",
"gap_fill_target": "nowhere",
"filter_out_gap_fill": "0.5",
"wall_loops": "1"
}
@@ -0,0 +1,54 @@
{
"type": "process",
"name": "0.14mm Detail @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_detail",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"bottom_shell_layers": "5",
"bridge_flow": "1.2",
"default_jerk": "10",
"enable_support": "1",
"ensure_vertical_shell_thickness": "ensure_moderate",
"filter_out_gap_fill": "10",
"infill_jerk": "10",
"infill_wall_overlap": "10%",
"initial_layer_infill_speed": "90",
"initial_layer_jerk": "10",
"initial_layer_travel_speed": "250",
"inner_wall_jerk": "10",
"internal_bridge_flow": "1.2",
"layer_height": "0.14",
"max_travel_detour_distance": "50",
"outer_wall_jerk": "10",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"slow_down_layers": "2",
"small_perimeter_speed": "75%",
"small_perimeter_threshold": "3",
"sparse_infill_pattern": "rectilinear",
"sparse_infill_density": "15%",
"support_angle": "45",
"support_base_pattern": "rectilinear",
"support_base_pattern_spacing": "1.5",
"support_bottom_z_distance": "0.15",
"support_style": "organic",
"support_type": "tree(auto)",
"top_shell_layers": "6",
"top_surface_jerk": "10",
"wall_generator": "arachne",
"min_length_factor": "0.5",
"gap_fill_target": "nowhere",
"wall_loops": "3",
"travel_jerk": "10"
}
@@ -0,0 +1,67 @@
{
"type": "process",
"name": "0.14mm Detail Strength @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_detail_strength",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"bottom_shell_layers": "6",
"bottom_shell_thickness": "0.8",
"bridge_acceleration": "7500",
"bridge_flow": "1.2",
"brim_width": "3",
"default_acceleration": "15000",
"default_jerk": "10",
"gap_infill_speed": "200",
"infill_anchor": "1000",
"infill_anchor_max": "1000",
"infill_jerk": "10",
"initial_layer_infill_speed": "90",
"initial_layer_jerk": "10",
"initial_layer_travel_speed": "250",
"inner_wall_acceleration": "10000",
"inner_wall_speed": "200",
"inner_wall_jerk": "10",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_speed": "200",
"layer_height": "0.14",
"max_travel_detour_distance": "50",
"outer_wall_acceleration": "7500",
"outer_wall_jerk": "10",
"outer_wall_speed": "200",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"slow_down_layers": "2",
"small_perimeter_speed": "75%",
"small_perimeter_threshold": "3",
"sparse_infill_acceleration": "15000",
"sparse_infill_speed": "200",
"sparse_infill_density": "40%",
"sparse_infill_pattern": "gyroid",
"support_base_pattern_spacing": "1.5",
"support_bottom_interface_spacing": "0.3",
"support_bottom_z_distance": "0.15",
"support_interface_speed": "300",
"support_speed": "200",
"support_type": "normal(manual)",
"top_shell_layers": "7",
"top_shell_thickness": "1",
"top_surface_acceleration": "7500",
"top_surface_jerk": "10",
"top_surface_speed": "200",
"travel_jerk": "10",
"wall_generator": "arachne",
"wall_sequence": "inner wall/outer wall",
"top_bottom_infill_wall_overlap": "25%",
"wall_loops": "4"
}
@@ -0,0 +1,12 @@
{
"type": "process",
"name": "0.20mm Daily @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_daily",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
]
}
@@ -0,0 +1,48 @@
{
"type": "process",
"name": "0.20mm MMU @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_mmu",
"instantiation": "true",
"compatible_printers": [
"LH Stinger MMU 0.4 nozzle"
],
"bottom_surface_pattern": "monotonicline",
"bridge_acceleration": "7000",
"default_jerk": "10",
"detect_narrow_internal_solid_infill": "0",
"filter_out_gap_fill": "1",
"gap_infill_speed": "220",
"infill_jerk": "10",
"infill_wall_overlap": "8%",
"initial_layer_infill_speed": "120",
"initial_layer_jerk": "10",
"initial_layer_line_width": "0.4",
"inner_wall_acceleration": "15000",
"inner_wall_jerk": "10",
"inner_wall_speed": "220",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_speed": "220",
"only_one_wall_first_layer": "1",
"outer_wall_jerk": "10",
"outer_wall_speed": "220",
"prime_tower_width": "80",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "50%",
"small_perimeter_threshold": "2",
"sparse_infill_acceleration": "15000",
"sparse_infill_pattern": "rectilinear",
"sparse_infill_speed": "220",
"top_bottom_infill_wall_overlap": "8%",
"top_surface_jerk": "10",
"top_surface_speed": "150",
"wall_generator": "arachne",
"sparse_infill_density": "15%",
"travel_jerk": "10"
}
@@ -0,0 +1,74 @@
{
"type": "process",
"name": "0.20mm PETG @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_petg",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "90%",
"bottom_shell_layers": "5",
"bridge_acceleration": "3000",
"bridge_density": "95%",
"bridge_flow": "1.1",
"bridge_speed": "30",
"brim_ears_max_angle": "180",
"brim_object_gap": "0.04",
"default_acceleration": "15000",
"default_jerk": "10",
"filter_out_gap_fill": "1",
"gap_infill_speed": "200",
"infill_jerk": "10",
"infill_wall_overlap": "10%",
"initial_layer_infill_speed": "100",
"initial_layer_jerk": "10",
"initial_layer_print_height": "0.25",
"initial_layer_travel_speed": "250",
"inner_wall_acceleration": "15000",
"inner_wall_speed": "200",
"inner_wall_jerk": "10",
"inner_wall_line_width": "0.44",
"internal_bridge_speed": "50",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_speed": "200",
"internal_solid_infill_line_width": "0.44",
"line_width": "0.44",
"max_travel_detour_distance": "50",
"outer_wall_jerk": "10",
"outer_wall_line_width": "0.44",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60%",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"overhang_reverse_internal_only": "1",
"overhang_reverse_threshold": "0%",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "60%",
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"slow_down_layers": "2",
"small_perimeter_threshold": "10",
"sparse_infill_acceleration": "15000",
"sparse_infill_speed": "200",
"sparse_infill_line_width": "0.44",
"support_interface_speed": "200",
"support_line_width": "0.42",
"support_speed": "200",
"top_bottom_infill_wall_overlap": "18%",
"top_shell_layers": "6",
"top_surface_acceleration": "5000",
"top_surface_jerk": "10",
"top_surface_speed": "130",
"travel_jerk": "10",
"wall_loops": "3",
"gap_fill_target": "nowhere",
"wipe_tower_max_purge_speed": "150"
}
@@ -0,0 +1,53 @@
{
"type": "process",
"name": "0.20mm Quiet @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_quiet",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "75%",
"bridge_acceleration": "5000",
"bridge_speed": "40",
"default_acceleration": "10000",
"default_jerk": "5",
"filter_out_gap_fill": "10",
"gap_infill_speed": "200",
"infill_jerk": "5",
"infill_wall_overlap": "10%",
"initial_layer_infill_speed": "100",
"initial_layer_jerk": "5",
"initial_layer_travel_speed": "180",
"inner_wall_acceleration": "10000",
"inner_wall_jerk": "5",
"internal_bridge_speed": "60",
"internal_solid_infill_acceleration": "10000",
"outer_wall_acceleration": "5000",
"outer_wall_jerk": "5",
"outer_wall_speed": "200",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "60%",
"sparse_infill_acceleration": "10000",
"sparse_infill_pattern": "rectilinear",
"support_interface_speed": "170",
"support_speed": "170",
"top_surface_jerk": "5",
"top_surface_speed": "200",
"inner_wall_speed": "200",
"sparse_infill_speed": "200",
"internal_solid_infill_speed": "200",
"travel_acceleration": "10000",
"travel_jerk": "5",
"sparse_infill_density": "15%",
"accel_to_decel_enable": "1",
"gap_fill_target": "nowhere",
"travel_speed": "200"
}
@@ -0,0 +1,64 @@
{
"type": "process",
"name": "0.20mm Solid @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_solid",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "90%",
"bottom_shell_layers": "2",
"bridge_acceleration": "5000",
"bridge_density": "97%",
"brim_object_gap": "0.04",
"default_acceleration": "15000",
"default_jerk": "10",
"detect_narrow_internal_solid_infill": "0",
"enable_support": "1",
"ensure_vertical_shell_thickness": "none",
"filter_out_gap_fill": "2",
"gap_infill_speed": "200",
"infill_jerk": "10",
"infill_wall_overlap": "18%",
"initial_layer_jerk": "10",
"initial_layer_line_width": "0.45",
"initial_layer_print_height": "0.25",
"inner_wall_acceleration": "15000",
"inner_wall_jerk": "10",
"internal_solid_infill_acceleration": "15000",
"outer_wall_jerk": "10",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60%",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "60%",
"small_perimeter_threshold": "7",
"sparse_infill_acceleration": "15000",
"sparse_infill_density": "98%",
"sparse_infill_pattern": "rectilinear",
"support_interface_speed": "200",
"support_speed": "200",
"top_shell_layers": "2",
"top_shell_thickness": "0.6",
"top_solid_infill_flow_ratio": "0.96",
"top_surface_acceleration": "5000",
"top_surface_jerk": "10",
"top_surface_speed": "150",
"inner_wall_speed": "200",
"sparse_infill_speed": "200",
"internal_solid_infill_speed": "200",
"internal_bridge_density": "95%",
"internal_bridge_speed": "150",
"gap_fill_target": "nowhere",
"wall_loops": "3",
"travel_jerk": "10"
}
@@ -0,0 +1,43 @@
{
"type": "process",
"name": "0.20mm Speed @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_speed",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"bridge_acceleration": "15000",
"default_acceleration": "30000",
"filter_out_gap_fill": "10",
"infill_wall_overlap": "10%",
"initial_layer_speed": "90",
"inner_wall_acceleration": "30000",
"inner_wall_speed": "600",
"internal_solid_infill_acceleration": "30000",
"internal_solid_infill_speed": "600",
"outer_wall_acceleration": "15000",
"outer_wall_speed": "600",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "80%",
"sparse_infill_acceleration": "30000",
"sparse_infill_pattern": "rectilinear",
"sparse_infill_speed": "600",
"support_bottom_z_distance": "0.15",
"support_expansion": "2",
"support_interface_top_layers": "3",
"support_object_xy_distance": "0.25",
"top_surface_acceleration": "15000",
"top_surface_speed": "300",
"travel_acceleration": "30000",
"sparse_infill_density": "15%",
"gap_fill_target": "nowhere",
"travel_speed": "600"
}
@@ -0,0 +1,66 @@
{
"type": "process",
"name": "0.20mm Strength @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_strength",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "90%",
"bottom_shell_layers": "5",
"bridge_acceleration": "5000",
"bridge_flow": "1.4",
"brim_object_gap": "0.04",
"default_acceleration": "15000",
"default_jerk": "10",
"filter_out_gap_fill": "1",
"gap_infill_speed": "200",
"infill_anchor": "1000",
"infill_anchor_max": "1000",
"infill_jerk": "10",
"initial_layer_infill_speed": "120",
"initial_layer_jerk": "10",
"initial_layer_speed": "90",
"initial_layer_travel_speed": "250",
"inner_wall_acceleration": "15000",
"inner_wall_jerk": "10",
"inner_wall_line_width": "0.46",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_line_width": "0.46",
"line_width": "0.46",
"outer_wall_jerk": "10",
"outer_wall_line_width": "0.46",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60%",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"precise_outer_wall": "0",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"sparse_infill_acceleration": "15000",
"sparse_infill_density": "40%",
"sparse_infill_line_width": "0.46",
"sparse_infill_pattern": "gyroid",
"support_bottom_z_distance": "0.15",
"support_interface_speed": "200",
"support_line_width": "0.42",
"support_speed": "200",
"top_shell_layers": "6",
"top_shell_thickness": "1",
"top_surface_acceleration": "5000",
"top_surface_jerk": "10",
"top_surface_speed": "200",
"inner_wall_speed": "200",
"sparse_infill_speed": "200",
"internal_solid_infill_speed": "200",
"travel_jerk": "10",
"wall_sequence": "inner wall/outer wall",
"wall_loops": "4"
}
@@ -0,0 +1,82 @@
{
"type": "process",
"name": "0.20mm TPU @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_tpu",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "90%",
"bridge_acceleration": "5000",
"bridge_density": "95%",
"bridge_flow": "1.4",
"bridge_speed": "40",
"brim_ears_max_angle": "180",
"brim_object_gap": "0.02",
"default_acceleration": "15000",
"default_jerk": "5",
"elefant_foot_compensation": "0.15",
"filter_out_gap_fill": "40",
"gap_infill_speed": "200",
"infill_jerk": "5",
"initial_layer_infill_speed": "70",
"initial_layer_jerk": "5",
"initial_layer_print_height": "0.25",
"initial_layer_speed": "40",
"initial_layer_travel_speed": "200",
"inner_wall_acceleration": "15000",
"inner_wall_jerk": "5",
"inner_wall_line_width": "0.46",
"internal_bridge_flow": "1.2",
"internal_bridge_speed": "50",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_line_width": "0.46",
"internal_solid_infill_speed": "180",
"line_width": "0.46",
"max_travel_detour_distance": "50",
"outer_wall_jerk": "5",
"outer_wall_line_width": "0.46",
"outer_wall_speed": "150",
"overhang_1_4_speed": "60%",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"raft_first_layer_density": "80%",
"reduce_crossing_wall": "1",
"skirt_loops": "2",
"slow_down_layers": "2",
"small_perimeter_speed": "60%",
"small_perimeter_threshold": "10",
"sparse_infill_acceleration": "15000",
"sparse_infill_line_width": "0.46",
"sparse_infill_speed": "150",
"sparse_infill_density": "15%",
"staggered_inner_seams": "1",
"support_expansion": "2",
"support_interface_speed": "200",
"support_line_width": "0.42",
"support_speed": "200",
"top_bottom_infill_wall_overlap": "18%",
"top_surface_acceleration": "5000",
"top_surface_jerk": "5",
"top_surface_line_width": "0.42",
"top_surface_speed": "150",
"travel_jerk": "10",
"wipe_speed": "80",
"inner_wall_speed": "200",
"ensure_vertical_shell_thickness": "ensure_moderate",
"wall_sequence": "inner wall/outer wall",
"wall_loops": "3",
"gap_fill_target": "nowhere",
"reduce_infill_retraction": "1",
"infill_wall_overlap": "22%",
"wipe_tower_max_purge_speed": "80"
}
@@ -0,0 +1,70 @@
{
"type": "process",
"name": "0.25mm Vase Mode @LH Stinger",
"inherits": "fdm_process_lh_common",
"from": "system",
"setting_id": "LHS_P_vase_mode",
"instantiation": "true",
"compatible_printers": [
"LH Stinger 0.4 nozzle",
"LH Stinger MMU 0.4 nozzle"
],
"accel_to_decel_factor": "90%",
"bottom_shell_layers": "5",
"bridge_acceleration": "5000",
"bridge_flow": "1.4",
"brim_object_gap": "0.04",
"default_acceleration": "15000",
"default_jerk": "10",
"filter_out_gap_fill": "1",
"gap_infill_speed": "200",
"infill_jerk": "10",
"infill_wall_overlap": "10%",
"initial_layer_jerk": "10",
"initial_layer_line_width": "0.65",
"initial_layer_print_height": "0.25",
"initial_layer_speed": "80",
"initial_layer_travel_speed": "250",
"inner_wall_acceleration": "15000",
"inner_wall_jerk": "10",
"inner_wall_line_width": "0.46",
"internal_solid_infill_acceleration": "15000",
"internal_solid_infill_line_width": "0.46",
"layer_height": "0.25",
"line_width": "0.46",
"notes": "Decrease your Filament - Minimum layer time to ~2 seconds and set your fan speeds to be constant",
"outer_wall_jerk": "10",
"outer_wall_line_width": "0.65",
"outer_wall_speed": "200",
"overhang_1_4_speed": "60%",
"overhang_2_4_speed": "40",
"overhang_3_4_speed": "20",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"sparse_infill_acceleration": "15000",
"sparse_infill_density": "0%",
"sparse_infill_line_width": "0.46",
"sparse_infill_pattern": "3dhoneycomb",
"spiral_mode": "1",
"spiral_mode_smooth": "1",
"support_interface_speed": "200",
"support_line_width": "0.42",
"support_speed": "200",
"top_bottom_infill_wall_overlap": "10%",
"top_shell_layers": "0",
"top_shell_thickness": "1",
"top_surface_acceleration": "5000",
"top_surface_jerk": "10",
"top_surface_speed": "200",
"inner_wall_speed": "200",
"sparse_infill_speed": "200",
"internal_solid_infill_speed": "200",
"wall_sequence": "inner wall/outer wall",
"travel_jerk": "10",
"skirt_loops": "1",
"wall_loops": "1"
}
@@ -0,0 +1,108 @@
{
"type": "process",
"name": "fdm_process_common",
"from": "system",
"instantiation": "false",
"adaptive_layer_height": "0",
"reduce_crossing_wall": "0",
"max_travel_detour_distance": "0",
"bottom_surface_pattern": "monotonic",
"bottom_shell_thickness": "0",
"bridge_speed": "50",
"brim_width": "5",
"brim_object_gap": "0.1",
"compatible_printers": [],
"compatible_printers_condition": "",
"print_sequence": "by layer",
"default_acceleration": "1000",
"initial_layer_acceleration": "500",
"top_surface_acceleration": "1000",
"travel_acceleration": "1000",
"inner_wall_acceleration": "1000",
"outer_wall_acceleration": "700",
"bridge_no_support": "0",
"draft_shield": "disabled",
"elefant_foot_compensation": "0",
"enable_arc_fitting": "0",
"wall_infill_order": "inner wall/outer wall/infill",
"infill_direction": "45",
"sparse_infill_density": "15%",
"sparse_infill_pattern": "crosshatch",
"initial_layer_print_height": "0.2",
"infill_combination": "0",
"infill_wall_overlap": "25%",
"interface_shells": "0",
"ironing_flow": "10%",
"ironing_spacing": "0.15",
"ironing_speed": "30",
"ironing_type": "no ironing",
"reduce_infill_retraction": "1",
"filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode",
"detect_overhang_wall": "1",
"slowdown_for_curled_perimeters": "1",
"overhang_1_4_speed": "0",
"overhang_2_4_speed": "50",
"overhang_3_4_speed": "30",
"overhang_4_4_speed": "10",
"line_width": "110%",
"inner_wall_line_width": "110%",
"outer_wall_line_width": "100%",
"top_surface_line_width": "93.75%",
"sparse_infill_line_width": "110%",
"initial_layer_line_width": "120%",
"internal_solid_infill_line_width": "120%",
"support_line_width": "96%",
"wall_loops": "3",
"print_settings_id": "",
"raft_layers": "0",
"seam_position": "aligned",
"skirt_distance": "2",
"skirt_height": "3",
"min_skirt_length": "4",
"skirt_loops": "0",
"minimum_sparse_infill_area": "15",
"spiral_mode": "0",
"standby_temperature_delta": "-5",
"enable_support": "0",
"resolution": "0.012",
"support_type": "normal(auto)",
"support_on_build_plate_only": "0",
"support_top_z_distance": "0.2",
"support_bottom_z_distance": "0.2",
"support_filament": "0",
"support_interface_loop_pattern": "0",
"support_interface_filament": "0",
"support_interface_top_layers": "2",
"support_interface_bottom_layers": "2",
"support_interface_spacing": "0.5",
"support_interface_speed": "80",
"support_base_pattern": "default",
"support_base_pattern_spacing": "2.5",
"support_speed": "150",
"support_threshold_angle": "30",
"support_object_xy_distance": "0.35",
"tree_support_branch_angle": "30",
"tree_support_wall_count": "0",
"tree_support_with_infill": "0",
"detect_thin_wall": "0",
"top_surface_pattern": "monotonicline",
"top_shell_thickness": "0.8",
"enable_prime_tower": "0",
"wipe_tower_no_sparse_layers": "0",
"prime_tower_width": "60",
"xy_hole_compensation": "0",
"xy_contour_compensation": "0",
"layer_height": "0.2",
"bottom_shell_layers": "3",
"top_shell_layers": "4",
"bridge_flow": "1",
"initial_layer_speed": "45",
"initial_layer_infill_speed": "45",
"outer_wall_speed": "45",
"inner_wall_speed": "80",
"sparse_infill_speed": "150",
"internal_solid_infill_speed": "150",
"top_surface_speed": "50",
"gap_infill_speed": "30",
"travel_speed": "200"
}
@@ -0,0 +1,109 @@
{
"type": "process",
"name": "fdm_process_lh_common",
"inherits": "fdm_process_common",
"from": "system",
"instantiation": "false",
"exclude_object": "1",
"accel_to_decel_enable": "0",
"bottom_shell_layers": "4",
"bridge_acceleration": "10000",
"bridge_density": "100%",
"brim_object_gap": "0.05",
"brim_width": "4",
"default_acceleration": "20000",
"dont_filter_internal_bridges": "limited",
"elefant_foot_compensation": "0.05",
"ensure_vertical_shell_thickness": "ensure_critical_only",
"filter_out_gap_fill": "1",
"gap_fill_target": "everywhere",
"gap_infill_speed": "400",
"independent_support_layer_height": "0",
"infill_jerk": "15",
"infill_wall_overlap": "15%",
"top_bottom_infill_wall_overlap": "22%",
"initial_layer_acceleration": "600",
"initial_layer_infill_speed": "140",
"initial_layer_jerk": "15",
"initial_layer_line_width": "0.5",
"initial_layer_speed": "60",
"initial_layer_travel_speed": "300",
"inner_wall_acceleration": "20000",
"inner_wall_jerk": "15",
"inner_wall_line_width": "0.4",
"inner_wall_speed": "400",
"internal_bridge_speed": "70",
"internal_solid_infill_acceleration": "20000",
"internal_solid_infill_line_width": "0.4",
"internal_solid_infill_speed": "400",
"ironing_flow": "19%",
"ironing_inset": "0.3",
"ironing_speed": "50",
"line_width": "0.4",
"min_bead_width": "75%",
"min_feature_size": "20%",
"min_length_factor": "1.5",
"min_width_top_surface": "200%",
"only_one_wall_top": "1",
"outer_wall_acceleration": "10000",
"outer_wall_jerk": "15",
"outer_wall_line_width": "0.4",
"outer_wall_speed": "400",
"overhang_1_4_speed": "70%",
"overhang_4_4_speed": "15",
"prime_tower_brim_width": "2",
"prime_tower_width": "80",
"prime_volume": "75",
"raft_first_layer_density": "70%",
"reduce_infill_retraction": "0",
"resolution": "0.01",
"role_based_wipe_speed": "0",
"seam_gap": "0",
"skirt_distance": "8",
"skirt_height": "1",
"skirt_speed": "100",
"skirt_start_angle": "-25",
"slice_closing_radius": "0.04",
"slowdown_for_curled_perimeters": "0",
"sparse_infill_acceleration": "20000",
"sparse_infill_density": "20%",
"sparse_infill_line_width": "0.4",
"sparse_infill_pattern": "3dhoneycomb",
"sparse_infill_speed": "400",
"support_angle": "135",
"support_base_pattern_spacing": "2",
"support_expansion": "1",
"support_interface_spacing": "0.3",
"support_interface_speed": "400",
"support_line_width": "0.4",
"support_object_xy_distance": "0.2",
"support_on_build_plate_only": "1",
"support_speed": "400",
"support_style": "snug",
"support_top_z_distance": "0.15",
"thick_internal_bridges": "0",
"top_shell_layers": "5",
"top_surface_acceleration": "10000",
"top_surface_jerk": "15",
"top_surface_line_width": "0.4",
"top_surface_speed": "250",
"travel_acceleration": "20000",
"travel_jerk": "15",
"travel_speed": "400",
"wall_generator": "classic",
"wall_loops": "2",
"wall_sequence": "outer wall/inner wall",
"wipe_speed": "150",
"wipe_tower_bridging": "15",
"wipe_tower_extra_flow": "120%",
"wipe_tower_max_purge_speed": "200",
"enable_prime_tower": "1",
"precise_outer_wall": "0",
"print_extruder_id": [
"1"
],
"brim_type": "auto_brim",
"print_extruder_variant": [
"Direct Drive Standard"
]
}
@@ -6,7 +6,9 @@
"from": "system",
"instantiation": "true",
"inherits": "fdm_filament_pet",
"filament_type": "PP",
"filament_type": [
"PP"
],
"nozzle_temperature_initial_layer": [
"185"
],
+1
View File
@@ -71,6 +71,7 @@ body
#LeftBoard
{
display: none; /* shown by cloud_providers_info from backend */
border-right-width: 1px;
border-right-style: solid;
width:262px;
+10 -1
View File
@@ -103,11 +103,20 @@ function HandleStudio( pVal )
GotoMenu(strName);
} else if (strCmd == "cloud_providers_info") {
if (pVal["data"]["providers"] && pVal["data"]["providers"].indexOf("bbl") >= 0) {
var providers = (pVal["data"] && pVal["data"]["providers"]) || [];
if (providers.indexOf("bbl") >= 0) {
$("#BambuCloudSection").show();
} else {
SetBambuUserOffline();
$("#BambuCloudSection").hide();
}
if (providers.indexOf("orca") >= 0) {
$("#LeftBoard").show();
} else {
$("#LeftBoard").hide();
}
} else if (strCmd == "network_plugin_installtip") {
let nShow = pVal["show"] * 1;
+46
View File
@@ -360,6 +360,50 @@ CONFLICT_KEYS = [
['extruder_clearance_radius', 'extruder_clearance_max_radius'],
]
VECTOR_KEYS = {
"filament_type",
}
def check_vector_type_keys(profiles_dir, vendor_name):
"""
Check that properties expected to be vectors (JSON arrays) are not stored as scalars.
For example, `filament_type` must be a list like ["PA-CF"], not a string "PA-CF".
Parameters:
profiles_dir (Path): Base profiles directory
vendor_name (str): Vendor name
Returns:
int: Number of errors found
"""
error_count = 0
vendor_path = profiles_dir / vendor_name
if not vendor_path.exists():
return 0
for file_path in vendor_path.rglob("*.json"):
try:
with open(file_path, "r", encoding="UTF-8") as fp:
data = json.load(fp)
except Exception as e:
print_error(f"Error processing {file_path.relative_to(profiles_dir)}: {e}")
error_count += 1
continue
if not isinstance(data, dict):
continue
for key in VECTOR_KEYS:
if key in data and not isinstance(data[key], list):
print_error(
f"'{key}' must be an array in {file_path.relative_to(profiles_dir)}, "
f"got {type(data[key]).__name__}: {data[key]!r}"
)
error_count += 1
return error_count
def check_conflict_keys(profiles_dir, vendor_name):
"""
Check for keys that could not be specified at the same time,
@@ -448,6 +492,8 @@ def main():
errors_found += new_errors
warnings_found += new_warnings
errors_found += check_vector_type_keys(profiles_dir, vendor_name)
errors_found += check_filament_id(vendor_name, vendor_path / "filament")
checked_vendor_count += 1
+3
View File
@@ -132,6 +132,7 @@ def update_profile_library(vendor="",profile_type="filament"):
library[profile_section] = sorted_profiles
f.seek(0)
json.dump(library, f, indent="\t", ensure_ascii=False)
f.write('\n')
f.truncate()
print(f"Profile library for {vendor} updated successfully!")
@@ -230,6 +231,7 @@ def clean_up_profile(vendor="", profile_type="", force=False):
f.seek(0)
ordered_profile = create_ordered_profile(_profile, ['type', 'name', 'renamed_from', 'inherits', 'from', 'setting_id', 'filament_id', 'instantiation'])
json.dump(ordered_profile, f, indent="\t", ensure_ascii=False)
f.write('\n')
f.truncate()
print(f"Updated profile: {full_path}")
except Exception as e:
@@ -274,6 +276,7 @@ def rename_filament_system(vendor="OrcaFilamentLibrary"):
if modified:
with open(full_path, 'w', encoding='utf-8') as f:
json.dump(data, f, indent="\t", ensure_ascii=False)
f.write('\n')
print(f"Updated {full_path}")
except Exception as e:
+1 -1
View File
@@ -299,7 +299,7 @@ void AppConfig::set_defaults()
set_bool("enable_ssl_for_ftp", true);
if (get("log_severity_level").empty())
set("log_severity_level", "warning");
set("log_severity_level", "info");
if (get("internal_developer_mode").empty())
set_bool("internal_developer_mode", false);
+20 -11
View File
@@ -37,7 +37,7 @@ static bool contour_extrusion_path(LayerRegion *region, const sla::IndexedMesh &
}
Layer *layer = region->layer();
coordf_t mesh_z = layer->print_z + mesh.ground_level();
coordf_t mesh_slice_z = layer->slice_z + mesh.ground_level();
coordf_t min_z = region->region().config().zaa_min_z;
const Points3 &points = path.polyline.points;
@@ -50,7 +50,12 @@ static bool contour_extrusion_path(LayerRegion *region, const sla::IndexedMesh &
Pointf3s contoured_points;
bool was_contoured = false;
for (Points3::const_iterator it = points.begin(); it != points.end()-1; ++it) {
if (points.size() < 2) {
// Safety check. The loop below does not handle paths with less than two points correctly.
return false;
}
for (Points3::const_iterator it = points.begin(); it != points.end()-1; ++it) {
Vec2d p1d(unscale_(it->x()), unscale_(it->y()));
Vec2d p2d(unscale_((it+1)->x()), unscale_((it+1)->y()));
Linef line(p1d, p2d);
@@ -69,14 +74,10 @@ static bool contour_extrusion_path(LayerRegion *region, const sla::IndexedMesh &
coordf_t x = p.x();
coordf_t y = p.y();
sla::IndexedMesh::hit_result hit_up = mesh.query_ray_hit({x, y, mesh_z}, {0.0, 0.0, 1.0});
sla::IndexedMesh::hit_result hit_down = mesh.query_ray_hit({x, y, mesh_z}, {0.0, 0.0, -1.0});
sla::IndexedMesh::hit_result hit_up = mesh.query_ray_hit({x, y, mesh_slice_z}, {0.0, 0.0, 1.0});
double d = hit_up.distance() - (layer->print_z - layer->slice_z);
double up = hit_up.distance();
double down = hit_down.distance();
double d = up < down ? up : -down;
const Vec3d &normal = (up < down ? hit_up : hit_down).normal();
double max_up = min_z;
double min_down = -(height - min_z);
double half_width = path.width / 2.0;
@@ -85,7 +86,8 @@ static bool contour_extrusion_path(LayerRegion *region, const sla::IndexedMesh &
min_down = -(height + 0.1);
}
if (is_perimeter(path.role())) {
if (is_perimeter(path.role()) && hit_up.is_hit()) {
const Vec3d &normal = hit_up.normal();
double slope_rad = slope_from_normal(normal);
double slope_degrees = slope_rad * 180.0 / M_PI;
@@ -123,7 +125,14 @@ static bool contour_extrusion_path(LayerRegion *region, const sla::IndexedMesh &
Vec3d new_point = {p.x(), p.y(), d};
if (contoured_points.size() >= 2) {
if (contoured_points.size() >= 2 && i != 0) {
// Normally, if the new point is collinear with the last two points, we do not add
// it to the list of contoured points. Instead we update the last point to be the
// new point. This is to avoid creating a large number of very short segments.
//
// However, if the new point corresponds to a point in the original path (i == 0),
// even if it is collinear, we add it anyway. This is to avoid creating a degenerate
// polygon with only two points, which may cause issues in downstream code.
double dist = Linef3::distance_to_infinite_squared(new_point, contoured_points[contoured_points.size() - 2],
contoured_points[contoured_points.size() - 1]);
if (dist < EPSILON * EPSILON) {
+5 -1
View File
@@ -491,7 +491,11 @@ public:
{ Polygons out; this->polygons_covered_by_spacing(out, scaled_epsilon); return out; }
// Minimum volumetric velocity of this extrusion entity. Used by the constant nozzle pressure algorithm.
double min_mm3_per_mm() const override;
Polyline as_polyline() const override { return this->polygon().split_at_first_point(); }
Polyline as_polyline() const override {
if (this->paths.empty() || this->length() <= 0.)
return Polyline();
return this->polygon().split_at_first_point();
}
void collect_polylines(Polylines &dst) const override { Polyline pl = this->as_polyline(); if (! pl.empty()) dst.emplace_back(std::move(pl)); }
void collect_points(Points &dst) const override {
size_t n = std::accumulate(paths.begin(), paths.end(), 0, [](const size_t n, const ExtrusionPath &p){ return n + p.polyline.size(); });
+397 -44
View File
@@ -66,9 +66,240 @@ static std::unique_ptr<noise::module::Module> get_noise_module(const FuzzySkinCo
}
}
// ---------------------------------------------------------------------------
// Ripple noise — deterministic sine-wave displacement along the path arc length.
//
// Unlike the other noise types, the ripple pattern is driven by cumulative arc
// length along the print path rather than world-space (x, y, z) coordinates.
// This gives a uniform wave period regardless of the polygon's geometry.
//
// A consistent visual anchor is established by finding the leftmost Y=0 crossing
// of the polygon (the point where the sine wave always peaks when phase shift is
// zero), ensuring the pattern aligns across layers.
//
// Per-layer-group phase shifting works as follows:
// period_index = floor(layer_id / layers_between_ripple_offset)
// phase_shift = period_index * (ripple_offset / 100) * 2π [radians]
//
// Setting layers_between_ripple_offset = 1 shifts the phase on every layer;
// setting it to N makes N consecutive layers share the same pattern.
// ---------------------------------------------------------------------------
// Compute the per-layer-group phase shift in radians.
static double ripple_phase_shift_rad(const FuzzySkinConfig& cfg)
{
if (cfg.ripple_offset == 0.0 || cfg.layers_between_ripple_offset <= 0)
return 0.0;
const int effective_layer = std::max(cfg.layer_id, 0);
const int period_index = effective_layer / std::max(cfg.layers_between_ripple_offset, 1);
const double raw_shift = period_index * (cfg.ripple_offset/100) * (2.0 * M_PI);
return fmod(raw_shift, 2.0 * M_PI);
}
// Find the arc-length (in mm) of the visual anchor point along the polygon perimeter.
// The anchor is the leftmost Y=0 crossing, falling back to the vertex with the
// smallest |y| if no crossing exists. The anchor is where sin(phase) = 1 (a peak)
// when the phase shift is zero, giving a stable reference across layers.
static double ripple_anchor_arc_mm(const Points& poly)
{
const size_t np = poly.size();
// Find anchor world position: leftmost Y=0 crossing.
Vec2d anchor_world(std::numeric_limits<double>::max(), std::numeric_limits<double>::max());
bool found_crossing = false;
for (size_t i = 0; i < np; ++i) {
const double ya = unscale_(poly[i].y());
const double yb = unscale_(poly[(i + 1) % np].y());
if ((ya <= 0.0 && yb >= 0.0) || (ya >= 0.0 && yb <= 0.0)) {
const double t = (std::abs(yb - ya) < 1e-9) ? 0.0 : ya / (ya - yb);
const double x_cross = unscale_(poly[i].x()) +
std::max(0.0, std::min(1.0, t)) * (unscale_(poly[(i + 1) % np].x()) - unscale_(poly[i].x()));
if (!found_crossing || x_cross < anchor_world.x()) {
anchor_world = Vec2d(x_cross, 0.0);
found_crossing = true;
}
}
}
if (!found_crossing) {
double best_abs_y = std::numeric_limits<double>::max();
for (const Point& p : poly) {
const double ay = std::abs(unscale_(p.y()));
if (ay < best_abs_y) {
best_abs_y = ay;
anchor_world = Vec2d(unscale_(p.x()), unscale_(p.y()));
}
}
}
// Find the arc-length of the closest point on the polyline to anchor_world.
double anchor_arc_mm = 0.0;
double best_dist_sq = std::numeric_limits<double>::max();
double accum_mm = 0.0;
for (size_t i = 0; i < np; ++i) {
const Vec2d pa_mm(unscale_(poly[i].x()), unscale_(poly[i].y()));
const Vec2d pb_mm(unscale_(poly[(i + 1) % np].x()), unscale_(poly[(i + 1) % np].y()));
const Vec2d seg = pb_mm - pa_mm;
const double seg_len = seg.norm();
if (seg_len > 1e-9) {
const double t = std::max(0.0, std::min(1.0, (anchor_world - pa_mm).dot(seg) / (seg_len * seg_len)));
const double dist_sq = (pa_mm + seg * t - anchor_world).squaredNorm();
if (dist_sq < best_dist_sq) {
best_dist_sq = dist_sq;
anchor_arc_mm = accum_mm + t * seg_len;
}
}
accum_mm += seg_len;
}
return anchor_arc_mm;
}
// Apply a sine-wave ripple displacement to a closed polygon.
// Points are resampled at cfg.point_distance intervals along the perimeter.
static void fuzzy_polyline_ripple(Points& poly, const FuzzySkinConfig& cfg)
{
const double amplitude = unscale_(cfg.thickness);
const double N = static_cast<double>(cfg.ripples_per_layer);
const double fill_step_mm = unscale_(cfg.point_distance);
if (N <= 0.0 || fill_step_mm < 1e-6)
return;
// Compute total perimeter length in mm.
const size_t np = poly.size();
double perimeter_mm = 0.0;
for (size_t i = 0; i < np; ++i)
perimeter_mm += unscale_((poly[(i + 1) % np] - poly[i]).cast<double>().norm());
if (perimeter_mm < 1e-6)
return;
const double anchor_arc_mm = ripple_anchor_arc_mm(poly);
const double phase_shift_rad = ripple_phase_shift_rad(cfg);
// Phase function: φ(s) = N·2π·(s - anchor_arc) / perimeter + π/2 + phase_shift
// Adding π/2 ensures sin(φ) = 1 at the anchor when phase_shift = 0 (a peak).
const double phase_at_anchor = M_PI * 2.0 + phase_shift_rad;
auto arc_phase = [&](double arc_mm) -> double { return N * (2.0 * M_PI) * (arc_mm - anchor_arc_mm) / perimeter_mm + phase_at_anchor; };
Points out;
out.reserve(static_cast<size_t>(perimeter_mm / fill_step_mm) + np * 2);
double accum_mm = 0.0;
for (size_t i = 0; i < np; ++i) {
const Point& p0 = poly[i];
const Point& p1 = poly[(i + 1) % np];
const Vec2d seg = (p1 - p0).cast<double>();
const double seg_len = seg.norm();
if (seg_len < EPSILON)
continue;
const double seg_len_mm = unscale_(seg_len);
const Vec2d seg_unit = seg / seg_len;
const Vec2d seg_perp = perp(seg_unit);
const double seg_end_mm = accum_mm + seg_len_mm;
const double first_s = std::ceil(accum_mm / fill_step_mm) * fill_step_mm;
for (double s = first_s; s < seg_end_mm; s += fill_step_mm) {
const double t = (s - accum_mm) / seg_len_mm;
const double disp = std::sin(arc_phase(s)) * amplitude;
const Point pt = p0 + (seg * t).cast<coord_t>();
out.emplace_back(pt + (seg_perp * scale_(disp)).cast<coord_t>());
}
accum_mm = seg_end_mm;
}
while (out.size() < 3)
out.emplace_back(poly[poly.size() - 2]);
if (out.size() >= 3)
poly = std::move(out);
}
// Apply a sine-wave ripple displacement to an Arachne extrusion line.
// Mirrors fuzzy_polyline_ripple but operates on ExtrusionJunction vectors so
// that per-point line width (j.w) is preserved correctly.
static void fuzzy_extrusion_line_ripple(Arachne::ExtrusionJunctions& ext_lines, const FuzzySkinConfig& cfg)
{
const double amplitude = unscale_(cfg.thickness);
const double N = static_cast<double>(cfg.ripples_per_layer);
const double fill_step_mm = unscale_(cfg.point_distance);
if (N <= 0.0 || fill_step_mm < 1e-6)
return;
// Build a Points vector for perimeter/anchor calculations.
Points poly;
poly.reserve(ext_lines.size());
for (const auto& j : ext_lines)
poly.push_back(j.p);
// Compute total length in mm.
const size_t np = poly.size();
double perimeter_mm = 0.0;
for (size_t i = 0; i + 1 < np; ++i)
perimeter_mm += unscale_((poly[i + 1] - poly[i]).cast<double>().norm());
if (perimeter_mm < 1e-6)
return;
const double anchor_arc_mm = ripple_anchor_arc_mm(poly);
const double phase_shift_rad = ripple_phase_shift_rad(cfg);
const double phase_at_anchor = M_PI * 2.0 + phase_shift_rad;
auto arc_phase = [&](double arc_mm) -> double { return N * (2.0 * M_PI) * (arc_mm - anchor_arc_mm) / perimeter_mm + phase_at_anchor; };
Arachne::ExtrusionJunctions out;
out.reserve(static_cast<size_t>(perimeter_mm / fill_step_mm) + np * 2);
double accum_mm = 0.0;
for (size_t i = 0; i + 1 < np; ++i) {
const Arachne::ExtrusionJunction& j0 = ext_lines[i];
const Arachne::ExtrusionJunction& j1 = ext_lines[i + 1];
const Vec2d seg = (j1.p - j0.p).cast<double>();
const double seg_len = seg.norm();
if (seg_len < EPSILON)
continue;
const double seg_len_mm = unscale_(seg_len);
const Vec2d seg_unit = seg / seg_len;
const Vec2d seg_perp = perp(seg_unit);
const double seg_end_mm = accum_mm + seg_len_mm;
const double first_s = std::ceil(accum_mm / fill_step_mm) * fill_step_mm;
for (double s = first_s; s < seg_end_mm; s += fill_step_mm) {
const double t = (s - accum_mm) / seg_len_mm;
const double disp = std::sin(arc_phase(s)) * amplitude;
const Point pt = j0.p + (seg * t).cast<coord_t>();
out.emplace_back(pt + (seg_perp * scale_(disp)).cast<coord_t>(), j1.w, j1.perimeter_index);
}
accum_mm = seg_end_mm;
}
while (out.size() < 3) {
size_t point_idx = ext_lines.size() - 2;
out.emplace_back(ext_lines[point_idx].p, ext_lines[point_idx].w, ext_lines[point_idx].perimeter_index);
if (point_idx == 0)
break;
--point_idx;
}
if (out.size() >= 3)
ext_lines = std::move(out);
}
// Thanks Cura developers for this function.
void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkinConfig& cfg)
{
if (cfg.noise_type == NoiseType::Ripple) {
if (poly.size() < 3)
return;
fuzzy_polyline_ripple(poly, cfg);
return;
}
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
@@ -113,6 +344,14 @@ void fuzzy_polyline(Points& poly, bool closed, coordf_t slice_z, const FuzzySkin
// Thanks Cura developers for this function.
void fuzzy_extrusion_line(Arachne::ExtrusionJunctions& ext_lines, coordf_t slice_z, const FuzzySkinConfig& cfg, bool closed)
{
if (cfg.noise_type == NoiseType::Ripple) {
if (ext_lines.size() < 3)
return;
fuzzy_extrusion_line_ripple(ext_lines, cfg);
return;
}
std::unique_ptr<noise::module::Module> noise = get_noise_module(cfg);
const double min_dist_between_points = cfg.point_distance * 3. / 4.; // hardcoded: the point distance may vary between 3/4 and 5/4 the supplied value
@@ -179,7 +418,13 @@ void group_region_by_fuzzify(PerimeterGenerator& g)
g.has_fuzzy_skin = false;
g.has_fuzzy_hole = false;
std::unordered_map<FuzzySkinConfig, SurfacesPtr> regions;
struct ConfigSurfaces {
FuzzySkinConfig config;
SurfacesPtr surfaces;
};
std::vector<ConfigSurfaces> regions;
regions.reserve(g.compatible_regions->size());
for (auto region : *g.compatible_regions) {
const auto& region_config = region->region().config();
const FuzzySkinConfig cfg{region_config.fuzzy_skin,
@@ -190,27 +435,41 @@ void group_region_by_fuzzify(PerimeterGenerator& g)
region_config.fuzzy_skin_scale,
region_config.fuzzy_skin_octaves,
region_config.fuzzy_skin_persistence,
region_config.fuzzy_skin_mode};
auto& surfaces = regions[cfg];
region_config.fuzzy_skin_mode,
region_config.fuzzy_skin_ripples_per_layer,
region_config.fuzzy_skin_ripple_offset,
region_config.fuzzy_skin_layers_between_ripple_offset,
g.layer_id};
auto it = std::find_if(regions.begin(), regions.end(), [&cfg](const ConfigSurfaces& item) {
return item.config == cfg;
});
if (it == regions.end()) {
regions.push_back({cfg, {}});
it = regions.end() - 1;
}
auto& surfaces = it->surfaces;
for (const auto& surface : region->slices.surfaces) {
surfaces.push_back(&surface);
}
if (cfg.type != FuzzySkinType::None && cfg.type != FuzzySkinType::Disabled_fuzzy) {
if (should_fuzzify(cfg, g.layer_id, 0, true)) {
g.has_fuzzy_skin = true;
if (cfg.type != FuzzySkinType::External) {
g.has_fuzzy_hole = true;
}
}
if (should_fuzzify(cfg, g.layer_id, 0, false)) {
g.has_fuzzy_hole = true;
}
}
if (regions.size() == 1) { // optimization
g.regions_by_fuzzify[regions.begin()->first] = {};
g.regions_by_fuzzify.push_back({regions.front().config, {}});
return;
}
for (auto& it : regions) {
g.regions_by_fuzzify[it.first] = offset_ex(it.second, ClipperSafetyOffset);
g.regions_by_fuzzify.reserve(regions.size());
for (const auto& region : regions) {
g.regions_by_fuzzify.push_back({region.config, offset_ex(region.surfaces, ClipperSafetyOffset)});
}
}
@@ -226,12 +485,79 @@ bool should_fuzzify(const FuzzySkinConfig& config, const int layer_id, const siz
return false;
}
const bool fuzzify_contours = loop_idx == 0 || fuzziy_type == FuzzySkinType::AllWalls;
const bool fuzzify_holes = fuzzify_contours && (fuzziy_type == FuzzySkinType::All || fuzziy_type == FuzzySkinType::AllWalls);
const bool fuzzify_contours = (loop_idx == 0 && fuzziy_type != FuzzySkinType::Hole) || fuzziy_type == FuzzySkinType::AllWalls;
const bool fuzzify_holes = (fuzziy_type == FuzzySkinType::Hole || fuzziy_type == FuzzySkinType::All || fuzziy_type == FuzzySkinType::AllWalls)
&& (loop_idx == 0 || fuzziy_type == FuzzySkinType::AllWalls);
return is_contour ? fuzzify_contours : fuzzify_holes;
}
struct MergedFuzzyRegion {
const FuzzySkinConfig *config;
ExPolygons expolygons;
};
// Compare whether two configs produce the same fuzzy effect (ignoring type/first_layer
// which only control which loops get fuzzified, not the noise itself).
static bool same_fuzzy_effect(const FuzzySkinConfig& a, const FuzzySkinConfig& b)
{
return a.thickness == b.thickness
&& a.point_distance == b.point_distance
&& a.noise_type == b.noise_type
&& a.noise_scale == b.noise_scale
&& a.noise_octaves == b.noise_octaves
&& a.noise_persistence == b.noise_persistence
&& a.mode == b.mode
&& a.ripples_per_layer == b.ripples_per_layer
&& a.ripple_offset == b.ripple_offset
&& a.layers_between_ripple_offset == b.layers_between_ripple_offset;
}
static std::vector<MergedFuzzyRegion> collect_merged_fuzzy_regions(const std::vector<std::pair<FuzzySkinConfig, ExPolygons>>& regions,
const int layer_id,
const size_t loop_idx,
const bool is_contour)
{
// Merge regions that produce identical fuzzy effects (differ only in type).
// When the style (e.g. External) and a painted region (All) both fuzzify this loop
// with the same noise parameters, merging their ExPolygons avoids splitting the
// perimeter at the painted boundary — eliminating discontinuity artifacts.
std::vector<MergedFuzzyRegion> merged_regions;
merged_regions.reserve(regions.size());
for (const auto& region : regions) {
if (!should_fuzzify(region.first, layer_id, loop_idx, is_contour)) {
continue;
}
bool merged = false;
for (auto& merged_region : merged_regions) {
if (same_fuzzy_effect(*merged_region.config, region.first)) {
if (merged_region.expolygons.empty()) {
// Already full coverage, nothing to add.
} else if (region.second.empty()) {
merged_region.expolygons.clear();
} else {
append(merged_region.expolygons, region.second);
}
merged = true;
break;
}
}
if (!merged) {
merged_regions.push_back({&region.first, region.second});
}
}
for (auto& merged_region : merged_regions) {
if (!merged_region.expolygons.empty()) {
merged_region.expolygons = union_ex(merged_region.expolygons);
}
}
return merged_regions;
}
Polygon apply_fuzzy_skin(const Polygon& polygon, const PerimeterGenerator& perimeter_generator, const size_t loop_idx, const bool is_contour)
{
Polygon fuzzified;
@@ -250,22 +576,30 @@ Polygon apply_fuzzy_skin(const Polygon& polygon, const PerimeterGenerator& perim
return fuzzified;
}
// Find all affective regions
std::vector<std::pair<const FuzzySkinConfig&, const ExPolygons&>> fuzzified_regions;
fuzzified_regions.reserve(regions.size());
for (const auto& region : regions) {
if (should_fuzzify(region.first, perimeter_generator.layer_id, loop_idx, is_contour)) {
fuzzified_regions.emplace_back(region.first, region.second);
}
}
if (fuzzified_regions.empty()) {
// Merge regions that produce identical fuzzy effects (differ only in type).
// When the style (e.g. External) and a painted region (All) both fuzzify this loop
// with the same noise parameters, merging their ExPolygons avoids splitting the
// perimeter at the painted boundary — eliminating discontinuity artifacts.
auto merged_regions = collect_merged_fuzzy_regions(regions, perimeter_generator.layer_id, loop_idx, is_contour);
if (merged_regions.empty()) {
return polygon;
}
// Fast path: single merged region — apply directly without splitting
if (merged_regions.size() == 1) {
const auto& mr = merged_regions.front();
if (mr.expolygons.empty()) {
fuzzified = polygon;
fuzzy_polyline(fuzzified.points, true, slice_z, *mr.config);
return fuzzified;
}
// Fall through to split_line with a single region below
}
#ifdef DEBUG_FUZZY
{
int i = 0;
for (const auto& r : fuzzified_regions) {
for (const auto& r : merged_regions) {
BoundingBox bbox = get_extents(perimeter_generator.slices->surfaces);
bbox.offset(scale_(1.));
::Slic3r::SVG svg(debug_out_path("fuzzy_traverse_loops_%d_%d_%d_region_%d.svg", perimeter_generator.layer_id,
@@ -274,18 +608,26 @@ Polygon apply_fuzzy_skin(const Polygon& polygon, const PerimeterGenerator& perim
bbox);
svg.draw_outline(perimeter_generator.slices->surfaces);
svg.draw_outline(polygon, "green");
svg.draw(r.second, "red", 0.5);
svg.draw_outline(r.second, "red");
svg.draw(r.expolygons, "red", 0.5);
svg.draw_outline(r.expolygons, "red");
svg.Close();
i++;
}
}
#endif
// Make each region's ExPolygons exclusive so overlapping regions don't double-fuzz
// the same perimeter section. Later regions in the list take priority over earlier ones
// in overlapping areas (matching modifier precedence order).
for (size_t i = 0; i < merged_regions.size(); ++i)
for (size_t j = i + 1; j < merged_regions.size(); ++j)
if (!merged_regions[i].expolygons.empty() && !merged_regions[j].expolygons.empty())
merged_regions[i].expolygons = diff_ex(merged_regions[i].expolygons, merged_regions[j].expolygons);
// Split the loops into lines with different config, and fuzzy them separately
fuzzified = polygon;
for (const auto& r : fuzzified_regions) {
auto splitted = Algorithm::split_line(fuzzified, r.second, true);
for (const auto& r : merged_regions) {
auto splitted = Algorithm::split_line(fuzzified, r.expolygons, true);
if (splitted.empty()) {
// No intersection, skip
continue;
@@ -294,7 +636,7 @@ Polygon apply_fuzzy_skin(const Polygon& polygon, const PerimeterGenerator& perim
// Fuzzy splitted polygon
if (std::all_of(splitted.begin(), splitted.end(), [](const Algorithm::SplitLineJunction& j) { return j.clipped; })) {
// The entire polygon is fuzzified
fuzzy_polyline(fuzzified.points, true, slice_z, r.first);
fuzzy_polyline(fuzzified.points, true, slice_z, *r.config);
} else {
// Start from a non-clipped junction so wrapped clipped segments do
// not need an artificial reconnection across the seam.
@@ -311,7 +653,7 @@ Polygon apply_fuzzy_skin(const Polygon& polygon, const PerimeterGenerator& perim
const auto fuzzy_current_segment = [&segment, &fuzzified, &r, slice_z]() {
fuzzified.points.push_back(segment.front());
const auto back = segment.back();
fuzzy_polyline(segment, false, slice_z, r.first);
fuzzy_polyline(segment, false, slice_z, *r.config);
fuzzified.points.insert(fuzzified.points.end(), segment.begin(), segment.end());
fuzzified.points.push_back(back);
segment.clear();
@@ -350,20 +692,23 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
if (fuzzify)
fuzzy_extrusion_line(extrusion->junctions, slice_z, config);
} else {
// Find all affective regions
std::vector<std::pair<const FuzzySkinConfig&, const ExPolygons&>> fuzzified_regions;
fuzzified_regions.reserve(regions.size());
for (const auto& region : regions) {
if (should_fuzzify(region.first, perimeter_generator.layer_id, extrusion->inset_idx, is_contour)) {
fuzzified_regions.emplace_back(region.first, region.second);
// Merge regions that produce identical fuzzy effects (differ only in type).
// When the style (e.g. External) and a painted region (All) both fuzzify this loop
// with the same noise parameters, merging avoids splitting the perimeter at the
// painted boundary — eliminating discontinuity artifacts.
auto merged_regions = collect_merged_fuzzy_regions(regions, perimeter_generator.layer_id, extrusion->inset_idx, is_contour);
if (!merged_regions.empty()) {
// Fast path: single merged region — apply directly without splitting
if (merged_regions.size() == 1 && merged_regions.front().expolygons.empty()) {
fuzzy_extrusion_line(extrusion->junctions, slice_z, *merged_regions.front().config);
return;
}
}
if (!fuzzified_regions.empty()) {
#ifdef DEBUG_FUZZY
{
int i = 0;
for (const auto& r : fuzzified_regions) {
for (const auto& r : merged_regions) {
BoundingBox bbox = get_extents(perimeter_generator.slices->surfaces);
bbox.offset(scale_(1.));
::Slic3r::SVG svg(debug_out_path("fuzzy_traverse_loops_%d_%d_%d_region_%d.svg", perimeter_generator.layer_id,
@@ -380,17 +725,25 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
svg.draw_outline(perimeter_generator.slices->surfaces);
svg.draw_outline(extrusion_polygon, "green");
svg.draw(r.second, "red", 0.5);
svg.draw_outline(r.second, "red");
svg.draw(r.expolygons, "red", 0.5);
svg.draw_outline(r.expolygons, "red");
svg.Close();
i++;
}
}
#endif
// Make each region's ExPolygons exclusive so overlapping regions don't double-fuzz
// the same perimeter section. Later regions in the list take priority over earlier ones
// in overlapping areas.
for (size_t i = 0; i < merged_regions.size(); ++i)
for (size_t j = i + 1; j < merged_regions.size(); ++j)
if (!merged_regions[i].expolygons.empty() && !merged_regions[j].expolygons.empty())
merged_regions[i].expolygons = diff_ex(merged_regions[i].expolygons, merged_regions[j].expolygons);
// Split the loops into lines with different config, and fuzzy them separately
for (const auto& r : fuzzified_regions) {
const auto splitted = Algorithm::split_line(*extrusion, r.second, false);
for (const auto& r : merged_regions) {
const auto splitted = Algorithm::split_line(*extrusion, r.expolygons, false);
if (splitted.empty()) {
// No intersection, skip
continue;
@@ -399,7 +752,7 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
// Fuzzy splitted extrusion
if (std::all_of(splitted.begin(), splitted.end(), [](const Algorithm::SplitLineJunction& j) { return j.clipped; })) {
// The entire polygon is fuzzified
fuzzy_extrusion_line(extrusion->junctions, slice_z, r.first);
fuzzy_extrusion_line(extrusion->junctions, slice_z, *r.config);
continue;
} else {
const auto current_ext = extrusion->junctions;
@@ -412,7 +765,7 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
const auto front = segment.front();
const auto back = segment.back();
fuzzy_extrusion_line(segment, slice_z, r.first, false);
fuzzy_extrusion_line(segment, slice_z, *r.config, false);
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
if (!extrusion->junctions.empty() && extrusion->junctions.front().p != front.p) {
extrusion->junctions.push_back(front);
+2 -2
View File
@@ -1324,12 +1324,12 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
params.density = f->print_object_config->internal_bridge_density.get_abs_value(1.0);
params.dont_adjust = true;
}
// Orca: Elefant foot compensation for solid layers above bottommost by infill density manipulation.
// Orca: Elephant foot compensation for solid layers above bottommost by infill density manipulation.
float elefant_density = f->print_object_config->elefant_foot_layers_density.get_abs_value(1.0);
if (!is_approx(elefant_density, 1.0f) && surface_fill.surface.is_solid_infill()) {
size_t elefant_layers = f->print_object_config->elefant_foot_compensation_layers.value;
if (f->layer_id > 0 && f->layer_id <= elefant_layers)
params.density = elefant_density * (elefant_layers - (f->layer_id - 1)) / elefant_layers;
params.density = 1.0f - (1.0f - elefant_density) * (elefant_layers - (f->layer_id - 1)) / elefant_layers; // Reverse calculation - The higher layer number means the higher density. Counting starts from the second layer.
}
// make fill
f->fill_surface_extrusion(&surface_fill.surface,
+96 -9
View File
@@ -3050,7 +3050,7 @@ bool FillRectilinear::fill_surface_trapezoidal(
FillParams params,
const std::initializer_list<SweepParams>& sweep_params,
Polylines& polylines_out,
int Pattern_type) // 0=grid, 1=triangular
int Pattern_type) // 0=grid, 1=triangular, 2=stars
{
assert(params.multiline > 1);
@@ -3069,9 +3069,9 @@ bool FillRectilinear::fill_surface_trapezoidal(
period = coord_t((2.0 * d1 / params.density) * std::sqrt(2.0));
base_angle = rotate_vector.first + M_PI_4; // 45
} else {
// Triangular pattern parameters
period = coord_t(( 2.0 * d1 / params.density) * std::sqrt(3.0));
base_angle = rotate_vector.first + M_PI_2; //90
// Triangular-family pattern parameters (triangles / stars)
period = coord_t((2.0 * d1 / params.density) * std::sqrt(3.0));
base_angle = rotate_vector.first + M_PI_2; // 90
}
// Obtain the expolygon and rotate to align with pattern base angle
@@ -3257,6 +3257,85 @@ bool FillRectilinear::fill_surface_trapezoidal(
break;
}
case 2: // Tri-hexagon / FillStars
{
// Pattern parameters
const coord_t hex_height = coord_t(0.5 * std::sqrt(3.0) * period);
const coord_t tri_height = hex_height / 2;
const coord_t d1_half = d1 / 2;
const coord_t chamfer_height = std::sqrt(3.0) * d1_half;
const coord_t d1_half_base = d1_half / std::sqrt(3.0);
const coord_t half_period = period / 2;
const coord_t quarter_period = period / 4;
bb.merge(align_to_grid(bb.center(), Point(period, tri_height)));
const size_t layer_mod = infill_layer_id % 3;
const double angle = layer_mod * 2.0 * M_PI / 3.0;
const coord_t half_w = bb.size().x() / 2;
const coord_t half_h = bb.size().y() / 2;
const coord_t num_periods_x = coord_t(std::ceil(half_w / double(period)));
coord_t num_periods_y = coord_t(std::ceil(half_h / double(hex_height)));
if ((num_periods_y % 2) != 0)
++num_periods_y;
const coord_t x_alignment_shift = half_period;
const coord_t y_alignment_shift = (2 * tri_height) / 3;
const coord_t x_min_aligned = -num_periods_x * period - x_alignment_shift;
const coord_t x_max_aligned = num_periods_x * period - x_alignment_shift;
const coord_t y_min_aligned = -num_periods_y * hex_height - y_alignment_shift;
const coord_t y_max_aligned = num_periods_y * hex_height - y_alignment_shift;
const size_t estimated_rows = (y_max_aligned - y_min_aligned) / hex_height + 2;
const size_t estimated_polylines = (estimated_rows + 1) * 2;
polylines.reserve(estimated_polylines);
Polyline star_row_normal;
star_row_normal.points.reserve(((x_max_aligned - x_min_aligned) / period + 1) * 7);
Polyline star_row_mirrored;
star_row_mirrored.points.reserve(((x_max_aligned - x_min_aligned) / period + 1) * 7);
for (coord_t x = x_min_aligned; x < x_max_aligned; x += period) {
star_row_normal.points.emplace_back(Point(x, hex_height)); // P0
star_row_normal.points.emplace_back(Point(x + quarter_period - d1, hex_height)); // P1
star_row_normal.points.emplace_back(Point(x + quarter_period + d1_half, hex_height - chamfer_height)); // P2
star_row_normal.points.emplace_back(Point(x + half_period - d1_half_base, tri_height + d1_half)); // P3
star_row_normal.points.emplace_back(Point(x + half_period + d1_half_base, tri_height + d1_half)); // P4
star_row_normal.points.emplace_back(Point(x + (period * 3) / 4 - d1_half, hex_height - chamfer_height)); // P5
star_row_normal.points.emplace_back(Point(x + (period * 3) / 4 + d1, hex_height)); // P6
}
star_row_mirrored.points = star_row_normal.points;
for (auto& p : star_row_mirrored.points)
p.y() = hex_height - p.y();
size_t pair_idx = 0;
const coord_t global_x_shift = half_period;
const coord_t global_y_shift = tri_height;
auto append_row_with_shift = [&polylines](const Polyline& row_template, coord_t x_shift, coord_t y_shift) {
Polyline row = row_template;
for (Point& p : row.points) {
p.x() += x_shift;
p.y() += y_shift;
}
if (!row.points.empty())
polylines.emplace_back(std::move(row));
};
for (coord_t y = y_min_aligned; y < y_max_aligned; y += hex_height, ++pair_idx) {
const coord_t x_shift = (pair_idx % 2 == 0) ? 0 : half_period;
append_row_with_shift(star_row_normal, x_shift + global_x_shift, y + global_y_shift);
append_row_with_shift(star_row_mirrored, x_shift + global_x_shift, y + global_y_shift);
}
if (layer_mod)
for (auto& pl : polylines)
pl.rotate(angle, Point(0, 0));
break;
}
default:
// Handle unknown pattern type
break;
@@ -3408,11 +3487,19 @@ Polylines FillTriangles::fill_surface(const Surface *surface, const FillParams &
Polylines FillStars::fill_surface(const Surface *surface, const FillParams &params)
{
Polylines polylines_out;
if (! this->fill_surface_by_multilines(
surface, params,
{ { 0.f, 0.f }, { float(M_PI / 3.), 0.f }, { float(2. * M_PI / 3.), float((3./2.) * this->spacing * params.multiline / params.density) } },
polylines_out))
BOOST_LOG_TRIVIAL(error) << "FillStars::fill_surface() failed to fill a region.";
if (params.multiline > 1) {
if (!this->fill_surface_trapezoidal(
surface, params,
{{0.f, 0.f}, {float(M_PI / 3.), 0.f}, {float(2. * M_PI / 3.), float((3. / 2.) * this->spacing * params.multiline / params.density)}},
polylines_out, 2))
BOOST_LOG_TRIVIAL(error) << "FillStars::fill_surface_trapezoidal() failed.";
} else {
if (! this->fill_surface_by_multilines(
surface, params,
{ { 0.f, 0.f }, { float(M_PI / 3.), 0.f }, { float(2. * M_PI / 3.), float((3./2.) * this->spacing * params.multiline / params.density) } },
polylines_out))
BOOST_LOG_TRIVIAL(error) << "FillStars::fill_surface() failed to fill a region.";
}
return polylines_out;
}
+6 -2
View File
@@ -2456,6 +2456,7 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato
m_max_layer_z = 0.f;
m_last_width = 0.f;
m_is_role_based_fan_on.fill(false);
m_role_based_fan_marker_layer.fill(-1);
m_fan_mover.release();
@@ -6397,7 +6398,6 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
gcode += this->travel_to(first_point, path.role(), "move to first " + description + " point", z);
m_need_change_layer_lift_z = false;
// Orca: ensure Z matches planned layer height
if (!slope_need_z_travel && (_last_pos_undefined || m_need_change_layer_lift_z)) {
const std::string z_sync_comment = _last_pos_undefined ?
@@ -6912,11 +6912,14 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
assert(m_enable_cooling_markers);
if (fan_on) {
if (!m_is_role_based_fan_on[role]) {
// Orca: CoolingBuffer consumes role fan markers per layer, so continuing
// role-based fan regions need a fresh START marker on each new layer.
if (!m_is_role_based_fan_on[role] || m_role_based_fan_marker_layer[role] != m_layer_index) {
gcode += ";";
gcode += marker_prefix;
gcode += "_FAN_START\n";
m_is_role_based_fan_on[role] = true;
m_role_based_fan_marker_layer[role] = m_layer_index;
}
} else {
if (m_is_role_based_fan_on[role]) {
@@ -6924,6 +6927,7 @@ std::string GCode::_extrude(const ExtrusionPath &path, std::string description,
gcode += marker_prefix;
gcode += "_FAN_END\n";
m_is_role_based_fan_on[role] = false;
m_role_based_fan_marker_layer[role] = -1;
}
}
};

Some files were not shown because too many files have changed in this diff Show More