乐筑天下

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

[在线等待]请问在建立选择集时怎样才能使用平移与缩放命令?

[复制链接]

12

主题

40

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2003-12-21 22:46:00 | 显示全部楼层 |阅读模式
请问在建立选择集时怎样才能使用平移与缩放命令?如下(参考了前面的帖子)
restart:
    On Error Resume Next
    Selset.SelectOnScreen
    '====================================
            If Err Then
               Select Case Err.Number
                    Case -2147467259
                             Err.Clear
                             
                                    
                    Case -2147352567
                                    '按了取消键或其它透明命令
                          varCancel = ThisDrawing.GetVariable ("LASTPROMPT")
                                      If InStr(1, varCancel, "*Cancel*")  0 Or InStr(1, varCancel, "*取消*")  0 Then
                                        Err.Clear
                                        'Resume Exit_Here
                                        GoTo restart:
                                      Else
                                        Err.Clear
                                        GoTo Exit_Here
                                        'GoTo restart:
                                      End If
               End Select
        End If
但是 Err.Number 的值总是为0,怎样解决?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-12-21 22:51:00 | 显示全部楼层
这个问题目前无法解决,以前也试图解决过,但最后均没有结果。
关键是在按了平移和缩放时不产生出错,取消后选择的对象无法首先进入选择集。
回复

使用道具 举报

12

主题

40

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2003-12-21 23:07:00 | 显示全部楼层
谢谢mccad,请问还有另外建立选择集的方法吗?我现在必须要建立选择集,但操作时总有一些实体不在窗口上,因此还要用平移和缩放。
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-12-21 23:14:00 | 显示全部楼层
这是在网上看到的,介绍如何修正这种选择。但我试过之后,还是没有效果。
程序中的注释是我自己添加的,大家可以参考一下。
  1. Private Declare Function GetCursor Lib "user32" () As Long
  2.    
  3. Public Function SelectOnScreenFix() As AcadSelectionSet
  4.     Dim objSelSet As AcadSelectionSet
  5.     Dim objSelCol As AcadSelectionSets
  6.     Dim intCnt As Integer
  7.     Dim objEnts() As AcadEntity
  8.    
  9.     On Error GoTo Err_Control
  10.     ' 创建选择集
  11.     Set objSelCol = ThisDrawing.SelectionSets
  12.     For Each objSelSet In objSelCol
  13.         If objSelSet.Name = "sos" Then
  14.             objSelCol.Item("sos").Delete
  15.             Exit For
  16.         End If
  17.     Next
  18.     Set objSelSet = objSelCol.Add("sos")
  19.    
  20.     ' 当 GetCursor = 0 时,表示正常退出
  21.     ' 当 GetCursor = 65553 时,表示执行平移、缩放等操作
  22.     Do
  23.         objSelSet.SelectOnScreen
  24.         If GetCursor = 2822 Then ' 这儿有出入,实际测试时为65553
  25.             ' 这儿也有疑问,执行其它操作时选择集中的实体还没真正产生,因而它的数目为0
  26.             For intCnt = 0 To ThisDrawing.ActiveSelectionSet.Count - 1
  27.                 ReDim Preserve objEnts(intCnt)
  28.                 Set objEnts(intCnt) = ThisDrawing.ActiveSelectionSet(intCnt)
  29.             Next intCnt
  30.             objSelSet.AddItems objEnts
  31.         End If
  32.     Loop Until GetCursor = 0
  33.     Set SelectOnScreenFix = objSelSet
  34.    
  35. Exit_Here:
  36.     Exit Function
  37.    
  38. Err_Control:
  39.     Select Case Err.Number
  40.         Case Else
  41.             MsgBox Err.Description
  42.     End Select
  43. End Function
回复

使用道具 举报

12

主题

40

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2003-12-21 23:24:00 | 显示全部楼层
拜托大家帮我解决,我着急用,今晚一直等着。主要是我的图上有300多个闭合多段线,又不能全选,要分别选出,不用平移和缩放怎样办。
回复

使用道具 举报

11

主题

80

帖子

9

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
124
发表于 2003-12-22 07:53:00 | 显示全部楼层
用鼠标中键平移吧
回复

使用道具 举报

12

主题

40

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2003-12-22 16:47:00 | 显示全部楼层
用鼠标中键倒是可以,如果在没有鼠标中键的机子上就麻烦了,且很容易失误。再看有没人能帮忙解决。
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-12-22 17:34:00 | 显示全部楼层
建议:
1.转2004版本;
2.用滚动条平移(呵呵,慢慢点);
3.如果选择对象是在整个程序的最前面(也就是先选择对象,再执行后面的程序),可使用LISP的(ssget)来选择对象,然后再执行程序,在需要选择集时用select方法的acSelectionSetPrevious选项来解决。
回复

使用道具 举报

12

主题

40

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2003-12-22 22:40:00 | 显示全部楼层
我没用过2004,里面能有好方法吗?mccad建议的第三种方法到是可以一试,不过我用vba
回复

使用道具 举报

41

主题

657

帖子

9

银币

中流砥柱

Rank: 25

铜币
821
发表于 2003-12-22 23:10:00 | 显示全部楼层
300多个闭合图形?说说你要做什么?说不定还有别的方法!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 07:32 , Processed in 0.422959 second(s), 72 queries .

© 2020-2025 乐筑天下

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