西门子COMOS软件开发定制学习3-集合

集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体

不好意思配错图了

集合是向下导航的必经之路,无论是对于COMOS还是其他编程语言都是非常重要的。

回顾一下上期的一张图

以上是COMOS中主要的集合类型

另外还有很多其他集合,比如

  • 所有用户对象的集合
  • Project.Workset.getAllUsers

  • 所有项目的集合
  • Project.Workset.getAllProjects
  • 指针式集合,如获取设备a所在的所有图纸DocObj的集合
  • a.BackPointerDocObjs.Count
  • DocObj.Owner即为图纸对象,因而可以通过设备a获取其所在图纸的任何信息。
  • 对象a下方所有选项卡或参数集合
  • 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进行处理,非常感谢!

    上一篇 2019年7月8日
    下一篇 2019年7月8日

    相关推荐