Yazılarımız

Cadsay

RHINOCEROS İLE NURBS MODELLEME MANTIĞINI KAVRAMSALLAŞTIRMAK

Rhinoceros NURBS yüzey üzerinde kontrol noktası ve knot dağılımını gösteren derece üç eğri

Yaygın bir kavram yanılgısıyla başlamak gerek: Rhinoceros'ta yüzey çizmek, ekranda gördüğünüz noktaları birbirine bağlamak değildir. Yeni başlayanların çoğu kontrol noktası ile yüzeyin geometrik olarak aynı şey olduğunu sanır. Aslında öyle değildir. Yüzey görünmeyen bir matematiksel denklemin grafiğidir; kontrol noktaları o denklemin katsayılarıdır. Bir mücevher tasarımcısı modeli açıp kontrol noktasını 2 mm hareket ettirdiğinde yüzey kendi başına yeni bir şekle bürünür çünkü arka planda yeniden bir B-spline değerlendirmesi koşar.

Bu ayrım bir mimar için soyut bir matematik tartışması gibi gelebilir. Ama bir mobilya tasarımcısı için pratik sonucu çok doğrudandır: az sayıda kontrol noktasıyla daha temiz akan bir koltuk sırtı, çok sayıda noktayla zorlanmış bir yüzeyden hem üretim kalitesi hem de revizyon hızı bakımından üstündür. McNeel'in resmi öğrenme kaynaklarında bu matematiksel temel kavramsal olarak anlatılır; bu yazıda ise mantığın saha karşılığı, Türk endüstriyel tasarım ve mimari serbest form pratiğinden örneklerle açılır.

NURBS'ü Hangi Dört Bileşen Tanımlar?

Bir NURBS eğrisi veya yüzeyi dört şeyle tanımlanır: derece, kontrol noktası, knot vektörü ve değerlendirme kuralı. Ağırlık (weight) kontrol noktasının bir özelliği olduğu için ayrı bir bileşen değil, kontrol noktasının altında yaşar. NURBS adının açılımı bu yapının iki ucunu birleştirir: Non-Uniform (knotlar eşit aralıklı değil), Rational (kontrol noktaları ağırlık taşır), B-Spline (temel fonksiyonlar B-spline).

Pratik karşılığını sıralarsak:

  • Derece (Degree): Tipik değerler 1, 2, 3 ve 5. Doğru veya polyline genelde derece 1, NURBS çember derece 2, serbest form eğrilerin çoğu derece 3 veya 5. Yüksek derece daha akıcı ama daha geç tepkili form üretir.
  • Kontrol noktası (Control Point): Eğriyi/yüzeyi şekillendiren noktalar. Minimum sayı derece + 1; yani derece 3 eğri en az 4 kontrol noktası ister.
  • Knot vektörü: Eğrinin parametre uzayını bölen sayı listesi. Uzunluğu derece + N - 1 formülüyle bulunur; burada N kontrol noktası sayısı. Derece 3 ile 11 kontrol noktalı bir eğride knot sayısı 13'tür.
  • Ağırlık (Weight): Her kontrol noktasının kendi katsayısı. Tüm ağırlıklar 1 ise eğri "non-rational"; çember ve elips gibi tam koniği yakalayan formlarda ağırlıklar değişir, eğri "rational" olur.

Bu dört bileşen birbirine kilitlidir. Rhinoceros'ta _InsertControlPoint ile yeni nokta eklediğinizde knot vektörü otomatik olarak güncellenir; _RemoveKnot komutu da knot azaltırken kontrol noktası geometriyi koruyacak şekilde yeniden yerleşir. _What komutu seçili bir eğri veya yüzey üzerinde tüm bu değerleri (derece, kontrol noktası sayısı, knot vektörü, açık/kapalı durumu, U-V boyutları) tek pencerede listeler — yeni başlayanın en sık bakması gereken ilk komut budur.

Az Nokta Neden Çok Noktaya Üstün?

İTÜ veya MSGSÜ endüstriyel tasarım stüdyosunda yeni başlayan bir öğrencinin ilk refleksi şudur: bir vazo formu çiziyor, beklediği eğri çıkmıyor, hemen _InsertControlPoint ile orta bölgeye 3-4 nokta daha ekliyor, sonra her birini ayrı ayrı oynatmaya çalışıyor. Bir süre sonra yüzey "dalgalı" bir hal alıyor; render aldığında zebra analizinde yansımalar kırılıyor.

Rhinoceros NURBS eğrisinde 5 kontrol noktası ve 12 kontrol noktası kıyaslamalı diyagram az nokta yüzey kalitesi

Nedeni şu: NURBS eğrisi, kontrol noktalarına lastik bant mantığıyla bağlıdır. Her nokta civarındaki eğri parçasını bir alanda etkiler; çok yakın iki noktanın etkisi üst üste binince yüzey küçük dalgalar üretir. Çözüm tek cümle: önce az nokta ile temiz kurgu, gerekirse sonra detay.

Sahadan örnek senaryo: bir kompozit yat üreticisi 8 metrelik tekne gövdesinin orta kesitini modelliyor. İki yaklaşım:

  1. Az nokta yaklaşımı: 7 kontrol noktası, derece 3 eğri. Knot vektörü uzunluğu 9. Yüzey _Loft ile uzatılınca zebra analizinde paralel şeritler kırılmadan akıyor. Üretim için CNC freze yolu çıkartmak temiz.
  2. Çok nokta yaklaşımı: 24 kontrol noktası, aynı derece. Knot 26. Zebra çizgilerinde 3-4 yerde mikro kırılma görünüyor. Kompozit kalıp üretiminde 0,5 mm seviyesinde dalgalanma elle perdah ister; iş günü artar.

Tekne, otomotiv yan sanayi kaporta yüzeyi ve mücevher gövdesi gibi G2 süreklilik gerektiren işlerde bu fark üretim maliyetini doğrudan etkiler. Önce minimum nokta sayısıyla form arayışı yapılır, son aşamada lokal düzeltme için _InsertControlPoint kullanılır — tersi değil.

Süreklilik G0 G1 G2 G3 Üretimi Nasıl Etkiler?

İki yüzey kenarı birleştiğinde dört farklı kalitede buluşabilir. Bu kalite seviyeleri G0, G1, G2 ve G3 olarak adlandırılır ve render ile üretim sonucunu doğrudan etkiler:

  • G0 (pozisyonel süreklilik): İki yüzey kenarı sadece dokunur. Pozisyonlar aynı ama kenarda görünür bir kırılma vardır. Bir kutu birleştiğinde köşede oluşan keskin hat bu seviyededir.
  • G1 (teğet süreklilik): Kenarda teğet vektörleri paralel ve aynı yönlüdür. Kırılma görünmez ama eğrilikler farklı yerden başlar. Plastik kutu kalıplarında yaygın seviye.
  • G2 (eğrilik süreklilik): Teğet vektörlerin hem yönü hem büyüklüğü aynı, eğrilik değişim hızı aynı. Render'da zebra analizinde çizgiler kesintisiz akar. Otomotiv kaportası, mücevher ve premium ürün tasarımının fiili standardı.
  • G3 (eğrilik değişim sürekliliği): Eğrilik değişim oranı da sürekli. Yansımalarda ayna gibi akış. Yüksek seviye ürün tasarımı, parlatılmış yüzey gerektiren mücevher.

G2 olan iki yüzey otomatik olarak hem G1 hem G0 sürekliliğindedir; üst seviye alttakini kapsar. Pratik Rhinoceros komutları bu seviyeleri doğrudan kontrol eder: _MatchSrf komutu açıldığında "Position", "Tangency" ve "Curvature" seçenekleri sırasıyla G0, G1, G2 sürekliliği uygular. _BlendSrf ile iki yüzey arasında geçiş yüzeyi oluşturulurken aynı pencerede her iki kenar için süreklilik tipi ayrı ayrı seçilir. _Zebra ve _EnvironmentMap komutları ise birleşim hattının kalitesini gözle test etmek için kullanılır.

Mimari serbest form bir cephe panelleri tasarlanırken G1 çoğu zaman yeterlidir; cephe levhaları üretim toleransıyla bir miktar düzleştirme zaten yapar. Ama mücevher tasarımında bir yüzük gövdesi G2 olmadığında parlatma sonrası ışık çatlağında ince çizgi görünür — perdahta saatler harcanır. Üretim sınıfına uygun süreklilik seviyesi seçmek tasarımcının teknik kararıdır.

Curve Surface Polysurface Ayrımı

Rhinoceros'ta her nesne aynı kategoriye girmez; bu ayrımı erken oturtmak ilk hafta yaşanan "neden bu komut çalışmıyor?" kayıplarını yarı yarıya keser:

  • Curve (Eğri): Bir parametre boyutunda yaşar. _Line, _Polyline, _Arc, _Curve, _InterpCrv komutlarıyla üretilir. Tek başına render edilmez; yüzey üretimi için besleyicidir.
  • Surface (Yüzey): İki parametre boyutu vardır: U ve V. Her tek yüzeyin dört kenarı, bir U yönü ve bir V yönü olur. _Loft, _Sweep1, _Sweep2, _NetworkSrf, _Revolve, _EdgeSrf komutları eğrilerden yüzey kurar.
  • Polysurface ve Solid: Birden fazla yüzeyin kenarlarından birleşmesi polysurface'tır. Kapalı bir hacmi sınırlıyorsa solid sayılır. _Join, _Cap, _BooleanUnion, _BooleanDifference komutları bu kategoride çalışır.

Pratik bir test: _What komutu seçili nesnenin tipini söyler. Çıkan pencerede "closed polysurface" yazıyorsa solid, "open polysurface" yazıyorsa kenarlardan biri kapanmamış demektir. _ShowEdges komutu çalıştırılıp "naked edges" seçeneği aktif edildiğinde kapanmamış kenarlar renkli olarak görünür. CNC üretim, 3D yazıcı çıktısı veya simülasyon hazırlığı yapılacaksa naked edge sayısı sıfır olmalıdır.

Türk Tasarım Pratiğinde NURBS Nerede Kullanılır?

Rhinoceros, Türk endüstriyel tasarım ve mimari pratiğinde son yıllarda yerleşmiş bir kabul gördü. Üç ana kullanım alanı net olarak ayrışıyor:

  1. Mobilya ve aydınlatma tasarımı: Bursa ve İstanbul Maslak ekseninde özel üretim koltuk, sandalye ve aydınlatma stüdyoları, kompozit oturma elemanlarının kalıp dosyalarını Rhino'da hazırlıyor. Üretim CNC freze ile yapıldığında G2 yüzey sürekliliği elle perdah süresini azaltıyor.
  2. Mücevher tasarımı: Kapalıçarşı ve İstanbul Kuyumcukent çevresinde Rhinoceros + Grasshopper + V-Ray üçlüsü serileşmiş üretim modeli haline geldi. Bir yüzük tasarımı önce parametrik olarak Grasshopper'da kurulup farklı taş boylarına göre varyantları üretiliyor. Wax 3D yazıcıyla doğrudan döküm modeli çıkıyor.
  3. Mimari serbest form ve parametrik cephe: İstanbul, Ankara ve İzmir'deki çağdaş mimari ofisler, eğri cephe paneli, kabuk çatı ve iç mekan tavan formlarını Rhinoceros'ta modelliyor. Üretim için panel paneline ayrıştırma _Squish veya Grasshopper içindeki Lunchbox eklentisi ile yapılıyor.

Bu üç alanın ortak özelliği: ortogonal AutoCAD veya Revit modelinin tek başına çözmediği serbest formun, NURBS ile matematiksel garanti altına alınmış pürüzsüz yüzey olarak üretime gönderilmesi. Kompozit yat üretiminde de aynı zincir geçerli — Tuzla ve Antalya yat sanayinde Rhino dosyaları kompozit kalıp atölyelerine doğrudan iletiliyor.

Layer ve Adlandırma Disiplini Üretim Dosyasını Kurtarır

Rhinoceros layer paneli ve mimari serbest form modelin katman organizasyonu Türkçe etiketli

Bir mimari serbest form veya mücevher modelinde 200-400 nesne kolayca birikir: referans eğriler, yardımcı yüzeyler, denenmiş ama vazgeçilmiş varyantlar, bitmiş polysurface'lar, render için ayrılan ışık çubukları. Layer disiplini olmadan üç hafta sonra dosyaya dönen tasarımcı kendi mantığını çözemez.

Üretime gönderilen dosyalarda işe yarayan bir kurulum:

  • 00_Referans: İçeri alınan plan, fotoğraf, taranan eskiz. Kilitli (locked) tutulur, üretime gitmez.
  • 01_Eğriler: Yardımcı kesit, profil, rail eğrileri. Yüzeye dönüştükten sonra silinmez; revizyon için kalır.
  • 02_Yüzeyler: Tek tek surface katmanları. Renk farkı varsa yüzey adına göre ayrı alt katmanlar.
  • 03_Katı: Polysurface ve solid haline gelmiş bitmiş parçalar. Üretim dosyasına buradan toplanır.
  • 04_Üretim: CNC freze yolu, ayrılmış panel parçaları, 3D yazıcı için optimize edilmiş geometri.
  • 05_Render: Işık, kamera, materyal yardımcı objeleri.
  • 99_Çöp: Silinmek yerine kapatılan denemeler.

Nesne adlandırma ayrı bir disiplin: "Surface_07" yerine "govde-on-yuzey" ya da "yuzuk-bilezik-ust" yazmak _SelName komutuyla aramayı 2 saniyeye düşürür. _BlockManager ile blok haline getirilen tekrar eden modüller (bir cephe paneli, bir oturma birimi) tek yerden güncellenince tüm dosyaya yayılır. Rhinoceros eğitimi kapsamında bu layer ve blok disiplini ilk haftadan itibaren kalıba dökülür; çünkü sonradan eklenmesi neredeyse imkânsızdır.

Grasshopper'a Geçiş Nasıl Hazırlanır?

Belli bir noktadan sonra her Rhinoceros kullanıcısı Grasshopper'la karşılaşır. Grasshopper bir eklenti değil, Rhino'nun parametrik tasarım arayüzüdür ve Rhino kurulumuyla birlikte gelir. NURBS mantığı oturmuş bir kullanıcı için Grasshopper'a geçiş tanıdık bir şekilde gelişir; oturmamışsa görsel programlama dili soyutlaşır.

Parametrik düşünmek özetle şudur: bir formu "şu noktaları şuraya çiz" yerine "şu girdiyle şu kuralı uygula, sonuç değişsin" diye tarif etmek. Rhinoceros'ta bu refleksleri kuran alışkanlıklar:

  • Eğriyi sabit nokta yığını yerine, az ve doğru yerleştirilmiş kontrol noktasıyla esnek tasarlamak
  • Aynı yüzeyi _Sweep2 ile üretirken rail eğrilerini sonradan değiştirilebilecek şekilde 01_Eğriler katmanında saklamak
  • Bir cephe modülünü tek tek modellemek yerine _ArrayLinear, _ArrayPolar, _FlowAlongSrf komutlarıyla çoğaltılabilir kurmak
  • "Bu sayıyı değiştirsem ne olur?" sorusunu sürekli sormak

Bu reflekslerle çalışan biri Grasshopper'a geçtiğinde tanıdık bir mantık görür: slider bir sayıyı tutar, component bir komuta karşılık gelir, data tree ise Rhino'da zaten yaptığınız "şu eğri grubu şu yüzeyi besler" kurgusunun resmi adıdır. Mücevher tasarımında 6 farklı taş boyuna otomatik varyant üretmek, mimari cephede yükseklik değişimine göre panel kıvrımının kendiliğinden ayarlanması — bu altyapı Grasshopper olmadan elle çözülmesi 8-10 kat zaman alan işleri 15 dakikaya indirir.

İlk Hafta için Pratik Egzersiz Akışı

NURBS mantığı tek bir tutorial videosuyla değil, küçük tekrarlı egzersizlerle yerleşir. Aşağıdaki haftalık rutin pek çok yeni kullanıcıyı "tamam, anladım" noktasına getirir:

  1. Gün 1: Sadece _Line, _Polyline, _Curve ve _InterpCrv. Aynı formu üç farklı komutla çiz; kontrol noktası sayılarını _What ile karşılaştır.
  2. Gün 2: _Loft ve _Sweep1. Bir vazo formu modelle, _Revolve ile karşılaştır. Az ve çok kontrol noktası farkını zebra analiziyle gör.
  3. Gün 3: _NetworkSrf ve _PatchSrf. Düzensiz açıklığa yüzey ger; ikisinin farkını gör.
  4. Gün 4: _MatchSrf komutuyla G0, G1, G2 sürekliliği uygula. _Zebra ile her seviyenin farkını gözle test et.
  5. Gün 5: Boolean komutları, _Cap, _ShowEdges. Naked edge'siz kapalı bir solid çıkar.
  6. Gün 6: Layer disiplinini sıfırdan kur. _FlowAlongSrf ile bir desen modülünü cepheye yatır.
  7. Gün 7: Tüm haftayı tek bir mini projede topla — bir aydınlatma elemanı, bir oturma birimi eskizi ya da küçük bir mücevher gövdesi.

Bu rutinin sonunda iki şey değişir: komutlar kasla ezberlenir ve daha önemlisi NURBS yüzeyin nasıl davrandığına dair bir sezgi oluşur. O sezgi kurulduğunda artık hangi komutu kullanacağınızı değil, hangi geometrik çözümü hedefleyeceğinizi düşünmeye başlarsınız; Rhinoceros'tan beklenen en kıymetli içsel dönüşüm de tam olarak budur.

 CADSAY