cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Getting Outputs with API

SOLVED
Highlighted
Newbie

Getting Outputs with API

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?

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Getting Outputs with API

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: https://www.ptcusercommunity.com/message/424650#424650

Good luck.

9 REPLIES 9

Re: Getting Outputs with API

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?


Re: Getting Outputs with API

Are you trying to write variables from Mathcad to Excel?

Mike

Re: Getting Outputs with API

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.

Re: Getting Outputs with API

Can you use the WRITEEXCEL function?

Mike

Re: Getting Outputs with API

WRITEEXCEL only writes into closed Excel files. As the Excel should control Mathcad in vba, closing the file is no real option.
(I have to admit that I could have used a .xlsx instead of the .txt for data-transfer. This would probably have been easier.)

Re: Getting Outputs with API

You could pay $9000 for the documentation https://www.ptcusercommunity.com/thread/60547 

Re: Getting Outputs with API

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

Re: Getting Outputs with API

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.

Re: Getting Outputs with API

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: https://www.ptcusercommunity.com/message/424650#424650

Good luck.