728x90
오늘은 C#의 Nuget 패키지 중 하나인 netDxf 라이브러리에 대해 알아보려 합니다.
기존 프로젝트에서 dwg 도면을 읽어와야하는게 메인이기 때문에 가장 많이 사용하는 라이브러리 중 하나이기도 합니다.
우선 netDxf 라이브러리에 대한 목차입니다.
netDxf 라이브러리 시작하기
- netDxf란?
- 라이브러리 소개
- 주요 특징
- 기본 사용법
- NuGet 패키지 설치
- DXF 파일 생성하기
- DXF 파일 읽기
- 실전 활용
- 기존 도면에 도형 추가하기 (선, 원, 폴리라인)
- 레이어 관리
- 기존 도면에 도형 추가하기 텍스트 추가하기
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 |