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

Community Tip - Visit the PTCooler (the community lounge) to get to know your fellow community members and check out some of Dale's Friday Humor posts! X

Getting Outputs with API

sthomet
1-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
MJG
18-Opal
18-Opal
(To:sthomet)

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.

View solution in original post

9 REPLIES 9

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?


MikeArmstrong
5-Regular Member
(To:sthomet)

Are you trying to write variables from Mathcad to Excel?

Mike

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.

MikeArmstrong
5-Regular Member
(To:sthomet)

Can you use the WRITEEXCEL function?

Mike

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.)

RichardJ
19-Tanzanite
(To:sthomet)

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

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

RichardJ
19-Tanzanite
(To:sthomet)

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.

MJG
18-Opal
18-Opal
(To:sthomet)

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.

Top Tags