Hallo
Ik wil graag een:
ActiveWorkbook.Sluiten
zoals we dat doen voor Excel!
De macro-registratiecode geeft:
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc
Set Deel = Niets
swApp.CloseDoc "Onderdeelnaam"
Behalve dat ze het niet heeft geregistreerd heeft ze geen definitieve naam (behalve "Bewijsstuk 1", Bewijsstuk 2", Bewijsstuk 3"......)
Met:
swApp.ActiveDoc.Close Ik ben gecrasht solidworks (afbeelding bijgevoegd)
Bedankt voor je hulp!!
capture.png
bart
28 maart 2014 om 15:45
2
Waarom klikt u niet gewoon op sluiten ^^^of op het kruisje.....
Ik denk niet dat een macro nodig is voor dit soort manipulatie.
4 likes
Nou, het is alsof je een bestand opent, onderdelen in een assemblage importeert of het materiaal verandert...
Je kunt het met de hand doen, maar als het programma het doet, hoef je het niet meer te doen.
Ik kon deze instructie nergens op de forums vinden...
gt22
28 maart 2014 om 16:26
4
Ik zie echt het nut er niet van in om het bestand te sluiten zonder het op te slaan
Als gevolg hiervan kan het verloren gaan in andere bestanden zonder de mogelijkheid om het gemakkelijk te vinden
Sluiten zonder te sparen verliezen we alles?
@+ ;-)
2 likes
Ik ben het eens met Bart en Gt22
Maar als het in jouw context logisch is... kijk in plaats daarvan naar QuitDoc Method (ISldWorks).
die sluit zonder op te slaan
6 likes
bart
28 maart 2014 om 16:39
6
Klik tegelijkertijd op het macro-icoon of klik op een kruisje om te sluiten.
Al met al komt het op hetzelfde neer, nietwaar?
Of ik heb iets gemist....
In feite doe ik dat:
longstatus = Deel.Opslaan3(koppeling, 0, 2)
die mijn deel in link opslaat, behalve dat ik een deel (kopie) bewaar dat niet is opgeslagen in mijn Solidworks, wat nutteloos is.
Het is waar dat het bronprobleem is: is het mogelijk om een open ruimte op te slaan en weergegeven te houden? (door VBA)
OK... Het wordt logischer
dus QuitDoc moet werken?
4 likes
Ik begrijp het nut er ook niet van in. Hiervoor is er het commando sluiten, en wat meer is, in het geval dat er meerdere documenten open zijn, is er het commando alles sluiten...
bart
28 maart 2014 om 18:53
10
Een kamer redden door deze zo snel mogelijk open te laten staan?
CTRL+S ... Nee?
Ik ben het met je eens over het nut van deze actie, maar ik ontwikkel een applicatie voor een solidworks-assistent die niet wil leren hoe hij de software moet gebruiken...
Anders is er voor degenen die geïnteresseerd zijn: (Happydad's idee)
boolstatus = swApp.CloseAllDocuments(True)
maar het venster sluit niet, ik denk dat het komt door het verzoek om het deelbericht op te slaan dat niet verschijnt.
Jfaradon
Ik heb de indruk dat QuitDoc Method (ISldWorks) ook om de naam van het onderdeel vraagt voordat het wordt gesloten.
Dank u voor uw antwoorden
Ik heb de Sioux-methode gebruikt om dit te bereiken...
Voor i = 1 tot 30
swApp.CloseDoc "Deel" & i Volgend
pl
31 maart 2014 om 20:48
13
U kunt ook de naam van het document ophalen en vervolgens activeren om het te sluiten:
myTitle = mijnModel.GetTitle
swApp.ActivateDoc2 myTitle, True, 0
swApp.QuitDoc myTitle
Want als je meer dan 30 stukbestanden hebt, werkt je oplossing niet!