xdrx_pointmonitor用法疑问
本帖最后由 pxt2015 于 2020-12-19 11:03 编辑(defun c:t ()
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq cvport (getvar "cvport"))
(xdrx_pointmonitor "callback2")
(setq pt (getpoint "\nPT:"))
(xdrx_pointmonitor)
(setvar "osmode" os)
(princ)
)
(defun callback2 (dynpt)
(redraw)
(print dynpt)
(dim-pt dynpt)
)
(defun dim-pt (P0 / KHigh ANG LST)
(setq k NIL)
(setq High (* (/ (getvar "viewsize") 30) 0.5 (sqrt 2)))
(setq ANG (list 1.25 1.75 0.25 0.75)
lst (mapcar '(lambda (n) (polar p0 (* n PI) High)) ANG)
)
(if k
(progn (command "line" (CAR LST) (CADDR LST) "")
(command "line" (CADR LST) (LAST LST) "")
)
(progn
(redraw)
(grdraw (CAR LST) (CADDR LST) 1 1)
(grdraw (CADR LST) (LAST LST) 1 1)
)
)
)
以上代码,当光标从窗口2移动到窗口3时,无法自动激活窗口3,请问如何解决?
鼠标移动过去,但没激活窗口啊 本帖最后由 pxt2015 于 2020-12-19 07:56 编辑
难点就在这里啊,当鼠标移到左边窗口,光标还在CAD窗口但不是当前激活的窗口,xdrx_pointmonitor不能取得鼠标坐标。如果能取得坐标,判断实时监视到的坐标是否在右边窗口外,可以用系统变量cvport激活左边窗口。
可以使用xdrx_system_cursorpos 获取当前鼠标的屏幕坐标
不过 api 中没有 获取 AcDbViewportTableRecord 边框屏幕坐标方法 pxt2015 发表于 2020-12-19 07:50
难点就在这里啊,当鼠标移到左边窗口,光标还在CAD窗口但不是当前激活的窗口,xdrx_pointmonitor不能取得鼠 ...
可以用监视器啊 人丑就要多读
页:
[1]