1. Syntaxe#

cabl_precont = DEFI_CABLE_BP(
    ◆ MODELE = modele,
    ◆ CHAM_MATER = cham_mater,
    ◆ CARA_ELEM = cara_elem,
    ◆ GROUP_MA_BETON = grma,
    ◆ TYPE_ANCRAGE = / "ACTIF",
                     / "PASSIF",
    ◇ ADHERENT = / "OUI" (par défaut),
                 / "NON",
    # Si: (equal_to("ADHERENT", 'OUI'))
        ◆ / DEFI_CABLE = _F(
               ◇ / GROUP_MA = grma,
                 / | TABL_CABLE = table,
                   | GROUP_NO_ANCRAGE = grno,
            ),
          / MODI_CABLE_RUPT = _F(
               ◆ GROUP_MA = grma,
               ◆ GROUP_NO_ANCRAGE = grno,
               ◆ TENSION = table,
            ),
        ◇ TYPE_RELAX = / "SANS" (par défaut),
                       / "BPEL",
                       / "ETCC_DIRECT",
                       / "ETCC_REPRISE",
        # Si: equal_to("TYPE_RELAX", 'BPEL')
            ◆ R_J = float,
        # Si: equal_to("TYPE_RELAX", 'ETCC_DIRECT')
            ◆ NBH_RELAX = float,
        # Si: equal_to("TYPE_RELAX", 'ETCC_REPRISE')
            ◇ MODI_CABLE_ETCC = _F(
                 ◆ GROUP_MA = grma,
                 ◆ GROUP_NO_ANCRAGE = grno,
                 ◆ TENSION = table,
              ),
            ◆ NBH_RELAX = float,
        ◇ CONE = _F(
             ◆ RAYON = float,
             ◆ LONGUEUR = float,
             ◆ PRESENT = / "OUI",
                         / "NON",
          ),
    # Si: (not exists("MODI_CABLE_RUPT"))
        ◆ TENSION_INIT = float,
        ◆ RECUL_ANCRAGE = float,
    # Si: (equal_to("ADHERENT", 'NON'))
        ◆ DEFI_CABLE = _F(
             ◆ GROUP_MA = grma,
             ◆ GROUP_NO_ANCRAGE = grno,
          ),
    ◇ TITRE = text,
    ◇ INFO = / 1 (par défaut),
             / 2,
)

◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles