#!BPY """ Released under the Blender Artistic Licence (BAL) Name: 'Displace Verts' Blender: 237 Group: 'Mesh' Tooltip: 'Displaces selected verts only.' """ __author__ = "pat" __version__ = "1.0a - 01/10/05 -" __email__ = ('Author, pat:psycho3d*de') __url__ = ("Author's website, www.psycho3d.de") __bpydoc__ ="""\ This script displaces the selected verts only. It should be called from EditMode. """ import Blender from Blender.Draw import * from Blender.BGL import * from random import randint ### config ### master = Create(0.) displaceX = Create(0.) displaceY = Create(0.) displaceZ = Create(0.) def displace(): ob=Blender.Object.GetSelected()[0] Blender.Window.EditMode(0) me = ob.getData() for vert in me.verts: if (vert.sel == 1): vert.co[0] += randint(-1000,1000)/1000. * displaceX.val vert.co[1] += randint(-1000,1000)/1000. * displaceY.val vert.co[2] += randint(-1000,1000)/1000. * displaceZ.val me.update() Blender.Window.EditMode(1) def gui(): global displaceX, displaceY, displaceZ, master col = Blender.Window.Theme.Get()[0].get("buts").back glClearColor(col[0]/255., col[1]/255., col[2]/255., col[3]/255.) glClear(GL_COLOR_BUFFER_BIT) master = Number("Master: ", 4, 10, 180, 100, 20, master.val, 0., 5.) displaceX = Number("X: ", 2, 10, 150, 100, 20, displaceX.val, 0., 5.) displaceY = Number("Y: ", 2, 10, 120, 100, 20, displaceY.val, 0., 5.) displaceZ = Number("Z: ", 2, 10, 90, 100, 20, displaceZ.val, 0., 5.) Button("Displace", 3, 10, 60, 100, 20, "Die eingestellten Werte auf die ausgewählten Verts anwenden.") Button("Beenden", 1, 10, 30, 100, 20, "Selbsterklärend :)") def event(evt, val): if (evt == QKEY and not val): Exit() def bevent(evt): if (evt == 1): Exit() elif evt == 3: displace() elif (evt == 4): displaceX.val=master.val displaceY.val=master.val displaceZ.val=master.val Redraw() Register(gui, event, bevent)