在我制作的AutoCAD VBA例程中,该程序搜索具有特定名称的动态块并提取一些动态属性-宽度和高度。
我到目前为止所拥有的是所有块及其属性的列表,但它们并未排序-如果一个块的宽度和高度与另一个块相同,则仅将它们单独列出。块信息采用多维数组的形式,例如:
PANEL(j,0)= Panel_ref
PANEL(j,1)=宽度
PANEL(j,2)=高度
(j只是循环遍历选择集中每个块的计数器。)
我要做的是能够将所有这些块分类为相同大小的组(而不是autocad组),因此,例如,如果有一些块大小为595x455(宽x高),则应将其分组它们有X个(例如Panel_ref#1)并且没有单独列出。我希望我已经足够清楚了。
基本上,它看起来像:
参考|宽度|身高|数量
1 | 600 | 800 | 3
2 | 700 | 900 | 1
3 | 650 | 1000 | 2
而不是......
参考|宽度|高度
1 | 600 | 800
2 | 600 | 800
3 | 600 | 800
4 | 700 | 900
5 | 650 | 1000
6 | 650 | 1000
...现在。 (对不起,我无法更好地格式化此帖子)
对数据进行排序的最佳方法是什么?我在线上看到了数组排序代码,但仅适用于非多维数组。
我想我需要循环遍历数组,找到不同的“大小”(宽度和高度),将它们存储在某个地方并将每个块与这些块进行比较?我当时想将宽度和高度转换为字符串(“ 800 x 600”),以这种方式进行比较,但是我确定可以将其以数字(双精度)格式完成。
如果需要的话,我可以发布一些代码,但认为现在就更容易了。
谢谢
保罗。