Frame 

The CAAGeometry Sample

A sample to understand the main mechanisms of the V5 user interface.

Use Case

Abstract

This use case explains, through the CAAGeometry document, the usage and the behavior of the main mechanisms of the basic "Enterprise Architecture" frameworks: ApplicationFrame, CATIAApplicationFrame,  Dialog , DialogEngine, Visualization, VisualizationBase and System. 


What You Will Learn With This Use Case

This use case illustrates the mechanisms and the interfaces which define the user interface. It mainly concerns the Frame and the Command domains. You will learn concepts which are described in different articles indicated by the number in the bracket:

This use case is interesting for at least two reasons. At first, you can study the concepts by reading the articles or directly the code. By this way you have a static view. But you can also have an interactive view  to understand, for example, the call order. Most of the classes display output in the constructor, destructor, and in main methods. 

[Top]

The CAAGeometry Use Case

CAAGeometry is a use case distributed on several frameworks: CAAApplicationFrame.edu, CAACATIAApplicationFrm.edu, CAADialogEngine.edu, CAAVisualization.edu, CAAObjectModelerBase.edu and CAASystem.edu. They illustrate ApplicationFrame, CATIAApplicationFrame, Dialog, DialogEngine, Visualization, VisualizationBase and System framework capabilities.

[Top]

What Does the CAAGeometry Use Case Do

The CAAGeometry use case is mainly a set of commands which group together the main interfaces and behaviors of the frame/command domains. These commands are used to edit the CAAGeometry document. This document has two workbenches: The CAA V5: Geometrical Creation and the CAA V5: Geometrical Analysis workbenches.

The CAAGeometry workshop consists in commands which are located in the menu bar and inside five toolbars, the last three toolbars being add-in toolbars. 

The CAA V5: Geometrical Creation workbench contains two toolbars whose the Operation toolbar which is a Add-in toolbar. ( The menu bar, not described here, contains the commands too)

The CAA V5: Geometrical Analysis workbench contains one toolbar. ( The menu bar, not described here, contains the commands too)

The Basic Elements toolbar contains commands to create the CAAGeometry document elements: point, line, plane, cercle ...

The use case shows the implementation of some interfaces on the elements:

There are other behaviors:

You can provide to the end user some "options". These options are command header instances integrated in the Tools Palette toolbar. It is a specific toolbar, that the frame application creates. A workbench can added options [36], or a command [35].

On this above picture, you can see a command header instance represented by two editors [34], and inserted in the toolbar by the "CAAGeometry Creation" workbench [36]. The other forth icons are command header instances created in the Cuboid command [35].

The Geometrical Creation workbench contains commands to create components of the CAAGeometry document. These components are the following:

The root component,  not created by a command , is CAASysGeomRootObj. This component implements some interfaces whose the main one is CATIUIActivate to provide the workshop of the CAAGeometry document. 

[Top]

How to Launch the CAAGeometry Use Case

To launch the CAAGeometry use case, you will need to set up the build time environment, then compile: 

Launch CATIA. When the application is ready, follow scenarios described below:

The Workbenches Transitions scenario

Two CAAGeometry document's windows are open.

The Creation Objects scenario: (The complete scenarios are described in the article given in the brackets)

With the CAAGeometry workshop commands:

The Edition scenario  [11]

The Contextual-SubMenu / Contextual Menu  [10] scenario

The Edit Properties scenario [12]

The Tools/Option scenario [25] then [9]

The Interruptible Task scenario [24]

The Bounding Element scenario [23]

The Temporary Objects/ISO scenario [29]

[Top]

Where to Find the CAAGeometry Code

The CAAGeometry use case is made of a several modules "repartis sur plusieurs framework" 

which are inside:

Windows InstallRootDirectory\
Unix InstallRootDirectory/

where InstallRootDirectory is the directory where the CAA CD-ROM is installed.

CAAApplicationFrame.edu

Name of the Module Contents of the module
CAAAfrGeometryWshop.m This module contains the CAAGeometry workshop definition.
CAAAfrGeoAnalysisWbench.m This module contains the "CAA V5: Geometrical Analysis" workbench definition. It is one of two workbench of the CAAGeometry document.
CAAAfrGeoCreationWbench.m  This module contains the "CAA V5: Geometrical Creation" workbench definition. It is one of two workbench of the CAAGeometry document. [1]
CAAAfrGeoCreationWkbAddin.m This module contains one Add-in of the "CAA V5: Geometrical Creation" workbench. [2]
CAAAfrGeoWksAddin.m  This module contains one Add-in of the CAAGeometry  workshop.
CAAAfrGeoWksAddin2.m This module contains the second Add-in of the CAAGeometry  workshop. This Add-in contains the "Histogram Chart Window" command [7]
CAAAfrGeometryWksTransition.m This module contains the CATIWorkbenchTransition implementation for the CAA Geometry workshop. [3]
CAAAfrGeoDocument.m

CAAAfrGeoModel.m

These two modules contain the necessary interface implementations to visualize the CAAGeometry document
CAAAfrSampleDocument.m This module contains the necessary interface implementations to visualize the CAASample document
CAAAfrGeoSubMenu.m  This module contains the CATIContextualSubMenu implementation for a component of the CAAGeometry document. 
CAAAfrGeoWindows.m  This module contains the definition of the "Histogram Chart Window" [7] window and of the default window of the CAASample document [8] .
CAAAfrGeoEdition.m This module contains the CATIEdit implementation for some components of the CAAGeometry document. [11]
CAAAfrGeoCommands.m This module contains some commands used by the CAAGeometry workshop. [23]
CAAAfrProgressTask.m This module contains a command which implements the CATIProgressTask interface. [24]
CAAAfrGeneralWksAddin.m This module contains an Add-in of the General workshop [30]. It means that all the commands launched from a command header defined in this add-in are available whatever the type of the document, and even if no document is opened.  Like the New command. 
CAAAfrCustCommandHdrModel.m This module contains the "model" part of the specialized command headers. 
CAAAfrCustomizedCommandHeader.m This module contains the definition of the two specialized command headers: a combo header [32] a MRU header [33], and editor header [34]
CAAAfrPaletteOptions.m This module contains the implementation of the CATIAfrPaletteOptions interface on the workbench of creation.

CAACATIAApplicationFrm.edu

Name of the Module Contents of the module
CAACafContextualMenu.m This module contains the CATIContextualMenu implementation for a component of the CAAGeometry document. [10]
CAACafCtrlToolsOptions.m This module contains the definition of the setting controllers. [25]
CAACafEltToolsOptions.m This module creates the Elements property page that contains three frames: Identifier, Max Points/Curve, and Implicit Points. This property page is associated with the "CAA V5: Geometrical Creation" workbench. [9]
CAACafViewToolsOptions.m This module creates the View property page that contains the 3DRepresentation frame. This property page is also associated with the "CAA V5: Geometrical Creation" workbench.
CAACafUseToolsOptions.m This module contains a command which uses the "Elements" property page options . 
CAACafEditTextureProp.m This module contains the CATIEditProperties implementation for some components of the CAAGeometry document. It is the "Texture" properties. [12]
CAACafEditColorProp.m This module contains the CATIEditProperties implementation for some components of the CAAGeometry document. It is the "Color" properties.
CAACafRootProperties.m This module contains the CATIRootProperties implementation. 
CAACafGeoDocument.m This module contains the CATIDocumentEdit implementation for the CAAGeometry document
CAACafViewerFeedback.m This module contains the code to see the usage of a specific notification sent by a viewer. This notification give you information about the mouse position, list of elements under the mouse ....

CAASystem.edu

Name of the Module Contents of the module
CAASysGeoModelComp.m This module contains the implementation of all the components contained in the CAAGeometry document. It contains the CATICreateInstance implementations too.
CAASysGeoModelInt.m This module contains the definition of some interfaces implemented by the CAAGeometry document components. It is the interface of type: the interface which characterizes the component.
CAASysGeoModelImpl.m This module contains the data extensions for the interfaces defined in the previous module. 

CAADialogEngine.edu

Name of the Module Contents of the module
CAADegGeoCommands.m This module contains all the state commands of the CAAGeometry documents. [13, .., 22]
CAADegMultiDocCmd.m This module contains the command which derives from CATMultiDocumentCommand and which is associated with a CATOtherDocumentAgent.

CAAVisualization.edu

Name of the Module Contents of the module
CAAVisGeoModel.m This module contains the CATIVis3DGeoVisu implementation for the CAAGeometry document components. [26]
CAAVisModelForRep.m This module contains the creation of the CAAVisTextModel component. This component is a used as temporary object to represent the "ISO Selection" Text in the "Clipping By Box" command. [29]
CAAVisWireBoxComp.m This module contains the creation of the CAAVisWireBox component. This component is a used as temporary object to represent the bounding box in the "Clipping By Box" command. [29]

CAAObjectModelerBase.edu

Name of the Module Contents of the module
CAAOmbGeoNavigate.m This module contains the CATINavigateObject implementation for all the CAAGeometry document components and the CATINavigModify implementation for Point and Root componants. [27]

[Top]


Step-by-Step

Each articles named below contains a Step-By-Step section. Here are given the main articles to customize the V5 frame:

Once you have created you own feature, refer to the Mechanical Modeler articles for details, you can study the articles as follows:

[Top]


In Short

The CAAGeometry use case enables you to understand the main mechanisms of the V5 user interface and to customize it.  

[Top]


References

[1] Creating a Workbench
[2] Creating an Add-In
[3] Managing Transitions between Workbenches
[4] Creating Standard Command Headers
[5] Creating Customized Command Headers
[6] Using Cameras
[7] Creating a Document's Window -1
[8] Creating a Document's Window-2
[9] Creating a Property Page for Application Properties
[10] Inserting Commands in Contextual Menus
[11] Editing Objects
[12 ] Creating a Property Page for Object Properties
[13 ] Implementing the Statechart Diagram
[14 ] Managing Indication
[15 ] Managing Selection
[16 ] Managing Multi Selection
[17 ] Managing Command Undo/Redo
[18 ] Managing Undo/Redo of Input and Actions
[19 ] Associating a Dialog Box with a State
[20 ] Associating a Dialog Box with a Dialog Agent-1
[21 ] Associating a Dialog Box with a Dialog Agent-2
[22 ] Creating Contextual Menus in a State Dialog Command
[23 ] Creating a Command that Consists in a Dialog Window
[24] Creating an Interruptible Task
[25] Creating a Setting Controller
[26] Making a Component Displayable With CATI3DGeoVisu
[27] The Object Navigator
[28] Getting Started with State Dialog Commands
[29] Creating Temporary Objects
[30] Making Your Document Independent Command Available in All Workbenches
[31] Viewer Feedback
[32] Creating a Combo Command Header
[33] Creating a Most Recent used Command Header
[34] Creating Editors in Toolbar
[35] Creating a Command with Options in the "Tools Palette" Toolbar
[36] Using the "Tools Palette" Toolbar for a Workbench
[Top]

History

Version: 1 [Apr 2003] Document created
Version: 2 [Feb 2004] Document updated 
[Top]

Copyright © 2000, Dassault Systèmes. All rights reserved.