Mark,
This will make the points on the screen to be elev 0, but doesn't change the database, have to check points afterwards. Not what your looking for, and not the intent of the lisp, but maybe could use something in it??
; NOZ.LSP
; written 3-13-92 by Scott Yingling
; This routine strips out the Z coordinate from end points of lines.
; Lines having different Z's can not be fillet'd.
(defun c:NOZ ()
(setvar "CMDECHO" 0)
(setq ENTLIST (ssget)
L (sslength ENTLIST)
LINE-NO (- L L)
) ;end setq
(while (/= LINE-NO L)
(setq ENT1 (ssname ENTLIST LINE-NO)
ENT2 (entget ENT1)
NEWZ 0.0
END1 (assoc 10 ENT2)
END2 (assoc 11 ENT2)
XYZ1 (cdr END1)
E1X (car XYZ1)
E1Y (cadr XYZ1)
XYZ2 (cdr END2)
E2X (car XYZ2)
E2Y (cadr XYZ2)
NEW1 (cons 10 (list E1X E1Y NEWZ))
NEW2 (cons 11 (list E2X E2Y NEWZ))
SWAP-IT1 (subst NEW1 END1 ENT2)
SWAP-IT2 (subst NEW2 END2 SWAP-IT1)
) ; end setq
(entmod SWAP-IT2)
(setq LINE-NO (+ LINE-NO 1))
) ; end while
(setvar "CMDECHO" 1)
)