Equipment & Systems Engineering |
Electrical Harness Flattening |
Creating the Flattening ParametersHow to create the flattening parameters |
Use Case |
AbstractThis article discusses the ElecFlatteningItf use case. This use case explains how to create the flattening parameters |
This use case is intended to help you make your first steps in programming with CATIA EHF Interfaces. Its main intent is to allow you to create the flattening parameters.
[Top]
CAAEhfFlatteningParametersCreate.m is a use case of the CAAElecFlatteningItf.edu framework that illustrates the CATIA EHF Interfaces framework capabilities.
[Top]
The goal of CAAEhfFlatteningParametersCreate use case is to show how to create the flattening parameters.
[Top]
To launch CAAEhfFlatteningParametersCreate, you will need to set up the build time environment, then compile CAAEhfFlatteningParametersCreate along with its prerequisites, set up the run time environment, and then execute the sample.
To launch the use case, execute the following command:
mkrun
[Top]
The CAAEhfFlatteningParametersCreate sample is made of a single class named CAAEhfFlatteningParametersCreate located in the CAAEhfFlatteningParametersCreate .m module of the CAAElecFlatteningItf.edu framework:
Windows | InstallRootDirectory\CAAElecFlatteningItf.edu\CAAEhfFlatteningParametersCreate.m\ |
Unix | InstallRootDirectory/CAAElecFlatteningItf.edu/CAAEhfFlatteningParametersCreate.m/ |
where InstallRootDirectory
is the directory where the CAA CD-ROM
is installed.
This sample deals with the following classes:
CATSession | Class for the session base class |
CATDocument | Class for the document base class |
CATDocumentServices | Class for managing document in the session |
CATIDocRoots | Class for browsing root object in document |
CATIProduct | Interface dedicated to define product behaviour |
CATIEleDocServices | Interface dedicated electrical environment initialization |
CATIEhfEnvironment | Interfaces dedicated to retrieve the flattening parameter |
CATIEhfFlatteningParameters | Interfaces dedicated to read attribute on flattening parameter |
CATMathPlane | Class representing a mathematical plane in 3D |
[Top]
We will now first comment the Electrical environment and it’s components creation by looking at the code of the Main . There are 5 logical steps in Main :
[Top]
[Top]
We need a CATSession pointer to create the Session.
... pSession = CATSession::Create_Session(sessionIdent); ... |
We need a CATDocument pointer to create a new document.
... CATDocumentServices::New("Product", pDoc); ... |
Once the current session and the CATProduct document have been created. pDoc is a pointer to this document.
[Top]
We initialize the Document by using CATIEleDocServices interface pointer and the method Initialize() on it.
.... hr = pDoc->QueryInterface(IID_CATIEleDocServices,(void**)&pIEleDocServices ); if ( FAILED(hr) ) { retCode = 4; goto EscapeWay; } hr = pIEleDocServices->Initialize(); if ( FAILED(hr) ) { retCode = 5; goto EscapeWay; } .... |
Initializing the electrical environment is mandatory to enable access to electrical object or electrical attributes.
[Top]
We need a CATProduct pointer to retrieving the root product.
.... hr = pDoc->QueryInterface(IID_CATIDocRoots, (void**)(&pIDocRootsOnDoc)); if(FAILED(hr)) { retCode = 6; goto EscapeWay; } // Get the root product which is the first element of root elements pListUnkRootProducts = pIDocRootsOnDoc->GiveDocRoots(); if(NULL == pListUnkRootProducts) { retCode = 7; goto EscapeWay; } nProducts = pListUnkRootProducts->Size(); if( 0 == nProducts) { retCode = 8; goto EscapeWay; } hUnkRootProd = (*pListUnkRootProducts)[1]; if(NULL_var == hUnkRootProd) { retCode = 9; goto EscapeWay; } hr = hUnkRootProd->QueryInterface(IID_CATIProduct, (void**)(&pIRootProduct)); if(FAILED(hr)) { retCode = 10; goto EscapeWay; } .... |
[Top]
We need a CATIEhfEnviroment pointer on root product to create the Flattening parameters
... hr = pIRootProduct->QueryInterface(IID_CATIEhfEnvironment,(void**)&pIEhfEnvironment); if ( FAILED(hr) ) { retCode = 11; goto EscapeWay; } hr = pIEhfEnvironment->CreateFlatteningParameters(pIEhfCreateFlattenPara); if( ( FAILED(hr) ) || ( NULL == pIEhfCreateFlattenPara ) ) { retCode = 12; goto EscapeWay; } hr = pIEhfEnvironment->GetFlatteningParameters(&phListFlatteningPara); if ( ( FAILED(hr) ) || ( NULL == phListFlatteningPara ) ) { retCode = 13; goto EscapeWay; } nbFlatteningPara = phListFlatteningPara->Size(); if (0 >= nbFlatteningPara) { retCode = 14; goto EscapeWay; } hUnkFlatteningPara = (*phListFlatteningPara)[1]; if (NULL_var == hUnkFlatteningPara) { retCode = 15; goto EscapeWay; } hr = hUnkFlatteningPara->QueryInterface(IID_CATIEhfFlatteningParameters, (void **)&pIFlatteningPara); if ( FAILED(hr) ) { retCode = 16; goto EscapeWay; } ... |
[Top]
Removing document from session and closing the session.
... CATDocumentServices::Remove (*pDoc) ; if ( NULL != pSession ) { pSession->Delete_Session(sessionIdent); } |
[Top]
This use case has demonstrated the way to create the Flattening parameters.
[Top]
[Top] |
Version: 2 [January 2007] | Document updated |
[Top] |
Copyright © 2007, Dassault Systèmes. All rights reserved.