There's a superfuous statement in the code I posted: as p1 lies on the plane, its 'caddr' will always be equal to 0. :loco:
So, here's a simple way
EDIT: wrong code, see Reply #30
(defun DistToPlane3Pts (pt p1 p2 p3)
(abs (caddr (trans pt 0 (gc:CrossProduct (mapcar '- p2 p1) (mapcar '- p3 p1)))))
)