Salut à tous
je souhaite réaliser une macro vba qui supprime les relations d’esquisse de type ‹ sur arête › et les contraintes bancales, du genre convertir les entités, que ce soit d’une pièce externe ou d’une autre esquisse de la même pièce
je suis dans l’esquisse a traiter
je lance la macro qui doit vérifier chaque élément pour voir le type de contrainte, si c’est ‹ sur arête › supprimer
je ne sais pas comment sélectionner chaque élément 1 par 1
je ne sais pas comment contrôler si c’est égale à ‹ sur arête › ou bancale
je ne sais pas comment supprimer la contrainte associé
voici mon début de macro
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSketchMgr As SldWorks.SketchManager
Dim swSketch As SldWorks.Sketch
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim nSketchStatus As Long
Dim boolstatus As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSketchMgr = swModel.SketchManager
Set swSketch = swSketchMgr.ActiveSketch
If swSketch Is Nothing Then
MsgBox "Éditer une esquisse et relancer la macro"
Exit Sub
End If
'For i = 1 To Count
'selectionner i element
'if relation existante =sgOFFSETEDGE
'boolstatus = Part.Extension.SelectByID2(xx, , ,, , , )
'swModel.EditDelete
'swModel.SketchManager.SketchConstraintsDel 1, "sgOFFSETEDGE"
'swModel.SketchConstraintsDel i, "sgOFFSETEDGE"
'Next i
swModel.ClearSelection2 True
End Sub
Bonjour @Bob_2000
Explique plutôt ce que qui te chagrine dans le code fourni par @Cyril.f et nous pourrons alors répondre à des questions plus précises.
Les « SkPoint ID » et « SkSeg ID » ne sont pas des variables mais du plein texte, pour afficher dans la fenêtre debug l’ID de point de l’esquisse (sk → sketch), et SkSeg l’ID du Segment.
Tu peux remarquer qu’ils sont entre " ", mais surtout que ces mots ne sont pas déclarés (avec un dim par exemple), donc ne peuvent être des variables.
Bonjour,
Pas eu le temps de tester mais il y a des critères de filtre sur ce doit scanner ce code. En gros là c’est paramétré sur All et en fonction du résultat tu peux tomber sur des cas non identifiés qui peuvent être des esquisses bancales ou autre.
Il faudrait paramétrer le filtre sur les éléments qui sont bancals pour faire une boucle spécifique sur ce statut.
Je n’ai pas accès à SW au moins jusqu’à la fin de la semaine.