Skip to main content
1-Visitor
July 1, 2015
Solved

Getting Outputs with API

  • July 1, 2015
  • 3 replies
  • 5852 views

Hello everyone.

I made the following function in VBA (Excel) to retrieve the value of the variable B from the mathcad file using the API.

The Variable is defined in the file with a unit i.e. B := 2 m

Public Function test2() As Double

    Dim objApp As Ptc_MathcadPrime_Automation.Application

    Set objApp = New Ptc_MathcadPrime_Automation.Application

      

    Dim b As Ptc_MathcadPrime_Automation.WorksheetReadonlyOptions

    Set b = objApp.CreateWorksheetReadonlyOptions

    bb = b.SetOptionValue(WorksheetReadonlyOptionNames_RequestToUpdateInputsEnabled, 2)

   

    Dim objCalc As Ptc_MathcadPrime_Automation.IMathcadPrimeWorksheet3

    Set objCalc = objApp.OpenEx("C:\Users\kai.jakob\Desktop\Testo.mcdx", b)

    Dim a As Ptc_MathcadPrime_Automation.IMathcadPrimeOutputResult

    Set a = objCalc.OutputGetRealValue("(@LABEL VARIABLE B)")

    Set a = objCalc.OutputGetRealValue("B")

    aa = a.RealResult

    aaa = a.Units

       

    test2 = aa


    objCalc.Close (SaveOption_spSaveChanges)

    objApp.Quit (SaveOption_spDiscardChanges) 

End Function

The output I get is:

Double:      aa = -1.#IND

Unit:          aaa = ""

Can anyone tell me what is wrong with those functions?

Best answer by MJG

I was getting the same result (-1.#IND) until I figured out that you must assign your outputs in the Mathcad worksheet.

See the following post I just made: Re: NEW API for Mathcad Prime 3.1 - Page 2 - PTC Community

Good luck.

3 replies

sthomet1-VisitorAuthor
1-Visitor
September 17, 2015

Ok guys.

I have technically solved the problem: I let Mathcad write a .txt file with the results and units. Excel then reads and deletes the txt.

However I am convinced that there must be an easier solution to this problem.

Has anyone gotten the IMathcadPrimeOutputResult function to work?


1-Visitor
September 17, 2015

Are you trying to write variables from Mathcad to Excel?

Mike

sthomet1-VisitorAuthor
1-Visitor
September 17, 2015

Yes exactly.

Edit: Well the real goal is to 'remote control' a Mathcad-file from Excel.

At the moment I just start the Mathcad-Calculation from the excel. Then I use Mathcad formulas to import values and units from this same Excel file. The Mathcad outputs are then handled with the txt file I mentioned above.

There must be a simpler solution.

19-Tanzanite
September 17, 2015

You could pay $9000 for the documentation NEW API for Mathcad Prime 3.1 - PTC Community

sthomet1-VisitorAuthor
1-Visitor
September 18, 2015

I am pondering marking your answer as the right one...

19-Tanzanite
September 18, 2015

I am sure there is a way to get the result without going via a file. I don't have Prime 3.1 though, so I can't even poke around with an object browser to see what is available.

MJG1-VisitorAnswer
1-Visitor
October 13, 2015

I was getting the same result (-1.#IND) until I figured out that you must assign your outputs in the Mathcad worksheet.

See the following post I just made: Re: NEW API for Mathcad Prime 3.1 - Page 2 - PTC Community

Good luck.