Click or drag to resize

EMInvent.InventSim.COMServer Namespace

This document contains detailed description of InventSim COM interface. The application offers a set of classes that expose its functionality through Common Object Model interface. This allow the application to be used as a COM automation server by other applications.

COM API architecture

All classes and interfaces are located in EMInvent.InventSim.COMServer namespace. In order to create InventSim server the main application class needs to be instantiated by using ProgID of InventSim "EMInvent.InventSim.App". How you create an Automation server depends on the controller you are using. Consult your controller's documentation for this information.

The App class gives application's level functionality such as managing projects, accessing application options and starting simulations. InventSim can have multiple projects opened at once. Currently edited project can be accessed by ActiveProject property. This property gives the reference to IProject object which groups all project's level data i.e. simulated structures, variables, materials, simulation options etc. Please see IProject description for more information.

Passing physical quantities

Many of the project parameters other than just boolean values or numbers. These include positions and physical quantities such as length, angle, voltage etc. In order to keep API simple, InventSim does not provide classes for managing positions or physical quantities. Instead, to pass such quantities via COM interface string form is used. The string consists of two parts:

  • numerical representation of the value (with dot "." symbol being decimal mark)
  • unit symbol

separated by a space. For example, to set length of 5 millimeters, pass "5 mm" string as a parameter value. Unit symbol can be omitted in which case default unit will be used (as defined in application/project settings). Values of some of the parameters can be specified using previously defined variables. In such a case the variable name is used instead of numerical value. The list of all supported quantities as well as units, in alphabetical order, is shown below.

QuantityUnit symbols
Angledeg, rad
Areapm2, nm2, um2, mm2, cm2, m2, km2, mil2, inch2, yard2, foot2
CapacitancefF, pF, nF, uF, mF, F
ConductancenS, uS, mS, S
Conductivity[Any conductance unit symbol]/[any length unit symbol]
CurrentpA, nA, uA, mA, A, kA
Electric field[any voltage unit symbol]/[any length unit symbol]
FrequencyHz, kHz, MHz, GHz, THz
InductancefH, pH, nH, uH, mH, H
Lengthpm, nm, um, mm, cm, m, km, mil, inch, yard, foot
PowerpW, nW, uW, mW, W, kW, MW
ResistancemOhm, Ohm, kOhm, MOhm
Timeps, ns, us, ms, s
VoltagepV, nV, uV, mV, V, kV, MV
Volumepm3, nm3, um3, mm3, cm3, m3, km3, mil3, inch3, yard3, foot3

Positions in 2D and 3D space must be passed as string their components (two and three respectively) separated by semicolons ";". Positions can be defined in different coordinate systems specified below. In order to pass position in particular coordinate system, unit symbols should be used for each position component. List of components for 2D and 3D coordinate systems are shown below.

Coordinate systemComponentsExamples
Cartesian (X,Y)length; length"4.0mm; -2mm"
Polar (R, Phi)length; angle"-6.6mm; 45deg"
Coordinate systemComponentsExamples
Cartesian (X,Y,Z)length; length; length"1.0mm; 2.3mm; -4mm"
Cylindrical (R, Phi, Z)length; angle; length"1.0mm; 45deg; 0mm"
Spherical (R, Theta, Phi)length; angle; angle"1.0mm; 22.5deg; 180deg"
Classes
Interfaces
  InterfaceDescription
Public interfaceIAdaptiveMeshing
An interface providing access to adaptive meshing parameters.
Public interfaceIAnalyticPortExcitation
An interface representing an analytic port excitation.
Public interfaceIApp
An interface that is the main entry point of the application providing application specific methods and properties e.g. saving/closing projects, application settings etc.
Public interfaceIAppEvents
Represents application level events.
Public interfaceIBoundaryCondition
Interface representing a boundary condition.
Public interfaceIBoundaryConditions
An interface providing access to definitions of boundary condition in a project.
Public interfaceIControlPoint
An interface providing access to a control point of mesh deformation definition.
Public interfaceICoordinates
Provides access to coordinates systems defined in the project.
Public interfaceICoordinateSystem
Provides access to a coordinate system.
Public interfaceIFrequencyRange
An interface representing a frequency range that defines frequency point for simulation.
Public interfaceIFrequencyRanges
Provides access to frequency ranges defined in the project.
Public interfaceIGeometrySettings
Public interfaceILumpedPortExcitation
An interface representing a lumped port excitation.
Public interfaceIMaterial
An interface representing a material definition.
Public interfaceIMaterials
An interface representing materials repository of a project.
Public interfaceIMesh
Public interfaceIMeshDeformation
An interface providing access to a mesh deformation.
Public interfaceIMeshDeformationDefinition
An interface providing access to a mesh deformation definition.
Public interfaceIMesherParameters
An interface providing access to mesher parameters.
Public interfaceIMeshOperation
Interface representing a mesh operation.
Public interfaceIMeshOperations
An interface providing access to mesh operations in a project.
Public interfaceIMeshRefinement
Provides access to a mesh refinement.
Public interfaceIMessage
Provides access to a message.
Public interfaceIMessages
Public interfaceIMessagesEvents
Represent message list events.
Public interfaceIObjects
An interface providing access to objects repository allowing to create, modify and remove geometrical objects in a project. It is assumed that all operations created using methods defined below use the coordinate system that is specified in Coordinates.ActiveSystem property of the project.
Public interfaceIPlot
Public interfaceIPlots
Public interfaceIPort
An interface representing a port defined in a project.
Public interfaceIPorts
An interface providing access to the ports repository of a project.
Public interfaceIProject
An interface providing project specific methods and properties e.g. creating/modifying structures, setting simulation parameters etc.
Public interfaceIProjectSettings
Public interfaceIProperty
An interface providing access to properties of ISimObject and ICoordinateSystem objects.
Public interfaceIScene
Provides access to project scene.
Public interfaceISimObject
An interface representing a geometrical object defined in the project.
Public interfaceISimObjectCollection
An interface providing access to a collection of ISimObject.
Public interfaceISimulation
An interface providing access to project simulation.
Public interfaceISolverParameters
An interface providing access to solver parameters.
Public interfaceITuning
An interface providing access to project simulation.
Public interfaceIVariable
Provides access to a variable defined in a project.
Public interfaceIVariables
Provides access to project variables.
Public interfaceIVariablesEvents
Represents variable repository events.
Delegates
  DelegateDescription
Public delegateExitingEventHandler
Represents the method that will handle the OnExiting event raised when application has exited. For more information please see OnExiting(Int32).
Public delegateJobStoppedEventHandler
Represents the method that will handle the OnJobStopped event raised when an application job has finished. For more information please see OnJobStopped(JobStopStatus, String).
Public delegateMessageAddedEventHandler
Represents the method that will handle the OnMessageAdded event raised when a message has been added to the message list. For more information please see OnMessageAdded(IMessage).
Public delegateMessageRemovedEventHandler
Represents the method that will handle the OnMessageRemoved event raised when an existing message has been removed from the message list. For more information please see OnMessageRemoved(IMessage).
Public delegateVariableAddedEventHandler
Represents the method that will handle the OnVariableAdded event raised when a variable has been added to the project. For more information please see OnVariableAdded(IVariable).
Public delegateVariablePropertyChangedEventHandler
Represents the method that will handle the OnVariablePropertyChanged event raised when an existing variable's property has been change. For more information please see OnVariablePropertyChanged(IVariable, String).
Public delegateVariableRemovedEventHandler
Represents the method that will handle the OnVariableRemoved event raised when an existing variable has been removed from the project. For more information please see OnVariableRemoved(IVariable).
Public delegateWindowHideEventHandler
Represents the method that will handle the OnHide event raised when the main window has been hidden.
Public delegateWindowShowEventHandler
Represents the method that will handle the OnShow event raised when the main window has been shown.
Enumerations
  EnumerationDescription
Public enumerationJobStopStatus
Represent possible values of a finished job status.
Public enumerationWindowState