Start SOLIDWORKS met Class Module VB.NET

Hallo

 

Ik heb onlangs gewerkt aan een VBA-klassemodule die ik start bij het opstarten van Solidworks met het commando "C:\Program Files\SolidWorks Corp\SolidWorks\SLDWORKS.exe" /m "hier het pad van de macro.swp".

Ik wil nu graag overstappen naar een .NET-gecodeerde class module, maar kan SOLIDWORKS niet starten met deze class. Heb je een voorbeeld om me te geven?

Ik gebruik de volgende code:

"C:\Program Files\SolidWorks Corp\SolidWorks\SLDWORKS.exe" /m "C:\Users\ClassLibrary1.dll" om de DLL te starten

Bij voorbaat dank

 

Sylvain

 

 

Hallo, de helpsectie beschrijft hoe u het kunt starten, zie deze link

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

Hallo

 

Dank u voor uw antwoord. In feite had ik dit stukje code al ingevoerd om vanuit de klassemodule toegang te krijgen tot de functies van SOLID (document openen, opslaan ...) maar ik kan SOLIDWORKS niet starten met de klassemodule.

Ik zal meer op de SOLID-website kijken zodra ik op kantoor ben.

Bedankt

 

Hallo, inderdaad de vorige link beantwoordt de vraag niet echt, deze tutorial kan helpen:

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

Zie ook:

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

 

Hallo

Probeer deze code: door deze aan te passen met SLDWORKS.exe en argumenteren het pad van uw deel

Exemplaar van de klasse Proces
Dim proc als nieuw System.Diagnostics.Process()
(') Naam van het uitvoerbare bestand dat moet worden gestart
Proc. StartInfo.FileName = "iexplore.exe"
' Argumenten om door te geven aan het uitvoerbare bestand om te lanceren
Proc. StartInfo.Arguments="http://www.developpez.com"
' Het proces starten
Proc. Begin()
"We maken de middelen vrij die we meer nodig hebben.
Proc. Close() 'Let op: Close beëindigt het proces niet.

 

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

 

Ik denk dat het nuttig zou zijn om te testen of het proces al is gestart. Zie hiervoor deze track: http://dotnet.developpez.com/faq/vbnet?page=Systeme#Comment-lister-les-processus-en-cours-d-execution

 

Kun je ons iets meer vertellen over je VB.net project?

Fijne dag

1 like

Hallo

 

Dank u voor deze antwoorden. De YOUTUBE-video lijkt te zijn wat ik zoek.

Ik heb gewoon een probleem met het importeren van de dll. "Solidworks.Interop.sldworks.dll"

Het verschijnt in VB net in de oplossing exporteur met een beware logo. Als ik de versies in vb en in windows vergelijk, zijn ze niet hetzelfde.

 

Sterker nog, ik wil een aantal SQL-queries uitvoeren op ons ERP nadat ik bijvoorbeeld een deel in SOLID heb opgeslagen.

 

Bedankt

 

Sylvain


problem_dll_solid_vb_net.png

Wat is jouw versie van SW en Visual Studio?

Ik heb het net geprobeerd en het werkt, maar de versie van de dll is 23, omdat ik in SW 2015 ben.

Als u de referentie verwijdert, om deze dan opnieuw toe te voegen?

Ik werk met Solidworks 2014 en VB Studio 2008 framework 3.5.

 

Bedankt

Het werkt als volgt:

Een module met de code:

Importeert System.Diagnostics
Module Module_principal
    Functie Verification_processus_SW() als Booleaanse
        Dim Processus_SW als System.Diagnostics.Process() = Process.GetProcessesByName("SLDWORKS")
        Zo Processus_SW. Tellen = niets dan
            Retour onwaar
        Anders
            Retourneren Waar
        Einde als
    Functie beëindigen

    Sub Lancement_SW()
        Dim proc als nieuw proces()
        Proc. StartInfo.FileName = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe"
        ' Argumenten om door te geven aan het uitvoerbare bestand om te lanceren
        Proc. StartInfo.Arguments = "Chemin_de_ton_fichier.sldprt"
        ' Het proces starten
        Proc. Begin()
        "We maken de middelen vrij die we meer nodig hebben.
        "Proc. Close() 'Let op: Close beëindigt het proces niet.
    Einde Sub
Einde module

 

Een knop of andere om te activeren met de code:

        Selecteer Case Verification_processus_SW()
            Zaak onwaar
                Lancement_SW()
            Geval waar
                'Code om toe te voegen voor het geval SW al actief is
        Einde selecteren
    Einde Sub

 

En door een nieuw project te proberen om de dll op te nemen, werkt het? De YouTube-tutorial is vrij eenvoudig, er staat maar één bestand met deze naam op de harde schijf?

Hallo

 

Een nieuw project lost het probleem niet op. Ik denk dat er maar één bestand op de schijf staat.

Ik neem contact op met Axemble om het te bespreken.

Nogmaals bedankt

 

Sylvain