Fonction Rotation Macro Catia V5R21
2 participants
Page 1 sur 1
Fonction Rotation Macro Catia V5R21
Bonjour,
Etant parfaitement debutant en macros, j'ai besoin de votre aide.
Voici ce que je veux faire:
J'ai une piece de révolution (un anneau de diametre 1700mm environ). Dans cette piéce, je dois inserer des eprouvettes dans des zones précises de cet anneau. Ces eprouvettes fonctionnent trois par trois, réparties a 120°.
J'ai bricolé ma premiére macro, qui fait ceci, apres que l'une de mes eprouvettes soit placée:
- Copier/Coller de l'eprouvette (2x)
- Rotation +120° de la copie 1 (par rapport a l'axe de revolution de ma piece)
- Rotation -120° de la copie 2
- Renommage Copie 1
- Renommage copie 2
- Renommage eprouvette d'orignine.
Le probléme est que ma rotation est obtenue par un changement de coordonnées (type rotation grace à la boussole), donc, quand je veux utiliser ma macro sur une piéce de diametre différent, je dois aller dans ma macro pour modifier ce changement de coordonnées pour que ce la fonctionne.
Je voudrais a la place faire une fonction "Rotation autour de l'axe selectionné". j'ai reussi a faire la fonction de selection de l'axe, mais pas la fonction rotation...
Pouvez vous me dire comment réaliser une fonction rotation svp? (si c'est possible).
JE suis preneur si vous connaissez des moyens de faire plus efficace!
Merci d'avance de votre aide!
Etant parfaitement debutant en macros, j'ai besoin de votre aide.
Voici ce que je veux faire:
J'ai une piece de révolution (un anneau de diametre 1700mm environ). Dans cette piéce, je dois inserer des eprouvettes dans des zones précises de cet anneau. Ces eprouvettes fonctionnent trois par trois, réparties a 120°.
J'ai bricolé ma premiére macro, qui fait ceci, apres que l'une de mes eprouvettes soit placée:
- Copier/Coller de l'eprouvette (2x)
- Rotation +120° de la copie 1 (par rapport a l'axe de revolution de ma piece)
- Rotation -120° de la copie 2
- Renommage Copie 1
- Renommage copie 2
- Renommage eprouvette d'orignine.
Le probléme est que ma rotation est obtenue par un changement de coordonnées (type rotation grace à la boussole), donc, quand je veux utiliser ma macro sur une piéce de diametre différent, je dois aller dans ma macro pour modifier ce changement de coordonnées pour que ce la fonctionne.
Je voudrais a la place faire une fonction "Rotation autour de l'axe selectionné". j'ai reussi a faire la fonction de selection de l'axe, mais pas la fonction rotation...
Pouvez vous me dire comment réaliser une fonction rotation svp? (si c'est possible).
JE suis preneur si vous connaissez des moyens de faire plus efficace!
Merci d'avance de votre aide!
Fabien2709- timide
- Messages : 5
Date d'inscription : 21/04/2016
Localisation : Toulouse
Re: Fonction Rotation Macro Catia V5R21
Bonjour Fabien,
As tu vraiment besoins d'une macro? Ne peux tu pas utiliser des répétitions circulaires ?
Peux tu nous donner un peu plus de détails:
-S'agit il d'une part ou d'un CATProduct (assemblage de ton anneau et de tes x éprouvettes ?
-Peux tu poster une capture d'écran de ton 3D?
-Peux tu poster le code?
-Faut il faire varier le nombre d'éprouvette, leur position...?
As tu vraiment besoins d'une macro? Ne peux tu pas utiliser des répétitions circulaires ?
Peux tu nous donner un peu plus de détails:
-S'agit il d'une part ou d'un CATProduct (assemblage de ton anneau et de tes x éprouvettes ?
-Peux tu poster une capture d'écran de ton 3D?
-Peux tu poster le code?
-Faut il faire varier le nombre d'éprouvette, leur position...?
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Fonction Rotation Macro Catia V5R21
Bonjour Marc, et merci pour ta réponse.
Il s'agit d'un cat product, il contient mon anneau "usiné", mon anneau "brut" (seulement pour representation), et un product contenant les éprouvettes.
Les répétitions circulaires, c'est la solution que j'ai proposé actuellement, mais cela apporte pas mal de contraintes (il est fréquent de devoir déplacer quelques éprouvettes de quelques degrés). Donc pour l'instant je fais avec ca, mais le but de la macro est justement de ne plus faire comme cela.
Malheureusement je ne peux pas poser de capture d'écran de mon 3D, c'est une piéce pour un client de mon entreprise, les conditions de confidentialité ne me le permettent pas, désolé. Comme je suis débutant, il est possible que la facon dont elle est construite te paraisse étrange, j'espere que cela sera quand même clair.
Tu trouveras le code en fin de ma réponse! C'est celui que j'utilise actuellement qui fonctionne avec un changement de coordonnées. (la partie "selection de l'axe" n'y est pas). Tant que j'y suis, la boucle ne fonctionne pas, je n'arrive pas à savoir pourquoi... Je pense que c'est tout bête donc si jamais....
Pour ce qui concerne le nombre d'eprouvettes et leur position, les insérer par 3 à 120° couvrira déja 90% des cas, donc il ne sera pas necessaire de faire varier ces paramétres. Faire varier leur position se fait à la fin quand on ajuste, le faire manuellement grâce à la boussole ne pose pas de probléme.
Merci de ton aide!
Fabien
PS: Le code:
Language="VBSCRIPT"
Sub CATMain()
'Do'
X = Empty
Y = Empty
Z = Empty
O = Empty
product5 = Empty
product6 = Empty
product1 = Empty
product2 = Empty
product3 = Empty
product4 = Empty
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
selection1.Clear
Set product1 = productDocument1.Product
Set products1 = product1.Products
Set product2 = products1.Item("EPROUVETTES.4")
Set products2 = product2.Products
X = Inputbox("Nom Eprouvette")
Set product3 = products2.Item(X)
selection1.Add product3
selection1.Copy
Set productDocument1 = CATIA.ActiveDocument
Set selection2 = productDocument1.Selection
selection2.Clear
selection2.Add product2
selection2.Paste
Set productDocument1 = CATIA.ActiveDocument
Set selection3 = productDocument1.Selection
selection3.Clear
selection3.Add product2
selection3.Paste
Set documents1 = CATIA.Documents
Set productDocument2 = documents1.Item("EPROUVETTES.CATProduct")
Set product4 = productDocument2.Product
Set products3 = product4.Products
Set product5 = products3.Item(X&".1")
Y = Inputbox("Nom copie 1?")
Z = Inputbox("Nom copie 2?")
product5.Name = Y
Set product6 = products3.Item(X&".2")
product6.Name = Z
Set move1 = product5.Move
Set move1 = move1.MovableObject
Dim arrayOfVariantOfDouble1(11)
arrayOfVariantOfDouble1(0) = 1.000000
arrayOfVariantOfDouble1(1) = 0.000000
arrayOfVariantOfDouble1(2) = 0.000000
arrayOfVariantOfDouble1(3) = 0.000000
arrayOfVariantOfDouble1(4) = 1.000000
arrayOfVariantOfDouble1(5) = 0.000000
arrayOfVariantOfDouble1(6) = 0.000000
arrayOfVariantOfDouble1(7) = 0.000000
arrayOfVariantOfDouble1( = 1.000000
arrayOfVariantOfDouble1(9) = 0.000000
arrayOfVariantOfDouble1(10) = 0.000000
arrayOfVariantOfDouble1(11) = 0.000000
move1.Apply arrayOfVariantOfDouble1
Set move1 = product5.Move
Set move1 = move1.MovableObject
Dim arrayOfVariantOfDouble2(11)
arrayOfVariantOfDouble2(0) = -0.500000
arrayOfVariantOfDouble2(1) = -0.866025
arrayOfVariantOfDouble2(2) = 0.000000
arrayOfVariantOfDouble2(3) = 0.866025
arrayOfVariantOfDouble2(4) = -0.500000
arrayOfVariantOfDouble2(5) = 0.000000
arrayOfVariantOfDouble2(6) = 0.000000
arrayOfVariantOfDouble2(7) = 0.000000
arrayOfVariantOfDouble2( = 1.000000
arrayOfVariantOfDouble2(9) = -516.246639
arrayOfVariantOfDouble2(10) = 1011.944864
arrayOfVariantOfDouble2(11) = 0.000000
move1.Apply arrayOfVariantOfDouble2
Set move2 = product6.Move
Set move2 = move2.MovableObject
Dim arrayOfVariantOfDouble3(11)
arrayOfVariantOfDouble3(0) = 1.000000
arrayOfVariantOfDouble3(1) = 0.000000
arrayOfVariantOfDouble3(2) = 0.000000
arrayOfVariantOfDouble3(3) = 0.000000
arrayOfVariantOfDouble3(4) = 1.000000
arrayOfVariantOfDouble3(5) = 0.000000
arrayOfVariantOfDouble3(6) = 0.000000
arrayOfVariantOfDouble3(7) = 0.000000
arrayOfVariantOfDouble3( = 1.000000
arrayOfVariantOfDouble3(9) = 0.000000
arrayOfVariantOfDouble3(10) = 0.000000
arrayOfVariantOfDouble3(11) = 0.000000
move2.Apply arrayOfVariantOfDouble3
Set move2 = product6.Move
Set move2 = move2.MovableObject
Dim arrayOfVariantOfDouble4(11)
arrayOfVariantOfDouble4(0) = -0.500000
arrayOfVariantOfDouble4(1) = 0.866025
arrayOfVariantOfDouble4(2) = 0.000000
arrayOfVariantOfDouble4(3) = -0.866025
arrayOfVariantOfDouble4(4) = -0.500000
arrayOfVariantOfDouble4(5) = 0.000000
arrayOfVariantOfDouble4(6) = 0.000000
arrayOfVariantOfDouble4(7) = 0.000000
arrayOfVariantOfDouble4( = 1.000000
arrayOfVariantOfDouble4(9) = 618.246639
arrayOfVariantOfDouble4(10) = 953.055136
arrayOfVariantOfDouble4(11) = 0.000000
move2.Apply arrayOfVariantOfDouble4
Set documents1 = CATIA.Documents
Set productDocument1 = documents1.Item("EPROUVETTES.CATProduct")
Set product1 = productDocument1.Product
Set products1 = product1.Products
O = Inputbox("Nom Eprouvette Originale")
Set product2 = products1.Item(X)
product2.Name = O
'Loop While Msgbox("On Recommence?", VbYesNO,"Restart") = VbYes'
Il s'agit d'un cat product, il contient mon anneau "usiné", mon anneau "brut" (seulement pour representation), et un product contenant les éprouvettes.
Les répétitions circulaires, c'est la solution que j'ai proposé actuellement, mais cela apporte pas mal de contraintes (il est fréquent de devoir déplacer quelques éprouvettes de quelques degrés). Donc pour l'instant je fais avec ca, mais le but de la macro est justement de ne plus faire comme cela.
Malheureusement je ne peux pas poser de capture d'écran de mon 3D, c'est une piéce pour un client de mon entreprise, les conditions de confidentialité ne me le permettent pas, désolé. Comme je suis débutant, il est possible que la facon dont elle est construite te paraisse étrange, j'espere que cela sera quand même clair.
Tu trouveras le code en fin de ma réponse! C'est celui que j'utilise actuellement qui fonctionne avec un changement de coordonnées. (la partie "selection de l'axe" n'y est pas). Tant que j'y suis, la boucle ne fonctionne pas, je n'arrive pas à savoir pourquoi... Je pense que c'est tout bête donc si jamais....
Pour ce qui concerne le nombre d'eprouvettes et leur position, les insérer par 3 à 120° couvrira déja 90% des cas, donc il ne sera pas necessaire de faire varier ces paramétres. Faire varier leur position se fait à la fin quand on ajuste, le faire manuellement grâce à la boussole ne pose pas de probléme.
Merci de ton aide!
Fabien
PS: Le code:
Language="VBSCRIPT"
Sub CATMain()
'Do'
X = Empty
Y = Empty
Z = Empty
O = Empty
product5 = Empty
product6 = Empty
product1 = Empty
product2 = Empty
product3 = Empty
product4 = Empty
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
selection1.Clear
Set product1 = productDocument1.Product
Set products1 = product1.Products
Set product2 = products1.Item("EPROUVETTES.4")
Set products2 = product2.Products
X = Inputbox("Nom Eprouvette")
Set product3 = products2.Item(X)
selection1.Add product3
selection1.Copy
Set productDocument1 = CATIA.ActiveDocument
Set selection2 = productDocument1.Selection
selection2.Clear
selection2.Add product2
selection2.Paste
Set productDocument1 = CATIA.ActiveDocument
Set selection3 = productDocument1.Selection
selection3.Clear
selection3.Add product2
selection3.Paste
Set documents1 = CATIA.Documents
Set productDocument2 = documents1.Item("EPROUVETTES.CATProduct")
Set product4 = productDocument2.Product
Set products3 = product4.Products
Set product5 = products3.Item(X&".1")
Y = Inputbox("Nom copie 1?")
Z = Inputbox("Nom copie 2?")
product5.Name = Y
Set product6 = products3.Item(X&".2")
product6.Name = Z
Set move1 = product5.Move
Set move1 = move1.MovableObject
Dim arrayOfVariantOfDouble1(11)
arrayOfVariantOfDouble1(0) = 1.000000
arrayOfVariantOfDouble1(1) = 0.000000
arrayOfVariantOfDouble1(2) = 0.000000
arrayOfVariantOfDouble1(3) = 0.000000
arrayOfVariantOfDouble1(4) = 1.000000
arrayOfVariantOfDouble1(5) = 0.000000
arrayOfVariantOfDouble1(6) = 0.000000
arrayOfVariantOfDouble1(7) = 0.000000
arrayOfVariantOfDouble1( = 1.000000
arrayOfVariantOfDouble1(9) = 0.000000
arrayOfVariantOfDouble1(10) = 0.000000
arrayOfVariantOfDouble1(11) = 0.000000
move1.Apply arrayOfVariantOfDouble1
Set move1 = product5.Move
Set move1 = move1.MovableObject
Dim arrayOfVariantOfDouble2(11)
arrayOfVariantOfDouble2(0) = -0.500000
arrayOfVariantOfDouble2(1) = -0.866025
arrayOfVariantOfDouble2(2) = 0.000000
arrayOfVariantOfDouble2(3) = 0.866025
arrayOfVariantOfDouble2(4) = -0.500000
arrayOfVariantOfDouble2(5) = 0.000000
arrayOfVariantOfDouble2(6) = 0.000000
arrayOfVariantOfDouble2(7) = 0.000000
arrayOfVariantOfDouble2( = 1.000000
arrayOfVariantOfDouble2(9) = -516.246639
arrayOfVariantOfDouble2(10) = 1011.944864
arrayOfVariantOfDouble2(11) = 0.000000
move1.Apply arrayOfVariantOfDouble2
Set move2 = product6.Move
Set move2 = move2.MovableObject
Dim arrayOfVariantOfDouble3(11)
arrayOfVariantOfDouble3(0) = 1.000000
arrayOfVariantOfDouble3(1) = 0.000000
arrayOfVariantOfDouble3(2) = 0.000000
arrayOfVariantOfDouble3(3) = 0.000000
arrayOfVariantOfDouble3(4) = 1.000000
arrayOfVariantOfDouble3(5) = 0.000000
arrayOfVariantOfDouble3(6) = 0.000000
arrayOfVariantOfDouble3(7) = 0.000000
arrayOfVariantOfDouble3( = 1.000000
arrayOfVariantOfDouble3(9) = 0.000000
arrayOfVariantOfDouble3(10) = 0.000000
arrayOfVariantOfDouble3(11) = 0.000000
move2.Apply arrayOfVariantOfDouble3
Set move2 = product6.Move
Set move2 = move2.MovableObject
Dim arrayOfVariantOfDouble4(11)
arrayOfVariantOfDouble4(0) = -0.500000
arrayOfVariantOfDouble4(1) = 0.866025
arrayOfVariantOfDouble4(2) = 0.000000
arrayOfVariantOfDouble4(3) = -0.866025
arrayOfVariantOfDouble4(4) = -0.500000
arrayOfVariantOfDouble4(5) = 0.000000
arrayOfVariantOfDouble4(6) = 0.000000
arrayOfVariantOfDouble4(7) = 0.000000
arrayOfVariantOfDouble4( = 1.000000
arrayOfVariantOfDouble4(9) = 618.246639
arrayOfVariantOfDouble4(10) = 953.055136
arrayOfVariantOfDouble4(11) = 0.000000
move2.Apply arrayOfVariantOfDouble4
Set documents1 = CATIA.Documents
Set productDocument1 = documents1.Item("EPROUVETTES.CATProduct")
Set product1 = productDocument1.Product
Set products1 = product1.Products
O = Inputbox("Nom Eprouvette Originale")
Set product2 = products1.Item(X)
product2.Name = O
'Loop While Msgbox("On Recommence?", VbYesNO,"Restart") = VbYes'
Fabien2709- timide
- Messages : 5
Date d'inscription : 21/04/2016
Localisation : Toulouse
Re: Fonction Rotation Macro Catia V5R21
Bonsoir Fabien,
Pour la boucle, il faut inverser la position du While et du Loop, ça peut donner :
Pour le reste je n'ai trouvé que cette partie de code qui devrait permettre de faire une rotation autour de l'axe X de la valeur "xrot"( attention à l'unité d'angle). Mais je n'ai rien testé:
Pour la boucle, il faut inverser la position du While et du Loop, ça peut donner :
- Code:
Again = True
Do While Again = True
' ici ton code
If Msgbox("On Recommence?", VbYesNO,"Restart") = VbYes'
Then
Again = True
Else
Again = False
End If
Loop
Pour le reste je n'ai trouvé que cette partie de code qui devrait permettre de faire une rotation autour de l'axe X de la valeur "xrot"( attention à l'unité d'angle). Mais je n'ai rien testé:
- Code:
'In X positive rotation
Set move1 = product2.Move
Set move1 = move1.MovableObject
arrayx(0) = 1
arrayx(1) = 0
arrayx(2) = 0
arrayx(3) = 0
arrayx(4) = Xrot
arrayx(5) = Xrot
arrayx(6) = 0
arrayx(7) = - Xrot
arrayx(8) = Xrot
arrayx(9) = 0.000000
arrayx(10) = 0.000000
arrayx(11) = 0.000000
move1.Apply arrayx
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Fonction Rotation Macro Catia V5R21
Bonjour Marc,
Merci pour ton aide.
La boucle marche tres bien.
En ce qui concerne la rotation, ce n'est pas encore tout à fait ca (j'ai du mal à transposer cela pour un mouvement autour de Z, et je ne comprends pas quelle valeur donner pour une rotation à 120°...), mais j'y travaille, tu m'as donné une très bonne base de travail, merci!
Je posterai le code si j'arrive à faire fonctionner le tout!
Merci,
Fabien
Merci pour ton aide.
La boucle marche tres bien.
En ce qui concerne la rotation, ce n'est pas encore tout à fait ca (j'ai du mal à transposer cela pour un mouvement autour de Z, et je ne comprends pas quelle valeur donner pour une rotation à 120°...), mais j'y travaille, tu m'as donné une très bonne base de travail, merci!
Je posterai le code si j'arrive à faire fonctionner le tout!
Merci,
Fabien
Fabien2709- timide
- Messages : 5
Date d'inscription : 21/04/2016
Localisation : Toulouse
Re: Fonction Rotation Macro Catia V5R21
Bonjour Fabien,
J'ai regardé le code de plus près. Voilà les modif à apporter pour tourner autour de Z:
Dans le code la valeur de rotation est saisie dans l'Inputbox mais tu peux la figer à 120°
J'ai regardé le code de plus près. Voilà les modif à apporter pour tourner autour de Z:
Dans le code la valeur de rotation est saisie dans l'Inputbox mais tu peux la figer à 120°
- Code:
Sub CATMain()
Set productDocument1 = CATIA.ActiveDocument
Set product1 = productDocument1.Product
Set products1 = product1.Products
Set product2 = products1.Item("EPROUVETTES.1")
Dim degrad
Dim Zrot
Zrot = InputBox("angle de rotation autour de Z","Z Rotation","0" )
'Conversion de deg en rad
degrad = 0.017453293 '(PI/180)
Zrot = Zrot * degrad
Dim arrayz(11) 'matrice de déplacement
Set move3 = product2.Move
Set move3 = move3.MovableObject
'vecteur X
arrayz(0) = cos(Zrot)
arrayz(1) = sin(Zrot)
arrayz(2) = 0
'vecteur Y
arrayz(3) = -sin(Zrot)
arrayz(4) = cos(Zrot)
arrayz(5) = 0
'vecteur Z
arrayz(6) = 0
arrayz(7) = 0
arrayz(8) = 1
'translation
arrayz(9) = 0.000000
arrayz(10) = 0.000000
arrayz(11) = 0.000000
move3.Apply arrayz
End Sub
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Fonction Rotation Macro Catia V5R21
Bonjour Marc,
Parfait cela fonctionne! Merci beaucoup pour ton aide, je pense que ca va aider beaucoup de gens ici!
Je n'avais pas compris que les coordonnées étaient celles des vecteurs sur XYZ, je pouvais chercher longtemps!
Il reste juste une petite erreur mineure: quand je reboucle, j'ai un message d'erreur et ca ne marche pas (ce n'est pas grave en soi).
Voici comme promis le code complet:
Et voila le message d'erreur qui apparait:
Je vais travailler à resoudre ce probléme cet après midi.
Je te remercie de ton aide en tout cas, je pense pas que j'aurai trouvé tout ca tout seul. J'ai aussi fait une demande auprés de mon entreprise pour être formé au VBA/VBScript, et c'est en cours.
Merci,
Fabien
Parfait cela fonctionne! Merci beaucoup pour ton aide, je pense que ca va aider beaucoup de gens ici!
Je n'avais pas compris que les coordonnées étaient celles des vecteurs sur XYZ, je pouvais chercher longtemps!
Il reste juste une petite erreur mineure: quand je reboucle, j'ai un message d'erreur et ca ne marche pas (ce n'est pas grave en soi).
Voici comme promis le code complet:
- Code:
Language="VBSCRIPT"
Sub CATMain()
Again = True
Do While Again = True
X = Empty
Y = Empty
W = Empty
O = Empty
product5 = Empty
product6 = Empty
product1 = Empty
product2 = Empty
product3 = Empty
product4 = Empty
Set productDocument1 = CATIA.ActiveDocument
Set selection1 = productDocument1.Selection
selection1.Clear
Set product1 = productDocument1.Product
Set products1 = product1.Products
Set product2 = products1.Item("EPROUVETTES.4")
Set products2 = product2.Products
X = Inputbox("Nom Eprouvette")
Set product3 = products2.Item(X)
selection1.Add product3
selection1.Copy
Set productDocument1 = CATIA.ActiveDocument
Set selection2 = productDocument1.Selection
selection2.Clear
selection2.Add product2
selection2.Paste
Set productDocument1 = CATIA.ActiveDocument
Set selection3 = productDocument1.Selection
selection3.Clear
selection3.Add product2
selection3.Paste
Set documents1 = CATIA.Documents
Set productDocument2 = documents1.Item("EPROUVETTES.CATProduct")
Set product4 = productDocument2.Product
Set products3 = product4.Products
Set product5 = products3.Item(X&".1")
Y = Inputbox("Nom copie 1?")
W = Inputbox("Nom copie 2?")
product5.Name = Y
Set product6 = products3.Item(X&".2")
product6.Name = W
'Set Selection = CATIA.ActiveDocument.Selection'
'ReDim InputObjectType(1) : InputObjectType(0)="AxisSystem" : InputObjectType(1)="Line2D"'
'MsgBox("Cliquez sur Ok, puis selectionnez l'axe de rotation")'
'RotationAxis=Selection.SelectElement2(InputObjectType,"Choix de l'axe",true)'
'if (Status = "Cancel") then Exit Sub'
Set move1 = product5.Move
Set move1 = move1.MovableObject
'In Z positive rotation
Dim degrad
Dim Zrot
Zrot = 120
degrad = 0.017453293 '(PI/180)
Zrot = Zrot * degrad
Dim arrayz(11)
arrayz(0) = cos(Zrot)
arrayz(1) = sin(Zrot)
arrayz(2) = 0
arrayz(3) = -sin(Zrot)
arrayz(4) = cos(Zrot)
arrayz(5) = 0
arrayz(6) = 0
arrayz(7) = 0
arrayz(8) = 1
arrayz(9) = 0.000000
arrayz(10) = 0.000000
arrayz(11) = 0.000000
move1.Apply arrayz
Set move2 = product6.Move
Set move2 = move2.MovableObject
'In Z negative rotation
Dim arrayz2(11)
arrayz2(0) = cos(Zrot)
arrayz2(1) = -sin(Zrot)
arrayz2(2) = 0
arrayz2(3) = sin(Zrot)
arrayz2(4) = cos(Zrot)
arrayz2(5) = 0
arrayz2(6) = 0
arrayz2(7) = 0
arrayz2(8) = 1
arrayz2(9) = 0.000000
arrayz2(10) = 0.000000
arrayz2(11) = 0.000000
move2.Apply arrayz2
Set documents1 = CATIA.Documents
Set productDocument1 = documents1.Item("EPROUVETTES.CATProduct")
Set product1 = productDocument1.Product
Set products1 = product1.Products
O = Inputbox("Nom Eprouvette Originale")
Set product2 = products1.Item(X)
product2.Name = O
If Msgbox("On Recommence?", VbYesNO,"Restart") = VbYes Then'
Again = True
Else Again = False
End If
Loop
End Sub
Et voila le message d'erreur qui apparait:
Je vais travailler à resoudre ce probléme cet après midi.
Je te remercie de ton aide en tout cas, je pense pas que j'aurai trouvé tout ca tout seul. J'ai aussi fait une demande auprés de mon entreprise pour être formé au VBA/VBScript, et c'est en cours.
Merci,
Fabien
Fabien2709- timide
- Messages : 5
Date d'inscription : 21/04/2016
Localisation : Toulouse
Re: Fonction Rotation Macro Catia V5R21
Bonjour Fabien,
Pour t'aider dans l'écriture de macro (si tu ne connais pas), il y a le fichier d'aide de Catia "V5Automation.chm" qui se trouve sous "C:\catiaV5\r22sp3\win_b64\code\bin\V5Automation.chm" (le chemin peut varier suivant ton installation)
et un ensemble d'exemples et cours (le "CATIA_Portable_Script_Center_v2.0.chm")que tu peux télécharger ici : http://www.plm-forum.ru/forum/viewtopic.php?f=8&t=1512
Bon courage
Pour t'aider dans l'écriture de macro (si tu ne connais pas), il y a le fichier d'aide de Catia "V5Automation.chm" qui se trouve sous "C:\catiaV5\r22sp3\win_b64\code\bin\V5Automation.chm" (le chemin peut varier suivant ton installation)
et un ensemble d'exemples et cours (le "CATIA_Portable_Script_Center_v2.0.chm")que tu peux télécharger ici : http://www.plm-forum.ru/forum/viewtopic.php?f=8&t=1512
Bon courage
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|