Comment insérer dynamiquement le nom de l’onglet de présentation (layout tab) courant dans un attribut de bloc AutoCAD, en utilisant un champ ou une expression ?
Pour afficher dynamiquement le nom de l’onglet de présentation (layout tab) courant directement dans un attribut de bloc AutoCAD, vous pouvez utiliser un champ lié à une variable système ou une expression Diesel.
Voici les deux méthodes principales :
-
Méthode 1 : Utilisation d’un champ avec la variable système CTAB (Recommandée)
Cette méthode est la plus directe et la plus couramment utilisée pour récupérer le nom complet de l’onglet.-
Étape 1 : Ouvrir l’éditeur de blocs
- Sélectionnez le bloc concerné et tapez
BEDIT(ou double-cliquez sur le bloc) pour ouvrir l’éditeur de blocs.
- Sélectionnez le bloc concerné et tapez
-
Étape 2 : Créer ou modifier un attribut
- Créez un nouvel attribut (
ATTDEF) ou modifiez un attribut existant. - Dans la boîte de dialogue « Définition d’attribut », positionnez le point d’insertion de l’attribut.
- Créez un nouvel attribut (
-
Étape 3 : Insérer le champ CTAB
- Dans le champ « Valeur par défaut » (Default value) de la définition de l’attribut, faites un clic droit et choisissez « Insérer un champ… » (Insert Field…).
- Dans la boîte de dialogue « Champ », sous la catégorie « Variables système » (System Variable), sélectionnez
CTAB. - Choisissez le format souhaité (par exemple, « Majuscules » ou « Première lettre en majuscule »). Le code de champ généré ressemblera à
"%<\AcVar ctab \f "%tc4">%*". - Validez par « OK ».
-
Étape 4 : Enregistrer et synchroniser
- Fermez l’éditeur de blocs en enregistrant les modifications (
BSAVEpuisBCLOSE). - Pour mettre à jour les blocs déjà insérés dans le dessin, utilisez la commande
ATTSYNCet sélectionnez le bloc modifié.
- Fermez l’éditeur de blocs en enregistrant les modifications (
-
Explication : La variable système
CTABstocke le nom de l’onglet de présentation courant. En l’insérant comme un champ dans un attribut, AutoCAD mettra automatiquement à jour la valeur de l’attribut chaque fois que le dessin est régénéré ou que l’onglet actif change.
-
-
Méthode 2 : Utilisation d’une expression Diesel (Pour extraction partielle ou manipulation avancée)
Cette méthode est utile si vous avez besoin d’extraire seulement une partie du nom de l’onglet ou d’effectuer des manipulations plus complexes.- Étape 1 : Ouvrir l’éditeur de blocs et créer un attribut
- Suivez les étapes 1 et 2 de la Méthode 1.
- Étape 2 : Insérer une expression Diesel
- Dans le champ « Valeur par défaut » de la définition de l’attribut, faites un clic droit et choisissez « Insérer un champ… ».
- Dans la boîte de dialogue « Champ », sous la catégorie « Autres » (Other), sélectionnez « Expression Diesel » (Diesel Expression).
- Dans le champ « Expression Diesel », entrez l’expression souhaitée.
- Exemple pour les 5 premiers caractères :
$(substr, $(getvar, ctab),1, 5) - Explication :
$(getvar, ctab): Récupère la valeur de la variable systèmeCTAB(le nom de l’onglet).$(substr, chaîne, début, longueur): Extrait une sous-chaîne. Ici, elle extrait 5 caractères à partir du 1er caractère du nom de l’onglet.
- Validez par « OK ».
- Étape 3 : Enregistrer et synchroniser
- Suivez l’étape 4 de la Méthode 1.
- Étape 1 : Ouvrir l’éditeur de blocs et créer un attribut
Bonnes Pratiques et Notes Importantes :
- Mise à jour des champs : Les champs ne se mettent pas toujours à jour instantanément. Pour forcer une mise à jour, utilisez la commande
REGENouREGENALL. La variable systèmeFIELDEVAL(par défaut à 31) contrôle les événements qui déclenchent la mise à jour automatique des champs. - Synchronisation des attributs : Après avoir modifié la définition d’un attribut dans un bloc, utilisez toujours la commande
ATTSYNCpour propager ces modifications aux blocs déjà insérés dans votre dessin. - Contexte de l’onglet : Le champ affichera toujours le nom de l’onglet de présentation actif au moment de la régénération ou de l’impression. Assurez-vous d’être sur l’onglet correct lorsque vous vérifiez ou imprimez.
- Limites : Les expressions Diesel sont puissantes mais peuvent être plus complexes à déboguer que les champs simples. Pour la plupart des cas, la méthode 1 est suffisante.