[Bf-python] My first script: PointAlignment :)

Kon shrikon at design-er.de
Mon Aug 16 13:39:31 CEST 2004


#############
# Name: PunktAngleich
#
# Version: 0.1
#
# Autor: Ishtar
#
# Beschreibung: Das Script gleicht die ausgewählten Punkten an die 
3D-Cursorposition an.
#
# Description: The script align selected vertexes to the 3D-Cursor.
#
# System: Blender 2.3.4
#############

##
# Hauptmodule einladen
##
import Blender

##
# globale Variablen
##
EREIGNIS_KEIN = 1
EREIGNIS_ZEICHNEN = 2
EREIGNIS_BEENDEN = 3
EREIGNIS_HILFE_DEUTSCH = 4
EREIGNIS_HILFE_ENGLISCH = 5
AENDERE_X = Blender.Draw.Create(1)
AENDERE_Y = Blender.Draw.Create(1)
AENDERE_Z = Blender.Draw.Create(1)

##
# grafische Oberflaeche
##
def fenster():
    global 
EREIGNIS_KEIN,EREIGNIS_ZEICHNEN,EREIGNIS_BEENDEN,AENDERE_X,AENDERE_Y,AENDERE_Z,EREIGNIS_HILFE_DEUTSCH
    Blender.BGL.glColor3f(1,1,1)
    Blender.BGL.glRasterPos2i(20,110)
    Blender.Draw.Text("PunktAngleich")
    Blender.BGL.glRasterPos2i(20,95)
    Blender.Draw.Text("Version 0.1")
    Blender.BGL.glRasterPos2i(20,80)
    Blender.Draw.Text("erstellt von Ishtar")

    
AENDERE_X=Blender.Draw.Toggle("X",EREIGNIS_KEIN,20,50,50,15,AENDERE_X.val,"an 
X-Achse angleichen")
    
AENDERE_Y=Blender.Draw.Toggle("Y",EREIGNIS_KEIN,20,30,50,15,AENDERE_Y.val,"an 
Y-Achse angleichen")
    
AENDERE_Z=Blender.Draw.Toggle("Z",EREIGNIS_KEIN,20,10,50,15,AENDERE_Z.val,"an 
Z-Achse angleichen")
    Blender.Draw.Button("Hilfe",EREIGNIS_HILFE_DEUTSCH,120,95,40,15)
    Blender.Draw.Button("Help",EREIGNIS_HILFE_ENGLISCH,120,75,40,15)
    Blender.Draw.Button("Anwenden",EREIGNIS_ZEICHNEN,80,40,80,25)
    Blender.Draw.Button("Beenden",EREIGNIS_BEENDEN,80,10,80,25)
    Blender.Draw.Redraw(1)

##
# Auswerten von allgemeinen Ereignissen
##
def allg_ereignis(erg,wert):
    if erg==Blender.Draw.ESCKEY or 
erg==Blender.Draw.QKEY:Blender.Draw.Exit()

##
# Auswerten von Schalter-Ereignissen
##
def schalter_ereignis(erg):
    if erg==EREIGNIS_BEENDEN:Blender.Draw.Exit()
    elif erg==EREIGNIS_HILFE_DEUTSCH:
        a=Blender.Draw.PupMenu("Funktionsweise%t|1.Cursor 
positionieren|2.Auswaehlen der Punkte|3.Angleichrichtung 
waehlen|5.Anwenden druecken")
    elif erg==EREIGNIS_HILFE_ENGLISCH:
        b=Blender.Draw.PupMenu("Function%t|1.Set Cursorposition|2.Select 
Vertexes|3.Select Align-direction|5.Press 'Anwenden'")
    elif erg==EREIGNIS_ZEICHNEN:
        Ausgangszustand = Blender.Window.EditMode()
        if Ausgangszustand==1:Blender.Window.EditMode(0)
         Objekt = Blender.Object.GetSelected()[0]
        if Objekt.getType()=="Mesh":#Vorpruefung auf Mesh-Objekt
            Gitter = Objekt.getData()
            for i in Gitter.verts:
                if i.sel:
                    if 
AENDERE_X.val==1:i.co[0]=Blender.Window.GetCursorPos()[0]-Objekt.getLocation()[0] 
#Aendere nach X hin
                    if 
AENDERE_Y.val==1:i.co[2]=(Blender.Window.GetCursorPos()[1]-Objekt.getLocation()[1])*-1.0 
#Aendere nach Y hin
                    if 
AENDERE_Z.val==1:i.co[1]=Blender.Window.GetCursorPos()[2]-Objekt.getLocation()[2] 
#Aendere nach Z hin
                Gitter.update()
            Blender.Redraw()
        Blender.Window.EditMode(Ausgangszustand)
Blender.Draw.Register(fenster,allg_ereignis,schalter_ereignis)




More information about the Bf-python mailing list