Python Beginer - Set Material

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)

Good one, thanks! Very clearly written and commented.