■ 헤드리스(Headless) 모드
FreeCAD GUI를 직접 띄우지 않고, 명령줄(Command Line)이나 외부 파이썬 스크립트 환경에서 FreeCAD 기능을 백그라운드로 실행하여 파일을 만드는 방식을 헤드리스(Headless) 모드라고 합니다.
- 일반적인 모드: 프로그램을 실행하면 모니터 화면에 3D 뷰어 창, 메뉴, 버튼 등이 나타나며 사용자가 마우스로 조작합니다.
- 헤드리스 모드: 화면에 아무런 창도 뜨지 않고, 오직 명령어(Command)나 코드(Script)로만 프로그램이 백그라운드에서 실행되어 작업(파일 생성, 변환, 연산 등)을 처리한 뒤 즉시 종료됩니다.
FreeCAD] 프로그램 실행 없이 3d 모델 파일 생성
▣ 헤드리스(headless) 모드 파이썬 코드를 사용하여 FreeCAD 실행 없이 .FCStd 파일을 생성하는 것은 가능합니다. 파이썬 코드를 사용하여 FreeCAD 실행 없이 .FCStd 파일을 생성하는 것은 가능합니다. 이
tool-2020.tistory.com
▶ 헤드리스 모드의 장점
- 속도 향상: 그래픽 화면을 렌더링하고 모니터에 뿌려줄 필요가 없기 때문에 자원을 아낄 수 있고 실행 속도가 훨씬 빠릅니다.
- 자동화 및 서버 구동: 화면을 볼 수 없는 서버 환경이나 클라우드 환경에서도 실행할 수 있어, 수백 개의 3D 모델을 일괄 변환(Batch Processing)하거나 웹 서버와 연동하여 자동으로 CAD 파일을 생성할 때 필수적으로 사용됩니다.
▶다양한 3D CAD도 헤드리스 모드를 지원하는가?
Blender (블렌더):
- 가장 대표적인 예시입니다. --background 옵션을 주면 GUI 없이 파이썬 스크립트만으로 3D 모델링, 렌더링, 파일 변환 등을 완벽하게 수행할 수 있습니다.
- 예시 명령어: blender --background --python script.py
Autodesk AutoCAD:
- 화면을 띄우지 않고 도면을 처리하기 위해 Core Console(accoreconsole.exe)이라는 전용 헤드리스 실행기를 제공합니다. 이를 통해 오토캐드가 설치되지 않은 가벼운 서버 환경에서도 LISP이나 .NET 스크립트로 도면을 자동 처리할 수 있습니다.
SolidWorks (솔리드웍스):
- 솔리드웍스 자체를 완전히 숨긴 채 백그라운드 API(SolidWorks SldWorks API)를 호출하는 방식으로 헤드리스와 유사한 자동화 프로그램을 작성할 수 있습니다. (주로 Task Scheduler나 독립된 C#/VBA 응용 프로그램 형태로 구현합니다.)
PTC Creo(크레오)도 헤드리스(Headless) 모드와 유사한 백그라운드 실행 및 자동화를 지원합니다.
Creo의 백그라운드(헤드리스) 실행 특징
- 그래픽 창 숨기기 옵션 (-g:no_graphics)
- Creo를 명령줄이나 API로 실행할 때 -g:no_graphics 인자를 주면, 화면에 UI 창을 띄우지 않고 백그라운드 프로세스로 엔진만 구동할 수 있습니다.
- 전용 API 활용 (J-Link / Toolkit)
- FreeCAD처럼 단순 파이썬 파일 하나로 바로 제어하기보다는, PTC에서 제공하는 J-Link (Java 기반)나 Toolkit (C/C++ 기반), 혹은 이를 파이썬에서 쉽게 쓰도록 감싼 오픈소스 라이브러리(Creoson 등)를 연동하여 백그라운드 명령을 내리게 됩니다.
상용 엔터프라이즈 CAD인 만큼 초기 설정(라이선스, 환경 변수 등)이 복잡하지만, 대기업이나 제조 현장에서 도면 일괄 변환이나 설계 데이터 자동 검증 등을 할 때 백그라운드 모드가 널리 활용되고 있습니다.
■ 직접 호출하는 방법
파이썬 코드 내부에서 외부 프로그램이나 명령어(freecadcmd.exe ...)를 직접 호출하는 방법이 있습니다.
파이썬의 기본 내장 라이브러리인 subprocess를 사용하면, 별도의 CMD 창을 열거나 수동으로 명령어를 칠 필요 없이 파이썬 스크립트 안에서 FreeCAD 헤드리스 명령을 곧바로 실행할 수 있습니다.
▶ 파이썬 코드 내에서 실행하는 예제 (run_freecad.py)
import subprocess
# 1. 실행할 FreeCADCmd 경로와 실행할 파이썬 스크립트 경로 지정
freecad_cmd = r"C:\Program Files\FreeCAD 1.0\bin\FreeCADCmd.exe"
script_path = r"C:\path\to\your\step_export01.py"
# 2. 명령어 구성 (리스트 형태로 전달하는 것이 안전합니다)
command = [freecad_cmd, script_path]
print("FreeCAD 헤드리스 자동화 작업을 시작합니다...")
try:
# 3. subprocess를 이용해 명령어 실행 (작업이 끝날 때까지 대기)
result = subprocess.run(command, check=True, text=True, capture_output=True)
print("--- FreeCAD 실행 성공 ---")
print(result.stdout) # FreeCAD 스크립트 내의 print 출력 결과 확인
except subprocess.CalledProcessError as e:
print("--- FreeCAD 실행 중 오류 발생 ---")
print(e.stderr)
▶ 외부 파이썬 코드 에서 새로운 FreeCAD 파일 만들기 예제
import sys
# Windows 기준 FreeCAD 라이브러리 경로 추가 (설치 경로에 맞게 수정)
sys.path.append("C:/Program Files/FreeCAD 1.0/bin")
sys.path.append("C:/Program Files/FreeCAD 1.0/lib")
try:
import FreeCAD
import Part
# 문서 생성 및 객체 추가
doc = FreeCAD.newDocument("ExternalScriptDoc")
box = doc.addObject("Part::Box", "ExternalBox")
box.Length = 100.0
box.Width = 50.0
box.Height = 10.0
doc.recompute()
file_path = "C:/path/to/your/desired_folder/external_output.fcstd"
doc.saveAs(file_path)
print("외부 파이썬 환경에서 파일 생성 완료!")
except ImportError as e:
print(f"FreeCAD 모듈을 불러오지 못했습니다. 경로를 확인하세요: {e}")
대량의 3D,2D를 자동으로 변환 할때 유용하게 사용 가능 합니다. 또는 3D 모델의 Parameter 값을 입력,수정,삭제,추가 등 무게 계산등 사용 용도는 많을것으로 예상 됩니다.

by korealionkk@gmail.com
'업무 자동화 > FreeCAD' 카테고리의 다른 글
| 파이썬 학습] IF 조건문 사용 방법 (0) | 2026.07.30 |
|---|---|
| FreeCAD 배우기] 재질(Materials) 파일 지정 하기 (1) | 2026.07.24 |
| FreeCAD 배우기] 물성치 파일 설정 하기 (0) | 2026.07.23 |
| FreeCAD 배우기] 시작 파일 세팅 (0) | 2026.07.22 |
| FreeCAD 배우기] 메타정보 입력하기 (0) | 2026.07.20 |