Get projection of vector field along normals from an imported STL file, and use it in the Calculator

Generate Surface Normals should be the right thing to do. In fact, Normal Glyphs is a compound filter that uses Generate Surface Normals internally, so it makes little sense that one would work and the other would not.

Can you be more specific about how the result is wrong? Can you perhaps share your STL data for us to take a look?