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:
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.
| Quantity | Unit symbols |
|---|---|
| Angle | deg, rad |
| Area | pm2, nm2, um2, mm2, cm2, m2, km2, mil2, inch2, yard2, foot2 |
| Capacitance | fF, pF, nF, uF, mF, F |
| Conductance | nS, uS, mS, S |
| Conductivity | [Any conductance unit symbol]/[any length unit symbol] |
| Current | pA, nA, uA, mA, A, kA |
| Electric field | [any voltage unit symbol]/[any length unit symbol] |
| Frequency | Hz, kHz, MHz, GHz, THz |
| Inductance | fH, pH, nH, uH, mH, H |
| Length | pm, nm, um, mm, cm, m, km, mil, inch, yard, foot |
| Power | pW, nW, uW, mW, W, kW, MW |
| Resistance | mOhm, Ohm, kOhm, MOhm |
| Time | ps, ns, us, ms, s |
| Voltage | pV, nV, uV, mV, V, kV, MV |
| Volume | pm3, 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 system | Components | Examples |
| Cartesian (X,Y) | length; length | "4.0mm; -2mm" |
| Polar (R, Phi) | length; angle | "-6.6mm; 45deg" |
| Coordinate system | Components | Examples |
| 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" |
| Class | Description | |
|---|---|---|
| ControlPointCOMImpl | ||
| GeometrySettingsCOMImpl | ||
| InventSimCOM | ||
| MeshDeformationCOMImpl | ||
| MeshDeformationDefinitionCOMImpl | ||
| MeshRefinementCOMImpl | ||
| ProjectSettingsCOMImpl | ||
| Property |
Please see IProperty interface for more information.
| |
| SceneCOMImpl |
| Interface | Description | |
|---|---|---|
| IAdaptiveMeshing |
An interface providing access to adaptive meshing parameters.
| |
| IAnalyticPortExcitation |
An interface representing an analytic port excitation.
| |
| IApp |
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.
| |
| IAppEvents |
Represents application level events.
| |
| IBoundaryCondition |
Interface representing a boundary condition.
| |
| IBoundaryConditions |
An interface providing access to definitions of boundary condition in a project.
| |
| IControlPoint |
An interface providing access to a control point of mesh deformation definition.
| |
| ICoordinates |
Provides access to coordinates systems defined in the project.
| |
| ICoordinateSystem |
Provides access to a coordinate system.
| |
| IFrequencyRange |
An interface representing a frequency range that defines frequency point for simulation.
| |
| IFrequencyRanges |
Provides access to frequency ranges defined in the project.
| |
| IGeometrySettings | ||
| ILumpedPortExcitation |
An interface representing a lumped port excitation.
| |
| IMaterial |
An interface representing a material definition.
| |
| IMaterials |
An interface representing materials repository of a project.
| |
| IMesh | ||
| IMeshDeformation |
An interface providing access to a mesh deformation.
| |
| IMeshDeformationDefinition |
An interface providing access to a mesh deformation definition.
| |
| IMesherParameters |
An interface providing access to mesher parameters.
| |
| IMeshOperation |
Interface representing a mesh operation.
| |
| IMeshOperations |
An interface providing access to mesh operations in a project.
| |
| IMeshRefinement |
Provides access to a mesh refinement.
| |
| IMessage |
Provides access to a message.
| |
| IMessages | ||
| IMessagesEvents |
Represent message list events.
| |
| IObjects |
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.
| |
| IPlot | ||
| IPlots | ||
| IPort |
An interface representing a port defined in a project.
| |
| IPorts |
An interface providing access to the ports repository of a project.
| |
| IProject |
An interface providing project specific methods and properties e.g. creating/modifying structures,
setting simulation parameters etc.
| |
| IProjectSettings | ||
| IProperty |
An interface providing access to properties of ISimObject
and ICoordinateSystem objects.
| |
| IScene |
Provides access to project scene.
| |
| ISimObject |
An interface representing a geometrical object defined in the project.
| |
| ISimObjectCollection |
An interface providing access to a collection of ISimObject.
| |
| ISimulation |
An interface providing access to project simulation.
| |
| ISolverParameters |
An interface providing access to solver parameters.
| |
| ITuning |
An interface providing access to project simulation.
| |
| IVariable |
Provides access to a variable defined in a project.
| |
| IVariables |
Provides access to project variables.
| |
| IVariablesEvents |
Represents variable repository events.
|
| Delegate | Description | |
|---|---|---|
| ExitingEventHandler |
Represents the method that will handle the OnExiting event raised when application has exited.
For more information please see OnExiting(Int32).
| |
| JobStoppedEventHandler |
Represents the method that will handle the OnJobStopped event raised when an application
job has finished. For more information please see OnJobStopped(JobStopStatus, String).
| |
| MessageAddedEventHandler |
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).
| |
| MessageRemovedEventHandler |
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).
| |
| VariableAddedEventHandler |
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).
| |
| VariablePropertyChangedEventHandler |
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).
| |
| VariableRemovedEventHandler |
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).
| |
| WindowHideEventHandler |
Represents the method that will handle the OnHide event raised when the main window has been hidden.
| |
| WindowShowEventHandler |
Represents the method that will handle the OnShow event raised when the main window has been shown.
|
| Enumeration | Description | |
|---|---|---|
| JobStopStatus |
Represent possible values of a finished job status.
| |
| WindowState |