Fusion 360 updates vs existing C++ addins

Fusion 360 updates vs existing C++ addins

jean-marc_langlois
Contributor Contributor
449 Views
2 Replies
Message 1 of 3

Fusion 360 updates vs existing C++ addins

jean-marc_langlois
Contributor
Contributor

Hi all,

I am very new to Fusion360 development, and I have a basic question concerning Fusion360 updates vs existing addins.

I am mostly questioning myself with how existing C++ addins that have been compiled against a specific Fusion360 version can run against a newer version without having to be recompiled.

For example, when I first started working on my C++ addin implementation, the Fusion360.exe version was 12888.2.0.0, but I noticed yesterday that the Fusion360.exe version was now up to 13158.2.0.0 - I'm guessing it was automatically updated at some point in the last few weeks/days.

After some very basic checks on my end, it looks like the API hasn't changed, which leads me to think that a recompile of my addin isn't necessary... But it still is concerning to me that an addin can/will become out of sync with an updated Fusion360 version at some point in time...

So my question is this:

Are there any guidelines that we can rely on to determine if an addin needs a recompile ?

Is there some sort of commitment that the Fusion API is not going to change between minor updates ? Is the API "allowed" to change only between major version updates ?

Thanks for any comments you may have

Jean-Marc Langlois

0 Likes
Accepted solutions (2)
450 Views
2 Replies
Replies (2)
Message 2 of 3

BrianEkins
Mentor
Mentor
Accepted solution

The way the API is designed and implemented, you should be able to write a C++ program today and without recompiling, that dll or dylib should continue to work years into the future. I know this is not common in the industry and you are typically required to recompile when a new version of the API is released. That would have been troublesome with Fusion since the API is updated with almost every Fusion update.

 

There was a lot of thought into how the infrastructure for the API was designed and care is taken with each release to make sure there are no breaking changes. The reason this can work is the API is careful to never change the vtable layout. New functions are always added at the end and obsolete functions are never removed. There are also empty pointers created for each class to allow for the addition of new functions without disturbing the classes that come after it in the table.

 

There are cases where an add-in can stop working with an update. An obvious one is when a bug is introduced, but that should be temporary until the bug is fixed. The other case is when the functionality in Fusion changes in a way that the old functionality cannot be supported. This is very rare but is possible. Even in this case, the old function will remain in the API to preserve the vtable, but it won't function as expected.   

---------------------------------------------------------------
Brian Ekins
Inventor and Fusion 360 API Expert
Website/Blog: https://EkinsSolutions.com
0 Likes
Message 3 of 3

jean-marc_langlois
Contributor
Contributor
Accepted solution

Thanks Brian for the clear and detailed explanations. 

0 Likes