Lancer SOLIDWORKS avec module de classe VB.NET

Bonjour,

 

J'ai travaillé dernièrement sur un module de classe VBA que je lance au démarrage de Solidworks avec la commande "C:\Program Files\SolidWorks Corp\SolidWorks\SLDWORKS.exe" /m "ici le chemin de la macro.swp".

Je souhaiterai désormais passer à un module de classe codé en .NET mais n'arrive pas à démarrer SOLIDWORKS avec cette classe. Auriez-vous un exemple à me donner ?

J'utilise le code suivant :

"C:\Program Files\SolidWorks Corp\SolidWorks\SLDWORKS.exe" /m "C:\Users\ClassLibrary1.dll" pour lancer la DLL

Par avance, merci

 

Sylvain

 

 

Bonjour, la rubrique d'aide décrit comment le lancer, voir ce lien

http://help.solidworks.com/2013/English/api/sldworksapiprogguide/GettingStarted/Visual_Basic_.NET_Standalone_and_Add-in_Applications.htm

Bonjour,

 

Merci de votre réponse. En fait j'avais déjà saisi ce bout de code pour accéder depuis le module de classe aux fonctions de SOLID (ouvrir doc , enregistrer ...) mais je n'arrive pas à lancer SOLIDWORKS avec le module de classe.

Je vais regarder davantage sur le site de SOLID dés que je serai au bureau.

Merci

 

Bonjour, en effet le lien précédent ne répond pas vraiment à la question, ce tutoriel peut peut-être aider :

https://www.youtube.com/watch?v=aoXJGKAwhbc

Voir aussi :

http://stackoverflow.com/questions/20905416/when-i-publish-a-vb-net-application-will-references-be-included

 

Salut,

Essayez ce code : en l'adaptant avec SLDWORKS.exe et en argument le chemin de votre pièce

'Instance de la classe Process
Dim proc As New System.Diagnostics.Process()
' Nom de l'executable à lancer
proc.StartInfo.FileName = "iexplore.exe"
' Arguments à passer à l'exécutable à lancer
proc.StartInfo.Arguments="http://www.developpez.com"
' Démarrage du processus
proc.Start()
' On libère les ressources dont on a plus besoin.
proc.Close() 'Attention Close ne met pas fin au processus.

 

Source : http://dotnet.developpez.com/faq/vbnet?page=Systeme#Comment-lancer-un-processus

 

Je pense qu'il serait utilse de tester si le processus est déjà lancer. Pour cela voir cette piste : http://dotnet.developpez.com/faq/vbnet?page=Systeme#Comment-lister-les-processus-en-cours-d-execution

 

Est ce que vous pouvez nous en dire un peu plus sur votre projet VB.net ?

Bonne journée

1 « J'aime »

Bonjour,

 

Merci pour ces réponses. La vidéo YOUTUBE semble correspondre à ce que je recherche.

J'ai simplement un problème en important la dll. "Solidworks.Interop.sldworks.dll"

Elle apparait dans VB net dans l'exporateur de solution avec un logo attention. Si je compare les versions dans vb et dans windows elles ne sont pas les mêmes.

 

En fait je souhaite lancer quelques requetes SQL sur notre ERP aprés avoir par exemple enregistré une pièce dans SOLID.

 

Merci

 

Sylvain


problem_dll_solid_vb_net.png

Quelle est ta version de SW et de Visual Studio ?

Je viens d'essayer et cela fonctionne mais la version de la dll est 23, car je suis en SW 2015.

Si tu supprime la référence, pour l'ajouter de nouveau ?

Je travaille avec Solidworks 2014 et VB Studio 2008 framework 3.5.

 

Merci

Cela fonctionne comme ceci :

Un module avec le code :

Imports System.Diagnostics
Module Module_principal
    Function Verification_processus_SW() As Boolean
        Dim Processus_SW As System.Diagnostics.Process() = Process.GetProcessesByName("SLDWORKS")
        If Processus_SW.Count = Nothing Then
            Return False
        Else
            Return True
        End If
    End Function

    Sub Lancement_SW()
        Dim proc As New Process()
        proc.StartInfo.FileName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe"
        ' Arguments à passer à l'exécutable à lancer
        proc.StartInfo.Arguments = "Chemin_de_ton_fichier.sldprt"
        ' Démarrage du processus
        proc.Start()
        ' On libère les ressources dont on a plus besoin.
        'proc.Close() 'Attention Close ne met pas fin au processus.
    End Sub
End Module

 

Un bouton ou autre pour activer avec le code :

        Select Case Verification_processus_SW()
            Case False
                Lancement_SW()
            Case True
                'Code a ajouter dans le cas ou SW est déjà lancer
        End Select
    End Sub

 

Et en essayant un nouveau projet pour inclure la dll ça fonctionne ? Le tutoriel YouTube est plutôt simple, il n'y a qu'un seul fichier avec ce nom sut le disque dur ?

Bonjour,

 

Un nouveau projet ne résoud pas le problème. Je pense qu'il n'y a qu'un fichier sur le disque.

Je vais prendre contact avec Axemble pour voir ça.

Merci encore

 

Sylvain