Ich bin auf einen Spinner mit der OpenDoc6-Funktion gestoßen. In einem Teil meines Makros versuche ich, jede Komponente meiner Assembly nacheinander in der Reihenfolge des Feature-Managers zu öffnen. Was ich nicht verstehe, ist, dass ich den Typ des zu öffnenden Dokuments als Baugruppe angeben muss, um ein Teil zu öffnen und umgekehrt, um ein Teil zu öffnen, sonst wird das Dokument nicht geöffnet.
Wenn FileTyp = swDocPART dann swApp.OpenDoc6 CompPath, swDocASSEMBLY, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings Ende, wenn
Wenn FileTyp = swDocASSEMBLY dann swApp.OpenDoc6 CompPath, swDocPART, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings Ende, wenn
Dies ist die normale Funktionsweise der OpenDoc6-Methode. Siehe hier: http://help.solidworks.com/2016/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~opendoc6.html
Fehler oder fehlerhafte Deklaration von SW-Dokumenttypen.
Wie wird die Art des zu öffnenden Dokuments bestimmt?
Normalerweise sollte es so sein:
' Bestimmen Sie den Typ der SOLIDWORKS Datei anhand der Dateiendung Wenn InStr(LCase(sDocFileName), "sldprt") > 0, dann nDocType = swDocPART ElseIf InStr(LCase(sDocFileName), "sldasm") > 0 Dann nDocType = swDocASSEMBLY ElseIf InStr(LCase(sDocFileName), "slddrw") > 0 dann nDocType = swDocDRAWING Oder ' Wahrscheinlich keine SOLIDWORKS Datei nDocType = swDocNONE ' Die Datei kann also nicht geöffnet werden Sub beenden Ende, wenn
Es ist dasselbe wie das Aufrufen einer benutzerdefinierten Eigenschaft in einer Zeichnungsnachricht: $PRPSHEET, ob sie im PRT/ASM definiert ist, $PRP ob sie im DRW definiert ist...