Bonjour,
J'ai une macro qui depuis un assemblage, ouvre la pièce de sélectionnée et lui applique ensuite un certain traitement.
Cette macro fonctionne très bien si dans l'assemblage je sélectionne une face de la pièce à traiter.
Par contre je souhaiterais ajouter la possibilité d'appliquer ce traitement en sélectionnant la pièce depuis le Feature manager également (sans enlever la possibilité actuelle depuis une face dans le 3D)
Quelqu'un aurait-il un exemple concret ou une idée de la fonction a utiliser?
Ci-dessous le code actuel (épuré):
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Dim swSelMgr As SldWorks.SelectionMgr
Dim swCompEnt As SldWorks.Entity
Dim swPartFeat As SldWorks.Feature
Dim swCompModel As SldWorks.ModelDoc2
Dim swPartEnt As SldWorks.Entity
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim nRetval As Long
Set swSelMgr = swModel.SelectionManager
Dim CurSelCount As Long
CurSelCount = swSelMgr.GetSelectedObjectCount
Set swCompEnt = swSelMgr.GetSelectedObject6(1, 0)
Set swComp = swSelMgr.GetSelectedObjectsComponent3(1, 0)
Set swCompModel = swComp.GetModelDoc
Set swConfigMgr = swCompModel.ConfigurationManager
Set swCompModelConfig = swConfigMgr.ActiveConfiguration
Set swModelDocExt = swCompModel.Extension
Set swPartEnt = swModelDocExt.GetCorrespondingEntity(swCompEnt)
Set swCompModel = swApp.ActivateDoc2(swCompModel.GetPathName, True, nRetval): Debug.Assert 0 = nRetval
Dim swConfig As SldWorks.Configuration
Set swModel = swApp.ActiveDoc
swModel.ShowConfiguration2 (swComp.ReferencedConfiguration)
Debug.Print "File = " + swModel.GetPathName
Debug.Print " Component = " + swComp.Name2 + " <" + swComp.ReferencedConfiguration + ">" + " [" + swComp.GetPathName + "]"
Debug.Print " Model = " + swCompModel.GetPathName + " <" + swCompModelConfig.Name + ">"
End Sub