Répétition linéaire paramétrable

Voir le sujet précédent Voir le sujet suivant Aller en bas

Répétition linéaire paramétrable

Message par Tatoo911 le Ven 10 Jan 2014 - 6:12

Bonjour à tous,
Je viens vers vous car dans le cadre d'un projet étudiant, j'ai décider de paramétrer un ascenseur totalement paramétrable.
J'ai donc créer une structure dans laquelle l'ascenceur va se déplacer. or la dite structure représente la structure pour 1 étage d'un immeuble.

Or l'un des paramètres clé est le nombre d'étage de l’ascenseur. Je dois donc réussir à mettre en place une répétition linéaire de ma structure en fonction du nombre d'étage.

J'ai testé de réaliser une macro, en fixant une structure de base et en appelant une seconde pièce que je fixe à l'aide de la première. l'idée était de répéter cette opération à l'aide de la macro en empilant le nombre d'étage souhaitée. le problème est que la macro applique toujours les nouvelles contraintes à la première pièce appelée. est ce "réparable"? je vous joint le code :

Code:
Sub CATMain(NombreEtage As Integer)

MsgBox "salut"

For i = 1 To NombreEtage

Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument


Dim product1 As Product
Set product1 = productDocument1.Product

Dim products1 As Products
Set products1 = product1.Products

Dim arrayOfVariantOfBSTR1(0)
arrayOfVariantOfBSTR1(0) = "\\uran01\blondela\NF15\Projet\cage d'ascenseur.CATProduct"
Set products1Variant = products1
products1Variant.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All"

Dim constraints1 As Constraints
Set constraints1 = product1.Connections("CATIAConstraints")

Dim reference1 As Reference
Set reference1 = product1.CreateReferenceFromName("Assemblage_etage/Produit1.1/pilier/!Selection_RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.3;7)));None:();Cf11:());Pad.1_ResultOUT;Z0;G2980)")

Dim reference2 As Reference
Set reference2 = product1.CreateReferenceFromName("Assemblage_etage/Cage_ascenseur.1/pilier/!Selection_RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.3;7)));None:();Cf11:());Pad.1_ResultOUT;Z0;G2980)")

Dim constraint1 As Constraint
Set constraint1 = constraints1.AddBiEltCst(catCstTypeDistance, reference1, reference2)

Dim length1 As Length
Set length1 = constraint1.Dimension

length1.Value = 0#

constraint1.Orientation = catCstOrientSame

Set constraints1 = product1.Connections("CATIAConstraints")

Dim reference3 As Reference
Set reference3 = product1.CreateReferenceFromName("Assemblage_etage/Cage_ascenseur.1/pilier/!Selection_RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.3;8)));None:();Cf11:());Pad.1_ResultOUT;Z0;G2980)")

Dim reference4 As Reference
Set reference4 = product1.CreateReferenceFromName("Assemblage_etage/Produit1.1/pilier/!Selection_RSur:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.3;8)));None:();Cf11:());Pad.1_ResultOUT;Z0;G2980)")

Dim constraint2 As Constraint
Set constraint2 = constraints1.AddBiEltCst(catCstTypeDistance, reference3, reference4)

Dim length2 As Length
Set length2 = constraint2.Dimension

length2.Value = 0#

constraint2.Orientation = catCstOrientSame

Set constraints1 = product1.Connections("CATIAConstraints")

Dim reference5 As Reference
Set reference5 = product1.CreateReferenceFromName("Assemblage_etage/Cage_ascenseur.1/barre/!Selection_RSur:(Face:(Brp:(MultiPad.1;1:(Brp:(MultiPad.1_GeometricalElement3D.3;0)));None:();Cf11:());MultiPad.2_ResultOUT;Z0;G2980)")

Dim reference6 As Reference
Set reference6 = product1.CreateReferenceFromName("Assemblage_etage/Produit1.1/barre/!Selection_RSur:(Face:(Brp:(MultiPad.1;1:(Brp:(MultiPad.1_GeometricalElement3D.3;0)));None:();Cf11:());MultiPad.2_ResultOUT;Z0;G2980)")

Dim constraint3 As Constraint
Set constraint3 = constraints1.AddBiEltCst(catCstTypeDistance, reference5, reference6)

Dim length3 As Length
Set length3 = constraint3.Dimension

length3.Value = i * 3300#

constraint3.Orientation = catCstOrientSame

Next

End Sub

La seconde idée fut d'utiliser la multi instanciation. Mais dans ce cas, je ne retrouve pas dans les paramètre la valeur que j'ai appliqué pour le nombre d'instance. Est-ce possible?

J'ai également entendu parlé de la possibilité d'appelé une pièce à des points placé précédemment? effectivement possible?

merci d'avance pour votre aide!

Tatoo911
timide
timide

Messages : 2
Date d'inscription : 10/01/2014
Localisation : Troyes

Revenir en haut Aller en bas

Re: Répétition linéaire paramétrable

Message par flo le Ven 17 Jan 2014 - 19:21

Salut,
il y a peut être des raisons pour que tu te dirige vers une macro, mais ça ne serai pas plus simple d'utiliser une répétition linéaire avec le nombre d'étages en paramètre.
J'ai également entendu parlé de la possibilité d'appelé une pièce à des points placé précédemment? effectivement possible?
=> Répétition suivant une esquisse ? mais je ne vois pas trop l'intérêt dans ton cas

_________________
i52500K-GTX560TI-8Go
Windows 7 pro x64 - Solidworks 2013 (CATIA V5R20)
avatar
flo
Fédérateur
Fédérateur

Messages : 455
Date d'inscription : 22/01/2011
Age : 27
Localisation : Angers

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum