Beispielmakro: Knotenkoordinaten aus einer Datei auslesen

12. Dezember 2007 19:03

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);
            }
        }
    }
}

Kommentare sind geschlossen

Kalender

<<  Juli 2014  >>
MoDiMiDoFrSaSo
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar