[讨论]有关GROUP的讨论
Group对象其它与SelectSet对象有相似之处,除了Group对象中的属性、方法比SelectSet对象少、可操作性少一些外,其它基本相同。通过对Group对象的分析,Group对象所组合的图元对象只标记在组合中,而在图元对象上是没有任何标记的,所以通过图元对象无法直接识别它是属性哪个Group对象。
一个图元对象可以分别属性多个Group对象,也就是不同的Group对象可以包含同一图元对象。注意Group对象只能包含图元对象,而不能包含其它的Group对象,虽然在组合的过程中由于选择对象时同一组合会同时选中而误认为将一个Group对象组合对另外一个Group对象中,但对于Group对象来说,它最后只认另一个Group对象中的图元对象,而不是Group对象本身。所在Group对象没有嵌套,它们之间是平等的,这一点与图块不同。
由于以上原因,AutoCAD对Group对象的操作比较原始,只能通过对话框的形式,而且所有的操作都必须首先取得Group对象的名称再进行操作。这样对于已经组合的对象要进行分解就增加了很大的麻烦。本来应该很简单的操作变得很繁琐。
大家如果用过CorelDraw的话,就可以知道它的对象组合与分解是多么简单。
为了实现直接操作Group对象,只能是通过选定的图元对象与Group对象所组合的图元对象一一进行比较, 相同时则可认定该图元对象是属性该Group对象中的所组合的对象。而由于Group对象是不嵌套的,而且一个图元对象有可能被组合到多个Group对象上,所以要达到分解的目的,只能是遍历所有Group对象中的图元与遍历所有选定对象来逐一比较了。
对于Group对象的建立比较简单,由于Group对象也支持匿名,所以名称用*号就可以不考虑是否重名的问题。其实对于经常使用组合的话,使用匿名的方法是最为方便的,这一方面就象使用匿名图块道理一样。
页:
[1]