(defun c:arc2lines (/ ent nb obj n dist lst)

  (vl-load-com)

  (if (and (setq ent (car (entsel "\nSélectionnez un arc: ")))

           (= (cdr (assoc 0 (entget ent))) "ARC")

      )

    (progn

      (initget 7)

      (setq nb   (getint "\nEntrez le nombre de segments: ")

            obj  (vlax-ename->vla-object ent)

            dist (/ (vlax-curve-getDistAtParam

                      obj

                      (vlax-curve-getEndParam obj)

                    )

                    nb

                 )

            lst (list (vlax-curve-getStartPoint obj))

            n    0

      )

      (repeat nb

        (setq

          lst

           (cons

             (vlax-curve-getPointAtDist obj (* dist (setq n (1+ n))))

             lst

           )

        )

      )

      (while (cdr lst)

        (entmake (list '(0 . "LINE")

                       (cons 10 (car lst))

                       (cons 11 (cadr lst))

                 )

        )

        (setq lst (cdr lst))

      )

      (entdel ent)

    )

    (prompt "\nEntité non valide.")

  )

  (princ)

) 