GrandMA3'te Döngülü (Loop) Macro Kullanımı

GrandMA3 konsolunda döngülü macro yapıları oluşturmayı, GOTO ve LABEL komutlarıyla otomatik tekrar eden senaryolar kurmayı öğrenin.

Döngülü Macro Nedir?

GrandMA3'te bir macro, sırayla çalıştırılan komut satırlarından oluşur. Döngülü macro ise belirli bir komut bloğunun sürekli veya belirli sayıda tekrar etmesi için kullanılan bir yapıdır. Bu yapı; otomatik sahne geçişleri, periyodik fixture kontrolleri veya zamana bağlı tetiklemeler gibi senaryolarda büyük kolaylık sağlar.

Temel Yapı: LABEL ve GOTO

Döngü oluşturmanın en yaygın yöntemi LABEL ve GOTO komutlarını birlikte kullanmaktır. LABEL, makro içinde bir işaret noktası tanımlar; GOTO ise çalışmayı o noktaya geri döndürür.

Basit Sonsuz Döngü Örneği

Aşağıdaki macro satırları, sonsuz bir döngü oluşturur:

  1. LABEL 1
  2. Go+ Executor 1
  3. Delay 2
  4. GOTO 1

Bu yapıda macro çalıştığında Executor 1 üzerinde her 2 saniyede bir ileri adım atar ve bu işlemi sonsuza kadar tekrarlar. Döngüyü durdurmak için macroyu manuel olarak kapatmanız gerekir.

Sayaç ile Kontrollü Döngü

Sonsuz döngüler her zaman istenmeyebilir. Belirli sayıda tekrar eden bir döngü için Variable (değişken) kullanımı devreye girer.

  1. AssignUserVar $sayac = 0
  2. LABEL 1
  3. AssignUserVar $sayac = $sayac + 1
  4. Go+ Executor 1
  5. Delay 1
  6. If $sayac < 10 GOTO 1

Bu örnekte macro, Executor 1'i 10 kez ilerletip durur. AssignUserVar komutu ile tanımlanan $sayac değişkeni her döngüde bir artırılır ve koşul sağlandığı sürece döngü devam eder.

İpucu: Değişken isimlerinde Türkçe karakter kullanmaktan kaçının. $sayac yerine $counter gibi ASCII uyumlu isimler tercih edin.

Döngüde Timing Kullanımı

Döngü hızını kontrol etmek için Delay komutunu kullanabilirsiniz. Değer saniye cinsinden girilir.

  • Delay 0.5 — Yarım saniye bekle
  • Delay 5 — 5 saniye bekle
  • Delay 0 — Bekleme olmadan anında geç (dikkatli kullanın, konsolu yavaşlatabilir)
Önemli Not: Delay 0 içeren sonsuz döngüler konsolun işlemcisini aşırı yükleyebilir. Döngülerde mutlaka bir bekleme süresi tanımlayın.

Döngüyü Dışarıdan Kırmak

Çalışan bir döngülü macroyu durdurmak için birkaç yöntem mevcuttur:

  • Macro penceresinden ilgili macroya sağ tıklayıp Stop seçeneğini kullanmak
  • Başka bir macro ile KillMacro [macro adı] komutunu çalıştırmak
  • Döngü koşuluna bir UserVar bayrağı ekleyerek dışarıdan false'a çekmek

Bayrak ile Döngü Kontrolü

Daha esnek bir yapı için döngüyü bir değişken bayrağıyla kontrol edebilirsiniz:

  1. AssignUserVar $calis = 1
  2. LABEL 1
  3. Go+ Executor 1
  4. Delay 2
  5. If $calis = 1 GOTO 1

Döngüyü durdurmak istediğinizde başka bir macro veya buton üzerinden AssignUserVar $calis = 0 komutu çalıştırmanız yeterlidir. Bu yöntem, show sırasında güvenli ve kontrollü bir döngü yönetimi sağlar.