I have coded an Operator that tries to change the view to Top using
bpy.ops.view3d.viewnumpad, and then the
invoke knife_project() operator to select an area as projected by a Curve onto a mesh.
knife_project() succeeds, and the view is indeed set to 'TOP' when my operator finishes, however, the projection vector used by the
knife_project() operator is not respecting the
bpy.ops.view3d.viewnumpad('TOP') call prior to the
I can tell that whatever view happened to be showing at the time I invoked my Operator was used for the
knife_project. I was hoping to be able to set the projection vector of the
knife_project within my operator so it doesn't need to rely on interactive user input.
Is there a way to ensure that the
view matrix used by
knife_project() takes into account the
def execute(self, context): bpy.ops.view3d.viewnumpad(type = 'TOP') setupTestareaScene() # load scene, start in 'OBJECT' mode # Operator selection # bpy.ops.object.select_all(action='DESELECT') bpy.data.objects[meshObj].select = True bpy.data.objects[curveObj].select = True bpy.context.scene.objects.active = bpy.data.objects[meshObj] # Select target area with projectorCurve bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.knife_project()