Hallo
Ik zal proberen mijn probleem zo goed mogelijk uit te leggen, maar het is niet gemakkelijk.
Ik gebruik een Excel-macro om onderdelen en assemblages in een modelassemblage te vervangen.
Mijn programma werkt goed op mijn pc, maar ik merkte net een probleem met de versie van de assemblages die de macro zal zoeken op een andere pc.
Voorbeeld:
Als ik een assembly op mijn PC (PC1) uitpak, pas deze aan en plaats deze vervolgens terug in de PDM-kluis (ik heb geen extracten meer op mijn PC)
Als ik op een andere pc (PC2) mijn Excel-macro gebruik en deze pas gewijzigde assembly importeer, is de versie die ik herstel de versie van vóór de wijziging.
Technisch gezien is de manier waarop mijn Excel-macro mijn assembly ophaalt heel eenvoudig, mijn Excel-bestand bevat assembly-namen en hun locaties en gebruikt deze code (hieronder) om een modelonderdeel (PIECE_A _REMPLACER) dat in de ASSEMBLAGE_MODELE is opgenomen, te vervangen door de geselecteerde assembly (NEW_PART_NAME) die het pad NEW_PART_PATH heeft:
boolstatus = swModel.Extension.SelectByID2(PIECE_A_REMPLACER & "@" & ASSEMBLAGE_MODELE, "COMPONENT", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = swModel.ReplaceComponents2(NEW_PART_PATH & "\" & NEW_PART_NAME, "", False, 0, True)
Niet begrijpend waarom de versie van de assemblage die de PC2 aan het openen was, sloot ik alles en zocht handmatig (in PDM) naar deze assemblage die ik in mijn modelassemblage wil importeren, toen opende ik het, en daar .... de juiste versie opent (de versie die ik op de PC1 had geworldificeerd).
Ik sluit alles af en probeer dan mijn macro nog eens via excel.... Het werkt, het importeert nu de juiste versie van het solidworks-bestand.
Ik dacht eerst dat het een probleem was met het geldgeheugen van de PC2 en dat Solidworks daarom opende wat het in zijn geldgeheugen had en niet de nieuwste versie van elk bestand.
Behalve dat... bij een andere poging probeer ik nu een assembly te importeren (vervang altijd een onderdeel in mijn modelassembly door deze nieuwe assembly) die voorheen niet bestond in de PDM-kluis: de map waarin deze nieuwe assembly staat bestond voorheen niet (de PC2 heeft de map nooit eerder geopend).
Op de PC2 test ik mijn Excel-macro en daar reageert het programma alsof het het betreffende bestand niet eens kan vinden... hij gaat verder zonder iets te doen.... hoewel ik, net als bij de andere delen, het een correcte bestandsnaam en locatie geef.
Ik doe alles opnieuw, ik zoek naar dit nieuwe bestand op de PDM van de PC2, ik vind het en open het... Alles gaat goed.
Ik doe alles opnieuw en probeer mijn Excel-macro opnieuw... Het werkt, het vindt eindelijk het nieuwe bestand.
Het lijkt erop dat via Excel, zelfs als ik een geldige bestandslocatie geef, de macro geen toegang heeft tot de nieuwste versie van de PDM-kluis, niet alleen van een bestand maar van elke PDM.
Is er op elke PC een soort "cash memory of the PDM safe" of iets dergelijks?
Dus ik dacht, aan het begin van mijn Excel-macro, om een regel toe te voegen om dit geldgeheugen leeg te maken (als het bestaat) en daarom de macro te dwingen om te gaan en te tekenen uit de huidige versie van PDM en niet uit een uit het hoofd geleerde....
Als je een idee hebt, of als ik helemaal de verkeerde kant op ben gegaan... Vertel eens... misschien is het gewoon in de manier waarop ik zoek naar mijn bestanden in mijn macro ...
Bij voorbaat dank
Yves
PS: sorry voor het ontbreken van accenten, ik ben in het Verenigd Koninkrijk, dus QWERTY-toetsenbord