Bonsoir
si j'ai bien compris la bonne facon d'ecrire en ASCII,
non pas vraiment.
Perso je n'aime pas trop les stringbuilder, cela dit, le but de cet objet c'est d'éviter de construite une string de cette façon
"Vertex" + " " + "1" + " " + "2" + " " + "3"
Pour la même ligne, il faudrait écrire quelque chose comme ça (de tête dans le post, pas vérifié dans un IDE)
sb.Append("Vertex ");
sb.Append(1.ToString());
sb.Append(" ");
sb.Append(2.ToString());
sb.Append(" ");
sb.Append(3.ToString());
Ou mieux se servir de sa déclinaison de string.Format
sb.AppendFormat("Vertex {0} {1} {2}\r\n", 1, 2, 3);
En ce qui me concerne, je préfère string.Format
string textACompleter =@"Vertex {0} {1} {2}
Vertex {3} {4} {5}
Vertex {6} {7} {8}";
string resultat = string.Format(textACompleter, 1, 2, 3, 4, 5, 6, 7, 8, 9);
Ou mieux si tu utilises visual studio 2019 ou plus récent
Point point1 = new Point(){ X = "1", Y = "2", Z = "3" };
Point point2 = new Point(){ X = "4", Y = "5", Z = "6" };
Point point3 = new Point(){ X = "7", Y = "8", Z = "9" };
string resultat = $@"Vertex {point1.X} {point1.Y} {point1.Z}
Vertex {point2.X} {point2.Y} {point2.Z}
Vertex {point3.X} {point3.Y} {point3.Z}";
Ensuite, utiliser un streamwriter pour un fichier ascii, c'est un peu l'artillerie lourde.
Ceci
string texte = @"blablabla
blabla
bla
blablabla";
File.WriteAllText("leFichier.txt", texte);
tout simplement suffit largement.
Le streamwriter te sera nécessaire si tu optes pour la version binaire du fichier stl.
Quoiqu'il en soit, le code que tu as écrit permet effectivement d'écrire un fichier ASCII, le problème ne vient pas de C# en soit mais du format de fichier.
A première vue, je dirais que selon les sites de référence dont tu parles, Vertex s'écrit avec un v minuscule, et que les coordonnées sont sensées être décimales.
Mais pas certain que cela vienne de là.