Calculer la longueur cumulée de polylignes et autres entités dans AutoCAD

Comment obtenir la longueur cumulée de plusieurs polylignes (et autres entités linéaires) sélectionnées dans AutoCAD 2004 ?

Pour obtenir la longueur cumulée de plusieurs polylignes, lignes, arcs ou autres entités dans AutoCAD 2004, la méthode la plus efficace est d’utiliser une routine AutoLISP personnalisée, car cette version d’AutoCAD ne dispose pas de commande native pour cette fonctionnalité sur une sélection multiple.

Voici la procédure détaillée pour utiliser la routine LISP fournie :

  1. PRÉPARATION DE LA ROUTINE LISP

    • Copiez le code LISP ci-dessous dans un éditeur de texte (comme le Bloc-notes).
    • Enregistrez le fichier avec une extension .lsp (par exemple, total_length.lsp) dans un dossier facilement accessible (par exemple, votre dossier de support AutoCAD).
    (defun c:tl (/ ss tl n ent itm obj l)
      (setq
        ss (ssget) ; Sélectionne les objets
        tl 0      ; Initialise la longueur totale
        n (1- (sslength ss)) ; Index pour parcourir la sélection
      )
      (while (>= n 0)
        (setq ent (entget (setq itm (ssname ss n)))
              obj (cdr (assoc 0 ent))
              l (cond
                  ((= obj "line")
                   (distance (cdr (assoc 10 ent)) (cdr (assoc 11 ent)))
                  )
                  ((= obj "arc")
                   (* (cdr (assoc 40 ent))
                      (if (minusp (setq l (- (cdr (assoc 51 ent))
                                             (cdr (assoc 50 ent))))) 
                          (+ pi pi l)
                          l
                      )
                   )
                  )
                  ((or (= obj "circle")
                       (= obj "spline")
                       (= obj "polyline")
                       (= obj "lwpolyline")
                       (= obj "ellipse"))
                   (vl-cmdf "_.area" "_o" itm) ; Utilise la commande AREA pour obtenir le périmètre
                   (getvar "perimeter")
                  )
                  (t 0) ; Pour les autres types d'objets, la longueur est 0
                )
              tl (+ tl l)
              n (1- n)
        )
      )
      (alert (strcat "La longueur totale est : " (rtos tl))) ; Affiche le résultat
      (princ)
    )
    
  2. CHARGEMENT DE LA ROUTINE LISP DANS AUTOCAD

    • Dans AutoCAD 2004, tapez APPLOAD (ou _APPLOAD) dans la ligne de commande et appuyez sur Entrée.
    • Dans la boîte de dialogue « Charger/Décharger des applications », naviguez jusqu’à l’emplacement où vous avez enregistré total_length.lsp.
    • Sélectionnez le fichier et cliquez sur « Charger ».
    • Pour que la routine soit chargée automatiquement à chaque démarrage d’AutoCAD, ajoutez-la à la « Trousse de démarrage » (Startup Suite) en cliquant sur le bouton « Contenu… » et en ajoutant le fichier.
  3. UTILISATION DE LA COMMANDE LISP

    • Une fois la routine chargée, tapez TL (pour « Total Length », le nom de la commande défini dans le LISP) dans la ligne de commande et appuyez sur Entrée.
    • AutoCAD vous invitera à « Sélectionner les objets ». Sélectionnez toutes les polylignes, lignes, arcs, cercles, splines ou ellipses dont vous souhaitez calculer la longueur cumulée.
    • Appuyez sur Entrée une fois la sélection terminée.
    • Une boîte de dialogue « Alerte » s’affichera, indiquant la longueur totale calculée.

Explication de la routine LISP :
Cette routine itère sur chaque entité sélectionnée. Pour les LINE et ARC, elle calcule la longueur directement à partir de leurs données d’entité. Pour les POLYLINE, LWPOLYLINE, CIRCLE, SPLINE, ELLIPSE, elle utilise une astuce : elle exécute la commande AREA d’AutoCAD avec l’option « Objet » (_o) pour l’entité sélectionnée, puis récupère la valeur du périmètre via la variable système PERIMETER. C’est une méthode robuste pour obtenir la longueur ou le périmètre de ces entités. Elle cumule ensuite toutes ces longueurs et affiche le résultat final.

Bonnes pratiques :

  • Assurez-vous que les unités de votre dessin sont correctement configurées (par exemple, mètres, millimètres) avant d’utiliser la routine, car le résultat sera dans les unités du dessin.
  • Pour des vérifications ponctuelles d’une seule entité, la commande LIST (ou _LIST) peut être utilisée pour afficher les propriétés détaillées, y compris la longueur ou le périmètre.