获取光标坐标
大家好,我正在用VBA编写一个例程,该例程需要经常监视当前光标坐标,而用户无需选择任何点。就像状态栏左下角显示的坐标一样,我似乎无法通过编程方式访问它。我搜索了与光标位置相关的ACAD函数,但没有找到任何函数。如果我转向Windows API,我肯定会有一个解决方案,但我需要的是ACAD坐标中的位置,而不是像素。。。任何关于如何在VBA中实现这一点的想法(或者LISP,我不知道,但肯定会找到一种使用方法…) 在Lisp中,它是“grread”函数。 (cadr (grread t 15 0)) 谢谢你们俩的提示。但现在还有另一个问题:如何处理VBA的返回值?如果我没有弄错的话,从VBA调用LISP例程的唯一方法是SendCommand,它似乎是一个单向函数。
我是否坚持用LISP编写整个例程?这将是一个小问题,因为当我已经在VBA中解决了所有例程(除了光标坐标的事情…)时,我需要一些时间来掌握这种语言的工作原理 为什么必须使用(grread t 15 0),使用(grread t)返回相同的值。
(grread])
所有关键点仅在轨迹=零时有效。
下午好AlanJt
我正在学习GRREAD和GRDRAW命令,但我被卡住了。
以您的示例为基础。。。。。我有一个圆(pt1),线从四边形(pt3)和四边形(pt4)到用户选择的给定点(pt2)。
当用户选择pt2时,有没有办法显示2条重影线?当我尝试你的例子时,它只是把虚线从pt3和pt4放到pt1。甚至可以实时捕获pt2吗。。。。一、 E.我的光标位置?我的最终结果是,当用户选择第二个点作为目标和所有三个对象的旋转时,显示圆和两条虚线。也许我会从这些点上画出实际的线。但是,当我移动光标时,如何使每行的端点发生变化?
谢谢你的帮助,
迈克在达拉斯
(progn
(setq pt1 (getpoint "\nSelect 1st point"))
(command "circle" pt1 4.0)
(setq pt2 (getpoint pt1 "\nSelect 2nd point"))
; (princ "\nSlect 2nd point")
; (setq pt2 (cadr (grread t 15 0)))
(setq ang (angle pt1 pt2))
(setq pt3 (polar pt1 (+ ang (* pi 1.5)) 4.0))
(grdraw pt3 pt2 255 3)
; (command "line" pt1 pt3 "");test point
(command "line" pt3 pt2 "")
(setq pt4 (polar pt1 (- ang (* pi 1.5)) 4.0))
(grdraw pt4 pt2 255 3)
; (command "line" pt1 pt4 "");test point
(command "line" pt4 pt2 "")
);end progn 我会看一看DynDraw计划,可能会提供一些见解。 (progn
(if
(setq pt1 (getpoint "\nSelect 1st point"))
(progn
(command "circle" pt1 4.0)
(while
(not (= (car (setq pt2 (grread t 15 0))) 3))
(redraw)
(if
(listp (setq pt2 (cadr pt2)))
(progn
(setq ang (angle pt1 pt2)
pt3 (polar pt1 (+ ang (* pi 1.5)) 4.0)
pt4 (polar pt1 (- ang (* pi 1.5)) 4.0))
(grdraw pt3 pt2 255 3)
(grdraw pt4 pt2 255 3)
)
)
)
)
)
(redraw)
(command "line" pt3 (cadr pt2) "")
(command "line" pt4 (cadr pt2) "")
)
早上好,Jdiala,
我的朋友,这是一件美丽的事情。很有魅力!
谢谢你的帮助。
迈克
页:
[1]