2011년 5월 30일 월요일

뱅글뱅글 달팽이길

부산 중구 중앙동 소재
아래쪽길과 윗길과의 높이차때문에 만든길입니다
공식명칭은 모르겠네요
중앙동역에서 남성여고 쪽으로 있어요
Published with Blogger-droid v1.6.9

2011년 5월 29일 일요일

CATIA 하천 제방용 보에 적용한 Parametric 모델링 사례.

하천제방용 보에 대한 Parametric 모델링사례 입니다.
Part Design, Drafting  및  Knowledge 기초만 사용했습니다. (힘 계산은 VB로 적용했습니다.)

http://www.mkni.co.kr/~mkni/CASE_MOVIE/Bo_Paramtetric_Design/Bo_Paramtetric_Design.html

2011년 5월 28일 토요일

CATIA Assembly에서의 구속 2

(  "CATIA Assembly에서의 구속 1" 의 내용이 계속됩니다.
혹시 문장에서 "위에서 언급한" 등의 문구가 나오면 1번글을 참조하세요.)



네번째로 OFFSET 구속조건으로 구속조건툴바의 3번째 아이콘에 해당합니다.
OFFSET구속조건은 점, 선, 면을 망라하고 모든 요소들과의 조건에 OFFSET량을(간격)  설정할 수 있습니다. 이것도  면과 면과의 OFFSET만 된다고 생각하는 사용자가 많아요.














OFFSET은  면과 면의 경우만 방향성을 따지고 반대로 보내고 싶을 경우 부호만 바꾸시면 됩니다.


다음은 Angle Constraint입니다.  위의 구속조건 툴바의 4번째 아이콘의 기능입니다.
각도에 대한 구속조건은  점 성분은 해당이 되지 않기 때문에
선/선 , 선/면 , 면/면  의 세가지 CASE가 있습니다. ( 일반각도의 경우에는요  )




















하지만 저는  일반각도보다는  Parallelism(평행) , Perpendicularity(수직) 를 훨씬 많이 사용합니다.












이유는 나중에 설명하겠습니다.

여하튼  Angle Constraint는 두 부분품 간의 공간상의 각도에 대한 규제를 부여합니다.
하지만 선 / 선 간의 각도는 두직선이 공간상에서 만나지 않는한 수학적으로 불명확하죠.
물론  구속조건을 줄 당시의 위치에서의 각도의 조건으로 만들어지지만
그건 먼저 정확한 위치에 배치후에  구속조건을 부여해야만 합니다.

하지만 대부분의 경우  자유로운 위치에서 구속조건을 주면 원하는 위치로 Update되는 식의 방법을 사용하는 한 이는 정말 불명확집니다.  생각을 잘 하시고 사용해 주시기 바랍니다.

구속조건의 6번째 ICON에 해당하는   Fix Together  구속조건은 기본적인 개념을 2개 이상의
부분품을 한 개로 묶어서 한개가 변경되면 나머지가 그 놈에 따라가는 것을 개념으로 만들어져 있습니다.
사실 묶여서 다닌다는 것은  한개의 Sub 조립품에 해당되는 경우가 많으므로  Product를 한개 추가하여 그 아래에 Fix Together 할 놈들을 전부 넣어버리면 될 것입니다.

그래도 굳이 Fix together를 사용하고자 한다면
여러분은 Option값을 변경하지 않으면 Fix Together가 작동하지 않는다는 것을 발견할 것입니다.
Tools-> Options -> Mechanical Design -> Assembly Design -> General Tab에서







Always 나 Ask each time을 선택하지 않으면 Fix together는 제 기능을 발휘하지 않습니다.

몇가지 ICON이 더 남았습니다만.  2가지만 더 설명하겠습니다.
나머지는 설명하려면 양도 너무 많고 복잡한 관계로 뒤로 미루겠습니다.

구속조건툴바의 7번 째 Quick Constraint 는  임의의 두 요소를 찍으면
가작 적절한 구속조건을 만들어주는데  이에 대한 우선 순위도  Option에서 결정합니다.
Tools-> Options -> Mechanical Design -> Assembly Design -> Constraint Tab에서








윗 그림에 열거된 구속조건의 순서를 변경함으로써  (조건을 선택하고 우측 노란 화살표를 선택) 우선순위를 변경할 수 있습니다.

자 마지막으로  구속조건 툴바의 9번째  ICON인 Change Constrain (구속 변경) 은 만들어진
구속조건을 다른 구속조건으로 변경해 주는데  사용자 임의대로 모두 가능한 건 아니니
참조하세요.   참고로 전  이 기능 절대 사용 하지 않습니다.
( 왜냐면   내가 생각 한대로 만들어 주진않으니까.  ) 하지만 실제 작업하시는 분들은 작업속도를 빠르게 할 수도  있으니  사용하시든 사용하지 않으시든   본인 자유 의사에 달려 있겠죠..










CATIA Assembly에서의 구속 1

CATIA에서 Assembly를 사용하시는 분들은 대부분 구속조건(Constraint)을 많이 사용합니다.

구속조건은 조립을 하면서 물건과 물건의 상관관계를 정의하기 때문에
나중에 흐트러져도 원래 위치로 되돌아가는 성질이 있어서  대부분의 사용자들이 선호하며 많이들 사용하고 있습니다.

하지만 복잡하게 조건들이 얽힐 때는  만들어 놓았던 구속조건이 계산을 못하는(unresolved) 상태에 빠질 수도 있습니다.

구속조건은 상대적으로 6 자유도( DOF : Degree of Freedom 라고하죠) 가 모두 구속될 경우 움직이지 않게 됩니다.











 가령 예을 들어 한 물체를 고정(Fix)시켜두고 ( 이 경우 6 자유도 가 모두 고정이 됩니다.)
 다른 한 물체를 면/면 Contact  조건을 붙일 경우에는 구속 평면을 기준으로한 수직방향의 평행이동구속 1 자유도 와 수직방향을 제외한 회전구속 2 자유도가 구속이 되어 총 3 자유도가 구속됩니다.

이 경우 해당 평면에 수직인 면끼리를 구속하게 되면 회전구속조건 1개와 병진구속 1개가 구속이되어 1자유도가 남게 됩니다.

자유도에 대한 개념은 나중에 Kinematics 를 적용할 때에는 필수사항 입니다.

그럼 구속조건에 대해  한개씩 알아보도록 합시다.







가장먼저 다섯번째에 해당하는 Fix부터 설명하겠습니다.

Fix 구속조건은 위에서 언급했다시피  현재 활성화 되어있는  ( 스펙트리에서 Part No. 와 인스턴스명 부분에 파란색 박스에 둘러쌓여진 프로덕트; 보통은 Root 프로덕트가 활성화 되어 있습니다.)  프로덕트의 공간좌표에서 하위 부분품이 옮겨가 있던 현재 위치에 그 상태 그대로 해당 공간에서  고정을 시킵니다.

물론 Move나 컴퍼스를 이용하여 위치를  옮길 수 있습니다만. 그 공간의 위치좌표를 기억하기 때문에   Update 버튼을 누르면 Fix 시켰던 위치로 되돌아 옵니다.

이 기능을 사용할 때 추천하고 싶은 사항은 FIX는 가급적1개의 물체만 하라는 것과 가장 기준이 되는 부분품을 공간상에 가져오자마자 FIx를 하라는 것입니다.


두번째로 툴바의 가장 왼쪽에 있는 Coincident입니다.
사용자들이 가장 많이 사용하는 구속조건 기능이 Coincident 입니다만

제가 다른 사용자들을 관찰해본 결과 Bolt중심선과 Hole중심선을 맞추는 기능으로 제일 많이 사용됩니다. 심지어는 그 기능밖에 모르는 사용자가 매우  많습니다.

CATIA는  원통형이나 원뿔형의 옆면을 선택하면 그 형상의 중심선에 해당하는 선으로 인지합니다.  Assembly의 구속 뿐만이 아니고   파트디자인에서 Shaft나 Groove를 만들때도 스케치 내부중심선 대신 원통 형상을 만들어 놓았을 경우 옆면을 선택하므로써 중심선으로 대신사용할 수 있고   Circular Pattern에서도 중신선을 주로 원통형상을 선택합니다.

사실 Coincident는  점과 점, 점과 선, 점과 면, 선과 선, 선과 면, 면과 면의 6가지 방법의 구속조건을 가지고  있습니다.

솔리드형상에는 점의 성분을 가지는 꼭지점에 해당하는 Vertex , 선에 해당하는 면과 면이 만나는 Edge, 면에 해당하는  Face라는 내부요소를 가지고 있으며 Coincident 구속조건은 이러한 내부요소들을 사용할 수 있습니다.

그럼 각 조건에 따른 자유도를 알아보도록 합시다.

한쪽은 고정이 되어 있다고 가정합니다. 보라색을 FIx했어요.

점 / 점 Coincident  :
이 경우는  꼭지점과 꼭지점이 만나고 있는 상황입니다.
움직이는 파트쪽이 그 점에서 꼼짝못하게 됩니다. 병진운동 3방향을 막아 버렸습니다.
자유도가 회전자유도 3개만 남습니다.
이런 경우 남는 자유도를 기준으로 DOF=3 이라고 표현합니다.


Kinematics의 Spherical Joint와 같은 구조가 됩니다.

구속조건 표시를 잘 보이게 하기 위하여 그림을 축소하여 캡쳐했어요.. ^^



점 / 선 Coincident
이 경우는  Edge과 꼭지점이 만나고 있는 상황입니다.
선위에 점이 있다고 생각해 보세요.
점/점 구속대비 점이 선따라 슬라이딩을 할수 있는 상황이 되어 버렸습니다.
막혀있던 병진운동대비해서 1개의 병진운동이 자유롭게 되었습니다.
DOF=4가 되었습니다.

Kinematics의 Point-Curve 구속조건과 같은 조건이 됩니다.





점 / 면 Coincident
점이 면위에서 자유롭게 이동을 할수 있게 되지요
이 경우는 점/점 구속대비 2개의 병진이 더 자유롭게 됩니다.
면이 평면인 경우 점이 물체의 FACE면의 최외곽 Edge를 벗어나 허공으로 갈수도 있죠.
DOF=5가 됩니다.

Kinematics의  Surface Point Joint와 같은 조건입니다.





참고로  점/선 , 점/면 일 경우에는   곡선이나 곡면을 선택해도 됩니다.



선 / 선 Coincident
선과 선의 선택입니다. 축(Axis요소를 의미하지는 않습니다.)과 축 맞춤으로 매우 많이 사용되지요  위에서 언급한 것과 같이 Bolt축과 구멍 축을 맞추는 경우에 사용됩니다.
하지만 직선은 어떤것이든 사용할 수 있습니다.  (EDGE든 LINE요소든)
이 경우 선과 선의 직선방향의 병진자유도1개와  선을 중심으로 회전하는 회전자유도 1개를  가질 수 있습니다. 
DOF= 2가 됩니다.
Kinematics의 Cylindrical Joint와 같은 조건이네요.



선 / 면 Coincident 
직선이 평면위에 있어요.
김연아선수가 빙판위에서 스케이트를 타고 있어요.
스케이트날 이 선이라고 생각하면 스케이트를 약간 비트는  회전 1개가 있죠.
제자리에서 뱅글뱅글 회전하는 회전 자유도가 한개 더 추가되죠.
스케이트를 타고 빙판위를 어디든지 갈수 있어요 병진자유도가 2개
공중회전 트리플러츠  이건 스케이트 날이 면을 떠나는 문제이므로 해당이 되지 않죠.  결국 DOF=4가 되네요.






면 / 면 Coincident
마지막으로 한개 남았네요. 
피겨스케이트 보셨어요?  스케이트날이 스피드스케이트와 다르게 바닥면이 약 5mm 정도되는 면이 있어요. 그 면이 항상 닿아야 된다는 조건으로 생각하면 선/면 조건대비 DOF가 한개 줄어요.   DOF=3 이 됩니다.

실제 피겨스케이트는 앞뒤를 기준으로 하면 약간 둥그스름하지만 필자직권으로 무시합니다.

Kinematics의 Planer Joint와 같은조건 입니다.


종류가  많죠. 

참고로  SNAP기능을 사용할 때도  점/점,점/선,점/면,선/선,선/면,면/면 의 여섯가지 기능을 사용할 수 있어요.


세번째로 Contact 구속조건 입니다. 구속조건 툴바의 2번째에 해당합니다.

Contact 는 말그대로 접촉입니다.
Contact 구속조건은 물체의 평면과 평면접촉  평면과 원통과 측면 접촉
원통과 원통의 측면끼리의 접촉등이 사용됩니다.























평면과 평면의 접촉은 Surface Contact의 형태로 나타나고
평면과 원통 , 원통과 원통은 Line Contact의 형태로 나타납니다.

원래 CATIA는 단일요소든 내부요소든 면의 방향성을 가지고 있고
그 방향성에 규칙이 있어서 Surface Contact의 형태는  물체와 물체가 겹치는 경우가 없습니다 .

하지만 Line Contact의 형태는 겹치는 경우도 나타납니다.

Line contact 형태는  external 접촉과 internal 접촉 2가지가 있습니다.
























이는 Tree나 Geometrical 영역에서 Contact 구속조건의 Icon을 더블클릭하시면 나타나는 창에서 more 단추를 누르면 보이는 external과 internal로 option을 조정하시면 원하는 방향으로 만들수 있습니다.








Contact의 평면/평면 과 Coincident 의 면/면 (이것도 평면이지요) 의 차이점은
Coincedent는 물체가 겹쳐질 경우도 있습니다만
Contact는 물체가 같은 방향으로 겹칠수 없습니다.

Contact구속조건은 향후 구조해석을 배우시면  Generative Assembly Structure Analysis ( 구조해석중 어셈블리 해석에 해당합니다.)에서 Contact 조건을 주고 싶을 때 유용하게 사용할 수 있습니다.

휴~~  넘 많네요.     좀 쉬었다 다시 올리겠니다
CATIA Assembly에서의 구속 2번을 기대해 주세요.





2011년 5월 27일 금요일

2011년 5월 23일 월요일

CATIA 어셈블리 공간상 이동과 위치저장

앞서 적은글에서  프로덕트구조와 파일관리방법에 대해 언급을 하였습니다
그럼 프로덕트에서 우리가 실제로 보고있는 것은 어떤데이터일까요?
먼저  예로 들었던 조립체를 한번 가져와 봅시다
A 조립품 및에 B 부품과 C부품이 있는 모델을 말입니다
이전 글에서는 컨셉만 언급하였습니다. 이번에는 실제 모델링 된 DATA를 가져와 보도록 하겠습니다.




















여러분들이 보고계신 모델에는 두가지의 물건이 겹쳐져서 보입니다

실생활에서는 대부분의 부품들이 고체이기 때문에 절대 겹쳐져서 있을수가
없지요 영화 X-Man 에 나오는 벽을 통과하는 뮤턴트가 아니면 그럴수가
없지요 가령슈퍼맨이라 하더라도 벽을 부수고 지나갈 순 있지만
통과하진 못하잖아요?

그러나 가상현실의 세계에서는 아무 문제없이 사물이 사물을 관통할 수가
있죠 이러한 장점을 응용한 분야가 디지털 목업( DMU : Digital Mock-Up )분야랍니다

옛날에는 자동차처럼 복잡한 제품을 서로 다른 설계담당자가 설계한 부품형상들 간에 서로 어디서 간섭이 일어나는지를 확인하기 위하여 나무로 부품형상모양을  깍아다가 서로 조립을 해 보았답니다

이 나무로 만든 가짜제품을 목업 이라고 합니다.

주로 엔진룸의 레이아웃을 검토할 때많이 사용했죠. 엔진룸에는 많은 종류의 부품이
얽혀있고 특히 Washer tank 같은 것은 주변부품을 피해서 요상하게 생긴 형태도 있습니다.

이걸  컴퓨터내에서 검토할 수 있도록 만든 시스템을 디지털목업이라고 부르고
이와 상대적인 명칭으로 기존의 목업을 피지컬목업(Phisical Mock-Up)이라고 부르게 되었답니다.

많은 수의  데이터를 가져와야 하기 때문에
초기에는 컴퓨터 메모리용량제한 문제등으로 아주 작은 크기의 데이터를
만들어야만 가급적 많은 수의 모델을 한꺼번에 띄워서 검토할 수가 있었죠.

그 때문에 DMU를 위한 전문 소프트웨어 업체들이 있었지만
캐드업체의 대형화, 하드웨어 및 소프트웨어의 기술발달
등의 이유로 대체로 CAD업체에 합병되거나 없어져 버렸답니다
하여 요즘은 대부분 DMU기능을 캐드내에서 지원하죠

불과 몇년 전까지만 해도 차량 한대를 모두 띄워 DMU검토를 하는것이 불가능했답니다.
32bit 컴퓨터가 가지는 메모리 한계 때문입니다.

32bit는 2의 32승수 즉 4GB의 메모리
Address(메모리주소) 한계 때문에 그 안에서 어떻게든 적은 DATA를 만들어서 가급적 많은수의 DATA를 올려야 합니다.
그리고 그 안에서 각 부품간의 거리 측정계산을 위한 메모리 공간도 남겨야 하는등 제약조건이 이만저만이 아니었답니다.

하지만 64bit 컴퓨터가 나온 후부터는 이런 제약문제가 해결되어 버렸습니다.
기존에는 기술의 제약문제만 있었지만 이제는 돈의 제약문제만이 남아있죠.
(비싼 컴퓨터를 사야한다는 )

2의 64승수가 계산기로 두드려보니 18,000,000 TB 까지 지원되네요.  도데체 0이 몇개 ?

"이 정도의 메모리를 지원하는 컴퓨터인 그대이름은 AI라고 명하니 ...."

카티아는 DMU Navigator, DMU Space Analysis, DMU Fitting Simulation, DMU Kinematics, DMU Optimizer 등의 이름을 가지는 제품군으로 이 분야를 제공해 주고  있답니다

이 중 DMU Space Analysis의 일부 기능이 Assembly 워크벤치에 속에 들어 있습니다.






Assembly Workbench에서 Space Analysis 툴바를 찾아보세요.







여러분들은 어셈블리 워크벤치에서 Move 툴바를 이용하거나
또는 컴파스를 이용하여 부품 B 나 C의 공간 상 상대적 위치에 대한
평행이동 또는 회전이동을 할수 있습니다





















먼저 Move 아이콘을 이용하여 여러분은 A 프로덕트상의 X,Y,Z  방향으로
평행이동 XY ,YZ, ZX 평면 상의 평행 이동 또는 X, Y, Z 축을기준으로
회전이동 하거나 할 수도 있고 또한 임의의 선이나 평면을 선택하여 그 기준으로 평행이동 이나 회전이동을 할 수도 있습니다

임의의 방향으로의 이동은 컴퍼스를 이용한 방법도 있는데 , 컴퍼스를 물체의 형상위 특정위치로 잡아 끌어놓은다음 ( 컴퍼스의 기준인 빨간점을 잡아당기면 되지요
컴퍼스를 원래 있던 위치로 원상복귀시는 CATIA화면 우측하단의 축으로 잡아당기세요.)




















움직일 물체를 선택 후  컴파스의 일부분을  잡아 당김으로 써
부품의 위치를 이동할 수 있습니다




















이 경우 움직이고자 하는 부품이나 조립품 단위의 상위 프로덕트가 활성화 되어 있어야 합니다. 활성화는 트리에서 더블클릭을 하면 활성화 위치가 바뀝니다.







또한 사용자는 스냅기능을 이용하여 두 부품 사이의 점, 선, 면 성분을 선택하여 순간적으로 이동할 수 있습니다. 이 경우 가장 많이 사용되는 경우가 선-선 조정기능과 면-면 선택기능인데 CATIA는 원통형상의 측면을 선택하면 원통의 축을 지나는 선을 인지하게 되어 축-축 맞춤 이동을 사용할 수 있습니다..

여러분은 점-점, 점-선, 점-면 , 선-선, 선-면 ,면-면등 6가지 조합의 조립맞춤 이동을 할 수 있습니다.이걸 잘 안가르쳐 주더라구요  ( 또한  여러분들은 Assembly 구속에서 의 구속조건 역시 6가지 조합을 이용한 구속을 할 수 있습니다.)

스냅기능을 사용할 경우에는 먼저 선택한 쪽의 부품이 나중에 선택한 쪽의 부품 쪽으로 이동하게 되어 있습니다.

스냅기능이나 구속기능을 사용하기 위해서는 마우스 조작을 매우 능숙하게 하셔야 합니다.

여러분은 이제 A 프로덕트의 좌표 공간에서 B와 C부품의 좌표를 마음대로 옮길수가 있겠지요.

그러면 A는 무었을 기억할까요?  사람이 아니니까  A가 무슨 정보를 저장할 까요?

A 는 여러분이 B나 C의 Part중  ( B만 가지고 설명하도록 합시다.)  B의 Pad가 어느 평면을 가지고 저장했는지 알 필요가 없습니다.

A는 B의 절대좌표 즉 B를 처음 생성하면 기본적으로 제공하는 XY,YZ,ZX 평면의 교차점인 원점의 상대적 좌표와 그로인해 생기는 X,Y,Z축의 방향 벡터만 기억하면 됩니다.

사용자 여러분은 조립된 상태에서의 A를 저장하고나서 모든 DATA를 닫은 다음 B를 열고 B안에 모델링 된 Feature (처음부턴 간단하게 만들어야 하겠지요)
를 모두 지우고 다른 평면을 기준으로 다시 모델링을 하고 난 다음 B를 저장하고 닫습니다.

그리고 다시 A를 열게 되면 B의 모델링이 다르게 배치가 된것을 볼수 있을 것입니다. 그 때 B의 절대 평면의 위치는 바뀌어 있지 않다는 것을
알게 될 것입니다. ( 미리 XY,YX,ZX 평면의 색상이나 Line Type 선굵기등의 속성을 바꾸어 놓으면 확인이 쉽겠죠 )

대부분의 사용자들이 초기 CATIA 교육 수강시에 구속조건(Constraint)를 배우고 그에 익숙해져 버려서 기본적인 개념을 짚고 넘어가지 않는 경우가 종종 있습니다.

구속조건이 들어가게 되면 요소(ELEMENT)나 내부요소간의 관계가 맺어져 버리고 그에 의해 Update가 되어 버리므로 앞에서 언급한 원점좌표값과 방향벡터값의 의미가 축소되나

기본적으로 프로덕트 저장시에는 바로 및 하위 프로덕트나 파트의 좌표를 기억하고 있다는 것을 명심하시기 바랍니다.



2011년 5월 21일 토요일

숲속의 아파트

도심속에 이런나무들이 남아있기가 힘들죠 아파트가 30년이 넘으니 이런 좋은점도 있네요 조만가 여기도 재개발이 되지않을까 싶은데
나무들을 살려두면 재개발 비용이 많이들겠지만 대신 친환경 아파트 라는 메리트가 있을 것 같은데
결정은 집주인들 몫이겠죠
Published with Blogger-droid v1.6.9

갤럭시 S2 주소록의 동기화문제..

갤2로 변경하고 나서 이것저건 새로배운다고 머리가 터질것 같네요..
안드로이드폰의 주소록관리문제에 대해서 제가 알아낸것에 대해 하나 터득한것이 있어서 저같은 고민을 하는분이 있을것 같아서 알려드립니다.

먼제 제 스마트폰 사양은 갤럭시 S2 진저브레드가 탑재되어 있고 KT를 사용합니다.

아랫글에서도 적었듯이 이전에 햅틱온을 사용하고 있었고 LG U+ 였습니다.
회사가 바뀌므로 미리 삼성전자 사이트에서 PC Manager Plus 로 주소록을 모두 다운받았습니다.
600개 정도 되더라구요.

그리고 구글메일과 동기화가 가능하기 때문에 구글메일의 주소록에서 CSV 파일로 다운받은 주소록을  구글에서 가져오기 하였습니다.

그런데 이름만 뜨고 전화번호며 모든 정보는 메모에 기술되어 버렸습니다.  며칠전 블로그에 기술되어 있습니다.

처음에는 네이버에 많은 주소록이 관리되어 있었기 때문에 네이버주소록을 동기화 해보려도고
했습니다만.   나중에 네이버에서도 동기화하는 기능이 있는걸 알고 시도해 보았지만 제폰은 지원이 안된다고 하더라구요.
네이버는 제폰으로 인증번호를 보내고 그 인증을 수락하면 지원이 되는 폰은 계정등록을 하면
되지만  지원안되면 안된다는  메세지를 줍니다. ( 그래서 포기)

주소록편하게 관리만 하면 되므로 일단  급히 필요한 사람부터 폰번호를 메모쪽에서 전화번호쪽으로 노가다를 좀 하면서 지내고 있습니다.

그런데 오늘 문득 어떤 문제가 있다는 것을 발견했습니다.

폰에서 새로등록한 사람의 주소록이  G-mail 주로록과  동기화 시켜도 G-mail 주소록에 동기화 되지  않는다는 것입니다.

3시간정도를 TEST해보다가 아래와 같은 결론을 냈습니다.

G-mail에서 등록한 주소는 폰으로 동기화 되어도 폰에서 등록한 주소는 G-mail로 동기화되지 않는다.  

제가 "후배"라는 그룹에 한명을 폰에서 등록하였습니다. ( 예로 홍길동이라고합시다.)
다른 후배들은 G-mail에서 등록하였기 때문에 연동해서 나타납니다. 폰주소록을 확인해 보시면
연결된 연락처로 g 마크가 보입니다.

하지만 홍길동이라는 후배는  폰에서만 보이고 폰주소록에는 연결된 연락처가 없습니다.

그리고  G-mail에서의 주소록의 "후배"그룹에다가 홍길동이란 이름을 다른정보 없이 추가 하시면   폰에서는  추가로 홍길동이 한명더 나타나지 않고 연결된 연락처로 합쳐 버립니다.

즉 폰이 모든 주소록의 통합된 내용을 보여주고  각 주소록은 따로 따로 관리된다는 것이죠.

가만 생각해보면 이 전략도 나쁘지 않은것 같아요..  폰에 등록된 주소가  트윅계정이나 페이스북 계정과 연동되기도 하는데 모두 update되는 건  저 입장에서도 별로 내키는 건 아니니까..

기본적으로 업무적으로 필요한 주소록은 PC에서 입력하라는것이 제 최종 결론입니다.

혹시  틀린부분이 있으면 덧글주세요....   아무나 적을수 있어요...

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시스템의 이름입니다.) 자기 마음대로 저장하고 꺼내올때는 지가 알아서 꺼내 준답니다. .

2011년 5월 17일 화요일

CATIA에서 프로덕트 구조관리2

CATIA Assembly 구조에서 트리의 가장상위에 나타나는것이
자기자신의 문서에 대한 파트넘버가 나타납니다.
조립품에 해당하더라도 명칭은 파트넘버라고 부릅니다.

그 아래에 Level 별로 프로덕트가 있을 수도 있고 파트가 있을 수도 있습니다.











위 그림에서 "Product1"이 소위 "루트 프로덕트" 라고 하고 현재 조작하고 있는 문서의 Part No. 입니다.

별도로 이름을 변경하지 않았기에 Product1 이라고 되어 있지요.
하지만  실제 업무에서는 BOM을 기준으로 제작을 하는것이기  때문에 반드시 PartNo.를 부여해야만 합니다.

그 아래 쪽에 나타나는 것이 Product2 , Product3. Part1입니다.  그런데  루트 프로덕트와 다르게 우측에 괄호로 이름이 하나 더 붙어 있네요. 
이것을 인스턴스명 ( Instance Name )이라고 합니다. 기억해 두세요.






여러분들은 상기 ICON 을 이용하여 가상의 SUB 조립품을 추가할 수 있습니다.
왼쪽이 컴포넌트 추가기능 , 오른쪽이 프로덕트 추가 기능인데
사실 컴포넌트와 프로덕트는  물리적으로는 똑같은 개념입니다. 

단지 컴포넌트는 스스로의 파일을 가지고 있지 않을 뿐입니다.
따라서 아이콘 그림에 기어모양 뒤에 종이가 그려있지 않습니다.
프로덕트에 대한 정보는 상위문서가 저장하고 보관하고 있습니다. (즉 그림에서는 Product1의 문서가 Product3 이하 Sub Assembly의 내용을 저장합니다.)
반면에 Product2이하 Sub Assembly에 대한 정보는 Product2문서가 스스로 저장 보관하게 됩니다.







상기 ICON으로는 새로운 "파트"를 프로덕트 밑에다 추가 할수 있습니다.
제일 윗그림의 3번째로 붙어 있는 Part1(Part1.1) 은  이 기능으로 붙인 것입니다.

그럼 인스턴스명은 무슨 목적으로 붙어 있을까요?
실 제품에서는 여러가지 부품이 모여있기는 한데 같은 부품이 여러 개 사용될 수가 있습니다.
제조 관리상 반드시 똑같은 부품은 똑같은 Part No.를 가져야 합니다. ( 이건 모든 제조 회사의 절대 원칙입니다. 똑같이 생긴 부품이라도 색상이나, 재질이 다를 경우 이는 다른 부품으로 취급합니다. 이럴 경우 Part No. 도 달라야 합니다. )

BOM List에서는 여러개 반복되는 Part나 Assembly는  한 개의 Part No.와 수량을 함께 명기함으로써 명확히 정의할 수 있습니다. 

하지만 형상을 중요시하는 CAD 시스템에서는 똑같은 부품을 사용하더라도  각각의 위치가 절대로 같은 곳에 존재 할 수가 없습니다.

예를 들어 같은 육각머리 볼트가 같은 조립Level에서 여러개 사용 될 경우 설계자는 후속 사용자(생산기술부,구매부,AS부서)를 위해 볼트가 배치되어 있는 위치를 도면상(CAD에서는 공간상)에서 명확히 표현 해주어야만 합니다.
 따라서 같은 파트넘버를 가진 부품들끼리도  구분해주어야 할 이름표를 반드시 붙여야 하구요  이걸 ID형태로 보관합니다. 이를  "인스턴스명" 이라고 합니다.

루트 프로덕트를 포함하여 1개의 부분품 하에 있는  부품( 조립품을 포함해서 )의 인스턴스명은  절대 같으면 안됩니다. 

인스턴스명의 이름은  사용자 마음대로 명명해도 상관없으나.  
보통   PartNumber.1   PartNumber.2 등    " . "  과 숫자들을 Part Number뒤에 붙여서  이름이 자동 명명됩니다. ( 이건 CATIA가 자동으로 명명하는 방법입니다.)

그리고 각 인스턴스 별로 ( 같은 파트넘버에 관계없이 1개의 프로덕트 내의 모든 부분품 전부) 자기 상위 프로덕트의 기준으로  위치 매트릭스 정보를 한개씩 보유하고 있습니다.

위치매트릭스 정보란 프로덕트내에서  각 SUB부품의 원점좌표와 놓여 있는 방향을 Matrix(행렬)의 형태로 정의한 정보를 의미합니다.  ( 이건 CATIA용어는 아닙니다.)
3 x 4 행렬로 표현하는데 3x3은 직각좌표계의 방향성 3 x 1은 부품의 원점 x,y,z의 좌표를 표시합니다.

사실 이 값은 프로그래머는 확인 할수 있으나 일반 사용자는 굳이 알 필요도 없고 (안다고 해서 모델링에 사용되지는 않습니다.) CATIA의 일반적인 기능에서 확인 할 수도 없습니다.

모델링할 때는 내가 모델링하는 물체의 형상과 위치가 중요한 것이지 그 물체를 저장하는 Part의 원점 좌표위치가 중요하진 않으니까요.

[PS: 실제 CATIA에서 사용자들은 위치매트릭스 정보를 한 개이상 저장할 수 있으며, 여러분들은 여러가지 조립상태를  보관하며 관리할 수 있는 SCENE이란 기능을 사용하실 수 있습니다. 이 내용은  이후에 언급하겠습니다.]

각 Sub 어셈블리나 파트의 위치정보는 바로 상위의 프로덕트가 해당 정보를 저장하게 되며 차상위 프로덕트는 해당부품에 대한 정보를 저장하지 않습니다. (아니 저장할 필요도 없습니다.)

그럼 루트 프로덕트에서 프로덕트를 한개 붙이고 다시 파트 2개를 하위프로덕트에 붙이는 시나리오를 진행해 보면서 설명 하겠습니다.














먼저 프로덕트문서를 새로 엽니다. CATIA를 새로 구동할 때 자동으로 생성되니 여러분들은
위와 같이 생긴 트리를 자주 보셨을 겁니다.

왼쪽 그림에 ROOT_PRODUCT  ( 여기서  Product1을 ROOT_PRODUCT라고 여겨주세요 )
에 대한 좌표가 있습니다.   사용자는  CATIA 화면만  봐서는 좌표축과 원점이 어디있는지 알수가 없습니다.  하지만  화면 우하단에 보이는 축 또는   화면 우상단의 컴퍼스형상으로 방향은 추정이 가능합니다.













이제 여러분은 ROOT_PRODUCT 밑에 PRODUCT2라는 부분품을 삽입하였습니다.
물론 PRODUCT2의 원점좌표는 새로 생기는 순간 ROOT_PRODUCT와 겹칠 것입니다.

여기까지도 여러분들은 CATIA화면의 Geometrical  영역에서 아무것도 발견할 수 없습니다.

심지어 PRODUCT2의 위치를 변경하는것 조차 허락되지 않습니다.
형상이 보여야 뭘 옮기고 말고 하죠...

( 하지만 API를 다룰 줄 아는 프로그래머는  VBA를 가지고 좌표위치를 변경할 수 있답니다.)

PRODUCT2 밑에 PART1과 PART2를 새로 추가 했습니다.

여러분은 비로소 PRODUCT2를 옮길 수가 있습니다. Graphic상에 보이는게 생겼으니까요.

이제  Move 기능이나  컴파스를 이용해  PRODUCT2 조립품의 위치를 이동할 수가 있습니다.

바로 위 그림에서는 제 마음대로 옮겨 봤습니다.

(여기서는 ROOT_PRODUCT의 정위치를 알수 없으므로 상기그림 만으로는 확인이 조금  힘듭니다 .... 화면을 돌린것인지 물체를 돌린것인지)

Product2 아래의 Part1과 Part2를 별도로 옮기기 위해서는   활성화 위치를 변경해야 합니다.


사용자들은  PRODUCT2를 더블클릭함으로써  활성화 위치를 바꿀수 있습니다.

그리고  아래 PART1과 PART2의 위치를 별도로 옮길 수가 있게 됩니다.



역시 여러분들은  ROOT_PRODUCT의 원점위치를 파악하기가  불가능하거니와 더불어 PART1과 PART2를  PRODUCT2에서 옮겨버린 이상  PRODUCT2의 원점 좌표위치 파악이 곤란하게 됩니다. 

참고로  여기서 여러분들이 Quick View를 이용해서 형상위치의 정렬을 하게되면 CATIA는 활성화된 문서를 기준으로  VIEW정렬을 하게 됩니다.


조금 이해가 되었는지 모르겠네요...

=====================
To Be Continued 
=====================