(defun c:SUPPRCOURTES ( / maxLen ss i ent len count)
  ;; Charge les extensions Visual LISP nécessaires
  (vl-load-com)
  
  ;; Demande à l'utilisateur de spécifier la longueur maximale
  (setq maxLen (getdist "\nSpécifiez la longueur maximale des entités à supprimer : "))

  (if maxLen
    (progn
      ;; Sélectionne automatiquement toutes les entités du dessin ayant une géométrie mesurable
      (setq ss (ssget "X" '((0 . "LINE,POLYLINE,LWPOLYLINE,ARC,CIRCLE,SPLINE,ELLIPSE"))))
      (setq count 0)

      (if ss
        (progn
          (setq i 0)
          ;; Parcourt chaque entité de la sélection
          (while (< i (sslength ss))
            (setq ent (ssname ss i))

            ;; Calcule la longueur totale de l'entité
            (setq len (vl-catch-all-apply 
                        'vlax-curve-getDistAtParam 
                        (list ent (vlax-curve-getEndParam ent))
                      )
            )

            ;; Vérifie s'il n'y a pas d'erreur de calcul et si la longueur est INFÉRIEURE OU ÉGALE au seuil
            (if (and (not (vl-catch-all-error-p len))
                     (<= len maxLen))
              (progn
                ;; Supprime l'entité
                (entdel ent)
                (setq count (1+ count))
              )
            )
            (setq i (1+ i))
          )
          ;; Affiche le résultat final
          (princ (strcat "\nTerminé. " (itoa count) " petite(s) entité(s) supprimée(s)."))
        )
        (princ "\nAucune entité géométrique trouvée dans le dessin.")
      )
    )
    (princ "\nAction annulée.")
  )
  (princ)
)

(princ "\nScript mis à jour chargé. Tapez 'SUPPRCOURTES' pour lancer la commande.")
(princ)