set_material.cfg modified - 18/04/25 - 09:39:44

This commit is contained in:
pi committed 2025-04-18 09:39:47 +01:00
1 parent 8ca3232b8c
commit 8d93086aaa
1 file changed
-105
-105
View File
@@ -471,108 +471,3 @@ gcode:
{% endif %}
[gcode_macro SET_CHAMBER_HEAT]
description: Modular chamber heating logic with active/passive support, includes safety checks and debug output
# === OVERVIEW ===
# This macro heats the chamber to a target temperature using either:
# 1. An active heater (like a dedicated chamber heater), or
# 2. Passive heating (using the bed heater).
# It controls the bed heater, an optional chamber heater, and a circulation fan.
# It will block until the target temperature is reached.
# === SAFETY WARNINGS ===
# - Ensure your chamber temperature sensor is correctly installed and reporting.
# - Watch your printer during the first few uses of this macro.
# - Passive mode may take a long time to reach temperature.
# - Don't overheat your enclosure — check max safe temps for your printer!
# === PARAMETERS ===
# TARGET : (required) Target chamber temperature in °C.
# SENSOR : (optional) Temperature sensor name (default: temperature_sensor chamber_combined_mean).
# HEATER : (optional) Chamber heater name (used only if ACTIVE=True).
# BED_HEATER : (optional) Bed heater name (default: heater_bed).
# FAN : (optional) Circulation fan name (default: nevermore_fan).
# ACTIVE : (optional) If True, uses a dedicated heater; otherwise uses passive heating.
# === USAGE ===
# SET_CHAMBER_HEAT TARGET=60 ACTIVE=True HEATER="heater_generic chamber_heater"
# SET_CHAMBER_HEAT TARGET=60 ACTIVE=False
# === OVERVIEW ===
# Heats the chamber using:
# 🔥 Active: Chamber heater + bed + fan
# ❄️ Passive: Bed heater only
# ✅ Blocks until desired temperature is reached
gcode:
# === 🎛️ Parse Parameters ===
{% set target = params.TARGET|int %}
{% set sensor = params.SENSOR|default('temperature_sensor chamber_combined_mean') %}
{% set heater = params.HEATER|default('') %}
{% set bed_heater = params.BED_HEATER|default('heater_bed') %}
{% set bed_fan = params.FAN|default('nevermore_fan') %}
{% set active = params.ACTIVE|default("false")|lower == 'true' %}
{% set wait_temp = target if active else target - 25 %}
{% set msg = "🧰 [CHAMBER HEAT] Init | Target: " ~ target ~ "°C | Wait until: " ~ wait_temp ~ "°C | Mode: " ~ ("🔥 Active" if active else "❄️ Passive") %}
RESPOND MSG="{msg}"
M141 S{target} # Set virtual chamber temp for slicers
# === 🔥 ACTIVE MODE ===
{% if active %}
{% set msg = "🔥 [CHAMBER HEAT] Enabling active mode: chamber heater + bed + fan at full speed!" %}
RESPOND MSG="{msg}"
{% if heater|length > 0 %}
{% set msg = "🛠️ [CHAMBER HEAT] Chamber heater '" ~ heater ~ "' → " ~ target|string ~ "°C" %}
RESPOND MSG="{msg}"
SET_HEATER_TEMPERATURE HEATER={heater} TARGET={target}
{% endif %}
{% set msg = "🛏️ [CHAMBER HEAT] Bed heater '" ~ bed_heater ~ "' → " ~ target|string ~ "°C (support heat)" %}
RESPOND MSG="{msg}"
SET_HEATER_TEMPERATURE HEATER={bed_heater} TARGET={target}
{% set msg = "🌀 [CHAMBER HEAT] Fan '" ~ bed_fan ~ "' → speed = 100%" %}
RESPOND MSG="{msg}"
SET_FAN_SPEED FAN={bed_fan} SPEED=1.0
# === ❄️ PASSIVE MODE ===
{% else %}
{% if printer[sensor].temperature < wait_temp %}
{% set msg = "❄️ [CHAMBER HEAT] Chamber is cool (" ~ printer[sensor].temperature|round(1) ~ "°C) — warming with bed only!" %}
RESPOND MSG="{msg}"
{% set msg = "🌀 [CHAMBER HEAT] Fan '" ~ bed_fan ~ "' → speed = 50% (gentle circulation)" %}
RESPOND MSG="{msg}"
SET_FAN_SPEED FAN={bed_fan} SPEED=0.5
{% set msg = "🛏️ [CHAMBER HEAT] Bed heater '" ~ bed_heater ~ "' → 120°C (passive heating boost)" %}
RESPOND MSG="{msg}"
SET_HEATER_TEMPERATURE HEATER={bed_heater} TARGET=120
{% set msg = "⏳ [CHAMBER HEAT] Waiting for bed to reach 120°C..." %}
RESPOND MSG="{msg}"
TEMPERATURE_WAIT SENSOR="{bed_heater}" MINIMUM=120
{% else %}
{% set msg = "✅ [CHAMBER HEAT] Chamber already warm (" ~ printer[sensor].temperature|round(1) ~ "°C), skipping passive heat!" %}
RESPOND MSG="{msg}"
{% endif %}
{% set msg = "🌀 [CHAMBER HEAT] Fan '" ~ bed_fan ~ "' → speed = 100%" %}
RESPOND MSG="{msg}"
SET_FAN_SPEED FAN={bed_fan} SPEED=1.0
{% endif %}
# === ⏳ FINAL BLOCKING WAIT ===
{% set msg = "⏳ [CHAMBER HEAT] Waiting for chamber sensor '" ~ sensor ~ "' ≥ " ~ wait_temp ~ "°C..." %}
RESPOND MSG="{msg}"
TEMPERATURE_WAIT SENSOR="{sensor}" MINIMUM={wait_temp}
{% set msg = "🎉 [CHAMBER HEAT] Chamber ready! Final temp: " ~ printer[sensor].temperature|round(1) ~ "°C" %}
RESPOND MSG="{msg}"