2 votes

Api FAO SolidWorks

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());

2voto

Sinue Points 251

Vous devez d'abord ajouter une référence aux fichiers DLL suivants pour avoir accès à intellisense :

  • C:\Program Archivos \SOLIDWORKS 2021 \SOLIDWORKS CAM \camworksu.dll
  • C:\Program Archivos \SOLIDWORKS 2021 \SOLIDWORKS CAM \cwapiu.dll

Ensuite, vous pouvez obtenir l'objet addin comme vous l'avez déjà fait mais en tant qu'objet spécifique (MWAddin) :

CAMWORKSADDINLib.MWAddin addinObject = swApp.GetAddInObject(@"{CCAC6208-0E19-6455-2017-2021CEB541FA}");

Et pour accéder à l'interface API (de cwapiu.dll) :

CAMWORKSLib.CWApp cwApp = addinObject.GetCWApp();

À partir de là, vous travaillerez avec le cwApp et les types d'objets de la CAMWORKSLib bibliothèque

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X