Bazen bir objenin kodunun belirli bir kısmı bir çok kere tekrar edilmesi gerekebilir. Hatta tekrar sayısı kullanıcı tarafından belirlenmesi istenebilir. Kısacası, Repeat Objesi bir dizi objeyi bir çok kez klonlamak için kullanılır.
Birçok yapı yapısal bileşenlerin tekrarından oluşur. Örneğin;
Bir köprüdeki farklı çaprazlama lokasyonlarına sahip çoklu kirişler.
Bir köprüdeki çoklu gövde rijidite çubukları.
Bir kule için çoklu paneller.
Bir bina için çok sayıda kat.
Daha öncesinde tanımlanmış olan bir içerik Repeat Objesi içerisine yerleştirilip belirli geometrik aralıklarla klonlanıp konumlandırılabilir. Repeat objenin içindeki herhangi bir içerik belirlenen parametre kadar tekrar edilir.
Tüm Repeat Objeleri aşağıdaki parametreleri içermesi zorunludur:
...
Yukarıdaki kodlar aşağıdaki gibi tamamen birbirinin aynısı sonuç verir.
Bknz:
...
https://www.openbrim.org/objid4wf6h9h9k7e4dkrnmsi2wx.libobj
Örnek:
Code Block | ||||
---|---|---|---|---|
| ||||
<O T="Repeat" S="0" E="4" I="1" CTRL="index" index="0"> <O N="Kolon" T="Line"> <P N="Guard" V="type .EQ. RECTANGULAR" /> <O T="Point" X="index * 15" Y="0" Z="0" /> <O T="Point" X="index * 15" Y="0" Z="50" /> <O N="Rectangular" T="Section"> <O T="Shape"> <O T="Point" X="-5" Y="-5" Z="0" /> <O T="Point" X="-5" Y="5" Z="0" /> <O T="Point" X="5" Y="5" Z="0" /> <O T="Point" X="5" Y="-5" Z="0" /> </O> </O> </O> </O> |
...
Yukarıdaki örnekte tipi line olan bir kolon objesi oluşturulup repeat döngüsü içerisine konulmuştur. Başlangıç sayısı 1, bitiş sayısı 4 olan ve artışı birer birer olan döngü 4 kere döner ve 4 kere bu 3D obje oluşturulur. Aşağıdaki sistem elde edilir.
Bu örneği libraryde library'de incelemek için bakınız: https://www.openbrim.org/objidykp3fi661zspktydj29wxm.libobj
Bir listedeki elemanları saymaya, gerekirse onları ayırmayı sağlar.
...
sefer A=Fn[1][0] ve B=Fn[1][1] parametrelerini oluşturur ve böylelikle bitiş sayısına gelene kadar tekrar eder ve E=3 olduğundan(Listenin uzunluğunun bir eksiği) j=3 olduğunda son parametreleri üretir ve daha tekrar etmez. Oluşan A ve B parametresinin tüm değerlerinin liste yapan map
fonksiyonu (Bknz:Fonksiyonlar: Bkz. map ) ile de iki yeni liste elde etmiş olunur:
...
kere oluşturulacaktır. Böylelikle her bir i değeri arttığında j değeri 5 kere artacaktır. Bu en dıştaki tekrar sayısı tamamlanana kadar devam edecektir ve aşağıdaki 3D obje oluşacaktır.
Örneği Library'de de incelemek için: https://www.openbrim.org/objidspvfh6op46yutcwozwlqr.libobj
Parametreleri:
Sınıfı | Zorunluluk | Adı ve Tipi | Varsayılan değeri ve açıklaması | Öznitelikler | |
1 | Control Variable | Zorunlu | N="CTRL" | D="Kontrol değişkeni: Tekrarlanan objelere göre tekrar sayısını tutan değişkenin adı." | Role="Input" |
2 | Start | Zorunlu | N="S" | D="Start: Tekrar döngüsünün başlangıç sayısı (varsayılan 0)" | Role="Input" |
3 | End | Zorunlu | N="E" | D="Bitiş: Tekrar döngüsünün bitiş sayısı (varsayılan 9)" | Role="Input" |
4 | Increment | Zorunlu | N="I" | D="Artış: başlangıçtan sona giderken artış sayısı(varsayılan 1)" | Role="Input" |
...