Özellik Dizileri

Yordam yürütme sırasında bir tür döngü nedeniyle bir özellik birden fazla kez ölçüldüğünde, yazılım otomatik olarak bir özellik dizisi oluşturur. Özellik dizisindeki öğelerin sayısı, özelliğin yürütülme sayısına eşittir.

Ölçülen bir daire özelliği, beş kez yürütülen bir while döngüsünün içindeyse, beş ölçülen daireden oluşan bir dizi bulunur. Ölçülen dairenin kimliği "CIR1" ise o zaman ölçülen daire nesnesinin tek tek örneklerine erişmek için bir dizi ifadesi kullanabilirsiniz. İstediğiniz örneği belirtmek için şu şekilde köşeli parantezler kullanırsınız:

ASSIGN/V1=CIR1[3].X

V1, CIR1 dairesinin üçüncü örneğinin ölçülen X değerine atanır.

Bir özellik dizisi belirli bir özellik için mevcutken, o özelliğe bir referansta bir dizi yazımı kullanılmaz, en son örnek kullanılır. Yukarıdaki örnekten, referans CIR1.X, tıpkı CIR1[5].X ile aynı olacaktır çünkü beşinci örnek, nesnenin en son örneği olacaktır.

Bir dizi ifadesinin köşeli parantezleri içindeki ifadeleri kullanabilirsiniz:

CIR1[3].X ve CIR1[2+1].X bu nedenle eşdeğer olacaktır.

Bu sonraki örnek, iki While / End While döngüsü komut bloğu kullanır. İlk blok, CIR1 dairesini beş kez yürütür. İkinci blok, beş yürütmenin her birinin ölçülen kitle merkezini Rapor penceresine göndermek için köşeli parantez içindeki V1 değişkenini kullanır, örneğin CIR1[V1].XYZ:

            ASSIGN/V1=1
            WHILE/V1<6
CIR1         =FEAT/CIRCLE,CARTESIAN,IN,LEAST_SQR
              THEO/<40,30,-4.824>,<0,0,1>,30
              ACTL/<40.002,29.991,-4.836>,<0,0,1>,29.982
              MEAS/CIRCLE,4,ZPLUS
                HIT/BASIC,NORMAL,<41.984,44.868,-2.885>,<-0.132272,-0.9912135,0>,<41.972,44.85,-2.891>,USE THEO=YES
                HIT/BASIC,NORMAL,<51.721,39.36,-5.094>,<-0.781412,-0.6240155,0>,<51.706,39.375,-5.107>,USE THEO=YES
                HIT/BASIC,NORMAL,<54.792,32.491,-5.44>,<-0.9861119,-0.1660821,0>,<54.775,32.474,-5.453>,USE THEO=YES
                HIT/BASIC,NORMAL,<52.526,21.748,-5.879>,<-0.8350841,0.5501223,0>,<52.537,21.764,-5.893>,USE THEO=YES
              ENDMEAS/
              ASSIGN/V1=V1+1
            END_WHILE/
            ASSIGN/V1=1
            WHILE/V1<6
              COMMENT/REPT,
              ""CIR1 kitle merkezi, örnek numarası" + V1
              CIR1[V1].XYZ
              COMMENT/REPT,
              --------------------
              ASSIGN/V1=V1+1
            END_WHILE/

Rapor penceresi için oluşturulan çıkış şu şekildedir:

Döngüsel Yürütmenin Oluşturulan Çıkışı

Diziler ayrıca, belirli bir yürütme içinde çok sayıda yürütlmüş olan boyutlar ve hizalamalarda yer alırlar. Bu nedenle Dim1[2].Nom ve Align1[4].Origin, Boyut "Dim1"in en az iki kez yürütülmüş olması ve hizalama "Align1"in en az dört kez yürütülmüş olması koşuluyla kullanılabilir olacaktır.

Eğer bir özellik dizisi referansı sınırlar dışındaysa (örneğin, kullanıcı CIR1[2.5] veya CIR1["Merhaba, Dünya"]) sorduğunda üst veya alt sınır nesnesi döner. Eğer Circle1 3 örneğe sahipse, CIR1[4] ve üzeri CIR1[3] için değeri döndürecek ve CIR[0] ve aşağısı, CIR1[1] için değeri döndürecek. Kare parantez arasındaki tüm ifadeler tamsayıda birleştirilir, bu nedenle 2.5 2 olacak ve "Merhaba Dünya" 0 olacaktır.