Wyświetlanie listy wszystkich komponentów w aktywnym zespole i komponentów w podzespołach

Witam

Chcę wyświetlić listę wszystkich komponentów aktywnego zespołu w formularzu

komponent1-1@assemblageracine

komponent1-2@assemblageracine

ssassembly1-1@assemblageracine/component2-1@ssassemblage1

itd...

Celem jest następnie wstrzyknięcie wyniku do powyższego makra zgodnie z innymi parametrami.

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("1052616-1@1052602/2102935-1@1052616", "KOMPONENT", 0, 0, 0, Fałsz, 0, Nic, 0)
Część.Ukryj komponent2
Part.ClearSelection2 Prawda
Koniec subwoofera

Dziękuję

Witam, to powinno ci odpowiadać, trochę wyczyściłem makro pomocy, http://help.solidworks.com/2018/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getchildren.html

 

Opcja jawna

Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
    Dim vChildComp jako wariant
    Dim swChildComp As SldWorks.Component2
    Dim swCompConfig jako SldWorks.Configuration
    Dim sPadStr As String
    Słońce i tak długo
    Dla i = 0 Do nLevel - 1
        sPadStr = sPadStr + "  "
    Dalej i
    vChildComp = swComp.GetChildren
    Dla i = 0 TB UBound(vChildComp)
        Ustaw swChildComp = vChildComp(i)
        Debug.Print sPadStr & "+" & swChildComp.Name2 & " "

        PrzechodzićKomponent swChildComp, nLevel + 1
    Dalej i
Koniec subwoofera

Sub main()
    Dim swApp jako SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Przyciemnij swAssy jako SldWorks.AssemblyDoc
    Dim swConf As SldWorks.Configuration
    Dim swRootComp jako SldWorks.Component2
    Dim nStart tak długo
    Dim bRet As Boolean
    Dim fileName As Ciąg
    Błędy przyciemnienia tak długo
    Ostrzeżenia o przyciemnieniu tak długo
    Ustaw swApp = CreateObject("SldWorks.Application")
    ' Otwarty montaż
    fileName = "C:\Użytkownicy\Publiczny\Dokumenty\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\smartcomponents\stepped_shaft.sldasm"
    Set swModel = swApp.OpenDoc6(nazwa_pliku, swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_e.swOpenDocOptions_Silent, "", błędy, ostrzeżenia)
    Ustaw swConf = swModel.GetActiveConfiguration
    Ustaw swRootComp = swConf.GetRootComponent3(True)
    nStart = Zegar
    Debug.Print "Plik = " & swModel.GetPathName

    Komponent trawersu swRootComp, 1
    
    Debug.Print ""
    Debug.Print "Czas = " & Timer - nStart & " sekundy"
Koniec subwoofera
 

2 polubienia

działa dobrze, dziękuję mandragora