Wybrać podzespół w złożeniu SolidWorks w VBA

Witam

Szukam prostego polecenia VBA, aby wybrać podzespół w zestawie, którego nazwę znam, a następnie go naprawić.

Szukam od jakiegoś czasu i jestem zaskoczony, że nic nie znajduję.

Czy masz na to jakąś sztuczkę?

 

Dziękuję

Witam. Aby naprawić podzespół o podanej nazwie, spróbuj wykonać następujące czynności:

Option Explicit
Dim SubName As String
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swAssy As SldWorks.AssemblyDoc
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swAssy = swModel
    SubName = InputBox("Quel est le nom du sous assemblage à fixer?")
    TransverseComponents swAssy
End Sub

Sub TransverseComponents(ByVal swAssy As SldWorks.AssemblyDoc)
    Dim vComps As Variant
    Dim vComp As Variant
    Dim swComp As SldWorks.Component2
    Dim swModel As SldWorks.ModelDoc2
    Dim ModelTitle As String
    vComps = swAssy.GetComponents(True)
    For Each vComp In vComps
        Set swComp = vComp
        Set swModel = swComp.GetModelDoc2
        If Not swModel Is Nothing Then
            ModelTitle = swModel.GetTitle
            If InStr(UCase(ModelTitle), ".SLD") > 0 Then ModelTitle = Left(ModelTitle, Len(ModelTitle) - 7)
            Debug.Print ModelTitle
            If ModelTitle = SubName Then
                swComp.Select4 False, Nothing, False
                swAssy.FixComponent
            End If
            If swModel.GetType = swDocumentTypes_e.swDocASSEMBLY Then
                TransverseComponents swModel
            End If
        End If
    Next
End Sub

 

W przeciwnym razie, aby naprawić wybrany podzespół, spróbuj wykonać następujące czynności:

Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    swModel.FixComponent
End Sub

 

1 polubienie

Bardzo dziękuję JeromeP, udało mi się go dostosować do mojego programu.

Nadal uważam, że szkoda, że nie ma prostszego polecenia wyboru części/złożenia.

 

Jakie zamówienie byłoby dla Ciebie prostsze? Może to być wykonalne, jeśli potrafisz to zdefiniować.