What is improved in this version ?
I see you add a normal, but your do not calculate the normal
you simply repeat a vertex.
"facet normal %f %f %f\n"
Anyways, I have created a normals function, now saving normals to the STL file as you suggest above and to be frank I can not tell the difference in Creo.. which I believe Creo computes the normals in the rendering engine