集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体
不好意思配错图了
集合是向下导航的必经之路,无论是对于COMOS还是其他编程语言都是非常重要的。
回顾一下上期的一张图
以上是COMOS中主要的集合类型
另外还有很多其他集合,比如
Project.Workset.getAllUsers
a.Specifications
重点说下选项卡和参数集合,因为最为常用。
看下参数和选项卡的树状结构
如需通过设备a获取功率因数参数,其语法如下:
a.specifications.item(“Y00T00003”).specifications.item(“Y00A00394”)
即先向下获取选项卡”Y00T00003″,再往下获取参数”Y00A00394″。
因为此方法需要经常使用,COMOS提供了快捷方式,简写如下:
a.spec(“Y00T00003.Y00A00394”)
如需在频率“Y00A00363”参数中获取功率因数参数,其语法如下:
me.Owner.spec(“Y00A00394”)
其中me可以省略,即
Owner.spec(“Y00A00394”)
以上是常用集合,还有很多其他集合,限于篇幅暂不展开说明了。
集合的主要方法
其中添加对象至集合推荐使用Append,因为Add的对象其在集合中的索引会变化。
将对象a加入集合的脚本示例如下
set Col=Project.Workset.getTempCollection
Col.Append a
COMOS集合没有Clear方法,如需置空,可以用Remove或设置集合等于
Project.Workset.getTempCollection。
值得注意的是,从集合中移除对象或者对象删除时,索引顺序非常重要!
其索引必须按从大到小的顺序移除或删除。示例如下:
For i=Col.count to 1 step -1
set obj=Col.item(i)
Col.Remove obj
Next
如果按索引从小到大删除,除非集合只有一个对象,否则程序必定运行中崩溃,就像下图
整个集合会因所删除对象处于底部,导致上方所有对象的索引全部改变,原来的索引2将变成索引1,索引3变成索引2…
如确实想从索引1开始删除,那么可以用下方语句
For i=1 to Col.count
set obj=Col.item(1) ‘此处使用索引1而不是i
Col.Remove obj
Next
COMOS对象还有一类特殊集合,称之为OwnCollection,比如
a.OwnDocuments和a.OwnConnectors..
此类集合具有创建方法,可以在集合中创建对象。
COMOS的Devices、Cdevices、Documents等集合不允许出现对象重名,在命名前可以使用
a.Devices.ItemExist(“名称1”)
来判断“名称1”是否已存在。
如需按顺序自动命名,可以使用
newName=a.Devices.NextName(a.Devices.item(1).name)
newName是按照第一个对象的名称规则,根据当前集合的对象数量自动生成新的名称。
好了,今天就到这吧,我要去学习了~
我们的COMOS小游戏将会在下期或下下期…总之,近期到来,一起期待吧
转发~
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!