2011년 5월 19일 목요일

CATIA 어셈블리 파일관리

A 라는 조립품 에 B 와 C라는부품이 붙어 있습니다.

초기개발중에는 B가 됐든 C가 됐든 어느 놈이든 형상이 변경되더라도 문제될 것이 없습니다.  ( 가상의 DATA 또는 도면만 바꾸면 되기 때문입니다. )

하지만 설계가 어느 정도 마무리되고 특정시점이 되어 그 DATA가  회사에서 공식 데이터가 되는 순간 이후 부터는  데이터(도면)가  변경된다는 것은  큰 문제(ISSUE)거리가 됩니다. . (옛날에는 모두 도면이었지만 이제는 3D DATA를 MASTER DATA로 취급하는 회사가 많아 졌으므로 DATA라고 명명하도록 하지요)

왜냐하면 공식 데이터가 되는 순간부터 주변부서 사람들이 이 데이터를 실 업무에 사용하기 때문입니다.

부품개발팀 직원들은 이 데이터로 해당 부품을 제작할 수 있는 업체를 찾으려 할것이고, 생산기술부서직원들은 내부 조립방법 및 공정순서등을 검토하면서 그 공정에 사용될 JIG나 부자재등을 구매하려 할 것이고, AS부서직원들은 향 후 고장발생시 부품을 교체하기 위해 필요한 파트카탈로그등의 문서들을 만들고 부품을 포장하여 AS센터까지 운송하기 위한  여러가지 준비를 할 것입니다.  제품에 생명(?)을 불어넣기 위한 이 모든 제반행위들이 회사 전사적으로 시작 됩니다

즉 그 순간부터 회사가 운영하는 자금의 사용량이 급격하게 증가합니다

이 때 데이터를 공식화하는 행위를 배포(Release) 라 하며 이는
설계팀의 최고리더 (설계 팀장이 될 수도 있고 연구소장이 될 수도 있고 또  조그마한 회사일 경우 설계자 본인이 될 수 있습니다) 가 최종 승인을 해야만 공식화 됩니다.

그 만큼 중요한 사안이라는 것이죠

자 그러면 데이터를 변경해야할 경우는 어떻게 해야 할까요
역시 마찬가지로 최종승인자의 승인을 거쳐야합니다. 이는 이때까지 투입되었던 갔던 자금에 대한 책임을 지워야 하기 때문입니다.

우리는 이를 설계변경 , Revision 또는 Engineering change 라는 명칭으로 부릅니다.

자 이제 처음으로 돌아가서 초기 A,B,C 부품 및 조립품들이 Release 되었습니다. 그리고 얼마 지나지 않아 어떤 문제가 발생해서 ( 또는 누군가가 요청을 해서 ) C부품이 리비전이 되었습니다

그러면 여러분들은 오리지날 DATA인 C를 어디엔가 보관하고 (반드시 보관해야만 합니다) C란 놈을 수정하여 Ca 란놈 으로 저장할 것입니다

그러면 해결될 것 같아 보입니다.
여기서 Ca는 다른이름으로 저장을 하였습니다

그런데 담당자가 어셈블리상태를 보고싶어 A를 열었습니다
그러면 카티아는  기존의 C를 A의 부속품이라고 떡 하니 보여줍니다.

담당자는 Ca가 들어있는 조립형상을 보고 싶은데 말입니다.

이는 프로덕트 문서가 자기부분품 문서의 폴더명 파일명등을 기억하고 있기 때문에 담당자가 A에게 Ca로 바뀌었다는 것을 사실을 알려주지 않은 꼴이 됩니다.

즉 A를 열어서 C 대신 Ca로 변경되었다고 교체 한 후 A를 저장해야만 하지요. ( A는 프로덕트이기 때문에 B와 C가 가지고 있는 형상 DATA를 보관하지 않습니다. 단지 B랑 C가 자기아래에 있고 B랑 C 가 가상 공간상에서 어느 위치에 어떻게 배치되어 있는지 에 대한 정보만 보관하고 있습니다.)

현명한(?) 담당자는 고민을 합니다. “그럼 A를 여는 순간 최종 Release DATA를 바로 읽게 하려면 어떻게 해야 하지?   .....옳거니 ! ...    C의 DATA를 C1으로 먼저 복제해놓고 C를 수정하여 저장하면 되잖어....” 하고 무릎을 탁 칩니다.

현명한 담당자는 그대로 실행에 옮깁니다.
C1은 과거 첫 번째 DATA , C2는 과거 2번째 DATA 이렇게 해놓고 C라는 놈을 가장 최신판 DATA로 남겨둡니다. 그 사이에 B의 형상이 조금 변경해서 C가 약간 이동되었습니다.

그런데 현장에서 문제가 발생하였습니다. JIG를 수정하던 중 무었인가가 간섭이 생겼습니다. 담당자는 문제를 해결해야 합니다.

누군가가 이야기 합니다. “과거에는 그런 일이 없었는데 지금 문제가 발생한 것을 빨리 파악 하려면 과거 DATA와 지금 DATA를 비교하면  문제점을 빨리 알 수 있겠네...”

담당자는 사무실로 들어와 과거의 DATA를 들춰보고자 합니다.
그런데 이번에는 조립된 상태의  과거의 DATA를  확인해야 합니다.
아뿔사 최신DATA   A는 있는데 A의 과거 DATA가 없습니다.

"아!  내가 파일관리를 잘못했구나 그런 식으로 관리를 하면 과거 DATA를 다시 만들어야 하는 문제가 생기는구나.”

현명한 담당자는 다시 고민을 합니다.
“프로덕트가 부분품들의 파일이름을 기억하고 있으니 맨날 파일이름을 바꾸는 것도 문제고 파일이름을 안 바꾸고 해결하는 방법이 없을까? “

“맞아 폴더로 관리하면 되겠다 폴더가 다르면 폴더 내에 있는 파일의 이름을 굳이 변경할 필요가 없잖아.”

현명한 담당자는 이제 A,B,C 를 먼저 “폴더1”  내에서 만들고 나서  C를 변경할 일이 발생하자 “폴더2” 라는 놈을 만들어 A,B,C를 위도우탐색기로 복제 합니다. 그리고 는 “폴더2”에 있는 C를 수정한 다음 저장하고 닫았습니다.

그리고는 수정된 Assembly를 확인하기 위하여 “폴더2”에 있는 A 어셈블리 파일을 열었습니다. 그런데 열린 어셈블리에 방금 전에 C를 수정했음에도 옛날 DATA가 보입니다. “어!  왜 옛날 DATA가 열리지? “

담당자는 고민에 빠지기 시작했습니다.


자  위의 글은 CATIA 초심자가 겪는 내용을 시나리오로 적어본 것입니다.


CATIA의 프로덕트 파일은 ‘애석하게도’ 저장되는 시점에 포함하고 있는 자기 부분품의 저장폴더를 기억하고 그 폴더부터 찾아갑니다.

따라서 여러분이 A를 만들어 저장할 당시에 B와 C는 “폴더1”에 들어 있었습니다.

그리고 담당자는 A를 탐색기로 폴더2로 복제를 하였습니다.
따라서 A의 내부에 저장하고 있는 DATA는  "B와 C는 여전히 폴더1 에 있다"라고 기억하고 있습니다. ( 폴더정보의 절대패스를 기억하고 있습니다. )

고로  같은 폴더인 ‘폴더2’ 에 있는 C를 변경하더라도 ‘폴더2’에 있는 A가 ‘폴더2’의 파일을 읽지 않고 ‘폴더1’의 파일을 먼저 읽어 옵니다.

이건 CATIA 교육를 처음 배운 사람들은 누구나  한번 씩은 겪는 문제 입니다.

여러분도 충분히 한번쯤 겪을 만 한 일입니다.

왜냐하면 제대로 가르쳐주는 곳이 거의 없기 때문입니다.


대부분의 CATIA 판매 회사에서 근무하는 CATIA 엔지니어들이나 대학교 강단에 서 계신 교수님들은 설계경험이 거의 없기 때문에 실제 설계 시에 발생하는 이런 문제점을 잘 파악하지 못하는 데서 비롯되는  문제입니다.

( 하지만 그 분들도 자기 전공은 있기 마련이므로 다른 부분에서는 필자보다 필시 잘 하시는 부분이 있겠지요... ^^  )

그러면 어떻게 문제를 해결 할 수 있을까요?

먼저 폴더1을 없애거나 폴더1의 이름자체를 변경해 버리면 폴더2의 A를 읽으면 A의 DATA는 폴더2의 C를 가져올 것 입니다.

이는 프로덕트 파일을 불러올 때 자기 부분품의 DATA를  가져오는 경로에 대한 우선순위가 있기 때문입니다. 

사용자 여러분은  Tools -> Options에서 우선순위 조절을 할 수 있는데 아래 그림과 같은 경로들의 우선순위를 변경하시면 됩니다.  ( General  Document  항목에 Linked Document Localization )

아래 그림은  Online Documentation에서 발췌를 하였습니다.



























두 번째 방법은 아예 프로덕트 파일의 경로 설정을 변경해 버리는 방법입니다. Option 선택이 어디로 되어 있든 프로덕트가 자기 하위DATA의 경로를 정확히 설정만 하고 있으면 되는 것이지요.

설계변경(이하 설변) 내용이 생기면 먼저 DATA를 열어 일단 다른 폴더에 먼저 복제하는 방법을 택합니다. Windows가 제공하는 탐색기로 저장하게 되면 아까와 같은 사례가 발생하기 때문에 다른 방법을 추천합니다.

어셈블리 파일을 열고 먼저 Save Management를 사용하는 방법입니다.

헷갈리지 않게 하기 위하여 CATIA 화면상의 모든 문서들을 먼저 닫습니다.

그리고 벼경하고자하는 최고 상위의 프로덕트 파일을 엽니다. 그러면 하위 부분품들이 달려 있을 것입니다.
그리고 Save Management를 실행해 보시면 Open된 모든 파일의 List가 보일 것입니다. 그 중 가장 상위 프로덕트를 선택하여 Save As를 합니다.

해당 기능의 메인창 아래쪽에 OK 단추가 눌러지기 전까지는 모두 가상으로 실행되므로 시도해 보세요.

다른 폴더를 만들어 그 폴더아래 저장합니다. 그러면 해당 프로덕트만 폴더 경로가 변경될 겁니다. 

그러면 우측에 4개의 단추 중에 Propagate Directory라고 하는 단추가 활성화 됩니다.
그걸 누르게 되면 해당 프로덕트에 속해있는 모든 하위 부품들의 저장장소가 조금 전 새로 저장할 폴더로 나타날 겁니다.


그리고 OK를 누르면 여러분들이 탐색기로 옮긴 것처럼 똑같이 복제됩니다. 하지만 이번에는 해당 문서를 열면 모두 복제된 곳에서 DATA를 가져오게 됩니다. .

이와 비슷한 기능을 하는 것이 Send To 라는 기능입니다. 이는 자기장비에서 DATA를 옮긴다기보다 다른 장비나 USB로 DATA를 옮길 때 사용하는 기능입니다.

이 경우 프로덕트 및 파트 DATA만 옮기지 않고 관련  DATA들이 붙어 갈 것입니다. CATfct 파일 , Material 파일 등등 (사용을 했을 경우에 만 )

소수의 부품으로 구성된 Assembly는 이것으로 관리됩니다. 제가보기에는 50개 미만 ....

단지 복제된 폴더마다  수정(설변)되지 않은 DATA들도 중복해서 복제된다는 문제점이 있습니다. 요즘은 Hardware(저장장치)의  값이 매우 저렴하므로 이건 감수한다고 치구요.

하지만 각 폴더별로 내부에 정보등을 담은 Comment 파일을 ( 예를 들어 설변내용.txt 파일 같은 ) 같이 저장하지 않으면 어느 시점에 변경된 Assembly인지는 알겠는데 뭐가 변경 됐는 지는 일일이 문서들을 찾아보지 않으면 알수가 없다는 문제점을 가지고 있습니다.

다음으로,  수량이 많은 DATA를 포함한 제품 (예를 들어 공작기계 같은 복잡한 제품의 경우 혼자서 설계가 안되고 여러 명이 포함된 팀이 한 제품을 설계하는 경우)을 설계해 나가는 경우 한 개의 부품이 설변 모델링이 다 완료되어 있지 않는데 또 다른 설변을 시작해야 할 경우도 있습니다.
이런 경우는  설변 시점 관리가 절대 불가능 합니다.

이게 비단 카티아만의 문제일까요? 이 문제는 Assembly 체계를 가진 모든 CAD 시스템에 공통적으로 적용되는 문제입니다.

따라서 이러한 복잡한 문제를 해결하기 위하여 PDM 이라는 시스템이 개발되었습니다.
PDM은 Product Data Management 의 약자입니다. 혹은 광범위하게 PLM이라고도 합니다. 여기서 "L" 은 Lifecycle 입니다. (제품생명주기관리) 이쯤 번역하면 될 겁니다.

PDM시스템은 기본적으로 Database로 운용합니다.
기왕 관리하는 김에 언제 생성되었고 언제 검도되었고 언제승인되었는지도 관리하구요. 누가설계했고 누가 언제 DATA를 꺼내 봤고도 알게 해줍니다.

그러면 DB를 이용하면 어떻게 알까요.

PDM시스템은 보통 Project단위로 관리하는데요.

간단하게 설명을 하면 먼저 A와 B와 C를 저장합니다. 여기서의 저장은 원본DATA를 저장하는 것을 말하고 서버에 저장하게 됩니다.
반드시 Login 하여 Data를 저장하는데 저장하면서 DB에 많은 정보를 남겨두고 저장합니다. 처음 접하는사람은 뭐가 이렇게 복잡해라고 생각할 수도 있겠지만 가급적 많은 양의 정보(설명)를 저장하는 것이 나중에 찾기도 쉽습니다.
DB는 검색이 매우 빠르기 때문에 "언제" , "어떤 건으로" , "누가 만든" 등의 검색어를 넣으면 바로 찾아줍니다. 우리는 서버에다 저장하는 행위를 "Check in" 이라고 하고 서버에서 Data를 꺼내오는 행위를 "Check Out"이라고 합니다.

DATA를 보관하는 서버의 이름은 Vault(볼트)서버라고 하며 A 및 B와 C를 저장할 때는 이름을 A_123, B_398, C_787 등 PDM시스템이 암호를 만들어 파일을 저장합니다. 그리고 Vault로부터 꺼내올 때는 다시 암호를 A,B,C로 되돌려 줍니다.

그럼 C를 꺼내온(Check Out) 다음 설변을 하고 다시 C저장(Check In)하면 C_787은 그대로 두고 C_932 등과 같은 이름으로 변경하여 저장해 놓습니다. 그리고 DB에다 C_787은 release 시점의 DATA C_932는 rev01 번의 DATA등등 이라고 정보를 기록합니다. 설계자는 이 내용을 보지 못합니다. 단지 시스템에서 C는 설변이 한번 되었고 이 중 필요한 것을 꺼내오면 됩니다.

시스템에서 DATA를 꺼내오더라도 설변 될 Item이 아니면 굳이 Check out 할 필요가 없지요 참조DATA로 Copy를 해오면 됩니다. 그리고 버리면 되죠.

하지만 Checkout 한 DATA는 설변용으로 꺼내온 것이므로 DB는 누가 어느컴퓨터에 가져갔다라는 것을 기록해놓고 시스템에 접근하는 모든사람들에게 정보를 알려 줍니다.

위의 방법은 PDM 시스템이 어떻게 운용되는지 이해를 돕기 위해 기술했을 뿐 모두 똑같이 동작하지는 않습니다.

CATIA V6의 경우 기본적으로 PDM시스템이 BASE로 설치되어 있어야만  저장이 가능합니다.  Local에 직접 DATA를 저장할 방법이 없지요. V6의 경우 Data File을 시스템이 잘라서 자기 마음대로 저장합니다. Enovia V6가 (PLM시스템의 이름입니다.) 자기 마음대로 저장하고 꺼내올때는 지가 알아서 꺼내 준답니다. .

댓글 5개:

  1. 정말 실제 업무에 필요한 내용이네요!!
    한번 읽어서 아직 이해가 잘 가지는 않습니다,,, 여러번 읽고 숙지해야겠네요.
    회사에서 PDM시스템을 쓰고 있는데 영 복잡해서 데이터관리가 잘 되지 않습니다. ㅜㅜ

    아무튼 유용한 정보 감사드려요~

    답글삭제
  2. 그림부터 항상 머리가 아파진다는.. 영어로 되있어서 그런가!? 하하; 오늘로 5번째 반복학습중이네요~

    답글삭제
  3. 개념 이해가 되는군요. 한번뵙고 싶은데 모임은 건재하나요. 제가. 식사한번제공

    답글삭제