Getting Started With CATIA V5 Macros: Emmett Ross January 2015

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Getting Started with

CATIA V5 Macros
Emmett Ross
January 2015
http://www.scripting4v5.com
Why use macros?
If you perform a task repeatedly, you can take
advantage of a macro to automate it. A macro is a
series of functions, written in a scripting language,
that you group in a single command to perform the
requested task automatically, saving time and
reducing the possibility of human error.

• Standardization
• Improve efficiency
• Expand CATIA capabilities
• Streamline tasks
Macro Examples
• The application of automation in the design process is virtually
unlimited.
• Examples of macros that CAD engineers might use:
– Generate Part List in Excel from CATIA
– Automatically place components at specific points
– Compare differences between two parts
– Print annotation data
– Take a screen capture
– Delete deactivated features
– Create a drawing
– Find specific geometry
– Change background color to white

And so on and so on. The possibilities are nearly limitless.

3
CATIA V5 Macros
• Macros run from CATIA V5
• Written in VBA
How to create a macro
Macros are created by two primary methods:
1. Macro recorder
2. Write custom code with the macro editor

4
1/12/2015
MACRO RECORDER

• One method for creating macros is by recording your mouse actions


by:
• Going to Tools>Macro>Macros>Start Recording
• Choose CATScript, enter a name then click OK.
• CATIA is now recording your actions until you click the stop button
• DON'T: Record more than is absolutely necessary.
• DON'T: Use the UNDO button when recording a macro.
• DO: Check each macro after it's recorded.
• To view the code that was just recorded go to
Tools>Macro>Macros> Select the macro then click Step Into to
launch the macro editor.
CONS OF MACRO RECORDING

• Many times extra lines of code are added which are not
necessary. This is based on the order of steps that you do as
you record the macro. These unnecessary lines can be
removed.
• Recorded macros do not contain any comments or
explanations of what is happening in the code and input
parameters are never recorded.
• Recorded macros are very simple and don’t contain If
statements, Loops, or other commonly used code.
• Record macros can be used for simple tasks but it is better
to write custom code; use the recorder if you get stuck or
to find out the syntax if you don’t know it.
To open and run macros

There are multiple ways to open the macros window:


• Tools>Macro>Macros
• Macros toolbar
• Keyboard shortcut: Alt+F8
• Create your own icon for each macro
Macro Libraries
• CATIA macros are stored in macro libraries in one
of three locations: Folders (vbscript and
CATScript), Project files (catvba), or documents
such as CATParts, CATProducts, and CATDrawings.
• Only one of these macro libraries can be used at
a time.
• When creating a new macro library, the folder or
path location must already exist. If not you will
get an error message.
How to add a macro library
• Use the following steps to setup an existing
macro library
•Go to Tools>Macro>Macros
•Click "Macro libraries…"
Ensure the Library type is set to "Directories"
then click "Create new library…"
Type in the file location where you are planning on saving all of your
CATIA macros then click OK.
Close the macros libraries window.
This is where you can create CATScript
macros.
If you were setting up an existing library
(add existing library versus Create new
library) you would see a list of .CATScript
files here.
You only need to do this once as the library
should load even after restarting CATIA.
PROGRAMMING LANGUAGE

• To write custom macros you need to know CATIA’s


programming language, Visual Basic for Applications.
• VBA provides a complete programming environment with
an editor, debugger, and help object viewer.
• CATIA cannot run a macro program WITHOUT the host
application (CATIA) running (meaning it runs as a DLL in the
same memory space as the host application).
• CATIA macros are run in-process, meaning CATIA essentially
freezes while the macro is running and the allocation
memory is wiped clean after each run of the program so
passing data between subsequent runs is impossible.
What is CATScript?
VBScript is a subset of the Visual Basic Programming
language (VBA).

All elements of VBScript are present in VBA, but some


VBA elements are not implemented in VBScript.

The result of the slimming down process is a very small


language that is easy to use.

Code specific to CATIA is saved as .CATScript.

Can edit code in macro editor or notepad/word pad, etc.


1/12/2015 15
MACRO SYNTAX

• Syntax is defined as the ordering of and relationship


between the words and other structural elements in
phrases and sentences.
• Each programming language is composed of its own syntax.
• Think of it like this: when you see an email address
(emmett@scripting4v5.com) you immediately identify it as
an email address. Why is this? An email address has a
correct structure in the language of the internet, its syntax.
• Syntax enables the programming language to understand
what it is you are trying to do
SYNTAX

• Case Sensitivity: By default, VBA is not case sensitive and does not
differentiate between upper-case and lower-case spelling of words.
• Comments: Add comments to your statements using an apostrophe
('), either at the beginning of a separate line, or at the end of a
statement. It is recommended that you add comments wherever
possible to make your scripts easier to understand and maintain,
especially if another user has to make changes to it later on down
the road.
• Indentation: Indent or out dent script to reflect the logical structure
and nesting of the statements to make it easier to read.
• Parentheses: It is important to use parentheses correctly in any
statement to achieve the desired result and to avoid errors.
SYNTAX

• Semicolon (:): Inserting a semicolon allows you to write multiple


commands on the same line of code.
• Single Quotation(‘): To return a single quotation mark which does
not indicate a comment (needed in a formula for example), you'll
have to use the Chr function. Chr() is a built-in VBA function that
returns the character that corresponds to the numeric value of its
argument using the ASCII coding scheme. If you provide Chr with an
integer value (such as 39) it will report back the character that
corresponds to that value. The ASCII value of 39 is the single quote
mark. Chr(34) is for the double quote mark
• Spaces: Add extra blank spaces to your script to improve clarity.
These spaces are ignored by VBA.
SYNTAX

• Text Strings: When a value is entered as a text string you


must add quotation marks before and after the string.
• You can concatenate, or combine, multiple strings using a
plus (+) or ampersand (&) sign: txtString = “This value is “+
TestValue. Return the left, middle, or right of a string using:
left(sting, digits), mid(string, digits), or right(string, digits).
Get the complete length of a string with len(string). To
figure out if a string contains another string use Instr().
Convert numeric strings and vice versa using str(num) or
val(string).
• Underscore(_): Carry over to next line (line concatenation
symbol).
SEQUENTIAL PROGRAMMING

• When you run your macro program, the code will be


read by the computer line by line, generally from top to
bottom and from left to right, just like reading a book.
• The program flows down the code until it hits a
decision point where it may have to jump to a different
portion of the program or re-run lines of code that it
already read.
• The program chooses what lines of code to execute
based on the state of the variables you have defined.
EVENT DRIVEN PROGRAMMING

• The execution of the program depends on an


event, such as a user clicking a button with the
mouse, an object being selected, certain text or
characters being typed into a form, etc.
• One common decision point is an If...Else
statement. If the variable equals x then do y, else
do z.
• Another one is the while loop which will execute
the lines of code within the loop over and over
until the condition becomes false.
VARIABLES

• Variables make up the backbone of any programming


language.
• Variables store information that can be accessed later
by referring to a name or “variable.”
• Variables can then be declared as a type to let us know
what we can do with that information.
• The value of a variable will not necessarily be constant
throughout the duration a program is running.
• Naming variables is important; it’s best to be
descriptive i.e. RowNumber, ColumnNumber
VARIABLES

• Variable names, also known as identifiers, must be less


than 255 characters
• They cannot start with a number.
• Special characters such as spaces and periods are
forbidden.
• Avoid naming conflicts; two variables cannot have the same
name.

Example:
• Good Variable Names: dimensionOne, dimension1
• Bad Variable Names: dimension One, 1dimension
VARIABLES NOTATION
• There is a popular naming convention where a letter is placed in
front of the variable name to notate what type of data the variable
is:

• o=object (i.e. oPartDoc)


• s=selection (i.e sSelection1)
• str=string (i.e. strFilename)
• i=integer (i.e iCount)
• rng=Range (i.e. rngField)

• Some programmers use “int” or “n” for integer and “str” for string.
Either or works as long as your notation is consistent and easy for
others to understand.
• By default, Excel doesn’t force you to declare
your variables. However, you should change that
setting immediately. Press Alt+F11 to launch the
Visual Basic Editor (VBE). Go to Tools>Options.
• In the Editor tab of the Options dialog, make sure
that there’s a check mark in front of “Require
Variable Declaration”
DIMMING AND SETTING

• Variables are "dimmed" (declared) as a type, either a "primitive"


type (single, double, integer, string, etc.) or an object type (more
complex).
• The "Dim" command is used to allocate a variable of any type.
Primitive variables are populated with a value. Declaring variables
with a ‘Dim’ statement helps save memory while running the
program .
• After a variable is declared through dimming then it is “Set” or
given a value.
• For object variables, the "Set" command is used to "point" the
variable to the object. Within the program, the variable then
represents that object unless it is "Set" to a different one.
MACRO BASICS
• An CATIA program or "macro" consists of a
"Subroutine“.
• CATIA only recognizes the Sub ___() as the entry
point to any VBA application.
• Every Sub must end with an End Sub.
• You’ll add your code in-between the subs
CREATE A MSGBOX MACRO
• To create your first custom macro:
• Use the shortcut Alt+F8
• Type in a new macro name “Test”
• Click “Create” to launch the macro editor
• Add the following code between the subs:
• Msgbox “Hello world.”
• Click the play button and a message box with the words “Hello world.”
should pop up in front of your spreadsheet.

Option Explicit
Sub Main()
MsgBox “Hello world.”
End Sub
To create an icon for each macro:
• Go to Tools>Customize>Commands tab> scroll
down to Macros>click "Show Properties"
• Under Commands, select the macro then click the …
box. The icon browser pops up. Over 6000 to
choose from. Select one then hit close.
• Finally, drag and drop the .CATScript file from the
command window to whatever toolbar you would
like the icon to appear on
• Now you can click the Icon to run your macro!
• You can also setup a custom keyboard shortcut as
well.
CATIA Version Macro
This macro displays the current CATIA version and service pack number

Sub CATMain()
'---display the current CATIA version, R number and service pack

MsgBox "The current CATIA configuration is: V" & CATIA.SystemConfiguration.Version & _
"R" & CATIA.SystemConfiguration.Release & _
"(SP" & CATIA.SystemConfiguration.ServicePack & ")"

'---check to see if the specified product is authorized

If CATIA.SystemConfiguration.IsProductAuthorized("FPE.prd") THEN

MsgBox "FPE authorized."


Else
MsgBox "FPE Not Authorized"
End If
End Sub
Want to learn EVEN MORE about
programming macros in CATIA V5?
Join the newsletter VB Scripting for CATIA V5
email newsletter for more macros tips
delivered to your inbox.

CLICK HERE TO SIGNUP FOR FREE!


As a bonus you’ll receive the 7 Tools I Use
When Programming CATIA Macros

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy