I have a simple function that I'd like to call from a driver Python expression.

enter image description here

I've run the script to define the function, but it doesn't seem to be accessible from the driver expression.

Error in Driver: The following Python expression failed:

Traceback (most recent call last):
  File "<bpy driver>", line 1, in <module>
NameError: name 'myDriverFunction' is not defined

Is it possible to modify the namespace in which drivers execute?


Your custom driver must add itself to the list of drivers BPY is aware of.
See the example here: https://docs.blender.org/manual/en/dev/animation/drivers/workflow_examples.html#driver-namespace

import bpy

def driverFunc(val):

    return val * val    # return val squared

bpy.app.driver_namespace['driverFunc'] = driverFunc    # add function to driver_namespace

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.