본문으로 바로가기

좋은 글이 있어서 퍼옴.

------------------------------------------------------------------------
pro-E, 카티아, 솔리드웍스, 오토캐드, 유니그래픽스 등을
FreeCad, 드래프트사이트, 다른 글타래에서 추천해주신 공학용 프로그램들로
충분히 커버가 되는지도 궁금합니다.
물론 비전문가가(평범한 사용) 사용한다고 가정해 주십시오.
------------------------------------------------------------------------
 
CAD 업계의 역사도 나름대로 참 흥미진진한데요.
3D CAD 기술에 대해서 간단히 말씀드려 보자면, '3D 솔리드 커널'이 이 분야의 핵심기술에 해당한다고 합니다.
'3D 솔리드 커널'은 간략히 말해서,
최하위의 그래픽카드 같은 하드웨어 위에 올라타는
소프트웨어 그래픽 라이브러리인 OpenGL이 있는데
또 그 위에 올라타는 소프트웨어 라이브러리를 말합니다.
왜 OpenGL 위에 올라타는게 필요하냐면, OpenGL에서 제공하는 기능은 너무 하등하기(?).. 아니, 기본적인 것들이기 때문이죠.
때문에 공학용 솔리드모델을 다루기 위한 기능들이 구비된 '솔리드 커널' 라이브러리가 필요하다고 합니다.
간단히 말해서,
구/원뿔/육면체 등의 프리머티브 형상들을 불리언 연산해서 더하거나 빼거나 하는 기능들이나
위상기하학적인 토폴로지 이론 같은게 막 들어가서 복잡한 솔리드 데이타 구조를 형성하고 다루는데 필요한 기능들입니다.
 
 
3D CAD 업계에서 사용하는 메이저급 솔리드 커널은 몇가지가 있습니다.
 
대표적으로 오랜 역사를 자랑하는 Parasolid 커널이 있습니다. 이거 기반으로 UG(Unigraphics) 제품이 나와 있구요.
거의 표준 비슷한 역할을 하고 있죠.
때문에 다른 솔리드커널들도 기본적으로 이 파라솔리드 형태로 변환 가능하도록 기능이 기본적으로 들어가 있습니다.
하지만 파라솔리드 커널은, 지멘스가 소유한 상업용 독점 소프트웨어 입니다.
소스코드는 비공개입니다. 사용하려면 라이센스료를 내야 하고요.
(하지만 학교에서 연구용으로 요청하면 비영리 연구목적으로 소스코드 제공해 준다고는 합니다만)
 
그 다음으로 큰 것이 ACIS 커널이 있습니다.
이것은 닷쏘시스템사의 CATIA에서 기반으로 하고 있습니다. 물론 이것도 닷쏘시스템사가 소유한 상업용 독점 소프트웨어 입니다.
1997년에 솔리드웍스사를 닷쏘시스템에서 인수를 했는데,
2011년에 솔리드웍스 CAD 제품의 기반 커널을 기존의 Parasolid에서 ACIS로 바꾼다는 뉴스가 있었습니다.
즉 닷쏘시스템은 CATIA, Solidworks의 기반기술을 전부 자사기술로 통합하고 있죠.
 
그 다음으로는 PTC사의 CREO(구 Pro/Engineer, Wildfire) 제품에서 사용하는 커널입니다.
원래 프로/엔지니어에서는 파라솔리드 커널의 라이센스를 구매해서 구현했었는데,
최근에 와일드파이어로 업그레이드 하면서 자체적인 Granite 커널이라는 걸 개발한 모양입니다.
Grinite 커널에 대해서 잘 알지는 못하지만, 완성도에 자신이 있는지 이 커널만 따로 라이센스 판매도 하는 모양입니다.
물론 Granite 커널 역시 PTC사의 독점 소프트웨어죠.
 
.....
 
자, 그럼 오픈소스 진영에서는 위에 열거된 저런 훌륭한 솔리드 커널을 하나도 쓸 수 없습니다.
세계 최고의 기술력을 가진 커널들인데 불행한 일이죠.
대신 오픈소스 쪽에서는 그 대안으로 하는 것이 OpenCascade 커널이 있다고 합니다.
원래 프랑스의 회사에서 유클리드라는 자체 3D CAD를 개발하면서 만든 건데
워낙 이쪽 업계에 쟁쟁한 거물들이 많은지라, 도저히 경쟁이 안된다고 판단되자
자신들의 기반기술인 커널을 오픈소스화 해 버리고, 자신은 그 커널을 유지관리개선 및 엔지니어링 서비스 해 주는 사업모델로 전환해 버립니다.
 
오픈캐스케이드 커널도 굉장히 방대하고 기능이 짱짱하기 때문에, 오픈소스 쪽에서 이거 기반으로 대부분 다 만들더군요.
FreeCAD는 물론이고, HeeksCAD나 NaroCAD(이넘은 C#으로 개발한 거라서 윈도우 전용) 같은 오픈소스 3D CAD 소프트웨어들은
전부 오픈캐스케이드 기반인 것 같습니다.
 
그럼 오픈캐스케이드의 완성도가 위에 열거한 메이저 커널들과 동등한가 하는 점이 남는데...
실제 관련분야 개발자의 말씀을 들어보면
솔직히 좀 많이 딸린답니다. (-,.-);
 
C++코드가 엄청나게 잘게 쪼개져서 지저분하게(?) 있어서 전체 구조를 파악하기가 쉽지 않고,
제공되는 함수들의 카테고리도 이리저리 막 뒤섞여 있어서 체계성이 미흡하고,
자체 연산 정밀도 문제도 있어서 아주 얇은 솔리드를 생성하거나 할 경우(크리티컬한 경우)에는 에러가 잘 나는 등
단점이 많다고 합니다.
또 좋은 기술지원을 받기도 어렵습니다. 오픈캐스케이드 엔지니어링 서비스를 계약해서 받으려면, 어차피 상용 커널 구매하는 거랑 진배없죠.
 
하지만 이런 단점에도 불구하고, 오픈소스 진영에서는 현실적으로 채택가능한게 오픈캐스케이드 밖에 없기 때문에
할 수 없이(?) 이넘만 사용하는가 봅니다.
 
실제로 FreeCAD를 가지고 상당히 복잡하거나 민감한 형상을 불러들이면
상용 CAD보다 상당히 불안정한 모습을 보여줍니다.
 
또, 오픈캐스케이드 커널에는 ACIS나 파라솔리드가 계속 발전하면서 최근에 도입한 최신 개념들이 제대로 아직 도입되어 있지 못합니다.
그래서 FreeCAD의 기능도 그렇게 좋지 못한 편인 듯 합니다.
 
결론적으로 FreeCAD는 값비싼 전문설계용 상용 CAD를 직접 대체할 수는 없습니다.
상용 3D CAD 소프트웨어 정도의 완성도와 유용성을 가지는 소프트웨어가 오픈소스 진영에서 나오려면
리눅스 파운데이션이나 GNU 프로젝트 이상의 거대한 규모의 프로젝트가 되지 않고서는 힘들다고 생각됩니다.
 
대신 FreeCAD의 유용성은, 보조적인 용도로 사용하기에 정말 좋다고 생각됩니다.
또 DIY를 하는 개인들이 간단히 모델링해 보고 도면 뽑아내고 하기에는 좋다고 생각됩니다.
아니면 FreeCAD에 자신만의 커스텀화된 스크립트를 추가해서 특화된 용도 - 예를 들어 나사만 만드는 회사가 있을 경우,
나사의 수천가지의 규격을 DB데이타로 구축해 놓고, 그 데이타를 읽어서 자동으로 모델링을 주루룩 해 주는 자동화를 하는 등 -
에는 적당하지 않나 싶습니다.
(나사 제조회사에서 굳이 수천~수억원짜리 값비싼 CAD를 도입할 이유가 없으니까요)
 
.....
 
한편, 2D CAD에서 오토캐드 대체품으로 사용가능한 무료의 DraftSight의 경우에는
딱 한가지 단점이 있습니다. 즉 오토캐드에서는 오토리습 스크립트를 짜 넣을 수 있는데, 드래프트사이트에는 그 기능이 없습니다.
스크립트 기능이 없기 때문에, 이 기능을 중시하는 경우에는 좋은 선택이 아닙니다.
다만 최근에 닷쏘시스템에서 보내온 메일을 보니깐
드래프트사이트에도 자체적인 스크립트 기능을 추가하는 모양이긴 한데, 그 기능은 아마 유료화하지 않을까 싶더군요.

'블로그 (Blog) > 개발로그 (Devlogs)' 카테고리의 다른 글

CentOS 6.10 에 MySQL 5.7 설치하기  (0) 2024.03.08
Lynx for Win32  (0) 2024.03.08
윈도우즈10 icon cache 업데이트  (0) 2024.03.08
WBOIT 구현  (0) 2024.03.08
libuuid for mingw  (0) 2024.03.08