# Rhino Python ile ilk betik: ScriptEditor’da çizgi oluşturma ve otomasyon

Kaynak: https://3dsinifi.com/haber/rhino-python-ile-ilk-betik-scripteditorda-cizgi-olusturma · Kategori: Eğitimler · Yayın: 18 Ekim 2026

> Rhino’nun ScriptEditor’ında Python betiği oluşturup iki nokta arasında çizgi çizmeyi öğrenin. Rehber; Python çalışma ortamı seçimini, hata ayıklamayı ve paket gereksinimlerini de ele alıyor.

## 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

1. Rhino komut satırında `ScriptEditor` komutunu ç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.

2. Aşağıdaki kodu yeni betiğe ekleyin:

```python
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.

3. Betiği **Run > Run** ile çalıştırın ve Rhino görünümünde istenen noktaları seçin. Dosyayı `.py` uzantı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.

4. Ç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:

```python
#requirements: numpy, requests
```

Paket 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.

## Pro ipucu
Betik hata verdiğinde önce dosyanın uzantısını ve `#! python 3` veya `#! python 2` işaretçisini kontrol edin; ardından hata ayıklama için ilgili satıra kesme noktası ekleyin.

## 3dsınıfı yorumu
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ı.

## Kaynaklar
- [developer.rhino3d.com](https://developer.rhino3d.com/guides/scripting/scripting-python/) (özet)
- [developer.rhino3d.com](https://developer.rhino3d.com/guides/rhinopython/what-is-rhinopython/) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
