DXFファイルを読む

DXFファイルは多くのDraw系ソフトで使用されている共通フォーマットです。

建築設計者が概略のプランを何らかのDraw系ソフトで作成して、それをDXFファイルに保存すれば、そこからプログラムで壁、ドア、窓などを検出することもできます。

例として単純な四角形で作成してみます。左下の座標は0,0です。右上は100,50です。

C#でDXFファイルを読んだり、書いたりできるライブラリnetDXFというものがあります。開発者のgithubはhttps://github.com/haplokuon/netDxf

これを使ってこの単純な四角形の各頂点の座標と辺の長さを表示してみましょう。

string file = @"C:\Users\myname\Desktop\sample.dxf";
DxfDocument loaded = DxfDocument.Load(file);

var lines = loaded.Entities.Lines;

foreach(Line line in lines)
{
    string startPoint = "(" + line.StartPoint.X +"," + line.StartPoint.Y + ")";
    string endPoint = "(" + line.EndPoint.X + "," + line.EndPoint.Y + ")";
    Console.WriteLine("Line座標:" + startPoint + "-" + endPoint);
    double length = Math.Sqrt(Math.Pow(line.EndPoint.X - line.StartPoint.X, 2)+Math.Pow(line.EndPoint.Y - line.StartPoint.Y, 2));
    Console.WriteLine("Line長さ:"+ length);
}

結果は次のようになります。