| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SOLIDWORKS Webinar-Serie 2020 / 21: Aufzeichnungen zum Nachhören |
Autor
|
Thema: VBA in VB6 und VB.net umwandeln (2121 mal gelesen)
|
senfcola Mitglied
Beiträge: 5 Registriert: 18.08.2009
|
erstellt am: 18. Aug. 2009 09:54 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe bereits einige Makros geschrieben, möchte nun aber auch von einer externen Anwendung, vb6 oder besser noch vb.net Solidworks steuern (teilweise bestehende Makros darauf portieren). Was habe ich zu tun? Ich bin nur Laienprogrammierer, wäre also für eine Demoanwendung besonders dankbar, von der ich die nötigen Befehle zur Übergabe der Steuerung an VB abkupfern könnte. Gruß
Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 18. Aug. 2009 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für senfcola
Hallo Markus, und herzlich willkommen im SolidWorks Brett auf CAD.de Auch wenn du schreibst, dass du nur Laienprogrammierer bist, musst du schon die Grundlagen von VB6 oder VB.Net verstanden haben, wenn du damit etwas programmieren willst. Ein einfaches SolidWorks Makro wird immer über die Prozedur Main aufgerufen, von dort aus alles andere. Im einfachsten Fall machst du dir also in VB6 oder VB.Net ein einzelnes Formular mit einem (oder zwei) Knöpfen, den einen Knopf nennst du "Mach mal" und kopierst in die Click Prozedur die Sachen aus deinem Makro. Wenn du zusätzliche Funktionen oder Prozeduren hast kopierst du die mit in den Codebereich deines Formulars. Zwischen VBA und VB6 sind nur wenig unterschiede, da sollte das so einfach klappen. VB.Net ist doch schon etwas arg anders, da wäre es am Besten du schreibst das mit der Makrovorlage (dass du nicht alle API Kommandos neu suchen musst) in VB.Net neu, die HAPI Hilfe gibt dir sehr viele Beispiele auch in VB.Net Syntax Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
senfcola Mitglied
Beiträge: 5 Registriert: 18.08.2009
|
erstellt am: 18. Aug. 2009 16:23 <-- editieren / zitieren --> Unities abgeben:
Ich habe mittels GetObject die Verbindung zwischen VB und SolidWorks hergestellt. Dann testweise in einem leeren Teil die Ebene rechts ausgewählt. So weit so gut, mit solch einfachen Befehlen kann ich Solidworks von außen steuern. Konkret möchte ich ein DXF in ein leeres Teil als Skizze importieren. In der API-Hilfe finde ich "Import DXF File into Part Sketch Example (VB)". Kopiere ich diesen Code in ein Macro, funktioniert er, von außen (VB6) nicht. Schon bei "Dim importData As SldWorks.ImportDxfDwgData" schreit er, dass dieser benutzerdefinierte Typ nicht deklariert ist. Was mache ich falsch? Nachstehend exemplarisch der Anfang dieses Beispiels: Private Sub Form_Load() Set swApp = GetObject(, "SldWorks.Application") Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager Part.Extension.SelectByID2 "Ebene rechts", "PLANE", 0, 0, 0, False, 0, Nothing, 0 'Folgender Codeschnipsel ist direkt aus API-Beispiel herauskopiert
Dim filename As String Dim longerrors As Long Dim retVal As Boolean filename = "e:\samples\importdxfdwgdata\Draw3.DXF" Dim importData As SldWorks.ImportDxfDwgData Set importData = swApp.GetImportFileData(filename) importData.ImportMethod("") = SwConst.swImportDxfDwg_ImportMethod_e.swImportDxfDwg_ImportToPartSketch
... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 19. Aug. 2009 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für senfcola
Hallo ev. eine blöde Frage aber hast Du auch die entsprechenden Verweise für SWX in Dein Projekt hinzugefügt? also auf "SolidWorks 2009 Type library" "SolidWorks 2009 Constant type library" "SolidWorks 2009 Commands type library" ev. sind es andere Versionsnamen, falls Du nicht SWX 2009 verwendest
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1366 Registriert: 20.12.2003
|
erstellt am: 19. Aug. 2009 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für senfcola
|
senfcola Mitglied
Beiträge: 5 Registriert: 18.08.2009
|
erstellt am: 20. Aug. 2009 10:20 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von ad_man: Hallo senfcola (hast du das schon mal ausprobiert?? )
Ich hatte einfach das ewige "Dieser Benutzername wird bereits verwendet" satt. Diesen will sicher niemand! Danke für den Hinweis, habe mir das Skript gerade gezogen. Kann mir bitte noch jemand das Kennwort dafür verraten? Gruß Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 20. Aug. 2009 10:31 <-- editieren / zitieren --> Unities abgeben: Nur für senfcola
Hallo Markus, Zitat: Original erstellt von senfcola: Danke für den Hinweis, habe mir das Skript gerade gezogen. Kann mir bitte noch jemand das Kennwort dafür verraten?
Auf den Downloads sind keine Passworte, wirst du danach gefragt? Hast du das oben angelinkte Makro 42 aus der Tauschbörse runtergeladen? Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
senfcola Mitglied
Beiträge: 5 Registriert: 18.08.2009
|
erstellt am: 20. Aug. 2009 10:58 <-- editieren / zitieren --> Unities abgeben:
|
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 20. Aug. 2009 11:57 <-- editieren / zitieren --> Unities abgeben: Nur für senfcola
Hallo Markus, das PDF-Dokument kann jeder ohne Passwort lesen und ausdrucken. Es ist zwar gegen Änderung geschützt (was genau weis ich auch nicht mehr), aber das wichtigste ist für jeden erlaubt. Habe es gerade auch selber ausprobiert. ------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
senfcola Mitglied
Beiträge: 5 Registriert: 18.08.2009
|
erstellt am: 20. Aug. 2009 19:20 <-- editieren / zitieren --> Unities abgeben:
|