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

<<  September 2014  >>
MoDiMiDoFrSaSo
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

View posts in large calendar