Click or drag to resize

Namespaces

Namespaces
NamespaceDescription
EMInvent.InventSim
 
EMInvent.InventSim.COMServer

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"
EMInvent.InventSim.Materials
EMInvent.InventSim.Presentation
 
EMInvent.InventSim.Simulator