FreeCAD 기본 개념

유의할 점

  • FreeCAD는 오픈 커뮤니티 개발모델에 의한 단점이 좀 크게 드러나는 편이다.
  • 이유는 주도적으로 개발을 끌고가는 강력한 스폰서쉽을 가진 '기업'이 없어서 그렇다.
  • 그러다보니 아무래도 아마츄어리즘이 좀 강한 편이다. 따라서 완성도, 통일성, 깔끔함, 무결성, 계획성 등에서 크게 기대하기는 어렵다.
  • 그럼에도 불구하고 나름 꽤 쓸만하다. 아마 보조적인 용도의 가벼운 3D CAD로 사용하기에는 충분하지 않나 싶다.

환경설정

  • FreeCAD는 각종 메뉴버튼들 및 트리구조 파악 등을 원활하게 하기 위해 가급적 화면 해상도는 높은 쪽이 유리하다(1080이상). 너무 해상도가 낮은 화면에서는 작업이 어려울 정도로 메뉴배치가 엉망이 되므로 작업 효율이 크게 저하된다.
  • 환경설정 메뉴는 Edit > Prefrerences로 들어가면 된다.
  • Preferences로 들어가기 전에 미리 워크벤치는 Complete로 해 두어야 모든 환경설정 카테고리들이 뜬다.
  • General 카테고리의 Macro 탭에서 Macro Path를 원하는대로 잡아준다. 이후 이 경로 안에 추가 기능 매크로를 저장하면 된다. 또 Unit 탭에서 원하는 대로 설정을 해 준다. 여기서는 편의상 Standard (mm/kg/s/degree) 단위계로 설정하기로 한다.
  • Display 카테고리에서 원하는 설정들을 해 준다. 단, 3D View탭에서 3D Navigation 항목은 CAD Navigation으로 잡아주고, Camera TypeOrthographic으로 해 주는 것이 유리하다.
  • Part Design 카테고리의 Shape View탭에서 Tessellation 항목의 값을 적절히 줄여준다. 이 숫자가 작아질수록 3D 모델이 더 정교하게 보이지만 대신 화면에 뿌려지는 속도는 느려진다.
  • 기타 다른 설정 사항들도 살펴보면서 구조를 파악해 둔다.

배경지식

  • 전반적인 사항은 FreeCAD Wiki 참조
  • 3D 화면 다루기 : 3D 화면의 빈 곳 위에서 마우스 오른쪽 버튼을 누르면 메뉴가 나온다. 메뉴에서 Navigation Styles 항목에서 항상 CAD Navigation 상태로 놓고 작업을 하도록 한다. (다른 Navigation Style에서는 마우스로 오브젝트를 선택하는 것이 안된다던가 하는 등의 결함이 있기 때문에, 모델링 작업 할 때는 반드시 CAD Navigation으로 두고 해야 한다.)
  • 워크벤치 : 여러 종류의 워크벤치 모드가 있는데, 그 중에서 주로 사용하게 될 것들은 Part Design,Part, Draft, Inspection 정도이다. 나머지는 현실적으로 거의 사용할 일이 없을 것 같다.
  • 본 해설에서는 Assembly는 다루지 않고 순수하게 단일 부품 모델링 까지만 다루겠다. (FEM 해석을 위한 비교적 단순한 형상의 모델링)
  • FreeCAD가 강력해 질 수 있는 부분은, 모델링을 편리하게 빨리 더 잘할 수 있는 쪽이 아니고, 최대한 개방된 구조로 모든 기능을 극대화하여 발휘할 수 있는 Python 스크립트 때문이다. 즉 기존 설계 패러다임으로 그림 그리듯이 모델링 작업을 한다면 상용 CAD 제품을 능가할 부분이 없지만, 대신 스크립트를 활용한 Computational Modeling 패러다임을 따르게 된다면 FreeCAD 쪽이 상용 CAD 제품보다 오히려 더 우월할 수 있다.
  • Computational Modeling 기법의 좋은 예로, FreeCAD에 포함된 워크벤치 중에서 Ship 처럼, 선박의 곡면 선체 디자인을 사용자가 입력한 파라미터에 따라 자동으로 계산해서 그려주는 방식을 제시해 볼 수 있다. 선박의 선체 디자인 뿐만 아니라, 드론의 프로펠러 형상 설계라던가, 풍력발전기의 날개 설계, 또는 일정한 규칙에 따라 수천가지 이상 종류가 나오는 볼트/너트 모델링을 자동화하는 등 여러가지로 응용하기가 좋다. 그 외에, 최신 건축 디자인 패러다임의 하나로 비정형 디자인(Free Form Design) 이라던가, 또는 수학적인 공식에 의해 형성되는 다면체(DodecaHedron, Tensegrity, Bucky Ball 등) 모델링 등을 구현하기도 용이하다. 학습곡선 측면에서 상용 CAD 제품의 스크립트 기능보다 FreeCAD 쪽이 훨씬 더 쉽게 구현 가능하다.

기본 모델링

스케치 (밑그림 그리기)

  • 워크벤치를 Part Design으로 한다. 그러면 좌측 Task 탭에 Create Geometry 선택 메뉴가 나타날 것이다.
  • 메뉴 중에서 제일 첫번째의 Create Sketch를 선택한다. 그러면 Choose Orientation라는 찹업창이 뜬다.
  • 스케치를 원하는 평면을 선택하고, 그 평면에서의 Offset 값 및 Reverse Direction 여부를 정해주고 OK 한다.
  • 이제 스케치 모드로 들어왔다. 이제 스케치 엔티티들의 아이콘을 적당히 골라서 스케치를 해 준다.
  • 이후에 구속조건(Constraints) 아이콘들을 이용해서 적절한 구속조건 및 치수들을 준다. 구속을 주다 보면 스케치 선이 흰색이 아니고 녹색이 되는데, 이는 필요한 모든 구속조건이 다 부여되었다는 뜻이므로 가장 이상적인 상태이다.
  • 스케치가 완료되면 Close 버튼을 눌러 빠져나온다.

익스트루드 (살 올리기)

  • 이제 메뉴 아이콘 중에서 Pad를 선택한다.
  • 밀어낼 길이(Length) 및 방향 등을 지정해 주고, OK 한다.

필렛 (모서리 둥글리기)

  • 필렛을 줄 모서리를 마우스로 선택해서 녹색이 되도록 만든다.
  • 필렛(Fillet) 아이콘을 선택하고, 반지름(Radius) 파라미터를 입력후 OK 한다.

치수 변경

  • 화면 좌측의 Task 탭 대신 Model 탭을 눌러서 모델 트리가 보이도록 한다.
  • 치수 변경을 원하는 피쳐(Feature)를 선택하고 마우스 오른쪽 버튼을 눌러 메뉴가 나오게 한 후, Edit *로 들어간다.
  • 변경을 원하는 치수값을 바꾸어 준다.
  • OK 하고 빠져나와서 변경된 치수가 반영된 형상이 되었는지 확인한다.

마무리

  • 작업된 모델을 원하는 파일 이름으로 저장한다.
  • 이상 연습한 내용은, 가장 기본적인 3D 솔리드 모델링을 수행한 것이다.
  • 기본 절차가 (1)스케치 (2)솔리드화 (3)데코레이션의 느낌으로 진행됨을 이해했을 것이다.
  • 또한 이상의 작업 절차대로 모델 트리에서는 순서대로 피쳐(Feature)들이 나열되어있음을 볼 수 있고, 각각의 것들을 파라메트릭하게 치수 변경이 가능함을 알 수 있었을 것이다.

dxf 파일 읽어와서 스케치로 만들기

dxf 파일 준비 및 읽어들이기

  • FreeCAD에서 dwg 파일을 직접 읽어들이도록 외부 소프트웨어를 연결해 주는 플러그인도 있지만, 셋팅해도 제대로 작동되지 않을 확률이 높기 때문에 굳이 노력할 필요는 없을 것 같다.
  • 대신 더욱 범용적인 dxf 파일을 읽어들이는 쪽이 쉽다. FreeCAD에서 최초로 dxf 파일을 임포트 시킬때, FreeCAD가 자동으로 해당 플러그인을 다운로드 받아서 설치한 후 이상없이 읽어들여 주도록 되어 있다.
  • dwg, dxf 읽어들이는 플러그인이 이렇게 원래 배포본에 포함되어 있지 않은 이유는 라이센스 종류가 달라서 FreeCAD와의 법률적 호환성이 없어서 그렇다고 한다.
  • 아무튼 적당한 평면도가 그려져 있는 dxf파일을 준비한 후, File > Import 메뉴를 선택하여 읽어들이면 된다.

읽어들여진 데이타 정돈하기

  • 읽어들여진 데이타가 화면에 이상없이 보이는지 확인한다. 겉으로 보기에 멀쩡해 보여도, 이것을 그대로 사용하여 스케치로 사용할 수 없다. FreeCAD에서 스케치로 사용하려면 다음 사항들을 생각해 보고, 조치를 취해줄 필요가 있다.
  • (1) 읽어들여진 dxf 파일의 데이타는 그 특성이 일반적인 스케치와는 다르다. 때문에 이것을 스케치로 강제로 만들어 줄 필요가 있다. 이것을 가능하게 하는 버튼은 Draft 워크벤치 안에 Draft to Sketch 버튼이다. 물론 스케치로 만들 모든 엔티티들이 선택되어져 있는 상태에서 한다.
  • (2) 이제 스케치로 된 각각의 선(Lines)들은 전부 다 별도의 스케치로 전부 끊어져서 분해된(Exploded) 상태임을 알 수 있다. 하나의 스케치로 모아주어야 할 것이다. 이것을 가능하게 하는 버튼은 Part Design 워크벤치 안에 Merge Sketches 버튼이다. 물론 원하는 모든 스케치 피쳐들이 선택되어져 있는 상태에서 한다.
  • (3) 이제 하나의 스케치로 모아져 있기는 하지만, 각각의 선과 선의 끝점이 서로 정확히 일치하고 있을까? 확신할 수 없다. 데이타가 이리저리 변환되다 보면, 부동소수점 계산시 정밀도(Accuracy) 차이로 인해서 오차가 생길 수 있기 때문이다. 만일 전부 떨어져 있다면 전부 다 이어붙여주는 조치가 필요할 것이다. 이와같이 무결성을 판별해주려면 Part Design 워크벤치 안에 Validate Sketch 버튼을 사용해 준다. 물론 해당하는 스케치가 선택되어져 있는 상태에서 한다. 그러면 결과로 Invalid Constraints 등의 정보가 나오며, 이상이 있는 것들을 Fix버튼을 눌러서 자동 수정해 주도록 한다.
  • 이상 (1)(2)(3)번 절차대로 하면 된다. 이후 마지막으로 만들어진 스케치 피쳐를 제외하고, 그 위의 불필요한 피쳐들은 모두 삭제해 줘도 된다.

마무리

  • dxf 데이타를 스케치로 사용하여 솔리드(Solid) 형상을 만들어내는 과정은 신속한 작업성과 데이타 교환성 측면에서 상당히 유용할 수 있다.
  • 다만, 여전히 dxf 데이타를 정돈해 주는 작업을 거쳐야 하므로 약간 불편한 점을 감수해야 한다. (물론 필요하다면 Python 스크립트로 이 과정을 자동화하는 것도 가능할 것으로 본다.)

자유곡면 형상 모델링

자유곡면을 그릴 수 있는 명령

  • Part 워크벤치에 있는 Sweep, Loft 명령 정도를 활용해서 필요한 자유곡면을 대부분 모델링 가능하다.
  • 여기서는 Loft를 사용해 본다. Loft는 2개(또는 그 이상)의 단면 스케치를 이용하여 그것들을 연결해 주는 개념이다. #### 스케치1
  • 먼저 임의의 스케치를 임의의 평면에 그려준다. #### 스케치2
  • 스케치1에서 어느정도 떨어져 오프셋(Offset)된 평면에 또다른 임의의 스케치를 그려준다. #### 로프트
  • 이상 그려진 2개의 스케치를 모두 선택한 후, Loft 아이콘 버튼을 눌러 실행한다. #### 마무리
  • 2개의 스케치의 형상이 모두 열린 선이라면, 당연히 결과는 Surface로 나올 것이다.
  • 2개의 스케치의 형상이 모두 닫힌 선이라면, Solid 또는 Surface 중에서 선택 가능하다. Surface로 할 경우에는, Closed로 할 수도 있다.

불리언(Boolean) 조작

  • 이상 단순한 형상들을 조합하여 더 복잡한 형상으로 구성하기 위해서는, Part 워크벤치에 있는 몇가지 불리언 조작 명령 버튼을 사용한다. Union, Diffrence, Intersection, Section의 4가지 조작이 가능하다.