SolidWorks API – OpenDoc6 erklärt

Hallo ihr alle

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

Hat jemand eine Erklärung?

 

Springen

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

 

Hallo

Es sind die Funktionen von SW, die bestimmen, welche Art von Datei geöffnet ist.

Bei APIs können Sie die richtigen Funktionen verwenden, da jeder Dateityp unterschiedliche Aktionen zulässt.

Ich verstehe, dass wir angeben müssen, welche Art von Datei wir öffnen möchten, aber was ich nicht verstehe, ist, dass ich muss:

  1. Legen Sie den TEILE-Typ  fest, um eine BAUGRUPPE zu öffnen
  2. Legen Sie den BAUGRUPPENTYP  fest, um ein TEIL zu öffnen

 

Hallo

Falsch gelesen, seltsam.

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...