Hallo
Ik wil alle componenten van de actieve assemblage in het formulier opsommen
component1-1@assemblageracine
component1-2@assemblageracine
ssassembly1-1@assemblageracine/component2-1@ssassemblage1
enz...
Het doel is om het resultaat vervolgens in de macro hierboven te injecteren volgens andere parameters.
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Deel instellen = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("1052616-1@1052602/2102935-1@1052616", "COMPONENT", 0, 0, 0, Onwaar, 0, Niets, 0)
Deel.HideComponent2
Deel.ClearSelection2 Waar
Einde Sub
Bedankt
             
            
              
              
              
            
            
                
                
              
           
          
            
            
              Hallo, dit zou bij je moeten passen, ik heb de helpmacro een beetje opgeruimd, http://help.solidworks.com/2018/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getchildren.html
 
Optie Expliciete
Sub TraverseComponent(swComp als SldWorks.Component2, nLevel zo lang)
    Dim vChildComp als variant
    Dim swChildComp als SldWorks.Component2
    Dim swCompConfig als SldWorks.Configuration
    Dim sPadStr als snaar
    Zon i Zo lang
    Voor i = 0 Naar nLevel - 1
        sPadStr = sPadStr + "  "
    volgende i
    vChildComp = swComp.GetChildren
    Voor i = 0 TB UBound(vChildComp)
        Stel swChildComp in = vChildComp(i)
        Debug.Print sPadStr & "+" & swChildComp.Name2 & " "
        TraverseComponent swChildComp, nLevel + 1
    volgende i
Einde Sub
Sub hoofd()
    Dim swApp als SldWorks.SldWorks
    Dim swModel als SldWorks.ModelDoc2
    Dim swAssy als SldWorks.AssemblyDoc
    Dim swConf als SldWorks.Configuration
    Dim swRootComp als SldWorks.Component2
    Dim nStart zo lang
    Dim bRet als Booleaanse
    Dim fileName als tekenreeks
    Dim fouten zo lang mogelijk
    Dim waarschuwingen zo lang
    Stel swApp = CreateObject("SldWorks.Application") in
    (') Open vergadering
    fileName = "C:\Gebruikers\Openbaar\Documenten\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\smartcomponents\stepped_shaft.sldasm"
    Stel swModel in = swApp.OpenDoc6(fileName, swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_e.swOpenDocOptions_Silent, "", fouten, waarschuwingen)
    Stel swConf = swModel.GetActiveConfiguration in
    Stel swRootComp in = swConf.GetRootComponent3(True)
    nStart = Timer
    Debug.Print "Bestand = " & swModel.GetPathName
    TraverseComponent swRootComp, 1
    
    Foutopsporing.Print ""
    Debug.Print "Tijd = " & Timer - nStart & " seconden"
Einde Sub
 
             
            
              
              
              2 likes
            
            
                
                
              
           
          
            
            
              Het werkt goed bedankt Mandrake