Sie sind auf Seite 1von 337

v13

Introduction to Scripting in Maxwell

March 2010

The information contained in this document is subject to change without notice. Ansoft makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Ansoft shall not be liable for errors contained herein or for incidental or consequential damages in connection with the furnishing, performance, or use of this material. 2010 SAS IP, Inc. All rights reserved. ANSYS, Inc. 275 Technology Drive Canonsburg, PA 15317

Tel:(+1) 724-746-3304 Fax:(+1) 724-514-9494


Ansoft, Maxwell, ePhysics, Optimetrics, RMxprt, and Maxwell Circuit Editor are registered trademarks or trademarks of SAS IP, Inc. Microsoft and Visual Basic are registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. New editions of this manual will incorporate all material updated since the previous edition. The manual printing date, which indicates the manuals current edition, changes when a new edition is printed. Minor corrections and updates which are incorporated at reprint do not cause the date to change. Update packages may be issued between editions and contain additional and/or replacement pages to be merged into the manual by the user. Note that pages which are rearranged due to changes on a previous page are not considered to be revised. Edition 1 2 3 4 Date October 2005 February 2006 February 2008 March 2010 Software Version 11 11 SP 1 12 13

ii

Introduction to Scripting in Maxwell

Getting Help
Ansoft Technical Support
To contact Ansoft technical support staff in your geographical area, please log on to the Ansoft corporate website, http://www.ansoft.com, click the Contact button, and then click Support. Your Ansoft sales engineer may also be contacted in order to obtain this information. E-mail can work well for technical support. All Ansoft software files are ASCII text and can be sent conveniently by e-mail. When reporting difficulties, it is extremely helpful to include very specific information about what steps were taken or what stages the simulation reached. This allows more rapid and effective debugging.

iii

Introduction to Scripting in Maxwell

iv

Table of Contents

1. Introduction to VBScript
Sample Maxwell Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 VBScript Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5
Declaring Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Naming Conventions . . . . . . . . . . . . . . . . . . . . . . Scope and Lifetime of Variables . . . . . . . . . . . . . . . . . . . . Array Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operator Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arithmetic Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparison Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . Logical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 1-6 1-6 1-6 1-8 1-8 1-9 1-9

VBScript Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8

Controlling Program Execution . . . . . . . . . . . . . . . . . . . . . 1-10


Using If...Then...Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 Using Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10

Looping Through Code . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11


Using a For...Next Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . Using a Do Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repeating Statements While a Condition is True . . . . . . . Repeating a Statement Until a Condition Becomes True . 1-11 1-11 1-11 1-11

VBScript Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12


Contents-1

Introduction to Scripting in Maxwell

Function Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12 Sub Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12

Converting Between Data Types . . . . . . . . . . . . . . . . . . . . 1-12 Interacting with a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13 Recommended VBScript References . . . . . . . . . . . . . . . . 1-13

2. Maxwell and VBScript


Overview of Maxwell Script Variables . . . . . . . . . . . . . . . . Recording a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stopping Script Recording . . . . . . . . . . . . . . . . . . . . . . . . . Running a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pausing and Resuming a Script . . . . . . . . . . . . . . . . . . . . Stopping a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maxwell Scripting Conventions . . . . . . . . . . . . . . . . . . . . .
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Script Command Conventions . . . . . . . . . . . . . . . . . . . . . . Named Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Numerical Values . . . . . . . . . . . . . . . . . . . . . . . . .

2-2 2-5 2-5 2-6 2-7 2-7 2-7


2-7 2-8 2-8 2-10

Executing a Script from Within a Script . . . . . . . . . . . . . . . 2-11 Editing Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11

3. Ansoft Application Object Script Commands


General Application Script Commands . . . . . . . . . . . . . . . 3-2
GetAppDesktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 SetDesiredRamMBLimit . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 SetMaximumRamMBLimit . . . . . . . . . . . . . . . . . . . . . . . . 3-2 SetNumberOfProcessors . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 GetDesiredRamMBLimit . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 GetMaximumRamMBLimit . . . . . . . . . . . . . . . . . . . . . . . . 3-4 GetNumberOfProcessors . . . . . . . . . . . . . . . . . . . . . . . . . 3-4

4. Desktop Object Script Commands


General Desktop Script Commands . . . . . . . . . . . . . . . . . 3-2
CloseAllWindows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 CloseProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Contents-2

Introduction to Scripting in Maxwell

CloseProjectNoForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 EnableAutoSave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 GetActiveProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 GetLibraryDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 GetProjectDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 GetProjectList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 GetTempDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 GetVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 NewProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 OpenMultipleProjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 OpenProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 PauseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 Print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 QuitApplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 RestoreWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 RunProgram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 RunScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 SetActiveProject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SetActiveProjectByPath . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SetLibraryDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 SetProjectDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SetTempDirectory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9

Commands for Querying Objects . . . . . . . . . . . . . . . . . . . 3-10


Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 GetDesigns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 GetDistributedAnalysisMachines . . . . . . . . . . . . . . . . . . . 3-11 GetName (Desktop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 GetProjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11

5. Project Object Script Commands


General Project Object Script Commands . . . . . . . . . . . . 4-2
GetName (Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 GetPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Contents-3

Introduction to Scripting in Maxwell

GetActiveDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 SetActiveDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 GetTopDesignList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 GetDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 SaveAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 InsertDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 CopyDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 Paste (Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 CutDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 DeleteDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Undo (Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 Redo (Project) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7 AnalyzeAll (Project menu) . . . . . . . . . . . . . . . . . . . . . . . . 4-7

6. Material Script Commands


Material Level Script Commands . . . . . . . . . . . . . . . . . . . 5-2
AddMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 DoesMaterialExist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 EditMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 ExportMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 RemoveMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5

7. Property Script Commands


Conventions Used in the Property Script Chapter . . . . . . 6-2 General Property Scripting Commands . . . . . . . . . . . . . . 6-4
ChangeProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4

Callback Scripting Using PropHost Object . . . . . . . . . . . . 6-10 PropHost Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13


AddMenuProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13 AddMenuProp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 AddProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 AddProp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Contents-4

Introduction to Scripting in Maxwell

ExecuteScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 GetCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 GetChangedProperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 GetDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 GetEditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 GetFileName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 GetHidden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 GetPropServers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 GetPropTabType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 GetReadOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 GetTabTypeName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 GetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 GetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 PropertyExists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 RemoveProp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 SetCallback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 SetDescription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 SetHidden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 SetReadOnly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 SetText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19 SetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19

Additional Property Scripting Commands . . . . . . . . . . . . . 6-21


GetPropertyValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 SetPropertyValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-21 GetProperties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 GetVariableValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 SetVariableValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23 GetVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23

Additional Property Scripting Example . . . . . . . . . . . . . . . 6-24 Example: Using Record Script and Edit Properties . . . . . 6-25

8. Dataset Script Commands


General Dataset Script Commands . . . . . . . . . . . . . . . . . 7-2
AddDataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
Contents-5

Introduction to Scripting in Maxwell

EditDataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 DeleteDataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

9. Design Object Script Commands


Conventions Used in the Design Object Chapter . . . . . . . 8-2 General Design Object Script Commands . . . . . . . . . . . . 8-3
GetName (Design) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 GetModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 DeleteVariation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 SetSolutionType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 SetActiveEditor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Solve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 Undo (Design) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 Redo (Design) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 RenameDesignInstance . . . . . . . . . . . . . . . . . . . . . . . . . . 8-6 ApplyMeshOps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7 EditNotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7 AnalyzeAll (Maxwell menu) . . . . . . . . . . . . . . . . . . . . . . . 8-8 AnalyzeAllNominal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 Analyze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 AnalyzeDistributed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 SetConductivityThreshold . . . . . . . . . . . . . . . . . . . . . . . . 8-9 ExportConvergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-9 GetVariationVariableValue . . . . . . . . . . . . . . . . . . . . . . . . 8-10 ExportMeshStats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 ExportProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11 GetNominalVariation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Is2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Is3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 GetOutputVariableValue, AddOutputVariable, EditOutputVariable, DeleteOutputVariable . . . . . . . . . . . . . . . . . . . . . . . 8-12 ChangeProperty, GetPropertyValue, SetPropertyValue, GetProperties, GetVariableValue, SetVariableValue, GetVariables 8-13
Contents-6

Introduction to Scripting in Maxwell

CreateReport, RemoveReport, GetReportNames . . . . . . 8-13 AddDataset, EditDataset, DeleteDataset . . . . . . . . . . . . . 8-13

10. Output Variable Script Commands


General Output Variable Script Commands . . . . . . . . . . . 9-2
CreateOutputVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2 EditOutputVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 DeleteOutputVariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 DoesOutputVariableExist . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 GetOutputVariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 GetOutputVariableValue . . . . . . . . . . . . . . . . . . . . . . . . . 9-4

11. 3D Modeler Editor Script Commands


Conventions Used in the 3D Modeler Chapter . . . . . . . . 10-2 Draw Menu Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3
CreateBondwire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-3 CreateBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-4 CreateCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-5 CreateCone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6 CreateCutplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-6 CreateCylinder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 CreateEllipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-7 CreateHelix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8 CreatePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-8 CreateUserDefinedPart . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 CreatePolyline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-9 CreateRectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-10 CreateRegularPolyhedron . . . . . . . . . . . . . . . . . . . . . . . 10-11 CreateRegularPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12 CreateSphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-12 CreateSpiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13 CreateTorus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-13 EditPolyline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-14 InsertPolylineSegment . . . . . . . . . . . . . . . . . . . . . . . . . . 10-14
Contents-7

Introduction to Scripting in Maxwell

PurgeHistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-15 DeletePolylinePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-16 SweepAlongPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-16 SweepAlongVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17 SweepAroundAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-17

Edit Menu Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19


Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19 DuplicateAlongLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-19 DuplicateAroundAxis . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-20 DuplicateMirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-20 Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-21 Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-21 OffsetFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-21 Paste (Modeler) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22 Rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22 Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-22

Modeler Menu Commands . . . . . . . . . . . . . . . . . . . . . . . 10-24


AssignMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-25 Chamfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-25 Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-25 CoverLines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-26 CoverSurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-26 CreateEntityList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-26 CreateFaceCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-27 CreateObjectFromEdges . . . . . . . . . . . . . . . . . . . . . . . . 10-28 CreateObjectFromFaces . . . . . . . . . . . . . . . . . . . . . . . . 10-29 CreateRelativeCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-30 DeleteLastOperation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-30 DetachFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-30 EditEntityList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-31 EditFaceCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-31 EditRelativeCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-32 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-32
Contents-8

Introduction to Scripting in Maxwell

Fillet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-33 GenerateHistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-33 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-33 ImportDXF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-34 Intersect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-37 MoveFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-37 Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-38 SeparateBody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-39 SetModelUnits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-39 SetWCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-39 ShowWindow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-39 Split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-40 Subtract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-40 UncoverFaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-41 Unite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-42

Other oEditor Commands . . . . . . . . . . . . . . . . . . . . . . . . 10-43


Delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-43 GetModelBoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . 10-43 GetEdgeByPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-43 GetFaceByPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-44 GetUserPosition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-45 GetObjectName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-45 GetObjectNameByFaceID . . . . . . . . . . . . . . . . . . . . . . . 10-45 GetMatchedObjectName . . . . . . . . . . . . . . . . . . . . . . . . 10-46 GetNumObjects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-46 GetSelections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-46 PageSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-47 RenamePart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-47 GetModelBoundingBox . . . . . . . . . . . . . . . . . . . . . . . . . 10-47

12. Reporter Editor Script Commands


General Reporter Editor Script Commands . . . . . . . . . . 11-2
AddCartesianXMarker . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 AddDeltaMarker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-3
Contents-9

Introduction to Scripting in Maxwell

AddMarker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4 AddNote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-4 AddTraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-5 ClearAllMarkers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-6 CopyTracesData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 CopyReportData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 CopyReportDefinitions . . . . . . . . . . . . . . . . . . . . . . . . . . 11-7 CopyTraceDefinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 CreateReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-8 CreateReportFromTemplate . . . . . . . . . . . . . . . . . . . . . 11-10 DeleteTraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-11 ExportToFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-11 GetAllReportNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 GetDisplayType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 ImportIntoReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-13 PasteReports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-13 PasteTraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-13 DeleteAllReports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 DeleteReports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 RenameReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 RenameTrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-14 UpdateTraces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15 UpdateTracesContextAndSweeps . . . . . . . . . . . . . . . . . 11-16

13. Boundary and Excitation Module Script Commands


Conventions Used in this Chapter . . . . . . . . . . . . . . . . . . 12-2 General Commands Recognized by the Boundary/Excitation Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3
DeleteBoundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 DeleteAllBoundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 DeleteAllExcitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 GetBoundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4 GetBoundariesOfType . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4
Contents-10

Introduction to Scripting in Maxwell

GetBoundaryAssignment . . . . . . . . . . . . . . . . . . . . . . . . 12-4 GetNumBoundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 GetNumBoundariesOfType . . . . . . . . . . . . . . . . . . . . . . 12-5 GetExcitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 GetExcitationsOfType . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 GetNumExcitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6 GetNumExcitationsOfType . . . . . . . . . . . . . . . . . . . . . . . 12-6 RenameBoundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-6 ReassignBoundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7 ReprioritizeBoundaries . . . . . . . . . . . . . . . . . . . . . . . . . . 12-7

Script Commands for Creating and Modifying Boundaries 12-8


AssignZeroTangentialHField . . . . . . . . . . . . . . . . . . . . . 12-8 EditZeroTangentialHField . . . . . . . . . . . . . . . . . . . . . . . 12-9 AssignSymmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 EditSymmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 AssignInsulating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-9 EditInsulating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 AssignMaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 EditMaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 AssignSlave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-10 EditSlave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 AssignRadiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 EditRadiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-11 AssignImpedance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 EditImpedance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 AssignTangentialHField . . . . . . . . . . . . . . . . . . . . . . . . . 12-12 EditTangentialHField . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-13 AssignCylindricalHField . . . . . . . . . . . . . . . . . . . . . . . . . 12-13 EditCylindricalHField . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-14

Script Commands for Creating and Modifying Excitations 12-15


AssignVoltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-15 AssignVoltageGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-16 EditVoltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-16
Contents-11

Introduction to Scripting in Maxwell

AssignVoltageDrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-16 AssignVoltageDropGroup . . . . . . . . . . . . . . . . . . . . . . . 12-17 EditVoltageDrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-17 AssignCurrentDensity . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-17 AssignCurrentDensityGroup . . . . . . . . . . . . . . . . . . . . . 12-18 EditCurrentDensity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-18 AssignCurrentDensityTerminal . . . . . . . . . . . . . . . . . . . 12-18 AssignCurrentDensityTerminalGroup . . . . . . . . . . . . . . 12-19 EditCurrentDensityTerminal . . . . . . . . . . . . . . . . . . . . . . 12-19 AssignCurrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-19 AssignCurrentGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-19 EditCurrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-19 AssignFloating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 EditFloating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 AssignCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-20 EditCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-21 AssignVolumeChargeDensity . . . . . . . . . . . . . . . . . . . . 12-21 EditVolumeChargeDensity . . . . . . . . . . . . . . . . . . . . . . . 12-21 AssignCoilTerminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-21 AssignCoilTerminalGroup . . . . . . . . . . . . . . . . . . . . . . . 12-22 EditCoilTerminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-22 AssignSink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-22 EditSink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-23

Other BoundarySetup Module Script Commands . . . . . . 12-24


AssignWindingGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-24 EditWindingGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-25 AddTerminalsToWinding . . . . . . . . . . . . . . . . . . . . . . . . 12-25 EditExternalCircuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-25 SetCoreLoss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-26 SetEddyEffect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-26 SetMinimumTimeStep . . . . . . . . . . . . . . . . . . . . . . . . . . 12-27

14. Mesh Operations Module Script Commands


Conventions Used in the Mesh Operations Chapter . . . 13-2
Contents-12

Introduction to Scripting in Maxwell

General Commands Recognized by the Mesh Operations Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3


DeleteOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 GetOperationNames . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 RenameOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3

Script Commands for Creating and Modifying Mesh Operations 13-5


AssignLengthOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-5 AssignSkinDepthOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-6 AssignTrueSurfOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-7 AssignModelResolutionOp . . . . . . . . . . . . . . . . . . . . . . . 13-7 EditLengthOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 EditSkinDepthOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 EditTrueSurfOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 EditModelResolutionOp . . . . . . . . . . . . . . . . . . . . . . . . . 13-9

15. Analysis Module Script Commands


Analysis Setup Script Commands . . . . . . . . . . . . . . . . . . 14-2
InsertSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 EditSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-8 RenameSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 DeleteSetups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 ExportCircuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-9 ExportSolnData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11 RevertSetupToInitial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-11 RevertAllToInitial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 ResetSetupToTimeZero . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 ResetAllToTimeZero . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 GetSetups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 GetSetupNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-13 Analyze (Project Menu) . . . . . . . . . . . . . . . . . . . . . . . . . 14-13 CopySetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-13 PasteSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-14

Contents-13

Introduction to Scripting in Maxwell

16. Optimetrics Module Script Commands


Conventions Used in the Optimetrics Module Chapter . . 15-2 General Commands Recognized by the Optimetrics Module 15-5
DeleteSetups (Optimetrics) . . . . . . . . . . . . . . . . . . . . . . 15-5 DistributedAnalyzeSetup . . . . . . . . . . . . . . . . . . . . . . . . 15-5 GetSetupNames (Optimetrics) . . . . . . . . . . . . . . . . . . . . 15-5 GetSetupNamesByType (Optimetrics) . . . . . . . . . . . . . 15-6 RenameSetup (Optimetrics) . . . . . . . . . . . . . . . . . . . . . . 15-6 SolveSetup (Optimetrics) . . . . . . . . . . . . . . . . . . . . . . . . 15-6

Parametric Script Commands . . . . . . . . . . . . . . . . . . . . . 15-7


InsertSetup (Parametric) . . . . . . . . . . . . . . . . . . . . . . . . 15-7 EditSetup (Parametric) . . . . . . . . . . . . . . . . . . . . . . . . . . 15-9

Optimization Script Commands . . . . . . . . . . . . . . . . . . . . 15-10


InsertSetup (Optimization) . . . . . . . . . . . . . . . . . . . . . . . 15-10 EditSetup (Optimization) . . . . . . . . . . . . . . . . . . . . . . . . 15-12

Sensitivity Script Commands . . . . . . . . . . . . . . . . . . . . . . 15-13


InsertSetup (Sensitivity) . . . . . . . . . . . . . . . . . . . . . . . . . 15-13 EditSetup (Sensitivity) . . . . . . . . . . . . . . . . . . . . . . . . . . 15-14

Statistical Script Commands . . . . . . . . . . . . . . . . . . . . . . 15-15


InsertSetup (Statistical) . . . . . . . . . . . . . . . . . . . . . . . . . 15-15 EditSetup (Statistical) . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-17

17. Solutions Module Script Commands


DeleteSolutionVariation . . . . . . . . . . . . . . . . . . . . . . . . . 16-2

18. Field Overlays Module Script Commands


General Parameter Setup Script Commands . . . . . . . . . 17-2
CreateFieldPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 DeleteFieldPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-6 GetFieldPlotNames . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-6 ModifyFieldPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-6 RenameFieldPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-7 RenamePlotFolder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-7
Contents-14

Introduction to Scripting in Maxwell

SetFieldPlotSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-8 SetPlotFolderSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-8

19. Fields Calculator Script Commands


Field Calculator Script Commands . . . . . . . . . . . . . . . . . 18-2
AddNamedExpression . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 AddNamedExpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 CalcOp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 CalcRead(deprecated) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 CalcStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 CalculatorRead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4 CalculatorWrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 CalcWrite(deprecated) . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 ChangeGeomSettings . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 ClcEval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 ClcMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 ClearAllNamedExpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 CopyNamedExprToStack . . . . . . . . . . . . . . . . . . . . . . . . 18-7 DeleteNamedExpr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 EnterComplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 EnterComplexVector . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 EnterLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 EnterPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-8 EnterQty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 EnterScalar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 EnterScalarFunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 EnterSurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 EnterVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 EnterVectorFunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 EnterVol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 ExportOnGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-11 ExportToFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-12 GetTopEntryValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-12 LoadNamedExpressions . . . . . . . . . . . . . . . . . . . . . . . . 18-13
Contents-15

Introduction to Scripting in Maxwell

SaveNamedExpressions . . . . . . . . . . . . . . . . . . . . . . . . 18-13

20. Motion Setup Script Commands


Conventions Used in the Motion Setup Chapter . . . . . . . 18-2 General Motion Setup Script Commands . . . . . . . . . . . . 18-3
DeleteMotionSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 ReassignMoving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3

Commands to Create and Edit the Band . . . . . . . . . . . . 18-3


AssignBand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 EditMotionSetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5

Other Commands Recognized By the ModelSetup Module 185


SetSymmetryMultiplier . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5

21. Parameter Setup Script Commands


Conventions Used in the Parameter Chapter . . . . . . . . . 18-2 General Parameter Setup Script Commands . . . . . . . . . 18-3
DeleteParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 DeleteAllParameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 RenameParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-3 ReassignParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-4

Commands to Create and Edit Parameters . . . . . . . . . . 18-5


AssignForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 EditForce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-5 AssignTorque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 EditTorque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 AssignMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 EditMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-7

22. Example Scripts


Variable Helix Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 Maxwell Data Export Script . . . . . . . . . . . . . . . . . . . . . . . 20-6

Contents-16

Introduction to VBScript

Maxwell uses the Microsoft Visual Basic Scripting Edition (VBScript) scripting language to record macros. VBScript is based on the Microsoft Visual Basic programming language. Using scripts is a fast, effective way to accomplish tasks you want to repeat. You can write a script using any text editor, or you can record a script from within the Maxwell interface. After recording the script from within Maxwell, you can then modify it using a text editor. Although Maxwell records scripts in VBScript format, it can also execute scripts in JavaScriptTM format. If you are running a script from a command prompt, the script can be written in any language that provides the Microsoft COM methods. The Maxwell scripting documentation refers to VBScript format only. This chapter provides an overview of key VBScript components. For more details about VBScript, please see the Recommended VBScript References section at the end of this chapter. Related Topics: Sample Maxwell Script VBScript Variables VBScript Operators Controlling Program Execution Looping Through Code VBScript Procedures Converting Between Data Types Interacting with a Script
Introduction to VBScript 1-1

Introduction to Scripting in Maxwell

Recommended VBScript References

1-2 Introduction to VBScript

Introduction to Scripting in Maxwell

Sample Maxwell Script


Following is an example of a Maxwell script. It includes comment lines, which are preceded by either an apostrophe ( ) or the word REM, that offer explanations for each preceding line or lines. VBScript keywords appear in bold font. Dim Dim Dim Dim Dim Dim REM REM REM REM REM oAnsoftApp oDesktop oProject oDesign oEditor oModule Dim is used to declare variables and means dimension. In VBScript you can use Dim, Public, or Private to declare variables. As VBScript has no built-in data types (like integer, string, etc.), all variables are treated as variants, which can store any type of information. In this example, the three variables will be used as objects. When recording scripts in Maxwell, variants that will be used as objects always begin with o.

Set oAnsoftApp = CreateObject("AnsoftMaxwell.MaxwellScriptInterface") You can use Set to assign an object reference to a variable. A copy of the object is not created for that variable. Here CreateObject is a function that takes a string as input and returns an object. The object is assigned to the variable oAnsoftApp. Set oDesktop = oAnsoftApp.GetAppDesktop() GetAppDesktop is a function of oAnsoftApp. This function does not take an input and it returns an object. The object is assigned to the variable oDesktop. oDesktop.NewProject In VBScript, a Sub procedure is a procedure that is called by name, can receive arguments, and can perform a specific task with a group of statements. Here the Sub procedure NewProject of the object oDesktop is called. This Sub does not take an input. Set oProject = oDesktop.GetActiveProject oProject.InsertDesign "Maxwell", "Maxwell Model1", "", "" In a Sub or Function procedure call, you can group the input parameters inside parentheses or without parentheses. Here the four strings are the input parameters of the Sub procedure InsertDesign of the object oProject.
Introduction to VBScript 1-3

Introduction to Scripting in Maxwell

Set oDesign = oProject.SetActiveDesign("Maxwell Model1") Set oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.CreateBox Array("NAME:BoxParameters", "XPosition:=", _ "0mm", "YPosition:=", "0mm", "ZPosition:=", "0mm", _ "XSize:=", "1.6mm", "YSize:=", "1.2mm", "ZSize:=", _ "0.8mm"), Array("NAME:Attributes", "Name:=", "Box1", "Flags:=",_ "", "Color:=", "(132 132 193)", "Transparency:=", _ 0.400000005960464, "PartCoordinateSystem:=", _ "Global", "MaterialName:=", "vacuum", "SolveInside:=", true) oEditor.CreateBox is a Sub procedure that takes two array variables as input. The first array is for the boxs geometric parameters, and the second array is for the boxs attributes. You can modify the italicized entries to create a different box. In VBScript, Array is a function that returns a variant containing an array. The underscore character ( _ ) here indicates that the statement continues to the next line. The underscore character must be placed outside of string constants, or else VBScript recognizes the character as part of the string constant rather than an indication that the string continues on the next line. Following is an example of proper use of the underscore character: Msgbox(Please include units when creating variables "& _ "that require dimensions." Following is an example of improper use of the underscore character: Msgbox("Please include units when creating variables _ that require dimensions." For additional Maxwell script examples, see Example Scripts.

1-4 Introduction to VBScript

Introduction to Scripting in Maxwell

VBScript Variables
A VBScript variable is a placeholder representing information that may change while your script is running. Variables are useful because they let you assign a short and easy to remember name to each piece of data you plan to use. Use a variable name in a script to view or modify its value. Declaring Variables Variable Naming conventions Scope and Lifetime of Variables Array Variables

Declaring Variables
To declare variables explicitly in a script, use the Dim, Public, or Private statements. For example: Dim box_xsize After declaring a variable, you can assign information to it. For example: box_xsize = "3mm" You can declare multiple variables by separating each variable name with a comma. For example: Dim Top, Bottom, Left, Right You can also declare a variable implicitly by simply using its name in your script. Doing so is not generally a good practice because you could misspell the variable name in one or more places, causing unexpected results when your script is run. For that reason, the Option Explicit statement is available to require explicit declaration of all variables. The Option Explicit statement should be the first statement in your script.

Introduction to VBScript 1-5

Introduction to Scripting in Maxwell

Variable Naming Conventions


You should use names that are short but intuitive and easy to remember. Use the following conventions for naming variables in VBScript:

Begin with an alphabetic character. Cannot contain an embedded period. Must not exceed 255 characters. Must be unique in the scope in which it is declared. Do not use VBScript keywords.

Scope and Lifetime of Variables


Variables at the script level are available to all procedures within the script. At the procedure level, variables are available only within the procedure. It has local scope and is a procedurelevel variable. The lifetime of a variable depends on how long it exists. The script-level variables exist from declaration until the end of the script. A procedure-level variable exists only as long as you are in the procedure and is destroyed when the procedure exits.

Array Variables
Create an array variable when you want to assign more than one related value to a single variable. An array variable contains a series of values. For example: Dim Primitives(2) All arrays in VBScript are zero-based, so the array above actually contains 3 elements. You assign data to each of the arrays elements using an index into the array. Data can be assigned to the elements of an array as follows: Primitives(0) = "Box1" Primitives(1) = "Cone1" Primitives(2) = "Cylinder1" Similarly, the data can be retrieved from any element using an index into a particular array element. For example: one_prim = Primitives(1) You can also use the Array function to assign an array of elements to a variable. For example: Dim Primitives Primitives = Array ("Box1", "cone1", "Cylinder1") Note When using the Array function, do not use parentheses on the variable when it is declared. For example, use Dim myarray, not Dim myarray().

1-6 Introduction to VBScript

Introduction to Scripting in Maxwell

If you do not know the size of the array at declaration or the size changes during the time your script is running, you can use dynamic arrays. They are declared without size or number of dimensions inside the parentheses. For example: Dim FirstArray() ReDim SecondArray() To use a dynamic array, you must subsequently use ReDim to determine the number of dimensions and the size of each dimension. You can also use the Preserve keyword to preserve the contents of the array as the resizing takes place. ReDim FirstArray(25) ReDim Preserve FirstArray(30)

Introduction to VBScript 1-7

Introduction to Scripting in Maxwell

VBScript Operators
VBScript provides operators, which are grouped into three categories: arithmetic operators, comparison operators, and logical operators. Please see the online VBScript Users Guide for more details. Related Topics: Operator Precedence

Operator Precedence
When several operations occur in an expression, each part is evaluated and resolved in a predetermined order, called operator precedence. You can use parentheses to override the order of precedence and force some parts of an expression to be evaluated before others. Operations within parentheses are always performed before those outside the parentheses. Within parentheses, however, standard operator precedence is maintained. When expressions contain operators from more than one category, arithmetic operators are evaluated first, comparison operators are evaluated next, and logical operators are evaluated last. Comparison operators all have equal precedence, that is, they are evaluated in the left-toright order in which they appear. Arithmetic and logical operators are evaluated in the following order of precedence:

Arithmetic Operators
Following is a list of VBScripts arithmetic operators. Symbol ^ * / \ Mod + & Description Exponentiation Unary negation Multiplication Division Integer division Modulus arithmetic Addition Subtraction String concatenation

1-8 Introduction to VBScript

Introduction to Scripting in Maxwell

Comparison Operators
Following is a list of VBScripts comparison operators: Symbol = <> < > <= >= Is Description Equality Inequality Less than Greater than Less than or equal to Greater than or equal to Object equivalence

Logical Operators
Following is a list of VBScripts logical operators: Symbol Not And Or Xor Eqv Imp Description Logical negation Logical conjunction Logical disjunction Logical exclusion Logical equivalence Logical implication

Introduction to VBScript 1-9

Introduction to Scripting in Maxwell

Controlling Program Execution


You can use conditional statements to control the flow of a script. There are two types of conditional statements in VBScript: If...Then...Else Select Case

Using If...Then...Else
Following is an example that demonstrates the If...Then...Else conditional statement: If obj = "Box1" Then <statements to execute> ElseIf obj = "Cylinder1" Then <statements to execute> Else <statements to execute> End If

Using Select Case


Following is an example that demonstrates the Select Case conditional statement: Select Case primitive_name Case "Box1" <statements to execute> Case "Cylinder1" <statements to execute> Case Else <statements to execute> End Select

1-10 Introduction to VBScript

Introduction to Scripting in Maxwell

Looping Through Code


Looping allows you to run a group of statements repeatedly. There are two types of loops: For...Next: Uses a counter to run statements a specified number of times. Do...Loop: Loops while or until a condition is True.

Using a For...Next Loop


The For...Next type of loop allows you to run a group of statements repeatedly. It uses a counter to run statements a specified number of times. Following is an example that demonstrates the For...Next loop: For variable = start To end <statements to execute> Next

Using a Do Loop
You can use Do...Loop statements to run a block of statements until (or while) a condition is true. Repeating Statements While a Condition is True Use the While keyword to check a condition in a Do...Loop statement. The syntax is as follows: Do While condition <statements to execute> Loop Repeating a Statement Until a Condition Becomes True Following is the syntax: Do Until condition <statements to execute> Loop You can exit early from a loop by using the Exit For statement.

Introduction to VBScript 1-11

Introduction to Scripting in Maxwell

VBScript Procedures
In VBScript, there are two kinds of procedures, Sub and Function. These procedures are called by name, they can receive arguments, and each performs a specific task with a group of VBScript statements. If there is no argument, then the Sub or Function statement must include an empty set of parentheses.

Function Procedures
A Function returns a value by assigning a value to its name in one or more statements. Following is the syntax of a Function: Function FunctionName([arguments]) <Function statements> End Function

Sub Procedures
A Sub procedure is like a function procedure, except that it does not return a value through its name. Following is the syntax of a Sub: Sub ProcedureName([arguments]) <Procedure statements> End Sub

Converting Between Data Types


To convert data from one subtype to another, use the following VBScript functions: CStr Syntax: CStr(variablename). Converts variablename to a string. For example, it can be used to convert the number 2.5 to the string "2.5". Syntax: CBool(variablename). Converts variablename to a boolean. If variablename is 0 or "0", CBool returns False. Otherwise it returns True. Syntax: CDbl(variablename). Converts variablename to a double precision number. For example, it can be used to convert the string "2.5" to the number 2.5. Syntax: CInt(variablename). Converts variablename to an integer.

CBool

CDbl

CInt

1-12 Introduction to VBScript

Introduction to Scripting in Maxwell

Interacting with a Script


VBScript provides two functions that enable you to interact with a script while it is running: the InputBox function and the MsgBox function. The InputBox function displays a dialog box with an input field. The value that is typed into the input field is returned. For example: Dim users_string users_string = InputBox ("text prompt", "title of the pop-up dialog _ box", "default text for the input box") The last two arguments to the function are optional. The MsgBox function shows a message and returns a number based on the button the user presses. For example: MsgBox ("message text")

Recommended VBScript References


Microsoft Corporation. VBScript Users Guide. Available http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/ vbstutor.asp. Childs, M., Lomax, P., and Petrusha, R. VBScript in a Nutshell: A Desktop Quick Reference. May 2002. OReilly & Associates. ISBN: 1-56592-720-6.

Introduction to VBScript 1-13

Introduction to Scripting in Maxwell

1-14 Introduction to VBScript

Maxwell and VBScript

This chapter provides an overview of Maxwell scripting using VBScript. Information is included on the following topics: Maxwell script variables. Recording, running, pausing, resuming, and stopping a script from running or recording. Modifying a script for easier playback. Maxwell scripting conventions, including script command syntax used in this guide, named arguments, and setting numerical values. Executing a script from within a script. Modifying properties.

Maxwell and VBScript 2-1

Introduction to Scripting in Maxwell

Overview of Maxwell Script Variables


When you record a script, the beginning of the script looks like the following: Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule Set oAnsoftApp = CreateObject("AnsoftMaxwell.MaxwellScriptInterface") Set oDesktop = oAnsoftApp.GetAppDesktop() Set oProject = oDesktop.SetActiveProject("") Set oDesign = oProject.SetActiveDesign("") Set oModule = oDesign.GetModule("Solutions") The lines above define the variables used by Maxwell in the script and assign values to the variables. The variables are used in the following hierarchy: oAnsoftApp

oDesktop

oProject

oDesign

oEditor

oModule

Class hierarchy of variables.

2-2 Maxwell and VBScript

Introduction to Scripting in Maxwell

oAnsoftApp
The oAnsoftApp object provides a handle for VBScript to access Maxwell.

oDesktop
The oDesktop object is used to perform desktop-level operations, including project management. See Chapter 4, Desktop Object Script Commands, for details about script commands recognized by the oDesktop object.

oProject
The oProject object corresponds to one project open in the product. It is used to manipulate the project and its data. Its data includes variables, material definitions and one or more designs. See the following chapters for details about the script commands recognized by the oProject object:

Chapter Chapter Chapter Chapter

5, 6, 7, 8,

Project Object Script Commands Material Script Commands Property Script Commands Dataset Script Commands

oDesign
The oDesign object corresponds to an instance of a design in the project. This object is used to manipulate the design and its data. Its data includes variables, modules, and editors. See the following chapters for details about the script commands recognized by the oDesign object:

Chapter 9, Design Object Script Commands Chapter 10, Output Variable Script Commands Chapter 12, Reporter Editor Script Commands

Maxwell and VBScript 2-3

Introduction to Scripting in Maxwell

oEditor
The oEditor object corresponds to an editor, such as the 3D Modeler. This object is used to add and modify data in the editor. The Maxwell product scripting supports the following editors: Editor 3D Modeler Editor Reporter Editor "3D Modeler" There is no Reporter editor object in the script. Instead, Reporter editor commands are executed by the Maxwell design object oDesign. Name in Script

See Chapter 11, 3D Modeler Editor Script Commands, for details about the script commands recognized by the oEditor object and Chapter 12, Reporter Editor Script Commands for details about Reporter editor commands.

oModule
The oModule object corresponds to a module in the design. Modules are used to handle a set of related functionality. The Maxwell product scripting supports the following modules: Module Boundary Module Corresponds to the Boundary and Excitation commands. Mesh Operations Module Corresponds to the Mesh Operations folder in the project tree. Name in Script "BoundarySetup" Chapter Chapter 13, Boundary and Excitation Module Script Commands Chapter 14, Mesh Operations Module Script Commands

"MeshSetup"

Analysis Module "AnalysisSetup" Corresponds to the Analysis folder in the project tree. Optimetrics Module Corresponds to the Optimetrics folder in the project tree. "Optimetrics"

Chapter 15, Analysis Module Script Commands Chapter 16, Optimetrics Script Commands

2-4 Maxwell and VBScript

Introduction to Scripting in Maxwell

Solutions Module Corresponds to the operations in the Solution Data dialog box, which is accessed by clicking Maxwell>Results> Solution Data.

"Solutions"

Chapter 17, Solutions Module Script Commands

Field Overlays Module "FieldsReporter" Corresponds to the Field Overlays folder in the project tree. Model Module "ModelSetup" Corresponds to the Model folder in the project tree. Parameter Module Corresponds to the Parameters folder in the project tree.

Chapter 18, Field Overlays Module Script Commands Chapter 19, Motion Setup Script Commands

"MaxwellParameterS Chapter 20, Parameter Setup etup" Script Commands

Recording a Script
Script commands can be found on the Tools menu in the Maxwell interface. Once you start to record a script, your subsequent actions are added to the script. Each interface command has one or more associated script commands that are recorded to the script. The script is recorded to a text file in .vbs (VBScript) file format. To record a script:

1 Click Tools>Record Script. 2 3 4 5


The Save As dialog box appears. Use the file browser to locate the folder in which you want to save the script, such as C:\Ansoft\Maxwell12\Scripts, and then double-click the folders name. Type the name of the script in the File name text box, and then click Save. The script is saved in the folder you selected by the file name filename.vbs. Perform the steps that you want to record. When you have finished recording the script, click Stop Script Recording on the Tools menu.

Stopping Script Recording


Script commands can be found on the Tools menu in the Maxwell interface. To stop recording a script:

On the Tools menu, click Stop Script Recording. Maxwell stops recording to the script.

Maxwell and VBScript 2-5

Introduction to Scripting in Maxwell

Running a Script
Script commands can be found on the Tools menu in the Maxwell interface. To run a script:

1 Click Tools>Run Script.


The Open dialog box appears.

2 Use the file browser to locate the folder in which you saved the script, and then double-click 3
the folders name. Type the name of the script in the File name text box, or click its name, and then click Open. Maxwell executes the script.

To supply script arguments when running from Tools>Run Script, use the edit field at the bottom of the file selection dialog. You can access the script arguments using the AnsoftScriptHost.arguments collection from vbscript. This is a standard COM collection. To run a script from a command line (as described in the Online Help):

1 Type one of the following command line options at the command line:
-runscriptandexit or -runscript

2 Press Enter.
You can also pass the -scriptargs parameter to the script and specify arguments. Note If you run the script from DOS prompt as a .vbs file (that is, you do not launch Maxwell or ePhysics, but simply launch vbs directly, or use wscript.exe or cscript.exe), the arguments will be in the WSH.arguments collection, not the AnsoftScriptHost.arguments collection. To handle this, write the following: on error resume next dim args Set args = AnsoftScript.arguments if(IsEmpty(args)) then Set args = WSH.arguments End if on error goto 0 'At this point, args has the arguments no matter if you are running 'under windows script host or Ansoft script host msgbox "Count is " & args.Count for i = 0 to args.Count - 1 msgbox args(i) next
2-6 Maxwell and VBScript

Introduction to Scripting in Maxwell

Pausing and Resuming a Script


Script commands can be found on the Tools menu in the Maxwell interface. To pause a script during its execution:

Click Tools>Pause Script. Click Tools>Resume Script.

To resume a script after pausing it:

Stopping a Script
Script commands can be found on the Tools menu in the Maxwell interface. To stop a script.

Click Tools>Stop Script. Maxwell stops executing the script that has been paused.

Maxwell Scripting Conventions


This scripting guide uses the following conventions:

Syntax conventions Script command conventions Named arguments Setting numerical values

Syntax Conventions
The following data types will be used throughout this scripting guide: <string> <bool> A quoted string. A boolean value. Should be set to either true or false (no quotes). Example: "SolveInside:=", true

Maxwell and VBScript 2-7

Introduction to Scripting in Maxwell

<double> <int> <value>

A double precision value. Example: 1.2 An integer. Example: 1 Can be a number, a VBScript variable, or a quoted string containing a valid Maxwell expression. Examples: -"XSize:=", 1 -"XSize:=", "3mm" -"XSize:=", VBScript_Var -"XSize:=", "Maxwell_Var + 10mm"

Script Command Conventions


The majority of this guide lists individual script commands. The following conventions are used to describe them:

Script Command Name


Use: Command: Syntax: Describes the function of the script command. Lists the interface command that corresponds to the script command. Menu commands are separated by carats. Demonstrates the correct syntax for the command. Carat brackets < > enclose information or arguments that you must enter. Describes the return value, if any. Describes the arguments or information in the syntax description, if an explanation is needed. Provides a working example of the script command, if needed.

Return Value: Parameters: Example:

Named Arguments
Many Maxwell script commands use named arguments. The names can appear in three ways: 1. Named data, name precedes data. For example: ...,"SolveInside:=", true, ... 2. Named Array, name precedes array. For example: ...,"Attributes:=", Array(...),.. 3. Named Array, name inside array. For example: ..., Array("NAME:Attributes",..),..

2-8 Maxwell and VBScript

Introduction to Scripting in Maxwell

In the first and second examples, the name is formatted as <Name>:=. This signals Maxwell that this is a name for the next argument in the script command. In the third example, the name is formatted as NAME:<name> and is the first element of the Array. The names are used both to identify what the data means to you and to inform Maxwell which data is being given. The names must be included or the script will not play back correctly. However, if you are writing a script, you do not need to pass in every piece of data that the command can take. For example, if you are modifying a boundary, the script will be recorded to include every piece of data needed for the boundary, whether or not it was modified. If you are writing a script by hand, you can just add the data that changed and omit anything that you do not want to change. Maxwell will use the names to determine which data you provided.

Maxwell and VBScript 2-9

Introduction to Scripting in Maxwell

For example, when editing an impedance boundary, Maxwell records the edit impedance boundary command as follows: oModule.EditImpedance "Imped1", Array("NAME:Imped1", "Resistance:=",_ "100", "Reactance:=", "50", "InfGroundPlane:=", false) If you only want to change the resistance, then you can leave out the other data arguments when you are manually writing a script: oModule.EditImpedance "Imped1", Array("NAME:Imped1", "Resistance:=",_ "100")

Setting Numerical Values


For script arguments that expect a number, the following options are possible:

Pass in the number directly. For example: oModule.EditVoltage "Voltage1", Array("NAME:Voltage1", "Voltage:=",_ 3.5) Pass in a string containing the number with units. For example: oModule.EditVoltage "Voltage1", Array("NAME:Voltage1", "Voltage:=",_ "3.5V" ) Pass in an Maxwell defined variable name. For example: oModule.EditVoltage "Voltage1", Array("NAME:Voltage1", "Voltage:=",_ "$var1" ) Pass in a VBScript variable. For example: vb_var = "3.5V" oModule.EditVoltage "Voltage1", Array("NAME:Voltage1", "Voltage:=",_ vb_var)

2-10 Maxwell and VBScript

Introduction to Scripting in Maxwell

Executing a Script from Within a Script


Maxwell provides a script command that enables you to launch another script from within the script that is being executed: oDesktop.RunScript <ScriptName> If the full path to the script is not specified, Maxwell searches for the specified script in the following locations, in this order:

Personal library directory. This is the PersonalLib subdirectory in the project directory. The project directory can be specified in the General Options dialog box (click Tools>Options>General Options to open this dialog box) under the Project Options tab. User library directory. This is the userlib subdirectory in the library directory. The library directory can be specified in the General Options dialog box (click Tools>Options>General Options to open this dialog box) under the Project Options tab. System library directory. This is the syslib subdirectory in the library directory. The library directory can be specified in the General Options dialog box (click Tools>Options>General Options to open this dialog box) under the Project Options tab. Maxwell installation directory.

Editing Properties
Any data that is shown in the dockable Properties dialog box or in the modal Properties pop-up window is called a property. For example, project and local variables are properties. The XSize of a box in the Geometry editor is also a property. See Chapter 7, Property Script Commands, for an explanation of how to manipulate properties in a script.

Maxwell and VBScript 2-11

Introduction to Scripting in Maxwell

2-12 Maxwell and VBScript

Ansoft Application Object Script Commands

The Application object commands permit you to set parameters for RAM and processor use. Application object commands should be executed by the oAnsoftApp object. oAnsoftApp.<CommandName> <args>

Ansoft Application Object Script Commands 3-1

Introduction to Scripting in Maxwell

General Application Script Commands


Following are general script commands recognized by the oAnsoftApp object: GetAppDesktop SetDesiredRamMBLimit SetMaximumRamMBLimit SetNumberOfProcessors GetDesiredRamMBLimit GetMaximumRamMBLimit GetNumberOfProcessors

GetAppDesktop
Use: GetAppDesktop is a function of oAnsoftApp. This function does not take an input and it returns an object. The object is assigned to the variable oDesktop. GetAppDesktop() Object. None Set oDesktop = oAnsoftApp.GetAppDesktop()

Syntax: Return Value: Parameters: Example:

SetDesiredRamMBLimit
Use: Syntax: Return Value: Parameters: Sets the Desired RAM Limit (MB) value. SetDesiredRamMBLimit <DesiredRAMLimit>, <ProductName> None <DesiredRAMLimit> Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D. If no ProductName is supplied, the setting is applied to both 2D and 3D.

Note This function is not supported for RMxprt. Example: oAnsoftApp.SetDesiredRamMBLimit 2000, "Maxwell 3D"

SetMaximumRamMBLimit
Use: Syntax: Sets the Maximum RAM Limit (MB) value. SetMaximumRamMBLimit <MaximumRAMLimit>, <ProductName>

3-2 Ansoft Application Object Script Commands

Introduction to Scripting in Maxwell

Return Value: Parameters:

None <MaximumRAMLimit> Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D. If no ProductName is supplied, the setting is applied to both 2D and 3D.

Note This function is not supported for RMxprt. Example: oAnsoftApp.SetMaximumRamMBLimit 2000, "Maxwell 2D"

SetNumberOfProcessors
Use: Syntax: Return Value: Parameters: Sets the Number of Processors value. SetNumberOfProcessors <NumProcessors>, <ProductName> None <NumProcessors> Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D. If no ProductName is supplied, the setting is applied to both 2D and 3D.

Note This function is not supported for RMxprt. Example: oAnsoftApp.SetNumberOfProcessors 2, "Maxwell 3D"

GetDesiredRamMBLimit
Use: Syntax: Return Value: Parameters: Gets the Desired RAM Limit (MB) value. GetDesiredRamMBLimit(<ProductName>) Returns the Desired RAM Limit in megabytes (MB). Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D.

Note This function is not supported for RMxprt.

Ansoft Application Object Script Commands 3-3

Introduction to Scripting in Maxwell

Example:

desired_ram = oAnsoftApp.GetDesiredRamMBLimit("Maxwell 2D")

GetMaximumRamMBLimit
Use: Syntax: Return Value: Parameters: Gets the Maximum RAM Limit (MB) value. GetMaximumRamMBLimit(<ProductName>) Returns the Maximum RAM Limit in megabytes (MB). Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D.

Note This function is not supported for RMxprt. Example: max_ram = oAnsoftApp.GetMaximumRamMBLimit("Maxwell 3D")

GetNumberOfProcessors
Use: Syntax: Return Value: Parameters: Gets the Number of Processors value. GetNumberOfProcessors(<ProductName>) Returns the Number of Processors. Type: <int> <ProductName> Type: <String> Values may be: Maxwell 3D, Maxwell 2D.

Note This function is not supported for RMxprt. Example: numprocessors = oAnsoftApp.GetNumberOfProcessors("Maxwell 2D")

3-4 Ansoft Application Object Script Commands

Desktop Object Script Commands

Desktop commands should be executed by the oDesktop object. Some commands permit you to query objects when you do not know the names. Set oAnsoftApp = CreateObject ("AnsoftMaxwell.MaxwellScriptInterface") Set oDesktop = oAnsoftApp.GetAppDesktop() oDesktop.CommandName <args>

Desktop Object Script Commands 4-1

Introduction to Scripting in Maxwell

General Desktop Script Commands


Following are general script commands recognized by the oDesktop object: CloseAllWindows CloseProject CloseProjectNoForce EnableAutoSave GetActiveProject GetLibraryDirectory GetProjectDirectory GetProjectList GetTempDirectory GetVersion NewProject OpenMultipleProjects OpenProject PauseScript Print QuitApplication RestoreWindow RunProgram RunScript SetActiveProject SetActiveProjectByPath SetLibraryDirectory SetProjectDirectory SetTempDirectory Sleep

CloseAllWindows
Use: Command: Syntax: Return Value: Parameters: Example: Closes all MDI child windows on the desktop. From the main menu, click Window>Close All. CloseAllWindows() None None Desktop.CloseAllWindows()

4-2 Desktop Object Script Commands

Introduction to Scripting in Maxwell

CloseProject
Use: Command: Syntax: Return Value: Parameters: Example: Closes a specified project. Changes to the project are not saved. Save the project using the Project command Save or SaveAs. File>Close CloseProject <ProjectName> None <ProjectName> Type: <string> oDesktop.CloseProject "Project1"

CloseProjectNoForce
Use: Closes a specified project unless there are simulations ongoing. Changes to the project will not be saved. Save the project using the Project command Save or SaveAs before closing to save changes. File>Close CloseProjectNoForce <ProjectName> None <ProjectName> Type: <string> oDesktop.CloseProjectNoForce "Project1"

Command: Syntax: Return Value: Parameters: Example:

EnableAutoSave
Use: Command: Syntax: Return Value: Parameters: Example: Enables or disables the autosave feature. None EnableAutoSave(bool bEnable) None None oDesktop.EnableAutoSave(true), enables autosave

GetActiveProject
Use: Command: Syntax: Return Value: Parameters: Example: Returns the project that is active in the desktop. None GetActiveProject The project that is active in the desktop. None Set oProject = oDesktop.GetActiveProject ()
Desktop Object Script Commands 4-3

Introduction to Scripting in Maxwell

GetLibraryDirectory
Use: Syntax: Return Value: Parameters: Example: Gets the library directory path. GetLibraryDirectory Returns a directory path. Type: <string> None libdir = oDesktop.GetLibraryDirectory

GetProjectDirectory
Use: Syntax: Return Value: Parameters: Example: Gets the project directory path. GetProjectDirectory Returns a directory path. Type: <string> None projdir = oDesktop.GetProjectDirectory

GetProjectList
Use: Command: Syntax: Return Value: Parameters: Example: Returns a list of all projects that are open in the desktop. None GetProjectList An array of strings, which are the names of all open projects in the desktop. None list_of_projects = oDesktop.GetProjectList()

GetTempDirectory
Use: Syntax: Return Value: Parameters: Example: Gets the temp directory path. GetTempDirectory Returns a directory path. Type: <string> None tempdir = oDesktop.GetTempDirectory

GetVersion
Use: Returns a string representing the version.

4-4 Desktop Object Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters: Example:

None GetVersion() string None msgbox(oDesktop.GetVersion()), displays "12.0"

NewProject
Use: Command: Syntax: Return Value: Parameters: Example: Creates a new project. The new project becomes the active project. File>New NewProject The project that is added. None Set oProject = oDesktop.NewProject

OpenMultipleProjects
Use: Command: Syntax: Return Value: Parameters: Opens all files of a specified type in a specified directory. File>Multiple Open OpenMultipleProjects <Directory> <FileType> None <Directory> Type: <string> <FileType> Type: <string> oDesktop.OpenMultipleProjects "D:/Projects", "*.mxwl"

Example:

OpenProject
Use: Command: Syntax: Return Value: Parameters: Example: Opens a specified project. File>Open OpenProject <FileName> The opened project. <FileName>: Full path and name of the project to open. Type: <string> oDesktop.OpenProject "D:/Projects/Project1.mxwl"

Desktop Object Script Commands 4-5

Introduction to Scripting in Maxwell

PauseScript
Use: Pauses the scripts execution and displays a message in a pop-up dialog box to the user. The script execution does not resume until the user clicks Tools>Resume Script. Tools>Pause Script PauseScript <Message> None <Message> Type: <string> oDesktop.PauseScript "Text to display in pop-up dialog box"

Command: Syntax: Return Value: Parameters: Example:

Print
Use: Command: Syntax: Return Value: Parameters: Example: Prints the contents of the active view window. File>Print Print None None oDesktop.Print

QuitApplication
Use: Command: Syntax: Return Value: Parameters: Example: Exits the desktop. File>Exit QuitApplication None None oDesktop.QuitApplication

RestoreWindow
Use: Command: Syntax: Return Value: Parameters: Example: Restores a minimized Maxwell window. None RestoreWindow None None oDesktop.RestoreWindow

4-6 Desktop Object Script Commands

Introduction to Scripting in Maxwell

RunProgram
Use: Command: Syntax: Return Value: Parameters: Runs an external program. None RunProgram <ProgName>, <ProgPath>, <WorkPath>, <ArgArray> None <ProgName> Type: <string> Name of the program to run. <ProgPath> Type: <string> Location of the program. To use the system path, pass in an empty string. <WorkPath> Type: <string> Working directory in which program will start. <ArgArray> Type: Array of strings Arguments to pass to the program. If there are no arguments, pass in None. oDesktop.RunProgram "winword.exe", _ "C:\Program Files\Microsoft Office\Office10",_ "", None

Example:

RunScript
Use: Command: Syntax: Return Value: Parameters: Launches another script from within the script currently being executed. Tools>Run Script RunScript <ScriptPath> None <ScriptPath> Type: <string> Name or full path of the script to execute. If the full path to the script is not specified, Maxwell searches for the specified script in the following locations, in this order: Personal library directory. This is the PersonalLib subdirectory in the project directory. The project directory can be specified in the General Options dialog
Desktop Object Script Commands 4-7

Introduction to Scripting in Maxwell

Example:

box (invoked by clicking Tools>Options>General Options) under the Project Options tab. User library directory. This is the userlib subdirectory in the library directory. It can be specified in the General Options dialog box. System library directory. This is the syslib subdirectory in the library directory. It can be specified in the General Options dialog box. Maxwell installation directory. oDesktop.RunScript "C:/Project/test1.vbs"

SetActiveProject
Use: Command: Syntax: Return Value: Parameters: Example: Returns a specified project as the active project in the desktop. None SetActiveProject <ProjectName> The specified project becomes active in the desktop. <ProjectName> Type: <string> Set oProject = oDesktop.SetActiveProject ("Project1")

SetActiveProjectByPath
Use: If a user has two projects open with the same name, the result of SetActiveProject is ambiguous (the first one listed in selected). The SetActiveProjectByPath command allows you to unambiguously specify the active project. SetActiveProjectByPath() The specified project becomes active in the desktop. <fullPathProjectName> Set oProject = oDesktop.SetActiveProjectByPath("C:\working\rotation.mxwl ")

Syntax: Return Value: Parameters: Example:

SetLibraryDirectory
Use: Syntax: Return Value: Sets the library directory path. The specified directory must already exist and contain a syslib folder. SetLibraryDirectory <DirectoryPath> None

4-8 Desktop Object Script Commands

Introduction to Scripting in Maxwell

Parameters: Example:

<DirectoryPath> Type: <string> oDesktop.SetLibraryDirectory "c:\libraries"

SetProjectDirectory
Use: Syntax: Return Value: Parameters: Example: Sets the project directory path. The directory will be automatically created if it does not already exist. SetProjectDirectory <DirectoryPath> None <DirectoryPath> Type: <string> oDesktop.SetProjectDirectory "c:\projects"

SetTempDirectory
Use: Syntax: Return Value: Parameters: Example: Sets the temp directory path. The directory will be automatically created if it does not already exist. SetTempDirectory <DirectoryPath> None <DirectoryPath> Type: <string> oDesktop.SetTempDirectory "c:\temp"

Sleep
Use: Command: Syntax: Return Value: Parameters: Example: Suspends execution of Maxwell for the specified number of milliseconds, up to 60,000 milliseconds (1 minute). none Sleep <TimeInMilliseconds> None <TimeInMilliseconds> Type: <int> oDesktop.Sleep 1000

Desktop Object Script Commands 4-9

Introduction to Scripting in Maxwell

Commands for Querying Objects


The following commands can be used to query objects: GetProjects GetDesigns GetName

Count GetDistributedAnalysisMachines.

Count
Use: Syntax: Return Value: Parameters: Example: Gets the total number of queried projects or designs obtained by GetProjects() and GetDesigns() commands. See the example query. Count Returns an integer value. None set projects = oDesktop.GetProjects() numprojects = projects.Count

Example: iterate through projects and designs using for each for each prj in oDesktop.GetProjects() msgbox prj.GetName() for each design in prj.GetDesigns() msgbox design.GetName() next next iterate through using integer index Dim projects set projects = oDesktop.GetProjects() for i = 0 to projects.Count - 1 msgbox projects(i).GetName() dim designs set designs = projects(i).GetDesigns() for j = 0 to designs.Count msgbox designs(j).GetName() next next
4-10 Desktop Object Script Commands

Introduction to Scripting in Maxwell

lookup by name

GetDesigns
Use: For querying designs within a queried project obtained by the GetProjects() command. Once you have the designs you can iterate through them using standard VBScript methods. See the example query. GetDesigns() Returns a COM collection of designs in the given project. None set projects = oDesktop.GetProjects() set designs = projects(0).GetDesigns()

Syntax: Return Value: Parameters: Example:

GetDistributedAnalysisMachines
Use: Syntax: Return Value: Parameters: Example: Gets a list of machines used for distributed analysis. You can iterate through the list using standard VBScript methods. GetDistributedAnalysisMachines() Returns a COM collection of machines used for distributed analysis. None For each machine in oDesktop.GetDistributedAnalysisMachines() msgbox machine next

GetName (Desktop)
Use: Syntax: Return Value: Parameters: Example: Gets names of queried projects or designs obtained by GetProjects() and GetDesigns() commands. See the example query. GetName() Returns a name of type string. None set projects = oDesktop.GetProjects() project_name = projects(0).GetName()

GetProjects
Use: Syntax: For querying projects. Once you have the projects you can iterate through them using standard VBScript methods. See the example query. GetProjects()
Desktop Object Script Commands 4-11

Introduction to Scripting in Maxwell

Return Value: Parameters: Example:

Returns a COM collection of opened projects. None set projects = oDesktop.GetProjects()

4-12 Desktop Object Script Commands

Project Object Script Commands

Project commands should be executed by the oProject object. The following is an example of accessing the object: Set oProject = oDesktop.GetActiveProject() Note For design names, use the name as it appears in the project tree.

Project Object Script Commands 5-1

Introduction to Scripting in Maxwell

General Project Object Script Commands


Following are general script commands recognized by the oProject object: GetName GetPath GetActiveDesign SetActiveDesign GetTopDesignList GetDesign Close Save SaveAs InsertDesign CopyDesign Paste CutDesign DeleteDesign Undo Redo AnalyzeAll

GetName (Project)
Use: Command: Syntax: Return Value: Parameters: Example: Returns the project name. None GetName The active projects name. None name = oProject.GetName ()

GetPath
Use: Command: Syntax: Return Value: Parameters: Example: Returns the location of the project on disk. None GetPath The path to the project, which does not include the project name. None path = oProject.GetPath ()

5-2 Project Object Script Commands

Introduction to Scripting in Maxwell

GetActiveDesign
Use: Command: Syntax: Return Value: Parameters: Example: Returns the design in the active project. None GetActiveDesign The active design. None Set oDesign = oProject.GetActiveDesign ()

SetActiveDesign
Use: Command: Syntax: Return Value: Parameters: Sets a new design to be the active design. None SetActiveDesign <DesignName> The named design becomes active. <DesignName> Type: <string> Name of the design to set as the active design. Set oDesign = oProject.SetActiveDesign ("MaxwellDesign2")

Example:

GetTopDesignList
Use: Command: Syntax: Return Value: Parameters: Example: Returns a list of the names of the top-level designs. None GetTopDesignList An array of strings that are the names of the top-level designs. None name_list = oProject.GetTopDesignList ()

GetDesign
Use: Command: Syntax: Return Value: Parameters: Returns the specified design. None GetDesign <DesignName> The specified design. <DesignName> Type: <string> Name of the design to return. Set oDesign = oProject.GetDesign ("Maxwell3DDesign1")
Project Object Script Commands 5-3

Example:

Introduction to Scripting in Maxwell

Close
Use: Command: Syntax: Return Value: Parameters: Example: Closes the active project. Unsaved changes will be lost. None Close None None oProject.Close

Save
Use: Command: Syntax: Return Value: Parameters: Example: Saves the active project. File>Save Save None None oProject.Save

SaveAs
Use: Command: Syntax: Return Value: Parameters: Saves the project under a new name. File>Save As SaveAs <FileName> <OverWrite> None <FileName> Type: <string> New name for the file. <OverWrite> Type: <bool> Set to true if an existing project by that name should be overwritten. oProject.SaveAs "D:/projects/project1.mxwl", true

Example:

InsertDesign
Use: Command: Inserts a new design in the project. In Maxwell scripts, the last argument will always be empty. Project>Insert Maxwell Design

5-4 Project Object Script Commands

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

InsertDesign <DesignType>, <DesignName>, <SolutionType>, "" None <DesignType> Type: <string> Type of design to insert. Can be "Maxwell 2D", "Maxwell 3D", or "RMxprt" <DesignName> Type: <string> Name of the new design. <SolutionType> Type: <string> Solution type of the new design where available types depend upon the DesignType chosen. DesignType Maxwell 3D Available SolutionType "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "DCConduction", "ElectroDCConduction", "ElectricTransient" "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "ACConduction", "DCConduction" "Three-Phase Induction Motor", "Single-Phase Induction Motor", "Three-Phase Synchronous Machine", "Brushless Permanent-Magnet DC Motor", "Adjust-Speed Synchronous Machine", "Permanent-Magnet DC Motor", "Switched Reluctance Motor", "Line-Start Permanent-Magnet Synchronous Motor", "Universal Motor", "DC Machine", "Claw-Pole Alternator", "Three-Phase Non-Salient Synchronous Machine"

Maxwell 2D RMxprt

Example: oProject.InsertDesign "Maxwell 2D","Maxwell2DDesign2",_ "Magnetostatic", ""

CopyDesign
Use: Command: Copies a design. Edit>Copy
Project Object Script Commands 5-5

Introduction to Scripting in Maxwell

Syntax: Return Value: Example:

CopyDesign <DesignName> None oProject.CopyDesign "MaxwellModel1" Pastes a design in the active project. Edit>Paste Paste None None oProject.Paste

Paste (Project)
Use: Command: Syntax: Return Value: Parameters: Example:

CutDesign
Use: Command: Syntax: Return Value: Example: Cuts a design from the active project. The design is stored in memory and can be pasted in any Maxwell project. Edit>Cut CutDesign <DesignName> None oProject.CutDesign "MaxwellDesign1"

Warning This is a legacy command that is no longer supported and should not be used as it may have unintended effects on solved designs.

DeleteDesign
Use: Command: Syntax: Return Value: Example: Deletes a specified design from the project. Edit>Delete DeleteDesign <DesignName> None oProject.DeleteDesign "MaxwellDesign2"

Undo (Project)
Use: Command: Syntax: Return Value: Parameters: Cancels the last project-level command. Edit>Undo Undo None None

5-6 Project Object Script Commands

Introduction to Scripting in Maxwell

Example:

oProject.Undo

Redo (Project)
Use: Command: Syntax: Return Value: Parameters: Example: Reapplies the last project-level command. Edit>Redo Redo None None oProject.Redo

AnalyzeAll (Project menu)


Use: Runs the project-level script command from the script, which simulates all Maxwell solution setups and Optimetrics setups for all design instances in the project. Project>Analyze All AnalyzeAll None None oProject.AnalyzeAll

Command: Syntax: Return Value: Parameters: Example:

Project Object Script Commands 5-7

Introduction to Scripting in Maxwell

5-8 Project Object Script Commands

Material Script Commands

Material commands should be executed by the oProject object. Set oProject = oDesktop.SetActiveProject("Project1") oProject.CommandName <args>

Material Script Commands 6-1

Introduction to Scripting in Maxwell

Material Level Script Commands


Following are general script commands recognized by the oProject object: AddMaterial DoesMaterialExist EditMaterial

ExportMaterial RemoveMaterial

AddMaterial
Use: Command: Syntax: Return Value: Parameters: Adds a local material. Add Material command in the material editor. AddMaterial Array("NAME:<MaterialName>", <MatProperty>, <MatProperty>, ...) None <MatProperty> (simple material) "<PropertyName>:=", <value> <MatProperty> (anisotropic material) Array("NAME:<PropertyName>, "property_type:=", "AnisoProperty", "unit:=", <string>", "component1:=", <value>, "component2:=", <value>, "component3:=", <value>) <PropertyName> Type: <string> Should be one of the following: "permittivity", "permeability", "conductivity" "dielectric_loss_tangent", "magnetic_loss_tangent", "magnetic_coercivity", "core_loss_type", "mass_density", "stacking_type" property_type Type: <string> Should be one of the following: "AnisoProperty", "NonlinearProperty" unit Type: <string> Possible values: delta_H: "Oe" saturation_mag: "Gauss", "uGauss", "Tesla", "uTesla"

6-2 Material Script Commands

Introduction to Scripting in Maxwell

Example:

Example:

Example:

other properties: "" (empty string) <MatProperty> (vector material) Array("NAME:<PropertyName>", "property_type:=", "VectorProperty", " Magnitude:=", <value>", DirComp1:=", <value>, "DirComp2:=", <value>, "DirComp3:=", <value>)) <MatProperty> (choice material) Array("NAME:<PropertyName>", "property_type:=", "ChoiceProperty", "Choice:=", <string>") oProject.AddMaterial Array("NAME:Material2",_ "dielectric_loss_tangent:=", "44",_ Array("NAME:saturation_mag",_ "property_type:=", "AnisoProperty",_ "unit:=", "Gauss",_ "component1:=", "11", _ "component2:=", "22", _ "component3:=", "33"), _ "delta_H:=", "44Oe") oDefinitionManager.AddMaterial Array("NAME:Material5",_ "CoordinateSystemType:=", _"Cartesian",_ Array("NAME:AttachedData"),_ Array("NAME:magnetic_coercivity", "property_type:=", _ "VectorProperty", "Magnitude:=", "-1A_per_meter",_ "DirComp1:=", "1", "DirComp2:=", _"2", "DirComp3:=",_ "3")) oDefinitionManager.AddMaterial Array("NAME:Material4",_ "CoordinateSystemType:=", _"Cartesian",_ Array("NAME:AttachedData"),_ Array("NAME:stacking_type", "property_type:=", _ "ChoiceProperty", "Choice:=", "Lamination"),_ "stacking_factor:=", "0",_ Array("NAME:stacking_direction", "property_type:=",_ "ChoiceProperty", "Choice:=", ""))

DoesMaterialExist
Use: Command: Checks for the presence of a material in the library by name None
Material Script Commands 6-3

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

DoesMaterialExist(<MaterialName>) Boolean <MaterialName> Type: <string> Name of the material to search for in the material database Set oProject = oDesktop.SetActiveProject("cir_th") Set oDesign = oProject.SetActiveDesign("Design1") Set oDefinitionManager = oProject.GetDefinitionManager() if(oProject.DoesMaterialExist("modified_epoxy")) then MsgBox("It Exists") else MsgBox("It Doesn't Exist...Creating") oProject.AddMaterial Array("NAME:Material2",_ "dielectric_loss_tangent:=", "44",_ Array("NAME:saturation_mag",_ "property_type:=", "AnisoProperty",_ "unit:=", "Gauss",_ "component1:=", "11", _ "component2:=", "22", _ "component3:=", "33"), _ "delta_H:=", "44Oe") end if

Example:

EditMaterial
Use: Command: Syntax: Return Value: Parameters: Modifies an existing material. View/Edit Materials command in the material editor. EditMaterial <OriginalName>, Array("NAME:<NewName>", <MatProperty>, <MatProperty>, ...) None <OriginalName> Type: <string> Name of the material before editing. <NewName> Type: <string> New name for the material.

6-4 Material Script Commands

Introduction to Scripting in Maxwell

ExportMaterial
Use: Command: Syntax: Return Value: Parameters: Exports a local material to a library. Export to Library command in the material editor. ExportMaterial <ExportData>, <Library location> None <ExportData> Array("NAME:<LibraryName>", <MaterialName>, <MaterialName>, ...) oProject.ExportMaterial Array("NAME:mo0907b",_ "Material1", "Material2", "Material3"), "UserLib"

Example:

RemoveMaterial
Use: Command: Syntax: Return Value: Parameters: Removes a material from a library. Remove Material(s) command in the material editor. RemoveMaterial <MaterialName>, <IsProjectMaterial>, <LibraryName>, <LibraryLocation> None <MaterialName> Type: <string> Name of the material to be removed. <IsProjectMaterial> Type: <bool> If true, Maxwell assumes the material is a project material, and the last two parameters are ignored. <LibraryName> Type: <string> The name of the user or personal library where the material resides. <LibraryLocation> Type: <string> Should be UserLib or PersonalLib. oProject.RemoveMaterial "Material1", false, "mo0907",_ "UserLib" oProject.RemoveMaterial "Material1", true, "Local",_ "Project"
Material Script Commands 6-5

Example:

Introduction to Scripting in Maxwell

6-6 Material Script Commands

Property Script Commands

Property commands should be executed by the oProject object. Set oProject = oDesktop.SetActiveProject("Project1") oProject.CommandName <args>

Property Script Commands 7-1

Introduction to Scripting in Maxwell

Conventions Used in the Property Script Chapter

<Property> Refers to a single item that can be modified in the dockable Properties dialog box or in the modal Properties pop-up window. <PropServer> Refers to the item whose properties are being modified. This is usually a compound name giving all the information needed by the editor, design, or project to locate the item being edited. <PropTab> Corresponds to one tab in the Property dialog box the tab under which properties are being edited. <PropName> Name of a single property. <PropServer> and <PropTab> Names Project Project Variables: <PropServer> "ProjectVariables" <PropTab> "ProjectVariableTab" Maxwell Design Local Variables: <PropServer> "LocalVariables" <PropTab> "LocalVariableTab" Maxwell Modules <PropServer> Format is: <ModuleName>:<ItemName>, where <ItemName> is the solution setup name, etc., depending on which module is being edited. Example: <PropServer> for the boundary PerfE1 is BoundarySetup:PerfE1 <PropTab>
7-2 Property Script Commands

Introduction to Scripting in Maxwell

Boundary module: "MaxwellTab" Mesh Operations module: "MeshSetupTab" Analysis module: "MaxwellTab" Optimetrics module: "OptimetricsTab" Solutions module: Does not support properties. Field Overlays module: "FieldsPostProcessorTab" Radiation module: "RadFieldSetupTab" 3D Model Editor Object in the module: <PropServer> Name of the object. For example: "Box1". <PropTab> "Geometry3DAttributeTab" Operation on an object: <PropServer> Format is <ObjName>:<OpperationName>:<int> Concatenation of object name, operation name, and the index of the operation. For example: "Box2:CreateBox:2" refers to the second "CreateBox" command in Box2s history. <PropTab> "Geometry3DCmdTab" Reporter Operations on Report properties: Format is <ReportSetup> For example, to set the Company Name in the plot header to My Company: Set oModule = oDesign.GetModule("ReportSetup") oModule.ChangeProperty Array("NAME:AllTabs",_ Array("NAME:Header",_ Array("NAME:PropServers",_ "XY Plot1:Header"), Array("NAME:ChangedProps",_ Array("NAME:Company Name", "Value:=", "My Company"))))

Property Script Commands 7-3

Introduction to Scripting in Maxwell

General Property Scripting Commands


Following are general commands that can be used to manipulate properties from a script. ChangeProperty

ChangeProperty
Use: Changes to properties are scripted using the ChangeProperty command. This command can be executed by the oEditor to change editor properties, by the oDesign to change design level properties, and by the oProject to change project level properties. The command can be used to create, edit, and/or remove properties. In Maxwell, only Variable and Separator properties can be deleted. None ChangeProperty Array("Name:AllTabs", <PropTabArray>, <PropTabArray>, ...) None <PropTabArray> Array("Name:<PropTab>", <PropServersArray>, <NewPropsArray>, <ChangedPropsArray>, <DeletedPropsArray>) <PropServersArray> Array("Name:PropServers", <PropServer>, <PropServer>, ...) <NewPropsArray> Array("Name:NewProps", <PropDataArray>, <PropDataArray>,...) <ChangedPropsArray> Array("Name:ChangedProps",<PropDataArray>, <PropDataArray>, ...) <DeletedPropsArray> Array("Name:DeletedProps", <PropName>, <PropName>, ...) <PropDataArray> Array("NAME:<PropName>", "PropType:=", <PropType>, "NewName:=", <string>,

Command: Syntax: Return Value: Parameters:

7-4 Property Script Commands

Introduction to Scripting in Maxwell

"Description:=", <string>, "NewRowPosition:=", <int>, "ReadOnly:=", <bool>, "Hidden:=", <bool>, <PropTypeSpecificArgs>) <PropType> Type: string Identifies the type of property when a new property is added. In Maxwell, only separator properties and variable properties can be added. "SeparatorProp" VariableProp" "TextProp" "NumberProp" "ValueProp" "CheckboxProp" "MenuProp" "PointProp" "VPointProp" "V3DPointProp" "ButtonProp" NewName Specify the new name of a property if the propertys name is being edited. In Maxwell, the name can only be changed for separators and variables. Description Specify a description of the property. In Maxwell, the description can only be changed for separators and variables. NewRowPosition Used to reorder rows in the Property dialog box. In Maxwell, this only applies to the Project>Project Variables panel and the Maxwell3D>Design Properties, Maxwell2D>Design Properties, or RMxprt>Design Properties panel. Specify the new zero-based row index of the variable or separator. ReadOnly Used to mark a property as "read only" so it can not be modified. In Maxwell, this flag can only be set for variables and separators.
Property Script Commands 7-5

Introduction to Scripting in Maxwell

Hidden Used to hide a property so it can not be viewed outside of the Property dialog box. In Maxwell, this flag can only be set for variables and separators. <PropTypeSpecificArgs> SeparatorProp: no arguments TextProp: "Value:=", <string> NumberProp: "Value:=", <double> ValueProp: "Value:=", <value> CheckboxProp: "Value:=", <bool> MenuProp: "Value:=", <string> PointProp"X:=", <double>, "Y:=", <double> VPointProp: "X:=", <value>, "Y:=", <value> V3DPointProp: "X:=",<value>, "Y:=",<value>, "Z:=",<value> Material Button: "Material:=", <string> Color Button: "R:=",<int>,"G:=",<int>,"B:=",<int> Transparency Button:"Value:=", <double> <PropTypeSpecificArgs> for VariableProps Syntax: "Value:=", <value>, <OptimizationFlagsArray>, <TuningFlagsArray>, <SensitivityFlagsArray>, <StatisticsFlagsArray> Parameters: <OptimizationFlagsArray> Array("NAME:Optimization", "Included:=", <bool>, "Min:=", <value>, "Max:=", <value>) <Tuning flagsArray> Array("NAME:Tuning", "Included:=", <bool>, "Step:=", <value>, "Min:=", <value>, "Max:=", <value>) <SensitivityFlagsArray> Array("NAME:Sensitivity", "Included:=", <bool>,
7-6 Property Script Commands

Introduction to Scripting in Maxwell

"Min:=", <value>, "Max:=", <value>, "IDisp:=", <value> ) <StatisticsFlagsArray> Array("NAME:Statistical", "Included:=", <bool>, "Dist:=", <Distribution>, "StdD:=", <value>, "Min:=", <value>, "Max:=", <value>, "Tol:=", <string>) <Distribution> Type: string Value should be "Gaussian" or "Uniform" StdD Standard deviation. Min Low cut-off for the distribution. Max High cut-off for the distribution. Tol Tolerance for uniform distributions. Format is "<int>%". Example: "20%". Example: Adding a new project level variable "$width": oProject.ChangeProperty Array("NAME:AllTabs",_ Array("NAME:ProjectVariableTab",_ Array("NAME:PropServers", "ProjectVariables"),_ Array("NAME:NewProps",_ Array("NAME:$width",_ "PropType:=", "VariableProp",_ "Value:=", "3mm",_ "Description:=", "my new variable")))) Example: Changing the Company Name, Design Name, the background color, and the Axis scaling in a Report.
Property Script Commands 7-7

Introduction to Scripting in Maxwell

Set oProject = oDesktop.SetActiveProject("wgcombiner") Set oDesign = oProject.SetActiveDesign("HFSSDesign2") Set oModule = oDesign.GetModule("ReportSetup") oModule.ChangeProperty Array("NAME:AllTabs", Array("NAME:Header", _ Array("NAME:PropServers", "XY Plot1:Header"), _ Array("NAME:ChangedProps", Array("NAME:Company Name", _ "Value:=", "My Company")))) oModule.ChangeProperty Array("NAME:AllTabs", Array("NAME:Header",_ Array("NAME:PropServers", "XY Plot1:Header"), _ Array("NAME:ChangedProps", Array("NAME:Design Name", _ "Value:=", "WG Combiner")))) oModule.ChangeProperty Array("NAME:AllTabs", Array("NAME:General",_ Array("NAME:PropServers", "XY Plot1:General"), _ Array("NAME:ChangedProps", Array("NAME:Back Color", _ "R:=", 128, "G:=", 255, "B:=", 255)))) oModule.ChangeProperty Array("NAME:AllTabs", Array("NAME:Axis", _ Array("NAME:PropServers", "XY Plot1:AxisX"), _ Array("NAME:ChangedProps", Array("NAME:Axis Scaling", _ "Value:=", "Log"))))

Example: Deleting the design level variable "height": oDesign.ChangeProperty Array("NAME:AllTabs",_ Array("NAME:LocalVariableTab",_ Array("NAME:PropServers", "DefinitionParameters"),_ Array("NAME:DeletedProps", "height")) Example: Changing a propertys value. If the following command were executed, then the value of the property XSize of the PropServer Box1:CreateBox:1 on the Geometry3DCmdTab tab would be changed. (oEditor is the Geometry3D editor in Maxwell.) oEditor.ChangeProperty Array("NAME:AllTabs",_ Array("NAME:Geometry3DCmdTab",_
7-8 Property Script Commands

Introduction to Scripting in Maxwell

Array("NAME:PropServers","Box1:CreateBox:1"),_ Array("NAME:ChangedProps",_ Array("NAME:XSize", "Value:=", "1.4mil"))))

Property Script Commands 7-9

Introduction to Scripting in Maxwell

Callback Scripting Using PropHost Object


Callback scripts are scripts that can be set in the Property Dialog for individual properties by clicking the button in the Callback column and choosing a script that is saved with the project. Callback scripts can contain any legal script commands including general Ansoft script function calls (e.g. GetApplication(), ). In addition, they can call functions on a special object named PropHost. The PropHost represents the PropServer (owner of properties) that contains the Property that is calling the Callback script. Therefore, the Callback script can use the PropHost's functions to query or set other properties in the same PropServer. Definitions <propName> = text string <value> = double <valueText> = text string <fileName> = full path file name <choices> = string containing menu choices separated by commas <initialChoice> = string containing initial choice for menu; must be one of the <choices> <scriptName> = string containing name of script stored in project <bool> is 1 for true or 0 for false

<propType>

<propTypeName>

Property Description

0 1 2 3 4 5 6 7 8 9 10

TextProp MenuProp CheckboxProp VariableProp VPointProp V3DPointProp NumberProp ColorProp PointProp ValueProp ButtonProp

Text Menu Checkbox Variable VPoint V3DPoint Number Color Point Value Button

7-10 Property Script Commands

Introduction to Scripting in Maxwell

<propType>

<propTypeName>

Property Description

11 12 13

SeparatorProp NetlistProp FileNameProp

Separator Netlist FileName

<tabType>

Description

Objects with this tab type

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

DefaultTab

PassedParameterTab
DefinitionParameterTab

LocalVariableTab ProjectVariableTab ConstantsTab BaseElementTab ComponentTab PropertyTab CircuitTab SystemTab PlanarEMTab HfssTab OptimetricsTab AltraSimTab Report3DTab FieldsPostProcessorTab MeshSetupTab RadFieldSetupTab Geometry3DAttributeTab Geometry3DCmdTab Geometry3DPolylineTab

Instances of designs, components, geometric objects Definitions of designs, components Definitions of designs, components
Projects Projects Geometric objects Designs, components

HFSS objects Optimetrics data Report3d Fieldspostprocessor Manual meshing setup Radiation field geometry setup Geometry3D Geometry3D Geometry3D
Property Script Commands 7-11

Introduction to Scripting in Maxwell

<tabType>

Description

Objects with this tab type

22 23 24 25 26 27 28

Geometry3DCSTab Geometry3DPlaneTab Geometry3DPointTab Geometry3DListTab StandardPropTab PropDisplayPropTab CustomPropTab

Geometry3D Geometry3D Geometry3D Geometry3D

7-12 Property Script Commands

Introduction to Scripting in Maxwell

PropHost Functions
Following are commands that can be used to manipulate properties from a script. AddMenuProp AddMenuProp2 AddProp AddProp2 ExecuteScript GetCallback GetChangedProperty GetDescription GetEditor GetFileName GetHidden GetPropServers GetPropTabType GetReadOnly GetTabTypeName GetText GetValue PropertyExists RemoveProp SetCallabck SetDescription SetHidden SetReadOnly SetText SetValue

AddMenuProp
Use: Command: Syntax: Return Value: Creates a new Menu property in tabType with name specified; choices are set to the values in choices; initial selection is initialChoice. None AddMenuProp(<tabType>, <propName>, <choices>, <initialChoice>) None.
Property Script Commands 7-13

Introduction to Scripting in Maxwell

Example:

PropHost.AddProp(2, "ResChoices", "inline,upfront,parallel,series", "parallel"); creates a new MenuProp in the DefinitionParameters tab named ResChoices with choices inline, upfront, parallel, and series. The initial choice shown in the Menu is "parallel"

AddMenuProp2
Use: Command: Syntax: Return Value: Example: Creates a new Menu property in tabTypeName with name specified; choices are set to the values in choices; initial selection is initialChoice. None AddMenuProp2(<tabTypeName>, <propName>, <choices>, <initialChoice>) None. PropHost.AddMenuProp2("DefinitionParameterTab", "ResChoices", "inline,upfront,parallel,series", "parallel"); creates a new MenuProp in the DefinitionParameters tab named ResChoices with choices inline, upfront, parallel, and series. The initial choice shown in the Menu is "parallel".

AddProp
Use: Command: Syntax: Return Value: Example: Creates a new propType property in tabType with name and value specified. None AddProp(<tabType>, <propType>, <propName>, <valueText>) None. PropHost.AddProp(2, 3, "W1", "10mm"); creates a new VariableProp in the DefinitionParameters tab named W1 with value 10mm.

AddProp2
Use: Command: Syntax: Return Value: Creates a new propTypeName property in tabTypeName with name and value specified. None AddProp2(<tabTypeName>, <propTypeName>, <propName>, <valueText>) None.

7-14 Property Script Commands

Introduction to Scripting in Maxwell

Example:

PropHost.AddProp2(("DefinitionParameterTab", "VariableProp", "W1", "10mm"); creates a new VariableProp in the DefinitionParameters tab named W1 with value 10mm.

ExecuteScript
Use: Command: Syntax: Return Value: Example: Finds the named script in the Definitions/Scripts folder and runs that script; the script being run can also use the PropHost object. None ExecuteScript(<scriptName>) None. PropHost.ExecuteScript("PropChangeScript"); runs the script named PropChangeScript

GetCallback
Use: Command: Syntax: Return Value: Example: Finds named property and returns name of Callback script. None GetCallback(<propName>) String a = PropHost.GetCallback( "W1"); returns "SynchronizeResistors"

GetChangedProperty
Use: Command: Syntax: Return Value: Example: If the script was called by a Callback associated with a property, this function returns the name of that property. None GetChangedProperty() String pn = PropHost.GetChangedProperty(); returns "C" if the script was a Callback associated with the property named "C" and the script was called in response to the property "C" changing value.

GetDescription
Use: Command: Syntax: Return Value: Finds named property and returns description string. None GetDescription(<propName>) String
Property Script Commands 7-15

Introduction to Scripting in Maxwell

Example:

a = PropHost.GetDescription( "W1"); returns "this is the width of the gate"

GetEditor
Use: Command: Syntax: Return Value: Example: Returns an interface to the editor requested IF the PropServer behind the PropHost is contained within that type of editor. None GetEditor(<editorName>) String Set oLayout2 = PropHost.GetEditor("Layout"); returns the interface to the layout containing a selected component. This interface can be used to call Layout Scripting functions.

GetFileName
Use: Command: Syntax: Return Value: Example: Finds the named buttonProp and if it is a FileName buttonProp, it returns the file's full path name; otherwise it returns an empty string . None GetFileName(<propName>) Full path file name or empty string. a = PropHost.GetFileName("SubstrateFile"); returns the full path filename associated with the ButtonProp named SubstrateFile.

GetHidden
Use: Command: Syntax: Return Value: Example: Finds named property and returns its Hidden flag. None GetHidden(<propName>) Returns 1 if property is hidden and 0 if it is not. a = PropHost.GetHidden( "W1"); returns 1

GetPropServers
Use: Command: Syntax: Return Value: Returns array of objects that have properties showing on tabTypeName. None GetPropServers(<tabTypeName>) Returns string.

7-16 Property Script Commands

Introduction to Scripting in Maxwell

Example:

objects = PropHost.GetPropServers("PassedParameterTab"); returns array containing PropServers that have properties shown on PassedParameterTab; this would include only components and designs; individual properties can be accessed using standard notation, e.g. objects(0) might contain "CompInst@CAP_;1".

GetPropTabType
Use: Command: Syntax: Return Value: Example: Finds named property and returns the id of the tab it is in. None GetPropTabType(<propName>) Returns string. a = PropHost.GetPropTabType( "W1"); returns 2 for property W1 since it is on the DefinitionParams tab

GetReadOnly
Use: Command: Syntax: Return Value: Example: Finds named property and returns its ReadOnly flag. None GetReadOnly(<propName>) Returns 1 if property is read-only and 0 if it is not. a = PropHost.GetReadOnly( "W1"); returns 1

GetTabTypeName
Use: Command: Syntax: Return Value: Example: Finds named property and returns the name of the tab it is on. None GetTabTypeName(<propName>) Returns string. a = PropHost.GetTabTypeName( "W1"); returns "DefinitionParameterTab" for property W1 since it is on the DefinitionParams tab.

GetText
Use: Command: Syntax: Return Value: Example: Finds property in any tab and returns its value as a text string. None GetText(<propName>) Returns string. a = PropHost.GetText("C"); a contains "13pF"
Property Script Commands 7-17

Introduction to Scripting in Maxwell

GetValue
Use: Command: Syntax: Return Value: Example: Finds property in any tab and returns its value as a double. None GetValue(<propName>) Returns double. a = PropHost.GetValue("C") ;

Note

Values are returned in SI units. Compound SI units are, in general, not supported. Temperature values are returned in Celcius

PropertyExists
Use: Command: Syntax: Return Value: Example: Finds named property and returns its property type. None PropertyExists(<propName>) Returns 1 if property exists in any tab, 0 if it does not. a = PropHost.PropertyExists( "W1"); returns 1 since this property is present on DefinitionParams tab

RemoveProp
Use: Command: Syntax: Return Value: Example: Removes the named property from whichever tab it is found. None RemoveProp(<propName>) None. PropHost.RemoveProp("W1"); removes the property named W1 from whatever tab it is in

SetCallback
Use: Command: Syntax: Return Value: Example: Finds named property and sets its Callback script. None SetCallback(<propName>, <scriptName>) None. PropHost.SetCallback( "W1", "SynchronizeResistors"); sets the Callback script for property W1 to SynchronizeResistors

7-18 Property Script Commands

Introduction to Scripting in Maxwell

SetDescription
Use: Command: Syntax: Return Value: Example: Finds named property and sets its description text. None SetDescription(<propName>, <valueText>) None. PropHost.SetDescription( "W1", "this is the width of the gate"); sets the description for property W1 to "this is the width of the gate"

SetHidden
Use: Command: Syntax: Return Value: Example: Finds named property and sets its Hidden flag. None SetHidden(<propName>, <bool>) None. PropHost.SetHidden( "W1", 1); makes property W1 invisible in Property Window

SetReadOnly
Use: Command: Syntax: Return Value: Example: Finds named property and sets its ReadOnly flag. None SetReadOnly(<propName>, <bool>) None. PropHost.SetReadOnly( "W1", 1); makes property W1 readonly

SetText
Use: Command: Syntax: Return Value: Example: Finds property in any tab and sets its value to a text string. None SetText(<propName>, <valueText>) None. PropHost.SetText("C", "22nF"); sets C to 22nF

SetValue
Use: Command: Finds property in any tab and sets its value to a double. None
Property Script Commands 7-19

Introduction to Scripting in Maxwell

Syntax: Return Value: Example:

SetValue(<propName>, <value>) None. PropHost.SetValue("C", 2e-9); sets C to 2e-9

7-20 Property Script Commands

Introduction to Scripting in Maxwell

Additional Property Scripting Commands


Following are other commands that can be used to manipulate properties from a script. GetPropertyValue SetPropertyValue GetProperties

GetVariableValue SetVariableValue GetVariables

GetPropertyValue
Use: Gets the value of a single property. This can be executed by the oProject, oDesign, or oEditor variables.

Note To view the expected format for the tab name and property name string arguments, use the script recording feature and edit a property using the interface, and then view the resulting script entry. Command: Syntax: Return Value: Example: None GetPropertyValue(<PropTab>, <PropServer>, <PropName>) String representing the property value. value_string = _ oEditor.GetPropertyValue("Geometry3DCmdTab",_ "Box1:CreateBox:1", "XSize")

SetPropertyValue
Use: Sets the value of one property. This is not supported for properties of the following types: ButtonProp, PointProp, V3DPointProp, and VPointProp. Only the ChangeProperty command can be used to modify these properties. This can be executed by the oProject, oDesign, or oEditor variables.

Note To view the expected format for the tab name and property name string arguments, use the script recording feature and edit a property using the interface, and then view the resulting script entry or use GetPropertyValue. Command: Syntax: None SetPropertyValue <PropTab>, <PropServer>, <PropName>, <PropValue>
Property Script Commands 7-21

Introduction to Scripting in Maxwell

Return Value: Parameters:

Example:

None <PropValue> Type: String Contains the value to set the property. The formatting is different depending on what type of property is being edited. Use GetPropertyValue for the desired property to see the expected format. oEditor.SetPropertyValue _ "Geometry3DCmdTab","Box1:CreateBox:1",_ "XSize", "3mm" Gets a list of all the properties belonging to a specific PropServer and PropTab. It can be executed by the oProject, oDesign, or oEditor variables. None GetProperties( <PropTab>, <PropServer>) Variant array of strings the properties belonging to the prop server. Dim all_props all_props = oDesign.GetProperties("MaxwellTab",_ "BoundarySetup:Source1")

GetProperties
Use:

Command: Syntax: Return Value: Example:

GetVariableValue
Use: Command: Syntax: Return Value: Parameters: Gets the value of a single variable. To get the value of project variables, use oProject. To get the value of local variables, use oDesign. None GetVariableValue(<VarName>) A string representing the value of the variable. <VarName> Type: string Name of the variable to access. project_var_value_string = oProject.GetVariableValue("var_name") local_var_value_string = oDesign.GetVariableValue("var_name")

Example: Example:

7-22 Property Script Commands

Introduction to Scripting in Maxwell

SetVariableValue
Use: Syntax: Return Value: Parameters: Sets the value of a variable. To set the value of a project variable, use oProject. To set the value of a local variable, use oDesign. SetVariableValue <VarName>, <VarValue> None <VarValue> Type: <value> New value for the variable. oProject.SetVariableValue "$Var1", "3mm" var_value = "2Ohm" oDesign.SetVariableValue "Var2", var_value Returns a list of all defined variables. To get a list of Project variables, execute this command using oProject. To get a list of local variables, use oDesign. GetVariables() Variant array of strings the names of the variables. Dim var_array project_var_array = oProject.GetVariables() local_var_array = oDesign.GetVariables()

Example:

GetVariables
Use:

Syntax: Return Value: Example:

Property Script Commands 7-23

Introduction to Scripting in Maxwell

Additional Property Scripting Example


Following is a sample script that uses the GetPropertyValue, SetPropertyValue, and GetProperties functions. The script gets all the properties of the first CreateBox command of "Box1". It then loops through the properties and for each one, shows the current value and asks if the value should be changed. Example: Dim all_props Dim prop all_props = oEditor.GetProperties(Geometry3DCmdTab,_ Box1:CreateBox:1) For Each prop In all_props val = oEditor.GetPropertyValue(Geometry3DCmdTab,_ Box1:CreateBox:1, prop) new_val = InputBox("New Value of " + prop + ":",_ "Current Value of '" + prop + "' is " + val, val) If new_val <> val Then oEditor.SetPropertyValue Geometry3DCmdTab,_ Box1:CreateBox:1, prop, new_val val = _ oEditor.SetPropertyValue(Geometry3DCmdTab,_ Box1:CreateBox:1, prop) MsgBox("Now the value of '" + prop + "' is " + val) End If Next

7-24 Property Script Commands

Introduction to Scripting in Maxwell

Example: Using Record Script and Edit Properties


A simple way to see how to format the string arguments for a design object or property of interest is to use the script recording command in Maxwell, and then to edit the property. Open the script file and look at the o.Editor.ChangeProperty entry to view the string arguments. Example: Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule Set oAnsoftApp = CreateObject("AnsoftHfss.HfssScriptInterface") Set oDesktop = oAnsoftApp.GetAppDesktop() oDesktop.RestoreWindow Set oProject = oDesktop.SetActiveProject("wg_combiner") Set oDesign = oProject.SetActiveDesign("HFSSModel1") Set oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.ChangeProperty Array("NAME:AllTabs", Array("NAME:Geometry3DAttributeTab", Array("NAME:PropServers", _ "Polyline1"), Array("NAME:ChangedProps", Array("NAME:Display Wireframe", "Value:=", true), Array("NAME:Display Wireframe", "Value:=", _ false), Array("NAME:Transparent", "Value:=", 0.2))))

Property Script Commands 7-25

Introduction to Scripting in Maxwell

7-26 Property Script Commands

Dataset Script Commands

Dataset commands should be executed by the oProject object. Set oProject = oDesktop.SetActiveProject("Project1") oProject.CommandName <args>

Dataset Script Commands 8-1

Introduction to Scripting in Maxwell

General Dataset Script Commands


Following are general script commands recognized by the oProject object: AddDataset EditDataset DeleteDataset

AddDataset
Use: Command: Syntax: Return Value: Parameters: Adds a dataset. Project>Datasets>Add AddDataset <DatasetDataArray> None <DatasetDataArray> Array("NAME:<DatasetName>", Array("NAME:Coordinates", <CoordinateArray>, <CoordinateArray>, ...) <DatasetName> Type: <string> Name of the dataset. <CoordinateArray> Array("NAME:Coordinate", "X:=", <double>, "Y:=", <double>) oProject.AddDataset Array("NAME:ds1",_ Array("NAME:Coordinates",_ Array("NAME:Coordinate", "X:=", 1, "Y:=", 2,_ Array("NAME:Coordinate", "X:=", 3, "Y:=", 4),_ Array("NAME:Coordinate", "X:=", 5, "Y:=", 7),_ Array("NAME:Coordinate", "X:=", 6, "Y:=", 20)))

Example:

EditDataset
Use: Command: Syntax: Return Value: Modifies a dataset. When a dataset is modified, its name and data can be changed. Project>Datasets>Edit EditDataset <OriginalName> <DatasetDataArray> None

8-2 Dataset Script Commands

Introduction to Scripting in Maxwell

Parameters:

Example:

<OriginalName> Type: <string> Name of the dataset before editing. oProject.EditDataset "ds1" Array("NAME:ds2",_ Array("NAME:Coordinates",_ Array("NAME:Coordinate", "X:=", 1, "Y:=", 2),_ Array("NAME:Coordinate", "X:=", 3, "Y:=", 4)))

DeleteDataset
Use: Command: Syntax: Return Value: Parameters: Deletes the specified dataset. Project>Datasets>Remove DeleteDataset <DatasetName> None <DatasetName> Type: <string> Name of the dataset you want to delete.

Dataset Script Commands 8-3

Introduction to Scripting in Maxwell

8-4 Dataset Script Commands

Design Object Script Commands

Design object commands should be executed by the oDesign object. Set oDesign = oProject.SetActiveDesign("Mawell3DDesign1") oDesign.CommandName <args>

Design Object Script Commands 9-1

Introduction to Scripting in Maxwell

Conventions Used in the Design Object Chapter


<ModuleName> Name used to access one of the following Maxwell modules:

Boundary module: "BoundarySetup" Mesh Operations module: "MeshSetup" Analysis module: "AnalysisSetup" Optimetrics module: "Optimetrics" Solutions module: "Solutions" Field Overlays module: "FieldsReporter"

9-2 Design Object Script Commands

Introduction to Scripting in Maxwell

General Design Object Script Commands


Following are general script commands recognized by the oDesign object: GetName GetModule DeleteVariation SetSolutionType SetActiveEditor Solve Undo Redo RenameDesignInstance ApplyMeshOps EditNotes AnalyzeAll (Maxwell menu) AnalyzeAllNominal Analyze AnalyzeDistributed SetConductivityThreshold ExportConvergence GetVariationVariableValue ExportMeshStats ExportProfile GetNominalVariation Is2D Is3D GetOutputVariableValue, AddOutputVariable, EditOutputVariable, DeleteOutputVariable ChangeProperty, GetPropertyValue, SetPropertyValue, GetProperties, GetVariableValue, SetVariableValue, GetVariables CreateReport, RemoveReport, GetReportNames AddDataset, EditDataset, DeleteDataset

GetName (Design)
Use: Command: Syntax: Return Value: Parameters: Returns the name of the design. None GetName The name of the design. Type: <string> None
Design Object Script Commands 9-3

Introduction to Scripting in Maxwell

Example:

name_string = oDesign.GetName

GetModule
Use: Command: Syntax: Return Value: Parameters: Returns the IDispatch for the specified module. None GetModule <ModuleName> Module object. <ModuleName> Type: <string> Name of the module. One of the following: -Boundary module: "BoundarySetup" -Mesh Operations module: "MeshSetup" -Reduce Matrix module: "ReduceMatrix" -Analysis module: "AnalysisSetup" -Optimetrics module: "Optimetrics" -Solutions module: "Solutions" -Field Overlays module: "FieldsReporter" Set oModule = oDesign.GetModule "BoundarySetup"

Example:

DeleteVariation
Use: Command: Syntax: Return Value: Parameters: Delete the matrix, field, and/or mesh solution data for specific variations, across all solutions. Maxwell3D or Maxwell2D>Results>Clean Up Solutions DeleteVariation <VariationArray>, <FullVariations>, <MeshAndFieldsOnly>, <FieldsOnly> None <VariationArray> Array(<DesignVariationKey>, <DesignVariationKey>,...) Parameters: <DesignVariationKey> Type: <string> Design variation string <FullVariations> Type: <bool> Whether to delete meshes, fields, matrix data, profile, and convergence data.

9-4 Design Object Script Commands

Introduction to Scripting in Maxwell

<MeshAndFieldsOnly> Type: <bool> Whether to delete only meshes and fields. <FieldsOnly> Type: <bool> Whether to delete fields only. Example: oDesign.DeleteVariation Array("width='2in'",_ "width='2.5in'"), TRUE, FALSE, FALSE See also DeleteSolutionVariation.

SetSolutionType
Use: Command: Syntax: Return Value: Parameters: Sets the solution type for the design. Click Maxwell3D>Solution Type, Maxwell2D>Solution Type, or right-click a design instance in the project tree and select Solution Type. SetSolutionType <SolutionType>, <GeomMode> None <SolutionType> Type: <string> Possible values for 3D designs are: "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "DCConduction", "ElectroDCConduction", "ElectricTransient" Possible values for 2D designs are: "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "DCConduction", "ACConduction" <GeomMode> Type: <string> Possible values for 2D geometry mode: "XY", "about Z" oDesign.SetSolutionType "ElectroDCConduction" oDesign.SetSolutionType "Electrostatic", "XY" oDesign.SetSolutionType "EddyCurrent", "about Z" Sets the active editor. None SetActiveEditor(<EditorName>) Editor object <EditorName> Type: <string>
Design Object Script Commands 9-5

Example:

SetActiveEditor
Use: Command: Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

Example:

Predefined editor name. Set oEditor = oDesign.SetActiveEditor("3D Modeler")

Solve
Use: Command: Syntax: Return Value: Performs a blocking simulation. The next script command will not be executed until the simulation is complete. Maxwell3D or Maxwell2D>Analyze. Or right-click the Analysis option in the project tree and choose "Analyze". Solve <SetupNameArray> Type: <int> -1: command execution error 1: simulation error 0: normal completion <SetupNameArray>: Array(<SetupName>, <SetupName>, ...) <SetupName> Type: <string> Name of the solution setup to solve. return_status = oDesign.Solve Array(Setup1, Setup2)

Parameters:

Example:

Undo (Design)
Use: Command: Syntax: Return Value: Example: Cancels the last design-level command. Edit>Undo Undo None oDesign.Undo

Redo (Design)
Use: Command: Syntax: Return Value: Example: Reapplies the last design-level command. Edit>Redo Redo None oDesign.Redo

RenameDesignInstance
Use: Renames a design instance.

9-6 Design Object Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters:

Example:

Right-click a design instance in the project tree, and then click Rename on the shortcut menu. RenameDesignInstance <OldName>, <NewName> None <OldName> Type: <string> Old design name. <NewName> Type: <string> New design name. oDesign.RenameDesignInstance "Maxwell2DDesign1",_ "MaxwellDesign2" If there are any mesh seed operations that were defined and not yet simulated in the current variation for the specified solve setups, this command applies them to modify the current mesh. If necessary, the command computes an initial mesh first. No further simulating is done. Click Maxwell3D or Maxwell2D>Analysis Setup>Apply Mesh Operations, or right-click the Analysis folder in the project tree and select Apply Mesh Operations. ApplyMeshOps <SetupNameArray> Type: <int> -1: completed with error 0: completed successfully <SetupNameArray > Array(<SetupName1>, < SetupName 2>,...) <SetupName> Type: <string> Name of the solution setup on which to apply the mesh. oDesign.ApplyMeshOps Array("Setup1","Setup2")

ApplyMeshOps
Use:

Command:

Syntax: Return Value:

Parameters:

Example:

EditNotes
Use: Command: Syntax: Return Value: Edits design notes. Click Maxwell>Edit Notes, or right-click a design instance in the project tree and select Edit Notes. EditNotes <DesignNotes> None
Design Object Script Commands 9-7

Introduction to Scripting in Maxwell

Parameters:

Example:

<DesignNotes> Type: <string> Design notes. oDesign. EditNotes "Design for testing"

AnalyzeAll (Maxwell menu)


Use: Command: Syntax: Return Value: Parameters: Example: Analyzes the nominal problems and all the Optimetrics problems for all the setups under the selected design. Click Maxwell>Analyze All, or right-click a design instance in the project tree and select Analyze All. AnalyzeAll None None oDesign.AnalyzeAll

AnalyzeAllNominal
Use: Command: Syntax: Return Value: Parameters: Example: Analyzes the nominal problems for all the setups under the design. Right-click the Analysis folder in the project tree, and select Analyze. AnalyzeAllNominal None None oDesign.AnalyzeAllNominal

Analyze
Use: Command: Syntax: Return Value: Parameters: Analyzes the nominal problem for the designated setup under the design. Right-click the solve setup, and select Analyze. Analyze <SetupName> None <SetupName> Type: <string> Name of the solution setup to solve. oDesign.Analyze "Setup1"

Example:

AnalyzeDistributed
Use: Performs a distributed analysis.

9-8 Design Object Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value:

Parameters: Example:

Right-click Analysis setup (or Parametrics setup), and select Distribute Analysis. AnalyzeDistributed <SetupName> <AnalysisStatus> Type: <int> -1: completed with error 0: completed successfully <SetupName> For frequency sweeps: oDesign.AnalyzeDistributed "Setup1"

SetConductivityThreshold
Use: Command: Syntax: Return Value: Parameters: Sets the thresholds for a perfect conductor and an insulator/conductor. Maxwell>Set Material Thresholds or right click on design instance in project tree and choose "Set Material Thresholds" SetConductivityThreshold <PerfectConductorThreshold> <Insulator/ConductorThreshold> None <PerfectConductorThreshold> Type: <double> Perfect conductor threshold <Insulator/ConductorThreshold> Type: <double> Insulator/conductor threshold oDesign.SetConductivityThreshold 1E+030, 1.00

Example:

ExportConvergence
Use: Command: Syntax: Return Value: Parameters: Exports convergence data to file for the given variation. None ExportConvergence <SetupName>, <VariationString>, <FilePath> None <SetupName> Type: <string> Example: "Setup1" <VariationString>
Design Object Script Commands 9-9

Introduction to Scripting in Maxwell

Example:

Type: <string> Example: "radius = 3mm" The empty variation string ("") is interpreted to mean the current nominal variation. <FilePath> Type: <string> Example: "c:\convergence.conv" overwriteIfExists <Boolean> Type: <string> Example: overwriteIfExists=TRUE If "overwriteIfExists" is TRUE, then the playback of the script overwrites an existing file. If FALSE, it does not. The default is "TRUE". oDesign.ExportConvergence "Setup1", "x_size = 2mm", "c:\convergence.conv"

GetVariationVariableValue
Use: Command: Syntax: Return Value: Parameters: Finds the value of a variable for a specific variation string. None GetVariationVariableValue(<VariationString>, <VariableName>) Returns a double precision value in SI units, interpreted to mean the value of the variable contained in the variation string. <VariationString> Type: string <VariableName> Type: string Example: varval = oDesign.GetVariationVariableValue("x_size = 2mm y_size = 1mm", "y_size")

Example:

ExportMeshStats
Use: Command: Parameters: Exports the mesh statistics to a file. None. <SetupName> Type: <string>

9-10 Design Object Script Commands

Introduction to Scripting in Maxwell

Example:

Example: "Setup1 " <VariationString> Type: <string> Example: "radius = 3mm" The empty variation string ("") is interpreted to mean the current nominal variation. <FilePath> Type: <string> Example: "c:\convergence.conv" overwriteIfExists <Boolean> Type: <string> Example: overwriteIfExists=TRUE If "overwriteIfExists" is TRUE, then the playback of the script overwrites an existing file. If FALSE, it does not. The default is "TRUE". oDesign.ExportMeshStats "Setup1", "offset=" & Chr(39) & "0.09in" & Chr(39) & "","C:\mydir\meshstats.ms" "tat"

ExportProfile
Use: Syntax: Return Value: Parameters: Exports a solution profile to file. ExportProfile <SetupName>, <VariationString>, <FilePath> None <SetupName> Type: <string> Example: "Setup1" <VariationString> Type: <string> Example: "radius = 3mm" The empty variation string ("") is interpreted to mean the current nominal variation. <FilePath> Type: <string> Example: "c:\profile.prof" overwriteIfExists <Boolean> Type: <string> Example: overwriteIfExists=TRUE
Design Object Script Commands 9-11

Introduction to Scripting in Maxwell

Example:

If "overwriteIfExists" is TRUE, then the playback of the script overwrites an existing file. If FALSE, it does not. The default is "TRUE". oDesign.ExportProfile "Setup1", "", "c:\profile.prof"

GetNominalVariation
Use: Command: Syntax: Return Value: Parameters: Example: Gets the nominal variation string None GetNominalVariation() Returns a string representing the nominal variation None var = oDesign.GetNominalVariation()

Is2D
Use: Command: Syntax: Return Value: Parameters: Example: Determines if the current design is 2D. None Is2D Boolean True if the design is 2D. None oDesign.Is2D

Is3D
Use: Command: Syntax: Return Value: Parameters: Example: Determines if the current design is 3D. None Is3D Boolean True if the design is 3D. None oDesign.Is3D

GetOutputVariableValue, AddOutputVariable, EditOutputVariable, DeleteOutputVariable


Output Variable commands. See Output Variable Script Commands.

9-12 Design Object Script Commands

Introduction to Scripting in Maxwell

ChangeProperty, GetPropertyValue, SetPropertyValue, GetProperties, GetVariableValue, SetVariableValue, GetVariables


Commands for manipulating properties. See Property Script Commands.

CreateReport, RemoveReport, GetReportNames


Commands for manipulating reports. See Reporter Editor Script Commands.

AddDataset, EditDataset, DeleteDataset


Commands for manipulating datasets. See Dataset Script Commmands.

Design Object Script Commands 9-13

Introduction to Scripting in Maxwell

9-14 Design Object Script Commands

10

Output Variable Script Commands

The Output variable commands should be executed by the "OutputVariable" module. First obtain the output variable module from oDesign and use it for outputvariable commands. Set oModule = oDesign.GetModule("OutputVariable") oModule.CommandName <args> The old output variable commands are still supported but they are deprecated and produce a warning in the message window. The old Output variable commands were executed by the oModule object. Set oDesign = Project.SetActiveDesign("MaxwellModel1") oDesign.CommandName <args>

Output Variable Script Commands 10-1

Introduction to Scripting in Maxwell

General Output Variable Script Commands


Following are script commands recognized by the oDesign object: CreateOutputVariable EditOutputVariable DeleteOutputVariable DoesOutputVariableExist GetOutputVariables GetOutputVariableValue

CreateOutputVariable
Use: Adds a new output variable to the output variable list. Output variables are associated with a name and an expression. The name of an output variable is not permitted to collide with design variables, Sim values, or other output variable names. It cannot have spaces or any arithmetic or other operators. The definitions cannot be cyclic. For example, A = 2*B, B=3*A is not allowed. Maxwell3D>Results>Output Variables, Maxwell2D>Results>Output Variables, or RMxprt>Results>Output Variables. CreateOutputVariable <OutputVarName>, <Expression>, <SolutionName>, <ReportTypeName>, <simValueContext> None <OutputVarName> Type: <string> Name of the output variable. <Expression> Type: <value> Value to assign to the variable. <SolutionName> Type: <string> Name of the solution as listed in the output variable UI. For example: "Setup1 : Last Adaptive" <ReportTypeName> Type: <string> The name of the report type as seen in the output variable UI. <simValueContext> Type: <variant> Context for which the output variable expression is being evaluated

Command: Syntax: Return Value: Parameters:

10-2 Output Variable Script Commands

Introduction to Scripting in Maxwell

Example:

Set oModule = oDesign.GetModule("OutputVariable") oModule.CreateOutputVariable "magforce", "mag(Force1.Force_x)", _ "Setup1 : LastAdaptive", "Magnetostatic", Array()

EditOutputVariable
Use: Syntax: Change the name or expression of an existing output variable. EditOutputVariable <OrigVarName>, <NewExpression>, <NewVarName>, <SolutionName>, <ReportTypeName>, <SimValueContext> Provide empty quotes as the NewVarName or NewExpression if it should not be changed. None <OrigVarName> Type: <string> Original name of the variable. <NewExpression> Type: <value> New value to assign to the variable. <NewVarName> Type: <string> New name of the variable if any, or else pass an empty string. <SolutionName> Type: <string> Name of the solution as seen in the output variable UI. For example: "Setup1 : Last Adaptive" <ReportTypeName> Type: <string> The name of the report type as seen in the output variable UI. <SimValueContext> Type: <variant> Context for which the output variable expression is being evaluated. Set oModule = oDesign.GetModule("OutputVariable") oModule.EditOutputVariable "magforce", "mag(Force1.Force_z)", _ "magforce", "Setup1 : LastAdaptive", "Magnetostatic",
Output Variable Script Commands 10-3

Return Value: Parameters:

Example:

Introduction to Scripting in Maxwell

Array()

DeleteOutputVariable
Use: Command: Syntax: Return Value: Parameters: Delete an existing output variable. The variable can only be deleted if it is not being used by any traces. Delete button on the Output Variables dialog. DeleteOutputVariable <VarName> None <VarName> Type: <string> Name of the output variable. Set oModule = oDesign.GetModule("OutputVariable") oModule.DeleteOutputVariable "magforce"

Example:

DoesOutputVariableExist
Use: Syntax: Return Value: Parameters: Determines whether a specified output variable exists. DoesOutputVariableExist <OutputVarName> Boolean <OutputVarName> Type: <string> Name of the output variable. OutputVarmagforceExists = oDesign.DoesOutputVariableExist(magforce)

Example:

GetOutputVariables
Use: Syntax: Return Value: Parameters: Example: Gets a list of output variables. GetOutputVariables An array of output variable names. None Set oModule = oDesign.GetModule("OutputVariable") ov = oDesign.GetOutputVariables

GetOutputVariableValue
Use: Gets the double value of an output variable. Only those expressions that return a double value are supported. The expression is evaluated only for a single point.

10-4 Output Variable Script Commands

Introduction to Scripting in Maxwell

Syntax:

Return Value: Parameters:

GetOutputVariableValue(<OutputVarName>, <IntrinsicVariation>, <SolutionName>, <ReportTypeName>, <SimValueContext>) Double value of the output variable. <OutputVarName> Type: <string> Original name of the variable <Variation> Type: <string> A set of variable, value pairs to use when evaluating the output expression. If no variables are present, a null string must be used.The EddyCurrent solution type requires at least the specification of frequency as shown here while the transient solver will require Time as a minimum entry. For example: "" (Null String) "freq=60" (Eddy current example) <SolutionName> Type: <string> Name of the solution as listed in the output variable dialog box as shown in SimValueContext. For example: "Setup1 : Last Adaptive" <ReportTypeName > Type: <string> The name of the report type as seen in the output variable dialog box as shown in SimValueContext. Note If the Output Variable is based upon a field quantity, then the ReportTypeName must be set to "Fields". <SimValueContext> Type: <string> Context for which the output variable expression is being evaluated. This section is related to the Parameters or Geometry fields in the UI that specify a context for extracting data quantities. This can be an empty string if there is no context. The Context section of the Output Variables dialog box contains the information that is required when getting the value of the Output Variable. Note these values when using the dialog box to create the Output

Output Variable Script Commands 10-5

Introduction to Scripting in Maxwell

Variable.

10-6 Output Variable Script Commands

Introduction to Scripting in Maxwell

Hint

Variation variables can be identified by doing a Data Table report and viewing the variable specifications in the table header. For example:

Also, as shown below, the Trace and Families tabs on the Report dialog box can be used as illustrated to identify variation variables.

Output Variable Script Commands 10-7

Introduction to Scripting in Maxwell

Example:

Dim Val Val= oModule.GetOutputVariableValue("tempmag",_ "freq='60' coilcurrent='1000' gapsize='-0.001'",_ "Setup1 : LastAdaptive", "EddyCurrent", "") Val= oModule.GetOutputVariableValue("tempmag",_ "coilcurrent='1000' gapsize='-0.001'",_ "Setup1 : LastAdaptive", "Magnetostatic", "") Val= oModule.GetOutputVariableValue("BFieldMag",_ "", "Setup1 : LastAdaptive", "Fields", "") Val= oModule.GetOutputVariableValue("MagBatPoint1",_ "freq='60' coilcurrent='1000' gapsize='-0.001' Phase=0deg", "Setup1 : LastAdaptive", "Fields", Array("Context:=", "Point1"))

10-8 Output Variable Script Commands

11

3D Modeler Editor Script Commands

Modeler commands should be executed by the 3D Modeler editor. Set oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.CommandName <args>

3D Modeler Editor Script Commands 11-1

Introduction to Scripting in Maxwell

Conventions Used in the 3D Modeler Chapter


<Attributes Array> Array("NAME:Attributes", "Name:=", <string>, "Flags:=", <string>,"Color:=", <string>, "Transparency:=", <value>, "PartCoordinateSystem:=", <string>, "MaterialName:=", <string>, "Solveinside:=", <bool>) Flags Format is a string containing any of the following flags separated by the # character: Model NonModel Wireframe Example: "Flags:=", "NonModel#Wireframe" Color Format is a string containing an R,G,B triple formatted as "(R G B)". Example: "Color:=", "(255 255 255)" Transparency Specify a number between 0 and 1. PartCoordinateSystem Orientation of the primitive. Specify the name of one of the defined coordinate systems. <SelectionsArray> Array("NAME:Selections", "Selections:=", <string>) Selections Comma-separated list of parts on which to perform the operation. Example: "Selections:=", "Rect1, Rect2"

11-2 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Draw Menu Commands


Following are the commands used for drawing: CreateBondwire CreateBox CreateCircle

CreateCone CreateCutplane CreateCylinder CreateEllipse CreateHelix CreatePoint CreateUserDefinedPart CreatePolyline CreateRectangle CreateRegularPolyhedron CreateRegularPolygon CreateSphere CreateSpiral CreateTorus DeletePolylinePoint EditPolyline InsertPolylineSegment PurgeHistory SweepAlongPath SweepAlongVector SweepAroundAxis

CreateBondwire
Use: Command: Syntax: Return Value: Parameters: Creates a bondwire primitive. Draw>Bondwire CreateBondwire <ParametersArray>, <AttributesArray> None <ParametersArray> Array("NAME:BondwireParameters", "WireType:=", <string>,
3D Modeler Editor Script Commands 11-3

Introduction to Scripting in Maxwell

"WireDiameter:=", <value>, "NumSides:=", <value>, "XPadPos:=", <value>, "YPadPos:=", <value>, "ZPadPos:=", <value>, "XDir:=", <value>, "YDir:=", <value>, "ZDir:=", <value>, "Distance:=", <value>, "h1:=", <value>, "h2:=", <value>, "alpha:=", <value>, "beta:=", <value>, "WhichAxis:=", <string>) WireType Should be one of: "JEDEC_4Points", "JEDEC_5Points" Example: "WireType:=", "JEDEC_4Points" WhichAxis Axis normal to the plane where the wire is drawn. Possible values are: "X", "Y", "Z" Example: "WhichAxis:=", "Z" means the bond wire will be drawn on the XY plane.

CreateBox
Use: Command: Syntax: Return Value: Parameters: Creates a box primitive. Draw>Box CreateBox <BoxParametersArray>, <AttributesArray> None <BoxParametersArray> Array("NAME:BoxParameters", "XPosition:=", <value>, "YPosition:=", <value>, "ZPosition:=", <value>, "XSize:=",<value>, "YSize:=",<value>, "ZSize:=",<value>)

11-4 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Example:

Set oEditor = oDesign.SetActiveEditor("3D Modeler") oEditor.CreateBox Array("NAME:BoxParameters", _ "CoordinateSystemID:=", -1, "XPosition:=", _ "1mm", "YPosition:=", "1mm", "ZPosition:=", "0mm", _ "XSize:=", "1mm", "YSize:=", "1mm", "ZSize:=", "1mm"),_ Array("NAME:Attributes", "Name:=", "Box1", "Flags:=", "", _"Color:=", "(132 132 193)", "Transparency:=", 0, _ "PartCoordinateSystem:=", "Global", "MaterialName:=", _ "vacuum", "SolveInside:=", true)_ oEditor.DuplicateAlongLine Array("NAME:Selections", "Selections:=", "Box1"), _ Array("NAME:DuplicateToAlongLineParameters",_ "CoordinateSystemID:=", -1, "CreateNewObjects:=", true, _ "XComponent:=", "1mm", "YComponent:=", "1mm", "ZComponent:=", _ "0mm", "NumClones:=", "2"), _ Array("NAME:Options", "DuplicateBoundaries:=", true)

CreateCircle
Use: Command: Syntax: Return Value: Parameters: Creates a circle primitive. Draw>Circle CreateCircle <CircleParametersArray>, <AttributesArray> None <CircleParametersArray> Array("NAME:CircleParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "Radius:=", <value>, "WhichAxis:=", <string>) WhichAxis Axis of the normal vector to the circle. Possible values are: "X", "Y", "Z" Example: "WhichAxis:=", "Z" means the circle will be drawn in the XY plane.

3D Modeler Editor Script Commands 11-5

Introduction to Scripting in Maxwell

CreateCone
Use: Command: Syntax: Return Value: Parameters: Creates a cone primitive. Draw>Cone CreateCone <ConeParametersArray>, <AttributesArray> None <ConeParametersArray> Array("NAME:ConeParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "WhichAxis:=", <string>, "Height:=", <value>, "BottomRadius:=", <value>, "TopRadius:=", <value>) WhichAxis Axis of the cone. Possible values are: "X", "Y", "Z" Example: "WhichAxis:=", "Z"

CreateCutplane
Use: Command: Syntax: Return Value: Parameters: Creates a cutplane. Only the name and color attributes from <AttributesArray> are supported. Draw>Plane CreateCutplane <CutplaneParametersArray>, <AttributesArray> None <CutplaneParametersArray> Array("NAME:PlaneParameters", "PlaneBaseX:=", <value>, "PlaneBaseY:=", <value>, "PlaneBaseZ:=", <value>, "PlaneNormalX:=", <value>, "PlaneNormalY:=", <value>), "PlaneNormalZ:=", <value>)

11-6 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

CreateCylinder
Use: Command: Syntax: Return Value: Parameters: Creates a cylinder primitive. Draw>Cylinder CreateCylinder <CylinderParametersArray>, <AttributesArray> None <CylinderParametersArray> Array("NAME:CylinderParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "Radius:=", <value>, "Height:=", <value>, "WhichAxis:=", <string>) WhichAxis Axis of the cylinder. Possible values are:"X", "Y", "Z" Example: "WhichAxis:=", "Z"

CreateEllipse
Use: Command: Syntax: Return Value: Parameters: Creates an ellipse primitive. Draw>Ellipse CreateEllipse <EllipseParametersArray>, <AttributesArray> None <EllipseParametersArray> Array("NAME:EllipseParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "MajRadius:=", <value>, "Ratio:=", <value>, "WhichAxis:=", <string>) WhichAxis Axis of the normal vector to the ellipse. Possible values are: "X", "Y", "Z" Example: "WhichAxis:=", "Z" means the ellipse is drawn in the XY plane.
3D Modeler Editor Script Commands 11-7

Introduction to Scripting in Maxwell

CreateHelix
Use: Command: Syntax: Return Value: Parameters: Creates a helix by sweeping the specified 2D objects. Draw>Helix CreateHelix <SelectionsArray>, <HelixParametersArray> None <SelectionsArray> Array("NAME:Selections", "Selections:=", <string>) Selections Comma-separated list of parts to sweep. Example: "Selections:=", "Rect1, Rect2" <HelixParametersArray> Array("NAME:HelixParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "XStartDir:=", <value>, "YStartDir:=", <value>, "ZStartDir:=", <value>, "Thread:=", <value>, "NumThread:=", <value>, "RightHand:=", <bool>)

CreatePoint
Use: Command: Syntax: Return Value: Parameters: Creates a point. Only the name and color attributes from <AttributesArray> are supported. Draw>Point CreatePoint <PointParametersArray>, <AttributesArray> None <PointParametersArray> Array(NAME:PointParameters, "PointX:=", <value>, "PointY:=", <value>, "PointZ:=", <value>)

11-8 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

CreateUserDefinedPart
Use: Command: Syntax: Return Value: Parameters: Creates a user-defined part. Draw>User Defined Primitive CreateUserDefinedPart <UserDefinedParametersArray>, <AttributesArray> None <UserDefinedParametersArray> Array("NAME:UserDefinedPrimitiveParameters", CoordinateSystemID:=", <value>, "DllName:=", <string>, "Library:=", <string>, Array("NAME:ParamVector", Array("NAME:Pair", "Name:=", <string>, "Value:=", <value>)) Example: oEditor.CreateUserDefinedPart Array("NAME:UserDefinedPrimitiveParameters",_ "CoordinateSystemID:=", -1, "DllName:=",_ "Examples/RectangularSpiral", "NoOfParameters:=", 6,_ "Library:=", "syslib", Array("NAME:ParamVector",_ Array("NAME:Pair", "Name:=", "Xpos", "Value:=", "0mm"),_ Array("NAME:Pair", "Name:=", "Ypos", "Value:=", "0mm"),_ Array("NAME:Pair", "Name:=", "TurnSep", "Value:=", "5mm"),_ Array("NAME:Pair", "Name:=", "Turns", "Value:=", "2"),_ Array("NAME:Pair", "Name:=", "Width", "Value:=", "2mm"),_ Array("NAME:Pair", "Name:=", "Height", "Value:=", "2mm"))),_ Array("NAME:Attributes", "Name:=", "RectangularSpiral1",_ "Flags:=", "", "Color:=", "(132 132 193)", "Transparency:=", _ 0, "PartCoordinateSystem:=", "Global", "MaterialName:=",_ "copper", "SolveInside:=", false)

CreatePolyline
Use: Command: Syntax: Creates a polyline primitive. Draw>Polyline CreatePolyline <PolylineParametersArray>,
3D Modeler Editor Script Commands 11-9

Introduction to Scripting in Maxwell

Return Value: Parameters:

<AttributesArray> None <PolylineParametersArray> Array("NAME:PolylineParameters", "IsPolylineCovered:=", <bool>, "IsPolylineClosed:=", <bool>, <PolylinePointsArray>, <PolylineSegmentsArray>) <PolylinePointsArray> Array("NAME:PolylinePoints", <OnePointArray>, <OnePointArray>, ...) <OnePointArray> Array("NAME:PLPoint", "X:=", <value>, "Y:=", <value>, Z:=", <value>)) <PolylineSegmentsArray> Array("NAME:PolylineSegments", <OneSegmentArray>, <OneSegmentArray>, ...) <OneSegmentArray> Array("NAME:PLSegment", "SegmentType:=", <string>, "StartIndex:=", <value>, "NoOfPoints:=", <value>) SegmentType Can be "Line", "Arc", "Spline", or "AngularArc"

CreateRectangle
Use: Command: Syntax: Return Value: Parameters: Creates a rectangle primitive. Draw>Rectangle CreateRectangle <RectangleParametersArray>, <AttributesArray> None <RectangleParametersArray> Array("NAME:RectangleParameters",

11-10 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

"XStart:=", <value>, "YStart:=", <value>, "ZStart:=", <value>, "Width:=", <value>, "Height:=", <value>, "WhichAxis:=", <string>) WhichAxis Axis of the normal vector to the rectangle. Possible values for 3D Designs are: "X", "Y", "Z". For 2D XY Designs "Whichaxis:=" should be set to "Z". For 2D RZ Designs "Whichaxis:=" should be set to "Y". Example: "WhichAxis:=", "Z" means the rectangle will be drawn in the XY plane.

CreateRegularPolyhedron
Use: Command: Syntax: Return Value: Parameters: Creates a regular polyhedron primitive. Draw>Regular Polyhedron CreateRegularPolyhedron <PolyhedronParametersArray>, <AttributesArray> None <PolyhedronParametersArray> Array("NAME:PolyhedronParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "XStart:=", <value>, "YStart:=", <value>, "ZStart:=", <value>, "Height:=", <value>, "NumSides:=", <value>, "WhichAxis:=", <string>) NumSides: Specify a number greater than 2. WhichAxis Axis of the polyhedron. Possible values for 3D Designs are: "X", "Y", "Z"
3D Modeler Editor Script Commands 11-11

Introduction to Scripting in Maxwell

For 2D XY Designs "Whichaxis:=" should be set to "Z". For 2D RZ Designs "Whichaxis:=" should be set to "Y". Example: "WhichAxis:=", "Z"

CreateRegularPolygon
Use: Command: Syntax: Return Value: Parameters: Creates a regular polygon primitive. Draw>Regular Polygon CreateRegularPolygon <PolygonParametersArray>, <AttributesArray> None <PolygonParametersArray> Array("NAME:RegularPolygonParameters", "XCenter:=",<value>, "YCenter:=",<value>, "ZCenter:=",<value>, "XStart:=", <value>, "YStart:=", <value>, "ZStart:=", <value>, "NumSides:=", "12", "WhichAxis:=", <string>) NumSides Specify a number greater than 2. WhichAxis Axis of normal vector to the polygon. Possible values for 3D Designs are: "X", "Y", "Z" For 2D XY Designs "Whichaxis:=" should be set to "Z". For 2D RZ Designs "Whichaxis:=" should be set to "Y". Example: "WhichAxis:=", "Z" means the polygon will be drawn in the XY plane.

CreateSphere
Use: Command: Syntax: Return Value: Parameters: Creates a sphere primitive. Draw>Sphere CreateSphere <SphereParametersArray>, <AttributesArray> None <SphereParametersArray>

11-12 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Array("NAME:SphereParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "Radius:=", <value>)

CreateSpiral
Use: Command: Syntax: Return Value: Parameters: Creates a spiral by sweeping the specified 2D objects. Draw>Spiral CreateSpiral <SelectionsArray>, <SpiralParametersArray> None <SelectionsArray> Array("NAME:Selections", "Selections:=", <string>) Selections Comma-separated list of parts to sweep. Example: Selections:=, Rect1, Rect2 <SpiralParametersArray> Array("NAME:SpiralParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>, "XStartDir:=", <value>, "YStartDir:=", <value>, "ZStartDir:=", <value>, "NumThread:=", <value>, "RightHand:=", <bool>, "RadiusIncrement:=", <value>)

CreateTorus
Use: Command: Syntax: Return Value: Parameters: Creates a torus primitive. Draw>Torus CreateTorus <TorusParametersArray>, <AttributesArray> None <TorusParametersArray> Array("NAME:TorusParameters", "XCenter:=", <value>, "YCenter:=", <value>, "ZCenter:=", <value>,
3D Modeler Editor Script Commands 11-13

Introduction to Scripting in Maxwell

"MajorRadius:=", <value>, "MinorRadius:=", <value>, "WhichAxis:=", <string>) WhichAxis Axis of the torus. Possible values are: "X", "Y", "Z" Example: "WhichAxis:=", "Z"

EditPolyline
Use: Command: Modifies a polyline primitive. Specify the name of the polyline to modify and the new set of data for the polyline. Draw>Line Segment>Insert Segment Before>Straight Draw>Line Segment>Insert Segment Before>Spline Draw>Line Segment>Insert Segment Before>3 Point Arc Draw>Line Segment>Insert Segment Before>Center Point Arc Draw>Line Segment>Insert Segment After>Straight Draw>Line Segment>Insert Segment After>Spline Draw>Line Segment>Insert Segment After>3 Point Arc Draw>Line Segment>Insert Segment After>Center Point Arc EditPolyline <SelectionsArray>, <PolylineParametersArray>, None <SelectionsArray> Array("NAME:Selections", "Selections:=", "string") Selections Name of the polyline to modify. The name should be formatted as "<PolylineName>:CreatePolyline:1". Example: "Selections:=", "Polyline1:CreatePolyline:1"

Syntax: Return Value: Parameters:

InsertPolylineSegment
Use: Command: Inserts a polyline segment either before or after an existing segment of a polyline primitive. Draw>Line Segment>Insert Segment Before>Straight Draw>Line Segment>Insert Segment Before>Spline Draw>Line Segment>Insert Segment Before>3 Point Arc Draw>Line Segment>Insert Segment Before>Center Point Arc Draw>Line Segment>Insert Segment After>Straight

11-14 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

Draw>Line Segment>Insert Segment After>Spline Draw>Line Segment>Insert Segment After>3 Point Arc Draw>Line Segment>Insert Segment After>Center Point Arc InsertPolylineSegment <InsertPolylineSegmentArray> None <InsertPolylineSegmentArray> Array("Name:Insert Polyline Segment", "Selections:=", <string>, "Segment Index:=", <value>, "At Start:=", <bool>, "SegmentType:=", <string> <PolylinePointsArray>) <PolylinePointsArray> Array("Name:Polyline Points", <OnePointArray>, <OnePointArray>, ...) <OnePointArray> Array("Name:PLPoint", "X:=", <value>, "Y:=", <value>, "Z:=", <value>) Selections Name of the polyline to modify. The name should be formatted as "<PolylineName>:CreatePolyline:1". Example: "Selections:=", "Polyline1:CreatePolyline:1" SegmentType Can be "Line", "Arc", "Spline", or "AngularArc"

PurgeHistory
Use: Command: Syntax: Purges the construction history of the selected object. For complex objects this simplifies the object and can improve modeler speed. Modeler>Purge History PurgeHistory <PurgeHistoryArray>
3D Modeler Editor Script Commands 11-15

Introduction to Scripting in Maxwell

Return Value: Parameters:

Example:

None <PurgeHistoryArray> Array(Name:Selections, Selections:=, <string>, NewPartsModelFlag:=, <string>) Selections Name of the object to purge. NewPartsModelFlag Flag to indicate model properties, Model or NonModel. oEditor.PurgeHistory Array("NAME:Selections", "Selections:=", "Polygon1", "NewPartsModelFlag:=", "Model")

DeletePolylinePoint
Use: Command: Syntax: Return Value: Parameters: Deletes either a start or end point from an existing polyline segment. Edit>Delete Start Point Edit>Delete End Point DeletePolylinePoint <DeletePointArray> None <DeletePointArray> Array(Name:Delete Point, Selections:=, <string>, Segment Index:=, <value>, At Start:=, <bool>) Selections Name of the polyline to modify. The name should be formatted as <PolylineName>:CreatePolyline:1. Example: Selections:=, Polyline1:CreatePolyline:1

SweepAlongPath
Use: Command: Syntax: Return Value: Sweeps the specified 1D or 2D parts along a path. The last 1D object specified identifies the path for the sweep. Draw>Sweep>Along Path SweepAlongPath <SelectionsArray>, <PathSweepParametersArray> None

11-16 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Parameters:

Example:

<PathSweepParametersArray> Array("NAME:PathSweepParameters", "DraftAngle:=", <value>, "DraftType:=", <string>, "TwistAngle:=", <value>) DraftType Possible values are "Extended", "Round", "Natural" oEditor.SweepAlongPath _ Array("NAME:Selections", "Selections:=",_ "Polygon1,Polyline1"),_ Array("NAME:PathSweepParameters", _ "DraftAngle:=", "0deg",_ "DraftType:=", "Round",_ "TwistAngle:=", "30deg")

SweepAlongVector
Use: Command: Syntax: Return Value: Parameters: Sweeps the specified 1D or 2D parts along a vector. Draw>Sweep>Along Vector SweepAlongVector <SelectionsArray>, <VecSweepParametersArray> None <VecSweepParametersArray> Array("NAME:VectorSweepParameters", "DraftAngle:=", <value>, "DraftType:=", <string>, "SweepVectorX:=", <value>, _ "SweepVectorY:=", <value>, "SweepVectorZ:=", <value) DraftType Possible values are "Extended", "Round", "Natural"

SweepAroundAxis
Use: Command: Syntax: Sweeps the specified 1D or 2D parts around an axis. Draw>Sweep>Around Axis SweepAroundAxis <SelectionsArray>,
3D Modeler Editor Script Commands 11-17

Introduction to Scripting in Maxwell

Return Value: Parameters:

<AxisSweepParametersArray> None <AxisSweepParametersArray> Array("NAME:AxisSweepParameters", "DraftAngle:=", <value>, "DraftType:=", <string>, "SweepAxis:=", <string>, "SweepAngle:=", <value>) DraftType Possible values are "Extended", "Round", "Natural" SweepAxis Possible values are "X", "Y", "Z"

11-18 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Edit Menu Commands


Following are the commands used for editing: Copy DuplicateAlongLine DuplicateAroundAxis

DuplicateMirror Mirror Move OffsetFaces Paste Rotate Scale

Copy
Use: Command: Syntax: Return Value: Copies specified parts. Edit>Copy Copy <SelectionsArray> None

DuplicateAlongLine
Use: Command: Syntax: Return Value: Parameters: Duplicates specified parts along a line. Edit>Duplicate>Along Line DuplicateAlongLine <SelectionsArray>, <DupLineParametersArray> None <DupLineParametersArray> Array("NAME:DuplicateToAlongLineParameters", "XComponent:=", <value>, "YComponent:=", <value>, "ZComponent:=", <value>, "NumClones:=", <value>) NumClones Specify a number greater than 1.

3D Modeler Editor Script Commands 11-19

Introduction to Scripting in Maxwell

DuplicateAroundAxis
Use: Command: Syntax: Return Value: Parameters: Duplicates specified parts around an axis. Edit>Duplicate>Around Axis DuplicateAroundAxis <SelectionsArray>, <DupAxisParametersArray> None <DupAxisParametersArray> Array("NAME:DuplicateAroundAxisParameters", "WhichAxis:=", <string>, "AngleStr:=", <value>, "NumClones:=",<value>) WhichAxis Axis to duplicate around. Possible values for 3D Designs are: "X", "Y", "Z". For 2D XY Designs, "Whichaxis:=" should be set to "Z". For 2D RZ Designs, "Whichaxis:=" should be set to "Y". Example: "WhichAxis:=", "Z" NumClones: Specify a number greater than 1.

DuplicateMirror
Use: Command: Syntax: Return Value: Parameters: Duplicates specified parts according to a mirror plane. Edit>Duplicate>Mirror DuplicateMirror <SelectionsArray>, <DupMirrorParametersArray> None <DupMirrorParametersArray> Array("NAME:DuplicateToMirrorParameters", "DuplicateMirrorBaseX:=", <value>, "DuplicateMirrorBaseY:=", <value>, "DuplicateMirrorBaseZ:=", <value>, "DuplicateMirrorNormalX:=", <value>, "DuplicateMirrorNormalY:=", <value>, "DuplicateMirrorNormalZ:=", <value>)

11-20 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

For 2D XY Designs, Z parameters should be set to "0". For 2D RZ Designs, Y parameters should be set to "0".

Mirror
Use: Command: Syntax: Return Value: Parameters: Mirrors specified parts. Edit>Arrange>Mirror Mirror <SelectionsArray>, <MirrorParametersArray> None <MirrorParametersArray> Array("NAME:MirrorParameters", "MirrorBaseX:=", <value>, "MirrorBaseY:=", <value>, "MirrorBaseZ:=", <value>, "MirrorNormalX:=", <value>, "MirrorNormalY:=", <value>, "MirrorNormalZ:=", <value>)

Move
Use: Command: Syntax: Return Value: Parameters: Moves specified parts. Edit>Arrange>Move Move <SelectionsArray>, <MoveParametersArray> None <MoveParametersArray> Array("NAME:TranslateParameters", "TranslateVectorX:=", <value>, "TranslateVectorY:=", <value>, "TranslateVectorZ:=", <value>) For 2D XY Designs, "TranslateVectorZ:=" should be set to "0". For 2D RZ Designs, "TranslateVectorY:=" should be set to "0".

OffsetFaces
Use: Command: Offsets the faces of specified parts. Edit>Arrange>Offset
3D Modeler Editor Script Commands 11-21

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

OffsetFaces <SelectionsArray>, <OffsetParametersArray> None <OffsetParametersArray> Array("NAME:OffsetParameters", "OffsetDistance:=", <value>)

Paste (Modeler)
Use: Command: Syntax: Return Value: Pastes copied data. Edit>Paste Paste None

Rotate
Use: Command: Syntax: Return Value: Parameters: Rotates specified parts. Edit>Arrange>Rotate Rotate <SelectionsArray>, <RotateParametersArray> None <RotateParametersArray> Array("NAME:RotateParameters", "RotateAxis:=", <string> "RotateAngle:=", <value>) RotateAxis Possible values for 3D Designs are: "X", "Y", "Z". For 2D XY Designs, "RotateAxis:=" should be set to "Z". For 2D RZ Designs, "RotateAxis:=" should be set to "Y".

Scale
Use: Command: Syntax: Return Value: Parameters: Scales specified parts. Edit>Scale Scale <SelectionsArray>, <ScaleParametersArray> None <ScaleParametersArray> Array("NAME:ScaleParameters", "ScaleX:=", <value>, "ScaleY:=", <value>,

11-22 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

"ScaleZ:=", <value>) For 2D XY Designs, "ScaleZ:=" should be set to "0". For 2D RZ Designs, "ScaleY:=" should be set to "0".

3D Modeler Editor Script Commands 11-23

Introduction to Scripting in Maxwell

Modeler Menu Commands


Following are the Modeler commands: AssignMaterial Chamfer Connect

CoverLines CoverSurfaces CreateEntityList CreateFaceCS CreateObjectFromEdges CreateObjectFromFaces CreateRelativeCS DeleteLastOperation DetachFaces EditEntityList EditFaceCS EditRelativeCS Export Fillet GenerateHistory Import ImportDXF Intersect MoveFaces Section SeparateBody SetModelUnits SetWCS ShowWindow Split Subtract UncoverFaces Unite

11-24 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

AssignMaterial
Use: Command: Syntax: Return Value: Example: Assigns a material to the specified objects. Only the MaterialName and SolveInside parameters of <AttributesArray> are supported. Modeler>Assign Material AssignMaterial <SelectionsArray>, <AttributesArray> None oEditor.AssignMaterial _ Array("NAME:Selections", "Selections:=", "Polygon1"),_ Array("NAME:Attributes", _ "MaterialName:=", "tungsten",_ "SolveInside:=", false)

Chamfer
Use: Command: Syntax: Return Value: Parameters: Creates a chamfer. Modeler>Chamfer (Only available for 3D Projects and 3D Objects) Chamfer (<ObjectName> <ChamferParameters>) None <ObjectName> Array("NAME:Selections", _ "Selections:=", <string>), <ChamferParameters> Array("NAME:Parameters", _ Array("NAME:ChamferParameters", _ "CoordinateSystemID:=", <value>, "Edges:=", <ArrayOfEdgeIDs>, "LeftRange:=", <value>)) oEditor.Chamfer Array("Name:Selections", _ "Selections:=", "Box1"), Array("NAME:Parameters", _ Array("NAME:ChamferParameters", _ "CoordinateSystemID:=", -1, _ "Edges:=", Array(13), "LeftRange:=", "1mm"))

Example:

Connect
Use: Command: Connects specified 1D parts to form a sheet. Modeler>Surface>Connect
3D Modeler Editor Script Commands 11-25

Introduction to Scripting in Maxwell

Syntax: Return Value:

Connect <SelectionsArray> None

CoverLines
Use: Command: Syntax: Return Value: Covers the specified 1D objects to form a sheet. Modeler>Surface>Cover Lines CoverLines <SelectionsArray> None

CoverSurfaces
Use: Command: Syntax: Return Value: Covers the specified objects to form a solid object. Modeler>Surface>Cover Faces CoverSurfaces <SelectionsArray> None

CreateEntityList
Use: Command: Syntax: Return Value: Parameters: Creates a list of entities. The list can contain objects or faces but not both. Only the Name attribute from <AttributesArray> is supported. Modeler>List>Create>Object List Modeler>List>Create>Face List CreateEntityList <EntityListParametersArray>, <AttributesArray> None <EntityListParametersArray> Array("NAME:GeometryEntityListParameters", "EntityType:=", <string>, "EntityList:=", <array> EntityType Possible values are "Object", "Face" EntityList Array of integers the IDs of the objects or faces to put in the list.

11-26 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

CreateFaceCS
Use: Command: Syntax: Return Value: Parameters: Creates a face coordinate system. Only the Name attribute of the <AttributesArray> parameter is supported. Modeler>Coordinate System>Create>Face CS CreateFaceCS <FaceCSParametersArray>, <AttributesArray> None <FaceCSParametersArray> Array("NAME:FaceCSParameters", "FaceID:=", <int>, "PartID:=", <int>, Array("NAME:OriginPosn", "IsAttachedToEntity:=", <bool>, "EntityID:=", <value>, "PositionType:=", <string>, "UParam:=", <value>, "VParam:=", <value>, "XPosition:=", <value>, "YPosition:=", <value>, "ZPosition:=", <value>) Array("NAME:AxisPosn", "IsAttachedToEntity:=", <bool> "EntityID:=", <value> "PositionType:=", <string>, "UParam:=", <value>, "VParam:=", <value>, "XPosition:=", <value>, "YPosition:=", <value>, "ZPosition:=", <value>) "WhichAxis:=", <string>) FaceID ID of the face on which to create the coordinate system. PartID ID of the object on which the face ID lies. IsAttachedToEntity Specifies whether the point is anchored (to a vertex, edge, or face).
3D Modeler Editor Script Commands 11-27

Introduction to Scripting in Maxwell

If IsAttachedToEntity is true, provide the UParam and VParam parameters. Otherwise, provide the XPosition, YPosition, and ZPosition parameters. EntityID ID of the vertex, edge, or face to which the point is anchored. PositionType Place where the point is anchored. Possible values are: "FaceCenter", "EdgeCenter", "OnVertex", "OnEdge", "OnFace" UParam, VParam Numbers between 0 and 1 representing the relative position of the point on the edge or face. Example: UParam = .5, VParam = .5 would be the center of a face. XPosition, YPosition, ZPosition Fixed position of the point. For 2D XY Designs, ZPosition should be set to "0". For 2D RZ Designs, YPosition should be set to "0". WhichAxis Possible values are "X", "Y", "Z". For 2D XY Designs, WhichAxis must be set to "Z". For 2D RZ Designs, WhichAxis must be set to "Y".

CreateObjectFromEdges
Use: Command: Syntax: Return Value: Parameters: Creates a polyline from the specified object edge. Modeler>Create Object From Edge CreateObjectFromEdges <SelectionsArray>, <ObjFromEdgeParametersArray> None <SelectionsArray> Array("NAME:Selections", "Selections:=" <ObjName>) <ObjFromEdgeParametersArray> Array("NAME:Parameters",
11-28 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

<EdgeParametersArray>) <EdgeParametersArray> Array("Name:BodyFromEdgeToParameters", "CoordinateSystemID:=", <int>, "Edges:=", <EdgeIDarray>) oEditor.CreateEdgeFromEdges _ Array("NAME:Selections", "Selections:=", "Box1"),_ Array("NAME:Parameters", _ Array("NAME:BodyFromEdgeToParameters", _ "CoordinateSystemID:=", -1, _ "Edges:=", Array(13)))

Example:

CreateObjectFromFaces
Use: Command: Syntax: Return Value: Parameters: Creates 2D objects from the specified faces. Modeler>Surface>Create Object From Face CreateObjectFromFaces <SelectionsArray>, <ObjFromFaceParametersArray> None <ObjFromFaceParametersArray> Array("NAME:Parameters", <FacesOfOneObjToDetach>, <FacesOfOneObjToDetach>, ...) <FacesOfOneObjToDetach> Array("Name:BodyFromFaceToParameters", "FacesToDetach:=", <array>) FacesToDetach Array of integers the IDs of the faces to use to create objects. oEditor.CreateObjectFromFaces _ Array("NAME:Selections", "Selections:=", "Box1"),_ Array("NAME:Parameters", _ Array("NAME:BodyFromFaceToParameters", _ "FacesToDetach:=", Array(185)))

Example:

3D Modeler Editor Script Commands 11-29

Introduction to Scripting in Maxwell

CreateRelativeCS
Use: Command: Creates a relative coordinate system. Only the Name attribute of the <AttributesArray> parameter is supported. Modeler>Coordinate System>Create>Relative CS>Offset Modeler>Coordinate System>Create>Relative CS>Rotated Modeler>Coordinate System>Create>Relative CS>Both CreateRelativeCS <RelativeCSParametersArray>, <AttributesArray> None <RelativeCSParametersArray> Array("NAME:RelativeCSParameters", "OriginX:=", <value>, "OriginY:=", <value>, "OriginZ:=", <value>, "XAxisXvec:=", <value>, "XAxisYvec:=", <value>, "XAxisZvec:=", <value>, "YAxisXvec:=", <value>, "YAxisYvec:=", <value>, "YAxisZvec:=", <value>) For 2D XY Designs, OriginZ, XAxisZvec, and YAxisZvec should be set to "0". For 2D RZ Designs, OriginY, XAxisYvec, and YAxisYvec should be set to "0".

Syntax: Return Value: Parameters:

DeleteLastOperation
Use: Command: Syntax: Return Value: Deletes the last operation for specified objects. Modeler>Delete Last Operation DeleteLastOperation <SelectionsArray> None

DetachFaces
Use: Command: Syntax: Detaches the specified faces. Modeler>Surface>Detach Faces DetachFaces <SelectionsArray>, <DetachFacesParametersArray>

11-30 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Return Value: Parameters:

Example:

None <DetachFacesParametersArray> Array("NAME:Parameters", <FacesOfOneObjToDetach>, <FacesOfOneObjToDetach>, ...) <FacesOfOneObjToDetach> Array("Name:DetachFacesToParameters", "FacesToDetach:=", <array>) FacesToDetach An array of integers the IDs of the faces to detach. oEditor.DetachFaces _ Array("NAME:Selections", "Selections:=",_ "Box5,Box4"),_ Array("NAME:Parameters", _ Array("NAME:DetachFacesToParameters", _ "FacesToDetach:=", Array(123, 122)),_ Array("NAME:DetachFacesToParameters", _ "FacesToDetach:=", Array(94)))

EditEntityList
Use: Command: Syntax: Return Value: Modifies an entity list. Modeler>List>Reassign EditEntityList <SelectionsArray>, <EntityListParametersArray> None

EditFaceCS
Use: Recreates an existing face coordinate system. The name of the coordinate system to modify should be specified in the <AttributesArray> parameter. Modeler>Coordinate System>Edit EditFaceCS <FaceCSParametersArray>, <AttributesArray> None

Command: Syntax: Return Value:

3D Modeler Editor Script Commands 11-31

Introduction to Scripting in Maxwell

EditRelativeCS
Use: Command: Syntax: Return Value: Parameters: Modifies a relative coordinate system. Use <AttributesArray> to indicate the name of the coordinate system to modify. Modeler>Coordinate System>Edit EditRelativeCS <RelativeCSParametersArray>, <AttributesArray> None <ParametersArray> Array("NAME:RelativeCSParameters", "OriginX:=", <value>, "OriginY:=", <value>, "OriginZ:=", <value>, "XAxisXvec:=", <value>, "XAxisYvec:=", <value>, "XAxisZvec:=", <value>, "YAxisXvec:=", <value>, "YAxisYvec:=", <value>, "YAxisZvec:=", <value>) For 2D XY Designs, OriginZ, XAxisZvec, and YAxisZvec should be set to "0". For 2D RZ Designs, OriginY, XAxisYvec, and YAxisYvec should be set to "0".

Export
Use: Command: Syntax: Return Value: Parameters: Exports the model to a file. Modeler>Export Export <ExportParametersArray> None <ExportParametersArray> Array("NAME:ExportParameters", "File Name:=", <string>, "Major Version:=", <int>, "Minor Version:=", <int>) Major Version Can be 1 or any ACIS major version supported by Maxwell.

11-32 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Minor Version Can be 1 or any ACIS minor version supported by Maxwell software.

Fillet
Use: Command: Syntax: Return Value: Parameters: Creates a fillet. Modeler>Fillet (Only Available for 3D Projects and 3D Objects) Fillet(<ObjectName> <FilletParameters>) None <ObjectName> Array("NAME:Selections", _ "Selections:=", <string>), <FilletParameters> Array("NAME:Parameters", _ Array("NAME:FilletParameters", _ "CoordinateSystemID:=", <value>, "Edges:=", <ArrayOfEdgeIDs>, "Radius:=", <value>, "Setback:=", <value>)) oEditor.Fillet Array("Name:Selections", "Selections:=", _ "Box1"), Array("NAME:Parameters", Array("NAME:FilletParameters", _ "CoordinateSystemID:=", -1, "Edges:=", Array(13), "Radius:=", _ "1mm", "Setback:=", "0mm"))

Example:

GenerateHistory
Use: Command: Syntax: Return Value: Generates the history for specified 1D objects. Modeler>Generate History GenerateHistory <SelectionsArray> None

Import
Use: Command: Syntax: Imports a 3D model file. Modeler>Import Import <ImportParametersArray>
3D Modeler Editor Script Commands 11-33

Introduction to Scripting in Maxwell

Return Value: Parameters:

None <ImportParametersArray> Array("NAME:NativeBodyParameters", "AutoHeal:=", <bool>, "Options:=", <string>, "SourceFile:=", <string>)

ImportDXF
Use: Command: Syntax: Import a DXF file into a design. ImportDXF ImportDXF Array("NAME:options", "FileName:=", <"filename">, "Scale:=", <scale>, "AutoDetectClosed:=", <detect closed>, "SelfStitch:=", <stitch>, "DefeatureGeometry:=", <defeature>, "DefeatureDistance:=", <defeature distance>, "RoundCoordinates:=", <round>, "RoundNumDigits:=", <round digits>, "WritePolyWithWidthAsFilledPoly:=", <filled poly>, "ImportMethod:=", <import method> "2DSheetBodies:=", <2D sheet> Array("NAME:LayerInfo", Array("NAME:<layer>", "source:=", <"layer">, "display_source:=", "<display>", "import:=", <import>, "dest:=", "<destination layer>", "dest_selected:=", <destination selected>, "layer_type:=", <"layer type">), )) None <"filename"> Type: text Description: name of the DXF file to import <scale>

Return Value: Parameters:

11-34 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Type: double Description: scale factor to be applied to incoming coordinate values; converts the incoming units to meters. <detect closed> Type: boolean (true or false) Description: if true, polylines are checked to see whether or not they are closed. If a polyline is closed, Designer creates a polygon in the design. <stitch> Type: boolean (true or false) Description: if true, multiple straight line segments are joined to form polylines. If the resulting polyline is closed, a polygon is created in Designer. <defeature> Type: boolean (true or false) Description: if true, certain small features in the imported geometry are removed to reduce complexity. The features that are removed include: multiple points placed within the specified distance; thin or narrow regions ("thins" and "spikes"); and extraneous points along straight line segments. <defeature distance> Type: double Description: defeaturing distance/ <round> Type: boolean (true or false) Description: if true, all imported data is rounded to the specify number of decimal points. <round digits> Type: integer Description: number of rounding decimal points <filled poly> Type: boolean (true or false) Description: if true, import wide polylines as polygons. There is more flexibility to change the shape of a polygon. <import method> Type: integer Description: 0 for Script, 1 for Acis.
3D Modeler Editor Script Commands 11-35

Introduction to Scripting in Maxwell

<2D sheet> Type: boolean (true or false) Description: if true, import geometry as 2D sheet bodies. <layer> Type: text Description: import layer name (as found in the DXF file). <import> Type: boolean (true or false) Description: if true, the layer is import (note: there's no need to list all layers, just supply the layers to be imported). <destination layer> Type: text Description: destination layer name <destination selected> Type: boolean (true or false) Description: if true, the destination layer must be an existing layer (else a new layer will be created). <"layer type"> Type: text Description: the layer type, "undefined", "signal", "dielectric", "metalizedsignal", "ground", "etching", "resistance", "capacitance", "cover", "rat", "error", "symbol", "measures", "voids", "assembly", "silkscreen", "soldermask", "solderpaste", "glue", "wirebond", "jumper", "user", "generic". Example: oEditor.ImportDXF Array("NAME:options", "FileName:=", "C:/Designs/dxfiles/spiral_export.dxf", "Scale:=", 0.001, "AutoDetectClosed:=", true, "SelfStitch:=", true, "DefeatureGeometry:=", true, "DefeatureDistance:=", 1E-008, "RoundCoordinates:=", true, "RoundNumDigits:=", 4, "WritePolyWithWidthAsFilledPoly:=", true, "ImportMethod:=", 1,
11-36 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

"2DSheetBodies:=", true, Array("NAME:LayerInfo", Array("NAME:0", "source:=", "0", "display_source:=", "0", "import:=", true, "dest:=", "0", "dest_selected:=", false, "layer_type:=", "signal"), Array("NAME:spiral_export", "source:=", "spiral_export", "display_source:=", "spiral_export", "import:=", true, "dest:=", "spiral_export", "dest_selected:=", false, "layer_type:=", "signal")))

Intersect
Use: Command: Syntax: Return Value: Parameters: Intersects specified objects. Modeler>Boolean>Instersect Intersect <SelectionsArray>, <IntersectParametersArray> None <IntersectParametersArray> Array("NAME:IntersectParameters", "KeepOriginals:=", <bool>)

MoveFaces
Use: Command: Moves the specified faces along the normal or along a vector. Modeler>Surface>Move Faces>Along Normal Modeler>Surface>Move Faces>Along Vector (Command available for 3D Projects only) MoveFaces <SelectionsArray>, <MoveFacesParametersArray> None <MoveFacesParametersArray> Array("NAME:Parameters",
3D Modeler Editor Script Commands 11-37

Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

Example:

<FacesOfOneObjToMove>, <FacesOfOneObjToMove>, ...) <FacesOfOneObjToMove> Array("Name:MoveFacesParameters", "MoveAlongNormalFlag:=", <bool>, "OffsetDistance:=", <value>, "MoveVectorX:=", <value>, "MoveVectorY:=", <value>, "MoveVectorZ:=", <value>, "FacesToMove:=", <array>) MoveAlongNormalFlag Specifies whether to move along the face normal or along a vector. If false, provide the MoveVectorX, MoveVectorY, and MoveVectorZ parameters. FacesToMove Array of integers the IDs of the faces to move oEditor.MoveFaces _ Array("NAME:Selections", "Selections:=", _ "Box2,Box1"), _ Array("NAME:Parameters", _ Array("NAME:MoveFacesParameters", _ "MoveAlongNormalFlag:=", true, _ "OffsetDistance:=", "1mm", _ "FacesToMove:=", Array(218)),_ Array("NAME:MoveFacesParameters", _ "MoveAlongNormalFlag:=", false,_ "OffsetDistance:=", "1mm", _ "MoveVectorX:=", "1mm", _"MoveVectorY:=", "0mm", _ "MoveVectorZ:=", "0mm", _"FacesToMove:=",_ Array(185))) Creates a 2D cross-section of the selection in the specified plane. Modeler>Surface>Section Section <SelectionsArray>, <SectionParametersArray> None <SectionParametersArray> Array("NAME:SectionToParameters", "SectionPlane:=", <string>)

Section
Use: Command: Syntax: Return Value: Parameters:

11-38 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Section Plane Possible values are "XY", "YZ", "ZX".

SeparateBody
Use: Command: Syntax: Return Value: Separates bodies of specified multi-lump objects. Modeler>Boolean>Separate Bodies SeparateBody <SelectionsArray> None

SetModelUnits
Use: Command: Syntax: Return Value: Parameters: Sets the model units. Modeler>Units SetModelUnits <ModelUnitsParametersArray> None <ModelUnitsParametersArray> Array("NAME:Units Parameter", "Units:=", <string>, "Rescale:=", <bool>) Units Possible values are: "cm", "ft", "in", "meter", "mil", "mm", "nm", "uin", "um".

SetWCS
Use: Command: Syntax: Return Value: Parameters: Sets the working coordinate system. Modeler>Coordinate System>Set Working CS SetWCS <WCSParametersArray> None <WCSParametersArray> Array("NAME:SetWCS Parameter", "Working Coordinate System:=", <string>) Working Coordinate System Name of the coordinate system to set as the WCS.

ShowWindow
Use: Opens the selected 3D model editor window.
3D Modeler Editor Script Commands 11-39

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters: Example:

ShowWindow None None Set oDesign = oProject.GetActiveDesign Set oModeler = oDesign.SetActiveEditor("3D Modeler") oEditor.ShowWindow

Split
Use: Command: Syntax: Return Value: Parameters: Splits specified objects along a plane. Modeler>Boolean>Split Split <SelectionsArray>, <SplitParametersArray> None <SplitParametersArray> Array("NAME:SplitToParameters", "SplitPlane:=", <string>, "WhichSide:=", <string>) SplitPlane Possible values for 3D Designs are "XY", "YZ", "ZX". Possible values for 2D XY Designs are "YZ", "ZX". Possible values for 2D RZ Designs are "XY", "YZ". WhichSide Side to keep. Possible values are "Both", "PositiveOnly", "NegativeOnly"

Subtract
Use: Command: Syntax: Return Value: Parameters: Subtracts specified objects. Modeler>Boolean>Subtract Subtract <SubtractSelectionsArray>, <SubtractParametersArray> None <SubtractSelectionsArray> Array(NAME:Selections, "Blank Parts:=", <string>,

11-40 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Example:

"Tool Parts:=", <string>) Blank Parts Comma-separated list of parts to use as the blank in the subtract operation. Example: "Blank Parts:=", "Box1, Box2" Tool Parts Comma-separated list of parts to use as the tool in the subtract operation. Example: "Blank Parts:=", "Box3, Box4" <SubtractParametersArray> Array("NAME:SubtractParameters", "KeepOriginals:=", <bool>) oEditor.Subtract _ Array("NAME:Selections", _ "Blank Parts:=", "Polygon1",_ "Tool Parts:=", "Box1"),_ Array("NAME:SubtractParameters", _ "KeepOriginals:=", false)

UncoverFaces
Use: Command: Syntax: Return Value: Parameters: Uncovers specified faces. Modeler>Surface>Uncover Faces UncoverFaces <SelectionsArray>, <UncoverParametersArray> None <UncoverParametersArray> Array("NAME:Parameters", <FacesOfOneObjToUncover>, <FacesOfOneObjToUncover>,...) <FacesOfOneObjToUncover> Array("Name:UncoverFacesParameters", "FacesToUncover:=", <array>) FacesToUncover An array of integers the IDs of the faces to uncover. oEditor.UncoverFaces _ Array("NAME:Selections", "Selections:=", _
3D Modeler Editor Script Commands 11-41

Example:

Introduction to Scripting in Maxwell

"Box3,Box2"),_ Array("NAME:Parameters", _ Array("NAME:UncoverFacesParameters", _ "FacesToUncover:=", Array(69)), _ Array("NAME:UncoverFacesParameters", _ "FacesToUncover:=", Array(36)))

Unite
Use: Command: Syntax: Return Value: Parameters: Unites the specified objects. Modeler>Boolean>Unite Unite <SelectionsArray>, <UniteParametersArray> None <UniteParametersArray> Array("NAME:UniteParameters", "KeepOriginals:=", <bool>)

11-42 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

Other oEditor Commands


The following are some other oEditor commands: Delete GetEdgeByPosition GetFaceByPosition

GetUserPosition GetObjectName GetObjectNameByFaceID GetMatchedObjectName GetNumObjects GetSelections PageSetup RenamePart GetModelBoundingBox

Delete
Use: Command: Syntax: Return Value: Deletes specified objects, coordinate systems, points, planes, etc. None Delete <SelectionsArray> None

GetModelBoundingBox
Use: Command: Syntax: Return Value: Parameters: Example: Gets the bounding box of the current model. None GetModelBoundingBox() Returns the Xmin, Ymin, Zmin, Xmax, Ymax, Zmax values that define the bounding box. None Dim oBoundingBox oBoundingBox = oEditor.GetModelBoundingBox()

GetEdgeByPosition
Use: Syntax: Return Value: Gets the edge id corresponding to position input. GetEdgeByPosition(<PositionParameters>) Returns an integer edge id.
3D Modeler Editor Script Commands 11-43

Introduction to Scripting in Maxwell

Parameters:

<PositionParameters> Array("NAME:EdgeParameters", _ "BodyName:=", <string>, "Xposition:=", <value>, "YPosition:=", <value>, "ZPosition:=", <value>) For 2D XY Designs, ZPosition should be set to "0" For 2D RZ Designs, YPosition should be set to "0" edgeid = oEditor.GetEdgeByPosition(Array("NAME:EdgeParameters", _ "BodyName:=", "Box1", "XPosition:=", "3.4mm", _ "YPosition:=", "2.8mm", "ZPosition:=", "0.4mm"))

Example:

GetFaceByPosition
Use: Command: Syntax: Return Value: Parameters: Gets the ID of a face by position. None GetFaceByPosition <FaceByPositionParametersArray> An integer containing the face ID. <FaceByPositionParametersArray> Array("NAME:Parameters", "BodyName:=", <string>, "XPosition:=", <value>, "YPosition:=", <value>, "ZPosition:=", <value>) For 2D XY Designs, ZPosition should be set to "0" For 2D RZ Designs, YPosition should be set to "0" BodyName Name of the body on which the point lies. Dim oFaceID oFaceID = oEditor.GetFaceByPosition_ Array("NAME:Parameters",_ "BodyName:=", "Box1",_ "XPosition:=", "0mm",_

Example:

11-44 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

"YPosition:=", "0mm",_ "ZPosition:=", "0mm")

GetUserPosition
Use: Syntax: Return Value: Parameters: Example: Returns the coordinates of an interactive position input in the 3D model window. GetUserPosition(<PositionInputPrompt>) Array of coordinates <PositionInputPrompt> Type: <string> Dim position Dim coord position = oEditor.GetUserPosition("Enter a point") For Each coord in position Msgbox(coord) Next

GetObjectName
Use: Syntax: Return Value: Parameters: Gets an object name corresponding to the 0 base index of the creation order. GetObjectName(<Index>) Returns the object name of corresponding object. <Index> Type: <string> The 0 base index of the creation order. objectname = oEditor.GetObjectName(3)

Example:

GetObjectNameByFaceID
Use: Syntax: Return Value: Parameters: Example: Gets an object name corresponding to the input face ID. GetObjectName(<FaceID>) Returns the name of the corresponding object. <FaceID> Type: <string> objectname = oEditor.GetObjectNameByFaceID(Face10)

3D Modeler Editor Script Commands 11-45

Introduction to Scripting in Maxwell

GetMatchedObjectName
Use: Syntax: Return Value: Parameters: Gets all object names containing the input text string. GetMatchedObjectName(<ObjectNameWildcardText>) Array of object names containing wildcard text. <ObjectNameWildcardText> Type: <string> Text to be used for object name matching. objectnames = oEditor.GetMatchedObjectName("Box*")

Example:

GetNumObjects
Use: Syntax: Return Value: Parameters: Example: Gets the number of objects in a design. GetNumObjects Returns the number of objects. Type: <int> None totalobjects = oEditor.GetNumObjects

GetSelections
Use: Command: Syntax: Return Value: Parameters: Example: Informational. None. GetSelections Returns an array of IDs. None Set oProject = oDesktop.SetActiveProject("Project6") Set oDesign = oProject.SetActiveDesign("MaxwellDesign1") Set oEditor = oDesign.SetActiveEditor("3D Modeler") Dim A A = Array() A = oEditor.GetSelections Dim B B = Join(A,",") 'Debug.Write "The Selections are " &B MsgBox(B) Dim C C = Array("NAME:Selections", "Selections:=", B)

11-46 3D Modeler Editor Script Commands

Introduction to Scripting in Maxwell

oEditor.Delete C

PageSetup
Use: Command: Syntax: Return Value: Parameters: Specifies the page settings for printing. File>Page Setup PageSetup <PageSetupParametersArray> None <PageSetupParametersArray> Array("NAME:PageSetupData", "margins:=", Array("left:=", <value>, "right:=", <value>, "top:=", <value>, "bottom:=", <value>))

RenamePart
Use: Command: Syntax: Return Value: Parameters: Renames an object. None RenamePart <RenameParametersArray> None <RenameParametersArray> Array("NAME:Rename Data", "Old Name:=", <string>, "New Name:=", <string>)

GetModelBoundingBox
Use: Syntax: Return Value: Parameters: Example: Gets the bounding box of the current model. GetModelBoundingBox() Returns the X, Y, and Z position values and the dX, dY, and dZ size values that define the bounding box. None Dim oBoundingBox oBoundingBox = oEditor.GetModelBoundingBox()

3D Modeler Editor Script Commands 11-47

Introduction to Scripting in Maxwell

11-48 3D Modeler Editor Script Commands

12

Reporter Editor Script Commands

Reporter commands should be executed by the oDesign module. Following is an example of how to access this object: Set oDesign = Project.SetActiveDesign("Maxwell3DDesign1") Set oModule=oDesign.GetModule("ReportSetup") All Report properties can be edited using the ChangeProperty commands. This includes Title properties, General properties, and Background properties such as border color, fonts, X and Y axis scaling, units, and number display. Note Maxwell supports Reporter scripting. When you click Tools>Record Script, Maxwell operations performed in the Reporter are automatically recorded.

Reporter Editor Script Commands 12-1

Introduction to Scripting in Maxwell

General Reporter Editor Script Commands


Following are reporter script commands recognized by the oDesign module: AddCartesianXMarker AddDeltaMarker AddMarker

AddNote AddTraces ClearAllMarkers CopyReportData CopyReportDefinition CopyTraceData CopyTraceDefinition CreateReport CreateReportFromTemplate DeleteAllReports DeleteReports DeleteTraces ExportToFile GetAllReportNames GetDisplayType ImportIntoReport PasteReports PasteTraces RenameReport RenameTrace UpdateTraces UpdateTracesContextAndSweeps

AddCartesianXMarker
Use: Command: Syntax: Return Value: Parameters: Adds a marker to a report on the X axis. Report2D>Marker>Add X Marker AddCartesianXMarker <ReportName>, <MarkerID>, <Xcoord> None <ReportName> Type: <string> Name of Report.

12-2 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

<MarkerID> Type: <string> ID of the marker, for example: M1. <XCoord> Type: <real> X location for the marker. Example: oModule.AddCartesianXMarker "XY Plot1", "MX1", 0

AddDeltaMarker
Use: Command: Syntax: Return Value: Parameters: Add markers to calculate differences between two trace points on a plot. Report2D>Marker>Add Delta Marker AddDeltaMarker <ReportName>, <MarkerID_1>, <TraceID_1>, <Xcoord_1>, <MarkerID_2>, <TraceID_2> <Xcoord_2> None <ReportName> Type: <string> Name of Report. <MarkerID> Type: <string> ID for the markers. <TraceID> Type: <string> Typically given by expression plus solution name plus coordinate system type. <XCoord> Type: <real> X location for the marker. oModule.AddDeltaMarker "XY Plot 1", "m3", "dB(S(LumpPort1 LumpPort1)) : Setup1 : Sweep1 : Cartesian", _ "3.22GHz", _ "m4", "dB(S(LumpPort1 LumpPort1)) : Setup1 : Sweep1 : Cartesian",_ "3.93GHz"

Example:

Reporter Editor Script Commands 12-3

Introduction to Scripting in Maxwell

AddMarker
Use: Command: Syntax: Return Value: Parameters: Adds a marker to a trace on a report. Report2D>Marker>Add Marker AddMarker <ReportName>, <MarkerID>, <TraceID>, <Xcoord>, None <ReportName> Type: <string> Name of Report. <MarkerID> Type: <string> ID for the marker. <TraceID> Type: <string> Typically given by expression plus solution name plus coordinate system type. <XCoord> Type: <real> X location for the marker. Set oModule = oDesign.GetModule("ReportSetup") oModule.AddMarker "XY Plot1", "m1", _ "mag(S(Port1 Port1)) : Setup1 : LastAdaptive : Cartesian", "0.3in"

Example:

AddNote
Use: Command: Syntax: Return Value: Parameters: Adds a note at a specified location to a given report. Right-click on the plot and select Add Note AddNote <ReportName> <NoteDataArray>) None <ReportName> Type: <string> Name of report. <NoteDataArray> Type: Array Array(NAME:<NoteDataName>, <NoteArray>)

12-4 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

<NoteDataName> Type: String <NoteArray> Array(NAME:<NoteDataSourceName>, SourceName:=, <SourceName>, "HaveDefaultPos:=", <boolean>, "DefaultXPos:=", <XPos>, "DefaultYPos:=", <YPos>, String:=, <Note>)) Example: Set oModule = oDesign.GetModule("ReportSetup") oModule.AddNote "XY Plot1", Array("NAME:NoteDataSource", Array("NAME:NoteDataSource", "SourceName:=", "Note1", "HaveDefaultPos:=", true, "DefaultXPos:=", 1996, "DefaultYPos:=", _ 3177, "String:=", "This is a note"))

AddTraces
Use: Command: Syntax: Creates a new trace and adds it to the specified report. Modify Report>Add Trace AddTraces <ReportName>, <SolutionName>, <SimulatedValueContextArray>, <PointSetDefinitionArray>, <TracesExpressionsArray>, <ExtendedTraceInformationArray> None <ReportName> Type: <string> Name of Report. <SolutionName> Type: <string> Name of the solution as listed in the Modify Report dialog box. For example: "Setup1 : Last Adaptive" <SimulatedValueContextArray> Type: Array of strings Context for which the expression is being evaluated. This can be an empty string if there is no context. Array(Domain:=, <DomainType>) <DomainType>
Reporter Editor Script Commands 12-5

Return Value: Parameters:

Introduction to Scripting in Maxwell

Example:

ex. Sweep or Time Array(Context:=, <GeometryType>) <GeometryType> ex. Infinite Spheren, Spheren, Polylinen <FamiliesArray> Type: Array of strings Contains sweep definitions for the report. Array(<VariableName>:= , <ValueArray>) <ValueArray> Array(All) or Array(Value1, Value2, ...Valuen) examples of <VariableName> Freq, Theta, Distance <ReportDataArray> Type: Array of strings This array contains the report quantity and X, Y, and (Z) axis definitions. Array(X Component:=, <VariableName>, Y Component:=, <VariableName> | <ReportQuantityArray>) <ReportQuantityArray> ex. Array(dB(S(Port1, Port1))) oModule.AddTraces "XY Plot1", "Setup1 : Sweep1", _ Array("Domain:=", "Time", "HoldTime:=", 1, "RiseTime:=", 0, _ "StepTime:=", 6.24999373748E-012, "Step:=", false, _ "WindowWidth:=", 1, _ "WindowType:=", 0, "KaiserParameter:=", 1, _ "MaximumTime:=", 6.2437437437444E-009), _ Array("Time:=", Array("All"), "OverridingValues:=", Array("0s", _ "6.24999373748188e-012s", ... )), Array("X Component:=", "Time", _ "Y Component:=", Array("TDRZ(WavePort1)")), _ Array()

ClearAllMarkers
Use: Command: Syntax: Clears all markers from a report. Report2d>Markers>ClearAllMarkers ClearAllMarkers <ReportName>

12-6 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

Return Value: Parameters:

Example:

None <ReportName> Type: <string> Name of Report. oModule.ClearAllMarkers "XY Plot 1"

CopyTracesData
Use: Command: Syntax: Return Value: Parameters: Copy trace data for a paste operation. Select a trace in the Project tree, right-click and select Copy Data CopyTracesData <ReportName> <TracesArray>) None <ReportName> Type: <string> Name of Report. <TracesArray> Type: Array of Strings Trace definitions from which to copy corresponding data. oModule.CopyTracesData "XY Plot 1", Array("magforce")

Example:

CopyReportData
Use: Command: Syntax: Return Value: Parameters: Copy all data corresponding to the specified reports. Select a report in the Project tree, right-click and select Copy Data CopyReportData <ReportsArray> None <ReportsArray> Type: Array of strings Names of reports from which to copy data. oModule.CopyReportData Array("XY Plot 1")

Example:

CopyReportDefinitions
Use: Command: Syntax: Copy the definition of a report for paste operations. Select a report in the Project tree, right-click and select Copy Definition CopyReportDefinitions <ReportsArray>
Reporter Editor Script Commands 12-7

Introduction to Scripting in Maxwell

Return Value: Parameters:

None <ReportsArray> Type: Array of strings Names of reports from which to copy the definitions. oModule.CopyReportDefinitions Array("XY Plot 1")

Example:

CopyTraceDefinitions
Use: Command: Syntax: Return Value: Parameters: Copy trace definitions for a paste operation. Select a trace in the Project tree, right-click and select Copy Definition CopyTraceDefinitions <ReportName> <TracesArray> None <ReportName> Type: <string> Name of Report. <TracesArray> Type: Array of strings. Trace definitions to copy. oModule.CopyTraceDefinitions "XY Plot 1", Array("magforce")

Example:

CreateReport
Use: Creates a new report with a single trace and adds it to the Results branch in the project tree. To add more traces, use the AddTraces command. To edit the display properties, use the ChangeProperty Script command. Maxwell2D or Maxwell3D>Results>Create<type> Report CreateReport <ReportName> <ReportType> <DisplayType> <SolutionName> <ContextArray> <FamiliesArray><ReportDataArray> None <ReportName> Type: <string> Name of Report. ReportType Possible values are:

Command: Syntax:

Return Value: Parameters:

12-8 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

Matrix. DC R/L Fields. AC R/L Fields. C Fields. DisplayType Rectangular Plot, Data Table, or 3D Rectangular Plot. <TraceArray> Array("NAME:Traces", <OneTraceArray>, <OneTraceArray>,...) <OneTraceArray> Array("NAME:<TraceName>, "SolutionName:=","string", "Context:=",string, <DisplayTypeDependentData>) <SolutionName> Name of the solution as listed in the Traces dialog box. For example: Setup1 : Last Adaptive <Context> Context for which the output variable expression is being evaluated. This can be an empty string if there is no context. Example: Line1 or Field reports usually require a polyline (e.g. "Line1") unless they are integrations. Q3D Extractor matrix data requires a Reduce Matrix operation(e.g. "Original"). <DisplayTypeDependentData> This data varies according to the display type. See the examples below. <FamiliesArray> Type: Array of strings Contains sweep definitions for the report. Array(<VariableName>:= , <ValueArray>) <ValueArray> Array(All) or Array(Value1, Value2, ...Valuen) examples of <VariableName>
Reporter Editor Script Commands 12-9

Introduction to Scripting in Maxwell

Freq, Theta, Distance <ReportDataArray> Type: Array of strings This array contains the report quantity and X, Y, and (Z) axis definitions. Array(X Component:=, <VariableName>, Y Component:=, <VariableName> | <ReportQuantityArray>) <ReportQuantityArray> ex. Array(dB(S(Port1, Port1))) Example: oDesign.CreateReport Array("NAME:Rept2DRectTime",_ "ReportType:=","Matrix",_ "DisplayType:=","Rectangular Plot", _ Array("NAME:Traces", _ Array("NAME:Trace1", _ SolutionName:=", _ "Setup1 : Adaptive_2, _ Context:=",Original, _ "XComponent:=", "Pass", _ "YComponent:=", C(Box1, Box1)",_ "YAxis:=", 1)))

CreateReportFromTemplate
Use: Command: Syntax: Return Value: Parameters: Create a report from a report template file. Select results folder in project tree, right-click, Report Templates, select appropriate template file name. CreateReportFromTemplate <ReportTemplateFileName> None <ReportTemplateFileName> Type: string The report template file name. Example: oModule.CreateReportFromTemplate _ "C:\Program Files\Ansoft\HFSS11\userlib\ReportTemplates\ThreePortSParams.rpt"
12-10 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

DeleteTraces
Use: Command: Syntax: Return Value: Parameters: Deletes an existing traces or traces. Right-click the report to delete in the project tree, and then click Delete on the shortcut menu. DeleteTraces(<TraceSelectionArray>) None <TraceSelectionArray> Type: Array of strings Array(<ReportName>:=, <TracesArray>, <TracesArray>,... ) <ReportName> Type: <string> Name of Report. <TracesArray> Type: Array of strings This array contains the traces to delete within a report. Array(<Trace>, <Trace>, ...) <Trace> Type: string

Example: Delete 3 traces from one report: oModule.DeleteTraces Array("XY Plot 3:=", Array("Matrix1.MagFlux(Current1)", "Matrix1.MagFluxNom(Current1)", "Force1.Force_mag")) Delete 2 traces from 2 different reports: oModule.DeleteTraces Array("XY Plot 1:=", Array("magforce"), "XY Plot 3:=", Array("Matrix1.MagFlux(Current1)"))

ExportToFile
Use: Syntax: Return Value: From a data table or plot, generates text format, comma delimited, tab delimited, or .dat type output files. ExportToFile <ReportName>, <FileName> None
Reporter Editor Script Commands 12-11

Introduction to Scripting in Maxwell

Parameters:

<ReportName> Type: string <FileName> Type: string .txt .csv .tab .dat Post processor format file Comma-delimited data file Tab-separated file Ansoft plot data file

Example:

oDesign.ExportToFile Plot1, c:\report1.dat

GetAllReportNames
Use: Syntax: Return Value: Parameters: Example: Gets the names of existing reports in a design. GetAllReportNames() Array of report names. None Set reportnames = oDesign.GetAllReportNames() For Each name in reportnames Msgbox name Next

GetDisplayType
Use: Command: Syntax: Return Value: Parameters: Get Display type of a report. None GetDisplayType <ReportName> String for display type <ReportName> Type: string The name of report to find the display type for. Dim displayType displayType = oModule.GetDisplayType("XY Plot 1")

Example:

12-12 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

ImportIntoReport
Use: Command: Syntax: Return Value: Parameters: Imports .tab, .csv, and .dat format files into a report. Right-click on report name in the Project tree and select Export Data. ImportIntoReport <ReportName>, <FileName> None <ReportName> Type: string <FileName> Type: string Path and file name. .csv .tab .dat Example: oDesign.ImportIntoReport Plot1, c:\report1.dat Comma-delimited data file Tab-separated file Ansoft plot data file

PasteReports
Use: Command: Syntax: Return Value: Parameters: Example: Paste Reports from clipboard. Command: Select results folder in project tree, right-click, paste. PasteReports None None oModule.PasteReports

PasteTraces
Use: Command: Syntax: Return Value: Parameters: Paste traces from clipboard in a report. Select report in project tree, right click, paste. PasteTraces <ReportName> None <ReportName> Type: string
Reporter Editor Script Commands 12-13

Introduction to Scripting in Maxwell

Example:

The name of report, where traces are to be pasted. oModule.PasteTraces "Mag_Force"

DeleteAllReports
Use: Command: Syntax: Return Value: Example: Deletes all existing reports. Right-click the report to delete in the project tree, and then click Delete All Reports on the shortcut menu. DeleteAllReports None oModule.DeleteAllReports

DeleteReports
Use: Command: Syntax: Return Value: Parameters: Example: Deletes an existing report or reports. Right-click the report to delete in the project tree, and then click Delete on the shortcut menu. DeleteReports(<ReportNameArray>) None <ReportNameArray> Type: Array of strings oModule.DeleteReports Array(Rept2DRectFreq)

RenameReport
Use: Command: Syntax: Return Value: Parameters: Renames an existing report. Select a report on the Project tree, right-click and select Rename RenameReport <OldReportName>, <NewReportName> None <OldReportName> Type: string <NewReportName> Type: string oModule.RenameReport "XY Plot1", "MagneticForce"

Example:

RenameTrace
Use: Edit the name of an existing trace.

12-14 Reporter Editor Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters:

'Right click, Rename" on trace item in project tree. RenameTrace <ReportName>, <OldTraceName>, <NewTraceName> None <ReportName> Type: string Name of report, which contains the trace whose name, is to be edited. <OldTraceName> Type: string Old name of trace. <NewTraceName> Type: string New name of trace.

Example: oModule.RenameTrace "XY Plot 1", "Flux", "RotorFlux"

UpdateTraces
Use: Command: Syntax: Edits traces of an existing report. Apply Trace button in the Create Report dialog UpdateTraces <ReportName>, <TraceNames>, <SolutionName>, <SimulatedValueContextArray>, <PointSetDefinitionArray>, <TracesExpressionArray>, <ExtendedTraceInformationArray> None <ReportName> Type: string The name of report, which contains traces to be edited. <TraceNames> Type: Array of strings The names of traces to be edited. <SolutionName> see CreateReport section <SimulatedValueContextArray> see CreateReport section <PointSetDefinitionArray> see CreateReport section
Reporter Editor Script Commands 12-15

Return Value: Parameters:

Introduction to Scripting in Maxwell

<TracesExpressionsArray> see CreateReport section <ExtendedTraceInformationArray> see CreateReport section Example: oModule.UpdateTraces "XY Plot 1", Array("dB(S(Port1,Port1))"), "Setup1 : Sweep1", Array("Domain:=", _ "Sweep"), Array("Freq:=", Array("All"), "offset:=", Array("Nominal")), Array("X Component:=", _ "Freq", "Y Component:=", Array("dB(S(Port2,Port1))")), Array()

UpdateTracesContextAndSweeps
Use: Command: Syntax: Edits context and sweeps of traces of an existing report. 'Apply Trace' button in the Create Report dialog after selecting multiple traces in project tree. UpdateTracesContextAndSweeps <ReportName>, <TraceNames>, <SolutionName>, <SimulatedValueContextArray>, <PointSetDefinitionArray> None see UpdateTraces section oModule.UpdateTracesContextAndSweeps "S Parameters", Array("S21", "S11"), _ "Setup1 : Sweep1", Array("Domain:=", "Sweep"), Array("Freq:=", Array("8GHz", _ "8.05GHz", "8.1GHz", "8.15GHz", "8.2GHz", "8.25GHz", "8.3GHz", "8.35GHz", _ "8.4GHz", "8.45GHz", "8.5GHz", "8.55GHz", "8.6GHz", "8.65GHz", "8.7GHz", _ "8.75GHz", "8.8GHz", "8.85GHz", "8.9GHz", "8.95GHz", "9GHz"), "offset:=", Array( _ "Nominal"))

Return Value: Parameters: Example:

12-16 Reporter Editor Script Commands

13

Boundary and Excitation Module Script Commands

Boundary and excitation commands should be executed by the BoundarySetup module. Set oModule = oDesign.GetModule("BoundarySetup") oModule.CommandName <args>

Boundary and Excitation Module Script Commands 13-1

Introduction to Scripting in Maxwell

Conventions Used in this Chapter


<BoundName> Type: string. Name of a boundary. <BoundNameArray> Type: Array of strings An array of the names in a boundary/excitation group. <AssignmentObjects> Type: Array of strings. An array of object names. <AssignmentFaces> Type: Array of integers. An array of face IDs. The ID of a face can be determined through the user interface using the Modeler>Measure>Area command. The face ID is given in the Measure Information dialog box. <LineEndPoint> Array(<double>, <double>, <double>) <CoordSysArray> Array("NAME:CoordSysVector", "Origin:=", <CoordSysPoint>, "UPos:=", <LineEndPoint>)

13-2 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

General Commands Recognized by the Boundary/Excitation Module


Following are general script commands recognized by the BoundarySetup module: DeleteBoundaries DeleteAllBoundaries DeleteAllExcitations

GetBoundaries GetBoundariesOfType GetBoundaryAssignment GetNumBoundaries GetNumBoundariesOfType GetExcitations GetExcitationsOfType GetNumExcitations GetNumExcitationsOfType RenameBoundary ReassignBoundary ReprioritizeBoundaries

DeleteBoundaries
Use: Command: Syntax: Return Value: Parameters: Deletes the specified boundaries and excitations. Delete command in the Design List dialog box. (Click Maxwell3D or Maxwell2D>List to open the Design List dialog box.) DeleteBoundaries <NameArray> None <NameArray> Type: Array of strings An array of boundary names. oModule.DeleteBoundaries Array("Net1", "Source1")

Example:

DeleteAllBoundaries
Use: Command: Syntax: Return Value: Example: Deletes all boundaries. Maxwell3D or Maxwell2D>Boundaries>Delete All DeleteAllBoundaries None oModule.DeleteAllBoundaries
Boundary and Excitation Module Script Commands 13-3

Introduction to Scripting in Maxwell

DeleteAllExcitations
Use: Command: Syntax: Return Value: Example: Deletes all excitations. Maxwell3D or Maxwell2D>Excitations>Delete All DeleteAllExcitations None oModule.DeleteAllExcitations

GetBoundaries
Use: Command: Syntax: Return Value: Parameters: Example: Gets boundary names for a project. None GetBoundaries() Array of boundary names. None bndinfo_array = oModule.GetBoundaries()

GetBoundariesOfType
Use: Command: Syntax: Return Value: Parameters: Gets boundary names of the given type. None GetBoundariesOfType(<BoundaryType>) Array of boundary names of the given type. <BoundaryType> Type:<string> Name of legal boundary type. For example: "Radiation" bndname_array = oModule.GetBoundariesOfType("Perfect E")

Example:

GetBoundaryAssignment
Use: Command: Syntax: Return Value: Parameters: Gets a list of face IDs associated with the given boundary or excitation assignment. None GetBoundaryAssignment(<BoundaryName>) Returns integer array of face IDs. <BoundaryName> Type:<string>

13-4 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Example:

Previously defined boundary or excitation name. list = oModule.GetBoundaryAssignment("Rad1")

GetNumBoundaries
Use: Command: Syntax: Return Value: Parameters: Example: Gets the number of boundaries in a design. None GetNumBoundaries() Integer count None numbound = oModule.GetNumBoundaries()

GetNumBoundariesOfType
Use: Command: Syntax: Return Value: Parameters: Example: Gets the number of boundaries of the given type. None GetNumBoundariesOfType(<BoundaryType>) Integer count <BoundaryType> Type:<string> numbound = oModule.GetNumBoundariesOfType("Perfect E")

GetExcitations
Use: Command: Syntax: Return Value: Parameters: Example: Gets excitation port and terminal names for a model. None GetExcitations() Pairs of strings. The first is the name of the excitation (e.g. "port1:1") and the second is its type ("Wave Port") None excite_name_array = oModule.GetExcitations()

GetExcitationsOfType
Use: Command: Syntax: Return Value: Parameters: Gets excitation names of the given type. None GetExcitationsOfType(<ExcitationType>) Array of excitation names of the given type. <ExcitationType>
Boundary and Excitation Module Script Commands 13-5

Introduction to Scripting in Maxwell

Example:

Type:<string> Name of legal excitation type. For example: "Plane Incident Wave". excite_name_array = oModule.GetExcitationsOfType("Wave Port")

GetNumExcitations
Use: Command: Syntax: Return Value: Parameters: Example: Gets the number of excitations in a design, including all defined modes and terminals of ports. None GetNumExcitations() Integer count None numexcite = oModule.GetNumExcitations()

GetNumExcitationsOfType
Use: Command: Syntax: Return Value: Parameters: Example: Gets the number of excitations of the given type, including all defined modes and terminals of ports. None GetNumExcitationsOfType(<ExcitationType>) Integer count <ExcitationType> Type:<string> numexcite = oModule.GetNumExcitationsOfType("Voltage")

RenameBoundary
Use: Command: Syntax: Return Value: Parameters: Renames a boundary or excitation. Right-click a boundary/excitation in the project tree, and then click Rename from the shortcut menu. RenameBoundary <OldName>, <NewName> None <OldName> Type: <string> <NewName> Type: <string> oModule.RenameBoundary "Bound1" "Bound2"

Example:

13-6 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

ReassignBoundary
Use: Command: Syntax: Specifies a new geometry assignment for a boundary. Select Maxwell3D or Maxwell2D>Excitations>Reassign or select Maxwell3D or Maxwell2D>Boundaries>Reassign ReassignBoundary Array("Name:<BoundName>", "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) None oModule.ReassignBoundary Array("NAME:Net1",_ "Objects:=", Array("Box2", "Box3"),_ "Objects:=", Array("Box3", "Box4")) Specifies the order that the boundaries are sent to the solver. The first boundary in the list has the highest priority.

Return Value: Example:

ReprioritizeBoundaries
Use:

Note This command is only valid if all boundaries appear in the list. Command: Syntax: Return Value: Parameters: Example: Maxwell3D or Maxwell2D>Boundaries>Reprioritize ReprioritizeBoundaries <NewOrderArray> None <NewOrderArray> Array("NAME:NewOrder", <BoundName>, <BoundName>, ...) oModule.ReprioritizeBoundaries Array("NAME:NewOrder",_ "Symmetry1", "Insulating1")

Boundary and Excitation Module Script Commands 13-7

Introduction to Scripting in Maxwell

Script Commands for Creating and Modifying Boundaries


Following are script commands for creating and editing boundaries that are recognized by the BoundarySetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignZeroTangentialHField EditZeroTangentialHField AssignInsulating EditInsulating AssignSymmetry EditSymmetry AssignMaster EditMaster AssignSlave EditSlave AssignRadiation EditRadiation AssignImpedance EditImpedance AssignTangentialHField EditTangentialHField AssignCylindricalHField EditCylindricalHField

AssignZeroTangentialHField
Use: Command: Syntax: Return Value: Parameters: Creates a zero tangential H-Field boundary. Maxwell>Boundaries>Assign>Zero Tangential H Field AssignZeroTangentialHField <ZeroTangentialHFieldArray> None <ZeroTangentialHFieldArray> Array("NAME:<BoundName>", "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignZeroTangentialHField Array("NAME:ZeroTangentialHField1", "Faces:=", Array(7))

Example:

13-8 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

EditZeroTangentialHField
Use: Command: Syntax: Return Value: Edits a zero tangential H-Field boundary. Double-click the boundary in the project tree to edit it. EditZeroTangentialHField <BoundName>, <PerfectEArray> None

AssignSymmetry
Use: Command: Syntax: Return Value: Parameters: Creates a symmetry boundary. Maxwell3D or Maxwell2D>Boundaries>Assign>Symmetry AssignSymmetry <SymmetryArray> None <SymmetryArray> Array( "NAME:<BoundName>", "IsOdd:=",<bool>,//true for odd, false for even "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignSymmetry Array("NAME:Symmetry1", _ "IsOdd:=", true, "Faces:=", Array(35))

Example:

EditSymmetry
Use: Command: Syntax: Return Value: Edits a symmetry boundary. Double-click the boundary in the project tree to edit it. EditSymmetry <BoundName> < SymmetryArray > None

AssignInsulating
Use: Command: Syntax: Return Value: Parameters: Creates an insulating boundary. Maxwell3D>Boundaries>Assign>Insulating AssignInsulating <InsulatingArray> None <InsulatingArray> Array("Name:<BoundName>", "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>)

Boundary and Excitation Module Script Commands 13-9

Introduction to Scripting in Maxwell

Example:

oModule.AssignInsulating Array("NAME:Insulating2", _ "Faces:=", Array(7))

EditInsulating
Use: Command: Return Value: Return Value: Edits an insulating boundary. Double-click the boundary in the project tree to edit it. EditInsulating <BoundName> <InsulatingArray> None

AssignMaster
Use: Command: Syntax: Return Value: Parameters: Creates a master boundary. Maxwell3D or Maxwell2D>Boundaries>Assign>Master AssignMaster <MasterArray> None <MasterArray> Array("NAME:<BoundName>", <CoordSysArray>, "ReverseV:=", <bool>, "Faces:=", <AssignmentFaces>) oModule.AssignMaster Array("NAME:Master1", _ Array("NAME:CoordSysVector", "Origin:=", _ Array("1.6mm", "1.2mm", "0mm"), "UPos:=", _ Array("1.6mm", "1.2mm", "1mm")), "ReverseV:=", true, _ "Faces:=", Array(68))

Example:

EditMaster
Use: Command: Syntax: Return Value: Edits a master boundary. Double-click the boundary in the project tree to edit it. Edit <BoundName> <MasterArray> None

AssignSlave
Use: Command: Syntax: Return Value: Creates a slave boundary. Maxwell3D or Maxwell2D>Boundaries>Assign>Slave AssignSlave <SlaveArray> None

13-10 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Parameters:

Example:

<SlaveArray> Array("NAME:<BoundName>", <CoordSysArray>, "ReverseV:=", <bool>, "Master:=", <string>, "RelationIsSame:=", <bool>,//true for Hs = Hm "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignSlave Array("NAME:Slave1", _ Array("NAME:CoordSysVector", "Origin:=", _ Array( "1.6mm", "1.2mm", "0mm"), "UPos:=", _ Array("1.6mm", "1.2mm", "1mm")), "ReverseV:=", _ false, "Master:=", "Master1", "RelationIsSame:=", _ false, "Faces:=", Array(67))

EditSlave
Use: Command: Syntax: Return Value: Edits a slave boundary. Double-click the boundary in the project tree to edit it. EditSlave <BoundName> <SlaveArray> None

AssignRadiation
Use: Command: Syntax: Return Value: Parameters: Creates a radiation boundary. Maxwell3D>Boundaries>Assign>Radiation AssignRadiation <RadiationArray> None <RadiationArray> Array("NAME:<BoundName>", "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignRadiation Array("NAME:Radiation1", _ "Faces:=", Array(12, 11))

Example:

EditRadiation
Use: Command: Edits a radiation boundary. Double-click the boundary in the project tree to edit it.
Boundary and Excitation Module Script Commands 13-11

Introduction to Scripting in Maxwell

Syntax: Return Value:

EditRadiation <BoundName> <RadiationArray> None

AssignImpedance
Use: Command: Syntax: Return Value: Parameters: Creates an impedance boundary. Maxwell3D or Maxwell2D>Boundaries>Assign>Impedance AssignImpedance <ImpedanceArray> None <ImpedanceArray> Array("NAME:<BoundName>", "Conductivity:=",<value>, "Resistance:=", <value>, "Permeability:=", <value>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignImpedance Array("NAME:Impedance1", _ "Conductivity:=", "1", "Permeability:=", "2", _ "Faces:=", Array(7, 12))

Example:

EditImpedance
Use: Command: Syntax: Return Value: Edits an impedance boundary. Double-click the boundary in the project tree to edit it. EditImpedance <BoundName> <ImpedanceArray> None

AssignTangentialHField
Use: Command: Syntax: Return Value: Parameters: Creates an H-Field boundary on a planar face. Maxwell3D>Boundaries>Assign>Tangential H Field AssignTangentialHField <TangentialHFieldArray> None <TangentialHFieldArray> Array("NAME:<BoundName>", "ComponentXReal:=", <value>, "ComponentXImg:=", <value>, "ComponentYReal:=", <value>,

13-12 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Example:

"ComponentYImg:=", <value>, <CoordSysArray> "ReverseV:=", <bool>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentObjects>) oModule.AssignTangentialHField Array("NAME:TangentialHField2", "ComponentXReal:=", _ "1", "ComponentXImg:=", "2", "ComponentYReal:=", "3", _ "ComponentYImg:=", "4", Array("NAME:CoordSysVector", _ "Origin:=", Array( "-0.4mm", "-1.4mm", "1mm"), "UPos:=", _ Array("-0.4mm", "-0.8mm", "1mm")), "ReverseV:=", true, _ "Faces:=", Array(7))

EditTangentialHField
Use: Command: Syntax: Return Value: Edits a tangential H-Field boundary. Double-click the boundary in the project tree to edit it. EditTangentialHField <BoundName> <TangentialHFieldArray> None

AssignCylindricalHField
Use: Command: Syntax: Return Value: Parameters: Creates an H-Field boundary on a cylindrical face. Maxwell>Boundaries>Assign>Tangential H Field AssignCylindricalHField <CylindricalHFieldArray> None <CylindricalHFieldArray> Array("NAME:<BoundName>", "ComponentPhiReal:=", <value>, "ComponentPhiImg:=", <value>, "ComponentZReal:=", <value>, "ComponentZImg:=", <value>, "ReverseZ:=", <bool>, "Origin:=", <LineEndPoint>) "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentObjects>) oModule.AssignCylindricalHField Array("NAME:TangentialHField4", "ComponentPhiReal:=", _
Boundary and Excitation Module Script Commands 13-13

Example:

Introduction to Scripting in Maxwell

"1", "ComponentPhiImg:=", "2", "ComponentZReal:=", "3", _ "ComponentZImg:=", "4", "ReverseZ:=", false, _ "ReferencePosDefined:=", true, "Origin:=", _ Array("1.36568542494924mm", "0.6mm", "0mm"), _ "Faces:=", Array(75))

EditCylindricalHField
Use: Command: Syntax: Return Value: Edits a cylindrical H-Field boundary. Double-click the boundary in the project tree to edit it. EditCylindricalHField <BoundName> <CylindricalHFieldArray> None

13-14 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Script Commands for Creating and Modifying Excitations


Following are script commands for creating and editing excitations that are recognized by the BoundarySetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignVoltage AssignVoltageGroup EditVoltage AssignVoltageDrop AssignVoltageDropGroup EditVoltageDrop AssignCurrentDensity AssignCurrentDensityGroup EditCurrentDensity AssignCurrentDensityTerminal AssignCurrentDensityTerminalGroup EditCurrentDensityTerminal AssignCurrent AssignCurrentGroup EditCurrent AssignFloating EditFloating AssignCharge EditCharge AssignVolumeChargeDensity EditVolumeChargeDensity AssignCoilTerminal AssignCoilTerminalGroup EditCoilTerminal AssignSink EditSink

AssignVoltage
Use: Command: Syntax: Return Value: Creates a voltage excitation. Maxwell>Excitations>Assign>Voltage AssignVoltage <SourceArray> None
Boundary and Excitation Module Script Commands 13-15

Introduction to Scripting in Maxwell

Parameters:

Example:

<SourceArray> Array(NAME:<SourceName>, Faces:=, <AssignmentFaces>) oModule.AssignVoltage Array("NAME:Source1",_ "Faces:=", Array(12))

AssignVoltageGroup
Use: Creates a group of voltage excitations. The size of the bound name array must be identical to the size of assignment. This command is not supported for the Electric solution types. Maxwell>Excitations>Assign>Voltage AssignVoltageGroup <BoundNameArray> <VoltageArray> None oModule.AssignVoltageGroup Array("VoltageSrc2_1", _ "VoltageSrc2_2"), Array("NAME:VoltageSrc2_1", _ "Voltage:=", "0V", "Faces:=", Array(12, 11))

Command: Syntax: Return Value: Example:

EditVoltage
Use: Command: Syntax: Return Value: Edits a voltage excitation. Double-click the excitation in the project tree to edit it. EditVoltage <BoundName> <VoltageArray> None

AssignVoltageDrop
Use: Command: Syntax: Return Value: Parameters: Creates a voltage drop excitation. Maxwell>Excitations>Assign>Voltage Drop AssignVoltageDrop <VoltageDropArray> None <VoltageDropArray> Array("NAME:<BoundName>", "Voltage Drop:=", <value>, "Point out of terminal:=", <bool>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>)

13-16 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Example:

oModule.AssignVoltageDrop Array("NAME:VoltageDrop1", _ "Voltage Drop:=", "1kV", "Point out of terminal:=", _ true, "Faces:=", Array(7))

AssignVoltageDropGroup
Use: Command: Syntax: Return Value: Creates a group of voltage drop excitations. Maxwell>Excitations>Assign>Voltage Drop AssignVoltageDropGroup <BoundNameArray> <VoltageDropArray> None

EditVoltageDrop
Use: Command: Syntax: Return Value: Edits a voltage drop excitation. Double-click the excitation in the project tree to edit it. EditVoltageDrop <BoundName> <VoltageDropArray> None

AssignCurrentDensity
Use: Command: Syntax: Return Value: Parameters: Creates a current density excitation. Maxwell>Excitations>Assign>Current Density AssignCurrentDensity <CurrentDensityArray> None <CurrentDensityArray> Array("NAME:<BoundName>", "CurrentDensityX:=", <value>, "Phase:=", <value>,//for eddy current solution type "CurrentDensityY:=", <value>, "CurrentDensityZ:=", <bool>, "CoordinateSystem Name:=", <string>, "CoordinateSystem Type:=", <string>, "Objects:=", <AssignmentObjects>) oModule.AssignCurrentDensity Array("NAME:CurrentDensity1", "CurrentDensityX:=", _ "1", "CurrentDensityY:=", "2", "CurrentDensityZ:=", _ "3", "CoordinateSystem Name:=", "Global", _

Example:

Boundary and Excitation Module Script Commands 13-17

Introduction to Scripting in Maxwell

Example:

"CoordinateSystem Type:=", "Cartesian", "Objects:=", _ Array("Box1")) oModule.AssignCurrentDensity Array("NAME:CurrentDensity1", "Phase:=", "12", _ "CurrentDensityX:=", "1", "CurrentDensityY:=", _ "2", "CurrentDensityZ:=", "3", _ "CoordinateSystem Name:=", "Global", "CoordinateSystem Type:=", "Cartesian", "Objects:=", _ Array("Box1"))

AssignCurrentDensityGroup
Use: Command: Syntax: Return Value: Creates a group of current density excitations. Maxwell>Excitations>Assign>Current Density AssignCurrentDensityGroup <BoundNameArray> <CurrentDensityArray> None

EditCurrentDensity
Use: Command: Syntax: Return Value: Edits a current density excitation. Double-click the excitation in the project tree to edit it. EditCurrentDensity <BoundName> <CurrentDensityArray> None

AssignCurrentDensityTerminal
Use: Command: Syntax: Return Value: Parameters: Creates a current density terminal excitation. Maxwell>Excitations>Assign>Current Density Terminal AssignCurrentDensityTerminal <CurrentDensityTerminalArray> None <CurrentDensityTerminalArray> Array("Name:<BoundName>", "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignCurrentDensityTerminal Array("NAME:CurrentDensityTeminal1", "Faces:=", Array(7))

Example:

13-18 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

AssignCurrentDensityTerminalGroup
Use: Command: Syntax: Return Value: Creates a group of current density terminal excitations. Maxwell>Excitations>Assign>Current Density Terminal AssignCurrentDensityTerminalGroup <BoundNameArray> <CurrentDensityTerminalArray> None

EditCurrentDensityTerminal
Use: Note: Syntax: Return Value: Edits a current density terminal excitation. Double-click the excitation in the project tree to edit it. EditCurrentDensityTerminal <BoundName> <CurrentDensityTerminalArray> None

AssignCurrent
Use: Command: Syntax: Return Value: Parameters: Creates a current excitation. Maxwell>Excitations>Assign>Current AssignCurrent <SourceArray> None <SourceArray> Array("NAME:<SourceName>", "Faces:=", <AssignmentFaces>) oModule.AssignCurrent Array("NAME:Source1",_ "Faces:=", Array(12))

Example:

AssignCurrentGroup
Use: Command: Syntax: Return Value: Creates a group of current excitations. Maxwell>Excitations>Assign>Current AssignCurrentGroup <BoundNameArray> <CurrentArray> None

EditCurrent
Use: Command: Syntax: Edits a current excitation. Double-click the excitation in the project tree to edit it. EditCurrent <BoundName> <CurrentArray>
Boundary and Excitation Module Script Commands 13-19

Introduction to Scripting in Maxwell

Return Value:

None

AssignFloating
Use: Command: Syntax: Return Value: Parameters: Creates a floating excitation. Maxwell>Boundaries>Assign>Floating AssignFloating <FloatingArray> None <FloatingArray> Array("NAME:<BoundName>", "Value:=", <value>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignFloating Array("NAME:Floating1", _ "Value:=", "1", "Faces:=", Array(11))

Example:

EditFloating
Use: Command: Syntax: Return Value: Edits a floating excitation. Double-click the excitation in the project tree to edit it. EditFloating <BoundName> <FloatingArray> None

AssignCharge
Use: Command: Syntax: Return Value: Parameters: Creates a charge excitation. Maxwell>Excitations>Assign>Charge AssignCharge <ChargeArray> None <ChargeArray> Array("NAME:<BoundName>", "Value:=", <value>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>) oModule.AssignCharge Array("NAME:Charge1", "Value:=", _ "1", "Faces:=", Array(11))

Example:

13-20 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

EditCharge
Use: Command: Syntax: Return Value: Edits a charge excitation. Double-click the excitation in the project tree to edit it. EditCharge <BoundName> <ChargeArray> None

AssignVolumeChargeDensity
Use: Command: Syntax: Return Value: Parameters: Creates a volume charge density excitation. Maxwell>Excitations>Assign>Volume Charge Density AssignVolumeChargeDensity <VolumeChargeDensityArray> None <VolumeChargeDensityArray> Array("NAME:<BoundName>", "Value:=", <value>, "CoordinateSystem :=", <string>, "Objects:=", <AssignmentObjects>) oModule.AssignVolumeChargeDensity Array("NAME:VolumeChargeDenstiy1", "Value:=", "1", _ "CoordinateSystem:=", "", "Objects:=", Array("Box1")) oModule.AssignVolumeChargeDensity Array("NAME:x", _ "Value:=", "y", "CoordinateSystem:=", "Global", _ "Objects:=", Array("Box2"))

Example:

Example:

EditVolumeChargeDensity
Use: Command: Syntax: Return Value: Edits a volume charge density excitation. Double-click the excitation in the project tree to edit it. EditVolumeChargeDensity <BoundName> <VolumeChargeDensityArray> None

AssignCoilTerminal
Use: Command: Syntax: Parameters: Assigns 2D terminals Maxwell>Excitations>Assign>Coil Terminal AssignCoilTerminal <TerminalArray> <TerminalArray> Array("NAME:AssignTerminals",
Boundary and Excitation Module Script Commands 13-21

Introduction to Scripting in Maxwell

Return Value: Example:

Array("Name:SourceList", Array("Name:<SourceName>", "Excitation:=", <NetObject>, "Objects:=", <Assignment 2D>)), Array("Name:SinkList", Array("Name:<SinkName>", "Excitation:=", <NetObject>, "Objects:=", <Assignment 2D>)), "Name:DeleteList", <Name Array>) None OModule.Assign2DTerminals Array("NAME:AssignTerminals", Array("NAME:SourceList", Array("NAME:Source2", "Net:=",_ "Box2", "Objects:=", Array("Rectangle1"))), _ Array("NAME:SinkList", Array("NAME:Sink1", "Net:=", _ "Box1", "Objects:=", Array("Rectangle2"))), _ "DeleteList:=", "") oModule.AssignPerfectH Array("NAME:PerfH1", "Faces:=", _ Array(12))

AssignCoilTerminalGroup
Use: Command: Syntax: Return Value: Creates a group of coil terminal excitations. Maxwell>Excitations>Assign>Coil Terminal AssignCoilTerminal <BoundNameArray> <CoilTerminalArray> None

EditCoilTerminal
Use: Command: Syntax: Return Value: Edits a coil terminal excitation. Double-click the excitation in the project tree to edit it. EditCoilTerminal <BoundName> <CoilTerminalArray> None

AssignSink
Use: Command: Syntax: Return Value: Parameters: Creates a sink. Maxwell>Excitations>Assign>Sink AssignSink <SinkArray> None <SinkArray> Array("NAME:<SinkName>", "Faces:=", <AssignmentFaces>)

13-22 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Example:

oModule.AssignSink Array("NAME:Sink1",_ "Faces:=", Array(12))

EditSink
Use: Command: Syntax: Return Value: Edits a sink excitation. Double-click the excitation in the project tree to edit it. EditSink <BoundName> <SinkArray> None

Boundary and Excitation Module Script Commands 13-23

Introduction to Scripting in Maxwell

Other BoundarySetup Module Script Commands


Following are additional script commands that are recognized by the BoundarySetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignWindingGroup EditWindingGroup AddTerminalsToWinding EditExternalCircuit SetCoreLoss SetEddyEffect SetMinimumTimeStep

AssignWindingGroup
Use: Command: Syntax: Return Value: Parameters: Creates a winding group. Maxwell>Excitations>Add Winding AssignWindingGroup <WindingGroupArray > None <WindingGroupArray> Array("NAME:<BoundName>", "Type:=",<WindingType>, "IsSolid:=", <bool>, //true for solid, false for stranded "Current:=", <value>, "Resistance:=", <value>, "Inductance:=", <value>, "Voltage:=", <value>, ) Example: oModule.AssignWindingGroup Array("NAME:Winding1", _ "Type:=", "Voltage", "IsSolid:=", _false, _ "Current:=", "4A", "Resistance:=", "5Ohm", _ "Inductance:=", "6mH", "Voltage:=", "7V") oModule.AssignWindingGroup Array("NAME:Winding2", _ "Type:=", "Current", "IsSolid:=", false, "Current:=", _

Example:

13-24 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

Example:

"1A", "Resistance:=", "0Ohm", "Inductance:=", "0mH", _ "Voltage:=", "0V") oModule.AssignWindingGroup Array("NAME:Winding3", _ "Type:=", "External", "IsSolid:=", true, "Current:=", _ "1A", "Resistance:=", "0Ohm", "Inductance:=", "0mH", _ "Voltage:=", "0V")

EditWindingGroup
Use: Command: Syntax: Return Value: Edits a winding group. Double-click the winding group item in the project tree to edit it. EditWindingGroup <BoundName> <WindingGroupArray> None

AddTerminalsToWinding
Use: Command: Syntax: Return Value: Parameters: Adds existing terminal(s) to the selected winding. Right-click a winding item in the project tree, and then select Add Terminals. AddTerminalsToWinding <AddTerminalsToWindingArray> None < AddTerminalsToWindingArray > Array(" NAME:AddTerminalsToWinding", <BoundListArray>) <BoundListArray> Array("NAME:BoundaryList",<CoilTerminalArray>) oModule.AddTerminalstoWinding Array("NAME:AddTerminalsToWinding", _ Array("NAME:BoundaryList", Array("NAME:CoilTerminal1", _ "Point out of terminal:=", false, "Conductor number:=", _ "1", "Winding:=", "Winding1", "Faces:=", Array(12)), _ Array("NAME:CoilTerminal2", "Point out of terminal:=", _ false, "Conductor number:=", "1", "Winding:=", _ "Winding1", "Faces:=", Array(7))))

Example:

EditExternalCircuit
Use: Edits the external circuit for the winding. The SourceNameArray and SourceTypeArray parameters must be of the same size and be a one-to-one match. Maxwell>Excitations>External Circuit>Edit External Circuit
Boundary and Excitation Module Script Commands 13-25

Command:

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

Example:

EditExternalCircuit <fileName> <SourceNameArray> <SourceTypeArray> None <SourceNameArray> Array(<string>) <SourceTypeArray> Array(<srcTypeEnum>)<srcTypeEnum> 1- Time dependent 2-Position dependent 3- Speed dependent oModule.EditExternalCircuit "C:\TestProjects\Tdslink\extnlckt00.ckt", Array("VC1", _ "VSA1_0", "VSA1_1", "VSA1_2"), Array(1, 2, 1, 3)

SetCoreLoss
Use: Turns on the core loss effect. Please list all the objects that need to turn on the core loss effect. If an object is not in the list, then it is treated as core loss effect "off". This setting only takes effect if the object has the corresponding core loss definition in the material library. Maxwell>Excitation>Set Core Loss SetCoreLoss <ObjectNameArray> None < ObjectNameArray > Array("<objectName>")) <objectName> string oModule.SetCoreLoss Array("Box1", "Box2")

Command: Syntax: Return Value: Parameters:

Example:

SetEddyEffect
Use: Command: Syntax: Return Value: Parameters: Sets the eddy effect for an excitation. Maxwell>Excitations>Set Eddy Effects SetEddyEffect <EddyEffectSettingArray> None <EddyEffectSettingArray> Array("NAME:Eddy Effect Setting", <EddyEffectVectorArray>) <EddyEffectVectorArray> Array("NAME:EddyEffectVector", Array<EddyEffectDataArray>) <EddyEffectDataArray> Array(("NAME:Data",
13-26 Boundary and Excitation Module Script

Introduction to Scripting in Maxwell

"Object Name:=", <string>, "Eddy Effect:=", <bool>, "DisplacementCurrent:=", <bool>) Example: oModule.SetEddyEffect Array("NAME:Eddy Effect Setting", _ Array("NAME:EddyEffectVector", Array("NAME:Data", _ "Object Name:=", "Box1", "Eddy Effect:=", true, _ "Displacement Current:=", true), Array("NAME:Data", _ "Object Name:=", "Box1_1", "Eddy Effect:=", true, _ "Displacement Current:=", false))) oModule.SetEddyEffect Array("NAME:Eddy Effect Setting", _ Array("NAME:EddyEffectVector", Array("NAME:Data", _ "Object Name:=", "Box1", "Eddy Effect:=", true), _ Array("NAME:Data", "Object Name:=", "Box1_1", _ "Eddy Effect:=", false)))

Example:

SetMinimumTimeStep
Use: Command: Syntax: Return Value: Parameters: Example: Sets the minimum time step for an external circuit excitation. Maxwell>Excitations>External Circuit>Set Minimum Time Step SetMinimumTimeStep <value> None None oModule.SetMinimumTimeStep "1ps"

Boundary and Excitation Module Script Commands 13-27

Introduction to Scripting in Maxwell

13-28 Boundary and Excitation Module Script

14

Mesh Operations Module Script Commands

Mesh setup and operations commands should be executed by the MeshSetup module. Set oModule = oDesign.GetModule("MeshSetup") oModule.CommandName <args>

Mesh Operations Module Script Commands 14-1

Introduction to Scripting in Maxwell

Conventions Used in the Mesh Operations Chapter


<OpName> Type: <string> Name of a mesh operation. <AssignmentObjects> Type: Array of strings An array of object names. <AssignmentFaces> Type: Array of integers. An array of face IDs. The ID of a face can be determined through the user interface using the Modeler>Measure>Area command. The face ID is given in the Measure Information dialog box.

14-2 Mesh Operations Module Script Commands

Introduction to Scripting in Maxwell

General Commands Recognized by the Mesh Operations Module


Following are general script commands recognized by the MeshSetup module: DeleteOp GetOperationNames RenameOp

DeleteOp
Use: Command: Syntax: Return Value: Parameters: Deletes the specified mesh operations. Delete command in the List dialog box. Click Maxwell3D or Maxwell2D>List to access the List dialog box. DeleteOp <NameArray> None <NameArray> Type: Array of strings. An array of mesh operation names. oModule.DeleteOp Array("Length1", "SkinDepth1",_ "Length2")

Example:

GetOperationNames
Use: Syntax: Return Value: Parameters: Example: Use: Gets the names of mesh operations defined in a design. Syntax: GetOperationNames(<OperationType>) Return Value: Array of mesh operation names. <OperationType> Type: <string> Set opnames = oModule.GetOperationNames(Length Based) For Each name in opnames Msgbox name Next

RenameOp
Use: Command: Syntax: Return Value: Renames a mesh operation. Right-click the mesh operation in the project tree, and then click Rename on the shortcut menu. RenameOp <OldName>, <NewName> None
Mesh Operations Module Script Commands 14-3

Introduction to Scripting in Maxwell

Parameters:

Example:

<OldName> Type: <string> Old name of the mesh operation. <NewName> Type: <string> New name of the mesh operation. oModule.RenameOp "SkinDepth1", "NewName"

14-4 Mesh Operations Module Script Commands

Introduction to Scripting in Maxwell

Script Commands for Creating and Modifying Mesh Operations


Following are script commands for creating and modifying mesh operations that are recognized by the MeshSetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignLengthOp AssignSkinDepthOp AssignTrueSurfOp AssignModelResolutionOp EditLengthOp EditSkinDepthOp EditTrueSurfOp EditModelResolutionOp

AssignLengthOp
Use: Command: Assigns length-based operations to the selection. Maxwell3D or Maxwell2D>Mesh Operations>Assign>On Selection>Length Based or Maxwell3D or Maxwell2D>Mesh Operations>Assign>Inside Selection>Length Based AssignLengthOp <LengthOpParams> None <LengthOpParams> Array("NAME:<OpName>", "RefineInside:=", <bool>, "Objects:=", <AssignmentObjects>, "Faces:=", <AssignmentFaces>, "RestrictElem:=", <bool> "NumMaxElem:=", <integer> "RestrictLength:=", <bool> "MaxLength:=", <value>) RefineInside If true, Objects should be specified. Implies apply restrictions to tetrahedra inside the object. If false, Faces and/or Objects can be specified.
Mesh Operations Module Script Commands 14-5

Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

Example:

Implies apply restrictions to triangles on the surface of the face or object. RestrictElem If true, NumMaxElem should be specified. RestrictLength If true, MaxLength should be specified. Assigning length-based operations to the inside tetrahedra of an object: oModule.AssignLengthOp Array("NAME:Length1", _ "RefineInside:=", true, _ "Objects:=", Array("Box1"), _ "RestrictElem:=", true, _ "NumMaxElem:=", 1000, _ "RestrictLength:=", true, _ "MaxLength:=", "1mm")

AssignSkinDepthOp
Use: Command: Syntax: Return Value: Parameters: Assigns a skin-depth based operation to the selection. Maxwell3D or Maxwell2D>Mesh Operations>Assign>On Selection>Skin Depth Based AssignSkinDepthOp <SkinDepthOpParams> None <SkinDepthOpParams> Array("NAME:<OpName>", "Faces:=", <AssignmentFaces>, "RestrictElem:=", <bool>, "NumMaxElem:=", <int>, "SkinDepth:=", <value>, "SurfTriMaxLength:=", <value>, "NumLayers:=", <int>) RestrictElem If true, NumMaxElem should be specified. oModule.AssignSkinDepthOp Array("NAME:SkinDepth1", _ "Faces:=", Array(7), _ "RestrictElem:=", true, _ "NumMaxElem:=", 1000, _ "SkinDepth:=", "1mm", _

Example:

14-6 Mesh Operations Module Script Commands

Introduction to Scripting in Maxwell

"SurfTriMaxLength:=", "1mm", _ "NumLayers:=", 2)

AssignTrueSurfOp
Use: Command: Syntax: Return Value: Parameters: Assigns a true surface-based mesh operation to the selection. Maxwell3D or Maxwell2D>Mesh Operations>Assign>Surface Approximation AssignTrueSurfOp <TrueSurfOpParams> None <TrueSurfOpParams> Array("NAME:<OpName>", "Faces:=", <AssignmentFaces>, "SurfDevChoice:=", <RadioOption>, "SurfDev:=", <value>, "NormalDevChoice:=", <RadioOption>, "NormalDev:=", <value>, "AspectRatioChoice:=", <RadioOption>, "AspectRatio:=", <double>) <RadioOption> Type: <int> 0: Ignore 1: Use defaults 2: Specify the value oModule.AssignTrueSurfOp Array("NAME:TrueSurf1", _ "Faces:=", Array(9), _ "SurfDevChoice:=", 2, _ "SurfDev:=", "0.04123105626mm", _ "NormalDevChoice:=", 2, _ "NormalDev:=", "15deg", _ "AspectRatioChoice:=", 1)

Example:

AssignModelResolutionOp
Use: Command: Assigns a model resolution name, value and unit for mesh operations. Maxwell3D>Mesh Operations>Assign>Model Resolution

Mesh Operations Module Script Commands 14-7

Introduction to Scripting in Maxwell

Example:

oModule.AssignModelResolutionOp Array("NAME:ModelResolution1", "Objects:=", Array( _ "Rectangle2"), "DefeatureLength:=", "0.3mm")

EditLengthOp
Use: Edits an existing length-based operation. This cannot be used to modify assignments. Instead, the mesh operation should be deleted and a new one created. Double-click the operation in the project tree to modify its settings. EditLengthOp <OpName>, <LengthOpParams> None oModule.EditLengthOp "Length1", Array("NAME:Length1", _ "RefineInside:=", false, _ "RestrictElem:=", false, _ "RestrictLength:=", true, _ "MaxLength:=", "2mm")

Command: Syntax: Return Value: Example:

EditSkinDepthOp
Use: Modifies an existing skin-depth based mesh operation. Assignments cannot be changed using this command. To change the assignment, you must delete the operation and create it using a new assignment. Double-click the operation in the project tree to modify its settings. EditSkinDepthOp <OpName>, <SkinDepthOpParams> None oModule.EditSkinDepthOp "SkinDepth1", Array("NAME:SkinD",_ "RestrictElem:=", false, _ "SkinDepth:=", "2mm", _ "SurfTriMaxLength:=", "1mm", _ "NumLayers:=", 2)

Command: Syntax: Return Value: Example:

EditTrueSurfOp
Use: Modifies an existing true surface approximation-based mesh operation. Assignments cannot be changed using this command. To change the assignment, delete this operation and create it using a new assignment. Double-click the operation in the project tree to modify its settings. EditTrueSurfOp <OpName>, <TrueSurfOpParams>

Command: Syntax:

14-8 Mesh Operations Module Script Commands

Introduction to Scripting in Maxwell

Return Value: Example:

None oModule.EditTrueSurfOp "TrueSurf2", _ Array("NAME:trusurf", _ "SurfDevChoice:=", 2, _ "SurfDev:=","0.03mm", _ "NormalDevChoice:=", 1, _ "AspectRatioChoice:=", 2, _ "AspectRatio:=", 10)

EditModelResolutionOp
Use: Command: Example: Assigns a model resolution name, value and unit for mesh operations. Double-click the operation in the Project tree to modify its settings. oModule.EditModelResolutionOp Array("NAME:ModelResolution1", "Objects:=", Array( _ "Rectangle2"), "DefeatureLength:=", "0.3mm")

Mesh Operations Module Script Commands 14-9

Introduction to Scripting in Maxwell

14-10 Mesh Operations Module Script Commands

15

Analysis Module Script Commands

Maxwell analysis setup commands should be executed by the Analysis module, referred to in Maxwell scripts as the AnalysisSetup module. Set oModule = oDesign.GetModule("AnalysisSetup") oModule.CommandName <args>

Analysis Module Script Commands 15-1

Introduction to Scripting in Maxwell

Analysis Setup Script Commands


Following are script commands recognized by the AnalysisSetup module: InsertSetup EditSetup RenameSetup DeleteSetups ExportCircuit ExportSolnData RevertSetupToInitial RevertAllToInitial ResetSetupToTimeZero ResetAllToTimeZero GetSetups GetSetupNames Analyze CopySetup PasteSetup

InsertSetup
Use: Command: Syntax: Return Value: Parameters: Adds a new solution setup. Maxwell3D or Maxwell2D>Analysis Setup>Add Solution Setup InsertSetup <SetupType>, <AttributesArray> None <SetupType> Type: <string> Possible values for 3D designs are: "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "DCConduction", "ElectroDCConduction", and "ElectricTransient". Possible values for 2D designs are: "Magnetostatic", "EddyCurrent", "Transient", "Electrostatic", "ACConduction", "DCConduction". <AttributesArray> Array("NAME:<SetupName>", <NamedParameters>) <NamedParameters> The named parameters vary according to the setup type. Please see the specific examples below for each solution type.
15-2 Analysis Module Script Commands

Introduction to Scripting in Maxwell

Example: 3D Magnetostatic solve setup: oModule.InsertSetup "Magnetostatic", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false, _ "NonLinearResidual:=", 0.001, _ "MuNonLinearBH:=", true, _ "ComputeHc:=", false, _ "HcNonLinearBH:=", true) Example: 3D EddyCurrent solve setup: oModule.InsertSetup "EddyCurrent", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false, _ "Frequency:=", "60Hz", _ "HasSweepSetup:=", false) Example: 3D Transient solve setup: oModule.InsertSetup "Transient", Array("NAME:Setup1", _ "NonlinearSolverResidual:=", 0.005, _ "StopTime:=", "0.01s", _ "TimeStep:=", "0.002s", _ "OutputError:=", false, _
Analysis Module Script Commands 15-3

Introduction to Scripting in Maxwell

"UseControlProgram:=", false, _ "ControlProgramName:=", " ", _ "ControlProgramArg:=", " ", _ "CallCtrlProgAfterLastStep:=", false, _ "HasSweepSetup:=", false, _ "OutputVarCalTimeStep:=", "0.002s", _ "OutputVarCalNumOfSolveSteps:=", 1, _ "OutputVarCalTimeMethod:=", 0, _ "NumberOfOutputVars:=", 0, _ "TransientHcNonLinearBH:=", true, _ "TransientComputeHc:=", false, _ "PreAdaptMesh:=", false, _ "TransientComputePowerLoss:=", false, _ "TransientComputeForceDensity:=", false) Example: 3D Electrostatic solve setup: oModule.InsertSetup "Electrostatic", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false) Example: 3D DCConduction solve setup: oModule.InsertSetup "DCConduction", Array("NAME:Setup2", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false)

15-4 Analysis Module Script Commands

Introduction to Scripting in Maxwell

Example: 3D ElectroDCConduction solve setup: oModule.InsertSetup "ElectroDCConduction", Array("NAME:Setup3", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false) Example: 3D ElectricTransient solve setup: oModule.InsertSetup "ElectricTransient", Array("NAME:Setup1", _ "Tolerance:=", 0.005, _ Array("NAME:Data", _ "SaveField:=", true, _ "Stop:=", "100s", _ "InitialStep:=", "0.01s", _ "MaxStep:=", "5s"), _ "Initial Voltage:=", "0V", _ "NumberOfOutputVars:=", 0) Example: 2D Magnetostatic solve setup: oModule.InsertSetup "Magnetostatic", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false, _ "NonLinearResidual:=", 0.0001, _ "MuNonLinearBH:=", true, _
Analysis Module Script Commands 15-5

Introduction to Scripting in Maxwell

"ComputeHc:=", false, _ "HcNonLinearBH:=", true) Example: 2D EddyCurrent solve setup: oModule.InsertSetup "EddyCurrent", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false, _ "Frequency:=", "60Hz", _ "NonLinearResidual:=", 0.0001, _ "HasSweepSetup:=", false) Example: 2D Transient solve setup: oModule.InsertSetup "Transient", Array("NAME:Setup1", _ "NonlinearSolverResidual:=", 0.0001, _ "StopTime:=", "0.01s", _ "TimeStep:=", "0.002s", _ "OutputError:=", false, _ "UseControlProgram:=", false, _ "ControlProgramName:=", " ", _ "ControlProgramArg:=", " ", _ "CallCtrlProgAfterLastStep:=", false, _ "HasSweepSetup:=", false, _ "OutputVarCalTimeStep:=", "0.002s", _ "OutputVarCalNumOfSolveSteps:=", 1, _ "OutputVarCalTimeMethod:=", 0, _ "NumberOfOutputVars:=", 0, _ "TransientHcNonLinearBH:=", true, _ "TransientComputeHc:=", false, _ "PreAdaptMesh:=", false, _ "UseAdaptiveTimeStep:=", false, _ "InitialTimeStep:=", "0.002s", _ "MinTimeStep:=", "0.001s", _

15-6 Analysis Module Script Commands

Introduction to Scripting in Maxwell

"MaxTimeStep:=", "0.003s", _ "TimeStepErrTolerance:=", 0.0001) Example: 2D Electrostatic solve setup: oModule.InsertSetup "Electrostatic", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false) 2D ACConduction solve setup: oModule.InsertSetup "ACConduction", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false, _ "Frequency:=", "60Hz", _ "HasSweepSetup:=", false) 2D DCConduction solve setup: oModule.InsertSetup "DCConduction", Array("NAME:Setup1", _ "MaximumPasses:=", 10, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _
Analysis Module Script Commands 15-7

Example:

Example:

Introduction to Scripting in Maxwell

"PreAdaptMesh:=", false)

EditSetup
Use: Command: Syntax: Return Value: Parameters: Modifies an existing solution setup. Double-click a solution setup in the project tree to modify its settings. EditSetup <SetupName>, <AttributesArray> None <SetupName> Type: <string> Name of the solution setup being edited. <AttributesArray> Array("NAME:<NewSetupName>", <NamedParameters>) NamedParameters depend upon the solution type of the design. See InsertSetup for additional details. 3D ElectricTransient edit setup: oModule.EditSetup "Setup1", Array("NAME:Setup1", _ "Tolerance:=", 0.005, _ Array("NAME:Data", _ "SaveField:=", true, _ "Stop:=", "100s", _ "InitialStep:=", "0.01s", _ "MaxStep:=", "0.5s"), _ "Initial Voltage:=", "0V", _ "NumberOfOutputVars:=", 0) 2D DCConduction edit setup: oModule.EditSetup "Setup1", Array("NAME:Setup1", _ "MaximumPasses:=", 20, _ "MinimumPasses:=", 2, _ "MinimumConvergedPasses:=", 1, _ "PercentRefinement:=", 30, _ "SolveFieldOnly:=", false, _ "PercentError:=", 1, _ "SolveMatrixAtLast:=", true, _ "UseOutputVariable:=", false, _ "PreAdaptMesh:=", false)

Example:

Example:

15-8 Analysis Module Script Commands

Introduction to Scripting in Maxwell

RenameSetup
Use: Command: Syntax: Return Value: Parameters: Renames an existing solution setup. Right-click a solution setup in the project tree, and then click Rename on the shortcut menu. RenameSetup <OldName>, <NewName> None <OldName> Type: <string> Name of the solution setup being renamed. <NewName> Type: <string> New name for the solution setup. oModule.RenameSetup "Setup1", "Setup2"

Example:

DeleteSetups
Use: Command: Syntax: Return Value: Parameters: Example: Deletes one or more solution setups, which are specified by an array of solution setup names. Right-click a solution setup in the project tree, and then click Delete on the shortcut menu, or delete selected solution setups in the List dialog box. DeleteSetups <SetupArray> None <SetupArray> Array(<name1>, <name2>, ...) oModule.DeleteSetups Array("Setup1", "Setup2")

ExportCircuit
Use: Command: Syntax: Exports matrix solution to an outside circuit. Right-click a matrix setup under Parameters in the project tree, and select View Solution. From the dialog box, click the Export Circuit button. ExportCircuit <SetupName>, <Variation>, <ExportFileName>, Array("NAME:CircuitData", "Matrix:=", <MatrixName>, "Post Processed:=", <IsPostProcessed>, "Scale:=", <ScalingFactor>, Array("NAME:Pins", "<SourceName>:=", Array("res:=", <Resistance> ))), <ModelName> None <SetupName> Type: string
Analysis Module Script Commands 15-9

Return Value: Parameters:

Introduction to Scripting in Maxwell

Example:

Setup name <Variation> Type: string Variation values <ExportFileName> Type: string Export file name <MatrixName> Type: string Matrix setup name <IsPostProcessed> Type: bool Is post processed (true/false) <ScalingFactor> Type: string (value) Scaling factor <SourceName> Type: string (without quotation mark) Source name <Resistance> Type: value Resistance value <ModelName> Type: string Model name or name of the sub circuit(optional). If not specified then "ExportFileName" is used as the model name. oModule. ExportCircuit "Setup1", "", _ "C:/Maxwell/Projects/Export/Matrix1.sml", _ Array("NAME:CircuitData", _ "Matrix:=", "Matrix1", _ "Post Processed:=", false, _ "Scale:=", "1", _ Array("NAME:Pins", _ "Current1:=", Array("res:=", "0mOhm")))

15-10 Analysis Module Script Commands

Introduction to Scripting in Maxwell

ExportSolnData
Use: Command: Exports solution data to a file. Right-click a parameter setup under Parameters in the project tree, and select View Solution. From the dialog box, select an appropriate solution type, and click the Export Solution button. ExportSolnData <SetupName>, <SolutionName>, <IsPostProcessed>, <Variation>, <ExportFileName>,

Syntax: Return Value: None

<SetupName> Type: string Setup name. <SolutionName> Type: string Solution setup name. <IsPostProcessed> Type: bool Is post processed (true/false). <Variation> Type: string Variation values. <ExportFileName> Type: string Export file name. Example: oModule.ExportSolnData "Setup1", "Matrix1", false, "", _ "C:/Maxwell/Projects/Export/OutputSolution.txt"

Parameters:

RevertSetupToInitial
Use: Command: Syntax: Return Value: Parameters: Example: Marks the current mesh for a solution setup as invalid, forcing the next simulation to start from the initial mesh. Right-click a setup in the project tree, and then click Revert to Initial Mesh on the shortcut menu. RevertSetupToInitial <SetupName> None <SetupName> The name of the solution setup you want to revert to. oModule.RevertSetupToInitial "Setup1"
Analysis Module Script Commands 15-11

Introduction to Scripting in Maxwell

RevertAllToInitial
Use: Command: Syntax: Return Value: Example: Marks the current mesh for all solution setups as invalid, forcing the next simulation to start from the initial mesh. Maxwell3D or Maxwell2D>Analysis Setup>Revert to Initial Mesh RevertAllToInitial None oModule.RevertAllToInitial

ResetSetupToTimeZero
Use: Command: Syntax: Return Value: Parameters: Forces the next solve to start from time 0 for a given setup. Applies only to the Transient solution type. Right-click a setup in the project tree, and select Revert to Time Zero. ResetSetupToTimeZero <SetupName> None <SetupName> Type: string Setup name oModule.ResetSetupToTimeZero "Setup1"

Example:

ResetAllToTimeZero
Forces the next solve to start from time 0 for all setups. Applies only to the Transient solution type. Command: Right-click Analysis in the project tree, and select Revert to Time Zero. Syntax: ResetAllToTimeZero Return Value: None Parameters: None Example: oModule.ResetAllToTimeZero

GetSetups
Use: Syntax: Return Value: Parameters: Example: Gets the names of analysis setups in a design. GetSetups() Array of analysis setup names. None setupnames = oModule.GetSetups()

15-12 Analysis Module Script Commands

Introduction to Scripting in Maxwell

GetSetupNames
Use: Command: Syntax: Return Value: Parameters: Example: Get the names of setups. None GetSetupNames() An array of strings. The setup names. None. Set setups = oModule.GetSetupNames() numsetups = setups.Count for i=0 to numsetups-1 setup = setups.Item(i) MsgBox "Setup Name = " & setup Next

Analyze (Project Menu)


Use: Command: Syntax: Parameters: Solves a single solution setup and all of its frequency sweeps. Right-click a solution setup in the project tree, and then click Analyze on the shortcut menu. SolveSetup <SetupName> Type: <String> Name of the solve setup. <SweepName> Type: <String> Sweep name None oDesign.Analyze "Setup2" oDesign.Analyze "Setup2:Sweep1"

Return Value: Example: Example:

CopySetup
Use: Syntax: Return Value: Parameters: Copy a solve setup. CopySetup <SetupName> None <SetupName> Type: <String>
Analysis Module Script Commands 15-13

Introduction to Scripting in Maxwell

Example:

Name of solve setup to be copied. oModule.CopySetup "Setup6"

PasteSetup
Use: Syntax: Return Value: Example: Paste a solve setup. PasteSetup None oModule.PasteSetup

15-14 Analysis Module Script Commands

16

Optimetrics Module Script Commands

Optimetrics script commands should be executed by the Optimetrics module. Set oModule = oDesign.GetModule("Optimetrics") oModule.CommandName <args>

Optimetrics Module Script Commands 16-1

Introduction to Scripting in Maxwell

Conventions Used in the Optimetrics Module Chapter


<VarName> Type: <string> Name of a variable. <VarValue> Type: <string> Value with a unit (i.e., <value>, but cannot be an expression). <StartV> Type: <VarValue> The starting value of a variable. <StopV> Type: <VarValue> The stopping value of a variable. <MinV> Type: <VarValue> The minimum value of a variable. <MaxV> Type: <VarValue> The maximum value of a variable. <IncludeVar> Type: <bool> Specifies whether or not the variable is included in the analysis. <StartingPoint> Array("NAME:StartingPoint", "<VarName>:=", <VarValue>, .... "<VarName>:=", <VarValue>) <SaveField> Type: <bool> Specifies whether to remove the non-nominal field solution. <MaxIter> Type: <int> Maximum iteration allowed in an analysis. <PriorSetup>
16-2 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

Type: <string> The name of the embedded parametric setup. <Precede> Type: <bool> If true, the embedded parametric setup will be solved before the analysis begins. If false, the embedded parametric setup will be solved during each analysis iteration. <Constraint> Array("NAME:LCS", "lc:=", Array("<VarName>:=", <Coeff>, "<VarName>:=", <Coeff>, "rel:=", <Cond>, "rhs:=", <Rhs>), ... "lc:=", Array("<VarName>:=", <Coeff>, ..." <VarName>:=", <Coeff>, "rel:=", <Cond>, "rhs:=", <Rhs>)) Parameters: <Coeff> Type: <double> Coefficient for a variable in the linear constraint. <Cond> Type: <string> Inequality condition. <Rhs> Type: <double> Inequality value. <OptiGoalSpec> "Solution:=", <Soln>, "Calculation:=", <Calc>, "Context:=, <Geometry> Array(NAME:Ranges, "Range:", Array("Var:=", <VarName>, "Type:=", <RangeType>, "Start:=",<StartV>, "Stop:=", <StopV>), ... "Range:", Array("Var:=", <VarName>, "Type:=", <RangeType>, "Start:=", <StartV>, "Stop:=",<StopV>)) Parameters:
Optimetrics Module Script Commands 16-3

Introduction to Scripting in Maxwell

<Soln> Type: <string> Name of the Maxwell solution. <Calc> Type: <string> An expression composed of a basic solution quantity and an output variable. <ContextName> Type: <string> Name of context needed in the evaluation of <Calc>. <RangeType> Type: <string> if "r", start and stop values specify a range for the variable if "s", start values specify the single value for the variable.

16-4 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

General Commands Recognized by the Optimetrics Module


Following are general script commands recognized by the Optimetrics module: DeleteSetups (Optimetrics) RenameSetup (Optimetrics) SolveSetup (Optimetrics)

GetSetupNames (Optimetrics) GetSetupNamesByType (Optimetrics) DistributedAnalyzeSetup

DeleteSetups (Optimetrics)
Use: Command: Syntax: Return Value: Parameters: Deletes the specified Optimetrics setups. Right-click the setup in the project tree, and then click Delete on the shortcut menu. DeleteSetups <NameArray> None <NameArray> Type: Array of strings. An array of setup names. oModule.DeleteSetups Array("OptimizationSetup1")

Example:

DistributedAnalyzeSetup
Use: Command: Syntax: Return Value: Parameters: Example: Distributes all variable value instances within a parametric sweep to different machines already specified from within the user interface. Right-click the parametric setup name in the project tree, and select Distribute Analysis. DistributedAnalyzeSetup <ParametricSetupName> None

<ParametricSetupName>
Type: <string> oModule.DistributedAnalyzeSetup "ParametricSetup1"

GetSetupNames (Optimetrics)
Use: Syntax: Return Value: Gets a list of Optimetrics setup names. GetSetupNames() Array of Optimetrics setup names
Optimetrics Module Script Commands 16-5

Introduction to Scripting in Maxwell

Parameters: Example:

None For each name in oModule.GetSetupNames() Msgbox name Next

GetSetupNamesByType (Optimetrics)
Use: Syntax: Return Value: Parameters: Gets a list of Optimetrics setup names by type. GetSetupNamesByType(<Optimetrics type>) Array of Optimetrics setup names of the given type. <Optimetrics type> Type: String Examples: parametric, optimization, statistical, sensitivity For each name in oModule.GetSetupNamesByType("optimization") Msgbox name Next

Example:

RenameSetup (Optimetrics)
Use: Command: Syntax: Return Value: Parameters: Renames the specified Optimetrics setup. Right-click the setup in the project tree, and then click Rename on the shortcut menu. RenameSetup <OldName> <NewName> None <OldName> Type: <string> <NewName> Type: <string> oModule.RenameSetup "OptimizationSetup1" "MyOptimization"

Example:

SolveSetup (Optimetrics)
Use: Command: Syntax: Return Value: Parameters: Solves the specified Optimetrics setup. Right-click the setup in the project tree, and then click Analyze on the shortcut menu. SolveSetup <SetupName> None oModule.SolveSetup "OptimizationSetup1"

16-6 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

Parametric Script Commands


Following are parametric analysis script commands: InsertSetup (Parametric) EditSetup (Parametric)

InsertSetup (Parametric)
Use: Command: Inserts a new parametric setup. Right-click the Optimetrics folder in the project tree, and then click Add> Parametric on the shortcut menu.(Maxwell3D or Maxwell2D>Optimetrics Analysis>Add Parametric) InsertSetup "OptiParametric", <ParametricParams> None <Parametric Params> Array("NAME:<SetupName>", "SaveFields:=", <SaveField>, <StartingPoint>, "Sim. Setups:=", <SimSetups>, <SweepDefs>, <SweepOps>, Array("NAME:Goals", Array("NAME:Goal", <OptiGoalSpec>), ... Array("NAME:Goal", <OptiGoalSpec>)) <SetupName> Type: <string> Name of the parametric setup. <SimSetups> Type: Array of strings. An array of Maxwell solution setup names. <SweepDefs> Array("NAME:Sweeps", Array("NAME:SweepDefinition", "Variable:=", <VarName>, "Data:=", <SweepData>, "Synchronize:=", <SyncNum>), ... Array("NAME:SweepDefinition", "Variable:=", <VarName>, "Data:=", <SweepData>, "Synchronize:=", <SyncNum>)) Parameters:
Optimetrics Module Script Commands 16-7

Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

<SweepData> "<SweepType>, <StartV>, <StopV>, <StepV>" Parameters: <SweepType> Type: <string> The type of sweep data. <SyncNum> Type: <int> SweepData with the same value are synchronized. <SweepOps> Array("NAME:Sweep Operations", <OpType>:=, Array(<VarValue>, , <VarValue>), ... <OpType>:=, Array(<VarValue>, , <VarValue>)) Parameters: <OpType> Type: <string> The sweep operation type. Example: oModule.InsertSetup "OptiParametric", _ Array("NAME:ParametricSetup1", "SaveFields:=", true, _ Array("NAME:StartingPoint"), "Sim. Setups:=", _ Array("Setup1"),Array("NAME:Sweeps", _ Array("NAME:SweepDefinition", _ "Variable:=", "$width", _ "Data:=", "LIN 12mm 17mm 2.5mm", _ "OffsetF1:=", false, "Synchronize:=", 0), _ Array("NAME:SweepDefinition", "Variable:=", _ "$length", "Data:=", _ "LIN 8mm 12mm 2mm", "OffsetF1:=", false, _ "Synchronize:=", 0)), _ Array("NAME:Sweep Operations"), Array("NAME:Goals", _ Array("NAME:Goal", "Solution:=", _ "Setup1 : LastAdaptive", _ "Calculation:=", "returnloss", _ "Context:=", "", _ Array("NAME:Ranges", "Range:=", _ Array("Var:=", "Freq", "Type:=", "s", _ "Start:=", "8GHz", "Stop:=", "8GHz"))), _ Array("NAME:Goal", "Solution:=", _ "Setup1 : LastAdaptive","Calculation:=", "reflect", _
16-8 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

"Context:=", "", Array("NAME:Ranges", "Range:=", _ Array("Var:=", "Freq", "Type:=", "s", _ "Start:=", "8GHz", "Stop:=", "8GHz")))))

EditSetup (Parametric)
Use: Command: Syntax: Return Value: Modifies an existing parametric setup. Right-click the setup in the project tree, and then click Properties on the shortcut menu. EditSetup <SetupName>, <ParametricParams> None

Optimetrics Module Script Commands 16-9

Introduction to Scripting in Maxwell

Optimization Script Commands


Following are optimization analysis script commands: InsertSetup (Optimization) EditSetup (Optimization)

InsertSetup (Optimization)
Use: Command: Inserts a new optimization setup. Right-click the Optimetrics folder in the project tree, and then click Add>Optimization on the shortcut menu. (Maxwell3D or Maxwell2D>Optimetrics Analysis>Add Optimization) InsertSetup "OptiOptimization", <OptimizationParams> None <OptimizationParams> Array("NAME:<SetupName>", "SaveFields:=", <SaveField>, <StartingPoint>, "Optimizer:=", <Optimizer>, "MaxIterations:=", <MaxIter>, "PriorPSetup:=", <PriorSetup>, "PreSolvePSetup:=", <Preceed>, <OptimizationVars>, <Constraint>, Array("NAME:Goals", Array("NAME:Goal", <OptiGoalSpec>, <OptimizationGoalSpec>), ... Array("NAME:Goal", <OptiGoalSpec>, <OptimizationGoalSpec>)), "Acceptable_Cost:=", <AcceptableCost>, "Noise:=", <Noise>, "UpdateDesignWhenDone:=", <UpdateDesign> <OptimizationVars> Array("NAME:Variables", "VarName:=", Array("i:=", <IncludeVar>, "Min:=", <MinV>, "Max:=", <MaxV>, "MinStep:=", <MinStepV>, "MaxStep:=", <MaxStepV>), . "VarName:=", Array("i:=", <IncludeVar>, "Min:=", <MinV>, "Max:=", <MaxV>, "MinStep:=", <MinStepV>, "MaxStep:=", <MaxStepV>)) Parameters: <MinStepV> Type : <VarValue>
16-10 Optimetrics Module Script Commands

Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

The minimum step of the variable. <MaxStepV> Type: <VarValue> The maximum step of the variable. <AcceptableCost> Type: <double> The acceptable cost value for the optimizer to stop. <Noise> Type: <double> The noise of the design. <UpdateDesign> Type: <bool> Specifies whether or not to apply the optimal variation to the design after the optimization is done. <OptimizationGoalSpec> "Condition:=", <OptimizationCond>, Array("NAME:GoalValue", "GoalValeType:=", <GoalValueType>, "Format:=", <GoalValueFormat>, "bG:=", Array("v:=", <GoalValue>)), "Weight:=", <Weight>) Parameters: <OptimizationCond> Type: <string> Either "<=", "==", or ">=" <GoalValueType> Type: <string> Either "Independent" or "Dependent" <GoalValueFormat> Type:<string> Either "Real/Imag" or "Mag/Ang". <GoalValue> Type: <string> Value in string. Value can be a real number, complex number, or expression. Example: oModule.InsertSetup _
Optimetrics Module Script Commands 16-11

Introduction to Scripting in Maxwell

"OptiOptimization",Array("NAME:OptimizationSetup1", _ "SaveFields:=", false, _ Array("NAME:StartingPoint", "$length:=", "8mm", _ "$width:=", "14.5mm"), "Optimizer:=", "Quasi Newton", _ "MaxIterations:=", 100, _ "PriorPSetup:=", "ParametricSetup1", _ "PreSolvePSetup:=", true, _ Array("NAME:Variables", "$length:=", _ Array("i:=", true, "Min:=", "6mm", "Max:=", "18mm", _ "MinStep:=", "0.001mm", "MaxStep:=", "1.2mm"), _ "$width:=", Array("i:=", true, _ "Min:=", "6.5mm", "Max:=", "19.5mm", _ "MinStep:=", "0.001mm", "MaxStep:=", "1.3mm")), _ Array("NAME:LCS"), Array("NAME:Goals", _ Array("NAME:Goal", "Solution:=", _ "Setup1 : LastAdaptive", "Calculation:=", "reflect", _ "Context:=", "", Array("NAME:Ranges", "Range:=", _ Array("Var:=", "Freq", "Type:=", "s", _ "Start:=", "8GHz", "Stop:=", "8GHz")), _ "Condition:=", "<=", _ Array("NAME:GoalValue", "GoalValueType:=", _ "Independent", "Format:=", "Real/Imag", "bG:=", _ Array("v:=", "[0.0001]")), "Weight:=", "[1]")), _ "Acceptable_Cost:=", 0.0002, "Noise:=", 0.0001, _ "UpdateDesign:=", true, "UpdateIteration:=", 5, _ "KeepReportAxis:=", true, _ "UpdateDesignWhenDone:=", true)

EditSetup (Optimization)
Use: Command: Syntax: Return Value: Modifies an existing optimization setup. Right-click the setup in the project tree, and then click Properties on the shortcut menu. EditSetup <SetupName>, <OptimizationParams> None

16-12 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

Sensitivity Script Commands


Following are sensitivity analysis script commands: InsertSetup (Sensitivity) EditSetup (Sensitivity)

InsertSetup (Sensitivity)
Use: Command: Inserts a new sensitivity setup. Right-click Optimetrics in the project tree, and then click Add>Sensitivity on the shortcut menu.(Maxwell3D or Maxwell2D>Optimetrics Analysis>Add Sensitivity) InsertSetup "OptiSensitivity", <SensitivityParams> None <SensitivityParams> Array("NAME:<SetupName>", "SaveFields:=", <SaveField>, <StartingPoint>, "MaxIterations:=", <MaxIter>, "PriorPSetup:=", <PriorSetup>, "PreSolvePSetup:=", <Preceed>, <SensitivityVars>, <Constraint>, Array("NAME:Goals", Array("NAME:Goal", <OptiGoalSpec>), ..., Array("NAME:Goal", <OptiGoalSpec>)), "Master Goal:=". <MasterGoalID>, "MasterError:=", <MasterError>) <SensitivityVars> Array("NAME:Variables", "VarName:=", Array("i:=", <IncludeVar>, "Min:=", <MinV>, "Max:=", <MaxV>, "IDisp:=", <InitialDisp>),... "VarName:=", Array("i:=", <IncludeVar>, "Min:=", <MinV>, "Max:=", <MaxV>, "IDisp:=", <InitialDisp>)) Parameters: <InitialDisp> Type : <VarValue> The initial displacement of the variable. <MasterGoalID>
Optimetrics Module Script Commands 16-13

Syntax: Return Value: Parameters:

Introduction to Scripting in Maxwell

Type: <int> Index of the master goal. Index starts from zero. <MasterError> Type: <double> Error associated with the master goal. Example: oModule.InsertSetup "OptiSensitivity", _ Array("NAME:SensitivitySetup1","SaveFields:=", true, _ Array("NAME:StartingPoint"), "MaxIterations:=", 20, _ "PriorPSetup:=", "","PreSolvePSetup:=", true, _ Array("NAME:Variables"), Array("NAME:LCS"), _ Array("NAME:Goals", Array("NAME:Goal", _ "Solution:=", "Setup1 : LastAdaptive", "Calculation:=", _ "returnloss", "Context:=", "", _ Array("NAME:Ranges","Range:=", _ Array("Var:=", "Freq", "Type:=", "s", _ "Start:=", "8GHz", "Stop:=", "8GHz"))), _ Array("NAME:Goal","Solution:=", "Setup1 : _ LastAdaptive", "Calculation:=", "reflect", _ "Context:=", "", Array("NAME:Ranges", "Range:=", _ Array("Var:=", "Freq", "Type:=", "s", _ "Start:=", "8GHz", "Stop:=", "8GHz")))), _ "Master Goal:=", 1,"MasterError:=", 0.001)

EditSetup (Sensitivity)
Use: Command: Syntax: Return Value: Modifies an existing sensitivity setup. Right-click the setup in the project tree, and then click Properties on the shortcut menu. EditSetup <SetupName>, <SensitivityParams> None

16-14 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

Statistical Script Commands


Following are statistical analysis script commands: InsertSetup (Statistical) EditSetup (Statistical)

InsertSetup (Statistical)
Use: Command: Syntax: Return Value: Parameters: Inserts a new statistical setup. Right-click Optimetrics in the project tree, and then click Add>Statistical on the shortcut menu.(Maxwell>Optimetrics Analysis>Add Statistical) InsertSetup "OptiStatistical", <StatisticalParams> None <StatisticalParams> Array("NAME:<SetupName>", "SaveFields:=", <SaveField>, <StartingPoint>, "MaxIterations:=", <MaxIter>, "PriorPSetup:=", <PriorSetup>, "PreSolvePSetup:=", <Preceed>, <StatisticalVars>, Array("NAME:Goals", Array("NAME:Goal", <OptiGoalSpec>), , Array("NAME:Goal", <OptiGoalSpec>))), <StatisticalVars> Array("NAME:Variables", "VarName:=", Array("i:=", <IncludeVar>, "Dist:=", <DistType>, "Tol:=", <Tolerance>, "StdD:=", <StdD>, "Min:=", <MinCutoff>, "Max:=", <MaxCutoff>, ... "VarName:=", Array("i:=", <IncludeVar>, "Dist:=", <DistType>, "Tol:=", <Tolerance>, "StdD:=", <StdD>, "Min:=", <MinCutoff>, "Max:=", <MaxCutoff>)) Parameters: <DistType> Type : <string> Distrbution can be "Gaussian" or "Uniform". <Tolerance>
Optimetrics Module Script Commands 16-15

Introduction to Scripting in Maxwell

Example:

Type: <VarValue> The tolerance for the variable when distribution is Uniform. <StdD> Type: <VarValue> The standard deviation for the variable when distribution is Gaussian. <MinCutoff> Type: <double> The minimum cut-off for the variable when distribution is Gaussian. <MaxCutoff> Type: <double> The maximum cut-off for the variable when distribution is Gaussian. oModule.InsertSetup "OptiStatistical", _ Array("NAME:StatisticalSetup1", _ "SaveFields:=", true, _ Array("NAME:StartingPoint"),_ "MaxIterations:=", 50,_ "PriorPSetup:=", "", _ Array("NAME:Variables"), _ Array("NAME:Goals", _ Array("NAME:Goal", _ "Solution:=", "Setup1 : LastAdaptive", _ "Calculation:=", "returnloss", _ "Context:=", "", _ Array("NAME:Ranges", _ "Range:=", Array("Var:=", "Freq", _ "Type:=", "s",_ "Start:=", "8GHz", "Stop:=", "8GHz"))),_ Array("NAME:Goal",_ "Solution:=", "Setup1 : LastAdaptive",_ "Calculation:=", "reflect",_ "Context:=", "", _ Array("NAME:Ranges",_

16-16 Optimetrics Module Script Commands

Introduction to Scripting in Maxwell

"Range:=", Array("Var:=", "Freq", "Type:=", _ "s", "Start:=", "8GHz", "Stop:=", "8GHz"))))

EditSetup (Statistical)
Use: Command: Syntax: Return Value: Modifies an existing statistical setup. Right-click the setup in the project tree, and click Properties on the shortcut menu. EditSetup <SetupName>, <StatisticalParams> None

Optimetrics Module Script Commands 16-17

Introduction to Scripting in Maxwell

16-18 Optimetrics Module Script Commands

17

Solutions Module Script Commands

Solutions commands should be executed by the Solutions module. Set oModule = oDesign.GetModule("Solutions") oModule.CommandName <args>

Solutions Module Script Commands 17-1

Introduction to Scripting in Maxwell

DeleteSolutionVariation
Use: Command: Syntax: Return Value: Parameters: Deletes solution data for specific solutions and design variations. See also DeleteVariation. Maxwell3D or Maxwell2D>Results>Browse Solutions DeleteSolutionVariation Array(<DataSpecifierArray>, ) None <DataSpecifierArray> Array(<DesignVariationKey>, <SetupName>, <SolnName>) <DesignVariationKey> Type: <string> Design variation string. <SetupName> Type: <string> Name of the solve setup. <SolnName> Type: <string> Name of the solutions within the solve setup. Example: oModule.DeleteSolutionVariation _ Array(Array("width='2in'", "Setup1", "Adaptive_1") _ Array("width='2in'", "Setup1", "Sweep1"))

17-2 Solutions Module Script Commands

18

Field Overlays Module Script Commands

Field overlay commands should be executed by the Field Overlays module, which is called FieldsReporter in Maxwell scripts. Set oModule = oDesign.GetModule("FieldsReporter") oModule.CommandName <args>

Field Overlays Module Script Commands 18-1

Introduction to Scripting in Maxwell

General Parameter Setup Script Commands


Following are script commands recognized by the FieldOverlays module: CreateFieldPlot DeleteFieldPlot GetFieldPlotNames ModifyFieldPlot RenameFieldPlot RenamePlotFolder SetFieldPlotSettings SetPlotFolderSettings

CreateFieldPlot
Use: Command: Syntax: Return Value: Parameters: Creates a field/mesh plot. Maxwell3D or Maxwell2D>Fields>Fields>E>Mag_E CreateFieldPlot <PlotParameterArray> None <PlotParameterArray> Array(NAME:<PlotName>, "SolutionName:=", <string>, "QuantityName:=", <string>, "PlotFolder:=", <string>, "UserSpecifyName:=", <int>, "UserSpecifyFolder:=", <int>, "IntrinsicVar:=", <string>, "PlotGeomInfo:=", <PlotGeomArray>, "FilterBoxes:=", <FilterBoxArray>, <PlotOnPointSettings>, <PlotOnLineSettings>, <PlotOnSurfaceSettings>, <PlotOnVolumeSettings>) SolutionName Name of the solution setup and solution formatted as: "<SolveSetupName> : <WhichSolution>", where <WhichSolution> can be "Adaptive_<n>", "LastAdaptive", or "PortOnly". For example: "Setup1 : Adaptive_2" Maxwell requires a space on both sides of the : character. Otherwise, the plot will not be created.

18-2 Field Overlays Module Script Commands

Introduction to Scripting in Maxwell

QuantityName Type of plot to create. Possible values are: Mesh plots: Mesh Field Plots: Field type AC R/L Fields DC R/L Fields C Fields Plot quantity names "SurfaceJac", "Mag_SurfaceJac" "VolumeJdc", "Mag_VolumeJdc", "Phidc" "SmoothQ", "ABS_Q"

DC R/L PEC Fields "SurfaceJdc", "Mag_SurfaceJdc"

PlotFolder Name of the folder to which the plot should be added. Possible values are: "Q", "ABS_Q", "JDC Vol", "Phi", "JDC Surf", and "JAC". UserSpecifyName 0 if default name for plot is used, 1 otherwise. This parameter is not essential. <PlotName> is respected regardless of whether this flag is set. UserSpecifyFolder 0 if the default folder for plot is used, 1 otherwise. This parameter is not essential. The specified PlotFolder is respected regardless of whether this flag is set. IntrinsicVar Formatted string that specifies the frequency and phase at which to create the plot. For example: "Freq='1GHz' Phase='30deg'" <PlotGeomArray> Array(<NumGeomTypes>, <GeomTypeData>, <GeomTypeData>, ...) For example: Array(4, "Volume", "ObjList", 1, "Box1", "Surface", "FacesList", 1, "12", "Line", 1, "Polyline1", "Point", 2, "Point1", "Point2") <NumGeomTypes> Type: <int> Number of different geometry types (volume, surface, line, point) plotted at the same time.
Field Overlays Module Script Commands 18-3

Introduction to Scripting in Maxwell

<GeomTypeData> <GeomType>, <ListType>, <NumIDs>, <ID>, <ID>, ...) <GeomType> Type: <string> Possible values are "Volume", "Surface", "Line", Point. <ListType> Type: <string> Possible values are "ObjList" or "FacesList". These are used for GeomType values "Line" or "Point". <NumIDs> Type: <int> Number of IDs or object names that will follow. <ID> Type: <int> or <string> ID of a face or name of an object, line, or point on which to plot. <FilterBoxArray> Array of object names used to restrict the plot range. Array(<NumFilters>, <ObjName>, <ObjName>, ...) Example: Array(1, "Box1") Example: Array(0) no filtering <PlotOnPointSettings> Array("NAME:PlotOnPointSettings", "PlotMarker:=", <bool>, "PlotArrow:=", <bool>) <PlotOnLineSettings> Array("NAME:PlotOnLineSettings", Array("NAME:LineSettingsID", "Width:=", <int>, "Style:=", <string>), "IsoValType:=", <string>, "ArrowUniform:=", <bool>, "NumofArrow:=", <int>) Style Possible values are "Cylinder", "Solid", "Dashdash",
18-4 Field Overlays Module Script Commands

Introduction to Scripting in Maxwell

"Dotdot", "Dotdash". IsoValType Possible values are "Tone", "Fringe", "Gourard"> Array("NAME:PlotOnSurfaceSettings", "Filled:=", <bool>, "IsoValType:=", <string>, "SmoothShade:=", <bool>, "AddGrid:=", <bool>, "MapTransparency:=", <bool>, "Transparency:=", <double>, "ArrowUniform:=", <bool> "ArrowSpacing:=", <double> "GridColor:=", Array(<int>, <int>, <int>) IsoValType Possible values are: "Tone", "Line", "Fringe", "Gourard". GridColor Array containing the R, G, B components of the color. Components should be in the range 0 to 255. <PlotOnVolumeSettings> Array("NAME:PlotOnVolumeSettings", "PlotIsoSurface:=", <bool>, "CloudDensity:=", <double>, "PointSize:=", <int>, "ArrowUniform:=", <bool>, "ArrowSpacing:=, <double>) Example: oModule.CreateFieldPlot Array("NAME:Mag_E1", _ "SolutionName:=", "Setup1 : LastAdaptive", _ "QuantityName:=", "Mag_E", _ "PlotFolder:=", "E Field1", _ "UserSpecifyName:=", 0, _ "UserSpecifyFolder:=", 0, _ "IntrinsicVar:=", "Freq='1GHz' Phase='0deg'",_ "PlotGeomInfo:=", Array( 1, "Surface",_ "FacesList", 1, "7"),_
Field Overlays Module Script Commands 18-5

Introduction to Scripting in Maxwell

"FilterBoxes:=", Array(0), _ Array("NAME:PlotOnSurfaceSettings", _ "Filled:=", false, _ "IsoValType:=", "Fringe", _ "SmoothShade:=", true, _ "AddGrid:=", false, _ "MapTransparency:=", true, _ "Transparency:=", 0, _ "ArrowUniform:=", true, _ "ArrowSpacing:=", 0.100000001490116, _ "GridColor:=", Array(255, 255, 255)))

DeleteFieldPlot
Use: Command: Syntax: Return Value: Parameters: Example: Deletes one or more plots. Maxwell3D or Maxwell2D>Fields>Delete Plot DeleteFieldPlot <NameArray> None <NameArray> Array of strings specifying the plots to delete. oModule.DeleteFieldPlot Array("Mag_E1", "Vector_E1")

GetFieldPlotNames
Use: Syntax: Return Value: Parameters: Example: Gets the names of field overlay plots defined in a design. GetFieldPlotNames() Array of field plot names. None Set plotnames = oModule.GetFieldPlotNames() For Each name in plotnames Msgbox name Next

ModifyFieldPlot
Use: Command: Syntax: Return Value: Modifies a plot definition. Maxwell3D or Maxwell2D>Fields>Modify Plot ModifyFieldPlot <OriginalName> <PlotParameterArray> None

18-6 Field Overlays Module Script Commands

Introduction to Scripting in Maxwell

Example: oModule.ModifyFieldPlot "Vector_E1",_Array("NAME:Vector_E2", _ "SolutionName:=", "Setup1 : LastAdaptive", _ "QuantityName:=", "Vector_E", "PlotFolder:=", _ "E Field1", "UserSpecifyName:=", 0, _ "UserSpecifyFolder:=", 0, "IntrinsicVar:=","Freq='1GHz' _ Phase='30deg'", "PlotGeomInfo:=", _ Array(1, "Surface","FacesList", 1, "7"), _ "FilterBoxes:=", Array(0), _ Array("NAME:PlotOnSurfaceSettings", "Filled:=", false, _ "IsoValType:=", "Fringe", "SmoothShade:=", true, _ "AddGrid:=", false, "MapTransparency:=", true, _ "Transparency:=", 0, "ArrowUniform:=", true, _ "ArrowSpacing:=", 0.100000001490116, "GridColor:=", _ Array(255, 255, 255)))

RenameFieldPlot
Use: Command: Syntax: Return Value: Parameters: Renames a plot. Right-click the plot you want to rename in the project tree, and then click Rename on the shortcut menu. RenameFieldPlot <OldName> <NewName> None <OldName> Type: <string> Original name of the plot. <NewName> Type: <string> New name of the plot. oModule.RenameFieldPlot "Vector_E1", "Vector_E2"

Example:

RenamePlotFolder
Use: Command: Syntax: Return Value: Parameters: Renames a plot folder. Right-click a plot folder in the project tree, and then click Rename on the shortcut menu. RenamePlotFolder <OldName> <NewName> None <OldName> Type: <string>
Field Overlays Module Script Commands 18-7

Introduction to Scripting in Maxwell

Example:

Original name of the folder. <NewName> Type: <string> New name of the folder. oModule.RenamePlotFolder "E Field", "Surface Plots"

SetFieldPlotSettings
Use: Command: Syntax: Return Value: Parameters: Sets plot attributes. Maxwell3D or Maxwell2D>Fields>Modify Plot Attributes, on the Plots tab. SetFieldPlotSettings <PlotName> <PlotItemAttributes> None <PlotName> Type: <string> Name of the plot to modify. <PlotItemAttributes> Array("NAME:FieldsPlotItemSettings", <PlotOnPointsSettings>, <PlotOnLineSettings>, <PlotOnSurfaceSettings>, <PlotOnVolumeSettings>) See description of CreateFieldPlot command for details. Example: oModule.SetFieldPlotSettings "Mag_E2", _ Array("NAME:FieldsPlotItemSettings", _ Array("NAME:PlotOnLineSettings", _ Array("NAME:LineSettingsID", "Width:=", 4, _ "Style:=", "Cylinder"), "IsoValType:=", "Tone", _ "ArrowUniform:=", true, "NumofArrow:=", 100), _ Array("NAME:PlotOnSurfaceSettings", "Filled:=", false, _ "IsoValType:=", "Tone", "SmoothShade:=", true, _ "AddGrid:=", false, "MapTransparency:=", true, _ "Transparency:=", 0, "ArrowUniform:=", true, _ "ArrowSpacing:=", 0.100000001490116, _ "GridColor:=", Array(255, 255, 255)))

SetPlotFolderSettings
Use: Sets the attributes of all plots in the specified folder.
18-8 Field Overlays Module Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters:

Maxwell3D or Maxwell2D>Fields>Modify Plot Attributes SetPlotFolderSettings <PlotFolderName> <PlotFolderAttributes> None <PlotFolderName> Type: <string> Name of the folder with the attributes to modify. <PlotFolderAttributes> Array("NAME:FieldsPlotSettings", "Real time mode:=", <bool>, <ColorMapSettings>, <Scale3DSettings>, <Marker3DSettings>, <Arrow3DSettings>) <ColorMapSettings> Array("NAME:ColorMapSettings", "ColorMapType:=", <string>, "SpectrumType:=", <string>, "UniformColor:=", Array(<int>, <int>, <int>), "RampColor:=", Array(<int>, <int>, <int>) ColorMapType Possible values are "Uniform", "Ramp", "Spectrum". SpectrumType Possible values are "Rainbow", "Temperature", "Magenta", "Gray". UniformColor, RampColor Array containing the R, G, B components of the color. Components should be in the range 0 to 255. <Scale3DSettings> Array("NAME:Scale3DSettings", "m_nLevels:=", <int>, "m_autoScale:=", <bool>, "minvalue:=", <double>, "maxvalue:=", <double>, "log:=", <bool>,
Field Overlays Module Script Commands 18-9

Introduction to Scripting in Maxwell

"IntrinsicMin:=", <double>, "IntrinsicMax:=", <double>) <Marker3DSettings> Array("NAME:Marker3DSettings", MarkerType:=", <int>, "MarkerMapSize:=", <bool>, "MarkerMapColor:=", <bool>, "MarkerSize:=", <double>) MarkerType 9: Sphere 10: Box 11: Tetrahedron 12: Octahedron default: Sphere <Arrow3DSettings> Array("NAME:Arrow3DSettings", "ArrowType:=", <int>, "ArrowMapSize:=", <bool>, "ArrowMapColor:=", <bool>, "ShowArrowTail:=", <bool>, "ArrowSize:=", <double>) ArrowType 0: Line 1: Cylinder 2: Umbrella default: Line Example: oModule. SetPlotFolderSettings "E Field1", _ Array("NAME:FieldsPlotSettings", _ "Real time mode:=", true, _ Array("NAME:ColorMapSettings", _ "ColorMapType:=", "Spectrum", _ "SpectrumType:=", "Rainbow", _ "UniformColor:=", Array(127, 255, 255), _ "RampColor:=", Array(255, 127, 127)), _
18-10 Field Overlays Module Script Commands

Introduction to Scripting in Maxwell

Array("NAME:Scale3DSettings", _ "m_nLevels:=", 27, _ "m_autoScale:=", true, _ "minvalue:=", 9.34379863739014, _ "maxvalue:=", 13683.755859375, _ "log:=", false, _ "IntrinsicMin:=", 9.34379863739014, _ "IntrinsicMax:=", 13683.755859375), _ Array("NAME:Marker3DSettings", _ MarkerType:=", 0, _ "MarkerMapSize:=", true, _ "MarkerMapColor:=", false, _ "MarkerSize:=", 0.25), _ Array("NAME:Arrow3DSettings", _ "ArrowType:=", 1, _ "ArrowMapSize:=", true, _ "ArrowMapColor:=", true, _ "ShowArrowTail:=", true, _ "ArrowSize:=", 0.25))

Field Overlays Module Script Commands 18-11

Introduction to Scripting in Maxwell

18-12 Field Overlays Module Script Commands

19

Fields Calculator Script Commands

Fields Calculator commands should be executed by the Field Overlays module, which is called FieldsReporter in Maxwell scripts. Set oModule = oDesign.GetModule("FieldsReporter") oModule.CommandName <args> The command associated with each of the following scripting commands is a button clicked in the Fields Calculator.

Fields Calculator Script Commands 19-1

Introduction to Scripting in Maxwell

Field Calculator Script Commands


Following are general script commands recognized by the FieldOverlays module: AddNamedExpression AddNamedExpr CalcOp

CalcRead(deprecated) CalcStack CalculatorRead CalculatorWrite CalcWrite(deprecated) ChangeGeomSettings ClcEval ClcMaterial ClearAllNamedExpr CopyNamedExprToStack DeleteNamedExpr EnterComplex EnterComplexVector EnterLine EnterPoint EnterQty EnterScalar EnterScalarFunc EnterSurf EnterVector EnterVectorFunc EnterVol ExportOnGrid ExportToFile GetTopEntryValue LoadNamedExpressions SaveNamedExpressions

AddNamedExpression
Use: Creates a named expression using the expression at the top of the stack.

19-2 Fields Calculator Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters:

Example:

Click Add. AddNamedExpression <Name> None <ExpressionName> and <FieldType>. Type: <string> Name for the new named expression. <FieldType> Type: <string> oModule.AddNamedExpression "Mag_JxE", "Fields"

AddNamedExpr
Use: Command: Syntax: Return Value: Parameters: Creates a named expression using the expression at the top of the stack. Click Add. AddNamedExpr <Name> None <Name> Type: <string> Name for the new named expression. oModule.AddNamedExpr "Mag_JxE"

Example:

CalcOp
Use: Command: Syntax: Return Value: Parameters: Performs a calculator operation. Operation commands like Mag, +, etc. CalcOp <OperationString> None <OperationString> Type: String The text on the corresponding calculator button. Examples: Mag, +

CalcRead(deprecated)
Use: Syntax: Return Value: Reads a file that is written out by the CalcWrite command, and puts the result into a calculator numeric. CalcRead <FileName> <SolutionName> <VariablesArray> None
Fields Calculator Script Commands 19-3

Introduction to Scripting in Maxwell

Parameters:

Example:

<FileName> Type: <string> <SolutionName> Type: <string> <VariablesArray> Array of variable name and value pairs. oModule.CalcRead _ "c:\example.reg" "Setup1: LastAdaptive",_ Array ("Freq:=", "10GHz", "Phase:=", "0deg")

CalcStack
Use: Command: Syntax: Return Value: Parameters: Performs an operation on the stack. Stack operation buttons such as Push and Pop. CalcStack <OperationString> None <OperationString> Type: <string> The text on the corresponding calculator button. oModule.CalcStack "push"

Example:

CalculatorRead
Use: Command: Syntax: Return Value: Parameters: Gets a register file and applies it to the calculator stack. Click Read CalculatorRead <InputFilePath>, <SolutionName>, <FieldType>, <VariablesArray> None <InputFilePath> Path to and including name of input register file. <SolutionName> Type: <string> Example: "Setup1 : LastAdaptive" <FieldType> Type: <string> <VariablesArray> Array of variable names, value pairs.

19-4 Fields Calculator Script Commands

Introduction to Scripting in Maxwell

Example:

oModule.CalculatorRead "C:\Ansoft\smoothedtemper.fld", "Setup1 : LastAdaptive", "Fields", Array("$conductivity:=", "50000000")

CalculatorWrite
Use: Command: Syntax: Return Value: Parameters: Writes contents of top register to file. Click Write CalculatorWrite <OutputFilePath>, <SolutionNameArray>, <VariablesArray> None <OutputFilePath> Path to and including name of output register file. <SolutionNameArray> Array("Solution:=", <string>) <VariablesArray> Array of variable names, value pairs. oModule.CalculatorWrite "C:\Ansoft\smoothedTemp.fld", Array("Solution:=", "Setup1 : LastAdaptive"), Array("$conductivity:=", "50000000")

Example:

CalcWrite(deprecated)
Use: Syntax: Return Value: Parameters: Evaluates the top stack element for all tetrahedrons, and writes the data to a file. CalcWrite <FileName> <SolutionName> <VariablesArray> None <FileName> Type: <string> Name of the output file. <SolutionName> Type: <string> <VariablesArray> Array of variable name and value pairs. oModule.CalcWrite _ "c:\example.reg" "Setup1: LastAdaptive", _ Array ("Freq:=", "10GHz", "Phase:=", "0deg")

Example:

Fields Calculator Script Commands 19-5

Introduction to Scripting in Maxwell

ChangeGeomSettings
Use: Command: Syntax: Return Value: Parameters: Changes the line discretization setting. Geom Settings ChangeGeomSettings <int> None The line discretization setting.

ClcEval
Use: Command: Syntax: Return Value: Parameters: Evaluates the expression at the top of the stack using the provided solution name and variable values. Click Eval. ClcEval <SolutionName> <VariablesArray> None <SolutionName> Type: <string> <VariablesArray> Array of variable name, and value pairs. oModule.ClcEval "Setup1: LastAdaptive",_ Array ("Freq:=","10GHz", "Phase:=", "0deg")

Example:

ClcMaterial
Use: Command: Syntax: Return Value: Parameters: Performs a material operation on the top stack element. Click Matl. ClcMaterial <MaterialString>, <OperationString> None <Material String> Type: <string> The material property to apply. <OperationString> Type: <string> Possible values are "mult" or "div". oModule.ClcMaterial "Permeability (mu)" "mult"

Example:

ClearAllNamedExpr
Use: Clears all user-defined named expressions from the list.

19-6 Fields Calculator Script Commands

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters:

Click ClearAll. ClearAllNamedExpr None None

CopyNamedExprToStack
Use: Command: Syntax: Return Value: Parameters: Copies the named expression selected to the calculator stack. Select a named expression, and then click Copy to stack. CopyNamedExprToStack <Name> None <Name> Type: <string> The name of the expression to be copied to the top of the stack. oModule.CopyNamedExprToStack "Mag_JxE"

Example:

DeleteNamedExpr
Use: Command: Syntax: Return Value: Parameters: Deletes the selected named expression from the list. Select a named expression, and then click Delete. DeleteNamedExpr <Name> None <Name> Type: <string> The name of the named expression to be deleted. oModule.DeleteNamedExpr "Mag_JxE"

Example:

EnterComplex
Use: Command: Syntax: Return Value: Parameters: Enters a complex number onto the stack. Click Number, and then click Scalar. EnterComplex "<Real> + <Imaginary> j" None <Real> Type: <double> Real component of the scalar. <Imaginary>
Fields Calculator Script Commands 19-7

Introduction to Scripting in Maxwell

Example:

Type: <double> Imaginary component of the scalar. oModule.EnterComplex "1 + 2 j"

EnterComplexVector
Use: Command: Syntax: Return Value: Parameters: Enters a complex vector onto the stack. Click Number, and then click Vector. EnterComplexVector Array ("<X Re> + <X Im> j", "<Y Re> + <Y Im> j", "<Z Re> + <Z Im> j") None <X Re>, <Y Re>, <Z Re> Type: <double> Real components of the X, Y, and Z values respectively. <X Im>, <YIm>, <ZIm> Type: <double> Imaginary components of the X, Y, and Z values,respectively. oModule.EnterComplexVector Array("1 + 2 j", _ "1 + 2 j","1 + 2 j")

Example:

EnterLine
Use: Command: Syntax: Return Value: Parameters: Enters a line that was defined in the "3D Modeler" editor. Click Geometry, and then select Line. EnterLine <LineName> None <LineName> Type: <string> Name of a line defined in the 3D Modeler editor. oModule.EnterLine "Line1"

Example:

EnterPoint
Use: Command: Syntax: Return Value: Parameters: Enters a point defined in the "3D Modeler" editor. Click Geometry, and then select Point. EnterPoint <PointName> None <PointName>

19-8 Fields Calculator Script Commands

Introduction to Scripting in Maxwell

Example:

Type: <string> Name of a point defined in the 3D Modeler editor. oModule.EnterPoint "Point1" Enters a field quantity. Click Quantity, and then select a field quantity from the list. EnterQty <FieldQuantityString> None <Field Quantity String> Type: <string> The name of the field quantity to be entered onto the stack. oModule.EnterQty "E"

EnterQty
Use: Command: Syntax: Return Value: Parameters:

Example:

EnterScalar
Use: Command: Syntax: Return Value: Parameters: Enters a scalar onto the stack. Click Number, and then click Scalar. EnterScalar <Scalar> None <Scalar> Type: <double> The real number to enter onto the stack.

EnterScalarFunc
Use: Command: Syntax: Return Value: Parameters: Enters a scalar function. Click Function, and then select Scalar. EnterScalarFunc <VarName> None <VarName> Type: <string> Name of a variable to enter as a scalar function onto the stack. oModule.EnterScalarFunc "Phase"

Example:

Fields Calculator Script Commands 19-9

Introduction to Scripting in Maxwell

EnterSurf
Use: Command: Syntax: Return Value: Parameters: Enters a surface defined in the "3D Modeler" editor. Click Geometry, and then select Surface. EnterSurf <SurfaceName> None <SurfaceName> Type: <string> Name of a surface defined in the 3D Modeler editor. oModule.EnterSurf "Rectangle1"

Example:

EnterVector
Use: Command: Syntax: Return Value: Parameters: Enters a vector onto the stack. Click Number, and then click Vector. EnterVector Array (<X>, <Y>, <Z>) None <X> Type: <double> X component of the vector. <Y> Type: <double> Y component of the vector. <Z> Type: <double> Z component of the vector. oModule.EnterVector Array (1.0, 1.0, 1.0)

Example:

EnterVectorFunc
Use: Command: Syntax: Return Value: Parameters: Enters a vector function. Click Function, and then click Vector. EnterVectorFunc Array(<XVarName>, <YVarName>, <ZVarName>) None <XVarName>, <YVarName>, <ZVarName> Type: <string> Name of a variable for the X, Y, and Z coordinates,

19-10 Fields Calculator Script Commands

Introduction to Scripting in Maxwell

Example:

respectively, to enter as a vector function on the stack. oModule.EnterVectorFunc Array("X", "Y", "Z")

EnterVol
Use: Command: Syntax: Return Value: Parameters: Enters a volume defined in the "3D Modeler" editor. Click Geometry, and then click Volume. EnterVol <VolumeName> None <VolumeName> Type: <string> Name of a volume defined in the "3D Modeler" editor. oModule.EnterVol "Box1"

Example:

ExportOnGrid
Use: Evaluates the top stack element at a set of points specified by a grid, and exports the data to a file.

Note Design variables must be defined prior to execution of this command. Command: Syntax: Return Value: Parameters: Click Export, and then click On Grid. ExportOnGrid <OutputFile> <MinArray> <MaxArray> <SpacingsArray> None <OutputFile> Type: <string> Name of the output file. <MinArray>, <MaxArray>, <SpacingsArray> Type: Array<double, double, double> Min, Max, and Spacing for the X, Y, and Z components of the grid. For 2D XY Designs, the Z component should be set to "0". For 2D RZ Designs, the Y component should be set to "0". oModule.ExportOnGrid _ "C:\Maxwell12OutputFiles\GridExport.reg",_
Fields Calculator Script Commands 19-11

Example:

Introduction to Scripting in Maxwell

Array("1", "1", "1"),_ Array("4", "4", "4"),_ Array("2", "2", "2")

ExportToFile
Use: Command: Syntax: Return Value: Parameters: Evaluates the top stack element at a set of points specified in an external file, and exports the data to a file. Click Export, and then click To File. ExportToFile <OutputFile> <PtsFile> None <OutputFile> Type: <string> Name of the output file. <PtsFile> Type: <string> Name of the file containing the points at which to evaluate the top stack element. The file should contain tab- or space-separated x,y,z values of data points.

GetTopEntryValue
Use: Command: Syntax: Return Value: Parameters: Evaluates the value at the top entry of the calculator stack. None (only through scripts) GetTopEntryValue (<SolutionName>, <VariablesArray>) <ValueArray> An array of variants, which is either a scalar (one double) or a vector (three doubles) based on the quantity on top of the stack. <SolutionName> Type: <string> Example: "Setup1:LastAdaptive" <VariablesArray> Array of variable name/value pairs. <ValueArray> Array of values. dim topvalue topvalue = _ oModule.GetTopEntryValue("Setup1: LastAdaptive", _
19-12 Fields Calculator Script Commands

Example:

Introduction to Scripting in Maxwell

Array("Freq:=", "1GHz", "Phase:=", "0deg", _"x_size:=", "2mm")) If cdbl(topvalue(0)) <- 180.0 then ...

LoadNamedExpressions
Use: Command: Syntax: Return Value: Parameters: Loads a named expression definition from a saved file. In the Fields Calculator, click Load From... in the Library area. LoadNamedExpressions <FileName>, <FieldType>, <NamedExpressions> None <FileName> Type:<String> Filename and full path to the file to hold the named expression definition. <FieldType> Type:<String> For products with just one filed type, it is set to "Fields". <NamedExpressions> Type: Array<string, string,...> Array of strings containing the names of expression definitions to load from the file. oModule.LoadNamedExpressions "C:\Ansoft\PersonalLib\Maxw.clc", "Fields", Array("SmoothedBField")

Parameters: Example:

SaveNamedExpressions
Use: Command: Syntax: Return Value: Parameters: Saves a named expression definition to a file. In the Fields Calculator, click Save To... in the Library area. SaveNamedExpressions <FileName>, <NamedExpressions>, <BooleanFlag> None <FileName> Type:<String> Filename and full path to the file to hold the named expression definition. <NamedExpressions> Type: Array<string, string,...>
Fields Calculator Script Commands 19-13

Introduction to Scripting in Maxwell

Array of strings containing the names of expression definitions to load from the file. <BooleanFlag> Type:<Boolean> True: Overwrite the file. False: Append to the file. <BooleanFlag> Type:<Boolean> True: Overwrite the file. False: Append to the file. Example: oModule.SaveNamedExpressions "C:\Ansoft\PersonalLib\Maxw.clc", Array("SmoothedBField"), true

19-14 Fields Calculator Script Commands

20

Motion Setup Script Commands

Motion setup commands should be executed by the ModelSetup module. Set oModule = oDesign.GetModule("ModelSetup") oModule.CommandName <args>

Motion Setup Script Commands 20-1

Introduction to Scripting in Maxwell

Conventions Used in the Motion Setup Chapter


<AssignmentObjects> Type: Array of strings An array of object names.

20-2 Motion Setup Script Commands

Introduction to Scripting in Maxwell

General Motion Setup Script Commands


Following are general script commands recognized by the ModelSetup module: DeleteMotionSetup ReassignMoving

DeleteMotionSetup
Use: Command: Syntax: Return Value: Parameters: Example: Deletes the motion setup. Maxwell3D or Maxwell2D>Model>Motion Setup>Unassign Band DeleteMotionSetup None None oModule.DeleteMotionSetup

ReassignMoving
Use: Command: Specifies a new geometry assignment for moving objects. Maxwell3D or Maxwell2D>Model>Motion Setup>Add Selected Objects or Maxwell3D or Maxwell2D>Model>Motion Setup>Remove Selected Objects Syntax: ReassignMoving Array("Name:Moving", "Objects:=", <AssignmentObjects>) Return Value: None Example: oModule.ReassignMoving Array("NAME:Moving", _ "Objects:=", Array("Box4", "Box1"))

Commands to Create and Edit the Band


Following are script commands for creating and editing bands that are recognized by the ModelSetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignBand EditMotionSetup

AssignBand
Use: Command: Assigns the selected object as a band. Maxwell3D or Maxwell2D>Model>Motion Setup>Assign Band
Motion Setup Script Commands 20-3

Introduction to Scripting in Maxwell

Syntax: Return Value: Parameters:

AssignBand <BandDataArray> None <BandDataArray> Array("NAME:Band", "Move Type:=", <Translate/Rotate>, "Coordinate System::=", <CoordinateSystemName>, "Axis:=", <X/Y/Z>, "Is Positive:=", <bool>, "InitPos:=", <value>, "NegativePos:=", <value>, "PositivePos:=", <value>, "Consider Mechanical Transient:=", <bool>, "velocity:=", <value>, "objects:=", <AssignmentObjects>) Assign band as translate, do not consider mechanical transient. oModule.AssignBand _ Array("NAME:Band", "Move Type:=", "Translate", _ "Coordinate System:=", "Global", "Axis:=", "Z", _ "Is Positive:=", true, "InitPos:=", "0mm", _ "NegativePos:=", "0mm", "PositivePos:=", "1mm", _ "Consider Mechanical Transient:=", false, _ "Velocity:=", "0m_per_sec", _ "Objects:=", Array("band")) Assign band as translate, consider mechanical transient. oModule.AssignBand _ Array("NAME:Band", _ "Move Type:=", "Translate", _ "Coordinate System:=", "Global", "Axis:=", "Z", _ "Is Positive:=", true, "InitPos:=", "0mm", _ "NegativePos:=", "0mm", "PositivePos:=", "1mm", _ "Consider Mechanical Transient:=", true, _ "Velocity:=", "0m_per_sec", "Mass:=", "1kg", _ "Damping:=", "1", "Load Force:=", "1nNewton" _ "Objects:=", Array("band"))

Example:

Example:

20-4 Motion Setup Script Commands

Introduction to Scripting in Maxwell

Example:

Example:

Assign band as rotate, do not consider mechanical transient. oModule.AssignBand _ Array("NAME:Band", "Move Type:=", "Rotate", _ "Coordinate System:=", "Global", "Axis:=", "Z", _ "Is Positive:=", true, "InitPos:=", "0deg", _ "HasRotateLimit:=", false, "NonCylindrical:=", _ false, "Consider Mechanical Transient:=", false, _ "Angular Velocity:=", "0deg_per_sec", "Objects:=", _ Array("band")) Assign band as rotate, consider mechanical transient. oModule.AssignBand _ Array("NAME:Band", "Move Type:=", "Rotate", _ "Coordinate System:=", "Global", "Axis:=", "Z", _ "Is Positive:=", true, "InitPos:=", "0deg", _ "HasRotateLimit:=", false, "NonCylindrical:=", _ false, "Consider Mechanical Transient:=", true, _ "Angular Velocity:=", "0deg_per_sec", _ "Moment of Inertia:=", "1", "Damping:=", "0", _ "Load Torque:=", "0NewtonMeter", "Objects:=", _ Array("band"))

EditMotionSetup
Use: Command: Syntax: Return Value: Edits the motion setup. Double-click the moving item in the project tree to edit it. EditMotionSetup <BandDataArray> None

Other Commands Recognized By the ModelSetup Module


The following command is also recognized by the ModelSetup module: SetSymmetryMultiplier

SetSymmetryMultiplier
Use: Sets the symmetry multiplier.This symmetry multiplier will be automatically applied to all input quantities including: input voltage, inductance,
Motion Setup Script Commands 20-5

Introduction to Scripting in Maxwell

Command: Syntax: Return Value: Parameters: Example:

resistance, load torque, mass, damping, external circuit; and all output quantities including: induced voltages, flux linkages in every winding, stranded loss, solid loss, core loss, torque and force. Maxwell3D or Maxwell2D>Model>Set Symmetry Multiplier SetSymmetryMultiplier <int> None <int> oModule.SetSymmetryMultiplier 2

20-6 Motion Setup Script Commands

21

Parameter Setup Script Commands

Parameter setup commands should be executed by the MaxwellParameterSetup module. Set oModule = oDesign.GetModule("MaxwellParameterSetup") oModule.CommandName <args>

Parameter Setup Script Commands 21-1

Introduction to Scripting in Maxwell

Conventions Used in the Parameter Chapter


<ParameterName> Type: <string> Name of a parameter. <ParameterNameArray> Type: Array of strings An array of the names in a group of parameters. <AssignmentObjects> Type: Array of strings An array of object names.

21-2 Parameter Setup Script Commands

Introduction to Scripting in Maxwell

General Parameter Setup Script Commands


Following are general script commands recognized by the MaxwellParameterSetup module: DeleteParameters DeleteAllParameters RenameParameter

ReassignParameter

DeleteParameters
Use: Command: Syntax: Return Value: Parameters: Deletes one or more specified parameters. Delete button in Maxwell List dialog box (Maxwell3D or Maxwell2D>List) DeleteParameters <NameArray> None <NameArray> Type: Array of strings An array of parameter names. oModule.DeleteParameters Array("Force1", "Torque1")

Example:

DeleteAllParameters
Use: Command: Syntax: Return Value: Example: Deletes all parameters. Maxwell3D or Maxwell2D>Parameters>Delete All DeleteAllParameters None oModule.DeleteAllParameters

RenameParameter
Use: Command: Syntax: Return Value: Parameters: Renames a parameter. Right-click the parameter item in the project tree, and click Rename. RenameParameter <OldName>, <NewName> None <OldName> Type: <string> <NewName> Type: <string>
Parameter Setup Script Commands 21-3

Introduction to Scripting in Maxwell

Example:

oModule.RenameParameter "Force1", "test"

ReassignParameter
Use: Command: Syntax: Specifies a new geometry assignment for a parameter. Maxwell3D or Maxwell2D>Parameters>Reassign ReassignParameter Array("Name:<ParameterName>","Objects:=", <AssignmentObjects>) None oModule.ReassignParameter Array("NAME:Force1", _ "Objects:=", Array("Box2"))

Return Value: Example:

21-4 Parameter Setup Script Commands

Introduction to Scripting in Maxwell

Commands to Create and Edit Parameters


Following are script commands for creating and editing parameters that are recognized by the MaxwellParameterSetup module: Note In the following commands, all named data can be included/excluded as desired and may appear in any order.

AssignForce EditForce AssignTorque EditTorque AssignMatrix EditMatrix

AssignForce
Use: Command: Syntax: Return Value: Parameters: Creates a force. Maxwell3D or Maxwell2D>Parameters>Assign>Force AssignForce <ForceArray> None <ForceArray> Array("NAME:<ForceName>", "Is Virtual:=", <bool>, "Reference CS:=", <string> "Objects:=", <AssignmentObjects>) Example: oModule.AssignForce _ Array("NAME:Force1", "Is Virtual:=", true, _ "Reference CS:=", "Global", "Objects:=", Array("Box1"))

EditForce
Use: Command: Syntax: Return Value: Edits a force parameter. Double-click the parameter in the project tree to edit it. EditForce <ParameterName>, <ForceArray> None

Parameter Setup Script Commands 21-5

Introduction to Scripting in Maxwell

AssignTorque
Use: Command: Syntax: Return Value: Parameters: Creates a torque. Maxwell3D or Maxwell2D>Parameters>Assign>Torque AssignTorque <TorqueArray> None <ForceArray> Array("NAME:<TorqueName>", "Is Virtual:=", <bool>, "Coordinate System:=", <string> "Axis:=", <string>, "Is Positive:=", <bool> "Objects:=", <AssignmentObjects>) Example: oModule.AssignTorque _ Array("NAME:Torque1", "Is Virtual:=", true, _ "Coordinate System:=", "Global", "Axis:=", "Z", _ "Is Positive:=", true, "Objects:=", Array("Box3"))

EditTorque
Use: Command: Syntax: Return Value: Edits a torque parameter. Double-click the parameter in the project tree to edit it. EditTorque <ParameterName>, <TorqueArray> None

AssignMatrix
Use: Command: Syntax: Return Value: Parameters: Creates a matrix. Maxwell3D or Maxwell2D>Parameters>Assign>Matrix AssignMatrix <MatrixArray> None <MatrixArray> Array("NAME:<MatrixName>", Array("NAME:MatrixEntry", Array("NAME:MatrixEntry",
21-6 Parameter Setup Script Commands

Introduction to Scripting in Maxwell

"Source:=", <string>, "NumberOfTurns:=", <int>), ) Array("NAME:MatrixGroup", Array("NAME:MatrixGroup", "GroupName:=", <string>, "NumberOfBranches:=", <int>, "Sources:=", <nameArray>), )) Example: oModule.AssignMatrix _ Array("NAME:Matrix1", _ Array("NAME:MatrixEntry", _ Array("NAME:MatrixEntry", _ "Source:=","Current1", _ "NumberOfTurns:=", "1"), Array("NAME:MatrixEntry", _ "Source:=", "Current3", _ "NumberOfTurns:=", "1")), _ Array("NAME:MatrixGroup", _ Array("NAME:MatrixGroup", _ "GroupName:=", "Group1", _ "NumberOfBranches:=", "1", _ "Sources:=", "Current1,Current3")))

EditMatrix
Use: Command: Syntax: Return Value: Edits a matrix parameter. Double-click the parameter in the project tree to edit it. EditMatrix <ParameterName>, <MatrixArray> None

Parameter Setup Script Commands 21-7

Introduction to Scripting in Maxwell

21-8 Parameter Setup Script Commands

22

Example Scripts

Following are sample Maxwell scripts:

Variable Helix Script Maxwell Data Export Script

Example Scripts 22-1

Introduction to Scripting in Maxwell

Variable Helix Script


The following is a sample Maxwell script that creates a tapered helix. Tapering helices are not supported from the Maxwell interface. The script includes comment lines, preceded by an apostrophe ( ), that explain each subsequent line or lines. Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule Set oAnsoftApp = CreateObject("AnsoftMaxwell.MaxwellScriptInter_ face") Set oDesktop = oAnsoftApp.GetAppDesktop() Set oProject = oDesktop.GetActiveProject() Set oDesign = oProject.GetActiveDesign() Set oEditor = oDesign.SetActiveEditor("3D Modeler") Declare the arrays and variables needed for building the polyline. Dim points(), segments() Dim NumPoints, R(2), P(2), PointsPerTurn, Turns, Units Establish the constant Pi. Pi = 4*Atn(1) Retrieve the variable helix parameters from the user. Start with the input for unit selection. Units = InputBox("Select the units:"&Chr(13)& _ "(cm,mm,um,in,mil)", "Variable Helix","mil",50,50) Check to make sure it is a valid unit. Select Case Units Case "m" Units = "" Case "cm"
22-2 Example Scripts

Introduction to Scripting in Maxwell

Case "mm" Case "um" Case "in" Case "mil" Case Else MsgBox("Invalid Units - defaults to m") Units = "" End Select Obtain the other user-defined parameters. Turns = InputBox("Select the number of turns (must be _ integer):","Variable Helix", 2,50,50) PointsPerTurn = InputBox("Select the points per turn:", _ "Variable Helix",16,50,50) R(0) = InputBox("Select the initial Radius: ", _ "Variable Helix",10,50,50) R(1) = InputBox("Select the final Radius: ", _ "Variable Helix",10,50,50) P(0) = InputBox("Select the initial Pitch: ", _ "Variable Helix", 4,50,50) P(1) = InputBox("Select the final Pitch: ", _ "Variable Helix", 4,50,50) NumPoints = Turns*PointsPerTurn Initialize the points and segments arrays. Redim points(NumPoints+1) Redim segments(NumPoints) points(0) = "NAME:PolylinePoints" segments(0) = "NAME:PolylineSegments" Build the Point and Segment Arrays needed in the Maxwell polyline call. For n = 1 To (NumPoints+1)
Example Scripts 22-3

Introduction to Scripting in Maxwell

Angle = (n-1)*2*Pi/PointsPerTurn Radius = R(0) + ((n-1)/NumPoints)*(R(1)-R(0)) Pitch = P(0) + ((n-1)/NumPoints)*(P(1)-P(0)) Rise = (n-1)*Pitch/PointsPerTurn XValue = cstr(Radius*cos(Angle)) & Units YValue = cstr(Radius*sin(Angle)) & Units ZValue = cstr(Rise) & Units points(n) = Array("NAME:PLPoint", "X:=", XValue, "Y:=", _ YValue, "Z:=", ZValue) Create the line segments between each pair of points. If n<=NumPoints Then segments(n) = Array("NAME:PLSegment", "SegmentType:=", _ "Line", "StartIndex:=", (n-1), "NoOfPoints:=", 2) End If Next Create the polyline. oEditor.CreatePolyline _ Array("NAME:PolylineParameters", "IsPolylineCovered:=", true, _ "IsPolylineClosed:=", false, points, segments), _ Array("NAME:Attributes", "Name:=", "Line_Helix","Flags:=", _ "", "Color:=", "(132 132 193)", "Transparency:=",0.4, _ "PartCoordinateSystem:=", "Global", "MaterialName:=", _ "vacuum", "SolveInside:=", true) Create the helix cross-section. oEditor.CreateCircle _ Array("NAME:CircleParameters", "IsCovered:=", true, "XCenter:=",_ cstr(R(0))&Units, "YCenter:=", 0, "ZCenter:=", 0, "Radius:=", _ "1"&Units, "WhichAxis:=", "Y"), _
22-4 Example Scripts

Introduction to Scripting in Maxwell

Array("NAME:Attributes", "Name:=", "Circle_Helix", "Flags:=", _ "", "Color:=", "(132 132 193)", "Transparency:=", 0.4, _ "PartCoordinateSystem:=", "Global", "MaterialName:=", "vacuum", _ "SolveInside:=", true) Sweep the cross-section along the path. oEditor.SweepAlongPath _ Array("NAME:Selections", "Selections:=", _ "Circle_Helix,Line_Helix"), _ Array("NAME:PathSweepParameters", "DraftAngle:=", "0deg", _ "DraftType:=", "Round", "TwistAngle:=", "0deg")

Example Scripts 22-5

Introduction to Scripting in Maxwell

Maxwell Data Export Script


Following is a simple script that demonstrates how to export data from Maxwell and save it to a file. The output data in the example script is in 3 columns. The first column is the radius in cm, the second is the self inductance of trace1, and the third column is the self resistance of trace1. It uses a tab-delimited format. The Maxwell output is done using output variables. The radius data must be entered correctly. If it is incorrect, the script requests a point that does not exist and execution stops. The script includes comment lines, preceded by an apostrophe ( ), that explain each subsequent line or lines. Dim oAnsoftApp Dim oDesktop Dim oProject Dim oDesign Dim oEditor Dim oModule Set oAnsoftApp = CreateObject("AnsoftMaxwell.MaxwellScriptInter_ face") Set oDesktop = oAnsoftApp.GetAppDesktop() set oProject = oDesktop.GetActiveProject set oDesign = oProject.GetActiveDesign() Dim oFS,ofile,x,y,z,path,range Dim arr2,del_rad,rad,crad,val,temp,stn,i,line Input the desired file name. path = inputbox("Input the file name" &chr(13) & _ "Note: If you do not specify a path the file will "& _ "be placed in the script directory", _ "File","C:\maxwell_export.txt",50,50) If the user clicks Cancel, the path will be blank, in which case the script should exit. If path <>"" then Create the file, open it for data entry, and output the column labels.
22-6 Example Scripts

Introduction to Scripting in Maxwell

Set oFS = CreateObject("Scripting.FileSystemObject") Set ofile = oFS.CreateTextFile (path) line = "Radius" & chr(9) & "Self L" & chr(9) & "Self R" ofile.WriteLine line Input the needed radius and solution data and clean it up. msgbox("For the following input make sure it matches "& _ "the radii defined in your parametric sweep") range = inputbox("Input the range of radii in cm" & _ "and number of points",_ "Radius","0.325,0.225,5",50,50) Define the 2 output variables. oDesign.AddOutputVariable "self_L",_ "ACL(trace:trace_src,trace:trace_src)" oDesign.AddOutputVariable "self_R",_ "ACR(trace:trace_src,trace:trace_src)" arr = split (range, ",") arr(0) = Trim(arr(0)) arr(1) = Trim(arr(1)) arr(2) = Trim(arr(2)) if cint(arr(2)) <> 1 then del_rad = (arr(1)-arr(0))/(arr(2)-1) else del_rad = 0 end if temp = InputBox("Input the Setup number to use:"_ & chr(13) & "(e.g. input 1 for Setup1))", _ "Solution Data","1,1",50,50) arr2 = split(temp,",") stn = arr2(0) stn = Trim(stn)
Example Scripts 22-7

Introduction to Scripting in Maxwell

Loop through the radius points. for i=1 to arr(2) step 1 rad = arr(0) + (cint(i)-1)*del_rad x=rad crad="Radius='" & rad & "cm" Get the values of the output variables for the desired radius. val = oDesign.GetOutputVariableValue("self_L","Setup" & _ stn, crad, "") y = val val = oDesign.GetOutputVariableValue("self_R","Setup" & _ stn, crad, "") z = val Create the line of text to send to the file, and write it to the file. line = x & chr(9) & y & chr(9) & z ofile.WriteLine line Next Delete the 2 output variables before finishing. oDesign.DeleteOutputVariable "self_L" oDesign.DeleteOutputVariable "self_R" Close the file. ofile.close End if

22-8 Example Scripts

Optimetrics module command 5, 6 Symbols .vbs file format 5 Numerics 3D Modeler Editor commands DeletePolylinePoint 16 InsertPolylineSegment 14 3D Modeler editor commands AssignMaterial 25 Chamfer 25 Connect 25 Copy 19 CoverLines 26 CoverSurfaces 26 CreateBondwire 3 CreateBox 4 CreateCircle 5 CreateCone 6 CreateCutplane 6 CreateCylinder 7 CreateEllipse 7 CreateEntityList 26 CreateFaceCS 27 CreateHelix 8 CreateObjectFromdges 28 CreateObjectFromFaces 29 CreatePoint 8 CreatePolyline 9 CreateRectangle 10 CreateRegularPolygon 12 CreateRegularPolyhedron 11 CreateRelativeCS 30 CreateSphere 12 CreateSpiral 13 CreateTorus 13 CreateUserDefinedPart 9 Delete 43

DeleteLastOperation 30 DetachFaces 30 DuplicateAlongLine 19 DuplicateAroundAxi 20 DuplicateMirror 20 EditEntityList 31 EditFaceCS 31 EditPolyline 14 EditRelativeCS 32 Export 32 Fillet 33 GenerateHistory 33 GetEdgeByPosition 43 GetFaceByPosition 44 GetModelBoundingBox 43, 47 GetNumObjects 46 GetSelections 46 Import 33 ImportDXF 34 Intersect 37 Mirror 21 Move 21 MoveFaces 37 OffsetFaces 21 PageSetup 47 Paste 22 RenamePart 47 Rotate 22 Scale 22 Section 38 SeparateBody 39 SetModelUnits 39 SetWCS 39 Split 40 Subtract 40 SweepAlongPath 16 SweepAlongVector 17 SweepAroundAxis 17

UncoverFaces 41 Unite 42

A
AddCartesianXMarker 2 AddDataset 2 AddDeltaMarker 3 AddMarker 4 AddMaterial 2 AddNamedExpr 3 AddNamedExpression 2 AddNote 4 AddTerminalsToWinding 25 AddTraces 5

Analysis module commands CopySetup 13 DeleteSetups 9 EditSetup 8 ExportCircuit 9 ExportSolnData 11 GetSetupNames 13 GetSetups 12 InsertSetup 2 PasteSetup 14 RenameSetup 9 ResetAllToTimeZero 12 ResetSetupToTimeZero 12 RevertAllToInitial 12 RevertSetupToInitial 11 SolveSetup 13 Analyze 8 AnalyzeAll 8 AnalyzeAllNominal 8 AnalyzeDistributed 8 Ansoft Application Object commands 1 Ansoft Application object commands GetAppDesktop 2 SetDesiredRamMBLimit 2 ApplyMeshOps 7

arithmetic operators 8 array variables 6 AssignBand 3 AssignCharge 20 AssignCoilTerminal 21


AssignCoilTerminalGroup 22 AssignCurrent 19 AssignCurrentDensity 17 AssignCurrentDensityGroup 18 AssignCurrentDensityTerminal 18 AssignCurrentDensityTerminalGroup 18, 19 AssignCurrentGroup 19 AssignCylindricalHField 13 AssignFloating 20 AssignForce 5 AssignImpedance 12 AssignInsulating 9 AssignLengthOp 5 AssignMaster 10 AssignMaterial 25 AssignMatrix 6 AssignModelResolutionOp 7 AssignRadiation 11 AssignSink 22 AssignSkinDepthOp 6 AssignSlave 10 AssignSymmetry 9 AssignTangentialHField 12 AssignTorque 6 AssignTrueSurfOp 7 AssignVoltage 15 AssignVoltageDrop 16 AssignVoltageDropGroup 17 AssignVoltageGroup 16 AssignVolumeChargeDensity 21 AssignWindingGroup 24 AssignZeroTangentialHField 8

B Boundary/Excitation module commands AddTerminalsToWinding 25 AssignCharge 20 AssignCoilTerminal 21 AssignCoilTerminalGroup 22 AssignCurrent 19 AssignCurrentDensity 17 AssignCurrentDensityGroup 18 AssignCurrentDensityTerminal 18 AssignCurrentDensityTerminalGroup 18, 19 AssignCurrentGroup 19 AssignCylindricalHField 13 AssignFloating 20 AssignImpedance 12 AssignInsulating 9 AssignMaster 10 AssignRadiation 11 AssignSink 22 AssignSlave 10 AssignSymmetry 9 AssignTangentialHField 12 AssignVoltage 15 AssignVoltageDrop 16 AssignVoltageDropGroup 17 AssignVoltageGroup 16 AssignVolumeChargeDensity 21 AssignWindingGroup 24 AssignZeroTangentialHField 8 DeleteAllExcitations 3, 4 DeleteBoundaries 3 EditCharge 21 EditCoilTerminal 22 EditCurrent 19 EditCurrentDensity 18 EditCurrentDensityTerminal 19 EditCylindricalHField 14 EditExternalCircuit 25

EditFloating 20 EditImpedance 12 EditInsulating 10 EditMaster 10 EditRadiation 11 EditSink 23 EditSlave 11 EditSymmetry 9 EditTangentialHField 13 EditVoltage 16 EditVoltageDrop 17 EditVolumeChargeDensity 21 EditWindingGroup 25 EditZeroTangentialHField 9 GetBoundaries 4 GetBoundariesOfType 4 GetBoundaryassignment 4 GetExcitations 5 GetExcitationsOfType 5 GetNumBoundaries 5 GetNumBoundariesOfType 5 GetNumExcitations 6 GetNumExcitationsOfType 6 ReassignBoundary 7 RenameBoundary 6 RepriortizeBoundaries 7 SetCoreLoss 26 SetEddyEffect 26 SetMinimumTimeStep 27

C
CalcOp 3 CalcRead 3 CalcStack 4 CalculatorRead 4 CalculatorWrite 5 CalcWrite 5 Chamfer 25 ChangeGeomSettings 6

ChangeProperty 4 ClcEval 6 ClcMaterial 6 ClearAllMarkers 6 ClearAllNamedExpr 6 Close 4 CloseAllWindows 2 CloseProject 3 CloseProjectNoForce 3

comment lines 3 comparison operators 9 conditional statements If...Then... Else 10 Select Case 10 types of 10 Connect 25 conventions command syntax 7 data types 7 script command 8 converting data types 12 Copy 19 CopyDesign 5 CopyNamedExprToStack 7 CopyReportData 7 CopyReportDefinition 7
CopySetup
Analysis module command

13

CopyTraceData 7 CopyTraceDefinition 8 Count 10 CoverLines 26 CoverSurfaces 26

coyright notice ii CreateBondwire 3 CreateBox 4 CreateCircle 5 CreateCone 6

CreateCutplane 6 CreateCylinder 7 CreateEllipse 7 CreateEntityList 26 CreateFaceCS 27 CreateFieldPlot 2 CreateHelix 8 CreateObjectFromEdges 28 CreateObjectFromFaces 29 CreateOutputVariable 2 CreatePoint 8 CreatePolyline 9 CreateRectangle 10 CreateRegularPolygon 12 CreateRegularPolyhedron 11 CreateRelativeCS 30 CreateReport 8 CreateReportFromTemplate 10 CreateSphere 12 CreateSpiral 13 CreateTorus 13 CreateUserDefinedPart 9 CutDesign 6

D dataset commands AddDataset 2 DeleteDataset 3 EditDataset 2 Delete 43


DeleteAllExcitations 3, 4 DeleteAllParameters 3 DeleteAllReports 14 DeleteBoundaries 3 DeleteDataset 3 DeleteDesign 6 DeleteFieldPlot 6 DeleteLastOperation 30 DeleteMotionSetup 3

DeleteNamedExpr 7 DeleteOp 3 DeleteOutputVariable 4 DeleteParameters 3 DeletePolylinePoint 16 DeleteReport 14 DeleteSetups


Analysis module command

DeleteSetupsOptimetrics module command 5 Deletetraces 11 DeleteVariation 4

Design object commands


AddCartesianXMarker 2 AddDeltaMarker 3 AddMarker 4 AddNote 4 AddTraces 5 Analyze 8 AnalyzeAll 8 AnalyzeAllNominal 8 AnalyzeDistributed 8 ApplyMeshOps 7 CalculatorRead 4 CalculatorWrite 5 ClearAllMarkers 6 CopyReportData 7 CopyReportDefinition 7 CopyTraceData 7 CopyTraceDefinition 8 CreateOutputVariable 2 CreateReport 8 CreateReportFromTemplate 10 DeleteAllReports 14 DeleteOutputVariable 4 DeleteReport 14 DeleteTraces 11 DeleteVariation 4 DoesOutputVariableExist 4

EditNotes 7 EditOutputVariable 3 ExportConvergence 9 ExportProfile 11 ExportToFile 11 GetAllReportNames 12 GetDesiredRamMBLimit 3 GetDisplayType 12 GetLibraryDirectory 4 GetMatchedObjectName 46 GetMaximumRamMBLimit 4 GetModule 4 GetName 3 GetNominalVariation 12 GetNumberOfProcessors 4 GetObjectName 45 GetOutputVariables 4 GetOutputVariableValue 4 GetProjectDirectory 4 GetTempDirectory 4 GetUser Position 45 GetVariationVariableValue 10 ImportIntoReport 13 Is2D 12 Is3D 12 PasteReports 13 PasteTraces 13 Redo 6 RenameDesignInstance 6 RenameReport 14 RenameTrace 14 SetActiveEditor 5 SetConductivityThreshold 9 SetLibraryDirectory 8 SetMaximumRamMBLimit 2 SetNumberOfProcessors 3 SetProjectDirectoryVBCommand> 9 SetSolutionType 5

SetTempDirectory 9 ShowWindow 39 Solve 6 UpdateTraces 15 UpdateTracesContextAndSweeps 16

Desktop object commands CloseAllWindows 2 CloseProject 3 CloseProjectNoForce 3 Count 10 EnableAutoSave 3 GetActiveProject 3 GetDesigns 11
GetDistributedAnalysisMachines 11 GetName 11 GetProjectList 4 GetProjects 11 NewProject 5 OpenMultipleProjects 5 OpenProject 5 PauseScript 6 Print 6 QuitApplication 6 RestoreWindow 6 RunProgram 7 RunScript 7 SetActiveProject 8 SetActiveProjectByPath 8 Sleep 9 DetachFaces 30 DistributedAnalyzeSetup
Optimetrics module command

DoesMaterialExist 3 DoesOutputVariableExist 4 DuplicateAlongLine 19 DuplicateAroundAxis 20 DuplicateMirror 20

E
EditCharge 21 EditCoilTerminal 22 EditCurrent 19 EditCurrentDensity 18 EditCurrentDensityTerminal 19 EditCylindricalHField 14 EditDataset 2 EditEntityList 31 EditExternalCircuit 25 EditFaceCS 31 EditFloating 20 EditForce 5 EditImpedance 12 EditInsulating 10 EditLengthOp 8 EditMaster 10 EditMaterial 4 EditMatrix 7 EditModelResolutionOp 9 EditMotionSetup 5 EditNotes 7 EditOutputVariable 3 EditPolyline 14 EditRadiation 11 EditRelativeCS 32 EditSetup
Analysis module command optimization command 12 parametric command 9 sensitivity command 14 statistical command 17

EditSink 23 EditSkinOp 8 EditSlave 11 EditSymmetry 9 EditTangentialHField 13 EditTorque 6

EditTrueSurfOp 8 EditVoltage 16 EditVoltageDrop 17 EditVolumeChargeDensity 21 EditWindingGroup 25 EditZeroTangentialHField 9 EnableAutoSave 3 EnterComplex 7 EnterComplexVector 8 EnterLine 8 EnterPoint 8 EnterQty 9 EnterScalar 9 EnterScalarFunc 9 EnterSurf 10 EnterVector 10 EnterVectorFunc 10 EnterVol 11 Export 32 ExportCircuit
Analysis module command

ExportConvergence 9 ExportMaterial 5 ExportOnGrid 11 ExportProfile 11 ExportSolnData


Analysis module command

11

ExportToFile 11, 12 F Field Overlay module commands GetFieldPlotNames 6 Field Overlays module commands AddNamedExpr 3 AddNamedExpression 2 CalcOp 3 CalcRead 3 CalcStack 4 CalcWriter 5

ChangeGeomSettings 6 ClcEval 6 ClcMaterial 6 ClearAllNamedExpr 6 CopyNamedExprToStack 7 CreateFieldPlot 2 DeleteFieldPlot 6 DeleteNamedExpr 7 EnterComplex 7 EnterComplexVector 8 EnterLine 8 EnterPoint 8 EnterQty 9 EnterScalar 9 EnterScalarFunc 9 EnterSurf 10 EnterVector 10 EnterVectorFunc 10 EnteVol 11 ExportOnGrid 11 ExportToFile 12 GetTopEntryValue 12 LoadNamedExpressions 13 ModifyFieldPlot 6 RenameFieldPlot 7 RenamePlotFolder 7 SaveNamedExpressions 13 SetFieldPlotSettings 8 SetPlotFolderSettings 8

Fields Calculator commands AddNamedExpr 2, 3, 6 CalcOp 3 CalcRead 3 CalcStack 4 CalcWrite 5 ChangeGeomSettings 6 ClcEval 6 ClcMaterial 6

CopyNamedExprToStack 7 DeleteNamedExpr 7 EnterComplex 7 EnterComplexVector 8 EnterLine 8 EnterPoint 8 EnterQty 9 EnterScalar 9 EnterScalarFunc 9 EnterSurf 10 EnterVector 10 EnterVectorFunc 10 EnterVol 11 ExportOnGrid 11 ExportToFile 12 GetTopEntryValue 12 LoadNamedExpressions 13 SaveNamedExpressions 13 Fillet 33 For...Next loop 11

G
GenerateHistory 33 GetActiveDesign 3 GetActiveProject 3 GetAllReportNames 12 GetAppDesktop 2 GetBoundaries 4 GetBoundariesOfType 4 GetBoundaryAssignment 4 GetDesign 3 GetDesigns 11 GetDesiredRamMBLimit 3 GetDisplayType 12 GetDistributedAnalysisMachines 11 GetEdgeByPosition 43 GetExcitations 5 GetExcitationsOfType 5 GetFaceByPosition 44

GetFieldPlotNames
Field Overlay module command

GetLibraryDirectory 4 GetMatchedObjectName 46 GetMaximumRamMBLimit 4 GetModelBoundingBox 43, 47 GetModule 4 GetName 11, 2, 3 GetNominalVariation 12 GetNumberOfProcessors 4 GetNumBoundaries 5 GetNumBoundariesOfType 5 GetNumExcitations 6 GetNumExcitationsOfType 6 GetNumObjects 46 GetObjectName 45 GetOperationNames
Mesh Operations module command

GetOutputVariables 4 GetOutputVariableValue 4 GetPath 2 GetProjectDirectory 4 GetProjectList 4 GetProjects 11 GetProperties 22 GetPropertyValue 21 GetSelections 46 GetSetupNames
Analysis module command

13 12

GetSetups
Analysis module command

GetTempDirectory 4 GetTopDesignList 3 GetTopEntryValue 12 GetUserPosition 45 GetVariables 23 GetVariableValue 22 GetVariationVariableValue 10

GetVersion 4 gotolink CalculatorRead 2 gotolink CalculatorWrite 2 H help Ansoft technical support iv hierarchy of variables in Maxwell 2 I If...Then... Else statement 10 Import 33 ImportDXF 34 ImportIntoReport 13 InputBox function 13 InsertDesign 4 InsertPolylineSegment 14
InsertSetup
Analysis module command optimization command 10 parametric command 7 sensitivity command 13 statistical command 15

Intersect 37 Is2D 12 Is3D 12

J JavaScript script format 1 K keywords VBScript 3 L


LoadNamedExpressions 13

logical operators 9 M material commands AddMaterial 2


DoesMaterialExist 3 EditMaterial 4

ExportMaterial 5 RemoveMaterial 5

Mesh Operations module commands AssignLengthOp 5 AssignModelResolutionOp 7 AssignSkinDepthOp 6 AssignTrueSurfOp 7 DeleteOp 3 EditLengthOp 8 EditModelResolutionOp 9 EditSkinOp 8 EditTrueSurfOp 8 GetOperationNames 3 RenameOp 3 Microsoft VBScript users guide 13 Visual Basic 1 Mirror 21 ModifyFieldPlot 6 Module Setup commands SetSymmetryMultiplier 5 modules in Maxwell scripting 4 Motion Setup commands AssignBand 3 DeleteMotionSetup 3 EditMotionSetup 5 ReassignMoving 3 Move 21 MoveFaces 37 MsgBox function 13 N newlink CalculatorRead 4 newlink CalculatorWrite 5 NewProject 5 O oAnsoftApp object 3 oDesign object 3 oDesktop object 3

oEditor object 4 OffsetFaces 21 oModule object 4 OpenMultipleProjects 5 OpenProject 5

operators arithmetic 8 categories in VBScript 8 comparison 9 logical 9 precedence of 8 oProject object 3 GetSetupNames 5 GetSetupNamesByType 6 Optimetrics module commands DeleteSetups 5 DistributeAnalyzeSetup 5 GetSetupNames 5 GetSetupNamesByType 6 RenameSetup 5, 6 SolveSetup 6 optimization commands EditSetup 12 InsertSetup 10 output variable commands CreateOutputVariable 2 DeleteOutputVariable 4 DoesOutputVariableExist 4 EditOutputVariable 3 GetOutputVariables 4 GetOutputVariableValue 4 P PageSetup 47 Parameter Setup commands AssignForce 5 AssignMatrix 6 AssignTorque 6 DeleteAllParameters 3

DeleteParameters 3 EditForce 5 EditMatrix 7 EditTorque 6 ReassignParameter 4 RenameParameter 3

parametric commands EditSetup 9 InsertSetup 7 Paste 6, 22 PasteReports 13


PasteSetup
Analysis module command

14

PasteTraces 13 PauseScript 6

pausing a script 7
Print 6

Project object commands AddDataset 2 AddMaterial 2 ChangeProperty 4 Close 4 CopyDesign 5 CutDesign 6 DeleteDataset 3 DeleteDesign 6 DoesMaterialExist 3 EditDataset 2 EditMaterial 4 ExportMaterial 5 GetActiveDesign 3 GetDesign 3 GetName 2 GetPath 2 GetProperties 22 GetPropertyValue 21 GetTopDesignList 3 GetVariables 23

GetVariableValue 22 InsertDesign 4 Paste 6 Redo 7 RemoveMaterial 5 Save 4 SaveAs 4 SetActiveDesign 3 SetPropertyValue 21 SetVariableValue 23 SimulateAll 7 Undo 6

property commands ChangeProperty 4 GetProperties 22


GetPropertyValue 21 GetVariables 23 GetVariableValue 22 SetPropertyValue 21 SetVariableValue 23

Q
QuitApplication 6

R
ReassignBoundary 7 ReassignMoving 3 ReassignParameter 4

recording a script 5
Redo
design-level command 6 project-level command 7

references for VBScript 13 RemoveMaterial 5 RenameBoundary 6


RenameDesignInstance 6 RenameFieldPlot 7 RenameOp 3 RenameParameter 3

RenamePart 47 RenamePlotFolder 7 RenameReport 14 RenameSetup


Analysis module command 9 Optimetrics module command

5, 6

RenameTrace 14

Reporter editor commands AddCartesianXMarker 2 AddDeltaMarker 3 AddMarker 4 AddNote 4 AddTraces 5 ClearAllMarkers 6 CopyReportData 7 CopyReportDefinition 7 CopyTraceData 7 CopyTraceDefinition 8 CreateReport 8
CreateReportFromTemplate 10 DeleteAllReports 14 DeleteReport 14 DeleteTraces 11 ExportToFile 11 GetAllReportNames 12 GetDisplayType 12 ImportIntoReport 13 PasteReports 13 PasteTraces 13 RenameReport 14 RenameTrace 14 UpdateTraces 15 UpdateTracesContextAndSweeps 16 RepriortizeBoundaries 7 ResetAllToTimeZero 12 ResetSetupToTimeZero 12 RestoreWindow 6

resuming a script 7

RevertAllToInitial 12 RevertSetupToInitial 11 Rotate 22

running a script 6
RunProgram 7 RunScript 7

S sample scripts data export 6 simple Maxwell 3 variable helix 2 Save 4 SaveAs 4
SaveNamedExpressions 13 Scale 22

scripts in JavaScript format 1 pausing 7 recording 5 resuming 7 running 6 running from command prompt 1 stop recording 5 stopping execution of 7 Section 38 Select Case statement 10 sensitivity commands EditSetup 14 InsertSetup 13 SeparateBody 39 SetActiveDesign 3 SetActiveEditor 5 SetActiveProject 8 SetActiveProjectByPath 8 SetConductivityThreshold 9 SetCoreLoss 26 SetDesiredRamMBLimit 2 SetEddyEffect 26

SetFieldPlotSettings 8 SetLibraryDirectory 8 SetMaximumRAMMBLimit 2 SetMinimumTimeStep 27 SetModelUnits 39 SetNumberOfProcessors 3 SetPlotFolderSettings 8 SetProjectDirectory 9 SetPropertyValue 21 SetSolutionType 5 SetSymmetryMultiplier 5 SetTempDirectory 9 SetVariableValue 23 SetWCS 39 ShowlWindow 39 SimulateAll 7 Sleep 9 Solve 6 SolveSetup
Analysis module command 13 Optimetrics module command 6

Split 40

statistical commands EditSetup 17 InsertSetup 15 stopping a script 7 stopping script recording 5 Sub procedures 3 Subtract 40 SweepAlongPath 16 SweepAlongVector 17 SweepAroundAxis 17 T trademark notice ii U UncoverFaces 41 underscore ( _ ) character 4
Undo

design-level command 6 project-level command 6

Unite 42 UpdateTraces 15 UpdateTracesContextAndSweeps 16

V variables array 6 assigning information 5 declaring 5 hierarchy in Maxwell 2 used as objects 3 used in Maxwell scripts 2 VBScript .vbs file format 5 Microsoft users guide 13 operators 8 overview 1 references 13 Sub procedures 3

Das könnte Ihnen auch gefallen