Hi All,
Here is some code to demonstrate how to set the material of an object as well as assign a material to a specific material ID.
import Blender
from Blender import *
def makeCube(x,y,name,passedMesh,passedScene):
ob = Object.New("Mesh",name)
ob.LocX=x
ob.LocY=y
ob.link(passedMesh)
passedScene.link(ob)
return ob
#Create materials.
localScene = Scene.GetCurrent()
matRed = Blender.Material.New('matRed')
matRed.rgbCol = 1,0,0
matBlue = Blender.Material.New('matBlue')
matBlue.rgbCol = 0,0,1
#Create cubes.
redMesh = Mesh.Primitives.Cube(1)
redCube = makeCube(0,0,"redCube",redMesh,localScene)
redMesh.materials = [matRed]
blueMesh = Mesh.Primitives.Cube(1)
blueCube = makeCube(2,0,"blueCube",blueMesh,localScene)
blueMesh.materials = [matBlue]
mixedMesh = Mesh.Primitives.Cube(1)
mixedCube = makeCube(4,0,"mixedCube",mixedMesh,localScene)
#Lets add two materials to this mesh.
mixedMesh.materials = [matRed, matBlue]
#Manually assign faces a material index. (We know the cube has 6 faces i.e. 0-5).
mixedMesh.faces[0].mat = 0 #Face #0 gets index #0 which is Red.
mixedMesh.faces[1].mat = 1 #Face #1 gets index #1 which is Blue.
mixedMesh.faces[2].mat = 0
mixedMesh.faces[3].mat = 1
mixedMesh.faces[4].mat = 0
mixedMesh.faces[5].mat = 1
Redraw(-1)
localScene.update(1)