Automatische update van familiemunten

Hoi allemaal!

 

In mijn eeuwige zoektocht naar complexiteit en om het gebruik van een tool voor anderen te vergemakkelijken, probeer ik een kleine "module" in VBA te maken zodat in een enkel databestand de coin-odds op SW veranderen.

 

Om dit te doen, ben ik natuurlijk begonnen met het doen van tests op een enkel onderdeel.

 

Ik heb een familietafel in de kamer gemaakt en daarom de gewenste afmetingen ingesteld door twee lijnen te maken: "oorsprong" en "aanpasbaar"

 

Dus heb ik mijn gegevensbestand gemaakt, met de originele afmetingen van de onderdelen (voor het geval ze worden vergeten door ze te veranderen!)

 

Op deze heb ik ook een knop gemaakt, met het volgende VBA-commando erin:

 

[code]Sub Changement_cote()

Werkmappen.Open ("Test-Werkmap.xlsm")
"Wijziging
Werkmappen ("Test-Werkboek.xlsm"). Werkbladen ("Blad1"). Bereik ("B4"). Waarde = "='[Database.xlsm]Sheet1'!$B$4"

Werkmappen ("Test-Werkboek.xlsm"). Werkbladen ("Blad1"). Bereik ("C4"). Waarde = "='[Database.xlsm]Sheet1'!$C$4"

Werkmappen ("Test-Werkboek.xlsm"). Sluit 'Testbestand sluiten'

 

 

Werkmappen.Open ('00-XXXXX-0-Came.xlsx') 'Familiekamer'

"Wijziging
Werkmappen ("00-XXXXX-0-Came.xlsx"). Werkbladen ("Blad1"). Bereik ("B4"). Waarde = "='[Database.xlsm]Sheet1'!$B$4"

Werkmappen ("00-XXXXX-0-Came.xlsx"). Werkbladen ("Blad1"). Bereik ("C4"). Waarde = "='[Database.xlsm]Sheet1'!$C$4"

Werkmappen ("00-XXXXX-0-Came.xlsx"). Sluit 'Testbestand sluiten'

 

Einde Sub[/code]

 

Op dit moment heb ik niet toegevoegd de auto' back-up van de bestanden, maar ze vragen me om, en ik zie ook de verandering op de bestanden die niet gebruik maken van de "updatescreen=false" =)

 

Dus mijn probleem komt later. Ik open solidworks opnieuw nadat ik mijn wijziging heb aangebracht, en de onderdeelfamilie wordt helaas niet bijgewerkt, ondanks het feit dat het bestand up-to-date is. Ik moet door "deel familie bewerken" gaan om het bij te werken

 

(tijdens deze operatie doe ik alleen "familie bewerken" en ik stop ermee, solidworks lijkt het bestand te gaan halen)

 

Zou er een VBA-opdracht zijn waarmee deze update dit automatisch kan doen?

Omdat dit slechts een kamer is, is het geen probleem. Maar voor een complexe assemblage van slechts 20 onderdelen kan het een lange ^^ worden.

 

Excuses voor de bestrating en het ongemak,

In de hoop een oplossing te vinden ^^"

 

Vriendelijk

 

Yoann

 


base_donnee.jpg

Hallo

 

Hier is een macro gevonden op het SolidWorks-forum:

 

https://forum.solidworks.com/thread/9335

 

Of bekijk de SolidWorks Help-instructie:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_or_Set_Whether_Edits_Update_Design_Table_Example_VB.htm

Hello@Lucas

 

mmmh... Passen functies zoals "Dim swApp As SldWorks.SldWorks" niet in de vba module van excel?

 

Het geeft me een foutmelding wanneer ik probeer om de macro uit te voeren:

"Compilatiefout  : door de gebruiker gedefinieerd type, niet gedefinieerd"

 

Afgezien van het feit dat ik begrijp dat hij me vertelt dat wat ik heb gedefinieerd... is niet gedefinieerd.... (ze bezorgt je hoofdpijn deze zin *geschokt*)

 

Ik begrijp het niet echt =/

 

vriendelijk

Oh, maar je maakt de onderdeelfamilie vanuit Excel?

 

Hoe implementeer je het vervolgens zodat het in SolidWorks verschijnt?

Het creëerde zichzelf als een bestand .xlsx eigenlijk ^^'  toen ik het opsloeg

 

Dus ik dacht dat ik alle manipulaties uit mijn databasebestand zou doen, om toekomstig gebruik door andere mensen te vereenvoudigen.

Wanneer ik een deelfamilie aanmaak, heb ik geen toegang tot het Excel-bestand! Waar vind je het?

Ik had er alleen toegang toe door de familie te laten "registreren" ^^

 

Om de waarheid te zeggen, ik open het niet via Excel, de laatste. Ik had het alleen nodig om toegang te krijgen tot het adres "C:\...\came.xlsx" om de link in mijn VBA-code te plaatsen

OK, hoe dan ook, je kunt de onderdeelfamilie in SolidWorks niet bijwerken vanuit Excel: het is een SolidWorks-macro die ik je aanbood!

En het is zeker dat het veel minder interessant is: om het bij te werken, in plaats van de muntfamilie te openen, moet je een macro starten, het is vrijwel hetzelfde.

 

Anders zal het automatisch starten van de macro elke keer dat een onderdeel wordt gestart erg vervelend zijn en zal het SW vertragen bij het openen van een bestand ...

http://www.leguide3d.com/profiles/blogs/piloter-un-modele-3d-au-travers-d-excel

 

Ik heb dit gevonden, ik zal het testen, maar het lijkt mij een oplossing te zijn =). Ik hou jullie op de hoogte!

1 like

Sorry een beetje moe, ja, je kunt eigenlijk een SolidWorks-macro maken vanuit Excel zoals deze in je link staat.

 

Als het onderdeel open is in SolidWorks, gebruik dan de instructies in de afbeelding:

 

http://api.ning.com/files/s2sZbafeBpX-mX9KHHPZMOqmYpSGIu93UHOfWU*M6CnBzflIcn0D5aoMp7YX937HiJ5u00KItfo8KQVFyrpA0TVLVgq-rvlW/Code1.PNG

 

Je zou in staat moeten zijn om de macro te starten die ik hierboven heb voorgesteld.

Geen zorgen Lucas^^ weekend, ik denk dat iedereen een beetje moe is^^

 

Ik heb dit inderdaad geprobeerd, en het detecteert geen enkel probleem =)

 

Behalve later, als ik probeer de solidworks-macro te integreren die je me hierboven hebt gegeven^^'

 

Dim swDoc als SldWorks.ModelDoc2

 

wordt niet herkend =/

 

 

Omdat ik solidworks-macro's niet in Excel kon gebruiken, ging ik op zoek naar hoe ik de solidworks-macro vanuit Excel kon starten.

 

Dus ging ik als volgt te werk

 

Stel swApp = CreateObject("SldWorks.Application") in
Deel instellen = swApp.ActiveDoc
Dim boolstatus als Booleaanse

Dim bestandsnaam als tekenreeks
bestandsnaam = swApp.GetCurrentMacroPathName
bestandsnaam = Links(bestandsnaam, InStrRev(bestandsnaam, "\")) + "Macro1.swp"
boolstatus = swApp.RunMacro(bestandsnaam, "Macro11", "alternatief")
boolstatus = swApp.RunMacro(bestandsnaam, "Macro11", "main")

 

En nu werkt mijn "update" -knop aan de zijkant ook de families van onderdelen op solidworks bij door de macro te starten die @Lucas me gaf =)

 

(https://forum.solidworks.com/thread/9335)

 

Het enige dat ontbreekt, is om erachter te komen hoe u de weergave van de pagina's kunt verwijderen met een opdracht als "screenupdate.false" solidworks-versie.

 

Maar echt vervelend is het niet =)

 

Nogmaals bedankt voor je hulp Lucas^^