| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Visiativ Blog | Tipps & Tricks rund um SOLIDWORKS und 3DEXPERIENCE. , ein Kurs
|
Autor
|
Thema: Verlinkung von SWX Dateien (355 / mal gelesen)
|
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 19. Mai. 2025 12:24 <-- editieren / zitieren --> Unities abgeben:         
Moin zusammen. Wenn im Dateiexplorer ein Bauteil oder eine Baugruppe doppelt angeklickt wird, dann wird diese in einem laufenden Solidworks geladen. Sollte SolidWorks nicht gestartet sein, dann erfolgt auch ein automatischer Start und in die Sitzung wird das Bauteil und/oder die Baugruppe geladen. Alles so wie es soll und man es von anderen Programmen seit Jahren kennt. Unsere Bauteilverwaltung arbeitet mit Exceldateien. In diesen Tabellen werden Links eingefügt, welche auf die Dateien auf den Netzlaufwerken zeigen (Laufwerk oder UNC). Klickt man nun in der Exceltabelle auf einen dieser Links, sollte Solidworks gestartet werden, wenn es nicht schon läuft, und die Datei geöffnet werden. Scheinbar erfolgt dies über eine andere Einstellung in den Windowseinstellungen als direkt. Solidworks startet zwar, aber es werden keine Zusatzanwendungen in Solidworks geladen. Nach dem 2ten oder 3ten Ladevorgang stürzt Solidworks mit der Meldung "Systemzustand undefiniert" ab. Im Windows Taskmanager sind unzählige Solidworks Tasks am laufen. Die Datei liegt z.B. unter D:\TEST\TEST1.SLDPRT Unter dem Link in Excel steht D:\TEST\TEST1.SLDPRT
In der ExcelDatei wurde die Linkbasis geändert auf ".\", damit hier absolutet Pfade verwendet werden. Nach meinem Gefühl kann das nur ein fehlerhafter Eintrag in der Windows Registry sein, da hier die Verknüpfungen gesteuert werden. Da sich alle Solidworks Dateien im Windows Dateiexplorer, Totalcommander und Windowscommander einwandfrei öffnen lassen, kann es nur an der Verlinkung in Excel liegen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 19. Mai. 2025 14:06 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut: ...In diesen Tabellen werden Links eingefügt...
Kann ich nachvollziehen und würde das Öffnen auf einen Button mit Makro erledigen. Dann erspart man sich auch die lästige Sicherheits-Abfrage. Und wenn es für alle sein, leere Excel-Datei mit Makro erzeugen und als Excel-Addin speichern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1492 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 19. Mai. 2025 14:08 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Hallo, ich habe es gerade mit SWX2024 SP5 und Microsoft® Excel® für Microsoft 365 MSO (Version 2408 Build 16.0.17928.20538) 64 Bit unter Windows 11 Pro 24H2 getestet. Bei mir funktioniert es einwandfrei und ich bekomme auch nicht etliche SWX -Tasks angezeigt. Im Anhang die verwendete Excel-Datei und die Dateien, die ich unter D:\Temp abgelegt habe. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 19. Mai. 2025 14:15 <-- editieren / zitieren --> Unities abgeben:         
Das ganze läuft tatsächlich über ein Makro in Solidworks ab. Es wird eine Excel Datei erzeugt, welche mehrere Tabellen enthält. Z.B. Kaufteile, Ersatzteile, Pneumatikteile, usw. Da bei uns alles zentral im Netzwerk liegt und über UNC Pfad erreichbar ist, wird zu jedem Bauteil ein Link erzeugt. Super bequem! Excel Liste aufmachen und ggf. auf den Link klicken. Wer kein Solidworks hat, bei dem wird es im eDrawing geöffnet. Super Lösung für z.B. die Werkstatt. Aber..... Löst immer noch nicht mein Problem mit Excel und Solidworks. Finde die Verknüpfung in der Windows Registry nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 19. Mai. 2025 14:24 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut:
Das ganze läuft tatsächlich über ein Makro in Solidworks ab.
Dann liegt die Ursache im Makro und das Beispiel von ad_man läuft genauso bescheiden bei mir. Hier: Windows 11 24H2, SolidWorks 2023 SP5 mit Office 365 (Version 2504 Build 16.0.18730.20122) 64 Bit Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 19. Mai. 2025 15:04 <-- editieren / zitieren --> Unities abgeben:         
Es liegt nicht am Makro, weil: * das Beispiel hier auch nicht funktioniert * wenn ich in Excel manuell einen Link einfüge, auch dieser gleiches hervor ruft. Zudem funktioniert der Link ja "eigentlich", da Solidworks und Bauteil geöffnet werden. Wäre der Link fehlerhaft, würde beides oder eines nicht funktionieren.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1492 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 19. Mai. 2025 15:11 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Gegenfrage: Hat es schon mal funktioniert? Ich habe z.B. auf eine ältere Office-Version zurückgewechselt, weil ich massive Probleme beim Mailschreiben hatte. Ein Rat war, auf den halbjährlichen Enterprise-Kanal von Office zu wechseln, was mein Problem mit Outlook behoben hat. NACHTRAG: Habe gerade auf die aktuelle Version von Office gewechselt. Damit funktioniert es bei mir immer noch. Allerdings habe ich keine Serverumgebung sondern eine Standalone-Lösung. Ich könnte mir vorstellen, dass bei euch Gruppenrichtlinien greifen. ------------------ ========== Gruß Andreas ========== [Diese Nachricht wurde von ad_man am 19. Mai. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3837 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 19. Mai. 2025 21:00 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut: Es liegt nicht am Makro, weil: * das Beispiel hier auch nicht funktioniert
Was genau ist "hier"? Dein Rechner, die Mitglieder Deiner Richtliniengruppe oder jeder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 06:17 <-- editieren / zitieren --> Unities abgeben:         
Beispiel: Teil1 im Dateiexplorer doppel angeklickt. Alle Zusatzanwendungen werden geladen. (siehe Bild 1) Hyperlink in einer Excelzelle erstellt. (Siehe Bild 2) Hyperlink angeklickt. Solidworks startet, aber es fehlen fast alle Zusatzanwendungen. (siehe Bild 3) Nach dem Teil1 wiederholt oder Teil2 in Excel angeklickt wird, stürtzt Solidworks ab. Im Taskmanager tauchen alle Prozesse von Solidworks mehrfach auf. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 06:19 <-- editieren / zitieren --> Unities abgeben:         
|
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 07:22 <-- editieren / zitieren --> Unities abgeben:         
Zusätzlich Frage: Gibt es eine Möglichkeit, dass Solidworks in den Stücklisten den Dateinamen incl. Erweiterung (SLDPRT,SLDASM) ablegt? [Diese Nachricht wurde von HOJAhelmut am 20. Mai. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1492 Registriert: 20.12.2003 SolidWorks 2024 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 20. Mai. 2025 08:03 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Moin, du solltest für deine Zusatzfrage ein neues Thema aufmachen, da die beiden Sachen nichts miteinander zu tun haben. Bleibt immer noch die Frage, ob es schon einmal funktioniert hat...? ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 20. Mai. 2025 08:31 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut: Beispiel: ---
Alles korrekt, dann ist die Frage zu klären, wie genau Excel den Hyperlink verarbeitet. Für meine Kollegen habe ich kleines Hilfsprogramm geschrieben, welches das Öffnen von SolidWorks-Dateien direkt aus unserem ERP-System ermöglicht und habe es nicht über Hyperlinks gelöst. 1.) Programm startet 2.) Aktive Instanz von SolidWorks "Marshal"en. 3.) Prüfen, ob nicht schon zufällig geöffnet und falls ja, als aktives Dokument setzen. Falls Punkt 3 nicht zutrifft: 4.) Zeichnungs-Nr. im PDM suchen 5.) SolidWorks lädt die gefundene Zeichnung. Ich würde mir nicht die Mühe machen, die Registry oder sonst etwas zu verbiegen. Das darf man dann auf jedem Arbeitsplatz durchführen und muss mit jedem Windows-/Office-Update bangen, dass nach dem Update noch alles läuft. Daher meine Empfehlung: VBA-Makro ==> als Excel-Addin speichern ==> Auf jedem Rechner das Addin setzen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 08:55 <-- editieren / zitieren --> Unities abgeben:         
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
     
 Beiträge: 3354 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 20. Mai. 2025 12:32 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut: Denke auch, dass das ein alleiniges Excel Problem ist und mit Solidworks eigentlich nichts zu tun hat.Aber der Ansatz mit einem VBA Makro in Excel ist schon nicht schlecht.
Hallo, bei mir ist es mit SWX2021 nachvollziehbar. Bei einem laufenden Solidworks, wird die Datei darin geöffnet. ohne laufendes SolidWorks wird eins gestartet, aber ebenfalls nur die Hälfte der Zusatzanwendungen gelistet. Da die Zusatzanwendungen regelrecht ausgelistet sind, nehme ich an, dass irgendwie das profil beim Starten von SolidWorks nicht richtig ausgelesen wird. evtl genügt, wenn du einen Startbutton anlegst, um einmalig SolidWorks zu starten, danach funktionieren die Links dann bei mir zumindest. Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3837 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 20. Mai. 2025 12:59 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
|
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 13:20 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Christian_W:
Bei einem laufenden Solidworks, wird die Datei darin geöffnet. ohne laufendes SolidWorks wird eins gestartet, aber ebenfalls nur die Hälfte der Zusatzanwendungen gelistet. Da die Zusatzanwendungen regelrecht ausgelistet sind, nehme ich an, dass irgendwie das profil beim Starten von SolidWorks nicht richtig ausgelesen wird. evtl genügt, wenn du einen Startbutton anlegst, um einmalig SolidWorks zu starten, danach funktionieren die Links dann bei mir zumindest.
Hatte die Tage schon einen anderen Weg versucht: Die Excel Datei wird in Solidworks mit einem Makro erzeugt und mit dem Inhalt einer Stücklistenvorlage gefüllt. Aus dem Foldername und Filename der einzelnen Bauteile wird der Hyperlink in die Excel Zelle geschrieben, SLDPRT oder SLDASM wird entsprechend angehangen.
Hier hatte ich nun versucht die komplette Startzeile für Solidworks aufzubauen. SOLIDWORKS.EXE Foldername\Filename.sldprt Leider ist die Solidworks.exe nicht mehr im Suchpfad von Windows enthalten. Hier müsste die Zeile dann den absoluten Pfad zur Solidworks.exe enthalten. Da es hier mehrere PCs mit mehreren Solidworks Versionen gibt, nicht auf meinem TestPC, funktioniert das nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 20. Mai. 2025 13:22 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von Torsten Niemeier: Könnte es eine Rolle spielen, ob SldWorks_fs grundsätzlich läuft oder nicht?
Nein. Menüpunkt "Zusatzanwendungen" ist ausgegraut, unabhängig davon, ob sldworks_fs.exe aktiv ist oder nicht. Dieses Verhalten von SolidWorks kenne ich nur aus der Programmierung, wenn eine SolidWorks-Instanz mit New gestartet wird. Deswegen nehme ich es auch nicht und starte die exe direkt und marshalle anschließend. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 20. Mai. 2025 14:34 <-- editieren / zitieren --> Unities abgeben:         
Neuer Versuch, allerdings in Excel. Code Idee stammt aus dem Inet. Excel Tabellen Inhalt: B2 --> Test G2 --> D:\CAD\test.sldprt Option Explicit Const ColLink = "B" 'Text für Doppelklick Const ColName = "G" 'Pfad und Name der Datei Const RowStart = 2 'Erste Zeile für Makro Const Solidworks = "C:\Program Files\SOLIDWORKS\SOLIDWORKS (2)\SLDWORKS.exe" Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean) Dim sFile As String, sPage As String, sCmdLine As String If Not Application.Intersect(Columns(ColLink), Target) Is Nothing Then If Target.Row >= RowStart And Cells(Target.Row, ColName).Text <> "" Then Cancel = True sFile = Cells(Target.Row, ColName).Text With CreateObject("Scripting.FileSystemObject") If .FileExists(sFile) Then If .FileExists(Solidworks) Then sCmdLine = Chr(34) & Solidworks & """ """ & sFile & Chr(34) CreateObject("WScript.Shell").Run sCmdLine Else MsgBox "SolidWorks nicht gefunden!", vbExclamation, "Fehler . . ." End If Else MsgBox "Datei nicht gefunden!", vbExclamation, "Fehler . . ." End If End With End If End If End Sub
Problem an der Lösung: Es wird nicht kontrolliert, ob Solidworks schon läuft und mit jedem Doppleklick eine neue Instanz gestartet. Ansonsten funktioniert alles :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 20. Mai. 2025 15:01 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Zitat: Original erstellt von HOJAhelmut:
Code:
sCmdLine = Chr(34) & Solidworks & """ """ & sFile & Chr(34)
Probiere folgendes aus:
Code:
sCmdLine = """ & sFile & """
Das sollte in etwa einem Doppelklick im Explorer entsprechen. Wir arbeiten in VBA gerne mit ShellExecute Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 21. Mai. 2025 06:13 <-- editieren / zitieren --> Unities abgeben:         
|
nahe Ehrenmitglied
    
 Beiträge: 1793 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: 21. Mai. 2025 06:21 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
Hallo Helmut, versuch doch mal Call CreateObject("Shell.Application").ShellExecute("Pfad-zu-SWX -Datei-inkl-Dateiname") Damit wird die mit der Dateierweiterung verknüpfte Anwendung geöffnet. Bei mir wird auch keine 2. Instanz geöffnet, wenn ich eine andere Datei damit öffne. Auf einem Rechner ohne SWX mit eDrawings, sollte dann eDrawings geöffnet werden. PS bei mir ist der "SolidWorks Lauchner" mit den SWX Dateien verknüpft. Könnte sein, dass das auch einen Einfluss darauf hat, ob eine 2. SWX Instanz geöffnet wird. (ist aber nur eine Vermutung, wissen tu ich es nicht) ------------------ Grüße Heinz [Diese Nachricht wurde von nahe am 21. Mai. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HOJAhelmut Mitglied

 Beiträge: 16 Registriert: 17.04.2025
|
erstellt am: 21. Mai. 2025 06:59 <-- editieren / zitieren --> Unities abgeben:         
So, das Problem konnte nun gelöst werden. Daher möchte ich den Code auch nicht vorenthalten. Problem liegt definitiv nicht an SolidWorks, sondern an der Art und Weise wie die Dateien aus Excel aufgerufen werden. Folgender Code läuft bei mir nun einwandfrei. Zeilen und Spalten werden entsprechend den Tabellenblättern angepasst. Option Explicit Const ColLink = "B" 'Text für Doppelklick, es gibt keine farbliche Unterscheidung wie z.B. bei Hyperlinks Const ColName = "I" 'Pfad und Name der Datei, liegt bei mir immer sehr weit rechts Const RowStart = 4 'Erste Zeile für Makro, um z.B. Kopfzeilen auszulassen
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean) Dim sFile As String, sPage As String, sCmdLine As String If Not Application.Intersect(Columns(ColLink), Target) Is Nothing Then If Target.Row >= RowStart And Cells(Target.Row, ColName).Text <> "" Then Cancel = True sFile = Cells(Target.Row, ColName).Text With CreateObject("Scripting.FileSystemObject") If .FileExists(sFile) Then If .FileExists(Solidworks) Then sCmdLine = Chr(34) & sFile & Chr(34) CreateObject("WScript.Shell").Run sCmdLine Else MsgBox "SolidWorks nicht gefunden!", vbExclamation, "Fehler . . ." End If Else MsgBox "Datei nicht gefunden!", vbExclamation, "Fehler . . ." End If End With End If End If End Sub Viel Spaß ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
   
 Beiträge: 1106 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 21. Mai. 2025 07:30 <-- editieren / zitieren --> Unities abgeben:          Nur für HOJAhelmut
|