Bonjour a tous.
Souhaitant créer une macro afin d'automatiser la création d'une fonction d'éplacer face => jusqu'a la surface + par la suite d'autre fonction j'ai écris le code suivant.
Cependant la fonction ne se créé pas et je ne vois vraiment pas le pourquoi du comment. J'ai sélectionnné mes face de départ et d'arrivé avec les mark requis mais rien n'est créé.
Aves vous une idée??
Dim swApp As Object
Dim swmodel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swFeatMgr As SldWorks.FeatureManager
Dim swFeat As SldWorks.Feature
Dim swMoveFaceFeat As SldWorks.MoveFaceFeatureData
Sub main()
Set swApp = Application.SldWorks
Set swmodel = swApp.ActiveDoc
'Vérification que le fichier ouvert est un fichier pièce
If swmodel.GetType <> swDocPART Then
MsgBox "Veuillez ouvrir un fichier pièce", vbApplicationModal + vbOKOnly + vbCritical, "Fichier pièce requis"
Exit Sub
End If
Dim Selectmanager As SelectionMgr
Set Selectmanager = swmodel.SelectionManager 'recuperer selection
swmodel.ClearSelection2 True ' effacer selection
' boucle pour attente selection
Dim bool1 As Boolean
Dim y
bool1 = False
Do Until bool1 = True
If Selectmanager.GetSelectedObjectType3(1, -1) = 2 Then
bool1 = True
End If
For y = 1 To 50000
DoEvents
Next y
Loop
Dim Coord As Variant
Coord = Selectmanager.GetSelectionPointInSketchSpace2(1, -1)
Dim x0 As Single
Dim y0 As Single
Dim z0 As Single
x0 = Coord(0)
y0 = Coord(1)
z0 = Coord(2)
swmodel.ClearSelection2 (True)
Set swModelDocExt = swmodel.Extension
Set swFeatMgr = swmodel.FeatureManager
swmodel.ClearSelection2 (True)
' boucle pour attente selection
bool1 = False
Do Until bool1 = True
If Selectmanager.GetSelectedObjectType3(1, -1) = 2 Then
bool1 = True
End If
For y = 1 To 50000
DoEvents
Next y
Loop
Coord = Selectmanager.GetSelectionPointInSketchSpace2(1, -1)
x1 = Coord(0)
y1 = Coord(1)
z1 = Coord(2)
swmodel.ClearSelection2 (True)
bret = swmodel.Extension.SelectByID2("", "FACE", x0, y0, z0, True, 1, Nothing, 0)
bret = swmodel.Extension.SelectByID2("", "FACE", x1, y1, z1, True, 8, Nothing, 0)
Set swFeat = swFeatMgr.InsertMoveFace3(swMoveFaceTypeTranslate, False, 0, 0, Nothing, Nothing, swEndConditions_e.swEndCondUpToSurface, 0)
End Sub
Par avance merci
Happydad