views:

34

answers:

1

Hello I'm trying to control FastHenry2 via Windows automation with Matlab. I'm new to that topic. If I understood everything right I have to open it:

ax=actxserver('FastHenry2.Document');

and than run the function I want with the handle?

ax.Run('coils1.inp') 

but that doesn't work. Matlab can't find Run and uses run instead, which is some build in Function not related at all with the problem. Also all other Function this UI should support don't work either. For Example FastHenry2.IsRunning or FastHenry2.GetInductance. So I guess I do something wrong with the whole UI handling. FastHenry provides an example script using VBS which I attached bellow and since it works fine FastHenry should be installed right on computer. I'm thankful for every hint I can get.

so long eactor

The following VBS example works fine

Dim FastHenry2
pathPos = InstrRev(Wscript.ScriptFullName, Wscript.ScriptName)
path = left(Wscript.ScriptFullName, pathPos-1)

Set FastHenry2 = CreateObject("FastHenry2.Document")
couldRun = FastHenry2.Run("""" + path + "coils1.inp""")

Do While FastHenry2.IsRunning = True
  Wscript.Sleep 500
Loop

inductance = FastHenry2.GetInductance()
WScript.Echo "Coils1 mutual inductance is " + CStr(inductance(0, 0, 1))

FastHenry2.Quit
Set FastHenry2 = Nothing
+4  A: 

You might need to use an alternate syntax. Instead of

FastHenry2.Run('coils1.inp')

try this.

invoke(FastHenry2, 'Run', 'coils2.inp')

I've had to do this for some methods on the Excel.Application ActiveX control. I'm not clear why the first syntax doesn't work in some cases.

Andrew Janke
Awesome !!!! Thanks a lot, really weird that it only works that way. If I could I would vote your answer!
eactor

related questions