You can display a point using grdraw/grvecs, however note that the displayed vector graphics will disappear when the screen is redrawn as the user pans or zooms, therefore, if you proceed with this route, you would need to redraw the vector graphics continuously within a grread loop.
If you did want to go with vector graphics, consider the following function:;; grX - Lee Mac
;; p - [lst] WCS point at which to display 'X'
;; s - [int] size of point (in pixels)
;; c - [int] ACI colour of point
;; Returns supplied WCS point.
(defun LM:grx ( p s c / -s r q )
(setq r (/ (getvar 'viewsize) (cadr (getvar 'screensize)))
q (trans p 0 3)
-s (- s)
)
(grvecs
(list c
(list -s -s) (list s s) (list -s (1+ -s)) (list (1- s) s) (list (1+ -s) -s) (list s (1- s))
(list -s s) (list s -s) (list -s (1- s)) (list (1- s) -s) (list (1+ -s) s) (list s (1+ -s))
)
(list
(list r 0. 0. (car q))
(list 0. r 0. (cadr q))
(list 0. 0. r 0.)
(list 0. 0. 0. 1.)
)
)
p
)
Example:
(defun c:test ( / ent )
(if (and (setq ent (car (entsel "\nSelect polyline: ")))
(= "LWPOLYLINE" (cdr (assoc 0 (entget ent))))
)
(LM:grx (trans (cdr (assoc 10 (reverse (entget ent)))) ent 0) 5 2)
)
(princ)
)