Résoudre l'estompage des hachures XREF et l'alias DISTANCE dans AutoCAD 2015

Comment résoudre les problèmes d’estompage des hachures dans les XREFs et le comportement inattendu de la commande DISTANCE (ou son alias) dans AutoCAD 2015 ?

Dans AutoCAD 2015, deux problèmes fréquents peuvent survenir : l’estompage des hachures dans les références externes (XREFs) ne fonctionne pas correctement, et la commande DISTANCE (ou son alias) ne se comporte plus comme attendu.


Problème 1 : Estompage des hachures dans les XREFs

Diagnostic : Lorsque la variable système XDWGFADECTL (contrôle de l’estompage des XREFs) est définie sur une valeur supérieure à 0, les hachures contenues dans les XREFs ne sont pas estompées, contrairement aux autres objets. Il s’agit d’un bug confirmé dans AutoCAD 2015.

Solutions de contournement :

  1. Appliquer la transparence aux calques dans l’espace objet :

    • Au lieu de s’appuyer sur l’estompage global des XREFs, définissez une transparence directement sur les calques des hachures (ou de l’ensemble de la XREF) dans le dessin source de la XREF, ou via le Gestionnaire des calques dans le dessin hôte.
    • Assurez-vous que cette transparence est appliquée dans l’espace objet (modèle) et non uniquement dans les fenêtres d’impression, car cela pourrait ne pas affecter l’affichage en temps réel.
  2. Utiliser la délimitation de XREF (commande XCLIP) :

    • Si vous délimitez (clippez) la référence externe à l’aide de la commande XCLIP, l’estompage des hachures à l’intérieur de la zone délimitée fonctionnera correctement.
    • Cette solution est particulièrement utile si vous n’avez besoin d’afficher qu’une partie de la XREF.
  3. Attendre un Service Pack : Il était recommandé à l’époque d’attendre une mise à jour officielle d’Autodesk pour corriger ce bug.


Problème 2 : Comportement de la commande DISTANCE et de son alias

Diagnostic : Dans AutoCAD 2015, le comportement de la commande DISTANCE a été modifié, et l’ancienne commande est désormais accessible sous le nom DIST. La nouvelle commande MEASUREGEOM peut également prêter à confusion, entraînant des résultats immédiats sans permettre la sélection de points.

Solutions et Bonnes Pratiques :

  1. Utiliser la commande DIST :

    • L’ancienne commande DISTANCE est maintenant accessible directement en tapant DIST dans la ligne de commande. Vous pouvez mettre à jour votre alias personnalisé (par exemple, DI ou D) pour qu’il pointe vers DIST dans votre fichier ACAD.PGP.
  2. Utiliser un LISP personnalisé pour DIST (recommandé pour plus de flexibilité) :

    • Un LISP permet de personnaliser la commande DIST pour inclure des fonctionnalités supplémentaires, comme la sélection d’objets (lignes, polylignes, arcs, etc.) pour mesurer leur longueur totale ou la longueur d’un segment, ce qui n’est pas possible avec la commande DIST native.

    • Procédure :

      • Création du fichier LISP : Copiez le code LISP ci-dessous dans un éditeur de texte (comme le Bloc-notes) et enregistrez-le avec l’extension .LSP (ex: mon_dist.lsp).
      • Chargement du LISP : Dans AutoCAD, utilisez la commande APPLOAD (ou _APPLOAD). Naviguez jusqu’à votre fichier .LSP et chargez-le. Pour un chargement automatique à chaque démarrage d’AutoCAD, ajoutez-le au « Jeu de démarrage » dans la boîte de dialogue APPLOAD.
      • Utilisation : Une fois le LISP chargé, tapez DIST (ou votre alias personnalisé D si vous l’avez configuré pour pointer vers DIST) dans la ligne de commande. Vous aurez alors l’option de spécifier deux points ou d’appuyer sur Entrée pour sélectionner un objet.
    • Code LISP (mon_dist.lsp) :

      ;; Lisp proposé par "(gile)" via CadXP
      (defun c:DIST (/ p1 p2 ent obj tot par)
        (vl-load-com)
        (if (setq p1
                    (getpoint
                      "\nSpécifiez le premier point ou <Sélectionnez un objet>: "
                    )
            )
          (progn
            (while
              (not (setq p2 (getpoint p1 "Spécifiez le deuxième point: ")))
            )
            (princ (strcat
                     "\nDistance : "
                     (rtos (distance p1 p2))
                   )
            )
          )
          (if  (and (setq ent (entsel))
                    (not (vl-catch-all-error-p
                           (setq p2
                                 (vl-catch-all-apply
                                   'vlax-curve-getEndParam
                                   (list (setq obj (vlax-ename->vla-object (car ent))))
                                 )
                           )
                         )
                    )
               )
            (progn
              (setq tot (vlax-curve-getDistAtParam obj p2))
              (if (wcmatch (vla-get-ObjectName obj) "*Polyline")
                (progn
                  (if  (= (vla-get-ObjectName obj) "AcDb2dPolyline")
                    (setq p1 (vlax-curve-getClosestPointToProjection
                               obj
                               (trans (cadr ent) 1 0)
                               (trans '(0 0 1) 2 0 T)
                             )
                    )
                    (setq p1 (trans (osnap (cadr ent) "_nea") 1 0))
                  )
                  (setq par (vlax-curve-getParamAtPoint obj p1))
                  (princ
                    (strcat
                      "\nDistance totale : "
                      (rtos tot)
                      " Segment sélectionné : "
                      (rtos
                        (- (vlax-curve-getDistAtParam obj (1+ (fix par)))
                           (vlax-curve-getDistAtParam obj (fix par))
                        )
                      )
                    )
                  )
                )
                (princ (strcat "\nDistance : " (rtos tot)))
              )
            )
            (princ "\nEntité non valide.")
          )
        )
        (princ)
      )
      

Ces solutions vous permettront de retrouver une expérience de travail fluide avec l’estompage des XREFs et la commande de mesure dans AutoCAD 2015.