CAA/RADE Basics
Eric Bowman Goodrich Aerostructures - Intern Brigham Young University Undergraduate Student
Abstract This teleconference will go through our thought process in deciding to use CAA/RADE and will discuss the basics of creating a CAA/RADE program. Programming with CAA/RADE is not easy, and can be very intimidating. This session will go through a methodology that can be used to break this programming problem into smaller parts, making it more feasible. Half of the conference will be spent laying down good programming principles, and the other half will be a hands-on experience creating your own workspace.
Overview
Strengths and Weaknesses of Various Methods of Programming CATIA My Language Choices Advantages of Object Oriented Programming Different Object Oriented Options
VB 6.0 CAA/RADE Combination
Understanding CAA/RADE
CATIA Programming Options
Visual Basic
VBScript and CATScript - the Quick and Dirty
Method VBA A Script Created in a MSDev Environment Visual Basic 6.0 - Simplest Object Oriented Approach Visual Studio.Net - Up and Coming Approach
CAA/RADE
C++ - the Primary Language Java - Supported but not as Common
My Language Choices
Methods I am Not Using
Script Language Has No Debugging VBA Environment is Not Object Oriented VB.Net Should Be There Soon, But Not Yet Java is Not Well Supported and May Not Ever Be
Languages I am Using
VB 6.0 is a Relatively Easy yet Powerful Tool C++ is the Most Supported CAA/RADE Language
Object Oriented Power
Ease of Programming; Re-use
Initial Investment of Programming Ability Only Write Functions Once Organize Functions into your Own Structure Share Objects Throughout Company
Facilitate Maintenance
Problems Only Need to be Fixed in One Place Feasible to Document Functions Well
Object Oriented Options Overview
Programming Difficulty GUI Capability API Exposure Quantity API Exposure Time License Costs Maintenance Costs VB 6.0 Easy High Low Late Low Low CAA/RADE Combination Hard Medium Medium High High High Early Early High High Medium Medium
Object Oriented Options VB 6.0 GUI
See Next Slide
The VB GUI Code is Very Simple VB Toolbars Can Have Unpredictable Behavior and are Not Directly Integrated
Object Oriented Options VB 6.0 Structure
Three Pages of Code implemented in One Line
Object Oriented Options CAA/RADE GUI
Complex File Structure
The Commands Are Directly Integrated Into CATIA
Creating A Form is No Picnic
Object Oriented Options CAA/RADE
Added Power
Access to More Functions in Most Areas of CATIA Access to Entire Areas That are Not Available in VB Delmia Enovia CATIA Geometric Modeler Machining Etc.
Added Cost and Complexity
Object Oriented Options Combined
Complex File Structure
The Commands Are Directly Integrated Into CATIA
Call Your VB Form
Understanding CAA/RADE Data Structure (1/3) CAA/RADE Has a Different Data Structure than Visual C++ CAA/RADE Has Three Elements
Workspace Framework Module
CAA/RADE Workspace Framework Module
C++ Workspace Project
Understanding CAA/RADE Data Structure (2/3) A Framework Has No C++ Equivalent, but is Similar to a Project It is Basically an Added Tier of Organization
CAA/RADE Workspace
Framework
Module Project
C++ Workspace
Understanding CAA/RADE Data Structure (3/3)
Hard to Understand This Workspace Framework Module Careful Naming Conventions and File Organization are Vital! Easier to Understand This
Understanding CAA/RADE Example (1/7)
Choose Your folder Carefully Because Many Folders and Files Will be Automatically Generated
A Workspace is Just a Container, A Framework is a Container With Some Intelligence
Understanding CAA/RADE Example (2/7)
Visual Studio Organizes both Frameworks and Modules Alphabetically as if They are Both Projects. Good Naming Conventions Can Help Make Framework and Module Navigation Much Less Confusing.
A Module is Where Everything Actually Happens
Understanding CAA/RADE Example (3/7)
These Files Are Generated Automatically
Notice The Prerequisites
Sometimes You Have to Add them to the Folders Even Though They Already Exist
Understanding CAA/RADE Example (4/7)
We Will Create This .cpp File in the Following Slides
In This Example, Only cube.cpp is not automatically generated
Understanding CAA/RADE Example (5/7)
Workspaces Frameworks Modules
It is Helpful To Group Modules According to Their Frameworks
Understanding CAA/RADE Example (6/7)
Some Things are Just Like C++
Most Things Are a Little Different
Understanding CAA/RADE Example (7/7)
The Flow and Format Parallels VB
Summary
Which Programming Methods You Use is an Important Decision. We Have Chosen to Use a Combination of VB and CAA/RADE Because That Best Fits Our Organizations Needs. Taking The Time to Understand the Structure of CAA/RADE can be Difficult, but is Very Important.
Questions?