Beispielmakro: Knotenkoordinaten aus einer Datei auslesen


Thomas Wölfer
Thomas Wölfer

12. Dezember 2007


Auf dem Anwenderseminar in München war ich von einem Kunden darauf angesprochen worden, wie aufwendig es wäre, ein Makro zu bauen, mit dem man Knoten auf Basis von Koordinaten aus einer Datei erzeugen kann. Leider habe ich vergessen, wer das gefragt hat. Das Makro kann ich aber natürlich trotzdem kurz zeigen. Im Makro wird davon ausgegangen, das sich die Datei mit den Knotenkoordinaten im Pfad "c:\temp\knotenkoordinaten.dat" befindet. Das kann man natürlich ändern.

Die Datei enthält die Koordinaten so, das pro Zeile ein X, Y und Z angegeben wird. Die Werte werden dabei mit einem Leerzeichen von einander getrennt.

Das Makro liesst die Datei Zeile für Zeile ein. Jede Zeile wird dann in ihre X,Y und Z-Bestandteile zerlegt. Damit werden dann die Knoten erzeugt und ins Dokument gestellt.

using System;
using System.IO;
using DIE.Applications.Faltwerk.Objects.Nodes;

using DIE.Framework.ApplicationModell.Commands;

namespace MeineMakros
{
    public class KnotenAusFile : UserCommandBase
    {
        public KnotenAusFile()
            : base(@"KnotenAusFile", @"Erzeugt Knoten aus Koordinanten in einer Datei")
        {
        }

        public override void Execute(IExecuteCommandContext context)
        {
            StreamReader reader = new StreamReader("c:\\temp\\knotendaten.dat");

            int name = 1;

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();
                string[] xyz = line.Split(' ');

                double x = double.Parse(xyz[0]);
                double y = double.Parse(xyz[1]);
                double z = double.Parse(xyz[2]);

                Node node = new Node();
                node.X = x;
                node.Y = y;
                node.Z = z;

                node.ObjectName = name.ToString();
                name++;

                context.TargetDocument.AddObject(node);
            }
        }
    }
}