Technický popis formátu souboru .df (LittleDef)
==============================================

Formát je textový (plain-text), řádkově orientovaný a využívá blokovou strukturu, kde každému bloku předchází počet záznamů.

Obecná pravidla
---------------
- Oddělovače: Pole jsou oddělena mezerami.
- Tcl konvence: Pole obsahující mezery (např. názvy kombinací) nebo seznamy jsou uzavřeny v složených závorkách {} nebo uvozovkách "".
- Verze: Novější verze formátu přidávají bloky na konec souboru. Konvertor by měl při čtení volitelných bloků kontrolovat konec souboru (EOF).
- Souřadný systém: 2D (rovina X, Y).

Struktura souboru (Bloky v daném pořadí)
---------------------------------------

1. Uzly (Nodes)
   - Záhlaví: Celé číslo (počet uzlů).
   - Záznam: `id x y`
     - id: Unikátní ID uzlu (integer).
     - x, y: Globální souřadnice (float, v metrech).

2. Prvky (Elements)
   - Záhlaví: Celé číslo (počet prvků).
   - Záznam: `id na nb ha hb A I h E ro alpha [ka kb mat sec as1 as2 asw ssw phi_ef lcr_user Iz It Iw alpha_lt group cot_theta]`
     - id: Unikátní ID prvku.
     - na, nb: ID počátečního a koncového uzlu.
     - ha, hb: Příznaky kloubů (1 = tuhé spojení, 0 = kloub).
     - A: Plocha průřezu [m²].
     - I: Moment setrvačnosti [m⁴].
     - h: Výška průřezu [m].
     - E: Modul pružnosti [Pa].
     - ro: Hustota [kg/m³].
     - alpha: Součinitel teplotní roztažnosti [1/K].
     - (Následující pole jsou volitelná a závisí na verzi):
     - ka, kb: Tuhost polotuhých spojů.
     - mat, sec: Název materiálu a průřezu (string).
     - as1, as2: Plocha horní a dolní výztuže [m²].
     - asw, ssw: Plocha smykové výztuže a její rozteč [m].
     - phi_ef: Účinný součinitel dotvarování.
     - lcr_user: Uživatelská vzpěrná délka [m].
     - Iz, It, Iw: Mimorovinné charakteristiky (setrvačnost v krutu, výsečový moment).
     - alpha_lt: Součinitel imperfekce pro klopení.
     - group: ID skupiny prvků.
     - cot_theta: Kotangens úhlu tlačené betonové diagonály (pro smyk dle EC2).

3. Podpory / Předepsané posuny (Displacements)
   - Záhlaví: Celé číslo (počet podpor).
   - Záznam: `id node_id direction value load_case_id`
     - direction: Směr (0=X, 1=Y, 2=Rotace).
     - value: Hodnota posunu [m, rad] nebo tuhost pružiny.
     - load_case_id: ID zatěžovacího stavu (0 = platí pro všechny).

4. Uzlové síly (Nodal Forces)
   - Záhlaví: Celé číslo (počet sil).
   - Záznam: `id node_id direction value load_case_id`
     - direction: Směr (0=Fx, 1=Fy, 2=Mz).

5. Prvková zatížení (Element Loads)
   - Záhlaví: Celé číslo (počet zatížení).
   - Záznam: `id element_id type direction val_a val_b load_case_id`
     - type: Typ (0=Osamělé, 1=Spojité, 2=Teplotní).
     - direction: Směr (0=Osy prvku: 0=Axiální, 1=Příčné).

6. Kóty (Dimensions) - Volitelné
   - Záhlaví: Celé číslo.
   - Záznam: `id node1_id node2_id offset`

7. Kombinace (Combinations) - Volitelné
   - Záhlaví: Celé číslo.
   - Záznam: `name factors`
     - factors: Seznam dvojic {id_stavu součinitel}, např. {{1 1.35} {2 1.5}}.

8. Metadata zatěžovacích stavů - Volitelné
   - Záhlaví: Celé číslo.
   - Záznam: `id name category`
     - category: Kategorie dle Eurokódu (G, Q, S, W, atd.).

9. Skupiny prvků (Member Groups) - Volitelné
   - Záhlaví: Celé číslo.
   - Záznam: `id name`
