AutoCAD: Basculer la couleur de fond entre noir et blanc via LISP

J’aimerais créer un bouton ou une commande LISP pour alterner rapidement la couleur de fond de l’espace objet dans AutoCAD, passant du blanc au noir et inversement. Je n’ai pas trouvé de variable système dédiée à cette fonction.

Bien qu’il n’existe pas de variable système directe de type ‹ toggle › pour la couleur de fond de l’espace objet dans AutoCAD, une routine LISP simple permet de réaliser cette bascule efficacement.

  1. Créer la routine LISP : Ouvrez un éditeur de texte (comme le Bloc-notes) et copiez-y le code suivant. Enregistrez le fichier sous BASCULEFOND.LSP dans un dossier de support AutoCAD (par exemple, C:\Users\VotreNom\AppData\Roaming\Autodesk\AutoCAD 20xx\Rxx.x\fra\Support).
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;; Pour personnaliser les couleurs :
    ;; La valeur est calculée avec la formule :
    ;; Couleur=Rouge+(Vert×256)+(Bleu×256²)
    ;; Où Rouge, Vert et Bleu sont des valeurs comprises entre 0 et 255.
    ;; Exemple pour un gris (215,215,215) : 215 + (215 x 256) + (215 x 256)² = 14145495
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (defun c:FondBlanc()
    (vl-load-com)
    (setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
    (setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
    (vla-put-GraphicsWinModelBackgrndColor disp 16777215)
    (vla-put-GraphicsWinLayoutBackgrndColor disp 16777215)
    (vla-put-LayoutCrosshairColor disp 0)
    (vla-put-ModelCrosshairColor disp 0)
    (vla-put-AutoTrackingVecColor disp 0)
    (vla-put-AutoSnapMarkerColor drafting 6)
    (princ)
    )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (defun c:FondNoir ()
    (vl-load-com)
    (setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
    (setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
    (vla-put-GraphicsWinModelBackgrndColor disp 0)
    (vla-put-GraphicsWinLayoutBackgrndColor disp 0)
    (vla-put-LayoutCrosshairColor disp 16777215)
    (vla-put-ModelCrosshairColor disp 16777215)
    (vla-put-AutoTrackingVecColor disp 16777215)
    (vla-put-AutoSnapMarkerColor drafting 2)
    (princ)
    )
    
    ; Background toggle between black and white
    (defun c:basculefond ()
    (vl-load-com)
    (setq disp (vla-get-display (vla-get-preferences (vlax-get-acad-object))))
    (setq drafting (vla-get-drafting (vla-get-preferences (vlax-get-acad-object))))
    (if (= (vlax-variant-value
    (vlax-variant-change-type
    (vla-get-graphicswinmodelbackgrndcolor disp)
    vlax-vblong
    )
    )
    0
    )
    (c:FondBlanc)
    (c:FondNoir)
    )
    (princ)
    )
    
    Note de l’expert : Ce code LISP avancé utilise les interfaces ActiveX pour contrôler non seulement la couleur de fond de l’espace objet et papier, mais aussi les couleurs du réticule et des marqueurs AutoSnap pour une cohérence visuelle optimale. Les fonctions séparées FondBlanc et FondNoir permettent également un contrôle manuel.
  2. Charger le LISP au démarrage :
    • Dans AutoCAD, tapez APPLOAD et validez avec Entrée.
    • Dans la boîte de dialogue « Charger/Décharger des applications », cliquez sur le bouton « Contenu… » sous la section « Groupes de démarrage ».
    • Cliquez sur « Ajouter… », naviguez jusqu’à votre fichier BASCULEFOND.LSP et sélectionnez-le.
    • Cliquez sur « Ouvrir », puis « Fermer » deux fois pour valider les modifications. Le LISP sera désormais chargé automatiquement à chaque démarrage d’AutoCAD.
  3. Utiliser la commande : Après le chargement, tapez simplement BASCULEFOND dans la ligne de commande et appuyez sur Entrée. La couleur de fond de votre espace objet alternera instantanément entre noir et blanc.
  4. Créer un bouton ou une macro : Pour une utilisation plus rapide, vous pouvez intégrer cette commande dans une macro de bouton via l’éditeur CUI (Personnaliser l’Interface Utilisateur) avec la chaîne de commande suivante : ^C^C_basculefond. Cela vous permettra de basculer la couleur d’un simple clic.