← Wissen

Schichtdicken-Skalierung — Required-Dose × Layer-Dicke, Lambert-Beer

Quelle: uv-simulation-app/docs/uv-knowledge/physics/schichtdicken-skalierung.md

Schichtdicken-Skalierung der Required-Dose (UV-Curing)

Erfasst: 2026-04-28 (Phase 5.2, Engine-Erweiterung) Bezug: app/src/lib/engine/curing.ts (scaledRequiredDose), app/src/lib/components/wizard/SubstrateThicknessPicker.svelte, Migration 074 in db/migrations.ts, verwandt: lambert-cosine-law.md (geometrische Komponente)

Worum geht's

UV-Curing-Datenblätter geben die "Required-Dose" eines Klebstoffs/Coatings nicht als universelle Konstante an, sondern gegen eine spezifische Referenz-Schichtdicke. Henkel, Dymax, DELO, Loctite usw. spec'en typisch gegen 100 µm oder 200 µm Layer-Dicke. Wer dicker oder dünner aufträgt, kann die Dose nicht 1:1 übernehmen.

Beispiel Loctite AA 3494: 1000 mJ/cm² @ 100 µm Layer. Bei 200 µm Layer bleibt die Frage: braucht man wirklich nur 1000 mJ/cm² oder mehr?

Physik dahinter (Kurz-Version)

UV durchquert die noch unausgehärtete Coat-Schicht und wird dabei absorbiert — vom Photoinitiator (gewollt: das ist die Reaktion) UND vom Bindemittel/Pigmenten (parasitär). Beer-Lambert sagt:

I(z) = I₀ × exp(-α × z)

Wobei α der substrat-spezifische Absorptions-Koeffizient ist und z die Tiefe in der Schicht. Die Bottom-Fläche eines 200-µm-Layers sieht weniger UV als die Bottom-Fläche eines 100-µm-Layers desselben Coats — deshalb braucht man an der Oberfläche mehr Dose, damit unten genug ankommt für volle Vernetzung.

Lineare Skalierung als Näherung (Phase 5.2)

Strenge Lambert-Beer-Modellierung braucht α-Werte pro Substrat × Wellenlänge. Die haben wir aktuell nicht systematisch erhoben. Bis dahin nutzt die Engine eine konservative lineare Näherung:

effectiveDose = referenceDose × (selectedThickness / referenceThickness)

Beispiel:

  • Loctite AA spec 1000 mJ/cm² @ 100 µm
  • User trägt 200 µm auf → effectiveDose = 1000 × (200/100) = 2000 mJ/cm²
  • User trägt 50 µm auf → effectiveDose = 1000 × (50/100) = 500 mJ/cm²

Warum lineare Näherung "konservativ" ist

Im mittleren Bereich der Hersteller-Range (typisch 50–200 µm) liefert lineare Skalierung Werte, die in der gleichen Größenordnung wie Lambert-Beer liegen. Bei sehr dicken Schichten (> Hersteller-Max) unterschätzt Linear die echte Required-Dose, weil die exponentielle Absorption schneller zunimmt — der UI-Picker zeigt dann "ausserhalb empfohlener Bereich" in amber, damit der User das Datenblatt heranzieht.

Im sehr dünnen Bereich (< Hersteller-Min) überschätzt Linear, weil die Oberflächen-Sauerstoff-Inhibition (Sauerstoff fängt freie Radikale) bei sehr dünnen Layers ein eigenes Problem ist, das proportional zu sinkender Dose nicht 1:1 mitgeht. Auch hier: Out-of-Range-Warning.

Wann ist Linear "falsch"

  • Bei stark pigmentierten/gefüllten Coatings (hohe parasitäre Absorption): Linear liefert zu niedrige Dose, echte Werte aus dem Datenblatt nehmen.
  • Bei Tiefen-Aushärtung kritischer Anwendungen (Optik-Klebungen, Medizin- Klassen): nicht linear extrapolieren, immer Datenblatt + Hersteller- Empfehlung.
  • Bei Substraten ohne Reference-Thickness im DB (alle 33 Luvex-Standard- Seeds aktuell): keine Skalierung, Engine nimmt die Spec-Dose 1:1.

Hersteller-Praxis (was steht im Datenblatt)

Typische Felder die wir aus Datenblättern systematisch erheben:

Feld Beispiel Bedeutung
referenceThicknessUm 100 Schichtdicke gegen die Required-Dose spec'd ist
thicknessRangeUmMin 50 Untere Grenze der validen Anwendung
thicknessRangeUmMax 250 Obere Grenze der validen Anwendung
requiredDose 1000 mJ/cm² Erforderliche Dosis @ referenceThickness

Reale Werte aus offiziellen TDS-PDFs (live in der DB seit Migration 075, 2026-04-28). PDFs liegen in docs/uv-knowledge/datasheets/{hersteller}/:

  • Henkel/Loctite AA 3494 (Adhesive, TDS Jan-2015): 3000 mJ/cm² @ 200 µm Reference, Range 50–500 µm, 320–410 nm. Glas-Bonding/Potting/Sealing.
  • Henkel/Loctite AA 3525 (Adhesive, TDS May-2024): 1500 mJ/cm² @ 100 µm Reference, Range 50–500 µm, 365–410 nm. Modernes LED-cure-Profil (365 + 405 nm dual-LED getestet).
  • Dymax Light-Weld 3221-SC (Adhesive, TDS 2012): 3000 mJ/cm² @ 100 µm Reference, Range 100–810 µm, 320–450 nm. TDS hat explizite Schichtdicken-Tabelle: 100 µm/15 s/200 mW = 3000, 810 µm/35 s/200 mW = 7000 mJ/cm². Empirisch sub-linear (×2.33 statt ×8.1) — bestaetigt dass unsere lineare Naeherung konservativ ist.
  • Dymax Light Weld 4-20508 (Coating, TDS 2018): 2250 mJ/cm² @ 5 mm Reference (Dome Coating!), Range 1–10 mm, 360–400 nm. High-dome novelty-coating fuer Nameplates/Keychains.
  • Dymax Multi-Cure 6-621 (Adhesive, TDS 2019): 1000 mJ/cm² @ 100 µm Reference, Range 50–1000 µm, 320–450 nm. Metall-Glas-Bonding, Coil-Winding, Potting (Multi-Cure mit Heat + Activator-Backup).
  • DELO PHOTOBOND 4442 (Sealant, TDS 08.05.2023): 3600 mJ/cm² @ 100 µm Reference, Range 50–1000 µm, 320–410 nm. Mini-Lautsprecher-Voice-Coil, modifiziertes Acrylat 1C.

Empirische Beobachtung (Dymax 3221-SC TDS-Tabelle): die echte Dose- Skalierung mit Schichtdicke ist sub-linear — bei 8x Layer-Dicke nur 2.3x Dose-Bedarf, nicht 8x. Unsere lineare Engine-Skalierung ueberschaetzt damit den Bedarf bei dicken Schichten und ist sicherheits- technisch konservativ. Phase 5.3 (Lambert-Beer) wird das praezisieren.

App-Integration

Setup-Page

Komponente SubstrateThicknessPicker.svelte rendert konditional, wenn das gewählte Substrat eine referenceThicknessUm hat. Slider-Range nutzt thicknessRangeUmMin/Max wenn vorhanden, sonst ±50% um Reference.

Live-Vorschau rechts: Skalierungs-Faktor (×0.50×3.00) farbig (<1 cyan, =1 neutral, >1 amber) + effektive Dose in mJ/cm² oder J/cm². Out-of-Range-Hinweis erscheint amber sobald die Slider-Position außerhalb min/max liegt.

Override wird als state.target.thicknessUm persistiert (Draft-LocalStorage). Wenn das Substrat keine Reference hat, ist der Picker unsichtbar — der Engine-Default (scaleFactor = 1) bleibt aktiv.

Results-Page

Beide Curing-Physics-Modelle (stationary-surface + linear-moving-surface) ziehen state.target?.thicknessUm durch und rufen scaledRequiredDose() auf — die "Time-to-Full-Cure" und der "Belt-Speed-Vorschlag" reflektieren also automatisch die User-Layer-Wahl.

Unter dem Time-to-Cure-Wert zeigt die UI eine Mono-Zeile: Layer 200 µm · Spec 100 µm · ×2.00 → 2000 mJ/cm² (Spec 1000) mit Out-of-Range-Badge wenn der gewählte Layer außerhalb der Hersteller-Range liegt. Der User sieht so explizit, was die Engine angenommen hat.

PDF-Print

Im PDF-Detail des Substrats steht der gleiche Layer-Hinweis nach der Wellenlängen-Range: Dosis 1000 mJ/cm² · 350–400 nm · Layer 200 µm (Spec 100 µm, ×2.00).

So bleibt beim Ausdruck nachvollziehbar, gegen welche Schichtdicke der Berechnungs-Wert gerechnet wurde.

Settings-Page (Substrate-Library)

Das Substrate-Anlage-/Edit-Dialog hat eine eigene "Schichtdicke (optional)"- Sektion mit drei Inputs (Min/Max/Ref µm). emptyToNull() normalisiert leere Eingaben, thicknessValid() validiert dass min ≤ max und min ≤ ref ≤ max gilt — Validation-Fehler erscheinen rot inline. Die DB hat dafür dieselben CHECK-Constraints (Migration 074) als Defense-in-Depth.

Nächste Phasen (Roadmap)

  • Phase 5.2 (LIVE 2026-04-28): Lineare Näherung, UI-Picker, PDF, Tests
  • Phase 5.3 (geplant): Lambert-Beer mit Substrat × Wellenlängen-α-Tabelle. Voraussetzung: systematische Erhebung der Absorptions-Koeffizienten der Top-20-Substrate. Domain-Quelle: Photoinitiator-Hersteller-Datenblätter (BASF, IGM Resins) + UV-Coating-Fachliteratur.
  • Phase 5.4 (geplant): Tiefen-Profil-Visualisierung (Heatmap "Dose at depth z" für ein gewähltes Substrat × Lampen-Spektrum). Erweitert lambert-cosine-law.md-Architektur (Surface2D) um eine z-Tiefen-Achse.

Querverweise

  • App-Texte mit Layer-Skalierung: alle Curing-Apps (spot-curing, conveyor-curing) zeigen die Effekte automatisch sobald Hersteller- Substrate mit Thickness-Daten in der DB sind.
  • Verwandte Knowledge-Artikel:
    • lambert-cosine-law.md — Geometrische Inzidenz (orthogonal zur Schichtdicke)
    • systems/system-typen-taxonomie.md — Surface2D-Architektur erweitert sich später auf Surface3D-z
    • anlagen-typologien/spot-curing-industrien.md — Anwendungs-Klassen pro Layer-Bereich (Mikroelektronik 5–50 µm vs. Glas-Bonding 200–500 µm)