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