Bonjour,
En vba je fait un programme qui ouvre dans un assemblage des pièces (d'une bouteille) et les assembles (bouteille complète).
Mon problème vient pour contraindre les pièces en elles.
Comme c'est l'utilisateur qui choisit ces pièces, le mixe entre les pièces ouvertes vont changer.ex: fond plat, fond arrondi, bord carré arrondi, bord carré droit etc...
ce que j'ai commencé par faire est de contraindre les plans de chaque epièces.
Code d'enregistrement macro
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Plan de face@Bague couronne 26-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de face@EP-BR-ST-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
Dim myMate As Object
Set myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, False, longstatus)
Part.ClearSelection2 True
Part.EditRebuild3
boolstatus = Part.Extension.SelectByID2("Plan de droite", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.DeSelectByID("Plan de droite", "PLANE", 0, 0, 0)
boolstatus = Part.Extension.SelectByID2("Plan de droite@Bague couronne 26-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan de droite@EP-BR-ST-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
Set myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, False, longstatus)
Part.ClearSelection2 True
Part.EditRebuild3
boolstatus = Part.Extension.SelectByID2("Plan_inf@Bague couronne 26-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Plan_sup@EP-BR-ST-1@Assemblage Bord rond", "PLANE", 0, 0, 0, True, 1, Nothing, 0)
Set myMate = Part.AddMate3(0, 1, False, 0.071, 0, 0, 0.001, 0.001, 0, 0.5235987755983, 0.5235987755983, False, longstatus)
Part.ClearSelection2 True
Part.EditRebuild3
on voit qu'il y a un espace entre les deux pièces de " 0.071"m et je ne sais pas le définir. (il va changer pour chaque ensemble de pièce donc trop contraignant surtout que la bibliothèque de pièce vas s'agrandir au fur et à mesure)
Dans ma macro j'ai mis intentionnellement des espaces en Y pour séparer les pièces quand je les importes (cf: image) donc je connais l'espace entre l'origine de l'assemblage et le centre de gravité de ma pièce. (c'est bien le centre de gravité qui est pris en compte quand on importe des pièces?)
Est-il possible de récupérer la hauteur de la pièce? (variables vba)
Ou toutes autes idées sont bienvenues aussi!
merci
JB
assemblage_bouteille.png