Aller au contenu

MAJ Product durant une macro VBA pour CATIA


Messages recommandés

Posté(e)

A l'aide d'une macro, je simule le taillage d'un engrenage à l'aide d'une boucle for. A chaque itération, il y a un retrait d'une cremailere, copie de solide mort, collage, et ainsi de suite. Comme je fais mini 100 itérations, j'ai créé un UserForm pour définir le nombre d'itérations souhaité (la macro mange beaucoup de puissance si on enf ait trop) et un Label dans ce UserForm pour afficher régulièrement le nombre d'itérations réalisées.

 

Le problème c'est que je n'arrive pas a mettre à jour l'affichage, que ce soit celui du CATProduct ou de la UserForm, du coup. j'ai essayé de définir un viewer et de faire une update mais ça ne marche pas et je ne vois pas trop comment faire d'autre...

 

Pouvez vous m'aider SVP?

Merci

 

Voici le texte de ma macro

 

Dim n As Integer

Dim t As Integer

Dim plateau As Product

Dim DocCrem As PartDocument

Dim CremPpalBody As Body

Dim ProdCrem As Product

Dim ProdRoue As Product

Dim documentroue As Document

Dim partroue As Part

Dim MyViewer As Viewer

 

 

Sub CATMain()

 

Interface.Show

End Sub

 

Sub Affichage()

Set MyViewer = CATIA.ActiveWindow.ActiveViewer

Interface.LabelProg = t

MyViewer.Update

 

 

End Sub

 

 

Sub Simulation()

n = CInt(Interface.IterBox.Text)

Pas = 42 / n

 

Set plateau = CATIA.ActiveDocument.Product

Set DocCrem = CATIA.Documents.Item("cremaillere.CATPart")

Set CremPpalBody = DocCrem.Part.Bodies.Item("Corps principal")

Set ProdCrem = plateau.Products.Item("Cremaillere.1")

Set ProdRoue = plateau.Products.Item("roue.1")

Set documentroue = CATIA.Documents.Item("roue.CATPart")

Set partroue = documentroue.Part

 

For k = 1 To n

t = k

'Incrementation angle

plateau.Parameters.Item("Theta").Value = plateau.Parameters.Item("Theta").Value + Pas

plateau.Update

 

'Retrait de la cremaillere de la roue

Dim retrait As AssemblyBoolean

Set retrait = plateau.GetTechnologicalObject("AssemblyFeatures").AddAssemblyRemove(CremPpalBody, ProdCrem, ProdRoue)

retrait.AddAffectedComponent ProdRoue

 

plateau.Update

 

Dim bodyroue As Body

Set bodyroue = documentroue.Part.Bodies.Item(2)

 

'Copie de la nouvelle roue taillée et collage en tant que solide mort

With CATIA.ActiveDocument.Selection

.Clear

.Add bodyroue

.Copy

.Clear

.Add partroue

.PasteSpecial ("CATPrtResultWithOutLink")

.Clear

End With

plateau.Update

 

Dim assemblyFeats As AssemblyFeatures

Set assemblyFeats = plateau.GetTechnologicalObject("AssemblyFeatures")

 

'Effacement de la fonction d'assemblage créée lors du retrait

assemblyFeats.Remove (assemblyFeats.Count)

 

'Suppression de l'ancienne roue

With CATIA.ActiveDocument.Selection

.Clear

.Add documentroue.Part.Bodies.Item(2)

.Add documentroue.Part.Bodies.Item(2)

.Delete

End With

 

If k = n / 2 Then

Affichage

Else

End If

 

plateau.Update

Next

 

End Sub

 

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité