What's new
What's new

CAM with extensive api

adamm

Cast Iron
Joined
Sep 19, 2008
Location
Kingston, ON
Hi Folks,

I'm shopping for a new CAM system. I want to find something with an extensive api for writing macros with. It has been a few years since I was shopping for a CAM system, but at the time the salesmen had blank stares when I was asking about macro functionality.

Looking this time, I came across some documentation for Esprit that all menu items, and many of the fields in the program are all accessible via their VBA api, and their tech database. Fusion has a negligible amount of items available in the CAM portion of their python api.

Are there any other CAM software that has an extensive api?

Does anyone have experience with the Esprit api?

Thanks,

Adam
 
Esprit.

The fact they still have VBA separates them from everyone else (sure many say VBA is dead but I think its still great, excel still uses em!). And still if you want to go to .net you're good. Not only that but they have extensive tutorials.
 
I'd also suggest looking at SmartCAM. While I've never needed the ability for the work I do, they do offer a large amount of customization within the program, and the mailing list I'm on has a great number of power users who routinely help each other on implementation. SC engineers are also on the list, and frequently comment with help.

SmartCAM CAD CAM Software from SmartCAMcnc

Worth talking to them, and they offer free trials.
 
A controversial suggestion, due to the Autodesk factor, but Featurecam has an extremely comprehensive and developed API, with built in VB editor, lots of examples, and pretty decent documentation. The API is also exposed to externally compiled DLL's, if you need to do something that requires more performance than VB*.

You'd need to do your own due diligence in order to make an informed decision about whether it's worth buying into. Plenty to read about that on here.

FC documentation is all available online, except for the API documentation. If you wanted to look at it, I could send it to you if you PM me your email address.

*They have a github repository with some (basic interop) C# API examples here: GitHub - Autodesk/featurecam-api-examples: Feature CAM API Examples (No Maintenance)
 
Are there any other CAM software that has an extensive api?

Thanks,

Adam


Siemens NX has extensive capabilities in this area and I would not use macro and journal interchangeably; they are completely different. The journaling system in NX is vb based and you can easily create journals graphically, create then tweak or write your own from scratch not to mention writing custom C programs that can control NX pretty much any way you like. From way back in the Unigraphics days users could access all the part translators with C programs too. Not as common these days, you can drive model parameters externally, update tool paths and post process using C programs and perform whatever capabilities that C can do. In the Siemens and Eng Tips forums there have been discussions on some very impressive journals and there are site that offer free journals.
 
Smartcam made their bones in the CAM world with extensive macro capabilities. The new version retains all that plus new additions for solids etc. I don't use macros myself so I can't offer an opinion, but I do know that it's very capable and very inexpensive now compared to something like NX or Esprit.
 
Thanks for the feed back folks. I'll add those others to the list to investigate.

If anyone else knows of other CAM with good macro abilities, I'd still like to hear about them.

Thanks,

Adam
 
As stated above, NX is very powerful with journaling and C+. You can do basically anything with the right knowledge in NX when it comes to macros. Getting the knowledge on the other hand isn't an easy task.
 
NX and *cough* CATIA would be at the top of my short list if I were really after extensive API. I love Esprit, but there is absolutely no way I would put any effort into building something on their legacy product. When I was digging into it, TNG didn't have nearly as robust of an API development kit yet.

I bet Top Solid has outstanding API tools as well, but don't have experience with them.
 
Solidcam has its own templates, procedures, and so forth, which can be quite elaborate. Depending on your goals that might be enough. But really best to call them ask about it.
 
What is a extensive API? Is it just VBA script add on?
That is a good question. I would define an extensive API as being able to use any function of the program via the API. I don't have much experience with API on CAM, but on the CAD side for example: Autodesk's Inventor API can access nearly any object in an Inventor file, all the way to the point where Autodesk wrote their sheet metal module as an add-in using the public API. You can create new commands and put them on the tool bar, or write a separate independent program that can call into and operate Inventor from the outside.

On the FEA or analysis side, with Abaqus every interaction you have with the program is silently writing a Python script in the back ground. Literally everything you do is in that Python script, and you can replay a session using that script. Using the same commands, you can fully program an analysis outside of Abaqus, and then run it within Abaqus to do the analysis. You can also define custom dialogs and other UI components with Python and run them while using the GUI to set-up an analysis.


Why would one want one in a CAM system? This is confusing.
Generally, to eliminate standard repetitive busy work.

As a minor example: In every CAM I've used, when setting stock size the software is oblivious to what stock sizes are actually available, or that I have in stock. I think it would be better if, after the CAM program calculates the stock size as the bounding box +1mm, it then looks at a list of available stock sizes, and rounds it up to a real size.

Can one use Python?
Bob

I'm a-ok with Python. But I don't want to program a CAM system from scratch. I'm looking for a program that does the heavy lifting of reading the model, extracting geometry, creating tooth paths, etc. I just want to be able to control the flow in a few places. 95% CAM program, 5% my additional scripts and commands.

And I'd like something with nearly full coverage on the API as I think of new things as I'm working with the software, and want to avoid being boxed in as to what I can script.
 
I'm looking for a program that does the heavy lifting of reading the model, extracting geometry, creating tooth paths, etc. I just want to be able to control the flow in a few places. 95% CAM program, 5% my additional scripts and commands.

And I'd like something with nearly full coverage on the API as I think of new things as I'm working with the software, and want to avoid being boxed in as to what I can script.
You might like Edgecam. It's heavy on automation exactly as you describe. The downside for me has been the huge code and randomly connected moves it creates when you let it run automatically. Fine for small parts on a Speedio probably, not so fine for larger parts on slower machines.
 
Hi Adam:

Boosted mentioned TopSolid, so I'll chime in here as s TS user (though unfortunately w/o any API automation experience). TS has what they call "Methods" which are sorta like macros with some additional capabilities. I've only dabbled in this so far, but there's a lot you can do.

I'll try to send you a PM with any information I can find about this stuff, OK?

The Canadian TS dealer (CAD-CAM Services) is really excellent and could probably shed some light on this, too. I know that they have built some automation for several customers (on the design side of things).

Thanks, Brian
 
I have seen Vorum's implementation of their workflow on top of MasterCAM specifically for their 3D model to foam block machining pipeline. This is for prosthetic parts, and custom wheelchair seating so they are importing poiut clouds and basically surfacing from a few basic stock shapes. Anyway, it's amazing watching the guy do in about five minutes what an experienced MasterCAM user would probably take a hour to do from scratch. So I'd add masterCAM to the list of programs that have serious APIs. For me it would come down to how difficult and expensive it is to get the documentation to work with any of these APIs and whether you can do this if you are a power user or do you need to register as a developer/partner and if so how expensive and arduous would that be?
 
What is a extensive API? Is it just VBA script add on?
Why would one want one in a CAM system? This is confusing.
Can one use Python?
Bob

You can think of an API as essentially a control panel for a program's functions that allow other programs to interact with it. In the same way that a typical CAD/CAM program has a graphical user interface with buttons etc. that allow human interaction and control of program functions, an API provides a defined set of methods by which two programs can interact and control each other's functions.

While they share some similarities, I think that it is important to distinguish an API from macro functionality. Both do allow automation. However, macros are often limited to the application scope, in that they only allow automation within the "parent" program's functionality. Macro functionality also often uses a scripting language (or simple recording of UI interactions) which can be specific to the parent program, rather than using a general purpose programming language such as Python or C. This can be problematic when the scripting language is buggy, difficult to work with, or doesn't provide functions you need for your goal- and you're forced to rely on support from the parent program's developer, who may or may or may not be interested in improving the macro functionality.

In contrast, APIs are designed to interface the program with other programs outside it's scope, rather than just internal automation. To give a generic fictional example, I could write a macro that takes three numbers as inputs and generates a CAD model that uses those three numbers to dimension a certain design. With a powerful API, I could do the same thing, but plug it all into a web site that lets a customer input those three numbers, quotes them a price for the design, determines weight to calculate shipping cost and returns them a render of the finished product. All totally automated. An API will generally provide an interface that will be either language-agnostic (using HTTP requests carrying JSON objects is an extremely common method, done by sites/apps you use everyday) or by extending an existing general purpose programming language (i.e. python/c/javascript) by providing libraries that simplify and abstract the programming of interactions with the program. This allows you to leverage the massive functionality provided by existing languages to interact with your CAD program, as well as programming tools such as IDEs and dedicated hosting/deployment methods.

However, with both APIs and macros, the developer of the parent program needs to support the functions you need via the API or macro language. This is where the "extensiveness" of the API matters. If you're trying to achieve a specific goal in your automation efforts, the question of "what functionality does the API expose" is as critical as "is there an API?" Like if I want to programmatically create CAD models but the API only allows me to read data about existing models created through the GUI, that's useless for my needs. All APIs are not created equal, so the type of functions exposed by the API, the type of interface, how well supported/buggy it is, and performance of API calls can all be serious considerations.


adamm seems to know what they are looking for, so not posting this for their benefit. Just clarifying for other readers of this thread because I think it's an interesting topic.
 








 
Back
Top