최근 수정 시각 : 2024-12-18 21:37:21

FreeCAD


🖼️ 그래픽 툴
{{{#!wiki style="margin:0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display:inline-block; min-width:25%"
{{{#!folding [ 2D ]
{{{#!wiki style="margin:-5px 0 -10px"
<colbgcolor=#eee,#333> DTP LibreOfficeΟF · Affinity Publisher · Microsoft Publisher · Sigil · QuarkXPressC · 어도비 인디자인C · ScribusΟF
비트맵 GIMPΟF · Affinity PhotoB · Artecture Draw, Sketch, PaintΜ · SketchbookBF · AzPainter2 · Black InkBF · CLIP STUDIO PAINTB$ · Dr. HALOΧ · ExpresiiC · EzPhotoX · ibisPaint XB$ · KritaBΟFC · LeonardoC · mdiappF · MyPaintΟF · Paint.NET$ · PaintTool SAI · PintaΟF · PixiaF · ProcreateΜ$ · RebelleC· SketchableC · Spine · 그림판 · 디럭스 페인트Χ · 메디방페인트BF · 스무스 드로우F · 아트레이지 · 아트위버 · 어도비 포토샵C · 에지B$ · 오픈캔버스 · 일러스트 스튜디오Χ · 콜러페인트F · 파이어알파카F · 페이즈원 캡처원프로$ · 페인터C · 페인트샵 · 페인트스톰 스튜디오B · 포토샵 라이트룸 · 포토스케이프 X$프레시 페인트B · 픽셀메이터 프로B · 픽픽$ · 하늘Χ · 훠닐 스타일픽스F · Pocket ArtistXM · AsepriteO
벡터 InkscapeΟ · Affinity DesignerB · Corel DRAWC · CorelTRACEOFC · CLIP STUDIO PAINTBC · ibisPaint XΜ · Microsoft Visio · Spine · 어도비 애니메이트C · 어도비 일러스트레이터C · 툰붐 하모니
UI Sketch · 피그마$ · 어도비 XD
웹 기반 Draw ChatF · DrawesomeF · KlekiF · PixlrB$ · PhotopeaB$ · Sketch Pad$ · Magma Studio$ · Sumo App$ · Queeky$ · 미리캔버스B$ · 툴디B$
}}}}}}}}}
[ 3D ]
##
||<tablewidth=100%><tablebgcolor=#fff,#1c1d1f><colbgcolor=#eee,#333><width=70> CAD ||<(>FreeCADOF · CATIA · CREO · Fusion 360 · Inventor · NX · Solid Edge · SolidWorks · OpenSCAD · OnshapeB · TinkercadF · ARCHICAD · AutoCAD · QCADO$ · ZWCAD · ZW3D · K-CAD||
PLM CATIA · CREO · Fusion 360BL · Inventor · NX · Solid Edge · SolidWorksL · OnshapeBL
Mesh BlenderOF · 3ds Max · Mudbox · Autodesk Maya · Cinema 4D(BodyPaint 3D) · Daz StudioF · Houdini · LightWave 3D · Metasequoia · MilkShape 3D · Mine-imator · MODOX · Poser · SculptGL · Sculptris · SketchUp$ ·소프트이미지Χ · Source FilmmakerF · Substance 3D Painter · VUE · ZBrush · Zmodeler · 포즈 스튜디오 · Prisma 3DFM · XISMOF · VRoidBF · MikuMikuDance · Nomad SculptΜ
NURBS Alias · Autodesk Maya · 3ds Max · Rhino · 소프트이미지Χ
렌더 Arnold · Chaos Corona · Enscape · Mental RayΧ · V-Ray · Lumion · Twinmotion · 언리얼 엔진 · Keyshot · RenderMan$ · MoonRayOF · 코미Po! · 툰스푼 에디터
웹 기반 Onshape
[ 영상 ]
##
||<tablewidth=100%><tablebgcolor=#fff,#1c1d1f><colbgcolor=#eee,#333><width=70> 편집 ||<(>Avid Media Composer$ · AviUtlF · Camtasia Studio · Clipchamp$ · DaVinci Resolve$F · Final Cut Pro · HitFilm$ · iMovieB · KdenliveOF · Lightworks$ · LumaFusionB$ · Movavi Video · OliveOFC · ShotcutΟF · VITAM · VivaVideoΜ · Windows Movie MakerΧ · 곰믹스$ · 뱁믹스$ · 베가스$ · 소니 카탈리스트 · 에디우스 · 소프트이미지Χ · 캡 컷B$ · 키네마스터Μ · 파워디렉터B · 프리미어 프로 · 필모라 · 반디컷$ · Vrew$ · VLLOΜ ||
특수효과 애프터 이펙트 · Live2D$ · Motion · Nuke · 베가스 이펙트 · Alight Motion$ · NatronΟF · Luma FX$X
}}}||
B PC·모바일 공동 지원 · L 제한적으로 사용가능하며 확장팩으로 가능 · Μ 모바일 전용 · Ο 오픈 소스 · F 프리웨어 · $ 유·무료 공존/부분유료 · C 컬러 매니지먼트 시스템 · Χ 단종
프리캐드
파일:Freecad-logo.svg
<colbgcolor=#f8f9fa,#1f2023><colcolor=#000,#fff> 용도 <colcolor=#000,#fff> 메커니컬 및 서피스 디자인,
기계설계, 시뮬레이션, 건축 BIM
코드 라이선스 gnu lgpl v2+
운영체제 Linux, Windows, macOS
사이트 freecad.org
1. 개요2. Link Branch 및 Assembly3 사용 팁
2.1. 사이클릭 디펜던시 및 에러 해결책
3. 프리폼 서피스 디자인 툴4. 프리캐드를 사용한 3D 모델링 강좌5. 렌더링, 데칼, SubD 서피스 활용방법6. Linux에서 포터블/멀티버전 설치 및 실행 방법7. 관련링크
[clearfix]

1. 개요

프리캐드는 크로스 플랫폼(리눅스, 윈도우즈, 맥에서 모두 실행)을 지원하는 다목적 파라메트릭 3D CAD, 자유 소프트웨어이다. 메커니컬 및 서피스 디자인, 기계설계, 건축등의 분야에서 사용가능하다. 부가 기능을 워크벤치 모듈/Addon이나 매크로(Macros)로 제공하고 있다. 릴리스 히스토리 및 릴리스 노트#.

디자인 구조설계 및 편집에 편리한 파라메트릭과 히스토릭 기능을 지원하고 있다. 멀티 다큐먼트 파일, 멀티 그룹, 멀티 파트, 멀티 바디 컨테이너로 솔리드 모델과 서피스 모델등을 구성한다. 활성화된 어셈블리, 바디 컨테이너, 또는 스케치 내에서 타 오브젝트를 (Sub)ShapeBinder나 External/DefiningGeometry 툴로 참조하여 피쳐를 정의 가능하다. 파트/바디의 피쳐, 디멘젼, 오브젝트 위치/어테치먼트 등등의 디자인 인텐트(intent)가 '어셈블리'로부터 가능한 탑다운(Top-down) 디자인을 지원하고 있다.

외부 다큐먼트 파일 또는 작업 다큐먼트 파일 내의 스케치/바디/파트/서브어셈블리 추가(고급 Copy/Paste 또는 Link) 및 In-Context / In-Place Design-Edit, 오브젝트간의 조인트/메이트 구속조건(3D Constraint), 바디 컨테이너 내에서 분리 또는 합쳐진 솔리드 오브젝트/피쳐 관리, 2D-3D 통합 스테틱 스페이스 솔버 및 리얼타임 다이나믹 키네마틱(kinematic) 모션, Link/Bind CopyOnChange등의 고급 참조, 매니지먼트 기능 등등의 고급 어셈블리/파트 디자인을 위해 추가 설치가 필요한 Assembly3 워크벤치 애드온 또는 2024년 11월 프리캐드에 기본 탑재되고 있는 OndselSolver 기반의 Assembly 워크벤치를 사용하자. 다수의 기계적 모션의 3D 컨스트레인트가 적용되는 어셈블리경우 Assembly3의 SolveSpace보다는 새로이 탑재되고 있는 OndselSolver가 성능면에서는 보다 뛰어나다.

2. Link Branch 및 Assembly3 사용 팁

성능과 관련하여 Menu > Edit > Preferences > Display > 3D view > Rendering 창에서 "Use OpenGL VBO"를 체크하고 "Render cache"를 Experimental로 선택하면 Coin3D 최적화 등을 통한 OpenGL GPU 직접 가속을 지원하게 되어 복잡한 어셈블리 작업시 확연한 성능 향상을 느낄수 있다#. 저가형 GPU에서 특히 효과가 있다. 렌더 캐시 성능향상 기능은 Link Branch 릴리스에서만 지원한다. 3D View 설정창에서 "Show counter of frames per second"를 on하여 게임 성능 체크와 같이 FPS를 확인가능하다. 그리고 Tessellation값을 Menu > Edit > Preferences > Part desgin > Shape view창에서 글로벌로 설정, 라인/커브/서피스에 대한 화질과 성능 밸랜스를 조절가능하다.

어셈블리3 워크벤치 사용시 3D 컨스트레인트를 적용후 기계적 모션을 수동으로 실행하기 위해 어셈블리3 워크벤치의 'Move Part'나 'Axial Move Part' 툴을 사용한다. 선정된 컨스트레인트에 대해 Length, Angle, Distance 파라메터를 스텝을 조절하며 오토 모션 기능을 구현하려면 https://wiki.freecadweb.org/Tutorial_KinematicAssembly 및 https://wiki.freecad.org/Tutorial_KinematicController 튜토리얼 내용대로 매크로를 실행하여야 한다. 키네마틱 모션에 대한 스텝별 이미지 파일을 저장하는 기능도 있어 기계적 모션에 대한 gif 애니메이션 파일을 작성도 가능하다. 구동 컨스트레인트를 지정하기 위해 Assembly 트리의 Constraints 폴더 하부의 선택된 3D 컨스트레인트 Label을 Driver로 끝나게 수정한후 매크로를 실행하여야 한다.

어셈블리 파트에 대해 2번째 3D 컨스트레인트/조인트/메이트를 적용시 에러가 뜨는 경우는 그 파트에 대한 DOF(degree of freedom) 값이 0이하로 감소하여 Overconstrained되는 경우 발생한다. 해결책은 DOF값이 높은 3D constraint 툴을 조합하여 사용하면 된다. 예를들어 AxialAlignment와 DOF가 1로 낮은 PlaneCoincident를 사용하는 대신 DOF가 5로 높은 PointInPlane을 조합하여 사용하면 해결된다. SameOrientation툴과의 조합도 아주 유용하다.

2.1. 사이클릭 디펜던시 및 에러 해결책

  • 어셈블리 하부의 2개 이상의 바디 또는 서브 어셈블리 컨테이너에서 상호간에 SubShapeBinder나 ExternalGeometry툴 등으로 참조시 Cyclic Dependency 에러가 뜨는 경우가 있다. 해결책으로는 컨테이너 내의 오브젝트를 단일 방향으로 참조, Spreadsheet의 글로벌 변수 이용, 제3의 고정된 오브젝트로의 3D Constraint 적용 등으로 해결가능하다.
  • SubShapeBinder로 참조시 얼라인먼트가 맞지 않는 경우가 있는데 Tree뷰에서 SubShapeBinder 오브젝트를 선택후 더블클릭이나 오른쪽 마우스 클릭후 Synchronize를 해주어야 한다.
  • 어셈블리 트리에서 Link 오브젝트에 대한 오리지날 Linked Object의 파일명이 변경되거나 삭제된 경우 루트 어셈블리에 에러 마크가 뜨는 경우가 있다. Property > "Change the linked object" 다이얼로그나 드래그&드랍 기능 등으로 Linked Object를 재지정 해야한다.
  • 어셈블리 컨테이너 Elements 트리에서 (Constraining)Element에 대한 Property > "Linked Object" 필드가 Blank/Null인 경우 그 엘리먼트를 트리에서 삭제해야하는 경우가 있다.

3. 프리폼 서피스 디자인 툴

다음 워크벤치(WB)의 기능과 피쳐를 사용하여 3D 라인/커브/서피스를 쉽게 디자인 가능하다.
기본설치된 워크벤치 모듈의 서피스 디자인 툴추가설치 가능한 서피스 디자인 워크벤치 모듈
Part Design WBSweep(Pipe), LoftCurves WB (3D Curve/Line/Surface)
NURBS WB
Silk WB
Curved Shapes WB
Part WBSweep, Loft, RuledSurface,
ShapeBuilder(FaceFromEdges)
Surface WBFilling, FillBoundaryCurves, ExtendFace,
SurfaceFromSectionCurves, CurveOnMesh
Part WB의 ShapeBuilder(FaceFromEdges) 툴을 제외하고 모두 전후 파라메트릭 기능을 지원하고 있다. 추가 설치가능한 서피스 디자인 워크벤치 모듈중에서는 Curves WB (NURBS 3D 라인/커브/서피스) 모듈이 가장 유용하다.

Tip : 3D 라인/커브 오브젝트 작성 방법
  • Draft WB에서 BSpline/Bezier 커브 툴 또는 Polyline 툴 실행후 X,Y,Z 키를 한번씩 클릭하여 마우스 커서를 이동, 원하는 3D 공간 위치에서 마우스 클릭, 콘트롤 포인트를 추가하면서 3D 라인/커브 오브젝트를 작성 가능하다. 작성된 커브/라인 오브젝트를 선택후 Draft Edit 툴을 실행하면 커브/라인의 개별 컨트롤 포인트를 X,Y,Z 임의의 방향으로 이동(역시 X,Y,Z키를 원클릭)하여 3D 커브/라인 오브젝트를 편집가능하다. 3D 커브/라인 오브젝트의 Property > Points > Vectors Table에서도 개별 콘트롤 포인트를 X,Y,Z 좌표값 수정 또는 추가도 가능하다.
  • 두개의 직교된 2D 라인/커브 스케치로부터 프로젝트(투영)된 별개의 3D 라인/커브 오브젝트를 구현가능하다. Sketcher 위크벤치 또는 Draft 워크벤치 모듈의 BSpline/Bezier 커브나 폴리라인 툴을 사용하여 2D 라인/커브 스케치 오브젝트를 만든다. 직교(90도) 평면상에 추가로 2D 라인/커브 스케치 오브젝트를 만든다. Part WB의 Extrude툴로 각각의 2D 라인/커브 스케치 오브젝트를 extrude하여 서피스를 만든후 Section 툴을 사용하면 프로젝트(교차된)된 3D 라인/커브 오브젝트를 만들 수 있다. (솔리드웍스의 Curve(3D) - Project Curve - Sketch on Sketch와 동등한 툴)
  • 2D 라인/커브 스케치를 다른 곡면/서피스 상에 프로젝트(투영)하여 3D 라인/커브 오브젝트로 만들 수 있다. Part 워크벤치의 ProjectionOnSurface 툴을 사용하면 쉽게 가능하다. (솔리드웍스의 Curve(3D) - Project Curve - Sketch on Face와 동등한 툴)
  • Curves 워크벤치의 툴로 보다 간편히 구현가능하다. Line, Degree/Subdivide, Align, Tangent, Intersection, Join, Split, Extend, Blend, Snap, Trim, IsoCurve, Sketch Map, Continuity, UV 파라메터, Face to Parametric Solid/Shell/Compound 등등 고급 3D 서피스 디자인에 필요한 기능을 압축시킨 유용한 워크벤치 모듈이다. Curves WB 3D 라인/커브 툴 강좌
위와 같이 작성된 3D 라인/커브 오브젝트는 구현하고자 하는 3D 서피스를 위한 프로파일(profile)/바운더리(boundary)/패스(path)로써 사용가능하다.

4. 프리캐드를 사용한 3D 모델링 강좌

Studio
Petrikas
MangoJelly
Solutions
Mariana
Badea
Joko
Engineeringhelp
TutorialField AllVisuals4U

5. 렌더링, 데칼, SubD 서피스 활용방법

모션 그래픽 업계에서 활용중인 오픈소스 자유 소프트웨어인 Blender의 특수기능을 프리캐드와 함께 사용 가능하다.

프리캐드에서 .OBJ나 .STL 파일로 export하여 Blender에서 리얼타임 렌더엔진인 Eevee나 CPU+GPU를 동시에 지원하는 Cycles 렌더엔진으로 렌더링 가능하다. 프리캐드에서 export시 Mesh WB에서 보다 상세한 셋팅을 하여야 할 경우도 있다. 실물 사진과 동일한 이미지 결과를 얻기 위해 블렌더에서 렌더 셋팅, Output 셋팅, View Layer 셋팅, World 셋팅, 머티리얼 셋팅, 텍스쳐 셋팅, 카메라/라이트 셋팅과 Shade에디터 사용에 대한 노우하우가 필요하다. 블렌더의 UV 에디터로 Decal을 입히거나 에니메이션과 관련된 에디터를 사용하여 모션 그래픽 툴로도 활용 가능하다.

렌더링을 위해서는 기본적으로 World HDRI 이미지에 오브젝트 별로 Material 텍스쳐 이미지(베이스 컬러/이미지 + Normal/Height/Metallic/Roughness 이미지)를 Normal/Bump 맵핑 노드와 Shader 노드(Principled BSDF)에 적용 또는 Displacement 맵핑을 통해 용이하게 상용 렌더러를 능가하는 이미지 결과를 얻을수 있다. 블렌더 PBR 텍스쳐 베이직 강좌(Normal/Bump맵핑). 유튜브에서 Freecad Blender, Blender Rendering, Blender PBR등으로 검색해보면 된다.

Blender에서 SubD/NURBS 서피스 모델링 결과를 .OBJ나 .STL 파일로 export한후, 프리캐드에서 Mesh to Shape 변환과 관련된 툴을 사용하거나, 별도의 SubD to NURBS 자동화 변환툴 (Mesh .OBJ/.STL => SubD => NURBS .IGES/.STEP 트랜스레이터/컨버터) 등을 사용하여 Mesh 기반의 3D자료를 NURBS/Shape모델로 변환하여 프리캐드에서 활용 가능하다. 블렌더-프리캐드 전용 SubD to NURBS 자동화 변환툴도 있다.

6. Linux에서 포터블/멀티버전 설치 및 실행 방법

프리캐드는 멀티버전 및 포터블 버젼 실행을 지원한다. 프로그램 설정 파일 및 디렉토리 분리를 위해 Ubuntu 등등의 리눅스에서 FREECAD_USER_HOME 환경 변수와 값을 지정하여 프로그램을 실행한다.

프리캐드 AppImage 파일을 관련 링크에서 다운로드 한후 nautilus 파일 매니져에서 오른쪽 마우스 클릭, "Properties > Executable as Program"을 체크한다. 텍스트 에디터에서 bash 스크립트 파일을 다음과 같이 작성후 nautilus 파일 매니져에서 오른쪽 마우스 클릭후 "Run as a Program"으로 실행한다.
cd PATH_TO_AppImage                 # appimage 실행 파일이 위치한 절대 경로로 수정
export FREECAD_USER_HOME="$PWD/Settings_Ex1"
export QT_QPA_PLATFORMTHEME=gnome   # 옵션 사항으로 Qt앱을 리눅스 GNOME데스크탑에서 사용시 UI튜닝을 위해 지정
./name_of_AppImage_file.AppImage    # 실제 appimage 파일명으로 수정
AppImage 실행 파일이 위치한 곳에 Settings_Ex1 서브폴더가 만들어지고 관련 셋팅파일 및 Addon등이 분리되어 위치함을 알수 있다.

7. 관련링크

FreeCAD 안정화 버전 다운로드 → https://github.com/FreeCAD/FreeCAD/releases
FreeCAD AppImage 위클리 버전 다운로드 → https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds
리눅스 전용 sanp 릴리스[1]https://snapcraft.io/freecad

Link Branch 릴리스 → https://github.com/realthunder/FreeCAD/releases
Link Branch, 리눅스 전용 snap 릴리스 → https://snapcraft.io/freecad-realthunder
Assembly3 워크벤치 모듈 → https://github.com/realthunder/FreeCAD_assembly3

기본 설치된 워크벤치 모듈 정보 → https://www.freecadweb.org/wiki/Workbenches
추가 설치 워크벤치 모듈 정보 → https://www.freecadweb.org/wiki/External_workbenches


[1] sudo snap install freecad --edge 명령어로 리눅스에서 데일리 자동 업데이트를 지원함

분류