İçeriğe atla
Son haberler
Mimari video istemi nasıl yazılır? Veo için 5 örnek ve ipucuArchicad 29’da IFC dışa aktarma: doğru çevirici ve veri ayarlarıBlender Python ile mimari sahnede birim ve nesne konumu ayarlamaBlender’da Follow Path ile kamera ve nesne animasyonu nasıl yapılırGLUCK+ imzalı Sunnyside Studios, Queens’te tek blokta kampüs tasarlıyorUnreal Engine’de Spline Mesh Component ile kavisli elemanlar oluşturmaIntel, Oregon’daki 18A kapasitesinin bir bölümünü Intel 3’e çevirecekNV UEFI Unlocker, GeForce RTX tensor performans sınırını kaldırmayı hedefliyorBlender Cycles iç mekân render’ında ışık yolları nasıl ayarlanır?Gemini API function calling: Mimari iş akışlarında araç çağırma
EğitimlerBlenderMariPython

Blender Python ile mimari sahnede birim ve nesne konumu ayarlama

Blender’ın Python API belgelerini temel alan bu rehberde sahne birim sistemi, nesne konumu ve geçerli animasyon karesi kodla düzenleniyor. Örnekler mimari modelleme ve görselleştirme iş akışlarına uyarlanıyor.

Metrik ölçüm araçları ve aydınlatılmış mimari maket bulunan çağdaş tasarım stüdyosuAI görsel
Temsilî görsel; yapay zekâ ile üretildi.Görsel: 3dsınıfı / FCA AI
KaydetPaylaş0

Kısaca

  1. Sahnenin ölçü birimi sistemi, Scene içindeki unit_settings üzerinden METRIC olarak ayarlanabiliyor.
  2. Bir nesnenin konumuna Object.location özelliğiyle üç koordinatlı bir değer atanabiliyor.
  3. Scene.frame_set() yöntemi, sahne karesini belirleyip nesneleri ve görünüm katmanlarını güncelliyor.
  4. Blender API belgeleri ölçek, birim gösterimi ve nesne yönetimi için ilgili özellikleri açıklıyor.

Bu rehberde ne öğreneceksiniz?

Blender’da mimari modelleme ve görselleştirme yaparken sahne ayarlarını tekrar tekrar elle düzenlemek yerine Python API ile belirli işlemleri kodlamak, aynı adımları farklı dosyalarda tutarlı biçimde uygulamaya yardımcı olur. Bu rehberde sahnenin birim sistemini METRIC olarak ayarlayacak, sahnedeki bir nesnenin konumunu değiştirecek, basit bir ışık nesnesi oluşturacak ve animasyon karesini belirleyeceksiniz. Örnekler Blender’ın resmi Python API belgelerindeki Scene, Object ve UnitSettings açıklamalarına dayanıyor.

Buradaki kodlar, kendi proje dosyalarına göre uyarlanacak küçük başlangıç örnekleridir. Sahnenin mevcut nesne düzenini değiştirebilecekleri için önce bir kopya üzerinde deneme yapmak yerinde olur. Örneklerde belirli bir render motoru, eklenti veya mimari modelleme aracı varsayılmıyor.

Gereksinimler

Blender ve Python API erişimi gerekir. Kaynak belgeler güncel Blender API sayfalarıdır; ancak sağlanan içerik belirli bir Blender sürüm numarası belirtmiyor. Bu nedenle bir üretim dosyasında kodu kullanmadan önce kurulu sürümdeki API belgeleriyle özelliklerin uyumunu kontrol edin. Örneklerde hesap, ücretli lisans veya ek eklenti gereksinimi belirtilmiyor.

Kod parçalarını Blender içindeki Python bağlamında çalıştırın; belgelerdeki örnekler bpy modülünü ve etkin görünüm katmanını kullanıyor. Bir komutu çalıştırmadan önce doğru dosyanın, sahnenin ve görünüm katmanının etkin olduğundan emin olun. Nesne konumu örneği sahnedeki ilk nesneyi hedeflediği için, boş bir sahnede bu kodu çalıştırmak yerine önce nesne oluşturma adımını uygulayın.

1. Sahne birim sistemini ayarlayın

Scene verisi nesnelerin yanı sıra zaman ve render ile ilgili ayarları da içeriyor. Bir sahnenin unit_settings özelliği üzerinden birim sistemi seçilebiliyor. API belgesi system için NONE, METRIC ve IMPERIAL seçeneklerini listeliyor. Aşağıdaki örnek etkin sahnenin sistemini metrik olarak ayarlar:

python
import bpy

scene = bpy.context.scene
scene.unit_settings.system = 'METRIC'

Bu işlem yalnızca sistem ayarını değiştirir. Belgelerde scale_length özelliği, Blender birimleriyle boyutlar arasında dönüşüm için kullanılan ölçek olarak açıklanıyor. Bu değeri proje boyunca bilinçli ve tutarlı kullanın; farklı dosyalardan gelen modellerin ölçülerini karşılaştırırken ayarın etkisini göz önünde bulundurun. Kaynakta length_unit özelliği için yalnızca DEFAULT seçeneği gösterildiğinden, burada belgelenmeyen bir değer atamıyoruz.

Birim ayarlarının geçerli değerlerini gözden geçirmek için özellikleri ekrana yazdırabilirsiniz:

python
import bpy

settings = bpy.context.scene.unit_settings
print(settings.system)
print(settings.scale_length)
print(settings.use_separate)

use_separate, birimlerin çiftler hâlinde gösterilip gösterilmeyeceğini belirleyen bir özellik olarak belgeleniyor. Bu kod değerleri okur; herhangi bir ayarı değiştirmez. Çıktıyı projenin ölçülendirme beklentisiyle karşılaştırarak sonraki adımlara geçin.

2. Sahnedeki bir nesnenin konumunu değiştirin

Object veri bloğundaki location, nesnenin üç koordinatlı konumunu temsil eder. Aşağıdaki kod sahnede en az bir nesne varsa ilk nesnenin konumuna yeni bir değer atar:

python
import bpy

scene = bpy.context.scene
if len(scene.objects) > 0:
    obj = scene.objects[0]
    obj.location = (5.0, 5.0, 5.0)

Bu örnekteki koordinatlar, API belgelerinde verilen temel nesne işlemleri örneğindeki konum değerleriyle aynıdır. Kendi modelinizde bu sayıları ihtiyaç duyulan koordinatlarla değiştirin. Kod, ilk nesneyi seçtiği için sahnedeki nesnelerin sırasını ve hedefin doğru nesne olup olmadığını önceden kontrol edin. Birden çok nesne bulunan projelerde, yanlış nesneye konum atamak model yerleşimini bozabilir.

Belgelerde nesnenin konum, dönüş ve ölçek bilgisinin yanı sıra dünya uzayı dönüşüm matrisi de tanımlanıyor. Bu rehber temel location özelliğiyle sınırlı kalıyor; matris veya ebeveyn ilişkisi üzerinden dönüşüm hesabı yapmıyor. Mimari modelde mevcut hiyerarşiyi korumak gerekiyorsa, konum değişikliğinin ilgili ebeveyn ve kısıt düzeniyle birlikte değerlendirilmesi gerekir.

3. Sahneye bir ışık nesnesi ekleyin

Resmi API örneği, ışık veri bloğu oluşturmayı, bunu bir nesneye bağlamayı ve etkin görünüm katmanının koleksiyonuna eklemeyi gösteriyor. Aşağıdaki örnek aynı temel işlem akışını kullanır; ışığın adını ve konumunu değiştirir:

python
import bpy

view_layer = bpy.context.view_layer
light_data = bpy.data.lights.new(name="Mimari Test Isigi", type='POINT')
light_object = bpy.data.objects.new(
    name="Mimari Test Isigi",
    object_data=light_data
)
view_layer.active_layer_collection.collection.objects.link(light_object)
light_object.location = (5.0, 5.0, 5.0)
light_object.select_set(True)
view_layer.objects.active = light_object

İşlem sırası önemlidir: önce ışığa ait veri bloğu, ardından bu veriyi kullanan nesne oluşturulur; nesne etkin koleksiyona bağlandıktan sonra sahnede görünür hâle gelir. Son satırlar nesneyi seçer ve etkin nesne yapar. Örnek, ışığın render gücü veya başka aydınlatma parametreleri için bir değer belirlemiyor; bu nedenle belirli bir parlaklık ya da render sonucu vaat etmiyor.

4. Animasyon karesini kodla belirleyin

Scene içindeki frame_current özelliği geçerli kareyi belirtir. API belgeleri, animasyon verisi ve görünüm katmanlarının hemen güncellenmesi için frame_set() yöntemini kullanmayı öneriyor. Örneğin:

python
import bpy

scene = bpy.context.scene
scene.frame_set(25)

Buradaki kare numarası örnek amaçlıdır; sahnenin başlangıç ve bitiş aralığını kendiliğinden değiştirmez. Scene belgelerinde frame_start ve frame_end ayrı özellikler olarak tanımlanır. Animasyon veya kamera hareketi içeren bir sahnede, hedef karenin proje aralığı içinde olduğundan ve istenen nesne durumunun o karede oluştuğundan emin olun.

Mimarlık ve görselleştirme iş akışında ne sağlar?

Mimarlar, iç mimarlar ve görselleştirme sanatçıları için bu örnekler sahne hazırlama, tekrar eden nesne yerleşimleri ve animasyon karesi kontrolü gibi işleri kodla düzenlemenin temelini oluşturabilir. Bir sahne standardını ekip içinde paylaşırken birim sistemi gibi ayarları kodda açıkça göstermek, hangi özelliğin değiştirildiğini izlemeyi kolaylaştırır. Bununla birlikte, örnekler otomatik ölçülendirme, dosyalar arası koordinat eşleştirme veya render ayarı kurmuyor.

Donanım gereksinimi, lisans bedeli ya da belirli bir eklenti hakkında kaynaklarda bilgi yok. Uygulama öncesinde dosyanın yedeğini alın, çalıştırılan sahnenin doğru olduğuna bakın ve Blender kurulumundaki API belgeleriyle uyumluluğu doğrulayın. Özellikle nesne sıralamasına bağlı örnekleri doğrudan büyük proje dosyasında çalıştırmak yerine küçük bir test sahnesinde deneyin.

Sık yapılan hatalar

  • Boş sahnede nesne konumu kodunu çalıştırmak: İlk nesne bulunmadığında konum ataması yapılacak bir hedef yoktur. Örnekteki koşul bu durumu kontrol eder.

  • Birim sistemiyle ölçek değerini aynı şey sanmak: system ve scale_length belgelerde ayrı özelliklerdir. Birini değiştirmek diğerinin de otomatik olarak değiştiği anlamına gelmez.

  • Nesneyi koleksiyona bağlamayı atlamak: Resmi ışık örneğinde yeni nesnenin etkin koleksiyona bağlanması, nesnenin mevcut sahnede yer alması için işlem akışının bir parçasıdır.

  • Kare aralığını kontrol etmemek: frame_set() geçerli kareyi ayarlar; başlangıç ve bitiş aralığını düzenleyen özellikler ayrıdır.

Sonraki adımlar

Önce birim ayarını okuyup kontrol eden kodu deneyin, ardından konum örneğini tek bir test nesnesi üzerinde çalıştırın. Işık oluşturma örneğini mevcut proje dosyasına almadan önce yeni bir sahnede doğrulayın. Daha sonra kendi iş akışınız için hedef nesneyi, koordinatları ve kare numarasını açıkça belirleyin. Her değişiklikten sonra sahneyi ve beklenen nesne durumunu kontrol etmek, kodun yanlış hedefe uygulanması riskini azaltır.

Kaynak ve lisans

Bu rehber, Blender Python API belgelerindeki Object, Scene ve UnitSettings sayfalarından Türkçeye uyarlanmıştır. Üç kaynak da CC BY-SA 4.0 lisanslıdır. Kod örneklerinin temel API kullanımı ve özellik açıklamaları bu belgelere dayanır.

Sık sorulan sorular

Blender Python ile sahne birim sistemi nasıl METRIC yapılır?

Etkin sahnenin `unit_settings.system` özelliğine `'METRIC'` atanabilir. API belgeleri birim sistemleri arasında `NONE`, `METRIC` ve `IMPERIAL` seçeneklerini listeliyor.

Blender Python’da nesnenin konumu hangi özellikle değiştirilir?

Object veri bloğundaki `location` özelliğine üç koordinatlı bir değer atanır. Kodun doğru nesneyi hedeflediğini önceden kontrol etmek gerekir.

Blender Python ile animasyon karesi nasıl ayarlanır?

Scene üzerindeki `frame_set()` yöntemi kullanılarak geçerli kare ayarlanabilir. Bu yöntem başlangıç ve bitiş kare aralığını değiştirmez.

Kaynaklar

3 kaynak
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Object.html
Özet
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Scene.html
Özet
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.UnitSettings.html
Özet

Kaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.

3dsınıfı yorumu
3dEditörün değerlendirmesi

Türkiye’de mimarlık ofisleri ve görselleştirme ekipleri için bu örneklerin asıl değeri, karmaşık otomasyondan önce sahne hazırlığındaki temel adımları görünür ve tekrarlanabilir kılması. Birim sistemi, nesne konumu ve kare seçimi gibi işlemler küçük görünse de ekip içi dosya standardı oluştururken kontrol listesine eklenebilir.

Bununla birlikte rehber bir proje otomasyon paketi değil; ölçü dönüşümünü veya render kurulumunu bütünüyle çözmüyor. Kurulum ve lisans maliyeti hakkında kaynaklarda bilgi bulunmadığından maliyet avantajı varsayılmamalı. Ofisler kodu kendi Blender sürümlerinde ve yedek dosyada doğrulamalı; özellikle nesne seçimi ve sahne ölçeğini dikkatle takip etmeli.

Bu habere tepkin ne?

Yorumlar 0

İlk yorumu sen yazKendi test sonuçlarını ya da sorunu paylaş.
+

İlgili haberler