2. Catalogue de la commande#

Voici le squelette à compléter du catalogue code_aster/Cata/Commands/modi_mail.py:

from ..Commons import *
from ..Language.DataStructure import *
from ..Language.Syntax import *


MODI_MAIL = OPER(
    nom="MODI_MAIL",
    op=190,
    sd_prod=maillage_sdaster,
    fr=tr("Modifier un maillage par translation"),
    reentrant="o:MAILLAGE",
    reuse=SIMP(statut="c", typ=CO),
    MAILLAGE=...,
    TRANSLATION=...,
    INFO=SIMP(statut="f", typ="I", defaut=1, into=(1, 2)),
)

2.1. Description du catalogue#

Les imports des autres modules dans tout le package code_aster doivent être faits en relatif (from ..Commons et non from code_aster.Cata.Commons). import * est interdit sauf dans les catalogues de commandes.

nom doit être identique à ce qu’il y a à gauche du signe égal, en autres, pour automatiser l’import des commandes. On note que ce catalogue sera automatiquement importé sans autre ajout. Le nom du fichier est également cohérent (en minuscules).

op indique le numéro de la routine fortran qui est appelée. Pour une nouvelle commande, choisir un numéro libre dans ex0000.F90.

sd_prod définit le type de l’objet en sortie. Le catalogue est aussi utilisé par AsterStudy qui ne peut pas importer tout code_aster. Il s’agit donc d’une DataStructure légère, définie dans code_aster/Cata/DataStructure.py, et non de l’objet qui sera produit dans le fichier de commandes. Ici, maillage_sdaster vs Mesh. AsterStudy manipule un objet maillage_sdaster qui ne contient pas beaucoup plus que son type et le fichier de commandes manipule de vrais objets Mesh. La correspondance est faite ainsi:

maillage_sdaster.getType() == Mesh().getType() == "MAILLAGE_SDASTER"

reentrant indique que la commande est obligatoirement (“o”) « réentrante », c’est à dire qu’elle modifie l’objet fourni au mot-clé MAILLAGE. Si elle était réentrante selon les mots-clés fournis, on indiquerait “f” (facultatif) ou “n” si elle ne l’est jamais. Si elle peut être réentrante, il faut ajouter le mot-clé caché reuse, toujours défini ainsi.

Le mot-clé INFO est présent dans la majorité des commandes. Il vaut 1 (verbosité normale) ou 2 (impressions détaillées supplémentaires).

2.1.1. Mots-clés à ajouter#

MAILLAGE est un mot-clé simple. Il faut définir son caractère facultatif ou obligatoire, le type attendu.

Pour cet exercice, on souhaite que TRANSLATION soit un mot-clé facteur qui ne contient qu’un seul mot-clé simple VECTEUR. Ces mots-clés sont obligatoires. Il est plus naturel pour l’utilisateur de fournir 2 valeurs réelles pour définir le vecteur de translation en 2D et 3 en 3D.