Natknąłem się na dziwaka z funkcją OpenDoc6. W części makra staram się otwierać kolejno każdy komponent mojego zespołu w kolejności menedżera operacji. To, czego nie rozumiem, to to, że muszę określić typ dokumentu do otwarcia jako złożenie, aby otworzyć część i odwrotnie, aby otworzyć część, w przeciwnym razie dokument się nie otworzy.
Jeśli FileTyp = swDocPART Then swApp.OpenDoc6 CompPath, swDocASSEMBLY, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings Zakończ jeżeli:
Jeśli FileTyp = swDocASSEMBLY to swApp.OpenDoc6 CompPath, swDocPART, swOpenDocOptions_Silent, ConfigName, longstatus, longwarnings Zakończ jeżeli:
Jest to normalny sposób działania metody OpenDoc6. Zobacz tutaj: http://help.solidworks.com/2016/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~opendoc6.html
W jaki sposób ustala się rodzaj dokumentu do otwarcia?
Normalnie powinno to wyglądać tak:
' Określ typ pliku SOLIDWORKS na podstawie rozszerzenia pliku Jeśli InStr(LCase(sDocFileName), "sldprt") > 0 Następnie nDocType = swDocPART ElseIf InStr(LCase(sDocFileName), "sldasm") > 0 Następnie nDocType = swDocASSEMBLY ElseIf InStr(LCase(sDocFileName), "slddrw") > 0 Następnie nDocType = swDocDRAWING Inaczej Prawdopodobnie nie jest to plik SOLIDWORKS nDocType = swDocNONE ' Więc nie można otworzyć pliku Wyjdź z subwoofera Zakończ jeżeli:
Działa to tak samo, jak wywołanie właściwości niestandardowej w komunikacie rysunku: $PRPSHEET, jeśli jest zdefiniowana w PRT/ASM, $PRP jeśli jest zdefiniowana w pliku DRW...