Blender 3D: Noob to Pro/Creating a GUI for your script

Vikikitap, özgür kütüphane
Gezinti kısmına atla Arama kısmına atla

Scriptleriniz için bir GUI yaratmak oldukça kolay ve değişiklikler yapmayı herkes için kolaylaştırı.

Grafik kullanıcı arayüz oluşturma komutu,


Blender.Draw.Register(draw,event,button) dur.

Bu komut fonksiyonları kayıt eder

   * draw - GUI çizmek için
   * event - fare tuş tıklamalarına tepki için
   * button - düğme basma olayına GUI tepkisi için

Bu komut kendi kendine çaışmaz. Öncelikle bu üç fonksiyonu tanımlamalısınız.

İlk olarak Blender hazır kütühane fonksiyonlarını import edeceğiz.


import Blender

Sonra draw fonksiyonunu tarif edeceğiz.

def draw():

bu fonsiyonun içinde GUI çizeceğiz. Burada drawing fonksiyon örneği kullanabiliriz. Bu görünen pencereyi kaldırır.

Blender.BGL.glClear(Blender.BGL.GL_COLOR_BUFFER_BIT)

Ve sonraki komut düğmeyi çizecek. komuttaki ilk numaraya dikkat edin. 1 düğmenin buton1 olduğunu tanımlar. Daha sonra bu düğmeye müracat edeceğiz.


Blender.Draw.Toggle("Clear origin",1,10,20,100,20,0,"Tooltip")

Sonra event fonksiyonunu tanımlayacağız. Klavyede tuşa basıldığında çalışacak kod, foksiyona evt değişkeni olarak geçerilir.

def event(evt,val):

Şimdi escape tuşunun basılı olup olmadığını test edeğiz.


if evt == Blender.Draw.ESCKEY:

Basılı olduğunda scriptten çıkar ve fonksiyondan return eder.

Blender.Draw.Exit() return

sonraki adımda düğme fonksiyonunu tanımlayacağız. bu fonksiyon düğmeye basıldığında bir eylem yapacaktır.


def button(evt):

Şimdi önceki tanımladığımız düğme numarasını tutan evt değişkenini test edeceğiz.

if evt == 1:

Eğer basılı ise 3D penceresinde seçili nesneyi merkeze hareket ettireceğiz. Ve ekranı yeniden çizeceğiz.

Blender.Scene.GetCurrent().getActiveObject().loc = (0,0,0) Blender.Window.Redraw()

Son olarak komutu yazarak GUI yaratabiliriz.

Blender.Draw.Register(draw,event,button)

Olay budur. Kend kendinize scripte girmek için blender da text düzenleyici aşağıdakileri yazınız. Ve alt p basarak scriğti çalıştırınız. tüm scriğt buradadır. # işaretinden sonraki açıklamadıri ve atılabilir.


import Blender # This will import the library of blender functions we will use

def draw(): # Define the draw function (which draws your GUI). Blender.BGL.glClear(Blender.BGL.GL_COLOR_BUFFER_BIT) # This clears the window

       # Add here drawing commands to draw your GUI, for example:

Blender.Draw.Toggle("Clear origin",1,10,20,100,20,0,"Tooltip") # The line above will draw a toggle button. # Note the first number, '1' means this is button number 1

def event(evt,val): # Define mouse and keyboard press events if evt == Blender.Draw.ESCKEY: # Example if esc key pressed Blender.Draw.Exit() # then exit script return # return from the function

def button(evt): # Define what to do if a button is pressed, for example: if evt == 1: # If button '1' is pressed, set active object to centre: Blender.Scene.GetCurrent().getActiveObject().loc = (0,0,0) Blender.Window.Redraw() # This will redraw the 3d window.

  1. You can now run the Graphical User Interface by typing the command:

Blender.Draw.Register(draw,event,button)

  1. End of script


Noob Notu: Bu scripti çalıştırdığımda error aldım Attribute Error: 'Scene' object has no attribute 'getActiveObject'. I changed "Blender.Scene.GetCurrent().getActiveObject().loc = (0,0,0)" ifadesini "Blender.Scene.GetCurrent().objects.active.loc = (0,0,0)" a çevirdim ve çalıştı.