So i have been playing with split custom normals. I figured out that i have to add an array of normals to get started. And i also figured out that i have to use zero vectors as placeholders where i do not want to have custom normals.
so:
tgt = bpy.context.object
zv = (0.0,0.0,0.0) # my zero vector
normals = [zv]*len(tgt.data.loops) # the array of normals
tgt.data.normals_split_custom_set(normals)
The code above seems to work but i get 2 strange issues:
1.) When i call this code while the object is in edit mode, then actually nothing happens (no split custom normals are assigned to my object)
2.) When i call this code while the object is in object mode, then the array is assigned to the object, but in addition all edges between smooth faces are marked as sharp.
Here is my object before i add the custom split normals:
And this is right after i called the code snippet from above:
I expect to see no changes at all (because the entire normals array has zero vectors). So i guess i have forgotten something to setup. But i have no idea what i am doing wrong.