Not sure why the code was posted that way 2 typos.
(defun c:ellpl ( / lwpoly obj oldsnap num inc dist plst pt)
(defun LWPoly (lst cls)
(entmakex (append (list (cons 0 "LWPOLYLINE")
(cons 100 "AcDbEntity")
(cons 100 "AcDbPolyline")
(cons 90 (length lst))
(cons 70 cls))
(mapcar (function (lambda (p) (cons 10 p))) lst))))
(setq obj (vlax-ename->vla-object (car (entsel "\nPick ellipse "))))
(setq oldsnap (getvar 'osmode))
(setvar 'osmode 0)
(setq num 100)
(setq inc (/ (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj)) num)
dist 0.0
plst '()
)
(repeat (+ num 1)
(setq pt (vlax-curve-getpointatdist obj dist))
(setq plst (cons pt plst))
(setq dist (+ dist Inc))
)
(LWPoly plst 1)
(setvar 'osmode oldsnap )
(princ)
)