Je souhaite créer un module complémentaire qui puisse automatiser une partie de notre flux de travail dans SolidWorks CAM 2021. D'après cette page d'aide, il est possible d'accéder à l'API d'autres modules complémentaires : https://help.solidworks.com/2018/English/api/sldworksapiprogguide/Overview/Accessing_Add-ins.htm
Cependant, je ne suis pas sûr de ce qu'il faut faire après avoir utilisé GetAddInObject sur l'addin CAM de SolidWorks. Ce type semble avoir une solution pour VB, mais ne présente pas l'implémentation réelle.
Voici le code que j'ai jusqu'à présent :
dynamic SWCAMObject = default(dynamic);
dynamic SWCAM = default(dynamic);
SWCAMObject = iSwApp.GetAddInObject("{CCAC6208-0E19-6455-2017-2021CEB541FA}");
if (SWCAMObject == null) ErrorMsg(iSwApp, "SWCAMObject object not found");
Debug.WriteLine($"SWCAMObject loaded: {SWCAMObject}");
SWCAM = SWCAMObject.CAMWORKSADDINLib; <---- Breaks here, not at all sure how to extract the addin interface.
if (SWCAM == null) ErrorMsg(iSwApp, "SWCAM object not found");
Debug.WriteLine($"SWCAM loaded: {SWCAM}");
Quelqu'un sait-il comment extraire correctement l'interface FAO de Solidworks ?
La question a également été posée ici : https://forum.solidworks.com/thread/246718
--- Mise à jour --- Suivre les conseils de Sinues fonctionne ! Je ne peux pas ajouter les dll auxquelles il fait référence, j'obtiens l'erreur suivante : "... n'a pas pu être ajouté. Veuillez vous assurer que le fichier est accessible et qu'il s'agit d'un assemblage ou d'un composant COM valide". Pourtant, j'ai ajouté les références COM : SOLIDWORKS CAM 2021 Type Library Bibliothèque de type CAMWorksAddin 1.0 Et ceci semble fonctionner
Mon code final qui est en cours d'exécution est :
CAMWORKSADDINLib.MWAddin addinObject = iSwApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");
if (addinObject == null) ErrorMsg(iSwApp, "SWCAMObject object not found");
Debug.WriteLine($"SWCAMObject loaded: {addinObject}");
CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();
if (cwApp == null) ErrorMsg(iSwApp, "SWCAM object not found");
Debug.WriteLine($"SWCAM loaded: {cwApp}");
Debug.WriteLine(cwApp.GetVersion());