如何用VBA编制出在AUTOCAD上交互式用鼠标选取对象?

shadow2 2003-11-24 01:48:11
请教高手:
如何用VBA编制出在AUTOCAD上交互式用鼠标选取对象,然后将对象信息返回到VBA窗体中的Textbox1文本框里。
...全文
609 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoHo_Andy 2003-11-26
  • 打赏
  • 举报
回复
实例如下:

Dim acadapp As Object   '建立Application对象
Dim acaddoc As Object   '建立Document对象
Dim mospace As Object   '建立Model Space 对象
On Error Resume Next
Set acadapp = GetObject(, "autocad.application")  ‘若AutoCad已启动,则直接得到 
If Err Then
 Err.Clear
 Set acadapp = CreateObject("autocad.application")  ‘若AutoCad未启动,则运行它
 If Err Then
  MsgBox Err.Description
  Exit Sub
 End If
End If
acadapp.Visible = True ‘使AutoCad可见
Set acaddoc = acadapp.ActiveDocument  ‘设acaddoc为当前图形文件
Set mospace = acaddoc.ModelSpace ‘设mospace为当前图形

Dim dwgname As String
dwgname = "c:\acadr14\sample\campus.dwg"
If Dir(dwgname) <> "" Then
  acaddoc.Open dwgname   '打开一个CAD文件
Else
  acaddoc.new("acad")  '以acad.dwt为模板建立一个新文件
End If

由用户在屏幕上选择实体 
Dim tempset as Object
 Dim obj as Object
 Set tempset = acaddoc.SelectionSets.Add("newset") '建立新选择集
tempset.SelectOnScreen   ‘用户在屏幕上选择
 For Each obj In tempset  ‘遍历选择集中的实体
   If obj.EntityName="AcDbLine" And obj.Layer="wall" Then
    obj.HighLight(True) '亮显实体及获取实体信息并显示在你的控件中
   End IF
 Next

整个流程就是这样的,具体的代码调试一下就行了

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧