I’m having some problems, and hoping someone here can show me where I’m going wrong or confirm I’m not going insane.
Running this script gives me a green square:-
import Blender
from Blender import NMesh, Material
#Let's make a square
square = NMesh.GetRaw()
f = NMesh.Face()
v = NMesh.Vert(0.0, 0.0, 0.0)
square.verts.append(v)
v = NMesh.Vert(1.0, 0.0, 0.0)
square.verts.append(v)
v = NMesh.Vert(1.0, 1.0, 0.0)
square.verts.append(v)
v = NMesh.Vert(0.0, 1.0, 0.0)
square.verts.append(v)
#Fill in the face
for i in range (0, 4):
f.v.append(square.verts[i])
square.faces.append(f)
mat = Material.Get("Green") #assuming we have a material called green in the scene
print mat
square.setMaterials([mat])
squareObj = NMesh.PutRaw(square, "square", 1)
Blender.Redraw()
So far so good. However, I want some green text:-
import Blender
from Blender import Curve, Object, Scene, Text3d, Window, Material
#To Create a Text3d object
txt = Text3d.New("Text1")
txt.setText("ABC123")
cur = Scene.getCurrent()
obj = Object.New("Text")
mat = Material.Get("Green") #assuming we have a material called green in the scene
print mat
#obj.setMaterials([mat])
obj.link(txt)
cur.link(obj)
obj.makeDisplayList()
Window.RedrawAll()
Uncommenting the setMaterials line will cause blender to crash. (Windows XP home SP2, blender 2.37a). Is this the correct way to assign a material to a text object? Is there other code I should be using?
Any comments gratefully received.
Thanks,
Chris