CST 2010 Webcast Draft

advertisement

VBA Macros and Linking External

Programs

Automation/Macros/Templates/Batch/MATLAB

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 1

Contents

Introduction

Project Templates

Automatic Construction of Models

Template Based Postprocessing

ResultReader.dll

Linking External Programs

Creating Macros & Templates

Examples

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 2

Please keep in mind...

• Programming in VBA / Matlab / etc offers a wide area of possibilites, which can„t be completely explored in short time. It typically needs more time and energy as expected, until everything works.

• Before starting

• Please check carefully, which alternative solutions exist. Please discuss this with a VBA expert in CST„s support team, to find the easiest out of many possible approaches.

• learn with existing small examples to gain experience. It is typically quicker to change existing running examples, than to start from scratch.

• CST provides VBA-Online help and several other examples within installation and www, but still our main goal is to offer comfortable solutions without the need of additional coding.

(CST Maintenance Fee does not include customized programming)

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 3

Motivation

Clicking on CST Logo brings you to Content Slide

Why to use VBA-macros automation / external tools?

1.

Automatic construction of models

2.

Specialized-Postprocessing  Check Result templates, existing ResultReader.dll + examples

3.

Use external optimizers (=1.+2.)  check CST internal optimizers

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 4

Project Templates

Customize Start Environment

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 5

Project Templates

Customize the default settings for particular types of applications.

At the beginning:

File -> New...

or later: File -> Select Template...

The template library can be easily extended

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 6

Project Templates

Input some commands you often use for your MWS structures, e.g.:

Frequency range, units, Background-mat + boundaries

Definition of materials (parameters, favorite colours ...)

Working plane settings (especially snapping !)

Monitors at favorite frequencies, ...

Open the history list

Mark the commands, press „Macro“

Give a name to your macro, e.g. „File / My defaults“

Click „Make globally available“, then „OK“

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 7

Project Templates

Source-Files are stored in

<CST-STUDIO-SUITE>\Library\New Project Templates

Each template <NAME> consists of 3 files:

1) <NAME>.tpl

(required)

(contains VBA-commands)

2) <NAME>.bmp

(optional)

(contains displayed picture)

3) <NAME>.txt

(optional)

(contains displayed description)

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 8

<NAME>.bmp

<NAME>.txt

Automatic Construction of Models

Difference: Structure & Control Macro

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 9

All Construction-Steps need to be stored in History List

Various Options exist

1.

.mcs (structure macro) with BeginHide/EndHide/Assign for dialoguehandling, etc

Examples e.g. in Macros > Construct > Coils or Construct > Online

+ quickest way to bring structure parts to history list

- dialogue handling a bit tricky

2.

.mcr (control macro) with VBA-command AddToHistory

Examples e.g. in Macros > Construct > Wires or Construct > Vias

+ dialogue handling easier than .mcs

- all commands need to be entered into a string first ““““, especially cumbersome for VBA commands with arguments

3.

External bas-file (might even contain subroutines) can be included into history via

Macros > File > Import bas-file into history list

+ most flexible way for complex loops/subroutines

- bas-file is external file, not automatically included in cst-file

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 10

Structure Macros

 Modify the structure

 Stored in the history list for parametric model definition

 Name: ... . mcs

 Example: Creation of advanced geometry, e.g. spirals,…

Macros -> Construct -> Coils -> Sectioned Spiral

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 11

Control Macros

 Normally do not modify the structure

 Are not automatically stored in the history list

 If actions should be stored in the history list, all commands need to be entered into a string first ““““ and then submitted to History via AddToHistory

 Name: ... . mcr

 Examples: Postprocessing, Calculation of analytical line impedance, etc.

Macros -> Calculate -> Calculate Analytical Line

Impedance

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 12

Template Based Postprocessing

Customized Postprocessing within STUDIO

Environment

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 13

Existing Result Templates

Purpose: Customized and automized postprocessing

Many postprocessing options are already available.

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 14

Result Templates

 Store in <installationpath>/Library/Result

Templates/1D/my_template.rtp

 Will be evaluated after each solver run.

 Can perform just an action or return 1D or 0D values.

Performs an action

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 15

Result Templates

 Store in <installationpath>/Library/Result

Templates/0D/my_template.rtp

 Will be evaluated after each solver run.

 Can perform just an action or return 1D or 0D values.

 0D Results can serve as Optimizer Goal

Returns a value

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 16

ResultReader.dll

Customized Postprocessing from External

Programs

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 17

ResultReader.dll

Provides external access to CST results

C:\ProgramFiles\CST-STUDIO-SUITE\ResultReaderDLL

Ready to use Matlab-Scripts, also for accessing 3D-Fielddata and farfields

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 18

ResultReader.dll - Examples

1D Results

Nearfields

(only hex-mesh no subgrid)

Farfields

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 19

ResultReader.dll

Online Help

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 20

Linking External Programs

Usage of external Optimizers

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 21

Integration Into Workflow

MS Windows

Scripting

Host e.g. ppt-Reports

COM

DCOM

Excel, Word,

Matlab, AutoCad, etc...

e.g. bidirectional Excel link

CST Software

(MWS, DS)

CST Studios can be both: OLE client and server

OLE: CommunicationStandard for Data Exchange

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 22

Changing Parameter Values from outside CST

Whenever CST geometries shall be modified from external software (e.g. Matlab), we recommend to open an existing cst-file, containing parameters .

Those Parameters can then be modified, as shown below. Afterwards „Rebuild“ updates the history and applies the changes to geometry and other settings.

control program

Bas-file

Matlab

StoreParameter „gap“ „7“ invoke(mws, 'StoreParameter', ‘ gap', value);

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 23

Command Line Options

Online Help

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 24

Example Batch Mode (Command Line)

"C:\ProgramFiles\CST-STUDIO-SUITE\CST DESIGN ENVIRONMENT.exe" –m C:\Work\Start_CST.bas

The contents of the Start_CST.bas file could look as follows:

Sub Main

OpenFile("C:\work\test1.cst”)

Solver.Start

Save

End Sub

If only a solver should be started, above construction can be shortened via:

"C:\ProgramFiles\CST-STUDIO-SUITE\CST DESIGN ENVIRONMENT.exe" –m –r "C:\work\test1.cst”

-r = T-Solver

-f = F-Solver

-e = E-Solver

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 25

Matlab calls and controls CST

% Start CST Studio (always last installed CST version is used) cst = actxserver('CSTStudio.application') mws = invoke(cst, 'NewMWS')

% Open the MWS model invoke(mws, 'OpenFile', 'C:\CST_Test\tsplitter.cst'); for iii = 1:1:2 % Parameter sweep

% Set value of parameter invoke(mws, 'StoreParameter','offset', iii); invoke(mws, ‚Rebuild„);

% Start solver solver = invoke(mws, 'Solver'); invoke(solver, 'Start'); end

% Take over the result; here, as an example, the amplitude (linear) of S11 result = invoke(mws, 'Result1D', 'a1(1)1(1)'); numOfValue = invoke(result, 'GetN'); % Might be used to initialize the variables invoke(result, 'Save', 'C:\tmp\filename');

A = importdata('C:\tmp\filename', ' ', 4) x(:, iii) = A.data(:, 1); % x-data column y(:, iii) = A.data(:, 2); % y-data column invoke(mws, 'Save'); invoke(mws, 'Quit'); release(result); release(solver); release(mws); release(cst);

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 26

Reminder: ResultReader.dll

ResultReader.dll can be used in combination

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 27

Creating Macros & Templates

Integrated Development Environment

GUI Builder

Macro Structure

Templates Structure

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 28

The Integrated Development Environment

Open IDE

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 29

The Integrated Development Environment

Run the macro Debug the macro

Edit macro code here (syntax highlighting)

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 30

The Integrated Development Environment

Macro Debugger:

 Set breakpoints

 Step through the macro

 Watch variables

 etc …

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 31

The Integrated Development Environment

Graphical GUI builder

Source code for the dialog box is automatically created and

Inserted at the caret‘s position

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 32

Where macro files are stored

Global macros: stored in the Global macro path

(

INST_DIR\Library\Macros

)

 Local macros: stored in the same path as the project

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 33

Macro Name Convention

Macro name:

Besides the name the macro name defines if it is a structure or control macro and in which of the CST STUDIO SUITE™ programs it will be available.

Folder where the macro is stored defines the position in the macro hierarchy

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 34

Structure of a CST STUDIO SUITE Macro

Comments – start with '

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 35

Structure of a CST STUDIO SUITE Macro

Options:

Option Explicit

– Force declaration of all variables

Option Private Module

– Public variables invisible from outside the project

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 36

Structure of a CST STUDIO SUITE Macro

Included libraries

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 37

Structure of a CST STUDIO SUITE Macro

Public variables

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 38

Structure of a CST STUDIO SUITE Macro

Every macro contains at least the subroutine

„Main“ exept Result Templates!

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 39

Structure of a CST STUDIO SUITE Macro

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 40

Other needed functions and subroutines

Structure of a Result Template

Defines all necessary input data

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 42

Structure of a Result Template

Dialog built by GUI builder

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 43

Structure of a Result Template

Gets default settings/ already stored settings

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 44

Structure of a Result Template

Stores Settings in common script

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 45

Structure of a Result Template

Mandatory function for a 1D Template

(0D Templates need Evaluate0D As Double)

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 46

How to Create Macros?

There exist different ways to create a macro

 Copy and modify an existing macro

 Go to the history list , select lines and press „Macro“

 Use Macro -> Make VBA Control Macro and start from Scratch

 Let MWS create the macro‘s framework by pressing „Edit“ for

 User defined excitation function

 User defined parameter sweep watch

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 47

List of all VBA Objects

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 48

History List

VBA commands can be obtained by executing the action via the GUI and checking the history list for the command.

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 49

Load exisiting Macros

All existing Macros and Templates are stored in:

With drag and drop they can be opened in the VBA editor.

A macro similar to the current needs can be chosen and modified.

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 50

Getting More Information

 Online Help

 All commands are also listed in the Online Help

 Have a look at the pre-loaded macro examples

 Visit a special training class on macroprogramming

 Learning by doing….

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 51

Example

Farfield Plot Sweep

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 52

Example: Farfield Plot Sweep Macro

Selects Farfield for superposition, frequency evt. Needs to be adapted.

Settings for number of antennas, spaceshift, phaseshift. Fixed for the time beeing. (Variable in Template)

Settings for farfield plot

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 53

Example: Farfield Plot Sweep Macro

Sets array settings.

Adds obtained value to 1D object

Adds 1D Object to the tree

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 54

Obtain Results

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 55

Example

Farfield Plot Sweep: Version as Template with

Dialog

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 56

Example: Farfield Plot Sweep - Result Template

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 57

Example: Farfield Plot Sweep - Result Template

Function Define(sName As String, bCreate As Boolean, bNameChanged As Boolean) As Boolean

Define = True

Begin Dialog UserDialog 400,203 ' %GRID:10,7,1,1

GroupBox 20,14,360,182,"Antenna Array Sweep",.GroupBox1

Text 40,35,90,14,"Direction:",.Text1

Text 160,35,90,14,"X",.Text2,2

Text 40,63,90,14,"Number:",.Text3

TextBox 160,63,90,21,.nant

Text 40,98,90,14,"Spaceshift:",.Text4

Text 40,133,90,14,"Phaseshift:",.Text5

TextBox 160,98,90,21,.spaceshift

TextBox 160,133,90,21,.phaseshift

OKButton 40,168,140,21

CancelButton 210,168,140,21

End Dialog

Dim dlg As UserDialog dlg.nant

= GetScriptSetting("NumberOfAntennas","1") dlg.spaceshift = GetScriptSetting("SpaceShift","0") dlg.phaseshift = GetScriptSetting("PhaseShift","0")

If (Not Dialog(dlg)) Then

User dialog editor

Default values

' The user left the dialog box without pressing Ok.

Define = False

Else

' The user properly left the dialog box by pressing Ok.

Define = True

' Store the script settings into the database for later reuse by either the define function (for modifications)

' or the evaluate function.

StoreScriptSetting("NumberOfAntennas",dlg.nant)

StoreScriptSetting("SpaceShift",dlg.spaceshift)

StoreScriptSetting("PhaseShift",dlg.phaseshift)

Store Settings

End If

End Function

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 58

Needs to be adapted, here fixed

Read previously defined settings

Select plot to be evaluated

Change array settings and update

Evaluate value of interest and add to 1D results

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 59

Example: Farfield Plot Sweep - Result Template

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 60

Example: Farfield Plot Sweep Template

CST – COMPUTER SIMULATION TECHNOLOGY | www.cst.com | May-10 | 61

Download