Macro VBA sur catia / Contrainte entre 2 plans - VB/VBA/VBS - Programmation
MarshPosté le 01-05-2012 à 00:47:41
Bonsoir à tous,
Je suis entrain de réaliser une macro VBA pour un usage sur catia.
Je souhaiterai contraindre deux plans entre-eux (créer dans 2 parts différents, et tous les deux situés dans un même assemblage).
Voici le code que j'ai copié d'une macro enregistrée et que j'ai modifié pour demander à l'utilisateur de sélectionner lui même les plans.
Lors de l'exécution, tout fonctionne bien, jusqu'à la ligne de la création de contrainte où la méthode AddBiEltCst ne fonctionne pas.
Auriez vous une idée pour m'aider?
Voici une partie de mon code :
"
Dim productDocument1 As ProductDocument Set productDocument1 = CATIA.ActiveDocument
Dim product1_Init As Product Set product1_Init = productDocument1.Product
Dim products1_Init As Products Set products1_Init = product1_Init.Products
Dim product2_Init As Product Set product2_Init = products1_Init.AddNewComponent("Product", "" )
Dim documents1 As Documents Set documents1 = CATIA.Documents
Dim productDocument2 As ProductDocument Set productDocument2 = documents1.Item("Produit1.CATProduct" )
Dim product3 As Product Set product3 = productDocument2.Product
product3.PartNumber = "Integration Boutons"
product2_Init.Name = "Integration_Boutons"
Dim products2 As Products Set products2 = product2_Init.Products
Dim product4 As Product Set product4 = products2.AddNewComponent("Part", "" )
Dim partDocument1 As PartDocument Set partDocument1 = documents1.Item("Pièce1" )
Dim product5 As Product Set product5 = partDocument1.GetItem("Pièce1" )
Dim products3 As Products Set products3 = product3.Products
'[Reste du programme .... inintéressant ici ... ]
Dim constraints1Position As Collection Set constraints1Position = product1_Init.Connections("CATIAConstraints" )
'-----------------Plan du bouton ----------- MsgBox "Selectionner le plan du bouton à contraindre"
Dim SelectionPlan_Bt, InputObjectType(0), Selection, Item2
Set SelectionPlan_Bt = productDocument1.Selection
InputObjectType(0) = "Plane" UserForm1.Hide Status = SelectionPlan_Bt.SelectElement2(InputObjectType, "Selectionner le plan du bouton à contraindre ", False)
Dim Plan_Bt_Ref As Reference Set Plan_Bt_Ref = SelectionPlan_Bt.Item(1).Reference
'----------------- Plan du trou --------------- MsgBox "Selectionner le plan du trou à contraindre"
Dim SelectionPlan
Set SelectionPlan = productDocument1.Selection
InputObjectType(0) = "Plane" UserForm1.Hide Status = SelectionPlan.SelectElement2(InputObjectType, "Selectionner le plan à contraindre du trou ", False)
Dim Plan_trou_Ref As Reference
Set Plan_trou_Ref = SelectionPlan.Item(1).Reference
Dim constraint1PlanSurPlan As Constraint 'Le problème se situe ici ..... pour la méthode addBiEletCst Set constraint1PlanSurPlan = constraints1Position.AddBiEltCst(catCstTypeOn, Plan_Bt_Ref, Plan_trou_Ref)
Marsh Posté le 01-05-2012 à 00:47:41
Bonsoir à tous,
Je suis entrain de réaliser une macro VBA pour un usage sur catia.
Je souhaiterai contraindre deux plans entre-eux (créer dans 2 parts différents, et tous les deux situés dans un même assemblage).
Voici le code que j'ai copié d'une macro enregistrée et que j'ai modifié pour demander à l'utilisateur de sélectionner lui même les plans.
Lors de l'exécution, tout fonctionne bien, jusqu'à la ligne de la création de contrainte où la méthode AddBiEltCst ne fonctionne pas.
Auriez vous une idée pour m'aider?
Voici une partie de mon code :
"
Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument
Dim product1_Init As Product
Set product1_Init = productDocument1.Product
Dim products1_Init As Products
Set products1_Init = product1_Init.Products
Dim product2_Init As Product
Set product2_Init = products1_Init.AddNewComponent("Product", "" )
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim productDocument2 As ProductDocument
Set productDocument2 = documents1.Item("Produit1.CATProduct" )
Dim product3 As Product
Set product3 = productDocument2.Product
product3.PartNumber = "Integration Boutons"
product2_Init.Name = "Integration_Boutons"
Dim products2 As Products
Set products2 = product2_Init.Products
Dim product4 As Product
Set product4 = products2.AddNewComponent("Part", "" )
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("Pièce1" )
Dim product5 As Product
Set product5 = partDocument1.GetItem("Pièce1" )
Dim products3 As Products
Set products3 = product3.Products
'[Reste du programme .... inintéressant ici ... ]
Dim constraints1Position As Collection
Set constraints1Position = product1_Init.Connections("CATIAConstraints" )
'-----------------Plan du bouton -----------
MsgBox "Selectionner le plan du bouton à contraindre"
Dim SelectionPlan_Bt, InputObjectType(0), Selection, Item2
Set SelectionPlan_Bt = productDocument1.Selection
InputObjectType(0) = "Plane"
UserForm1.Hide
Status = SelectionPlan_Bt.SelectElement2(InputObjectType, "Selectionner le plan du bouton à contraindre ", False)
Dim Plan_Bt_Ref As Reference
Set Plan_Bt_Ref = SelectionPlan_Bt.Item(1).Reference
'----------------- Plan du trou ---------------
MsgBox "Selectionner le plan du trou à contraindre"
Dim SelectionPlan
Set SelectionPlan = productDocument1.Selection
InputObjectType(0) = "Plane"
UserForm1.Hide
Status = SelectionPlan.SelectElement2(InputObjectType, "Selectionner le plan à contraindre du trou ", False)
Dim Plan_trou_Ref As Reference
Set Plan_trou_Ref = SelectionPlan.Item(1).Reference
Dim constraint1PlanSurPlan As Constraint
'Le problème se situe ici ..... pour la méthode addBiEletCst
Set constraint1PlanSurPlan = constraints1Position.AddBiEltCst(catCstTypeOn, Plan_Bt_Ref, Plan_trou_Ref)
constraint1PlanSurPlan.Orientation = catCstOrientOpposite
product1_Init.Update
"
Je vous remercie par avance
Manon