Alle onderdelen van een assemblage één voor één bewerken om een macro toe te passen?

Hallo

Ik heb een macro waarmee ik informatie van elk stuk kan invullen op basis van de bestandsnaam. Het probleem is dat ik deze macro op dit moment deel voor deel moet uitvoeren en ik zou gewoon graag de functie willen weten om deze taak voor alle onderdelen van de assemblage te herhalen.

Bedankt!

Hallo

1. Kunt u uw macro met ons delen voor het geval andere leden dit probleem hebben?

2. Als ik het goed begrijp, wilt u de macro uit de assemblage uitvoeren?

1 like

Hallo

Ik heb dit soort macro's een tijdje geleden gemaakt, zie het bijgevoegde voorbeeld.

Het moet zeker worden aangepast en verfijnd voor uw behoeften, maar kan mogelijk helpen.

A+


remplprop.swp

Ja, dat is mogelijk als je de MycadTools suite hebt.

U kunt het hulpprogramma INTEGRATIE gebruiken om uw macro uit te voeren op een reeks bestanden.

1 like

Hallo

Als u de lijst met onderdelen van een assembly wilt ophalen, moet u de functie GetDocumentDependencies2 gebruiken.

Meer info hier: http://help.solidworks.com/2015/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.isldworks~getdocumentdependencies2.html

In een app in VB.net doe ik bijvoorbeeld het volgende

Verklaringen:

    Dim Application_SW als SldWorks.SldWorks
    Dim Model_SW als SldWorks.ModelDoc2
    Dim Component_SW als SldWorks.Component2
    Dim Nom_fichier_SW als snaar
    Dim Liste_dependances als object

 

Functiecode:

    Functie Acquisition_dependences(ByRef Chemin_assemblage_SW als string) als object
        Dim Type_fichier_SW als geheel getal = 2
        Application_SW. OpenDoc6(Chemin_assemblage_SW, Type_fichier_SW, 0, "", longstatus, longwarnings)
        Model_SW = Application_SW. ActiveDoc
        Nom_fichier_SW = Model_SW. GetPathName (GetPathNaam)
        Keer terug Application_SW. GetDocumentDependencies2(Nom_fichier_SW, Waar, Waar, Onwaar)
    Functie beëindigen

 

Vervolgens gebruik je de volgende code om de functie uit te voeren:

Liste_dependances = Acquisition_dependences(Chemin_de_ton_fichier_ASM)

Dit retourneert een matrix met tekenreeksen in de volgende vorm:

"Als je deze methode gebruikt met een assembly die twee documenten bevat, Part1 en SubAssem1, is een voorbeeld van wat er zou kunnen worden geretourneerd:

 [ "Deel 1", "C:\temp\Deel1.SLDPRT", "SubAssem1", "c:\temp\SubAssem1.SLDASM" ]

 

In de hoop je geholpen te hebben

1 like

Hartelijk dank voor uw antwoorden!

Ik voeg de macro aan je toe in bijlage!


aangepaste-eigenschappen-automatische-naamgeving-v3_description.swp

Als uw probleem is opgelost, selecteer dan het beste antwoord.

@remem: Deze functie retourneert alleen de lijst met afhankelijke aandelen, nietwaar? Is het mogelijk om een macro toe te passen op de geretourneerde array? 

Ik geef toe dat ik er een beetje mee worstel: ik moet "Nom_fichier_SW" vervangen door de naam van het bestand dat ik wil verwerken,  toch?

Er verschijnt een foutmelding voor de voorlaatste regel, de return, ik voeg een screenshot toe.

Sorry dat zijn veel vragen, ik hoop dat je tijd hebt om me te helpen


capture.png
1 like

@julien. Bonus:

Je hebt de functie gewijzigd terwijl je het niet zou moeten doen, zoals ik zie in je schermafbeelding.

Kopieert de code van de aangiften en de code van de functie zonder deze te wijzigen.

Dan in de oproeplijn van de functie: Liste_dependances = Acquisition_dependences(Chemin_de_ton_fichier_ASM)

Bewerk het cursieve deel alleen door het pad van uw assemblage aan te geven.

1 like