[SolidWorks] Macro filteren (VBA)

Hallo

 

Ik wil graag een filtermacro maken (in mijn bedrijf zijn alle assemblages samengesteld op hetzelfde model). Dus ik zou graag in staat zijn om een macro te maken die alles verbergt en alleen bepaalde delen weergeeft (op basis van de NAAM van het bestand).

Ook een macro die alles opnieuw zou weergeven..

 

Bedankt.

 

[bewerken] Het probleem is vooral om alle componenten in de assemblage te "ontleden". Is er een manier om dit in een for-lus te doen?

Hallo

Als je de hulpprogramma's van Mycadtools hebt, is er de TreeManager-app die je daarbij kan helpen.

Fijne dag.

1 like

Bedankt

 

Helaas heb ik geen toegang tot de MyCadTools-hulpprogramma's.

Ik moet het dus echt met een macro kunnen doen, en zoals ik al zei, het grote probleem is momenteel om alle elementen in een assemblage te nemen.

Hallo, in de tutorials die ik op Lynkoa heb gepost, zijn er een of twee voorbeelden om alle componenten van een assembly door te nemen. Anders, om te filteren, zie de SolidWorks Advanced Selection.
1 like

Hallo, dank je.

Kun je me een link geven naar een van je tutorials of heb je het daarover?

Het is waar dat het onmogelijk is om tutorials te vinden die door één persoon zijn gemaakt, sorry. Ik had het over deze tutorial, maar in feite betreft het alle configuraties van een assembly:

http://www.lynkoa.com/tutos/solidworks/macro-pour-toutes-les-configurations-d-un-assemblage-pour-activer-l-option "promoten" Ik ben op zoek naar de macro die ik deed, maar het is niet op Lynkoa.

1 like

Ik heb iets op internet gevonden waarmee ik door de componenten van een assemblage kan bladeren, het probleem is dat ik ze niet kan verbergen. Waarvoor?

 

Sub hoofd()
    Dim swModel als ModelDoc2
   
    Dim vComps als variant
    Dim swComp als SldWorks.Component2
    Dim swAssy als SldWorks.AssemblyDoc
    Dim i als geheel getal
   
    Stel swApp = Toepassing.SldWorks in
    Stel swModel = swApp.ActiveDoc in
   
    Als swModel.GetType = swDocASSEMBLY Dan
        Stel swAssy in = swModel
        vComps = swAssy.GetComponents(Onwaar)
        Voor i = 0 TB UBound(vComps)
            Stel swComp in = vComps(i)
            Stel swModel = swComp.GetModelDoc2 in
            Foutopsporing.Print swModel.GetTitle
            swModel.HideComponent2 'Werkt niet...
            swModel.ClearSelection2 Waar
        volgende i
    Einde als
Einde Sub

 

[bewerken]

Ik heb een manier gevonden om het identiteitsbewijs terug te nemen met:

            Debug.Print swComp.GetSelectByIDString
            boolstatus = Part.Extension.SelectByID2(swComp.GetSelectByIDString, "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
            Deel.HideComponent2

 

Dus op dit moment denk ik dat mijn probleem opgelost moet zijn. Ik wacht nog even voordat ik het in resolutie zet. Bedankt!

1 like

Inderdaad, zoals aangegeven in de onderstaande link, moet u de component selecteren met HideComponent2 , anders bieden ze een andere methode met zichtbaarheid:

https://books.google.fr/books?id=ftVsBgAAQBAJ&pg=PA39&lpg=PA39&dq=HideComponent2&source=bl&ots=11v9gfMep9&sig=Kdp-G1le6iPqcbxSFNSueTQXQs4&hl=fr&sa=X&ved=0CCwQ6AEwAmoVChMI-6DIiZuyxwIVAr0aCh3dXQmW#v=onepage&q=HideComponent2&f=false

 

1 like

Dankzij jou beschouw ik het probleem als opgelost.