UPDATE: I discovered that ddhknife was actually working. I presumed it hadn't because after I'd run the script I opened the dialogue box expecting it to show the knife object I'd set it to, but the dialogue was blank. However I run the ddhknife_go function and all was well.
However... it doesn't cut meshes very well. I tried to cut a mesh with a block and got this.
zoomed in..
What I have found works well instead is boolean knife and cut away, however I can't work out how to run that with a script. I've tried knife-and-cut-away, knife_and_cut_away, knife+cut-away etc etc.
Anyone?