I'm using Blender 2.76 on a Win 7 x64 machine.
I should warn you I'm new to Blender & its Python API although I have used Python extensively before I'm no expert.
I run the following script after start up (ie the default cube is already in the 3D work space).
import bpy
cube1 = bpy.context.active_object
bpy.ops.transform.resize(value=(2.0, 2.0, 0.9))
bpy.ops.object.modifier_add(type = 'BOOLEAN')
bpy.ops.mesh.primitive_cube_add(location=(0.0, 0.0, 0.0))
cube2 = bpy.context.active_object
cube1.modifiers[0].object = cube2
cube1.modifiers[0].operation = 'DIFFERENCE'
bpy.ops.object.modifier_apply(apply_as='DATA',modifier=cube1.modifiers[0].name)
My aim is to create a square hole through cube1 but so far I end up with no change to anything.
I tried swapping cube1 for cube2 & this cut cube2 with cube1.
import bpy
cube1 = bpy.context.active_object
bpy.ops.transform.resize(value=(2.0, 2.0, 0.9))
bpy.ops.mesh.primitive_cube_add(location=(0.0, 0.0, 0.0))
cube2 = bpy.context.active_object
bpy.ops.object.modifier_add(type = 'BOOLEAN')
cube2.modifiers[0].object = cube1
cube2.modifiers[0].operation = 'DIFFERENCE'
bpy.ops.object.modifier_apply(apply_as='DATA',modifier=cube2.modifiers[0].name)
So what am I missing here?
EDIT:
I tried to flip the normals of cube2 (see code below) as per the comment below but this appears to have had no effect.
import bpy, bmesh
cube1 = bpy.context.active_object
bpy.ops.transform.resize(value=(2.0, 2.0, 0.9))
bpy.ops.object.modifier_add(type = 'BOOLEAN')
bpy.ops.mesh.primitive_cube_add(location=(0.0, 0.0, 0.0))
cube2 = bpy.context.active_object
b_cube2 = bmesh.new()
b_cube2.from_mesh(cube2.data)
bpy.ops.object.mode_set(mode='EDIT')
for v in b_cube2.verts:
v.select = True
bpy.ops.mesh.flip_normals()
bpy.ops.object.mode_set(mode='OBJECT')
b_cube2.to_mesh(cube2.data)
cube1.modifiers[0].object = cube2
cube1.modifiers[0].operation = 'DIFFERENCE'
bpy.ops.object.modifier_apply(apply_as='DATA',modifier=cube1.modifiers[0].name)


Ctrl + N. This confuses the boolean modifier and might result with a different operation than expected. – TLousky Mar 03 '16 at 15:42