乐筑天下

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

求助

[复制链接]

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-20 11:23:00 | 显示全部楼层 |阅读模式

qsw0osljh4z.png

qsw0osljh4z.png


点击Command1,启动cad,并获取鼠标在cad中点击第一点的坐标值,x坐标值显示在TEXT1中,Y坐标值显示在TEXT2中。
代码应该怎样写呢?谢谢了。
回复

使用道具 举报

23

主题

561

帖子

13

银币

中流砥柱

Rank: 25

铜币
653
发表于 2015-12-20 20:28:00 | 显示全部楼层
1 点击Command1,启动cad,看这里:
2 获取鼠标在cad中点击第一点的坐标值:
Dim pt As Variant
pt = ThisDrawing.Utility.GetPoint(, "请指定一点:")
3 x坐标值显示在TEXT1中,Y坐标值显示在TEXT2中:
text1.text=pt(0)
text2.text=pt(1)
回复

使用道具 举报

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-21 21:43:00 | 显示全部楼层

运行至"pt=ThisDrawing.Utility.GetPoint(, "请指定一点:")"的时候,CAD没有反应。
回复

使用道具 举报

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-21 22:09:00 | 显示全部楼层
zzyong00 发表于 2015-12-20 20:28

zbxiql1ag5p.png

zbxiql1ag5p.png


回复

使用道具 举报

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-22 10:05:00 | 显示全部楼层

我把"ThisDrawing"改为"acadapp.activeDocument "就可以了。不过不懂原理,请老师讲解下,或者该看什么帮助?
Dim AcadApp As AcadApplication
Private Sub Form_Load()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox ("不能运行AutoCAD ,请检查是够安装了AutoCAD")
Exit Sub
End If
End If
AcadApp.Visible = True
End Sub
Private Sub Command1_Click()
Dim pt As Variant
pt = AcadApp.activeDocument.Utility.GetPoint(, "请指定一点:")
'x坐标值显示在TEXT1中,Y坐标值显示在TEXT2中:
Text1.Text = pt(0)
Text2.Text = pt(1)
zoomall
End Sub
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2015-12-22 10:50:00 | 显示全部楼层
取点的时候要激活acad的某个文件
回复

使用道具 举报

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-22 11:23:00 | 显示全部楼层

"ThisDrawing"与"AcadApp.activeDocument"具体激活,还是没激活,怎么激活能帮忙讲一下,或者该看啥帮助文档吗?
回复

使用道具 举报

85

主题

1175

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1518
发表于 2015-12-22 11:30:00 | 显示全部楼层
thisdrawing只是程序运行时间所处的文件。activedocument是当前激活的文件。
如果就是在acad界面上执行程序,thisdrawing=activedocument,二者无区别。
明显你是执行了自定义窗口,当前系统激活的窗口已经不是acad而是你的程序了,你应该先最小化自己的窗口,激活acad,选点,然后再激活自己的窗口,这样才能顺利完成点击自己程序-->acad取点-->返回的操作。
回复

使用道具 举报

2

主题

8

帖子

2

银币

初来乍到

Rank: 1

铜币
16
发表于 2015-12-22 11:52:00 | 显示全部楼层

谢谢,现在清晰多了。
回复

使用道具 举报

23

主题

561

帖子

13

银币

中流砥柱

Rank: 25

铜币
653
发表于 2015-12-22 23:23:00 | 显示全部楼层
如果你有耐心,好好看看
Public Function ThisDrawing() As AcadDocument
    If Not (objCad Is Nothing) Then Set ThisDrawing = objCad.ActiveDocument
End Function
以上函数,使得vb6与VBA代码通用!!!
AppActivate objCad.Caption
这条语句,可以在取点的时候要激活acad当前的document
这句放在 pt=ThisDrawing.Utility.GetPoint(, "请指定一点:")前面!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:18 , Processed in 0.375390 second(s), 75 queries .

© 2020-2025 乐筑天下

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