Hoe sluit ik een kamer die nog niet is geregistreerd?

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

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

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

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

 

 

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

 

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!