[在线等待]请问在建立选择集时怎样才能使用平移与缩放命令?
请问在建立选择集时怎样才能使用平移与缩放命令?如下(参考了前面的帖子)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,怎样解决? 这个问题目前无法解决,以前也试图解决过,但最后均没有结果。
关键是在按了平移和缩放时不产生出错,取消后选择的对象无法首先进入选择集。 谢谢mccad,请问还有另外建立选择集的方法吗?我现在必须要建立选择集,但操作时总有一些实体不在窗口上,因此还要用平移和缩放。 这是在网上看到的,介绍如何修正这种选择。但我试过之后,还是没有效果。
程序中的注释是我自己添加的,大家可以参考一下。
Private Declare Function GetCursor Lib "user32" () As Long
Public Function SelectOnScreenFix() As AcadSelectionSet
Dim objSelSet As AcadSelectionSet
Dim objSelCol As AcadSelectionSets
Dim intCnt As Integer
Dim objEnts() As AcadEntity
On Error GoTo Err_Control
' 创建选择集
Set objSelCol = ThisDrawing.SelectionSets
For Each objSelSet In objSelCol
If objSelSet.Name = "sos" Then
objSelCol.Item("sos").Delete
Exit For
End If
Next
Set objSelSet = objSelCol.Add("sos")
' 当 GetCursor = 0 时,表示正常退出
' 当 GetCursor = 65553 时,表示执行平移、缩放等操作
Do
objSelSet.SelectOnScreen
If GetCursor = 2822 Then ' 这儿有出入,实际测试时为65553
' 这儿也有疑问,执行其它操作时选择集中的实体还没真正产生,因而它的数目为0
For intCnt = 0 To ThisDrawing.ActiveSelectionSet.Count - 1
ReDim Preserve objEnts(intCnt)
Set objEnts(intCnt) = ThisDrawing.ActiveSelectionSet(intCnt)
Next intCnt
objSelSet.AddItems objEnts
End If
Loop Until GetCursor = 0
Set SelectOnScreenFix = objSelSet
Exit_Here:
Exit Function
Err_Control:
Select Case Err.Number
Case Else
MsgBox Err.Description
End Select
End Function
拜托大家帮我解决,我着急用,今晚一直等着。主要是我的图上有300多个闭合多段线,又不能全选,要分别选出,不用平移和缩放怎样办。 用鼠标中键平移吧 用鼠标中键倒是可以,如果在没有鼠标中键的机子上就麻烦了,且很容易失误。再看有没人能帮忙解决。 建议:
1.转2004版本;
2.用滚动条平移(呵呵,慢慢点);
3.如果选择对象是在整个程序的最前面(也就是先选择对象,再执行后面的程序),可使用LISP的(ssget)来选择对象,然后再执行程序,在需要选择集时用select方法的acSelectionSetPrevious选项来解决。 我没用过2004,里面能有好方法吗?mccad建议的第三种方法到是可以一试,不过我用vba 300多个闭合图形?说说你要做什么?说不定还有别的方法!
页:
[1]
2