明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2476|回复: 6

[求助]CAD中利用VBA获得当前光标座标

[复制链接]
发表于 2007-8-17 10:24:00 | 显示全部楼层 |阅读模式
请各位高手帮忙!现在正在做一个VBA小程序,需要动态获得光标当前座标,在明经论坛中只有一个相关贴子,但是没有看懂。链接为:http://bbs.mjtd.com/forum.php?mod=viewthread&tid=54166 是[侠之大者]回答的。请问VBA中有没有方法可以像LISP中
设备访问函数(grread [track] [allkeys [curtype]])AutoCAD 的任何一种输入设备中读取数值。

能动态地返回光标所在位置的坐标,而不必等待按下回车键、空格键或鼠标按钮才返回光标位置。或者在VBA中能够调用LISP中的此函数?

盼各位高手指点!跪求

 楼主| 发表于 2007-8-19 19:17:00 | 显示全部楼层
是不是问题没有说清楚?!怎么没有人发表意见呢?!如果不能请问题VBA中当光标在模型空间时能不能触发类似MOUSEMOVE事件之?也看到相关的帖子说用API,可是API也只能获得MOUSE在屏幕座标系下的位置,怎么转换呢?!盼有过类似开发经验的大哥指点!
发表于 2007-8-20 10:20:00 | 显示全部楼层

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

 楼主| 发表于 2007-8-20 11:45:00 | 显示全部楼层

我看了VLAX相关的这两个帖子

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=9328
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)"

 楼主| 发表于 2007-8-20 11:50:00 | 显示全部楼层

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

不知道如何解决!

谢谢!

发表于 2007-8-20 12:30:00 | 显示全部楼层

Try to run (vl-load-com) first

 楼主| 发表于 2007-8-21 13:41:00 | 显示全部楼层
收到!成功了,非常感谢谢!就是错误处理比较多,还容易导致CAD崩溃。看来我对问题的解决办法描述的不好,还要换些别的方法。有问题再向大家请教!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 12:43 , Processed in 0.185594 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表