Je ré-ouvre le post car je rencontre un petit soucis avec la macro en question qui sert à ouvrir la pièce sélectionnée dans la zone graphique.
En effet, la macro ne fonctionne qu'à condition que la pièce soit réglée sur résolue.
Savez-vous s'il serait possible d'intégrer cela à la macro, c'est à dire :sélection de la pièce dans la zone graphique (face ou autre), lancement de la macro: résoudre la pièce puis l'ouvrir.
Je vous remets le code de la macro ci-dessous:
'******************************************************************************
' ASSEMBLYOPEN.SWB by Ted Griebling
' This macro will open the owning part or subassebly (if selected from the
' feature scrambler) of anything selected in an assembly.
' ******************************************************************************
Dim swApp As Object
Dim activeDocument As Object
Dim selEntity As Object
Dim selType As Long
Dim SelMgr As Object
Dim owningComponent As Object
Dim componentName As String
Dim part As Object
Dim componentpath As String
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3
Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set activeDocument = swApp.ActiveDoc
' Make sure this is not a part.
If (activeDocument.GetType = swDocPART) Then
Exit Sub
End If
' Do something else for drawings?
If (activeDocument.GetType = swDocDRAWING) Then
Exit Sub
End If
' Get the SelectionMgr interface
Set SelMgr = activeDocument.SelectionManager
' Obtain the selected Entity object
Set selEntity = SelMgr.GetSelectedObject3(1)
selType = SelMgr.GetSelectedObjectType2(1)
'MsgBox selType
' Types that make later parts barf
If (selType = 0) Or (selType = 42) Or (selType = 69) Then
Exit Sub
End If
' This works grand for components selected from the feature scrambler
If (SelMgr.GetSelectedObjectType2(1) = 20) Then
' Yeah!
activeDocument.OpenCompFile
Exit Sub
End If
'extract the path name from the entity selected.
If (activeDocument.GetType = swDocASSEMBLY) Then
' Get the owning Component object
Set owningComponent = selEntity.GetComponent
' Get the Component Path Name
componentpath = owningComponent.GetPathName
' MsgBox componentpath
' Open the part in it's own window Yeah!
Set part = swApp.ActivateDoc(componentpath)
Exit Sub
End If
End Sub
D'avance merci pour vos réponses.
Cordialement