Comment automatiser la mise au premier plan de blocs spécifiques (par exemple, des blocs de nivellement) situés sur un calque donné dans AutoCAD, et est-il possible de modifier l’affichage des couleurs de blocs par calque spécifiquement dans les fenêtres de présentation ?
Pour la gestion de l’ordre d’affichage des objets et l’automatisation de leur mise au premier plan, plusieurs approches sont possibles. La modification de l’affichage des couleurs dans les fenêtres de présentation est une problématique distincte, gérée différemment.
Partie 1 : Automatiser l’ordre d’affichage des blocs par calque
L’objectif est de s’assurer que tous les blocs insérés sur un calque spécifique (ex: ‹ 01_NIVELLEMENT ›) soient toujours affichés au premier plan.
Méthode 1 : Utilisation d’un Script ou d’une Macro (nécessite les Express Tools)
Cette méthode est rapide et peut être intégrée dans un script .scr ou une macro de bouton. Elle utilise la commande SSX (Select Similar Extended) des Express Tools pour sélectionner les objets, puis ORDRETRACE pour les envoyer au premier plan.
-
Prérequis : Assurez-vous que les Express Tools sont installés et activés dans votre version d’AutoCAD.
-
Séquence de Commandes :
Pour une macro ou une ligne de commande :(command "_SSX" "B" "*" "LA" "01_NIVELLEMENT" "") (command "_ORDRETRACE" "P" "AV" "")_SSX: Lance la commande Select Similar Extended.B: Filtre la sélection aux blocs.*: Pour tous les noms de blocs.LA: Filtre par calque."01_NIVELLEMENT": Le nom du calque cible."": Termine la sélectionSSX._ORDRETRACE: Lance la commande Ordre d’affichage.P: Utilise la sélection précédente (les blocs sélectionnés parSSX).AV: Met les objets au premier plan."": Termine la commandeORDRETRACE.
Pour un script
.scr, remplacez(command ...)par les lignes de commande directes, en ajoutant un espace ou une nouvelle ligne pour chaque entrée :_SSX B * LA 01_NIVELLEMENT _ORDRETRACE P AV
Méthode 2 : Utilisation d’une Routine LISP (plus flexible et robuste)
Pour une automatisation plus avancée ou si les Express Tools ne sont pas disponibles, une routine LISP est la solution privilégiée. Elle permet de cibler précisément les objets et d’exécuter des actions complexes.
-
Création de la Routine LISP :
Ouvrez un éditeur de texte (comme le Bloc-notes) et copiez le code suivant :;;; LISP pour mettre au premier plan tous les blocs d'un calque spécifique ;;; Commande au clavier : NIVELLEMENT_AU_FRONT ;;; Le calque cible ne doit pas être verrouillé. (defun c:NIVELLEMENT_AU_FRONT () (vl-load-com) (princ "\nSélection des blocs du calque '01_NIVELLEMENT' et mise au premier plan...") (if (setq ss_blocs (ssget "_X" '((0 . "INSERT") (8 . "01_NIVELLEMENT")))) (progn (vl-cmdf "_DRAWORDER" ss_blocs "" "_FRONT") (princ "\nOpération terminée : Blocs de nivellement mis au premier plan.") ) (princ "\nAucun bloc trouvé sur le calque '01_NIVELLEMENT'.") ) (princ) )c:NIVELLEMENT_AU_FRONT: Définit une nouvelle commande AutoCAD appeléeNIVELLEMENT_AU_FRONT.(vl-load-com): Charge la bibliothèque Visual LISP.(ssget "_X" '((0 . "INSERT") (8 . "01_NIVELLEMENT"))): Sélectionne tous les objets de type « INSERT » (blocs) sur le calque « 01_NIVELLEMENT ».(vl-cmdf "_DRAWORDER" ss_blocs "" "_FRONT"): Exécute la commandeORDRETRACE(DRAWORDER en anglais) sur la sélectionss_blocset les met au premier plan (_FRONT).
-
Chargement de la Routine :
- Enregistrez le fichier sous un nom comme
nivellement_front.lsp. - Dans AutoCAD, tapez
APPLOAD(ouCHARGAPP). - Cliquez sur « Contenu… » sous « Trousse de démarrage » pour ajouter le fichier LISP.
- Cliquez sur « Ajouter… » et sélectionnez votre fichier
.lsp. - Fermez les boîtes de dialogue. La routine sera chargée à chaque démarrage d’AutoCAD.
- Enregistrez le fichier sous un nom comme
-
Exécution :
- Tapez
NIVELLEMENT_AU_FRONTdans la ligne de commande et appuyez sur Entrée.
- Tapez
Partie 2 : Modifier l’affichage des couleurs de blocs par calque dans les fenêtres de présentation
Cette problématique est distincte de l’ordre d’affichage et n’a pas été résolue directement par les solutions de script/LISP dans la discussion. Cependant, AutoCAD offre des mécanismes natifs pour cela :
-
Remplacements d’éléments de calque dans la fenêtre (VP Overrides) :
- Dans l’onglet « Présentation », activez la fenêtre de présentation concernée.
- Ouvrez le Gestionnaire des propriétés des calques (
_LAYER). - Pour le calque
*_P_SYMB(ou tout autre calque), vous pouvez modifier la couleur spécifiquement pour la fenêtre active (colonne « Couleur VP »). - Ceci permet de définir une couleur différente pour le calque dans cette fenêtre sans affecter le modèle ou d’autres fenêtres.
-
États de calque :
- Vous pouvez créer des états de calque qui enregistrent les propriétés des calques (y compris les remplacements VP) et les appliquer à des fenêtres spécifiques. Cela permet de gérer des configurations d’affichage complexes pour différentes présentations.
Ces méthodes sont les plus courantes et les plus robustes pour gérer l’affichage des couleurs par calque dans les présentations, sans nécessiter de programmation LISP complexe pour cette tâche spécifique.