明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: supersky

选择集内的排序问题(高手都来比试一下)

  [复制链接]
发表于 2007-12-4 12:43:00 | 显示全部楼层

选择集中的顺序不是固定的,当选择集中的物体被更新时,其顺序排列会变化的。

因此用sset.item(i)来确定物体的顺序似乎不好吧。

还是用handle属性比较可靠。

发表于 2007-12-14 16:08:00 | 显示全部楼层

handle属性在实际应用中排序意义不大。

handle的赋值是按实体写入到AutoCAD的顺序排列。

1、在现实工作中,人们理解的内容是从左右到右,从上到下的排序过程。

2、按封闭面域的顺序排序,零部件等。

3、按内容排序,如材料表的序号等排序。

发表于 2007-12-16 18:45:00 | 显示全部楼层
选择集也是一种集合,结果放在选择集、集合或数组中没什么区别
发表于 2007-12-16 21:39:00 | 显示全部楼层

进来就为了支持一下飞狐斑竹,我2年前初学VBA的时候,在明经通道问的第一个问题是:"什么是VBA啊?",是飞狐斑竹第一个回答我的!支持!

发表于 2007-12-18 16:22:00 | 显示全部楼层

排序组合应用

'不重复排序
Function gg(xm)

    Dim arr, Temp() As String '声明变量
    Dim s%, r% '声明单值变量
    On Error Resume Next '启动一个错误处理程序
   
    r = 0 '初值
    s = UBound(xm) '最大下标
    ReDim arr(s - 1)
    For i = 0 To s '循环
        Temp = Filter(arr, xm(i)) '搜索数组
        If UBound(Temp) = -1 Then '如果未找到
            r = r + 1 '序号,自增1
            ReDim Preserve arr(1 To r)  '定义动态数组大小
            arr(r) = xm(i) '把姓名复制到数组Arr()中。
           ' Debug.Print Arr(r)
          
        End If
    Next
    gg = arr
    Debug.Print
End Function

Sub lll()
  Dim xm1(), abc(), Gggg()
  xm1 = Array(2, 0, 3, 1, 9, 9, 2, 3, 1, 2, 2, 2, 1, 9, 9, 9, 3)
  abc = gg(xm1)
  Debug.Print TypeName(abc)
  Gggg = Bubble_Sort(abc)
  Debug.Print
End Sub

Function Bubble_Sort(Ary)
   Dim aryUBound, i, j
   aryUBound = UBound(Ary)
   Debug.Print aryUBound
   Debug.Print TypeName(Ary)
   For ii = 1 To aryUBound
     Debug.Print Ary(ii)
   Next ii
   Debug.Print
   For i = 1 To aryUBound
     For j = i + 1 To aryUBound
       If Ary(i) > Ary(j) Then
         Swap Ary(i), Ary(j)
       End If
     Next
   Next
   Bubble_Sort = Ary

End Function

Function Swap(a, b)
   Dim tmp
   tmp = a
   a = b
   b = tmp
End Function

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

本版积分规则

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

GMT+8, 2024-11-26 10:46 , Processed in 0.164192 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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