Başlangıç
İlk RhinoArtisan betiğiniz beş satır ötenizde. Tek ihtiyacınız olan Rhino, RhinoArtisan ve Rhino ile birlikte gelen Python düzenleyicisidir; ek kurulum veya yapılandırma gerekmez. Betiklerinizi şuradan da çalıştırabilirsiniz: Flow Studio RhinoArtisan içinde, ancak bu kılavuz standart Python düzenleyicisine bağlı kalmaktadır.
İlk betiğiniz
RhinoArtisan yüklüyken Rhino'nun Python düzenleyicisini (EditPythonScript) açın ve şunu çalıştırın:
from Rhino.Geometry import Plane
from ArtisanPlugin.Scripting import GemApi as gem, Transaction
with Transaction.Begin("Add a one-carat round diamond"):
g = gem.Create("ROUND", "Diamond", 1.0, Plane.WorldXY)
print("Created %s %s of %.2f ct (%.2f mm)" % (g.Shape, g.Material, g.CaratWeight, g.SizeX))
İşte tüm düzen bu:
- İçe Aktar şuradan ihtiyacınız olan arayüz
ArtisanPlugin.Scripting (şunun gibi kısa takma adlar gem, bezel, pricing betikleri okunabilir tutar).
- Mutasyonları şunun içinde sarmalayın
Transaction böylece kullanıcı tüm işlemi tek bir adımda geri alabilir. Salt okunur çağrıların buna ihtiyacı yoktur.
- Döndürülen tutamacı kullanın —
Create bir IGem döndürür, bunu daha sonra taşıyabilir, yeniden boyutlandırabilir, kopyalayabilir veya silebilirsiniz.
Yazmadan önce okuma
Çoğu arayüz, oluşturma yöntemlerinin kabul ettiği kesin dizeleri döndüren keşif yöntemleri sunar. Tahmin etmek yerine bunları kullanın:
from ArtisanPlugin.Scripting import GemApi as gem
print("Shapes: " + ", ".join(gem.Shapes()))
print("Materials: " + ", ".join(gem.Materials()))
Daha eksiksiz bir örnek
Seçili bir eğri boyunca dağıtılmış taşlar — klasik pave başlangıç noktası:
import rhinoscriptsyntax as rs
from Rhino.Geometry import Plane
from ArtisanPlugin.Scripting import GemApi as gem, Transaction
curves = rs.SelectedObjects()
if not curves:
print("Select a curve first.")
else:
points = rs.DivideCurve(curves[0], 20)
with Transaction.Begin("Pave 20 round diamonds along curve"):
for p in points:
gem.Create("ROUND", "Diamond", 0.02, Plane(p, Plane.WorldXY.ZAxis))
Betik oluşturma API'si şununla doğal bir şekilde birleşir rhinoscriptsyntax ve Rhino.Geometry: ham geometri (eğriler, noktalar, matematik) için Rhino'yu ve mücevherle ilgili her şey için Artisan arayüzlerini kullanın.
Python sunucusu hakkında bilinmesi gerekenler
- Betikler şunda çalışır IronPython 2.7: f-dizeleri yoktur (şunu kullanın
% biçimlendirme) ve tamsayı bölme keser (şunu kullanın float(...) enterpolasyon yaparken).
- Şunu çağırmayın
Views.Redraw() — Artisan mutasyonları görünüm penceresini zaten yeniden çizer.
- Etkileşimli istemlerden kaçının (
rs.GetPoint, rs.GetObjects) otomatik betiklerde; bunun yerine mevcut seçimle çalışın.
Sonraki adımlar