Auswählen einer Unterbaugruppe in einer Solidworks Baugruppe in VBA

Hallo

Ich suche nach einem einfachen VBA-Befehl, um eine Unterbaugruppe in einer Baugruppe auszuwählen, deren Namen ich kenne, und um sie dann zu korrigieren.

Ich habe eine Weile gesucht und bin überrascht, nichts zu finden.

Haben Sie einen Trick dafür?

 

Vielen Dank

Hallo. Um einen Querschnittsbestandteil mit einem bestimmten Namen zu korrigieren, versuchen Sie Folgendes:

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

 

Versuchen Sie andernfalls Folgendes, um den ausgewählten Querschnittsbestandteil zu korrigieren:

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 „Gefällt mir“

Vielen Dank JeromeP, ich habe es geschafft, es an mein Programm anzupassen.

Ich finde es immer noch schade, dass es keinen einfacheren Befehl gibt, um ein Teil/eine Baugruppe auszuwählen.

 

Was wäre eine einfachere Bestellung für Sie? Es könnte machbar sein, wenn Sie es definieren können .