Temel Kavramlar
Şundaki her arayüz ArtisanPlugin.Scripting aynı kuralları izler. Bunları bir kez öğrenin, tüm API aynı şekilde okunacaktır.
Arayüzler ve tutamaçlar
API şunun olarak düzenlenmiştir statik arayüz sınıfları, alan başına bir tane: GemApi, BezelApi, RingCurveApi, PricingApi, vb. Arayüzler iki şey yapar:
- Sorgula aktif belge (
GemApi.All(), GemApi.Selected(), GemApi.Find(id)) — bunlar şunu döndürür tutamaçlar.
- Oluştur yeni nesneler (
GemApi.Create(...)) — bunlar da yeni yapılan şeyin tutamacını döndürür.
Bir tutamaç (IGem, IBezel, …) belgedeki bir nesnenin canlı bir görünümüdür. Salt okunur özellikleri (Shape, CaratWeight, Position, LayerName) ve mutasyon yöntemlerini (Move, SetMaterial, Copy, Delete) açığa çıkarır. Tutamaçlar kasıtlı olarak dardır: bunlar bir betiğin dokunabileceği tek şeydir ve RhinoArtisan'ın dahili çekirdek nesnelerini asla açığa çıkarmazlar. Her tutamaç arayüzünün şunun altında kendi sayfası vardır Kollar.
İşlemler: birim olarak geri alma
Her mutasyonel betiği şunun içine sarmalayın Transaction açıklayıcı bir isimle:
from ArtisanPlugin.Scripting import GemApi as gem, Transaction
with Transaction.Begin("Move 3 round diamonds down"):
for g in gem.Selected():
g.Move(Vector3d(0, 0, -1))
Şunun içindeki her şey with bloğu — Artisan çağrıları ve düz Rhino çağrıları — olur tek bir geri alma adımı o isimle. Kullanıcı Ctrl+Z'ye bir kez basar ve tüm betiklenmiş işlem geri döner. Salt okunur betiklerin (raporlar, ölçümler, fiyat kontrolleri) bir işleme ihtiyacı yoktur.
Hata sözleşmesi
API iki tür hatayı birbirinden ayırır ve bu, kullanıcıya mesaj gösteren her şey için önemlidir:
ArgumentException — Siz geçersiz bir şey geçirdiniz (bilinmeyen şekil adı, karat ağırlığı ≤ 0). Mesaj insan tarafından okunabilir ve olduğu gibi gösterilmesi güvenlidir: "Unknown gem shape 'SQUIRCLE'."
- Diğer tüm istisnalar — Artisan içinde beklenmedik bir şey oldu. Bunlar iletilecek mesajlar değil, rapor edilecek hatalardır.
Girdileri keşif yöntemleriyle doğrulayın (Shapes(), Materials(), …) mümkün olduğunda ve bırakın ArgumentException mesajlar yapamadığınızda kendileri konuşsun.
Birimler ve kurallar
- Boyutlar şundadır milimetre; taş boyutları şuradan türetilir karat ağırlığı arayüz araçlarının kullandığı aynı oran tabloları aracılığıyla.
- Yerleştirme şununla kullanılır
Rhino.Geometry.Plane — düzlemin orijini nesnenin gittiği yerdir ve Z ekseni nesne için “yukarı”dır. Plane.WorldXY “orijinde, düz” anlamına gelir.
- Sabit kelime dağarcıklarıyla (şekiller, malzemeler, metaller) eşleşen dize parametreleri büyük/küçük harf duyarsızdır ve tirelere/boşluklara tolerans gösterir (
"rose-gold" → ROSE_GOLD).
- Betik ile oluşturulan nesneler şuraya iner aynı katmanlar eşdeğer arayüz aracının kullanacağı, aynı malzemeler uygulanmış şekilde.