Creating a New Part in CAA RADE
To create a new part in CAA RADE you will first need to get the active session:
HRESULT rc; rc = NULL; CATSession* pSession = NULL; rc = GetPtrSession(pSession);
Since you are creating a new part interactively (as opposed to in batch mode) you need to create the interactive session:
CATIIniInteractiveSession* interSession = NULL; rc = pSession->QueryInterface(IID_CATIIniInteractiveSession,(void**) &interSession);
Next, you will get the editor while telling CATIA to make a new part:
CATIEditor * pInterSesEditor = NULL ;
rc = interSession->New("Part", &pInterSesEditor);
If you are creating something other than a part, change the word "Part" (in the code above) to what type of document you want to create. The name is the same as the types listed when you choose File->New in CATIA:
Now get the form editor, document and container of documents:
CATFrmEditor* pEditor = pInterSesEditor->GetEditor();
if(pEditor == NULL)
{
printf("error getting the FRM editor");
}
CATDocument *pDoc = pEditor->GetDocument();
CATIContainerOfDocument_var spConODocs = pDoc;
CATIContainer* pSpecContainer = NULL;
HRESULT hr = spConODocs->GetSpecContainer(pSpecContainer);
if(spConODocs == NULL_var)
{
printf("error getting the container of documents");
}
You can now make your factories using the container you made:
spGSMFactory = NULL_var; spPrtFactory = NULL_var; spGSMFactory = pSpecContainer; spPrtFactory = pSpecContainer;