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.
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