; Total longueur des lignes sélectionnées

(defun c:TotalLgLignes (/ ObjSelection
			  NombreObjetDansLaSelection
			  Index
			  ObjetDansLaSelection
			  TotalLongueur
		       )

  ; Question
  (princ "\nSélection des objets : ")
  ; Sélection des objets
  (setq ObjSelection (ssget))
  ; Si la sélection contient des objet alors on continue
  (if ObjSelection
    (progn
      ; Mémorise le nombre d'objet dans la sélection
      (setq NombreObjetDansLaSelection (sslength ObjSelection))
      ; Définit une variable index pour récupérer l'objet dans le jeu de sélection
      ; le premier objet dans le jeu de sélection est positionné à l'index 0
      (setq Index 0)
      ; Initialise une variable qui mémorisera et cumulera la distance de chaque ligne
      (setq TotalLongueur 0)

      ; créé une boucle de répétition sur le nombre d'objet contenu dans le jeu de sélection
      (repeat NombreObjetDansLaSelection
        ; Récupère le nom de l'objet positionné sur l'index
	(setq ObjetDansLaSelection (entget (ssname ObjSelection Index)))
        ; Si le nom de l'objet est égale à "LINE" alors on récupère la longueur de la ligne
	(if (= (cdr (assoc 0 ObjetDansLaSelection)) "LINE")
	  ; la longueur de la ligne est égale à la distance entre son point de départ et son point de fin
	  (setq	TotalLongueur
		 (+ TotalLongueur
		    (distance
		      ; Point de départ de la ligne
		      (cdr (assoc 10 ObjetDansLaSelection))
		      ; point de fin de la ligne
		      (cdr (assoc 11 ObjetDansLaSelection))
		    )
		 )
	  )
	)
      ; Incrémente la valeur de l'index à +1 pour passer à l'objet suivant du jeu de sélection
	(setq Index (1+ Index))
      ; fin du Repeat
      )
      ; Affiche, dans la zone de la ligne de commande, la longueur totale des lignes sélectionnées
      (princ (strcat "\nTotal longueur des "
		     (itoa index)
		     " lignes = "
		     (rtos TotalLongueur 2 (getvar "luprec"))
	     )
      )
    ; fin du Progn
    )
    ; affiche une boite d'alerte si auncune sélection n'a été sélectionné
    (alert "\nVous n'avez sélectionné aucun objet.")

; fin du IF
  )
  (princ)
; fin du programme
)