明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1445|回复: 6

用VBA做个像“选择一个对象或[多个(m)]:”这样的程序

[复制链接]
发表于 2014-5-1 14:39:03 | 显示全部楼层 |阅读模式
用VBA做个像“选择一个对象或[多个(m)]:”这样的程序,弄了好久多不知道怎么弄,哪位指点一下啊!
 楼主| 发表于 2014-5-1 14:59:38 | 显示全部楼层
没人回答吗?
 楼主| 发表于 2014-5-1 17:13:02 | 显示全部楼层
求助啊!!!!!
发表于 2014-5-2 14:48:30 | 显示全部楼层
直接选择对象代码 不就行了吗?如果符合选项 就用的cond  写一下
发表于 2014-5-3 11:06:52 | 显示全部楼层
    On Error Resume Next
    Dim StrKeyWords As String
    StrKeyWords = "m"
    ThisDrawing.Utility.GetEntity objDest, ptBase, vbCrLf & "选择一个对象或[多个(m)]:"
    If Err Then                    ' 在错误处理中判断用户输入的关键字
        If StrComp(Err.Description, "用户输入的是关键字", 1) = 0 Then
            Dim strInput As String
            strInput = ThisDrawing.Utility.GetInput
            Err.Clear
            ' 根据输入的关键字进行相应的处理
            If StrComp(strInput, "m", vbTextCompare) = 0 Then
                ......
            Else
                ......
            End If
        Else
            
        End If
    End If
发表于 2014-5-3 14:54:39 | 显示全部楼层
Private Sub SelectLots(ByVal Ssetname As String, ByVal objName As String)
Dim sSetObj As AcadSelectionSet, flag As Boolean
    For Each sSetObj In ThisDrawing.SelectionSets
        If sSetObj.Name = Ssetname Then flag = True: Exit For
    Next
    If flag Then sSetObj.Delete '创建集合,如集存在,则删除,新建
    Set sSetObj = ThisDrawing.SelectionSets.Add(Ssetname)

    Dim gpCode(0) As Integer
    Dim dataValue(0) As Variant
    gpCode(0) = 0
    dataValue(0) = objName
    Dim groupCode As Variant, dataCode As Variant
    groupCode = gpCode
    dataCode = dataValue
    ThisDrawing.Utility.Prompt "请选择**,可以框选" & vbCrLf
    sSetObj.SelectOnScreen groupCode, dataCode
End Sub
 楼主| 发表于 2014-8-8 15:28:04 | 显示全部楼层
谢谢各位热心人!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:30 , Processed in 0.175348 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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