A few things I’d like to add to lights example:
When you use polyOp.getFaceNormal sel i you will get the normal in the objects local coordinate system wich is at least not what I usually want. To get it in world coordinates instead write polyOp.getFaceNormal sel i node:sel .
Also the normal you get from the example is pointing in the right direction but it’s not normalized(length=1) so I suggest you normalize it afterwards too to make it a “true” normal. This is important if you as an example want to move the vert 10 units along the normal you can say newpos = vertpos + (thenormal *10) , but only if the the normal is normalized.
cheers,
CML

