[求助]CAD中利用VBA获得当前光标座标
请各位高手帮忙!现在正在做一个VBA小程序,需要动态获得光标当前座标,在乐筑天下论坛中只有一个相关贴子,但是没有看懂。链接为: 是[侠之大者]回答的。请问VBA中有没有方法可以像LISP中 设备访问函数(grread ])从的任何一种输入设备中读取数值。能动态地返回光标所在位置的坐标,而不必等待按下回车键、空格键或鼠标按钮才返回光标位置。或者在VBA中能够调用LISP中的此函数?盼各位高手指点!跪求
是不是问题没有说清楚?!怎么没有人发表意见呢?!如果不能请问题VBA中当光标在模型空间时能不能触发类似MOUSEMOVE事件之?也看到相关的帖子说用API,可是API也只能获得MOUSE在屏幕座标系下的位置,怎么转换呢?!盼有过类似开发经验的大哥指点! Import VLAX.cls
Sub TEST()
Dim VL As New VLAX
Dim pt As Variant
pt = VL.EvalLispExpression("(VLAX-3D-POINT (CADR (GRREAD t))) ")
MsgBox pt(0) & ", " & pt(1) & ", " & pt(2)
End Sub
我看了VLAX相关的这两个帖子
http://www.mccad.net/bbs/Archive_view.asp?boardID=4&ID=18014
导入了VLAX.CLS类,
Dim VL As New VLAX
Private Sub Class_Initialize()
If Left(ThisDrawing.Application.Version, 2) = "15" Then
Set VL = ThisDrawing.Application.GetInterfaceObject("VL.Application.1")
ElseIf Left(ThisDrawing.Application.Version, 2) = "16" Then
Set VL = ThisDrawing.Application.GetInterfaceObject("VL.Application.16")
End If
Set VLF = VL.ActiveDocument.Functions
End Sub
运行到此处总是跳转到错误处理语句?!不知道如何解决。我用的是CAD2004中文版,监视时总显示
ThisDrawing.Application.Version="16.0s (LMS Tech)"
Sub TEST()
Dim VL As New VLAX
Dim pt As Variant
pt = VL.EvalLispExpression("(VLAX-3D-POINT (CADR (GRREAD t))) ")
MsgBox pt(0) & ", " & pt(1) & ", " & pt(2)
End Sub
调用些程序总是出错,依然是Dim VL As New VLAX的问题,错误号:-2147220999
不知道如何解决!
谢谢!
Try to run (vl-load-com) first
收到!成功了,非常感谢谢!就是错误处理比较多,还容易导致CAD崩溃。看来我对问题的解决办法描述的不好,还要换些别的方法。有问题再向大家请教!
页:
[1]