2014년 4월 17일 목요일

AutoCAD dwg 파일을 웹브라우저에서 보여주는 방법에 관한 고찰



AutoCAD *.dwg 파일을 

웹브라우저에서 보여주는 방법에 관한 고찰



* 필요성

현재 진행중인 사내 소규모 웹기반 간이 PDM 시스템에서,
도면 파일을 웹브라우저상에서 찾고 클릭해서 다운로드 하거나 하는건 아무 문제가 없는데
웹브라우저상에서 썸네일 보기 처럼 미리 도면 내용을 확인할 수 있으면
실무자가 일하는데 참 편하겠다 싶은 생각이 강하게 든다.


* 문제점

그런데 문제는...
오토캐드사에서는 *dwg 파일 스펙을 공식적으로 오픈하고 있지 않다는 점이다.
때문에 *.dwg 파일을 읽을 수 있는 오픈소스 소프트웨어는 존재하지 않는다.
LibreCAD 개발하는 사람들이 최신버전 *.dwg를 읽어들이게 하려고 노력하는 것 같은데
아마 스펙이 상당히 방대하므로 해킹하는 수준으로는 구현 자체가 어려울 거다.
게다가 오토캐드사는 이 포멧의  상위호환성을 계속 깨면서 버전업을 해 가고 있으니...
오픈소스에서 아무리 노력해도 그 속도를 못 따라잡는다.

(마치 이 상황은 한컴오피스의 *.hwp 파일 포멧이 "사실상" 비공개 상태여서,
오픈소스 또는 제3개발자가
그걸 읽어들이거나 다루는 소프트웨어를 제대로 개발하고 있지 못한
상황과 비슷하다.)

오토캐드사의 입장은 단순한 것 같다.
"*.dwg 파일은 그냥 우리 독점 포멧이니깐 우리 제품 쓰시고
웹에서 이걸 보게 하려면, 웹용으로 포멧을 경량화한 *.dwf 파일로 변환해서 쓰세요."

웹에서 보려면 당연히 용량을 줄이고, 읽기 전용으로 하는게 좋으므로 오토캐드사의 입장이 잘못된 것 같지는 않다.
다만 우리 회사와 같은 경우에는 안 맞는거다.

일단 오토캐드의 상용 솔루션을 사서 적용하고 싶지도 않고 또 가능할 것 같지도 않다.
왜냐면 우리 서버는 리눅스 서버니까.
오토캐드에서 리눅스 서버에서 구동가능한 변환기나 API를 제공할 것 같지는 않다.
(정확히 확인은 안 해 봤음)
설령 제공한다 하더라도 상당히 높은 가격 부담을 요구할 것이다.

즉,
오픈소스에서 구현이 안되어 있고.
오토캐드 쪽의 솔루션도 마음에 안든다.


그럼, 서버에 도면 데이타를 올릴 때 *.dwg 파일로 올리지 말고
*.pdf 내지는 *.dxf 같은 다루기 쉬운걸로 업로드 하면 되지 않냐고?

실무설계자 입장에서 그건 실무자를 너무 괴롭히는 처사다.
pdf 도면은 협력업체에 줘도 안 좋아한다.  왜냐면 치수 측정이 안된다.
dxf 포멧은 용량이 증가하긴 해도 일단 아무데서나 다 통하니 좋긴 하지만
설계자가 그걸 사용하는 습관이 되어 있지 않다.
(오토캐드 또는 드래프트사이트 프로그램의 디폴트 저장 옵션을 변경해 줘야 하는데
일일이 그렇게 하는 것도 쉽지 않다.  타성이나 관습 때문에)
간단히 말해 실무자들이 편하게 쓰려면 무조건 dwg가 아니면 안된다.



* 솔루션

그럼 다른 솔루션을 찾아봐야 할 텐데...
3가지 솔루션이 일단 눈에 띈다.

1. CADian 2D Viewer 솔루션  ( http://www.cadian.com/product/viewer.asp )
요놈은 일단 국산이다.
따라서 문제가 생기더라도 전화해서 막 뭐라 그러면 일단 답변받기는 쉬울 것 같다.
속도도 빠르다고 한다.
문제는 ActiveX 기반이라는 거다.
그래서 아웃.

2. profiCAD 솔루션 (  http://gallery.proficad.com/tools/AutoCAD-Viewer.aspx  )
위 주소에 들어가보면 무료 온라인 DWG 뷰어 서비스를 제공한다.
자기네들 제품은 못 팔더라도 일단 웹사이트 히트수를 올려주기 좋은 고마운 서비스다.
문제는 이 회사 서버에 우리 회사의 설계데이타가 올라가야 보여질 수 있다는 거다.
게다가 우리 PDM 웹에 이걸 임베드 시키는 건 아무래도 비정상적이겠지...

3. QCAD 솔루션 (  http://www.qcad.org/en/  )
QCAD는 대부분이 오픈소스이고, 익스텐션 기능만 상용화되어 있다.
(오픈소스 부분은 원래 LibreCAD의 전신이다.)
헌데 익스텐션 기능 부분 중에 제일 중요한게 바로 *.dwg 파일 관련된 것이다.
그런데 이 소프트웨어는 재미있는 특징이 있다.
자바 앱이라 그런지 리눅스-MS윈도우-맥 등등 잡식성으로 다 포팅되어 있다는 것이다.
다시말해 리눅스에서 실행 가능하다.
게다가 커맨드라인 툴이 제공된다.
(  http://www.qcad.org/en/qcad-documentation/qcad-command-line-tools  )
제공되는 커맨드라인 툴 중에 쓸만한게 바로 "dwg2svg"와 "dwg2pdf" 이다.
이것들도 확인해 보니 다 자바로 짠거다.
다만 익스텐션 기능을 구매해야 사용 가능하다.
그럼 익스텐션 기능은 얼마 하느냐...  32유로 즉 우리나라 돈으로 4만6천원 한다.


그럼 답은 나왔네..
위 3가지 솔루션 중에 3번을 선택한다.
그럼 리눅스에서 dwg 파일을 svg 또는 pdf로 마음대로 변환할 수 있다.
구현하는 PDM 웹앱에서
사용자가 어떤 dwg 도면을 클릭해서 보겠다고 하면
웹앱이 이 변환용 실행파일을 구동해서, 해당 dwg 파일을 svg 또는 pdf로 변환해서
템포러리 디렉토리에 임시로 저장한 다음에
웹브라우저에는 그걸 띄워서 보여주는거다.
커맨드라인 툴의 명령어를 사용하게 되므로
API 같은걸 사용하는 것과 달리 좀 무식한 방법이긴 하지만
일단 4만6천원짜리 솔루션인 거다.
웹앱 개발자가 dwg파일을 어떻게 다룰지 고민 안해도 된다.
svg 파일 같은 경우에는 웹브라우저에서 그냥 보여주는 거니깐...

이런 식으로 구현되면 아마
2번 profiCAD 웹사이트에서 제공하는 것과 유사한 dwg 웹 서비스가 될 것이다.



* 욕심

사실 3D 데이타도 그렇다.
썸네일 개념으로 형상만 간단히 확인하게 해 주면 좋은데...
Step이나 Iges 파일을 x3d, x3dom 같은 xml 파일로 변환해 주는 컨버터가 있다면
그게 가능할 거다.

WebGL로 데이타 보여주는 경우 (크롬,파폭에서 기본 지원)
http://dlmf.nist.gov/21.4.F1i.webgl

WebGL로 3차원 로고를 웹에서 보여주는 경우 (크롬,파폭에서 기본 지원)
http://coforward.com/

컨버터 툴을 아마 구하기 쉬운 시기는 아직 아니라고 생각한다.
하지만 때가 있겠지...




댓글 없음:

댓글 쓰기