Witam
Chciałbym wykonać:
Aktywny skoroszyt.Zamknij
tak jak robimy to w przypadku Excela!
Kod rejestracyjny makra podaje:
Ustaw swApp = Application.SldWorks
Ustaw część = swApp.ActiveDoc
Ustaw część = Nic
swApp.CloseDoc "Nazwa części"
Z tym, że nie zarejestrowała go nie ma określonej nazwy (z wyjątkiem "Dowód 1", Dowód 2", Dowód 3"......)
Z:
swApp.ActiveDoc.Close Uległem awarii solidworks (obraz w załączeniu)
Dziękuję za pomoc!!
capture.png
bart
28 Marzec 2014 15:45
2
Dlaczego po prostu nie kliknąć na zamknięcie ^^^lub na krzyżyk.....
Nie sądzę, aby makro było konieczne do tego rodzaju manipulacji.
4 polubienia
Cóż, to tak, jakby otworzyć plik, zaimportować części do zespołu lub zmienić materiał...
Możesz to zrobić ręcznie, ale jeśli program to zrobi, nie musisz już tego robić.
Nie mogłem znaleźć tej instrukcji nigdzie na forach...
gt22
28 Marzec 2014 16:26
4
Naprawdę nie widzę sensu w zamykaniu pliku bez jego zapisania
W rezultacie może zostać utracony w innych plikach bez możliwości łatwego odnalezienia
Zamknij Nie oszczędzając tracimy wszystko?
@+ ;-)
2 polubienia
Zgadzam się z Bartkiem i Gt22
Ale jeśli w twoim kontekście ma to sens... zamiast tego spójrz na metodę QuitDoc (ISldWorks) .
który zamyka się bez zapisywania
6 polubień
bart
28 Marzec 2014 16:39
6
W tym samym czasie kliknij ikonę makra lub kliknij krzyżyk, aby zamknąć.
W sumie sprowadza się to do tego samego, prawda?
Albo coś mi umknęło...
W rzeczywistości tak:
longstatus = Część.Zapisz As3(link, 0, 2)
który zapisuje moją część w łączu , z wyjątkiem tego, że zachowuję część (kopię), która nie jest zapisana w moim Solidworks, co jest bezużyteczne.
To prawda, że źródłowy problem polega na tym, czy można zapisać otwarty pokój i zachować go na widoku? (przez VBA)
OK... Staje się to bardziej logiczne
więc QuitDoc musi działać?
4 polubienia
Ja też nie rozumiem pożytku. Służy do tego polecenie close, a co więcej, w przypadku otwartych wielu dokumentów dostępne jest polecenie close all...
bart
28 Marzec 2014 18:53
10
Uratować pokój, zostawiając go otwartym tak szybko, jak to możliwe?
CTRL+S ... Nie?
Zgadzam się z tobą co do przydatności tego działania, ale tworzę aplikację dla asystenta solidworks, który nie chce uczyć się obsługi oprogramowania...
W przeciwnym razie dla tych, którzy są zainteresowani, jest: (pomysł Happydada)
boolstatus = swApp.CloseAllDocuments(Prawda)
ale okno się nie zamyka, myślę, że to z powodu prośby o zapisanie wiadomości części, która się nie pojawia.
jfaradon powiedział:
Mam wrażenie, że QuitDoc Method (ISldWorks) również prosi o nazwę części przed jej zamknięciem.
Dziękuję za odpowiedzi
Aby to osiągnąć, użyłem metody Siuksów...
Dla i = od 1 do 30
swApp.CloseDoc "Część" & i Następny
pl
31 Marzec 2014 20:48
13
Możesz również pobrać nazwę dokumentu, a następnie aktywować go, aby go zamknąć:
myTitle = mójModel.GetTitle
swApp.ActivateDoc2 mójTytuł, Prawda, 0
swApp.QuitDoc mójTytuł
Ponieważ jeśli masz więcej niż 30 plików części, Twoje rozwiązanie nie zadziała!