-- FikoYT örnek: PROGRAMI YENİDEN DERLEMEDEN yeni "pencereli komut" ekleme. -- Makro Konsolu'ndan bu betiği "Çalıştır" → araç şeridinde/menüde "Eklenti" grubunda -- yeni komutlar belirir. Komuta tıkla → Pad gibi kendi penceresi açılır: parametre -- gir + sahneden nokta/kenar seç + ✔ Tamam → sahne mutasyonu (undo/redo uyumlu). -- -- fiko.komut.tanimla{ id, ad, simge, grup, aciklama, parametreler={...}, calistir=fn } -- parametre tipleri: "mesafe" "sayi" "tamsayi" "bayrak" "secim" "metin" -- "nokta" (sahneden nokta/yüz) "eksen" (kenar) "govde" -- calistir(p): p tablosu doldurulmuş değerleri taşır. Sahneden seçim bileşenleri: -- nokta "konum" → p.konumx / p.konumy / p.konumz / p.konumVar (1 = seçildi) -- eksen "yon" → p.yonG (gövde) / p.yonA (kenar ordinali) -- govde "hedef" → p.hedef (gövde kimliği) -- return true = başarı (pencere kapanır), false = başarısız (pencere açık kalır). -- 1) Parametrik kutu: boyut + rastgele-renk + sahneden konum seçimi fiko.komut.tanimla{ id = "ornek.parametrik_kutu", ad = "Parametrik Kutu", simge = "◼", grup = "Eklenti", aciklama = "Boyut + konum ile parametrik kutu ekler.", parametreler = { { anahtar="en", etiket="En", tip="mesafe", varsayilan=10, min=0.1, birim="mm", grup="Boyut" }, { anahtar="boy", etiket="Boy", tip="mesafe", varsayilan=10, min=0.1, birim="mm", grup="Boyut" }, { anahtar="yuk", etiket="Yükseklik", tip="mesafe", varsayilan=10, min=0.1, birim="mm", grup="Boyut" }, { anahtar="renkli", etiket="Mavi renk", tip="bayrak", varsayilan=1, grup="Görünüm" }, { anahtar="konum", etiket="Konum", tip="nokta", grup="Konum" }, }, calistir = function(p) local id = fiko.sahne.ekle("kutu") if not id then return false end fiko.sahne.adAyarla(id, "Kutu (komut)") fiko.sahne.parametreAyarla(id, p.en, p.boy, p.yuk) if p.konumVar and p.konumVar > 0.5 then fiko.sahne.konumAyarla(id, p.konumx, p.konumy, p.konumz) end if p.renkli and p.renkli > 0.5 then fiko.sahne.renkAyarla(id, 0.2, 0.6, 1.0) end return true end } -- 2) Parametrik silindir: yarıçap/yükseklik + primitif seçimi (koşullu alan örneği) fiko.komut.tanimla{ id = "ornek.parametrik_silindir", ad = "Parametrik Silindir", simge = "⬤", grup = "Eklenti", aciklama = "Yarıçap + yükseklik ile silindir/koni ekler.", parametreler = { { anahtar="tip", etiket="Tip", tip="secim", secenekler={"Silindir","Koni"}, grup="Tip" }, { anahtar="r", etiket="Yarıçap", tip="mesafe", varsayilan=5, min=0.1, birim="mm", grup="Boyut" }, { anahtar="h", etiket="Yükseklik", tip="mesafe", varsayilan=20, min=0.1, birim="mm", grup="Boyut" }, -- Koşullu alan: yalnız Koni seçiliyken görünür (kosulAnahtar=değere eşitse) { anahtar="ustR", etiket="Üst Yarıçap", tip="mesafe", varsayilan=0, min=0, birim="mm", grup="Boyut", kosulAnahtar="tip", kosulDeger=1 }, { anahtar="konum", etiket="Konum", tip="nokta", grup="Konum" }, }, calistir = function(p) local prim = (p.tip and p.tip > 0.5) and "koni" or "silindir" local id = fiko.sahne.ekle(prim) if not id then return false end fiko.sahne.parametreAyarla(id, p.r, p.h, p.ustR or 0) if p.konumVar and p.konumVar > 0.5 then fiko.sahne.konumAyarla(id, p.konumx, p.konumy, p.konumz) end return true end } fiko.log("Örnek dinamik komutlar kaydedildi: 'Eklenti' grubuna bak.")