15  Wo die Spitzen sitzen

In Kapitel 14 wurde aus dem einen Augenblick ein Schritt: fünf gewichtete Lastfälle, jeder mit seiner Größe und Richtung der drei Kräfte. Bisher blieben sie Kräfte. Dieses Kapitel rechnet aus den Verschiebungen jedes Lastfalls das Spannungsfeld — und trennt, wo im Fersenbein Zug und wo Druck herrscht (Hauptspannungen). Am Ende steht ein Bild, das ein altes Thema der Anatomie berührt: Die berechneten Druck- und Zugrichtungen ähneln qualitativ den Bälkchenfamilien, die die anatomische Literatur im Fersenbein beschreibt — den Trabekeln der Spongiosa. Das ist ein Hinweis auf die Kernthese des Buches (der Knochen legt Material entlang der Lastpfade), keine Kausalaussage und kein empirischer Bildvergleich; die kausale Frage prüft Teil VI.

Lernziele

Nach diesem Kapitel kannst du

  1. in einem Spannungsfeld die Stellen erkennen, an denen die Farbe nichts aussagt — Lager- und Traktionskanten —, und sie von den Stellen trennen, die etwas aussagen,
  2. Hauptspannungen als die zwei Richtungen deuten, in denen reiner Zug oder reiner Druck wirkt, sie als lokale Richtungsstriche darstellen und wissen, dass man aus diesen Strichen erst die Spannungstrajektorien konstruiert,
  3. die Von-Mises-Vergleichsspannung als Übersichtsmaß benutzen und dabei eine belastbare Zonenspannung von einer netzabhängigen Spitze unterscheiden,
  4. erklären, warum die berechneten Lastpfade qualitativ zum beschriebenen Trabekelverlauf passen — und warum dieser Vergleich vorsichtig zu lesen ist.

Das Rechenwerk bindet die beiden Quellen dieses Kapitels ein: die Lasten aus programme/kap14/momente.py und den Physikkern über programme/kap15/spannungsfelder.py. Es konfiguriert nur — gedeutet wird in der Prosa. Eingeklappt, aber jederzeit aufklappbar.

Das Rechenwerk dieses Kapitels — zum Nachlesen aufklappen
# --- Nur Zeichen- und Rechenhilfen. Die EINE Lastquelle ist momente.py
# (der Kräftefahrplan der fünf Momente), der EINE Physikkern ist reglerkern.py
# über spannungsfelder.py; diese Zelle konfiguriert nur und deutet nichts.
import json
import math
import pathlib
import sys

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
from matplotlib.patches import Polygon as MplPolygon

sys.path.insert(0, str(pathlib.Path("programme/gemeinsam").resolve()))
sys.path.insert(0, str(pathlib.Path("programme/kap14").resolve()))
sys.path.insert(0, str(pathlib.Path("programme/kap15").resolve()))
import momente as M
import spannungsfelder as SF

KONTUR = np.array(json.loads(
    pathlib.Path("../geometrie/kalkaneus_kontur.json").read_text())["punkte"]) * 1000.0

def komma(x, stellen=2):
    s = f"{x:.{stellen}f}"
    if "." in s:
        s = s.rstrip("0").rstrip(".")
    return s.replace("-", "−").replace(".", ",")

_NETZ_CACHE = {}

def lade(stufe):
    # Jede Netzstufe wird genau einmal gelöst; alle Zellen teilen sich dieselbe
    # Studie (sie hält ihre Verschiebungen selbst zwischen).
    if stufe not in _NETZ_CACHE:
        _NETZ_CACHE[stufe] = SF.neue_studie(json.loads(
            pathlib.Path(f"netze/netz_{stufe}.json").read_text()))
    return _NETZ_CACHE[stufe]

def grad(x, stellen=1):
    return komma(x, stellen) + "°"

def zwei(x):
    # Feste zwei Nachkommastellen — für Zahlen, die in einer Tafel untereinander
    # stehen und dort gleich lang sein sollen (komma() schneidet Endnullen ab).
    return f"{x:.2f}".replace(".", ",")

def orientierung(ax, x_mass=28):
    # Orientierung am unteren Rand (wie im Canvas), damit der Panel-Titel oben
    # frei bleibt. Der 10-mm-Maßstab liegt UNTER der Orientierungszeile (eigene
    # Höhe), damit beide auch in stark komprimierten Panels nicht überlappen.
    # Der obere Rand endet dicht über der Kontur (ymax = 42,06 mm): Titel und
    # Herkunftszeilen stehen ÜBER der Achse (set_title / transAxes), nicht in
    # den Daten — sonst schneidet die Kontur den Text (Bildprüfung 01.09.2026).
    ax.text(-11, -6.0, "hinten (Ferse)", fontsize=6.5, color="#666")
    ax.text(71, -6.0, "vorn (Zehen)", fontsize=6.5, color="#666", ha="right")
    ax.annotate("oben", xy=(-7, 26), xytext=(-7, 12), fontsize=6.5, color="#444",
                ha="center", arrowprops=dict(arrowstyle="->", color="#444", lw=1.2))
    ax.plot([x_mass, x_mass + 10], [-9.4, -9.4], color="#333", lw=2.0,
            solid_capstyle="butt")
    ax.text(x_mass + 5, -11.1, "10 mm", ha="center", fontsize=6.5, color="#333")
    ax.set_xlim(-13, 73)
    ax.set_ylim(-12.4, 44.5)
    ax.set_aspect("equal")
    ax.axis("off")

def feld_bild(ax, studie, feld_mpa, titel, vmax=10.0, cmap="turbo",
              skalen_titel="Von-Mises", colorbar=True):
    """Ein Elementfeld (MPa) über dem Buchnetz, feste turbo-Skala 0..vmax.

    Gibt das Mappable zurück; mit colorbar=False wird KEINE panel-eigene Colorbar
    gezeichnet (für eine gemeinsame Colorbar einer ganzen Bildreihe)."""
    kn = studie.knoten * 1000.0
    tri = mtri.Triangulation(kn[:, 0], kn[:, 1], studie.dreiecke)
    tp = ax.tripcolor(tri, facecolors=np.asarray(feld_mpa), cmap=cmap,
                      vmin=0.0, vmax=vmax)
    if colorbar:
        cb = plt.colorbar(tp, ax=ax, fraction=0.046, pad=0.03, extend="max")
        cb.set_label(f"{skalen_titel} (MPa, ≥ {komma(vmax, 0)} gesättigt)", fontsize=7)
        cb.ax.tick_params(labelsize=7)
    ax.set_title(titel, fontsize=9, weight="bold", pad=4)
    orientierung(ax)
    return tp

def richtungsstriche_bild(ax, studie, traj, titel, unter=3, legende=True):
    """Lokale Hauptspannungsrichtungen als kurze, auf die Kontur GECLIPPTE Striche
    (entartete/isotrope Elemente ausgelassen). KEINE integrierten Trajektorien."""
    ax.fill(KONTUR[:, 0], KONTUR[:, 1], color="#f2ece0", ec="#8a6a4a", lw=1.0,
            zorder=0)
    x = np.asarray(traj["x_mm"])[::unter]
    y = np.asarray(traj["y_mm"])[::unter]
    w = np.asarray(traj["winkel"])[::unter]
    s1 = np.asarray(traj["sig1_mpa"])[::unter]
    s2 = np.asarray(traj["sig2_mpa"])[::unter]
    L = 1.6
    for k in range(len(x)):
        if not np.isfinite(w[k]):
            continue                       # isotroper Punkt: Richtung unbestimmt
        if s1[k] > 0:                      # Zug entlang σ1
            ax_, ay_, bx_, by_ = SF.clip_strich(
                x[k], y[k], math.cos(w[k]), math.sin(w[k]), L, KONTUR)
            ax.plot([ax_, bx_], [ay_, by_], color="#c0392b", lw=1.0, zorder=2)
        if s2[k] < 0:                      # Druck entlang σ2 (senkrecht)
            w2 = w[k] + math.pi / 2.0
            ax_, ay_, bx_, by_ = SF.clip_strich(
                x[k], y[k], math.cos(w2), math.sin(w2), L, KONTUR)
            ax.plot([ax_, bx_], [ay_, by_], color="#1f4e9c", lw=1.0, zorder=2)
    if legende:
        ax.plot([], [], color="#c0392b", lw=1.4, label="Zug (σ1 > 0)")
        ax.plot([], [], color="#1f4e9c", lw=1.4, label="Druck (σ2 < 0)")
        ax.legend(loc="lower right", bbox_to_anchor=(1.0, 0.16), fontsize=6.5, framealpha=0.9)
    ax.set_title(titel, fontsize=9, weight="bold", pad=4)
    orientierung(ax)

def trabekel_lehrschema(ax, titel):
    """Literaturbasiertes Lehrschema der Kalkaneus-Trabekelgruppen — quellen-
    unabhängig neu gezeichnet nach der anatomischen Taxonomie (Gefen & Seliktar
    2004: dorsal–plantar, anterior–posterior und zwei schräge Gruppen; RadioGraphics
    2022: zwei Druck-, drei Zuggruppen samt Neutraldreieck). KEINE Fotografie,
    keine Messung, keine gerechnete Struktur, nicht an das Rechenergebnis angepasst."""
    ax.fill(KONTUR[:, 0], KONTUR[:, 1], color="#f2ece0", ec="#8a6a4a", lw=1.0)
    t = np.linspace(0.0, 1.0, 60)

    def bogen(p0, p1, p2, farbe, lw=1.6):
        pts = ((1 - t)[:, None] ** 2 * np.array(p0)
               + 2 * (1 - t)[:, None] * t[:, None] * np.array(p1)
               + (t[:, None] ** 2) * np.array(p2))
        ax.plot(pts[:, 0], pts[:, 1], color=farbe, lw=lw, alpha=0.9)

    # ALLE Stützpunkte liegen innerhalb der 48-Punkt-Buchkontur (nachgemessen:
    # jede Kurve zu 100 % innen, kleinster Randabstand 1,17 mm). Die frühere
    # Fassung zeichnete die anteriore Druckgruppe, zwei Zuggruppen und das
    # Neutraldreieck weitgehend NEBEN den Knochen (Bildprüfung 01.09.2026:
    # 12 %, 38 %, 53 % bzw. 1 % innen).
    # Druckgruppen (blau): (1) dorsal–plantar unter der Talus-Facette zum Tuber,
    # (2) anteriore Druckgruppe im vorderen Gelenkfortsatz.
    bogen((20, 33), (11, 16), (7, 5), "#1f4e9c")
    bogen((26, 34), (18, 15), (12, 4.5), "#1f4e9c")
    bogen((62, 30), (61, 24), (59, 19), "#1f4e9c")
    # Zuggruppen (rot): (1) plantar–längs entlang der Unterkante, (2) posterior-
    # aufsteigend zum Sinus tarsi, (3) anterior-plantar schräg aufsteigend.
    bogen((3, 7), (16, 4.5), (33, 15.5), "#c0392b")
    bogen((6, 8), (14, 20), (12, 28), "#c0392b")
    bogen((8, 10), (28, 15), (48, 22), "#c0392b")
    # Neutraldreieck (anterior-inferior, sparsame Bälkchen): grau schraffiert,
    # vollständig innerhalb der Kontur. Die Beschriftung steht auf weißem Grund,
    # damit die querende Zuggruppe sie nicht unlesbar macht.
    tri = np.array([[32, 16.0], [52, 21.0], [40, 28.0]])
    ax.add_patch(MplPolygon(tri, closed=True, facecolor="#dddddd", edgecolor="#999",
                            hatch="xx", alpha=0.6, lw=0.8))
    ax.text(43.1, 22.6, "Neutral-\ndreieck", fontsize=6.5, color="#555", ha="center",
            va="center", bbox=dict(facecolor="white", alpha=0.82, edgecolor="none",
                                   pad=1.0))
    ax.plot([], [], color="#1f4e9c", lw=1.6, label="Druckgruppen (2)")
    ax.plot([], [], color="#c0392b", lw=1.6, label="Zuggruppen (3)")
    ax.legend(loc="lower right", bbox_to_anchor=(1.0, 0.16), fontsize=6.5, framealpha=0.9)
    ax.set_title(titel, fontsize=9, weight="bold", pad=30)
    ax.text(0.0, 1.072, "literaturbasiertes Lehrschema nach der anatomischen Taxonomie",
            transform=ax.transAxes, fontsize=6.5, color="#a33", style="italic",
            va="bottom")
    ax.text(0.0, 1.020, "(Gefen & Seliktar 2004; Übersichtsarbeit in "
            "RadioGraphics 2022) — keine Fotografie, keine Rechnung",
            transform=ax.transAxes, fontsize=6.5, color="#a33", style="italic",
            va="bottom")
    orientierung(ax)

# Zahlen, die die Prosa dieses Kapitels nennt — aus derselben Rechnung wie die
# Regler, damit im Text keine abgeschriebene Zahl steht.
AUFTRITT = lade("mittel").moment(0)          # Fersenauftritt
ABSTOSS = lade("mittel").moment(4)           # Abstoß
STUFEN = ("grob", "mittel", "fein")
MITTELFELD = {s: lade(s).mittelfeld() for s in STUFEN}
ZONE = {s: MITTELFELD[s]["zone_vm_mpa"] for s in STUFEN}
SPITZE = {s: MITTELFELD[s]["spitze_mpa"] for s in STUFEN}
ZONE_SCHWANKUNG = 100 * (max(ZONE.values()) - min(ZONE.values())) / max(ZONE.values())
SPITZE_FAKTOR = SPITZE["fein"] / SPITZE["grob"]

15.1 Von der Verschiebung zur Spannung

Ein Spannungsfeld ist keine neue Rechnung, sondern eine Ableseoperation aus dem, was wir längst haben. Der Löser liefert für jeden Lastfall die Knotenverschiebung \(u\) (Kapitel 5); daraus folgt in jedem Dreieck die Dehnung (Kapitel 6), und aus der Dehnung über das Hookesche Gesetz die Spannung — dieselbe Von-Mises-Spannung, die Kapitel 11 eingeführt hat, jetzt für jeden der fünf Momente des Kräftefahrplans. Gebiet, Material und Lagerung sind unverändert die von Kapitel 12; welcher Knochen dabei rechnet, sagt die Zeile „Buchnetze“ in Tabelle 13.3.

Abbildung 15.1 zeigt das Von-Mises-Feld der mittleren Standphase auf dem mittleren Buchnetz.

Code
studie = lade("mittel")
m2 = studie.moment(2)          # mittlere Standphase
fig, ax = plt.subplots(figsize=(6.8, 4.6))
feld_bild(ax, studie, m2["vonmises"], "Von-Mises — mittlere Standphase")
plt.tight_layout()
plt.show()

print("mittlere Standphase (mittleres Buchnetz):")
print("  flächengewichtete plantare Zonenspannung %s MPa" % komma(m2["zone_vm_mpa"], 3))
print("  plantare Spitze %s MPa · höchster Feldwert %s MPa (an einer Singularität)"
      % (komma(m2["spitze_mpa"], 3), komma(max(m2["vonmises"]), 1)))
Abbildung 15.1: Von-Mises-Vergleichsspannung der mittleren Standphase über dem Fersenbein (mittleres Buchnetz, 768 Knoten). Farbskala turbo, fest 0–10 MPa, Werte darüber gesättigt; Farbbalken mit Einheit rechts. Sagittalschnitt, hinten = Ferse (links), vorn = Zehen (rechts), oben ↑; Maßstab 10 mm. Buchnetz-Rechnung, Zeile „Buchnetze“ in Tabelle 13.3.
mittlere Standphase (mittleres Buchnetz):
  flächengewichtete plantare Zonenspannung 3,6 MPa
  plantare Spitze 4,693 MPa · höchster Feldwert 56,3 MPa (an einer Singularität)

Deutung. Das Bild ist im plantaren Gewebe ruhig — einige MPa —, leuchtet aber an zwei Rändern grell auf: oben an der harten Talus-Lagerkante und vorn an der Kante der Bodenkontaktfläche. Das sind genau die Spannungssingularitäten aus Kapitel 13: eine Lagerkantensingularität am Talus-Rand und eine schwache Traktionskantensingularität dort, wo die verteilte Bodenlast abrupt endet. Beide sind netzabhängig und keine belastbaren Zahlen. Die glatte Fersenkontur hat dagegen keine geometrische Kerbe. Wer ein Spannungsbild liest, muss diese Stellen als Erstes wegdenken.

WarnungDie höchste Farbe ist nicht die wichtigste Stelle

Verbreitete Vermutung: „Wo das Spannungsbild am grellsten leuchtet, ist die kritische Stelle.“

Warum sie naheliegt: Das Auge springt zum hellsten Fleck, und „hohe Spannung gleich Gefahr“ klingt vernünftig.

Was stattdessen gilt: Der grellste Fleck sitzt hier an der Talus-Lagerkante — eine Lagerkantensingularität (Kapitel 13), deren Wert mit jedem feineren Netz weiterwächst, ohne Grenze. Er ist ein Netzartefakt, keine belastbare Spannung. Die tragende Aussage steckt nicht im Maximalwert eines einzelnen Elements, sondern in den Richtungen der Hauptspannungen und in der flächengewichteten Zonenspannung. Beide entwickeln wir gleich — und beide sind auf den drei Buchnetzen stabil.

15.2 Ein Spannungsbild lesen: Moment für Moment

Am ersten Regler liest du dasselbe Feld für jeden der fünf Momente. Die Kräfte kommen unverändert aus dem Kräftefahrplan (Tabelle 2.2, gewichtet in Kapitel 14, über momente.py); der Regler berichtet die plantare Zonenspannung, die plantare Spitze und die Druck-Hauptrichtungsneigung unter der Ferse gegen die Senkrechte — das flächengewichtete Mittel der lokalen Druckrichtung, gebildet nur über plantare Elemente, in denen tatsächlich Druck herrscht (\(\sigma_2 < 0\)).

WichtigVorhersage-Punkt

Bevor du den Regler bewegst: In welchem Moment liegt die Druckrichtung am steilsten unter der Ferse — beim Fersenauftritt oder beim Abstoß? Lege dich fest, dann schalte durch.

Deutung. Das ist die Antwort auf die Vorhersagefrage — und sie ist berechnet, nicht behauptet. Am steilsten (am nächsten zur Senkrechten, rund 3,6°) steht die Druckrichtung beim Fersenauftritt, nicht beim Abstoß (dort rund 18,7°). Der Grund liegt in den drei Kräften: Beim Auftritt trägt fast nur die senkrechte Bodenreaktion, also drückt es senkrecht von unten. Beim Abstoß überwiegen Faszien- und Achillessehnenzug, und die Druckrichtung kippt nach vorn zu den Zehen — genau die Wanderung des Lastwinkels aus Kapitel 14, jetzt im Inneren des Knochens sichtbar. Dieselbe Reihenfolge ergibt sich auf allen drei Buchnetzen (grob/mittel/fein), die Antwort ist also auf diesen Netzen stabil. Die plantare Zonenspannung steigt dabei mit, vom Auftritt (1,6 MPa) bis zum Abstoß (4,4 MPa).

15.3 Zug und Druck trennen: die Hauptspannungen

Ein Von-Mises-Wert fasst den Spannungszustand zu einer einzigen Zahl zusammen — und ist dabei vorzeichenblind: Er verrät nicht, ob an einer Stelle gezogen oder gedrückt wird. Genau diesen blinden Fleck, den Kapitel 11 benannt und auf dieses Kapitel vertagt hat, lösen die Hauptspannungen auf. In jedem Punkt gibt es zwei senkrecht aufeinander stehende Richtungen, in denen der Schub verschwindet und reine Normalspannung bleibt: die größere Hauptspannung \(\sigma_1\) und die kleinere \(\sigma_2\). Es gilt die Vorzeichenregel aus Kapitel 6, Zug positiv: ist \(\sigma_1 > 0\), wirkt dort Zug in ihrer Richtung, ist \(\sigma_2 < 0\), wirkt Druck senkrecht dazu. Rechnerisch sind \(\sigma_1\) und \(\sigma_2\) die Eigenwerte des Spannungstensors:

\[ \sigma_{1,2} = \frac{\sigma_{xx} + \sigma_{yy}}{2} \pm R, \quad R = \sqrt{\left(\frac{\sigma_{xx} - \sigma_{yy}}{2}\right)^2 + \tau_{xy}^2}, \quad \tan 2\vartheta = \frac{2\,\tau_{xy}}{\sigma_{xx} - \sigma_{yy}}, \]

wobei \(\vartheta\) die Richtung von \(\sigma_1\) angibt. Verschwindet der Mohr-Radius \(R\) (isotroper Punkt, \(\sigma_1 = \sigma_2\)), ist die Richtung unbestimmt — dort gibt es keine Vorzugsrichtung, und der Winkel wird ausgelassen. Die Rechnung steht als geteilte Schnittstelle im Kern (hauptspannungen_aus_tensor). Der folgende Lehrcode führt sie an zwei Zahlenbeispielen von Hand vor und zeichnet den ersten als Mohr-Kreis (Abbildung 15.2): Mittelpunkt und Radius aus den Formeln oben, die zwei Hauptspannungen \(\sigma_1\) und \(\sigma_2\) als Schnittpunkte des Kreises mit der \(\sigma\)-Achse und der Winkel \(2\vartheta\) als Bogen am Mittelpunkt. So wird der Rechenschritt, der die Eigenwerte liefert, zur ablesbaren Geometrie.

Die zwei Hauptspannungen von Hand — und der Mohr-Kreis dazu
# Die zwei Hauptspannungen eines Spannungszustands, Schritt für Schritt gerechnet
# (Spannungen in MPa, Zug positiv). Dieselbe Formel wie im Kern, hier von Hand.
import math
from mohrbild import zeichne_mohrkreis

def hauptspannungen(sxx, syy, txy):
    mittel = 0.5 * (sxx + syy)                        # Mittelpunkt des Mohr-Kreises
    radius = math.sqrt((0.5 * (sxx - syy)) ** 2 + txy * txy)   # sein Radius R
    if radius <= 1e-9 * (abs(sxx) + abs(syy) + 1.0):
        return mittel, mittel, None                  # isotrop: Richtung unbestimmt
    sigma_1 = mittel + radius                         # größere Hauptspannung (Zug)
    sigma_2 = mittel - radius                         # kleinere Hauptspannung (Druck)
    winkel_grad = math.degrees(0.5 * math.atan2(2.0 * txy, sxx - syy))
    return sigma_1, sigma_2, winkel_grad

# Beispiel 1: gemischter Zustand (Zug in x, Druck in y, etwas Schub) — als Kreis.
s1, s2, richtung = hauptspannungen(2.0, -4.0, 1.5)
print("σxx=2, σyy=−4, τxy=1,5 MPa:  σ1 = %s MPa, σ2 = %s MPa, Richtung σ1: %s°"
      % (komma(s1, 3), komma(s2, 3), komma(richtung, 1)))
# Beispiel 2: reiner Schub — Hauptrichtungen genau unter 45°.
s1, s2, richtung = hauptspannungen(0.0, 0.0, 3.0)
print("reiner Schub τxy=3 MPa:      σ1 = %s MPa, σ2 = %s MPa, Richtung σ1: %s°"
      % (komma(s1, 3), komma(s2, 3), komma(richtung, 1)))

zeichne_mohrkreis(2.0, -4.0, 1.5, komma)
σxx=2, σyy=−4, τxy=1,5 MPa:  σ1 = 2,354 MPa, σ2 = −4,354 MPa, Richtung σ1: 13,3°
reiner Schub τxy=3 MPa:      σ1 = 3 MPa, σ2 = −3 MPa, Richtung σ1: 45°
Abbildung 15.2: Der Mohr-Kreis des gemischten Beispielzustands (σxx = 2, σyy = −4, τxy = 1,5 MPa) in der (σ, τ)-Ebene. Der Kreismittelpunkt liegt bei σ_m = −1 MPa auf der σ-Achse, der Radius ist R ≈ 3,35 MPa. Die zwei Hauptspannungen sind die Schnittpunkte des Kreises mit der σ-Achse (grün): σ1 ≈ 2,35 MPa (Zug) und σ2 ≈ −4,35 MPa (Druck). Der rote Durchmesser verbindet die zwei Flächenpunkte (σxx, τxy) und (σyy, −τxy); der violette Bogen 2ϑ ≈ 26,6° am Mittelpunkt gehört zur Hauptrichtung ϑ ≈ 13,3°. Achsen gleich skaliert, damit der Kreis rund bleibt.

Deutung. Der gemischte Zustand liefert eine positive größere Hauptspannung (Zug, rund 2,3 MPa) und eine negative kleinere (Druck, rund −4,3 MPa), deren Richtungen um gut 13° gegen die Achsen gedreht sind. Der reine Schub zeigt den Grenzfall: gleich große Zug- und Druck-Hauptspannung (\(+3\) und \(-3\) MPa) unter genau \(\pm 45°\). Das Vorzeichen entscheidet über Zug oder Druck, der Winkel über die Richtung — außer am isotropen Punkt, wo es keine gibt.

15.3.1 Zwei Wege zu mitteln — und warum sie sich unterscheiden

Für das gemeinsame Richtungsbild über die fünf Momente mitteln wir die fünf Spannungstensoren (jeder linear in \(u\)) gewichtet und lesen daraus die Hauptrichtungen ab. Das gemittelte Tensorfeld ist eine definierte Auswertegröße, aber kein tatsächlich auftretender Zustand — es gibt keinen Augenblick, in dem dieser Tensor anliegt. Und es ist nicht dasselbe wie das gewichtete Mittel der lastfallweisen skalaren Maße, weil Von-Mises und Energiedichte nichtlinear in der Spannung sind. Abbildung 15.3 zeigt den Unterschied auf dem Buchnetz.

Code
studie = lade("mittel")
mk = studie.mittel_kennzahlen()
vmm, vms, um, us = SF.ausloeschung_beispiel()
fig, (a1, a2) = plt.subplots(1, 2, figsize=(7.6, 3.8))
a1.bar(["VM(σ̄)", "Mittel VM"], [mk["vm_tensormittel_mpa"], mk["vm_skalarmittel_mpa"]],
       color=["#1f6fb4", "#c0392b"])
a1.set_ylabel("Von-Mises (MPa)")
a1.set_title("gemittelter Tensor vs. Mittel der Maße", fontsize=9)
for i, v in enumerate([mk["vm_tensormittel_mpa"], mk["vm_skalarmittel_mpa"]]):
    a1.text(i, v + 0.05, komma(v, 2), ha="center", fontsize=9)
a2.bar(["VM(σ̄)", "Mittel VM"], [vmm / 1e6, vms / 1e6], color=["#1f6fb4", "#c0392b"])
a2.set_ylabel("Von-Mises (MPa)")
a2.set_title("Auslöschung: ±4 MPa gegenläufig", fontsize=9)
for i, v in enumerate([vmm / 1e6, vms / 1e6]):
    a2.text(i, v + 0.05, komma(v, 2), ha="center", fontsize=9)
plt.tight_layout()
plt.show()

print("plantare Zone, Von-Mises (MPa):")
print("  gemittelter Tensor %s · Mittel der Lastfälle %s (+%s %%)"
      % (komma(mk["vm_tensormittel_mpa"], 3), komma(mk["vm_skalarmittel_mpa"], 3),
         komma(100 * (mk["vm_skalarmittel_mpa"] / mk["vm_tensormittel_mpa"] - 1), 1)))
print("plantare Zone, Formänderungsenergiedichte (J/m³):")
print("  gemittelter Tensor %s · Mittel der Lastfälle %s (+%s %%)"
      % (komma(mk["u_tensormittel_jm3"], 1), komma(mk["u_skalarmittel_jm3"], 1),
         komma(100 * (mk["u_skalarmittel_jm3"] / mk["u_tensormittel_jm3"] - 1), 1)))
Abbildung 15.3: Zwei Mittelungs-Reihenfolgen nebeneinander, je als Balkenpaar in MPa mit angeschriebenem Wert. Links die plantare Zone des mittleren Buchnetzes: die Von-Mises-Spannung des GEMITTELTEN Tensors gegen das gewichtete MITTEL der lastfallweisen Von-Mises-Spannungen. Rechts dasselbe Paar für ein konstruiertes Gegenbeispiel aus zwei gegenläufigen einachsigen Lastfällen (+4 und −4 MPa). Der Text unter der Abbildung nennt zusätzlich beide Zahlenpaare der Formänderungsenergiedichte.
plantare Zone, Von-Mises (MPa):
  gemittelter Tensor 3,137 · Mittel der Lastfälle 3,307 (+5,4 %)
plantare Zone, Formänderungsenergiedichte (J/m³):
  gemittelter Tensor 259,4 · Mittel der Lastfälle 327,3 (+26,2 %)

Deutung. Die zwei Reihenfolgen ergeben verschiedene Zahlen: In der plantaren Zone ist die Von-Mises-Spannung des gemittelten Tensors 3,14 MPa, das gewichtete Mittel der lastfallweisen Von-Mises-Spannungen aber 3,31 MPa (5,4 % höher); bei der Formänderungsenergiedichte sind es 259,4 gegen 327,3 J/m³, also 26,2 % höher. Das Gegenbeispiel macht den Grund drastisch: Zwei gegenläufige einachsige Lastfälle löschen sich im Tensor-Mittel vollständig aus (Von-Mises 0), obwohl jeder für sich eine positive Beanspruchung trägt. Deshalb dient das gemittelte Tensorfeld hier nur dem kohärenten Richtungsbild und darf nicht schon als Maß der dauerhaften Beanspruchung gelten. Welche Mehrlastfallgröße biologisch zählt, entscheidet Teil VI: das gewichtete Mittel der lastfallweisen Formänderungsenergiedichte je Knochenmasse.

Ein Wort zum Verhältnis der beiden Maße. Die Energie, die eine Verformung im Material speichert, hat zwei Anteile: einen, der das Volumen ändert, und einen, der die Gestalt ändert. Die Von-Mises-Spannung misst allein den zweiten — die Gestaltänderungsenergie. Deshalb ist sie ein gutes Lesemaß dafür, wo das Material verzerrt wird; und deshalb nimmt Teil VI nicht sie, sondern die ganze Formänderungsenergiedichte als Reiz. Wo in diesem Kapitel von einem „Lesemaß“ die Rede ist, ist genau dieser Unterschied gemeint.

Jetzt die Trennung selbst. Am zweiten Regler schaltest du das gewichtete Mittelfeld zwischen seinem Zug- und seinem Druckanteil um.

WichtigVorhersage-Punkt

Bevor du den Regler bewegst: Wo im Fersenbein überwiegt Zug, wo Druck? Lege dich fest, dann schalte um und lies das Feld ab.

Nach der Bedienung fasst Abbildung 15.4 dieselbe Trennung als Standbild zusammen.

Code
studie = lade("mittel")
mf = studie.mittelfeld()
fig, (a1, a2) = plt.subplots(2, 1, figsize=(6.0, 6.2))
# Gleiche Skala für beide Panels: EINE gemeinsame Farbleiste, vollständig rechts
# außerhalb der Panelspalte (Formregel für gestapelte Reihen).
tp = feld_bild(a1, studie, mf["zug"], "Zug (σ1 > 0)", colorbar=False)
feld_bild(a2, studie, mf["druck"], "Druck (|σ2|)", colorbar=False)
fig.tight_layout(rect=(0.0, 0.0, 0.87, 1.0))
cax = fig.add_axes((0.895, 0.13, 0.026, 0.74))
cb = fig.colorbar(tp, cax=cax, extend="max")
cb.set_label("Hauptspannungsbetrag |σ| (MPa, ≥ 10 gesättigt)", fontsize=7)
cb.ax.tick_params(labelsize=7)
plt.show()
Abbildung 15.4: Das gewichtet gemittelte Feld, getrennt in Zug und Druck (mittleres Buchnetz). Oben die Zugspannung σ1 > 0 (nur die Zonen, die ziehen), unten der Betrag der Druckspannung |σ2| (nur die Zonen, die drücken). Zug positiv. Beide Bilder teilen sich EINE Farbleiste rechts außen — dieselbe Turbo-Skala 0–10 MPa, ≥ 10 MPa gesättigt —, damit die zwei Felder unmittelbar vergleichbar sind. Sagittalschnitt, hinten links, vorn rechts, oben ↑; Maßstab 10 mm. Buchnetz-Rechnung, Zeile „Buchnetze“ in Tabelle 13.3.

Deutung. Die Trennung macht sichtbar, was Von-Mises verschweigt. Druck staut sich als Säule direkt unter der Ferse und steigt zur Talus-Gelenkfläche auf — der Lastpfad, über den das Körpergewicht ins Sprunggelenk geht; der allergrellste Druckfleck sitzt an der Talus-Lagerkante und ist wieder die Lagerkantensingularität. Zug liegt vor allem entlang der plantaren Rinde und zieht im Bogen nach hinten oben; vorn am unteren Abhang greift die Faszie an der Enthese an — dem realen Sporn-Ort (Kapitel 18), an dem die plantare Rinde zusätzlich nach vorn gezogen wird. Wo beide Richtungen bestimmt sind, stehen sie senkrecht aufeinander.

15.4 Die Lastpfade und ihr Bild

Verbindet man in jedem Punkt die Richtung der Druckspannung zu durchgehenden Linien und ebenso die der Zugspannung, entstehen die Spannungstrajektorien — zwei Scharen von Kurven, die sich rechtwinklig kreuzen. So weit die Theorie. Was wir zeichnen können, ist der Schritt davor: an jedem Element ein kurzer Richtungsstrich entlang der Zug- bzw. Druckrichtung. Timoschenko und Gudjer beschreiben genau diese Reihenfolge (§48): erst die kurzen Striche, dann die daraus tangential konstruierten Kurven. Unser Bild bleibt bei den Strichen. Zwei Grenzen sind zu nennen: Die Dreieckselemente (CST) liefern je Element genau eine, konstante Richtung — die Auflösung des Richtungsfeldes ist elementweise —, und an isotropen Punkten wird kein Strich gezeichnet. Abbildung 15.5 zeigt das Bild auf dem groben Buchnetz (dort bleiben die Striche lesbar); jeder Strich ist auf die Kontur geclippt, ragt also nicht heraus.

Code
studie = lade("grob")
mf = studie.mittelfeld(1)
fig, ax = plt.subplots(figsize=(6.8, 4.8))
richtungsstriche_bild(ax, studie, mf["trajektorien"], "Richtungsstriche — gewichtetes Mittel",
                      unter=3)
plt.tight_layout()
plt.show()
Abbildung 15.5: Lokale Hauptspannungsrichtungen des gewichteten Mittelfeldes als Richtungsstriche (grobes Buchnetz, jedes dritte Element). An jedem Elementschwerpunkt ein roter Strich entlang der Zugrichtung (σ1 > 0) und ein blauer entlang der Druckrichtung (σ2 < 0). Jeder Strich ist auf die Kontur geclippt; isotrope Elemente sind ausgelassen. Es sind KEINE integrierten Trajektorien — aus den Strichen konstruiert man die Trajektorien (Timoschenko §48). Sagittalschnitt, hinten links, vorn rechts, oben ↑; Maßstab 10 mm. Buchnetz-Rechnung, Zeile „Buchnetze“ in Tabelle 13.3.

Deutung. Die zwei Scharen zeichnen das Muster, das die getrennten Felder schon angedeutet haben: blaue Druckstriche, die von der Ferse hinauf ins Sprunggelenk zeigen, und rote Zugstriche, die den plantaren Rand entlanglaufen und sich nach hinten oben biegen. Wie dieses Bild über die fünf Momente wandert und sich zum Mittel aufbaut, zeigt die Animation.

WichtigVorhersage-Punkt

Bevor du die Animation startest: Verändert sich das Kreuzungsmuster von Moment zu Moment stark, oder bleibt die Grundrichtung — Druck hinauf, Zug plantar — über den ganzen Schritt erhalten? Lege dich fest, dann spiele ab.

Deutung. Das ist die Antwort auf die Vorhersagefrage. Die Grundfigur bleibt über den ganzen Schritt erhalten: Druck von der Ferse zur Talus-Facette, Zug plantar. Was wandert, ist die Neigung — beim Abstoß kippen die Druckstriche nach vorn, weil der Faszienzug übernimmt. Im Strichfeld selbst ist diese Wanderung mit bloßem Auge kaum auszumachen; deshalb steht der berechnete Wert als Zeiger rechts unten im Bild und schreibt bei jedem Moment die Neigung der Druckrichtung gegen die Senkrechte an — von rund 3,6° beim Fersenauftritt auf 18,7° beim Abstoß. Genau weil die Grundfigur stabil ist, ist sie ein Kandidat für etwas Dauerhaftes wie die Bauform des Knochens.

15.5 Eine Zahl für die Beanspruchung — und welche man auswerten darf

Für einen Vergleich über Momente oder Netze hinweg braucht man eine einzige belastbare Zahl. Die Von-Mises-Vergleichsspannung liefert sie — aber nur, wenn man sie am richtigen Ort abliest. Das ist die Lehre aus Kapitel 13, hier am Spannungsfeld wiederholt: die flächengewichtete Zonenspannung in der plantaren Zone ist ein Flächenmittel, die Spitze der Höchstwert eines einzelnen Elements.

WichtigVorhersage-Punkt

Bevor du den Regler bewegst: Du wechselst zwischen Zonen- und Spitzenspannung und dann das Netz. Welche der beiden Zahlen bleibt stabil, wenn du das Netz verfeinerst (Rückbezug Kapitel 13)? Lege dich fest, dann schalte um.

Deutung. Die Antwort auf die Vorhersagefrage: Die Zonenspannung bleibt stabil — über die drei Buchnetze schwankt sie um 0,3 %, sie bleibt also praktisch stehen —, die Spitze wächst mit dem Netz, von grob nach fein um rund das 1,02-fache. Die Spitze ist der Höchstwert eines einzelnen Elements am oberen Rand der Auswertezone, und ein solcher Wert wandert mit jedem neuen Netz: genau die Größe, die man nach Kapitel 13 nicht auswerten darf, während die Zone einläuft. Deshalb steht in diesem Kapitel nur die Zonenspannung — und auch sie mit dem Vorbehalt, dass „stabil“ für die drei gerechneten Netze gilt und keine bewiesene Netzunabhängigkeit ist.

Ein Hinweis zum Maßstab. Dieser Zonenwert gehört zu den Buchnetzen: plantare Zone \(y < 6\) mm, Material und Lagerung wie in der Zeile „Buchnetze“ von Tabelle 13.3. Die numerisch geprüfte Vergleichsrechnung nennt in derselben Tabelle eine deutlich größere Zahl — sie mittelt eine andere Zone im Inneren der Tuber-Region und rechnet auf einem anders aufgebauten Knochen. Kapitel 13 stellt beide nebeneinander und sagt, warum man sie nebeneinanderlegen, aber nicht gleichsetzen darf. Klinisch zu lesen ist keine von beiden.

15.6 Das Trabekel-Thema: der Knochen und das Richtungsbild

Jetzt der Bezug zur Anatomie. Abbildung 15.6 stellt ein literaturbasiertes Lehrschema der Kalkaneus-Trabekelgruppen neben das berechnete Richtungsbild. Zur Einordnung: Das Schema ist selbst gezeichnet nach der anatomischen Taxonomie der Literatur (Gefen & Seliktar 2004; Übersichtsarbeit in RadioGraphics 2022), quellenunabhängig vom Rechenergebnis — es ist keine Fotografie, keine Messung und nicht an unser Ergebnis angepasst. Die Literatur beschreibt im Kalkaneus mehrere Bälkchengruppen: zwei Druckgruppen (dorsal–plantar unter der Gelenkfläche und eine anteriore Gruppe), drei Zuggruppen (plantar-längs und schräg aufsteigend) und ein Neutraldreieck mit sparsamen Bälkchen im anterior-inferioren Bereich.

Code
studie = lade("grob")
mf = studie.mittelfeld(1)
fig, (a1, a2) = plt.subplots(2, 1, figsize=(6.0, 6.4))
trabekel_lehrschema(a1, "Trabekelgruppen (Lehrschema)")
richtungsstriche_bild(a2, studie, mf["trajektorien"], "berechnete Richtungsstriche (Mittel)",
                      unter=3)
plt.tight_layout()
plt.show()

# Berechnet, nicht behauptet: zeigt das Modell im Neutraldreieck weniger Spannung?
# Die Auswertezone liegt im gezeichneten Neutraldreieck und damit vollständig im
# Knochen; die frühere Zone (38–56 / 6–16 mm) lag fast ganz daneben und traf nur
# 5 Randelemente (Bildprüfung 01.09.2026). Gerechnet auf allen drei Buchnetzen,
# damit die Prosa nicht behaupten muss, das Ergebnis hänge nicht am Netz.
def zone_vm(st, vm, xmin, xmax, ymin, ymax, ausser=None):
    sc = st.schwer * 1000.0
    m = (sc[:, 0] > xmin) & (sc[:, 0] < xmax) & (sc[:, 1] > ymin) & (sc[:, 1] < ymax)
    if ausser is not None:
        m = m & ~ausser
    if not m.any():
        return None, 0, m
    return (float((vm[m] * st.flaeche[m]).sum() / st.flaeche[m].sum()),
            int(m.sum()), m)

NEUTRAL = {}
for _s in STUFEN:
    _st = lade(_s)
    _vm = np.array(MITTELFELD[_s]["vonmises"])
    _nt, _n_nt, _m_nt = zone_vm(_st, _vm, 34, 50, 17, 25)          # Neutraldreieck
    _inn, _n_in, _ = zone_vm(_st, _vm, 8, 56, 6, 26, ausser=_m_nt)  # übriges Inneres
    NEUTRAL[_s] = {"nt": _nt, "n_nt": _n_nt, "inn": _inn, "n_in": _n_in}

print("mittlere Von-Mises, flächengewichtet (MPa):")
print("  Netz     Neutraldreieck (Elemente)   übriges Inneres (Elemente)")
for _s in STUFEN:
    d = NEUTRAL[_s]
    print("  %-7s  %5s (%4d)                %5s (%4d)"
          % (_s, zwei(d["nt"]), d["n_nt"], zwei(d["inn"]), d["n_in"]))
Abbildung 15.6: Trabekelgruppen gegen Richtungsbild, gleiche Ausrichtung. Oben ein SELBST GEZEICHNETES literaturbasiertes Lehrschema der anatomischen Trabekelgruppen (Gefen & Seliktar 2004; Übersichtsarbeit in RadioGraphics 2022): zwei Druckgruppen (blau), drei Zuggruppen (rot), Neutraldreieck (grau) — keine Fotografie, keine Rechnung, nicht ans Ergebnis angepasst. Unten die berechneten Richtungsstriche des gewichteten Mittelfeldes (grobes Buchnetz). Nur die RICHTUNGSFAMILIEN werden qualitativ verglichen; keine Deckungsgleichheit, keine Kausalität. Sagittalschnitt, hinten links, vorn rechts, oben ↑; Maßstab 10 mm.
mittlere Von-Mises, flächengewichtet (MPa):
  Netz     Neutraldreieck (Elemente)   übriges Inneres (Elemente)
  grob      3,30 (  47)                 4,40 ( 225)
  mittel    3,31 (  98)                 4,41 ( 533)
  fein      3,43 ( 331)                 4,50 (1598)

Deutung — vorsichtig. Verglichen werden nur die Richtungsfamilien, und nur qualitativ: Die berechneten Druckstriche zeigen dorthin, wo die Taxonomie die Druckgruppen beschreibt (von der Gelenkfläche zur plantaren Ferse), und die plantaren Zugstriche liegen, wo die Literatur die plantare Zuggruppe verortet. Das ist die Kernthese im ersten Anschein — ein Hinweis, keine Deckungsgleichheit und keine Kausalität: Aus „die Richtungsfamilien ähneln sich“ folgt nicht „der Knochen wächst, weil die Spannung so verläuft“. Das Neutraldreieck ist ein guter Prüfstein: Im anterior-inferioren Bereich, wo die Anatomie sparsame Bälkchen beschreibt, zeigt das Modell tatsächlich eine niedrigere mittlere Von-Mises-Spannung — auf dem mittleren Buchnetz 3,3 MPa gegen 4,4 MPa im übrigen Inneren, also rund ein Viertel weniger. Die Tafel über dieser Deutung zeigt, dass das nicht am Netz hängt: Der Abstand zwischen Neutraldreieck und übrigem Inneren fällt auf allen drei Buchnetzen gleich aus, und die Auswertezone trägt selbst auf dem groben Netz Dutzende Elemente — es ist keine Zufälligkeit einzelner Randdreiecke. Der Vergleich bleibt aus drei Gründen zurückhaltend: Das obere Bild ist ein Schema nach Literatur (die Grundlagenstudie verglich nur einen Kadaver mit einem Standlast-FE-Modell); das Rechenmodell ist isotrop und kann die Vorzugsrichtung echter Trabekel nicht selbst hervorbringen, nur die Spannungsrichtung anbieten; und der Vergleich ist qualitativ. Die kausale Frage — und die Vorzugsrichtung als Ergebnis des Umbaus — ist Gegenstand von Teil VI.

HinweisWarum der Vergleich isotrop bleibt (Modellgrenze)

Echte Trabekel haben eine Vorzugsrichtung, und die ist selbst ein Ergebnis des Umbaus — der Knochen legt Material in die Lastrichtung. Unser Modell rechnet isotrop: In jede Richtung dasselbe Material. Es kann die Trabekelrichtung deshalb nicht erzeugen; es kann nur die Spannungsrichtung anbieten und fragen, ob sie zur beschriebenen Bälkchenrichtung passt. Dass sie es qualitativ tut, ist der Hinweis, dem Teil VI nachgeht — dort wird die Richtung zum Ergebnis, nicht zur Annahme. Die Formänderungsenergie hinter der Umbaurechnung wird dann zum Reiz; hier bleibt die Von-Mises-Spannung ein Lesemaß im oben beschriebenen Sinn, kein gerechneter Reiz.

Teil V abgeschlossen — die Studiums-Tabelle

Damit schließt Teil V. Er löst eine Zeile der Studiums-Tabelle im Vorwort ein, die seit Teil II dort auf ihren Teil gewartet hat: Zug und Druck an einer Stelle zu trennen heißt, die Eigenwerte des Spannungstensors zu bestimmen; ihre Richtungen sind seine Eigenrichtungen, und der Mohr-Kreis ist die Geometrie eben dieser Rechnung. Alles Übrige in Teil V war Anwendung dessen, was Teil I bis IV eingeführt haben: die Vektoren der drei Kräfte, die Matrix und der Löser, Ableitung und Integral hinter Dehnung und Mittelung, die partielle Differentialgleichung und ihre schwache Form, die Diskretisierung in Dreiecke und die Konvergenzstudie — sie alle stehen und tragen jetzt einen ganzen Schritt und sein Spannungsbild.

Im Buch als … Im Studium heißt es … eingelöst
Zug und Druck an einer Stelle trennen Eigenwerte, Hauptachsentransformation Kapitel 15 ✓
Kraftpfeil, Matrix, Löser, Ableitung/Integral, PDE, schwache Form, Diskretisierung, Konvergenzstudie Vektor, Matrix, LGS, Analysis, PDE, Variationsform, FEM-Netz, Fehleranalyse in Teil I bis IV eingeführt, in Teil V auf den Schritt angewandt

Teil VI schließt den Kreis: Aus dem Spannungsfeld wird über die Formänderungsenergie der mechanische Reiz, und aus dem Reiz der Umbau, der die Trabekel überhaupt erst dorthin legt, wo die Anatomie sie beschreibt.

Übungen

Ü 15.1 (Verstehen). In Abbildung 15.4 herrscht unter der Ferse Druck und entlang der Unterkante Zug. Begründe beides mit der Richtung der drei Kräfte (Bodenreaktion, Achillessehnen-, Faszienzug) — welche Kraft erzeugt die Drucksäule, welche den plantaren Zug?

Die Drucksäule unter der Ferse erzeugt die Bodenreaktionskraft: Sie drückt von unten senkrecht gegen das feste Talus-Lager oben, und das Gewebe dazwischen wird zwischen beiden zusammengedrückt — die kleinste Hauptspannung \(\sigma_2\) ist dort negativ und zeigt fast senkrecht. Der plantare Zug entlang der Unterkante stammt aus dem Faszien- und Muskelzug an der Enthese (vorn unten) zusammen mit der Biegung des Tuber: Die Unterkante wird gelängt, die größte Hauptspannung \(\sigma_1\) ist dort positiv und läuft längs. Wo beide bestimmt sind, stehen Zug- und Druckrichtung senkrecht aufeinander — das folgt daraus, dass \(\sigma_1\) und \(\sigma_2\) die zwei Eigenrichtungen desselben Spannungstensors sind (am isotropen Punkt gibt es keine Vorzugsrichtung).

Ü 15.2 (Verändern). Öffne den Lastfall-Regler und schalte vom Fersenauftritt zum Abstoß. Sage vorher, ob die Druckrichtung unter der Ferse steiler oder flacher wird, und lies dann die berechnete Neigung ab.

Die Druckrichtung wird flacher (kippt nach vorn): von rund 3,6° gegen die Senkrechte beim Fersenauftritt auf rund 18,7° beim Abstoß. Grund: Beim Auftritt trägt fast nur die senkrechte Bodenreaktion, die Druckrichtung steht fast senkrecht. Beim Abstoß ist die Bodenreaktion klein und der Faszien- sowie Achillessehnenzug groß; ihre Resultierende kippt nach vorn zu den Zehen, und die Druckrichtung kippt mit. Am steilsten (am nächsten zur Senkrechten) ist die Druckrichtung also beim Fersenauftritt — die berechnete, nicht die geratene Antwort; sie ist auf allen drei Buchnetzen dieselbe.

Ü 15.3 (Übertragen). Vergleiche in Abbildung 15.6 das untere Richtungsbild mit dem oberen Lehrschema (die Bilder stehen untereinander, gleiche Ausrichtung). Benenne eine Richtungsfamilie, die gut, und eine, die schlecht übereinstimmt, und deute die Abweichung.

Gut stimmt die plantare Druckgruppe überein: Die berechneten blauen Druckstriche steigen von der Ferse zur Talus-Facette auf, wie die dorsal–plantare Druckgruppe des Schemas; und die roten Zugstriche folgen der Unterkante wie die plantare Zuggruppe. Schlecht wird es nahe der Talus-Lagerkante: Dort verzerrt die Lagerkantensingularität die berechneten Richtungen (das feste Lager ist eine Modellidealisierung, kein echtes Gelenk), während die realen Trabekel dort dem Knorpel und der Gelenkfläche folgen. Die Abweichung ist keine Widerlegung, sondern eine bekannte Modellgrenze: die harte Einspannung (Kapitel 13) und das isotrope Material. Und weil das obere Bild ein Schema ist, ist der Vergleich ohnehin nur qualitativ — er zeigt eine Ähnlichkeit der Richtungsfamilien, keine Deckungsgleichheit.

Roter Faden

Wo kam das schon vor, wo kommt es wieder? Zurück: Die Spannung aus der Dehnung stammt aus Kapitel 6, die Von-Mises-Spannung und die belastbare Zonenspannung samt den Singularitätsklassen aus Kapitel 13, die fünf gewichteten Lastfälle und der wandernde Lastwinkel aus Kapitel 14. Vor: Die Formänderungsenergie wird in Kapitel 16 zum mechanischen Reiz — lastfallweise gebildet und dann gewichtet; das Trabekel-Thema und die Vorzugsrichtung als Ergebnis des Umbaus rechnet Teil VI durch (Kapitel 17, Kapitel 18); die hier getrennten Zug- und Druckfelder sind die Grundlage des Hypothesentests „Zug gegen Druck“ in Kapitel 18.

Was dieses Kapitel NICHT tut

Es rechnet kein Versagen — die Von-Mises-Vergleichsspannung ist hier nur eine Lesehilfe und ein Vergleichsmaß, kein Festigkeitsnachweis und kein Bruchkriterium, wie Kapitel 13 es nennt. Es zeichnet keine integrierten Trajektorien, sondern lokale Richtungsstriche; die durchgehenden Trajektorien sind der Konstruktionsschritt darüber (Timoschenko §48), und bei CST-Dreiecken ist die Richtung je Element konstant. Es bildet keine Anisotropie ab: Das Modell ist isotrop und kann die Vorzugsrichtung echter Trabekel nicht erzeugen, nur die Spannungsrichtung anbieten. Es rechnet noch keinen Umbau — der Vergleich mit den Trabekeln ist ein qualitativer Anschein der Richtungsfamilien, keine gerechnete Ursache; die Formänderungsenergie wird hier benannt, aber nicht als Reiz gerechnet (das ist Teil VI, wo sie lastfallweise gebildet wird). Das gewichtete Mittelfeld dient nur dem Richtungsbild, nicht als Maß der Mehrlastfall-Beanspruchung (die Reihenfolgen unterscheiden sich nichtlinear). Es zeigt kein reales Anatomiebild: Der Trabekelverlauf ist ein selbst gezeichnetes, literaturbasiertes Lehrschema, keine Fotografie. Die gezeigten Spannungen sind Modellwerte der Buchnetz-Familie (Zeile „Buchnetze“ in Tabelle 13.3, plantare Zone) — eine andere Modellrechnung als die numerisch geprüfte Vergleichsrechnung, und keine klinische Aussage. Nur Spannungsfelder lesen, Zug und Druck trennen und die Lastpfade mit der beschriebenen Anatomie vergleichen — mehr will dieses Kapitel nicht.