Vuruş Dizileri

Belirli bir özelliğin vuruşları, dizi olarak kullanılabilirdirler ve form <FeatID>.Hit[<Dizi İfadesi>].<Uzantı> veya form <FeatID>.RawHit[<Dizi İfadesi>].<Uzantı> dizi sözdizimini kullanan ifadeler aracılığıyla erişebilirler. Vuruş, prob telafisi açıkken, telafi edilen prob verisini verir. RawHit, daima telafi edilmeyen veriyi verir. Geçerli uzantılar X, Y, Z, I, J, K, TX, TY, TZ, TI, TJ, TK, XYZ, TXYZ, IJK, ve TIJK 'dir

Circle1.Hit[1].XYZ
"Circle1"in vuruş 1'inin ölçülen (prob telafili) kitle merkezi.

Cirle1.Hit[2].IJK
"Circle1"in vuruş 2'sinin ölçülen vektörü

Gerçek vuruşlar Düzen penceresinde görüntülensin ya da görüntülenmesin, vuruş verisi, vuruşlara sahip tüm nesneler için kullanılabilirdir. Bu nedenle vuruşlar, taramalar ve Otomatik özellikler için elde edilebilir.

Yapılandırılmış Özellik Girişlerini Tanımlamak için Vuruş Dizilerini Kullanma

Yapılandırılmış özellikler için girişleri tanımlamak üzere Vuruş dizilerini kullanabilirsiniz.

Oluşturulan özellikler için feature.HIT[start..end] veya feature.HITS[start..end] yöntemlerini kullandığınızda start ve end özellikleri isteğe bağlıdır:

Bu, "feature.NUMHITS" girdiyseniz aynıdır.

Bu örnekler, CIR1'den aynı vuruşları kullanmanın üç farklı yolunu göstermektedir:

Örnek 1

Bu örnekte, başlangıç ve bitiş değerleri açıkça tanımlanmıştır:

CIR3    =FEAT/CIRCLE,CARTESIAN,IN,NO
         THEO/<20.97629,22.90352,0>,<0,0,-1>,20.97629
         ACTL/<20.96578,22.89023,-0.01243>,<0,0,-1>,20.96578
         CONSTR/CIRCLE,REV,CIR1.HIT[1..CIR1.NUMHITS]
	

Örnek 2

Bu örnekte sadece "1" başlangıç değeri tanımlanmıştır. Bitiş değeri tanımlanmadığından PC-DMIS, bitiş değerini "CIR1.NUMHITS" olarak tanımlar:

CIR3    =FEAT/CIRCLE,CARTESIAN,IN,NO
         THEO/<20.97629,22.90352,0>,<0,0,-1>,20.97629
         ACTL/<20.96578,22.89023,-0.01243>,<0,0,-1>,20.96578
         CONSTR/CIRCLE,REV,CIR1.HIT[1..]
	

Örnek 3

Bu örnekte, başlangıç veya bitiş değerleri tanımlanmamıştır. Bu nedenle PC-DMIS, başlangıç değerini "1" ve bitiş değerini "CIR1.NUMHITS" olarak tanımlar:

CIR3    =FEAT/CIRCLE,CARTESIAN,IN,NO
         THEO/<20.97629,22.90352,0>,<0,0,-1>,20.97629
         ACTL/<20.96578,22.89023,-0.01243>,<0,0,-1>,20.96578
         CONSTR/CIRCLE,REV,CIR1.HIT[..]
	

Aşağıdaki bölümler, bir tarama içindeki minimum veya maksimum noktaları bulmada faydalı olan bazı ek dizi fonksiyonlarını açıklar:

Bir Vuruş Kümesini Bir Diziye Atama

Bu sözdizimini kullanarak da bir diziye vuruş kümesi atayabilirsiniz:

<Feature Id>.<Hittype>[<Startnum>..<Endnum>].<Extension>

burada

<Feature Id> özelliğin adıdır

<Hittype>, telafi edilen veri için "HIT" veya telafi edilmemiş veri için "RAWHIT" olabilir. Prob telafisi kapalıysa sonuç değerleri daima telafi edilmemiştir.

<Startnum>, vuruş kümesinin ilk endeks değerini tanımlayan bir ifadedir.

<Endnum>, vuruş kümesinin ikinci endeks değerini tanımlayan bir ifadedir.

<Extension> veri türünü tanımlar. Muhtemel uzantılar, ölçülen veya teorik veri türlerini içerir:

Ölçülen

Teorik

Örnek:

ASSIGN/V1 = SCAN1.HIT[1..10].X
V1, TARAMA1'in ilk 10 vuruşundan ölçülen X değerleri olan 10 değerin dizisine atanır.

ASSIGN/V2 = SCAN1.HIT[1..SCAN1.NUMHITS].XYZ
V2, taramadaki vuruşların kitle merkezlerinin her birinden nokta dizesine atanır.

Dizileri Sıralama

PC-DMIS, dizileri artan veya azalan düzende sıralamanıza izin verir. Aşağıdaki iki ifade, bir dizi alır ve sıralanmış bir dizi verir:

Artan düzende sıralamak için şunu kullanın:
SORTUP(<dizi>)

Azalan düzende sıralamak için şunu kullanın:
SORTDOWN(<dizi>)

Örnek:

ASSIGN/V1=ARRAY(5,8,3,9,2,6,1,7)
V1'e, "5,8,3,9,2,6,1,7" dizisi atanır

ASSIGN/V2=SORTUP(V1)
V2, artan düzende sıralanmış dizi değerlerini tutacaktır: "1,2,3,5,6,7,8,9"

ASSIGN/V3=SORTDOWN(V1)
V3, artan düzende sıralanmış dizi değerlerini tutacaktır: "9,8,7,6,5,3,2,1"

Bir Diziden En Büyük veya En Küçük Endeks Değerlerini Sonuçlandırma

Bir fonksiyona bir dizi girebilir ve aşağıdaki fonksiyonları kullanarak en büyük veya en küçük değere sahip öğenin endeks numarasını sonuçlandırabilirsiniz:

En büyük değerli öğenin endeks değerini getirmek için, şunu kullanın:

MAXINDEX(<dizi>)

En küçük değerli öğenin endeks değerini getirmek için, şunu kullanın:

MININDEX(<dizi>)

Örneğin,

ASSIGN/V1=ARRAY(5,8,3,9,2,6,1,7)
V1'e, "5,8,3,9,2,6,1,7" dizisi atanır

ASSIGN/V2=MAXINDEX(V1)
V2, dizinin endeks değeri olan 4'ü tutacaktır. Bu dizi öğesinin gerçek değeri 9'dur.

ASSIGN/V3=MININDEX(V1)
V3, dizinin endeks değeri olan 7'yi tutacaktır. Bu dizi öğesinin gerçek değeri 1'dir.

Ardından, gerçek dizi öğe değerini almak için, sonuçlanan endeks değerlerini kullanabilirsiniz.

Bir Dizideki Sıralanan Endeks Değerlerini Sonuçlandırma

Bir fonksiyona bir dizi girebilir, artan veya azalan düzende dizi değerlerini sıralayabilir ve ardından şu fonksiyonları kullanarak endek değerlerini sonuçlandırabilirsiniz:

En büyükten en küçüğe sıralanan değerlerine göre dizinin endeks konumlarını sonuçlandırmak için şunu kullanın:
MAXINDICES(<dizi>)

En büyükten en küçüğe sıralanan değerlerine göre dizinin endeks konumlarını sonuçlandırmak için şunu kullanın:
MININDICES(<dizi>)

Örnek:

ASSIGN/V1=ARRAY(4,8,2,9,5,7)
V1'e, "4,8,2,9,5,7" dizisi atanır

ASSIGN/V2=MAXINDICES(V1)
V2 şu değerlerle bir dizi tutacaktır: "4,2,6,5,1,3".

ASSIGN/V3=MININDICES(V1)
V3, şu değerlerle bir dizi tutacaktır: "3,1,5,6,2,4".

Bir Taramada Minimum ve Maksimum Noktaları Bulmak için Dizi Fonksiyonlarını Kullanma Örneği

Yukarıda analtılan vuruş dizisi fonksiyonlarının temel amacı, bir taramadaki minimum ve maksimum noktaları bulmak için size kolay bir yol sunmaktır.

En büyük ölçülmüş X değerine sahip TARAMA1 'den nokta boyutlandırmak için, şu ifadeyi kullanabilirsiniz:

ASSIGN/MAXPTINDEX=MAXINDEX(SCAN1.HIT[1..SCAN1.NUMHITS].X)

D1=LOCATION OF FEATURE SCAN1.HIT[MAXPTINDEX]

 

TARAMA2'nin Z eksenindeki en büyük 3 noktayı bulmak için, şu ifadeyi kullanabilirsiniz:

ASSIGN/MI=MAXINDICES(SCAN2.HIT[1..SCAN2.NUMHITS].Z)

ASSIGN/THREEPOINTS=ARRAY(SCAN2.HIT[MI[1]].XYZ,SCAN2.HIT[MI[2]].XYZ,SCAN2.HIT[MI[3]].XYZ)