Program/C#

C# netDxf 라이브러리 (1)

사막여유 2024. 12. 16. 08:55
728x90

오늘은 C#의 Nuget 패키지 중 하나인 netDxf 라이브러리에 대해 알아보려 합니다.

기존 프로젝트에서 dwg 도면을 읽어와야하는게 메인이기 때문에 가장 많이 사용하는 라이브러리 중 하나이기도 합니다.

 

우선 netDxf 라이브러리에 대한 목차입니다.

netDxf 라이브러리 시작하기

  1. netDxf란?
    • 라이브러리 소개
    • 주요 특징
  2. 기본 사용법
    • NuGet 패키지 설치
    • DXF 파일 생성하기
    • DXF 파일 읽기
  3. 실전 활용
    • 기존 도면에 도형 추가하기 (선, 원, 폴리라인)
    • 레이어 관리
    • 기존 도면에 도형 추가하기  텍스트 추가하기

 

 


 

netDxf란?

netDxf는 AutoCAD DXF 파일을 읽고 쓸 수 있게 해주는 오픈소스 .NET 라이브러리입니다.
이 라이브러리를 사용하면 복잡한 DXF 파일 포맷을 이해하지 않아도 손쉽게 CAD 파일을 다룰 수 있습니다.

주요 특징을 살펴보면:

  • DXF 파일 읽기/쓰기 지원
  • 2D/3D 도형 요소 생성
  • 레이어, 선 스타일, 문자 스타일 관리
  • 가벼운 크기와 빠른 성능
  • .NET Framework 4.5 이상 지원

 


 

 

NuGet 패키지 설치

Visual Studio의 NuGet 패키지 관리자를 통해 쉽게 설치할 수 있습니다.

Install-Package netDxf

 

또는 프로젝트 파일에 직접 패키지 참조를 추가할 수도 있습니다

<PackageReference Include="netDxf" Version="2022.11.2" />

 


 

DXF 파일 생성하기

간단한 도면을 생성하는 예제를 살펴보겠습니다

 

using netDxf;
using netDxf.Entities;
using netDxf.Header;

// 새로운 DXF 문서 생성
DxfDocument doc = new DxfDocument();

// 직선 그리기
Line line = new Line(new Vector2(0, 0), new Vector2(100, 100));
doc.AddEntity(line);

// 원 그리기
Circle circle = new Circle(new Vector2(50, 50), 30);
doc.AddEntity(circle);

// 파일로 저장
doc.Save("example.dxf");

 


DXF 파일 읽기

기존 DXF 파일을 읽어오는 방법도 간단합니다

DxfDocument doc = DxfDocument.Load("existing.dxf");

// 모든 선 엔터티 가져오기
var lines = doc.Lines;
foreach (Line line in lines)
{
    Console.WriteLine($"시작점: ({line.StartPoint.X}, {line.StartPoint.Y})");
    Console.WriteLine($"끝점: ({line.EndPoint.X}, {line.EndPoint.Y})");
}

 


 

도형 그리기

다양한 도형을 그리는 예제를 살펴보겠습니다

// 폴리라인 그리기
List<Vector2> vertices = new List<Vector2>
{
    new Vector2(0, 0),
    new Vector2(10, 10),
    new Vector2(20, 0),
    new Vector2(30, 10)
};

Polyline polyline = new Polyline(vertices);
doc.AddEntity(polyline);

// 호(Arc) 그리기
Arc arc = new Arc(new Vector2(0, 0), 50, 0, 180);
doc.AddEntity(arc);

 


 

레이어 관리

도면의 레이어를 관리하는 방법입니다

// 새 레이어 생성
Layer layer = new Layer("MyLayer");
layer.Color = AciColor.Red;
doc.Layers.Add(layer);

// 레이어에 엔터티 추가
Line newLine = new Line(new Vector2(0, 0), new Vector2(100, 100));
newLine.Layer = layer;
doc.AddEntity(newLine);

 


텍스트 추가하기

도면에 텍스트를 추가하는 방법입니다

// 텍스트 스타일 생성
TextStyle style = new TextStyle("Arial");
doc.TextStyles.Add(style);

// 텍스트 추가
Text text = new Text("Hello CAD!", new Vector2(0, 0), 10, style);
doc.AddEntity(text);

 


 

마치며

netDxf 라이브러리를 사용하면 CAD 파일을 쉽게 다룰 수 있습니다. 특히 자동화된 도면 생성이나 기존 도면의 수정이 필요한 경우에 매우 유용합니다. 실제 프로젝트에서는 이보다 더 복잡한 작업들이 필요할 수 있지만, 이 기본적인 예제들을 응용하면 대부분의 작업을 수행할 수 있을 것입니다.

다음 블로그 글에는 실제 Dxf 정보를 활용하여 PictureBox에 표시해보고 실제 활용해보는 방법에 대해서 설명해보겠습니다 :)

728x90

'Program > C#' 카테고리의 다른 글

C# 프로젝트 Error 정리  (0) 2025.01.08
C# 유닛(단위)테스트(2)  (1) 2024.12.09
C# 유닛(단위)테스트(1)  (0) 2024.12.09
C# 디스크I/O  (1) 2024.12.07
C# _ Interface  (0) 2024.11.24