완전한 파라메트릭 모델(parametric model). FreeCAD의 모든 객체는 기본적으로 파라메트릭이며, 속성이나 다른 객체에 의존하여 형상이 정의될 수 있습니다. 모든 변경 사항은 필요 시 재계산되며, undo/redo 스택에 기록됩니다. 새로운 객체 유형은 쉽게 추가할 수 있고, Python으로 완전히 프로그래밍할 수도 있습니다.
플러그인 확장을 통해 핵심 애플리케이션에 기능을 추가할 수 있는 모듈식 아키텍처(modular architecture). 확장은 C++로 작성된 새로운 애플리케이션처럼 복잡할 수도 있고, Python 스크립트나 자체 녹화한 매크로처럼 간단할 수도 있습니다. 내장된 Python 인터프리터, 매크로 또는 외부 스크립트를 통해 형상 생성 및 변형, 형상의 2D 또는 3D 표현(scenegraph), FreeCAD 인터페이스 등 FreeCAD의 거의 모든 부분에 완전히 접근할 수 있습니다.
멀티 플랫폼. FreeCAD는 윈도, 리눅스, 맥OS 그리고 다른 플랫폼에서 똑같은 방식으로 돌아갑니다.
완전한 GUI 애플리케이션 프리캐드는 Qt 프레임워크를 기반으로 한 완전한 그래픽 사용자 인터페이스(GUI)를 갖추고 있으며,Open Inventor를 기반으로 한 3D 뷰어를 포함합니다. 이를 통해 3D 장면을 빠르게 렌더링할 수 있고, 장면 그래프(scene graph) 구조를 직관적으로 표현할 수 있습니다.
명령줄 응용프로그램으로 실행됩니다. 명령줄 모드에서 FreeCAD는 인터페이스 없이 모든 형상 도구와 함께 실행됩니다. 이 모드에서는 메모리 사용량이 상대적으로 적으며, 예를 들어 다른 애플리케이션용 콘텐츠를 생성하는 서버로 사용할 수 있습니다.
Python 모듈로 가져올 수 있습니다. FreeCAD는 Python 스크립트를 실행할 수 있는 모든 응용 프로그램으로 가져올 수 있습니다. 명령줄 모드에서와 마찬가지로 FreeCAD의 인터페이스 부분은 사용할 수 없지만 모든 형상 도구에 액세스할 수 있습니다.
작업대 개념. FreeCAD 인터페이스에서 도구는 작업대별로 그룹화됩니다.이를 통해 특정 작업을 수행하는 데 사용되는 도구만 표시하고 작업 공간을 깔끔하게 유지하고 반응성을 높이며 응용 프로그램을 빠르게 실행할 수 있습니다.
기능 및 데이터 유형의 지연 로드를 위한 플러그인/모듈 프레임워크 프리캐드는 핵심 애플리케이션과 여러 모듈 및 워크벤치로 구성되어 있으며, 이들은 필요할 때만 로드됩니다. 대부분의 도구와 형상 유형은 워크벤치에 포함되어 있으며, 워크벤치는 일종의 플러그인처럼 작동합니다. 지연 로딩 외에도, 개별 워크벤치는 기존 FreeCAD 설치에 추가하거나 제거할 수 있어 유연한 확장이 가능합니다.
파라메트릭 연관 문서 객체
FreeCAD 문서 내의 모든 객체는 매개변수(파라미터)로 정의됩니다. 이러한 매개변수는 언제든지 수정 및 다시 계산할 수 있으며, 객체 간의 관계가 유지되기 때문에 하나의 객체를 수정하면 해당 객체에 의존하는 다른 객체들도 자동으로 갱신됩니다.
파라메트릭 기본 형상 생성 박스, 구, 원기둥 등과 같은 기본 형상(primitive) 객체는 해당 형상의 기하학적 제약 조건(예: 길이, 반지름, 높이 등)을 지정함으로써 생성할 수 있습니다.
그래픽 수정 연산 프리캐드는 3D 공간의 어느 평면이든 이동(translation), 회전(rotation), 스케일 조정(scaling), 대칭(mirroring), 오프셋(offset) (단순한 오프셋 또는 Jung/Shin/Choi에 설명된 방식), 형상 변환(shape conversion) 을 수행할 수 있습니다.
Constructive solid geometry (boolean operations) 프리캐드는 구성적 실체 기하(CSG) 연산, 즉 합집합(union), 차집합(difference), 교집합(intersect) 작업을 수행할 수 있습니다.
평면 기하 도형의 그래픽 생성프리캐드는 3D 공간의 어느 평면이든 직선(lines), 와이어(wires), 사각형(rectangles), B-스플라인(B-splines), 원호 또는 타원호(circular or elliptic arcs)를 그래픽 방식으로 생성할 수 있습니다.
직선 또는 회전 돌출(extrusions), 단면(sections), 필렛(fillets)을 이용한 모델링.
꼭지점, 모서리, 선 그리고평면과 같은 위상학적 구성요소.
테스트 및 수리. FreeCAD에는 메쉬 테스트(고체 테스트, 비-2다양체 테스트, 자체 교차 테스트)를 위한 도구와 메쉬 수리(구멍 채우기, 균일한 방향)를 위한 도구가 있습니다.
주석. FreeCAD는 텍스트나 치수에 대한 주석을 삽입할 수 있습니다.
실행 취소/다시 실행 프레임워크. FreeCAD의 모든 것은 실행 취소/다시 실행이 가능하며 사용자는 실행 취소 스택에 액세스할 수 있습니다. 한 번에 여러 단계를 실행 취소할 수 있습니다.
트랜잭션 지향 방식
Undo/Redo 스택은 단일 동작이 아닌 문서의 트랜잭션(작업 단위)을 저장하므로, 각 도구가 어떤 작업을 되돌리거나 다시 실행할지 정확히 정의할 수 있습니다.
내장 scripting 프레임워크 프리캐드는 내장된 [22] 인터프리터를 갖추고 있으며, 이 인터프리터는 애플리케이션의 거의 모든 부분—인터페이스, 형상, 그리고 3D 뷰어에서의 형상 표현—을 제어할 수 있는 API를 제공합니다. 이 인터프리터를 통해 복잡한 스크립트부터 단일 명령까지 실행할 수 있으며, 전체 작업대도 전부 Python으로 개발할 수 있습니다.
내장 Python 콘솔파이썬 인터프리터에는 구문 하이라이트, 자동 완성, 클래스 브라우저 기능이 포함된 콘솔이 내장되어 있습니다. 프리캐드에서 파이썬 명령을 직접 실행할 수 있으며, 결과는 즉시 반환됩니다. 이를 통해 스크립트 작성자는 기능을 즉석에서 테스트하고, 프리캐드의 모듈과 작업대를 탐색하며, 내부 구조를 손쉽게 학습할 수 있습니다.
사용자 상호작용을 반영합니다. 사용자가 FreeCAD 인터페이스에서 수행하는 모든 작업은 콘솔에 인쇄되고 매크로에 기록될 수 있는 Python 코드를 실행합니다.
완전한 macro 기록 및 편집 기능을 제공합니다. 사용자가 인터페이스를 조작할 때 실행되는 Python 명령을 기록하고, 필요한 경우 편집하고, 나중에 재현하기 위해 저장할 수 있습니다.
복합(ZIP 기반) 문서 저장 형식. FreeCAD 문서는 .FCStd 확장자로 저장됩니다.문서에는 형상, 스크립트 또는 축소판 아이콘과 같은 다양한 유형의 정보가 포함될 수 있습니다. .FCStd 파일 자체는 zip 컨테이너입니다. 저장된 FreeCAD 파일은 이미 압축되었습니다.
완전히 사용자 정의 가능/스크립트 가능 그래픽 사용자 인터페이스(GUI). FreeCAD의 Qt 기반 인터페이스는 Python 인터프리터를 통해 완전히 접근할 수 있습니다. FreeCAD 자체가 작업대에 제공하는 간단한 기능 외에도 전체 Qt 프레임워크에 접근할 수 있습니다. 사용자는 위젯과 도구 모음 생성, 추가, 도킹, 수정 또는 제거와 같은 모든 작업을 GUI에서 수행할 수 있습니다.
썸네일러. (현재 Linux 시스템에만 해당) FreeCAD 문서 아이콘은 Gnome의 Nautilus와 같은 대부분의 파일 관리자 응용 프로그램에서 파일 내용을 표시합니다.
모듈식 MSI 설치 프로그램. FreeCAD 설치 프로그램을 사용하면 Windows 시스템에 유연하게 설치할 수 있습니다. Ubuntu 시스템용 패키지도 유지 관리됩니다.