루트 파일 정리: - DXF/P&ID 관련 → dxf-graph/ - fastTable 관련 → fastTable/ - plan/ → plans/ 통합 (최신 버전 유지) - 테스트 출력 파일, 구버전 프로젝트 삭제 - 불필요한 루트 문서 삭제
92 lines
3.8 KiB
C#
92 lines
3.8 KiB
C#
using System;
|
|
using System.Text;
|
|
using netDxf;
|
|
|
|
class TestDxfExtract
|
|
{
|
|
static void Main()
|
|
{
|
|
string filePath = "src/Web/uploads/pid/p-9100.dxf";
|
|
|
|
Console.WriteLine($"DXF 파일 로드: {filePath}");
|
|
Console.WriteLine($"파일 크기: {new System.IO.FileInfo(filePath).Length:N0} bytes");
|
|
|
|
try
|
|
{
|
|
var doc = DxfDocument.Load(filePath);
|
|
|
|
Console.WriteLine($"\n=== DXF 정보 ===");
|
|
Console.WriteLine($"Version: {doc.Version}");
|
|
Console.WriteLine($"Units: {doc.Units}");
|
|
Console.WriteLine($"Layers: {doc.Layers.Count}");
|
|
Console.WriteLine($"TextStyles: {doc.TextStyles.Count}");
|
|
Console.WriteLine($"Blocks: {doc.Blocks.Count}");
|
|
|
|
Console.WriteLine($"\n=== 엔티티 수 ===");
|
|
Console.WriteLine($"Lines: {doc.Entities.Lines.Count}");
|
|
Console.WriteLine($"Circles: {doc.Entities.Circles.Count}");
|
|
Console.WriteLine($"Polylines: {doc.Entities.Polylines.Count}");
|
|
Console.WriteLine($"Texts: {doc.Entities.Texts.Count}");
|
|
Console.WriteLine($"MTexts: {doc.Entities.MTexts.Count}");
|
|
Console.WriteLine($"Blocks (entity): {doc.Entities.Blocks.Count}");
|
|
Console.WriteLine($"Inserts: {doc.Entities.Inserts.Count}");
|
|
|
|
Console.WriteLine($"\n=== TEXT 엔티티 샘플 (상위 10개) ===");
|
|
int textCount = 0;
|
|
foreach (var txt in doc.Entities.Texts)
|
|
{
|
|
if (textCount >= 10) break;
|
|
Console.WriteLine($"[{textCount}] Value: {txt.Value}, Position: ({txt.Position.X}, {txt.Position.Y}), Height: {txt.Height}");
|
|
textCount++;
|
|
}
|
|
|
|
Console.WriteLine($"\n=== MTEXT 엔티티 샘플 (상위 10개) ===");
|
|
int mtextCount = 0;
|
|
foreach (var mtxt in doc.Entities.MTexts)
|
|
{
|
|
if (mtextCount >= 10) break;
|
|
Console.WriteLine($"[{mtextCount}] PlainText: {mtxt.PlainText().Substring(0, Math.Min(50, mtxt.PlainText().Length))}...");
|
|
Console.WriteLine($" Position: ({mtxt.Position.X}, {mtxt.Position.Y}), Height: {mtxt.Height}");
|
|
mtextCount++;
|
|
}
|
|
|
|
Console.WriteLine($"\n=== BLOCK 정의 샘플 ===");
|
|
int blockCount = 0;
|
|
foreach (var blk in doc.Blocks)
|
|
{
|
|
if (blockCount >= 5) break;
|
|
Console.WriteLine($"Block: {blk.Name}, Entities: {blk.Entities.Count}");
|
|
blockCount++;
|
|
}
|
|
|
|
Console.WriteLine($"\n=== AttributeDefinition 샘플 ===");
|
|
int attrCount = 0;
|
|
foreach (var blk in doc.Blocks)
|
|
{
|
|
foreach (var attr in blk.AttributeDefinitions.Values)
|
|
{
|
|
if (attrCount >= 10) break;
|
|
Console.WriteLine($"Attribute: {attr.Tag}, Value: {attr.Value}, Position: ({attr.Position.X}, {attr.Position.Y})");
|
|
attrCount++;
|
|
}
|
|
if (attrCount >= 10) break;
|
|
}
|
|
|
|
Console.WriteLine($"\n=== INSERT 엔티티 샘플 (상위 10개) ===");
|
|
int insertCount = 0;
|
|
foreach (var insert in doc.Entities.Inserts)
|
|
{
|
|
if (insertCount >= 10) break;
|
|
Console.WriteLine($"[{insertCount}] Block: {insert.Block.Name}, Position: ({insert.Position.X}, {insert.Position.Y})");
|
|
insertCount++;
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine($"오류: {ex.Message}");
|
|
Console.WriteLine($"스택 트레이스: {ex.StackTrace}");
|
|
}
|
|
}
|
|
}
|