파일 만들기, 열기, 저장

디자이너를 위한 포럼에 참여하기

여러분의 전문 지식은 커뮤니티에 매우 중요합니다. 참여하여 지식을 공유하세요

지금 포럼에 참여하세요

업계 최고의 전문가들과 함께 공유하고 배우며 성장하세요.


다시 오신 것을 환영합니다! 이번 블로그 게시물은 이 시리즈의 2부이며, 여기서는 3DEXPERIENCE(3DX) 데이터베이스 콘텐츠로 작업하는 방법에 대해 설명합니다.

우선, Dassault는 3DX에 대해 이야기할 때 “파일”이라는 단어를 사용하는 것을 좋아하지 않습니다. 잘 아시다시피 모든 3DX 콘텐츠는 DB에 저장되며, 해당 DB의 모든 항목을 “PLM 엔티티”라고 부릅니다. (결국 DB의 모든 항목에 대한 파일은 서버 어딘가에 저장되어 있습니다). 하지만 여기부터는 해당 DB의 모든 항목에 대해 “PLM 엔티티” 또는 “PLM 개체”라는 단어를 사용하겠습니다.

이것이 아마도 V5와 3DX의 가장 큰 차이점 중 하나일 것입니다.

문서 기반 대 DB 기반

V5는 문서 기반입니다. V5에서 화면에 모델이 표시되면 문서 객체와 창 객체라는 두 가지로 표시됩니다. V5에서 모델을 열거나 저장하면 CATIA는 실제로 파일을 읽거나 저장합니다.

그림 1

3DX 화면에 표시되는 것도 에디터 오브젝트와 창 오브젝트 두 가지로 표현됩니다. Window 오브젝트는 V5에서와 동일한 기능을 수행하며, 화면에 모델을 표시합니다. 하지만 에디터 오브젝트의 역할은 모델 콘텐츠의 ‘컨트롤러’입니다. 즉, 현재 앱을 유지하고 앱에서 실행할 수 있는 모든 명령 목록을 유지 관리합니다.

에디터에는 속성 ActiveObject는 화면에 표시되는 객체입니다. 활성 개체를 가져오려면 VBA에서 다음 명령을 사용하여 해당 개체로 작업할 수 있습니다.

01: oActiveObj를 AnyObject로 어둡게 설정합니다.

02: oActiveObj = CATIA.ActiveEditor.ActiveObject 설정

콘텐츠 개체는 메타 데이터 카드와 저장 파일로 표시되는 DB의 PLM 엔티티에 해당합니다. 이는 3DX 세션과 DB의 파일 사이에 “추가 레이어”를 생성합니다. 파일을 가져오기 위해 시스템은 먼저 메타데이터를 읽어 파일이 정확히 어디에 있는지 알려줍니다.

그림 2

3DX에서는 모델을 “열기” 또는 “저장”할 수 없습니다. 3DX ‘서비스’에 요청해야 합니다.

3DX ‘서비스’에 대해서는 시리즈 3부에서 자세히 설명할 예정이므로 지금은 간단하게 설명하겠습니다.

DB에서 검색 및 열기

모델을 3DX 세션으로 가져오려면 먼저 모델을 검색한 다음(SearchService), 모델을 열어야 합니다(PLMOpenService). VBA 코드는 다음과 같습니다:

‘ SearchService 오브젝트를 가져와 검색 쿼리를 생성합니다.

01: oSearchService를 SearchService로 설정합니다.

02: oSearchService = CATIA.GetSessionService(“Search”) 설정

03: oDBSearch를 DatabaseSearch로 설정

04: oDBSearch = oSearchService.DatabaseSearch 설정

05: oDBSearch.BaseType = “VPMReference” ‘ 물리적 제품을 검색합니다.

06: oDBSearch.AddEasyCriteria “V_Name”, “<model_title<” ‘ 제목을 사용하여 검색합니다.

‘ 검색 시작

07: oSearchService.Search

‘ 검색된 엔티티 목록을 검색합니다.

08: cPLMEntity를 PLMEntity로 어둡게 하기

09: cPLMEntities = oDBSearch.Results 설정

‘ PLMOpen 서비스를 가져오고 처음 찾은 엔티티를 엽니다.

10: oPLMOpenService를 PLMOpenService로 디밍

11: oPLMOpenService = CATIA.GetSessionService(“PLMOpenService”) 설정

12: 편집기를 편집기로 어둡게 설정

13: oPLMOpenService.PLMOpen cPLMEntities.Item(1), oEditor

DB에 저장

현재 모델을 DB에 저장하려면 다음과 같이 PLMPropagateService. VBA 코드는 다음과 같습니다:

‘ PropagateService 객체를 가져옵니다.

01: oSaveService를 PLMPropagateService로 설정합니다.

02: oSaveService = CATIA.GetSessionService(“PLMPropagateService”) 설정

‘ DB에 저장(활성 에디터의 콘텐츠만 저장!)

03: oSaveService.PLMPropagate

새 콘텐츠 만들기

이제 새 콘텐츠를 만들려면 또 다른 서비스를 사용해야 합니다. PLMNewService.

01: oServ를 PLMNewService로 설정

02: oServ = CATIA.GetSessionService(“PLMNewService”) 설정

03: 편집기를 편집자로 어둡게 설정

04: oServ.PLMCreate “<content_type;”, oEditor

The &t; content_type&t;; 문자열은 다음과 같은 값을 가질 수 있습니다:

  • “드로잉”: 도면을 만듭니다.
  • “3DShape”: 3D 셰이프 생성
  • “3DPart”: 3D 파트 생성
  • “VPM 참조”: 실제 제품 생성

매크로에서 새 3D 파트 또는 실제 제품을 생성하려면 VMX 또는 E70과 같은 특수 라이선스가 필요합니다. 라이선스가 없으면 도면이나 3D 형상만 만들 수 있습니다. 일반적으로 대부분의 회사에는 이 라이선스가 없으므로 다음과 같은 문제가 발생합니다. 스크립팅을 사용하여 새로운 3D 파트나 실제 제품을 만들 수 있을 거라고 기대하지 마세요!


디자이너를 위한 포럼에 참여하기

여러분의 전문 지식은 커뮤니티에 매우 중요합니다. 참여하여 지식을 공유하세요

지금 포럼에 참여하세요

업계 최고의 전문가들과 함께 공유하고 배우며 성장하세요.