Hallo
Ich möchte alle Komponenten der aktiven Assembly im Formular
Komponente1-1@assemblageracine
Komponente1-2@assemblageracine
SSCassemblierung1-1@assemblageracine/Komponente2-1@ssassemblage1
etc...
Ziel ist es, das Ergebnis dann entsprechend anderen Parametern in das obige Makro zu injizieren.
Sub main()
Legen Sie swApp = Application.SldWorks fest
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("1052616-1@1052602/2102935-1@1052616", "KOMPONENTE", 0, 0, 0, Falsch, 0, Nichts, 0)
Teil.HideComponent2
Part.ClearSelection2 Wahr
Ende Sub
Vielen Dank
Hallo, das sollte dir passen Ich habe das Hilfe-Makro ein wenig aufgeräumt, http://help.solidworks.com/2018/english/api/sldworksapi/solidworks.interop.sldworks~solidworks.interop.sldworks.icomponent2~getchildren.html
Option Explizit
Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)
Dim vChildComp als Variante
Dim swChildComp als SldWorks.Component2
Dim swCompConfig als SldWorks.Configuration
Dim sPadStr As String
Sonne i So lang
Für i = 0 Bis nLevel - 1
sPadStr = sPadStr + " "
Weiter i
vChildComp = swComp.GetChildren
Für i = 0 TB UBound(vChildComp)
Legen Sie swChildComp = vChildComp(i) fest.
Debug.Print sPadStr & "+" & swChildComp.Name2 & " "
TraverseComponent swChildComp, nLevel + 1
Weiter i
Ende Sub
Sub main()
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssy As SldWorks.AssemblyDoc
Dim swConf als SldWorks.Configuration
Dim swRootComp als SldWorks.Component2
Dim nStart So lange
Dim bRet als boolescher Wert
Dim fileName als Zeichenfolge
Fehler so lange dimmen
Schwache Warnungen So lange
Set swApp = CreateObject("SldWorks.Application")
' Offene Baugruppe
fileName = "C:\Benutzer\Öffentlich\Dokumente\SOLIDWORKS\SOLIDWORKS 2018\samples\tutorial\smartcomponents\stepped_shaft.sldasm"
Set swModel = swApp.OpenDoc6(fileName, swDocumentTypes_e.swDocASSEMBLY, swOpenDocOptions_e.swOpenDocOptions_Silent, "," Fehler, Warnungen)
Legen Sie swConf = swModel.GetActiveConfiguration fest
Set swRootComp = swConf.GetRootComponent3(True)
nStart = Zeitgeber
Debug.Print "Datei = " & swModel.GetPathName
TraverseComponent swRootComp, 1
Debug.Drucken ""
Debug.Print "Zeit = " & Timer - nStart & " Sekunden"
Ende Sub
2 „Gefällt mir“
Es funktioniert gut, danke Mandarake