Comment afficher dynamiquement le nombre total de présentations (layouts) d’un fichier AutoCAD dans un champ de texte, en utilisant une variable système, une expression Diesel ou une fonction LISP ?
Pour afficher le nombre total de présentations (layouts) d’un dessin AutoCAD dans un champ de texte, la méthode la plus efficace implique l’utilisation d’une expression LISP. Bien qu’il n’existe pas de variable système directe ou d’expression Diesel simple pour cela, une fonction LISP peut être intégrée pour obtenir ce résultat.
Voici la procédure détaillée :
-
Utilisation d’une expression LISP pour compter les présentations
La fonction LISP(length (layoutlist))retourne le nombre de présentations (y compris l’espace objet) présentes dans le dessin courant.layoutlist: Renvoie une liste de tous les noms de présentations.length: Calcule le nombre d’éléments dans cette liste.
-
Intégration de la valeur LISP dans un champ AutoCAD
Pour que cette valeur soit récupérable par un champ, il est nécessaire de la stocker temporairement dans une variable LISP.- Étape 2.1 : Définir une variable LISP
Dans la ligne de commande AutoCAD, exécutez la commande LISP suivante :
Cette commande crée une variable LISP nommée(setq NbPresentations (length (layoutlist)))NbPresentationset lui assigne le nombre actuel de présentations. - Étape 2.2 : Créer un champ référençant la variable LISP
- Lancez la commande
CHAMP(ouFIELD). - Dans la boîte de dialogue « Champ », sélectionnez la catégorie « Autres ».
- Choisissez le nom de champ « Variable Lisp ».
- Dans la liste des variables Lisp, sélectionnez
NbPresentations. - Cliquez sur « OK » et insérez le champ dans votre dessin.
- Lancez la commande
- Étape 2.1 : Définir une variable LISP
-
Mise à jour du champ
Le champ ainsi créé affichera la valeur de la variableNbPresentationsau moment de sa création ou de sa dernière mise à jour.- Inconvénient : Cette valeur ne se met pas à jour automatiquement si vous ajoutez ou supprimez des présentations.
- Solution : Pour actualiser le champ, vous devrez ré-exécuter la commande LISP
(setq NbPresentations (length (layoutlist)))puis mettre à jour les champs du dessin (commandeMAJCHAMPouREGEN).
-
Alternative manuelle (moins dynamique)
Si une mise à jour automatique n’est pas critique, vous pouvez utiliser les propriétés personnalisées du dessin :- Étape 4.1 : Créer une propriété personnalisée
- Allez dans le menu « Fichier » > « Utilitaires de dessin » > « Propriétés du dessin ».
- Dans l’onglet « Personnalisé », cliquez sur « Ajouter ».
- Donnez un nom à la propriété (ex: « NbTotalFeuilles ») et entrez manuellement le nombre de présentations.
- Étape 4.2 : Insérer un champ référençant cette propriété
- Lancez la commande
CHAMP. - Dans la catégorie « Propriétés du document », choisissez « Propriété personnalisée ».
- Sélectionnez votre propriété « NbTotalFeuilles ».
- Insérez le champ.
- Lancez la commande
- Inconvénient : Cette valeur doit être mise à jour manuellement dans les propriétés du dessin chaque fois que le nombre de présentations change.
- Étape 4.1 : Créer une propriété personnalisée
Bonnes pratiques et considérations avancées :
- Pour une automatisation complète de la mise à jour des champs lors de l’ajout/suppression de présentations, il serait nécessaire de développer un réacteur LISP ou .NET qui détecte ces événements et met à jour la variable LISP en conséquence. Cela dépasse le cadre d’une simple expression mais est la voie à suivre pour une solution entièrement dynamique.