| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| AMB 2024 |
Autor
|
Thema: vb.net - Probleme beim Einstieg (2741 / mal gelesen)
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 24. Jun. 2018 11:05 <-- editieren / zitieren --> Unities abgeben:
Hallo, wir haben 2 VBA-Makros, welche unter anderem auf den PDM-Workgroup Tresor zugreifen, tagtäglich im Einsatz. Workgroup ist ab SW2017 Geschichte und wir müssen umsatteln. Wir haben vor, auf PDM-Professional zu wechseln. Etwas schockiert musste ich feststellen, dass PDM-Professional kein VBA unterstützt, dafür vb.net. Damit hatte ich eigentlich nicht gerechnet, da die meisten Makros unter SW in VBA geschrieben werden. Bezogen auf SW habe ich auch nur VBA Kenntnisse, was auch Thema in der API Schulung war. vb.net wurde nur am Rande erwähnt. Mit Visual Studio Express habe ich zwar schon 2 kleinere Programme geschrieben, die haben aber nichts mit SW zu tun. Nun habe ich mich dieses WE mit dieser Thematik auseinandergesetzt. Im englischsprachigen Schulungsbuch API Fundamentals SW 2015 gibt es genau ein Beispiel für vb.net. Allerdings wird hier mit SW2015 und Visual Studio 2010 gearbeitet. Ich habe SW2017 und Visual Studio Express 2017. Was habe ich bisher gemacht: - die API SDK von SW2017 installiert - das Beispiel SwVBAddin1 kopiert und in Visual Studio Express 2017 geöffnet - das Add-In wurde konvertiert - dann habe ich die Verweise gerade gebogen (z.B. SolidWorks.Interop.sldworks.dll) - dann habe ich aus der Registrie den SldWorks.Application Schlüssel für SW2017 geholt (Bild 1) - diesen Schlüssel habe ich im Makro eingetragen (ich vermute, dass der da hin soll) (Bild 2) Beim Debugging bekomme ich eine Fehlermeldung (Bild 2) Da wird der Pfad zu SW bemängelt. (Leider wird der nicht kpl. dargestellt) Im ganzen Makro finde ich nirgend wo eine Pfadangabe, welche ich korrigieren könnte. Möchte ich das Add-In erstellen, bekomme ich ebenfalls eine Fehlermeldung (Bild 3) Wer kann mir bei den nächsten Schritten behilflich sein? Mein Ziel ist, meine beiden VBA Makros nach vb.net zu übertragen. Ein schönes WE noch, Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SLDW-FEM Mitglied Simulations-Ingenieur
Beiträge: 640 Registriert: 21.02.2005 Solidworks 2017+2019+20+22 SpaceClaim Windows 11 64bit HP-ZBook 32gbRAM NVIDIA
|
erstellt am: 24. Jun. 2018 14:38 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi Bitte prüfe deinen Debug-Pfad! Auf deinem debugging...-Bild sehe ich einen doppelten und einfache backslash! Hast du vielleicht mehrere SWX-versionen installiert? PS: Du bist nicht alleine mit dieser Baustelle! (und VBA ist ja schon seit 2005 abgekündigt, aber wir haben auch "laufende Altlasten") Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 24. Jun. 2018 17:56 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von SLDW-FEM:
Bitte prüfe deinen Debug-Pfad!
Hallo, wenn du mir sagst wo ich den überprüfen kann? Ja ich habe SW2016 bis SW2018 installiert. Das kann man in Bild 1 erkennen. Ich habe eher den Eindruck, dass der bemängelte Pfad der alte Pfad aus dem Beispielmakro von SW2015 ist. Den gibt es natürlich bei mir nicht. Deshalb frage ich mich ja, wie das und wo auf meine Installation und SW2017 umgebogen werden kann. Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, Der Debug Pfad ist bei dem Hauptprojekt (RMT Eigenschaften) hinterlegt. Die Meldung mit dem Initialisieren kommt wenn du dein Addin in Solidworks laden willst?! Dann führe mal das aus: regsvr32 /s "C:\Dein_Pfad\Dein_Addin.dll" c:\windows\microsoft.net\framework64\v4.0.30319\regasm /tlb /codebase "c:\Dein_Pfad\Dein_Addin.dll" Gruss, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 25. Jun. 2018 18:53 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Carsten1210: Die Meldung mit dem Initialisieren kommt wenn du dein Addin in Solidworks laden willst?!
Hallo Carsten, danke für deine Ratschläge. Nein, die Meldung mit dem Initialisieren kommt, wenn ich in VSE 2017 auf Erstellen gehe. Komischerweise kommt diese Meldung jetzt nicht mehr. Der Debug Pfad fehlt bei mir in der Anwendung, siehe Bild 1. Schon Eigenartig, gibt es da Optionen? Das Add-In konnte ich jetzt mit deinen Registriebefehlen in SW anmelden. siehe Bild 2 Allerdings bleibt das Häkchen bei mit Start ausführen nicht aktiv, wenn ich SW neu starte. Und außerdem taucht das Makro nicht im Menü Extras auf, um zu testen, ob es auch funktioniert. Bin für weitere Ratschläge dankbar. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 18:58 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 25. Jun. 2018 19:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten, aber gerne doch. Wie oben beschrieben, ist es nach VS Express 2017 importiert. Aber im BackUp Ordner müsste das Original von 2010 sein. Danke und Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 20:12 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, welche Version vom Visual Studio 2017 hast du installiert?! Ich habe in der Firma die Pro Version und hier die Community Version installiert und bei beiden kann ich unter debuggen direkt den Pfad zum starten bei deinem Porjekt angeben. Wusste ehrlich gesagt nicht mal das noch eine Express Version gibt... Du könntest schauen ob du die Toolbar "Erstellen" einblenden kannst. Dann kannst du das Projekt erstellen, Solidworks Starten und dich dann an den Prozess anhängen. Gruss, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 20:22 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, Du hast in deinem Projekt eine Datei namens "SwVBAddin1.vbproj", dort ist der Startpfad hinterlegt. Ich habe dein Addin mal bei mir (für SWX 2016 kompiliert) und es wurde noch zusätzlich die Datei "SwVBAddin1.vbproj.user" in deinem Projekt erstellt. In dieser Datei steht nur der Startpfad drin und der überschreibt die Einstellungen der anderen Datei. Dein Menü taucht bei mir unter Extras auf und auch die Haken bei der Zusatzanwendung bleiben nach einem Neustart erhalten. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 25. Jun. 2018 20:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten, meine VS Version kannst du im Bild sehen. Ist die Community Version gleichrangig mit der Express Version? Muss ich jetzt diese Datei "SwVBAddin1.vbproj" mit dem Editor öffnen und manuell anpassen? Eigenartig, weiter unten tauchen die Referenzen unter dem richtigen Pfad auf, also wurde diese Datei bereits angepasst. Muss ich mal testen. Danke für deine Bemühungen. Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 20:55 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 25. Jun. 2018 21:07 <-- editieren / zitieren --> Unities abgeben:
Hallo, also, mit dem Editor habe ich den Pfad angepasst. In VS Express startet jetzt SW2017 wenn ich Debugging starte. Dann habe ich neu veröffentlicht und die Dateien wieder in den SW-Installpfad kopiert. In SW2017 kommt das Makro noch nicht und der Haken bleibt nicht stabil. Muss ich jetzt die neue DLL Datei erneut registrieren? Gruß, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 21:17 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 25. Jun. 2018 21:27 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Carsten1210:
Hast du das registrieren Mal als Admin ausgeführt?! Du kannst dein addin auch über Datei öffnen Laden und schauen ob das klappt.
Hi, ich habe als Kontoanmeldung Adminrechte, habe ich die dann nicht automatisch beim registrieren? Wenn ich das App als dll lade, stürzt SW2017 ab. Wenn ich ehrlich bin, ist mir dieses Makro von SolidWorks eigentlich egal. Es war nur eines zum Üben, um überhaupt mal zu gucken, wie das geht. Das finde ich aber ganz schön überfrachtet. Hättest du für mich ein Minimalprojekt, wo nur das wichtigste wie die Anbindung an SW und die Verweise drin sind? Dann könnte ich Stück für Stück meinen eigenen Code übertragen und schauen, ob ich die Funktionen zum laufen bekomme. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 25. Jun. 2018 21:41 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 26. Jun. 2018 12:14 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, In dem Beispielprojekt sind folgende Klassen enthalten: AssemblyInfo.vb ==> Diese werden dir bei den Eigenschaften von deinem Projekt angezeigt. EventHandling.vb ==> Falls du abhängig von irgendwelchen Events etwas ausführen willst brauchst du diese. Selbst wenn du nicht auf Events reagieren willst solltest du die meines Erachtens drin lassen. USERPMPage.vb ==> Beispiel Propertymanagerpage. PMPHandler.vb ==> Die Eventhandler zu der Propertymanagerpage. SWAddin.vb ==> Unter UI Methods findest du die Zuweisung zum Commandmanager, dort kannst du auch mitgeben ob für die Befehle die zum Commandmanager hinzugefügt werden auch eine Toolbar und / oder eine Menü erstellt werden sollen. Was bei dem jeweiligen Befehl ausgeführt wird findest du dann unter UI Callbacks. Menüeinträge kann man auch separat (unabhängig) von dem Commandmanager erstellen. Hoffe das reicht dir und ist halbwegs verständlich. Gruß, Carsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 26. Jun. 2018 20:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten, nochmals besten Dank für deine Mühen. Ich werde mir das jetzt in Ruhe anschauen und am WE mir mal die Einführungen auf YouTube antun. Evtl. installiere ich auch noch deine Version von VS. Komischerweise stürzt doch SW2017 bei mir ab. Nun habe ich es mal mit SW2018 probiert, und da ist es ebenfalls angemeldet und es funktioniert sogar. Dabei habe ich nichts anderes mehr gemacht, der Haken bleibt gesetzt. Inzwischen habe ich dieses Makro erfolgreich nach VSTA portiert. http://ww3.cad.de/foren/ubb/Forum2/HTML/026683.shtml Es funktioniert unter SW2017 und SW2018. Es lädt sogar eine Zeichnung aus dem Tresor Workgroup, obwohl SW2018 den gar nicht mehr unterstützt. Nun müsste ich bei diesem Makro den nächsten Schritt gehen und den Tresorzugriff auf PDM Professional umschreiben. Aber eins nach dem anderen. Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) 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: 27. Jun. 2018 07:27 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, also bei mir funktioniert der Zugriff auf EPDM auch von VBA aus. Zumindest unter SWX 2016 Anbei ein kleines Makro das die Benutzergruppen eines Benutzers zurückgibt Hinweise: Du musst die beiden Konstanten VaultName und UserName anpassen und einen Verweis auf "PDMWorks Enterprise 2016 Type Library" setzen Dim Vault As EdmVault5
Const VaultName = "VVVVV" Const UserName = "XXXXXX" Sub init() Set Vault = CreateObject("ConisioLib.EdmVault") Vault.LoginAuto VaultName, 0 End Sub Function BelongsToGroup(UserName As String) As Variant Dim userMgr As IEdmUserMgr7 Dim user As IEdmUser8 Dim gr() As Variant Dim erg As Variant Dim i As Integer Set userMgr = Vault.CreateUtility(EdmUtility.EdmUtil_UserMgr) Set user = userMgr.GetUser(UserName) If user Is Nothing Then BelongsToGroup = erg Exit Function End If user.GetGroupMemberships gr i = LBound(gr) For i = 0 To UBound(gr) Dim gro As IEdmUserGroup7 Set gro = gr(i) If i = 0 Then ReDim erg(i) Else ReDim Preserve erg(i) End If erg(i) = gro.Name Next i BelongsToGroup = erg End Function Sub main() Dim erg As Integer Dim erg1 As Variant Dim text1 As String init Set erg1 = Nothing erg1 = BelongsToGroup(UserName) If Not IsEmpty(erg1) Then For i = LBound(erg1) To UBound(erg1) text1 = text1 + erg1(i) + Chr(10) Next i MsgBox text1, vbOKOnly, "Benutzer " & UserName & " gehört zu folgenden Gruppen" End If End Sub
------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 27. Jun. 2018 22:13 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von nahe:
also bei mir funktioniert der Zugriff auf EPDM auch von VBA aus. Zumindest unter SWX 2016
Hallo Heinz, du verwirrst mich, machst mir aber Hoffnung, dass ich evtl. doch nicht alles Umprogrammieren muss. Warum steht dann in der API-Hilfe das nicht drin? (Siehe Foto) Im Geschäft habe ich die "PDMWorks Enterprise 2017 Type Library". Wahrscheinlich, weil ich da beim Installieren schon mal PDM-Standard mit installiert habe. Zu Hause fehlt die noch, aber das ist ja kein Problem. Allerdings habe ich das PDM noch nicht eingerichtet und funktionstüchtig, und die Professional Version bekommen wir erst noch. Du hast mir hier ja ein tolles Beispiel angehängt, besten Dank. Die Tresor-Anmeldung ist ja ähnlich wie bei Workgroup. Leider kann ich das erst im September im Geschäft testen. Mein Makro macht bezogen auf den Tresor eigentlich nur 4 Sachen. - Sucht im Tresor gezielt nach einer Zeichnung. - schaut nach dem letzten Speicherdatum - vergleicht mit einer evtl. lokalen Zeichnung - und checkt gegebenenfalls aus Falls du zufällig zu diesen Abfragen noch passende Beispiele hättest, dann wäre ich fast schon durch mit meinen Anpassungen. Viele Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 28. Jun. 2018 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 29. Jun. 2018 02:15 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Carsten1210:
Auf welcher Basis willst du nach der Zeichnung im Tresor suchen (Dateinamen, Zeichnungsnummer oder was auch immer).
Hallo Carsten, danke schön für die Beispiele. Sind etwas umfangreicher, muss ich mir am WE genauer anschauen. Ich suche bisher nach dem Dateinamen der Zeichnung. Mein bisheriger Code in Auszügen:
Code:
Sub WorkgroupPDM(ByRef referencedDoc As String) Dim Options As PDMWorks.PDMWSearchOptions Dim Results As PDMWorks.PDMWSearchResults Dim Result As PDMWorks.PDMWSearchResult Dim i As Integer Dim cnt As Integer Dim doc As PDMWDocument Dim ZuletztGespeichert As Date 'anmelden an PDM-System Set Options = Connection.GetSearchOptionsObject 'wenn keine Suchoptionen vorhanden sind, dann nimm diese If Not Options Is Nothing Then Options.IgnoreCase = True Options.IgnoreLinks = True Options.IncludeHiddenDocuments = True Options.SearchConfigSpecificProperties = False Options.SearchOnlyChildrenOf = "" Options.SearchCriteria.AddCriteria pdmwOr, pdmwDocumentName, "", pdmwContains, referencedDoc 'Was wurde bei der Suche gefunden? Set Results = Connection.Search(Options) If Not Results Is Nothing Then cnt = Results.Count For i = 0 To cnt - 1 Set Result = Results(i) Set doc = Connection.GetSpecificDocument(Result.Name) 'Zeichnungsname mit Extender im Tresor ZuletztGespeichert = doc.DateModified 'Speicherdatum der Tresorzeichnung Next i End If End If
Liebe Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) 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: 29. Jun. 2018 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hallo Andi, da wir auch erst beim Umstieg auf EPDM sind und wahrscheinlich erst im Herbst produktiv umsteigen, habe ich auch keine Beispiele, die für Deine Anforderungen passen. Wenn Du nach dem Dateinamen suchst wirst Du wohl auch das Verzeichnis kennen dann könntest mit "GetFileFromPath Method (IEdmVault5)" das FileObjekt suchen. Wie Du dann aber an das Datum kommst, habe ich mir nicht angesehen. Wahrscheinlich über die Version ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 29. Jun. 2018 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, hab mal was aus meinem Addin rausgesucht bezüglich der Suche:
Code: Dim vaultName As String = "DeinTresor"'create a vault connection and log in Try v.LoginAuto(vaultName, 0) Catch ex As Exception End Try 'create the search interface and initial settings Dim search As IEdmSearch5 search = v.CreateSearch search.FindFiles = True search.FindFolders = False search.FileName = "%.slddrw" 'collect any duplicates found in EPDM Dim duplicates As New Collection 'run the search for this file name search.FileName = f.Name Dim sr As IEdmSearchResult5 sr = search.GetFirstResult If Not sr Is Nothing Then 'found a file in the vault with the same name duplicates.Add(f.Name) 'optionally, get a local copy of the file Dim eFile As IEdmFile5 eFile = sr 'get the file from the search result If System.IO.File.Exists(sr.Path.ToString) Then Else eFile.GetFileCopy(0) 'get the latest file copy End If
Ich muss aber zugeben das ich teilweise auch direkt per SQL-Abfrage die Informationen aus dem PDM hole... Das ist manchmal schneller als über die API. Was hast du denn mit dem Datum der Zeichnung vor?! Vielleicht hilft dir das weiter: Get File Information Example (VB.NET) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 29. Jun. 2018 16:25 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Carsten1210:
Was hast du denn mit dem Datum der Zeichnung vor?
Hallo Carsten, dieser Schnipsel sieht sehr vielversprechend aus, danke schön. Das werde ich mal testen, was ich aber erst nach der Installation von PDM-Prof kann. Wann das sein wird, weiß ich noch nicht. Dieses Datum vergleiche ich mit der lokalen Zeichnung und lese davon ab, ob es Neuer oder Älter ist. Nach Bedarf wird dann vom Tresor ausgecheckt und die lokale Zeichnung aktualisiert. Eine direkte Abfrage, ob Neuer / Gleich / Älter würde mir genauso helfen. Meinen bisherigen Code für Workgroup habe ich mir auch irgendwo als Schnipsel geholt. Da wurde es über das Datum gelöst. Grüße, und ein schönes WE auch, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) [Diese Nachricht wurde von Andi Beck am 29. Jun. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1358 Registriert: 24.07.2002 AutoCAD ACA 2019 Solidworks 2021 Sp5.1 Enterprise PDM 2021 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Dell Ultrasharp U2415 Dell M4800
|
erstellt am: 06. Jul. 2018 06:21 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Hi Andi, Arbeitet ihr innerhalb von Solidworks mit der Option "Immer mit neuester Version arbeiten"?! In dem Fall kann man hingehen und nur prüfen ob die Datei vorhanden ist, wenn nicht die Datei holen. Das immer die neueste geholt wird macht dann das Addin vom PDM. Ansonsten würde ich wahrscheinlich über die Revisionsnummer gehen und prüfen ob die lokale Datei einen kleinere oder gleiche Nummer wie die im PDM hat. Wir arbeiten immer mit der neuesten Version Option und dager habe ich das bisher nicht benötigt. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 06. Jul. 2018 07:09 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Carsten1210: Hi Andi,Arbeitet ihr innerhalb von Solidworks mit der Option "Immer mit neuester Version arbeiten"?! Gruß, Carsten
Hallo Carsten, ja, wir Arbeiten mit der Option "Immer mit neuester Version arbeiten". Unter Workgroup müssen wir selber danach schauen, dass die lokalen Kopien den aktuellen Stand haben. Da kann es natürlich sein, dass lokal eine ältere Version vorhanden ist. Deshalb mache ich ja in meinem Makro den Vergleich, und hole nach Bedarf die neueste Version aus dem Tresor. Wenn das unter PDM Prof jetzt automatisch geht, dann ist das eine Prima Funktion. Dann muss man tatsächlich nur noch hingehen und prüfen, ob die Datei vorhanden ist, wenn nicht, die Datei holen. Über die Revisionsnummer gehen reicht in unserem Fall nicht, da wir auch Revisionen überschreiben. Wir nennen das Retousche. Wir erhöhen die Revision, wenn tatsächlich eine Änderung erfolgt ist. Wenn ein Maß auf der Zeichnung vergessen wurde, machen wir das nicht. Momentan habe ich jetzt im Geschäft die SW2018 mit PDM Prof installiert, und gestern konnte ich Probehalber das erste Mal ein paar Dateien einchecken. Mein Makro fange ich gerade an, anzupassen. Die Anmeldung an den Tresor funktioniert bereits. Wenn ich heute Zeit dazu habe, versuche ich den nächsten Schritt zu gehen. Das ganze noch unter VBA, was ja eigentlich nicht unterstützt werden soll. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |