Kısaca
- ScriptEditor komutuyla Rhino içindeki Python betik düzenleyicisi açılabiliyor.
- Yeni betik oluştururken Python 3 seçilip kod Run > Run ile çalıştırılabiliyor.
- Rhino, ayrı çalışma ortamları olarak CPython tabanlı Python 3 ve IronPython tabanlı Python 2 sunuyor.
- PyPI paketleri ScriptEditor üzerinden kurulabiliyor ve betik içinde gereksinim olarak belirtilebiliyor.
Bu rehberde ne öğreneceksiniz?
Bu rehber, Rhino içinde çalışan küçük bir Python betiği hazırlamaya odaklanıyor. Önce ScriptEditor’da yeni bir dosya açıp iki nokta seçerek aralarına çizgi ekleyen bir örnek oluşturacağız. Ardından betiği çalıştırma, hata ayıklama, Python çalışma ortamını seçme ve paket gereksinimlerini yönetme konularına geçeceğiz.
Örnek, Rhino’nun rhinoscriptsyntax işlevlerinden yararlanıyor. Amaç kapsamlı bir araç geliştirmek değil; kullanıcı girdisi alıp Rhino’da geometri oluşturan bir betiğin temel akışını görmektir. Bu başlangıç, tekrarlanan modelleme adımlarını daha sonra otomatikleştirmek için bir temel sağlayabilir.
Gereksinimler ve sürüm seçimi
İş akışı Rhino ve içindeki ScriptEditor ile yürütülüyor. Komut satırına ScriptEditor yazarak düzenleyiciyi açın. Yeni betik oluştururken File > New menüsünden Python 3’ü seçebilirsiniz. Kaynaklarda bu çalışma için ayrıca bir hesap, ücret veya özel donanım gereksinimi belirtilmiyor.
Rhino’nun Python seçenekleri aynı motorun farklı sürümleri değil, ayrı uygulamalar olarak sunuluyor. Kılavuz, Python 3’ü CPython; Python 2’yi ise IronPython olarak tanımlıyor. Python 3 tarafı PyPI paketlerini kullanabiliyor. RhinoCommon çağrılarına yoğunlaşan veya .NET çoklu iş parçacığından yararlanması gereken bazı betiklerde Python 2 değerlendirilebilir. Geliştirici belgesi, çoğu yeni betik için Python 3’ü başlangıç seçeneği olarak öneriyor.
Sürüm numaralarını okurken kaynakların tarihini de göz önünde bulundurun. 2025’te güncellenmiş genel Rhino.Python kılavuzu Rhino 8 için Python 3.9.11, Rhino 7 için IronPython 2.7.12 bilgisi veriyor. 2026’da güncellenmiş ScriptEditor belgesi ise çalışma ortamlarını anlatıyor ancak bu numaraları belirtmiyor. Bu nedenle kurulu Rhino sürümündeki seçenekleri düzenleyicide kontrol etmek en doğru başlangıçtır.
İlk betiği oluşturma
Rhino komut satırında
ScriptEditorkomutunu çalıştırın. Düzenleyici açıldığında File > New yolunu izleyip Python 3’ü seçin. ScriptEditor, düzenlediğiniz dosyanın hangi dil ve çalışma ortamını kullandığını gösterir.Aşağıdaki kodu yeni betiğe ekleyin:
import rhinoscriptsyntax as rs
first_point = rs.GetPoint("Çizginin başlangıç noktası")
if first_point:
second_point = rs.GetPoint("Çizginin bitiş noktası")
if second_point:
rs.AddLine(first_point, second_point)Kod, Rhino’dan önce başlangıç, sonra bitiş noktası seçmenizi ister. Her iki seçim de yapıldığında iki nokta arasında bir çizgi oluşturur. Nokta seçimlerinden biri yapılmazsa çizgi ekleme adımına geçilmez. Örnekteki işlev adları Rhino’nun rhinoscriptsyntax arayüzünü kullanır.
Betiği Run > Run ile çalıştırın ve Rhino görünümünde istenen noktaları seçin. Dosyayı
.pyuzantısıyla kaydedebilirsiniz. Düzenleyicideki File > New From Template seçeneği, bir şablondan yeni dosya başlatmak için başka bir yol sunar.Çalışan örneği küçük tutarak her adımın sonucunu gözlemleyin. Sonrasında aynı yaklaşımı tekrarlanan seçim ve geometri oluşturma işlerine uyarlayabilirsiniz. Rhino.Python; etkileşimli betikler, özel komutlar ve algoritmalarla geometri üretimi gibi kullanım alanlarını destekliyor. Buradaki örnek ise yalnızca nokta alma ve çizgi oluşturma akışını gösteriyor.
Çalıştırma, hata ayıklama ve Python motoru
Bir betiği her seferinde düzenleyicinin içinden başlatmak zorunlu değil. Rhino geliştirici kılavuzuna göre ScriptEditor, kayıtlı dosyaları Rhino komut satırından, makrodan, araç çubuğu düğmesinden veya takma addan çalıştırabiliyor. Böylece betik, kullanım biçimine göre Rhino’daki farklı başlatma noktalarına bağlanabilir. Makroya doğrudan kod yazıldığında, Rhino’nun doğru motoru seçebilmesi için dil işaretçisi eklenmesi gerektiğini unutmayın.
Dosyanın hangi Python ortamında açılacağı uzantı ve betik içindeki işaretçiyle ilişkilidir. #! python 3 veya #! python 2 ifadesi ilgili motoru belirtir; .py3 ve .py2 uzantıları da belirli bir ortama işaret eder. Düz .py dosyalarında betiğin istediği ortam dikkate alınır. Bu ayrımı, dosya beklenmedik şekilde çalıştığında kontrol edilecek noktalardan biri olarak değerlendirin.
Betiğin bir satırda durup değişkenleri incelemesini istiyorsanız, düzenleyicide o satırın yanındaki boşluğa tıklayarak kesme noktası ekleyin. Ardından Run > Debug yoluyla hata ayıklamayı başlatın. Betik duraklatıldığında adım adım ilerleyip değişkenleri ilgili panellerde inceleyebilirsiniz. Kesme noktası eklenmediyse Debug seçeneği kullanılamaz.
Paketler ve kontrol edilebilecek sorunlar
Python 3 betiklerine PyPI paketleri eklemek için ScriptEditor panelindeki Install Package seçeneğini kullanabilirsiniz. Paket arama ya da adını ve sürümünü girme seçenekleri bulunuyor. Paket bilgisini betik içinde taşımak gerekiyorsa Add Package Reference to Script seçeneğinin işaretli olup olmadığını kontrol edin; geliştirici kılavuzu bu tercihin gerekli paketleri betik metninde belirtmeye yaradığını aktarıyor.
Paket gereksinimleri birden fazla adla da yazılabiliyor. Örneğin aşağıdaki satır, numpy ve requests paketlerini listeler:
#requirements: numpy, requestsPaket kurulumundan sonra veya içe aktarılan modüller değiştiğinde, ilgili Python motorunu yeniden yüklemek gerekebilir. ScriptEditor’daki Tools > Reload Python 3 (CPython) Engine ya da Tools > Reload Python 2 (IronPython) Engine seçenekleri bu amaçla kullanılabilir; kılavuza göre bunun için Rhino’yu yeniden başlatmak gerekmez.
Bir betik çalışmadığında önce dosyanın seçtiğiniz Python motoruyla uyumlu olup olmadığını ve uzantı ya da dil işaretçisinin ne gösterdiğini kontrol edin. Paket kullanan bir dosyada, gereksinim bilgisinin betiğe eklenip eklenmediğine bakın. Bunlar kaynakların özellikle sık yaşandığını söylediği sorunlar değil, sorunun kaynağını araştırırken gözden geçirilebilecek olasılıklardır. Hata ayıklama sırasında da önce kesme noktası ekleyip sonra Debug seçeneğini deneyin.
Sonraki adımlar
Birden fazla betikte kullanacağınız kodu ayrı bir modüle taşıyıp başka dosyalardan içe aktarabilirsiniz. Rhino’nun bu modülü bulabilmesi için modül klasörünün arama yollarında yer alması gerekir; bu klasörler Options içindeki Module Search Paths bölümünde listelenir. Geliştirici kılavuzu, .pth dosyasıyla yol ekleme seçeneğine de değiniyor.
Daha ileri kullanımda betikler RhinoCommon’a erişebilir. Python 3 bu erişimi Python.NET üzerinden sağlarken Python 2, .NET üzerinde çalışır. Grasshopper içinde Python kullanımı da mümkündür; ancak bileşenler ve editör akışı için ayrı bir Grasshopper Python kılavuzu bulunuyor. Dolayısıyla bir sonraki aşamayı seçerken hedefin Rhino içindeki bağımsız betik mi, yoksa Grasshopper tanımı içinde çalışan özel bileşen mi olduğunu belirleyin.
Kaynak ve lisans
İçerik, McNeel’in “Scripting: Python” (K1) ve “What is Rhino.Python?” (K2) geliştirici kılavuzları temel alınarak özgün Türkçe anlatımla uyarlanmıştır. Kaynak kayıtlarında lisans sınıflandırması “serbest” olarak verilmiştir; sayfalarda telif hakkı ve “All Rights Reserved” ibaresi bulunuyor, ayrıca açık lisans adı belirtilmiyor.
Sık sorulan sorular
Rhino’da Python betiği nasıl çalıştırılır?
Komut satırında ScriptEditor komutunu çalıştırıp yeni bir betik oluşturun ve Run > Run seçeneğini kullanın. Betik dosyaları komut satırından, makrodan, araç çubuğundan veya takma addan da başlatılabilir.
Rhino Python 3 mü, Python 2 mi kullanıyor?
Geliştirici kılavuzları Rhino’nun CPython tabanlı Python 3 ve IronPython tabanlı Python 2 çalışma ortamlarını anlattığını belirtiyor. Python 3, PyPI paketlerini kullanabiliyor; motor seçimi betiğin gereksinimlerine bağlı.
Rhino Python betiğine PyPI paketi nasıl eklenir?
ScriptEditor panelindeki Install Package seçeneğinden paket aranabilir veya adı ve sürümü girilebilir. Add Package Reference to Script seçeneği, paket gereksinimlerinin betik içinde belirtilmesine yardımcı olur.
Kaynaklar
2 kaynakKaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.
Rhino’da aynı seçim ve geometri adımlarını tekrarlayan mimarlık ofisleri ve öğrenciler için Python, küçük otomasyonları denemek adına kullanışlı bir başlangıç sunuyor. Nokta seçip çizgi oluşturan örnek dar kapsamlı olsa da betiğin Rhino içindeki etkisini anlamayı ve hata ayıklamayı pratik biçimde gösteriyor.
Türkiye’deki ekipler için kapsamı büyütmeden önce mevcut Rhino kurulumundaki Python ortamını ve kullanılacak paketleri kontrol etmek önemli. Kaynaklarda fiyat, donanım gereksinimi veya lisans maliyeti belirtilmediğinden bu başlıklarda varsayım yapılmamalı. RhinoCommon ya da Grasshopper’a geçişte ise farklı çalışma akışları bulunduğu göz önünde tutulmalı.




Yorumlar 0