Last updated
Last updated
AugeLab'da sağlanan örnek özel blok scripti:
Örnek script her zaman belirli modüllerin içe aktarılmasıyla başlar. studio.custom_block import *
, blokunuzda kullanmanız için gerekli süper sınıfları, widget'ları ve yöntemleri içe aktarır. Bu satır, tüm sınıf tanımlamaları için zorunludur.
Burada, en çok kullanılan iki kütüphane zaten sizin için içe aktarılmak üzere ayarlanmıştır. Özel bloklarınızda OpenCV ve numpy kütüphanelerini kullanabilirsiniz.
Özel kütüphaneleri de İçe Aktar Paket Penceresi ile yükleyerek içe aktarabilir ve özel statik değişkenleri ayarlayabilirsiniz.
AugeLab Studio'da sağlanan tüm bloklar çapraz platform uyumludur. Ancak, topluluk modüllerinin kullanılması bu uyumu tehlikeye atabilir.
op_code
, özel bloğunuz için benzersiz bir tanımlayıcı dizesini tanımlar. Özel bloğunuzu yüklemek için, kendinize özel bir blok adı seçmelisiniz.
tooltip
, kullanıcıların özel bloklar üzerinde fare ile gezindiğinde ipucu gösterilmesini sağlar.
SocketType
, iki argüman alır:
SocketType
listesi aşağıda görülebilir:
[ImageAny
]: ImageRGB | ImageGray
[ImageRGB
]: npt.NDArray[np.uint8] # [N, N, 3]
[ImageGray
]: npt.NDArray[np.uint8] # [N, N]
[Integer
]: int
[Float
]: int
[Number
]: float | int
[Boolean
]: bool
[String
]: str
[Generic
]: object
[Shape
]: list[list[int, int], ...]
[Pixel
]: tuple[int] | tuple[int, int, int]
[Point
]: tuple[int, int]
Bu özellik, blok bileşenlerinizi ve etkileşimli widget'ları benzersiz adlarıyla tutar. Kullanabileceğiniz birkaç bileşen vardır:
input
özelliği, özel bloğunuza veri aktarımı için dinamik bir dict
'dir. Soket adları aracılığıyla giriş soketlerinizden veri alabilirsiniz.
output
özelliği, özel bloğunuzdan veri dışarı aktarmak için dinamik bir dict
'dir. Çıkış soketlerinize veri yerleştirirken benzersiz soket adlarını kullanabilirsiniz.
Yolları kaydeder ve bunları otomatik olarak senaryo dosyasına kaydeder.
Genellikle, düz yollar kullanmak, senaryo dosyalarını farklı bilgisayarlar arasında taşırken sorun yaratabilir. Ancak, otomatik kaynak yönetimi kullanarak genel veya göreli yolları kullanabilirsiniz. Kaynağı senaryo dosyasından daha düşük bir yolda depolamak, scriptinizin doğru yolu almasına olanak tanır.
Argümanlar:
name: str
: Bir yolu ayırt etmek için sağlanan benzersiz ad.
path: str
: Kaydedilecek yol.
Döndürür:
path: str
: Kaydedilmiş yol.
Özel blok içindeki kaynak yöneticisine sağladığınız kaynağı almanıza olanak tanır.
Argümanlar:
name: str
: Bir yolu ayırt etmek için sağlanan benzersiz ad.
Döndürür:
path: str
: Kaydedilen yol.
Bu bölüm, özel bir blok sürüklenip bırakıldığında, kopyalanıp yapıştırıldığında veya yeni bir senaryoda yüklendiğinde her seferinde gerçekleştirilir. Bu bölümde genellikle şunları yapmak önerilir:
Özel blok için kaynaklar yüklemek
Kullanılacak bileşenleri tanımlamak (metin girişleri, düğmeler vb.)
Çalışma zamanında değişen iç blok durumları.
Run yöntemi, AugeLab Studio'da bir senaryonun her adımında yürütülür. Özel bloklarınızın iç durumlarını, özel modülleri, sabitleri vb. kullanabilirsiniz.
Girişleri, süper Block
sınıfının sağladığı dinamik özellikleri kullanarak alabilir ve çıktılar gönderebilir, bileşenlerinizin yapılandırmalarını değiştirebilir ve doğru yürütme mantığını seçmek için bileşen durumunu okuyabilirsiniz.
QAFileDialog, kullanıcılara dosya yolu seçme diyaloğu sunan statik bir sınıftır:
Argümanlar
caption: str = ''
: Dosya diyalog başlığının başlığı
directory: str = ''
: Diyalogun başlangıç dizini
filter: str = ''
: Filtrelenecek dosya adları, örneğin -> 'Görüntü Dosyaları (*.png *.jpg *.bmp)'
Döndürür
path:str
: Kullanıcı tarafından seçilen yol.
Argümanlar
caption: str = ''
: Dosya diyalog başlığının başlığı
directory: str = ''
: Diyalogun başlangıç dizini
Döndürür
path:str
: Kullanıcı tarafından seçilen yol.
Bu bölüm, Tasarımcı Penceresi tarafından otomatik olarak oluşturulur ve değiştirilmemelidir. Değiştirilmesi gerekiyorsa, blok adının sınıf adı ile ve op_code
ile aynı olduğundan emin olun.
Sınıfınızın adı, Blok Adı metin düzeninde sağladığınız bağlı olarak belirlenir. Bu bölümde istediğiniz gibi nitelikler veya yöntemler tanımlayabilirsiniz.
input_sockets
niteliği soket türlerini depolar. Her soket türü, veya bölümünde sizin için otomatik olarak oluşturulur.
Bu bölümde de üzerindeki aynı kurallar geçerlidir.
Sağlanan yolu almak için yöntemini kullanın.
Bir yolu kaydetmek için yöntemini kullanın.