; test for (WcsPt<->ScreenPt)
(defun C:test
( / str col vec p s g e
)
(setq p
(WcsPt
<->ScreenPt p T
)) ; convert to Screen Point (princ "\nTrapped in (grread) loop - please scroll, pan and hover over some object.") "\nNow I'll just put a bunch of rows..."
"\n...................................."
"\n...................................."
"\n...................................."
"\n...................................."
"\n..................................:)"
)
)
)
)
"\nBTW you could use this technique"
"\nas a modeless dialog substitute"
"\nwithin a reactor."
"\n\nThis is awesome!"
)
)
)
)
)
(if vec
(LM:DisplayGrText
(WcsPt
<->ScreenPt p
nil) vec col
15 -31)) )
); and
); while
s
); progn
); and
); defun
; Translation between WCS point and Pixel - vice versa
; p - point [pixel or WCS]
; b - boolean [T/nil] | T = WcsPt->ScreenPt, nil = ScreenPt->WcsPt
(defun WcsPt
<->ScreenPt
( p b
/ vsz scz vct pixelsz
) ; Vovka ; https://www.theswamp.org/index.php?topic=53702.0
); if
); defun
;; Display GrText - Lee Mac
;; pnt - cursor point in UCS
;; vec - GrText vector list
;; col - Text Colour (ACI Colour)
;; xof - x-offset from cursor in pixels
;; yof - y-offset from cursor in pixels
(defun LM:DisplayGrText
( pnt vec col xof yof
/ scl
) )
(list scl
0.0 0.0 (+ (car pnt
) (* xof scl
))) (list 0.0 scl
0.0 (+ (cadr pnt
) (* yof scl
))) '(0.0 0.0 0.0 1.0)
)
)
)