Machining |
3 Axis Surface Machining |
Managing Geometry with Machining AreasCustomize the geometry tab page of a surface machining operation with machining areas |
Use Case |
AbstractThis article discusses the CAASmiUserOperationWithMA use case. It explains how to assign a surface machining operation to an existing machining area. This paper accompanies the second scenario of Surface Machining Operation Sample [1]. |
Machining areas are V5 SMG native features used to define different zones on a part.
This use case is intended to help you to manage geometry of a machining area assigned to a surface machining operation.
More specifically, the CAASmiUserOperationWithMA Use Case shows how to:
[Top]
CAASmiUserOperationWithMA is a use case of the CAASurfaceMachiningItf.edu framework that illustrates Surface Machining capabilities. It is a part of the sample described in the technical article [1].
[Top]
The goal of this use case is to define the geometry interactive of CAASmgOperationWithMA, using machining areas properties.
In the geometry tab page of CAASmgOperationWithMA, you can select a existing machining area and set its geometrical components (parts, checks, limit line and forbidden area):
[Top]
This use case is a part of Surface Machining Operation Sample [1]. You should build all the modules of this sample at a time to be able to launch it [2].
Don't forget to edit the interface dictionary located in:
Windows | InstallRootDirectory\CAASurfaceMachiningItf.edu\CNext\code\dictionary\ |
Unix | InstallRootDirectory/CAASurfaceMachiningItf.edu/CNext/code/dictionary/ |
where InstallRootDirectory
is the directory where the CAA CD-ROM
is installed, and uncomment the appropriate lines by removing the '#' character.
[Top]
This use case is made of source files located in the CAASmiConnectUserOperationWithMA.m module of the CAASurfaceMachiningItf.edu framework:
Windows | InstallRootDirectory\CAASurfaceMachiningItf.edu\CAASmiConnectUserOperationWithMA.m |
Unix | InstallRootDirectory/CAASurfaceMachiningItf.edu/CAASmiConnectUserOperationWithMA.m |
where InstallRootDirectory
is the directory where the CAA CD-ROM
is installed.
[Top]
CAASmiUserOperationWithMA is divided into the following steps:
We now comment each of those sections by looking at the code.
[Top]
To overload the geometry tab page, we should create an extension class that will implement CATIMfgGeometryActivity:
... // Tie the implementation to its interface #include "TIE_CATIMfgGeometryActivity.h" TIE_CATIMfgGeometryActivity( CAAESmiUserOperationWithMAGeometryEditor); ... |
In GetMainPanelEditor, we create a machining area (with CATISmgFactory) and associate it with CAASmgOperationWithMA. Then, we call the geometry dialog frame described below.
... if (!!spFeatCont) { CATISmgFactory * pSmgFactory = NULL; oRC = spFeatCont->QueryInterface(IID_CATISmgFactory, (void**) &pSmgFactory); if (SUCCEEDED(oRC)) { // Creates a empty machining area oRC = pSmgFactory->CreateMachiningArea(spMachFeature); if (SUCCEEDED(oRC)) { // Link the machining area to the activity pActivity->SetFeature(spMachFeature); } pSmgFactory->Release(); pSmgFactory = NULL; } ... } // Creates the geometry frame oFrame = new CAASmiUserOperationWithMAGeometryPanel(iFather,this); ... |
[Top]
CAASmiUserOperationWithMAGeometryPanel is the frame of the geometry tab page of CAASmgOperationWithMA.
In the constructor class, we build a dialog combo filled with all the machining areas in the model and we add a event notification sent whenever a value is selected in the combo list. Then, we get the default dialog frame of the selected machining area with the CATIEdit interface.
... // Creates a combo box _pDlgCombo = new CATDlgCombo(this,"DlgCombo",CATDlgCmbDropDown); if (_pDlgCombo) { ... // Fills the combo box if (!!spFeatCont) { // Finds all machining areas inside the model _pListOfMAs = spFeatCont->ListMembers("CATIM3xFeature"); int NumbOfMAs = _pListOfMAs.Size(); for (int i=1;i<=NumbOfMAs;i++) { CATUnicodeString Name; CATBaseUnknown_var spMachArea = _pListOfMAs[i]; if (!!spMachArea) { CATIAlias * pAlias = NULL; HRESULT RC = spMachArea->QueryInterface(IID_CATIAlias, (void**) &pAlias); if (SUCCEEDED(RC)) { Name = pAlias->GetAlias(); _pDlgCombo->SetLine(Name); pAlias->Release(); pAlias = NULL; } if (spMachArea->IsEqual(spCurrentMachArea) == 1) _pDlgCombo->SetSelect(i-1,0); } } } // Adds a callback AddAnalyseNotificationCB( _pDlgCombo, _pDlgCombo->GetComboSelectNotification(), (CATCommandMethod) &CAASmiUserOperationWithMAGeometryPanel::SelectMachArea,NULL); // Creates the Machining Area editor if (!!spCurrentMachArea) { CATIEdit * pEdit = NULL; RC = spCurrentMachArea->QueryInterface(IID_CATIEdit, (void**) &pEdit); if (SUCCEEDED(RC)) { CATDlgFrame * pMAFrame = pEdit->GetPanelItem(this,"MAFrameID"); if (pMAFrame) pMAFrame->SetGridConstraints( 1, 0, 2, 1, CATGRID_4SIDES); pEdit->Release(); pEdit = NULL; } } ... |
The SelectMachArea method is called whenever a new machining area is selected in the combo list. Here, the default dialog frame is updated with the CATIEdit interface:
... // Refresh Machining Area Editor CATIEdit * pEdit = NULL; RC = spMA->QueryInterface(IID_CATIEdit, (void**) &pEdit); if (SUCCEEDED(RC)) { // As a frame called "MAFrameID" has already been created, the method GetPanelItem // will refresh it pEdit->GetPanelItem(this,"MAFrameID"); pEdit->Release(); pEdit = NULL; } ... |
[Top]
This use case has demonstrated how to use machining areas with a surface machining operation.
We will see now how to compute the tool path of our operation [3].
[Top]
[1] | Surface Machining Operation Sample Overview |
[2] | Building and Launching a CAA V5 Use Case |
[3] | Computing a Tool Path with Machining Areas |
[Top] |
Version: 1 [Mar 2002] | Document created |
[Top] |
Copyright © 2002, Dassault Systèmes. All rights reserved.