{% extends "base.html" %} {% block title %}SPC · {{ summary.template_name }}{% endblock %} {% block heading %}📊 SPC · {{ summary.template_name }}{% endblock %} {% block breadcrumb %}
SPC / {{ summary.template_name }}
{% endblock %} {% block content %}Sollwert: {{ chart.nominal }} · USL: {{ chart.usl }} · LSL: {{ chart.lsl }} {% if chart.ucl is not none %} · UCL (3σ): {{ "%.4f"|format(chart.ucl) }} · LCL (3σ): {{ "%.4f"|format(chart.lcl) }} {% endif %}
Keine Mess-Werte für diesen Punkt vorhanden.
{% else %} {# Spannweite y-Achse: max(USL+10%, max-Wert) bis min(LSL-10%, min-Wert) #} {% set min_v_data = chart['values'] | map(attribute='value') | min %} {% set max_v_data = chart['values'] | map(attribute='value') | max %} {% set span = chart.usl - chart.lsl %} {% set pad = (span * 0.20) if span > 0 else 1 %} {% set y_min = [chart.lsl - pad, min_v_data]|min %} {% set y_max = [chart.usl + pad, max_v_data]|max %} {% set y_range = y_max - y_min if y_max > y_min else 1 %} {% set chart_w = 1000 %} {% set chart_h = 360 %} {% set padding_left = 70 %} {% set padding_right = 30 %} {% set padding_top = 20 %} {% set padding_bottom = 50 %} {% set inner_w = chart_w - padding_left - padding_right %} {% set inner_h = chart_h - padding_top - padding_bottom %} {% macro y_pos(v) -%} {{- padding_top + ((y_max - v) / y_range * inner_h) -}} {%- endmacro %} {% macro x_pos(i, total) -%} {{- padding_left + ((i / [total-1, 1]|max) * inner_w) -}} {%- endmacro %}🔴 = außerhalb Spec · 🔵 = innerhalb Spec · Rot gestrichelt = USL/LSL (Toleranz-Grenzen) · Orange gestrichelt = UCL/LCL (statistische 3σ-Grenzen) · Grün durchgezogen = Mittelwert · Blau gestrichelt = Sollwert
{% endif %}{{ chart['values']|length }} Stichproben
| # | Zeitstempel | Serien-Nr | Wert | In Spec? |
|---|---|---|---|---|
| {{ chart['values']|length - loop.index0 }} | {{ v.ts[:16] }} | {{ v.serial_no or '—' }} | {{ v.value }} {{ chart.unit }} | {% if v.in_spec %} ✓ {% else %} ✗ außer Spec {% endif %} |