Center cursor in python script? I am getting an error when trying to center the cursor in a python script

import bpy

bpy.ops.import_scene.obj(filepath=objFilePath, axis_up='Y')

bpy.ops.object.select_by_type(type='MESH')

bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
view3d = bpy.context.screen.areas['VIEW_3D'].spaces[0];
view3d.pivot_point = 'CURSOR'
view3d.cursor_location = (0.0,0.0,0.0)  
USER = os.environ['USER'];

bpy.ops.export_scene.fbx(filepath="/Users/"+USER+"/house.fbx", path_mode='RELATIVE', object_types={'MESH'})


Error:

Traceback (most recent call last):
  File "&lt;blender_console&gt;", line 1, in &lt;module&gt;
  File "/private/var/folders/48/ptx7wqz138x4_shgs5nk6szm0000gn/T/AppTranslocation/DEB386B3-C3FC-4FAB-B7A2-0954C07B91CF/d/blender.app/Contents/MacOS/../Resources/2.78/scripts/modules/bpy/ops.py", line 189, in __call__
ret = op_call(self.idname_py(), None, kw)
RuntimeError: Operator bpy.ops.view3d.snap_cursor_to_center.poll() failed, context is incorrect


I am trying to center the origin of my model in batch mode of blender.
Every operator requires a proper context to run in. Since you mentioned that you are running the script in batch mode and accessing a view3d operator, you must provide the exact context to the operator

import bpy
# in this case the area at index 4 happens to be view3d
view3d = bpy.context.screen.areas[4]
context_override = {'window': bpy.context.window, 
                    'screen': bpy.context.screen, 
                    'area' : view3d}
bpy.ops.view3d.snap_cursor_to_center(context_override)


By doing this, I am able to snap the cursor by running the script from the Python console. Also, you do not need the call to poll() since you are providing the explicit context.

Relevant Links


Overriding Context
Execution Context