乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 153|回复: 9

vba能不能获得当前鼠标精确位置?新设想,高手请看看.

[复制链接]

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-17 19:00:00 | 显示全部楼层 |阅读模式
以前曾经问过这个问题,回答是vba做不到这一点.那么能不能通过其他方式获得呢?
我注意到acad窗口左下角能实时显示当前鼠标坐标,vba能不能取得这个值呢?请高手们研讨一下.
回复

使用道具 举报

cag

87

主题

265

帖子

10

银币

中流砥柱

Rank: 25

铜币
613
发表于 2004-3-18 20:06:00 | 显示全部楼层
好象以前有位大虾用VB做了个DLL供VBA调用,也就是说能实现,不过速度太慢,没有什么实用价值吧,acadx.arx还行,不过第一次加载时,速度有些慢了,也感觉不爽,哪位高手能用VBA做个模块供调用就不错了.
回复

使用道具 举报

12

主题

135

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 2004-3-21 18:50:00 | 显示全部楼层
我使用了一个方法,现将代码拿来大家研究一下。
一下程如果使用lisp来调用,没有问题,可是使用vba来调用速度快了就会报错,还请大家多指点。
(defun c:drd()
         (while (not (= (substr (setq aq (print(dd))) 2 1)         "G3"))                         
                         )
         (print)
         )
(defun dd()
         (setq a (grread t))
         (if (OR (= 3 (car a)) (= 5 (car a)))
                         (setq str (strcat "("
                                                         (itoa (car a))
                                                         " ("
                                                         (rtos (caadr a) 2 4)
                                                         " "
                                                         (rtos (cadadr a) 2 4)
                                                         " "
                                                         (rtos (cadr (cdadr a)) 2 4)
                                                         " ))"
                                                 )
                         )
         )
         (IF (OR (= 2 (car a)) (= 11 (car a)))
                         (setq str (strcat "("
                                                         (itoa (car a))
                                                         " "
                                                         (itoa (cadr a))
                                                         ")"
                                                 )
                         )
         )
                         str
        )
以上lisp程序先加载一下。
Sub dfs()
Dim Vl As New Class
Dim g
g = Vl.EvalLispExpression("(dd)")
Do While Mid(g, 2, 1)  "3"
                         g = Vl.EvalLispExpression("(dd)")
                         ThisDrawing.Utility.Prompt g & Chr(10)
Loop
End Sub
以上的vba程序需要加载mccad的 VLAX.CLS
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-21 21:41:00 | 显示全部楼层
不懂lisp,能不能提供一个接口供vb调用?
回复

使用道具 举报

12

主题

135

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 2004-3-21 22:09:00 | 显示全部楼层
底下我已经写了vba程序呀?
Sub dfs()
Dim Vl As New Class
Dim g
g = Vl.EvalLispExpression("(dd)")
Do While Mid(g, 2, 1)  "3"
                         g = Vl.EvalLispExpression("(dd)")
                         ThisDrawing.Utility.Prompt g & Chr(10)
Loop
End Sub
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2004-3-21 23:48:00 | 显示全部楼层
哦,太谢谢了.回头试试看.
"以上的vba程序需要加载mccad的 VLAX.CLS",能不能在vba中加入这功能?
回复

使用道具 举报

12

主题

135

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 2004-3-22 08:48:00 | 显示全部楼层
你可以在vba中,直接将VLAX.CLS导入。
回复

使用道具 举报

2

主题

9

帖子

3

银币

初来乍到

Rank: 1

铜币
17
发表于 2004-3-26 08:15:00 | 显示全部楼层
可不可以让Object ARX 也能够调用?
回复

使用道具 举报

12

主题

135

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
183
发表于 2004-3-26 22:31:00 | 显示全部楼层
ARX 功能强大有没有更简单的方法?
回复

使用道具 举报

1

主题

9

帖子

4

银币

初来乍到

Rank: 1

铜币
13
发表于 2004-3-31 18:42:00 | 显示全部楼层
请问一下哪里能找到mccad的 VLAX.CLS
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 15:10 , Processed in 0.474456 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表