Can someone point me to the user guide to use the NEW API in Mathcad prime 3.1
The help system mentions that the user guide is available but does not give a link to it, does not give an online help to it. Also, it seems to implt that you have to pay for teh API!!!!
If so this is ridiculous. 3.1 is advertised as having an API as part of its features!!!
Can someone shed some light on this?
The API is part of Mathcad Prime 3.1 install. Look for MathcadPrimeAutomation.tlb and MathcadPrimeAutomation.dll.
Load the TLB into the Object Browser of MS Visual Studio (or Visual Studio Express ..free) and there are the API's, their
methods, properties, enums and data types.
What's for sale is the Mathcad Prime 3.1 SDK which is a package of documentation and source code examples
including source to the Solidworks- Mathcad Prime integration.
So to be clear .. API is free, SDK is for sale. BTW SDK is $9000 USD per company.
Seriously? You are asking $9000 for the documentation for the API? That is what I would call a gross rip-off! In fact, I think it's the biggest rip-off I have ever heard of. You are basically asking $9k for a book!
No, not $9000 per company for documentation.
$9000 per company for the entire SDK, which is mostly source code
Once more, open the TLB in Visual Studio. There is everything. If you like, print to PDF.
Source code examples = part of the documentation.
You are providing a feature in your software. In fact, you are actively promoting that feature. But you are providing it with no documentation. If the user wants any documentation you are asking them to pay $9000. In what way is that not a rip-off?
Not sure why you keep twisting it to $9000 per company for documentation? That's not what I've said in any post.
My response above is accurate and doesn't change.
OK. Which, if any, of the following is not true:
1) You are promoting the API as a new feature in Prime.
2) When you get Prime, it does not include any documentation for the API
3) If the user wants documentation, the only thing PTC offers is the "SDK"
4) The "SDK" does not contain anything that would not retain all functionality if printed (other than losing a few hyperlinks perhaps). So no fancy code editors, object browsers, tools for GUI development, etc. Just some level of documentation of the methods, properties, etc, and some source code examples.
If the only thing in the SDK is a written description of the methods, properties, etc, of the API, and source code examples, then that is documentation. You can write something else on the box if you like. You can even tie a fancy ribbon around it. That does not change what is in the box, which is the documentation for the API. So unless I am wrong about number 4 (if I am, please say what else is included), I am not twisting anything. I am just telling it the way it is.
I disagree, you are telling it the way you see it. Many companies sell SDKs and now we do too.
#2 The API is self documenting. Using the Object Browser. Clearly not meeting your expectations for documentation, but
it is documentation. As a developer, its what I use with AutoCAD and Solidworks. I grab the TLB and open it in Object Browser.
#3 if the user wants documentation .. see #2.
#4 Can't follow. The value of the SDK is the source code, not a Word doc which was generated by opening the TLB in the Object Browser.
If browsing an API via Object Browser is a new methodology to you , you should learn it. Its very powerful. If you want hardcopy hit print.
Sure you can look at the TLB using an object browser. Calling that "self documenting" is a stretch. The Mathcad 15 developers reference doesn't contain much more than you can find with an object browser, but it does contain more.
As the for the value of the source code in the SDK, that would depend a great deal on the user. How many languages do you provide examples in? How many examples?
The fact is, you don't provide any documentation for the API with Prime. The user is either left to figure it out as best they can by browsing the TLB, or they have to pay PTC $9000. I don't even know what that $9000 gets you. By the sound of it, you don't believe there's any value in documentation beyond what you can find with an object browser, so does that mean the SDK does not contain any such documentation? It's just some source code examples?
BTW, many companies also give away an SDK for free, because they want people to use the software they purchased.
Many companies sell their SDK. Some as high as 50K per user for some. $9000 per company is our first try at pricing.
For individual users perhaps we should have a separate, lower cost. Again this is our first try.
This is a great discussion.
I am very familiar with using various tools API's. I have NEVER had to pay 9k for an SDK and for documentation on an API. This is nuts.
Here are some programs I have used that have and extensively documented API that the user does NOT pay for. I personally do not know of one software developer that charges 9k for a SDK, In addition, every software vendor provides a fully documented help file or manual o use an API.
I cannot believe you would expect a user to sue an API with out any documentation. What values are returned by your methods in the API? How is your name space structured? What is the example for creating and using Matrices.
I am extremely annoyed. One of the biggest features I was looking for in Prime as an API and now I find I have to pay 9k just for documentation nuts!!!!!!
Here are some APIs I use on a regular basis which are "free" once you have purchased the software
CSI (Computers and Structures International) - SAP 2000, ETABS
Mcneel - RHINO
Grassshopper, plug in for Rhino
Autodesk - REVIT, AutoCAD etc
Dynamo - plug in for REVIT
Microsoft - Excel
This is another reason for the continued migration to other tools like Maple
Here is an example extract from the CSI CHM file for the SAP2000 API, this explains the method for adding a cable object to the program. This is the level of documentation that is free and is not a SDK.
Function AddByCoord(ByVal xi As Double, ByVal yi As Double, ByVal zi As Double, ByVal xj As Double, ByVal yj As Double, ByVal zj As Double, ByRef Name As String, Optional ByVal PropName As String = "Default", Optional ByVal UserName As String = "", Optional ByVal CSys As String = "Global") As Long
xi, yi, zi
The coordinates of the I-End of the added cable object. The coordinates are in the coordinate system defined by the CSys item.
xj, yj, zj
The coordinates of the J-End of the added cable object. The coordinates are in the coordinate system defined by the CSys item.
This is the name that the program ultimately assigns for the cable object. If no UserName is specified,n the program assigns a default name to the cable object. If a UserName is specified and that name is not used for another frame, cable or tendon object, the UserName is assigned to the cable object; otherwise a default name is assigned to the cable object.
This is Default or the name of a defined cable property.
If it is Default, the program assigns a default cable property to the cable object. If it is the name of a defined cable property, that property is assigned to the cable object.
This is an optional user specified name for the cable object. If a UserName is specified and that name is already used for another cable object, the program ignores the UserName.
The name of the coordinate system in which the cable object end point coordinates are defined.
This function adds a new cable object whose end points are at the specified coordinates.
The function returns zero if the cable object is successfully added, otherwise it returns a nonzero value.
Dim SapObject As Sap2000v16.SapObject
Dim SapModel As cSapModel
Dim ret As Long
Dim Name As String
'create Sap2000 object
Set SapObject = New Sap2000v16.SapObject
'start Sap2000 application
'create SapModel object
Set SapModel = SapObject.SapModel
ret = SapModel.InitializeNewModel
'create model from template
ret = SapModel.File.New2DFrame(PortalFrame, 3, 124, 3, 200)
'add cable object by coordinates
ret = SapModel.CableObj.AddByCoord(-300, 0, 0, -100, 0, 124, Name)
Set SapModel = Nothing
Set SapObject = Nothing
Initial release in version 11.00.
See ,my reply. I don't know any software APIs I use where i have had to pay for a SDK. ZERO. Forgot to add, I have also used the TEKLA API, also free, they have a separate SDK which is also free.
Yep I agree, I have never had to pay anything for access to an API, never mind 50k !!!!!!!!
See all the examples of the API's above i regularly use which have no additional cost added.
I don't know what everyone is complaining about, Prime 3.1 is such a featured packed upgrade to Mathcad Prime 3.0. In my view, it looks fantastic - great value for money. We have all waited 2 years for Prime 3.1 upgrade and I for one am so excited. Why is everyone so upset and making so unkind remarks to PTC? 9K to use utilise its API features is such a good deal. I am so annoyed that I cannot find my credit card as my maintenance is due and I need to pay PTC the 9.5 K that they are due. I am so pleased I have paid them the $1,000 in maintenance for the Prime 3.1.upgrade.
PTC are such a great company they really know what they are doing when it comes to Mathcad. PTI are so generous to their users you can even email them and sometimes they give you an answer i know its rare but that's OK - they are busy coding. I am in panicked anticipation, literally frothing at the mouth, to put Mathcad Prime 3.1 through its paces. I am so disappointed however that I will have to wait until I recover from my serious brain injury - the doctor said I may be suffering a delusional episode whatever that is. I have heard that some of the PTC management may have suffered similar injuries as I was told that they were in the bus that hit me.
Some as high as 50K per user for some.
Actually, I am genuinely curious about which company asks this price. So still waiting for a reply.
You say " And all the source code comes bundled plus a User’s Guide for the API."
Is it possible to access/purchase just the User's Guide without the source code?
Looks like you have to use Visual Studio and Manually look at each method/function/constant:
I took screen captures of the classes. If you dig a little more, you can see the parameters for functions and subs, but I couldn't find documentation on what the returned value represents (beside the type that is)
Hope this helps, it sure is more information then what Mathcad is willing to provide.
How do I add or load TLB in object broswer of VS.
I tried it but got the following error.
"The ActiveX type library 'C:\.....\....tlb` was exported from a .NET assembly and cannot be added as a reference.
Add a reference to the .NET assembly instead'.
How do I fix it?
I installed Visual Studio Express and opened MathcadPrimeAutomation.tlb. This may beyond my abilities, but always looking to learn. Could you recommend some guidance on learning how to use Visual Studio Express with an API? Just received a $50 gift certificate to Amazon. I am looking to integrate Prime 3.1 with SolidWorks.
I am not a programmer but a Mechanical Engineering. My programming experience goes back to Fortran IV and lately Python. I would like to learn a programming language that would support API development. Several of the program packages (SolidWorks, Mathcad, Orcaflex) I use support API. It seems there are several ways to write APIs (C, C++, C#, Visual Basic). Could you recommend programing language (maybe Visual Basic) and book that would give me good insight into APIs?
I think you are confusing creating an API and calling another software package via it's API. The writer of the software package creates the API for that software package, and as such they are all different. They typically have similar features and syntax, but they are not the same (hence the complaints here that PTC does not provide documentation for the API for Mathcad, unless you are willing to submit to extortion). If you wish to call a piece of software via it's API then which languages you could use depends on whether the API supports both early and late binding, or only early binding. If it only supports early binding (which is usually not the case, but it might be) then you must use a language that can be compiled (so, for example, VBscript or Jscript could not be used). If it supports both early and late binding then almost any language could be used. If you are already learning or know Python then that would work fine in either case. Just read up on objects, their methods and properties, etc. An API is essentially just a collection of objects that allow you to access features of the given software package.
BTW, "Visual Basic" no longer exists, and Basic is a horrible language anyway. If you want to learn a language in Visual Studio IMO your best choice would be C#. But for an engineer Python would be a much better choice, because there's a lot you can do with Python in science and engineering (someone is even developing a Mathcad like interface: http://miramath.newfrontierscompsoln.com/ )
I use Visual Basic (VB6, VB.net, VBscript, VBA); I'm able to program Mathcad 15, MS Office, AutoCAD, SMath, Custom GUI with VB. If I were to take the time and learn a new language, I would probably sit down and learn C# as the language has potential.
As for references/materials, I don't have any good ones; it may not be a bad Idea to track down some college professor who posts notes online per the language you want.
As for the API, you can guess and debug through Mathcad Prime's capabilities; or you can find an alternative. I was refered to the following site, which DOES provide documentation for its respective software: SMath Studio Core documentation - Samples - SMath Studio Forum
I cannot endorse it, but there is a tutorial for creating add-ons through Express... its more then Mathcad is willing to provide:
Some food for thought. I'm debating jumping from Mathcad 15 and right now its not going to be mathcad prime unless they get there act into gear...
Richard Jackson wrote:
... But for an engineer Python would be a much better choice, because there's a lot you can do with Python in science and engineering (someone is even developing a Mathcad like interface: http://miramath.newfrontierscompsoln.com/ ) ...
It would be nice to see a step by step guide to creating a mathematical programs like MiraMath by using Python programming language.
It would be nice to see a step by step guide to creating a mathematical programs like MiraMath by using Python programming language.
Step 1. Learn to program
Step 2. Learn a lot more about programming
Step 3. Learn Python
Step 4. Learn a lot more about Python
Step 5. Learn to write parsers
Step 6. Write three parsers, as described on the Miramath website.
What in your opinion of distinction (advantages/shortcomings) between C# and Python programming languages?
C# is a propriety version of C (or C++) only available in MS Visual Studio. If you want to build a piece of software with a nice GUI it's great, because you can mostly create the interface by drag and drop, and then add some code to make it all work. It compiles to executable format, so it's fast. If you want to do science and engineering calculations there's not much built-in to help you. There are libraries available, but not usually not for free. So it's great for building GUI based apps, but not so great for numerical computing.
Python is an open language, and just about everything is free. It can either be run as a script (like Matlab) or compiled to bytecode to make it run faster. It's not as fast a true compiled language, but it's fast enough for most applications (this software package was written almost entirely in Python: http://www.essentialftir.com/index.html). There are many free libraries available, including numpy, scipy, and sympy for numerical and symbolic math. You can use it much like Matlab with the IPython notebook interface: http://ipython.org/notebook.html. As noted above, a Mathcad like interface is also in development. You can also develop GUI based standalone applications, but not as easily as with Visual Studio / C#. So Python is great for numerical computing, not so great for building GUI based apps.