galak82 Posté(e) le 19 mars 2007 Posté(e) le 19 mars 2007 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.ShowEnd Sub Sub Affichage()Set MyViewer = CATIA.ActiveWindow.ActiveViewerInterface.LabelProg = tMyViewer.Update End Sub Sub Simulation()n = CInt(Interface.IterBox.Text)Pas = 42 / n Set plateau = CATIA.ActiveDocument.ProductSet 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 roueDim retrait As AssemblyBooleanSet retrait = plateau.GetTechnologicalObject("AssemblyFeatures").AddAssemblyRemove(CremPpalBody, ProdCrem, ProdRoue) retrait.AddAffectedComponent ProdRoue plateau.Update Dim bodyroue As BodySet bodyroue = documentroue.Part.Bodies.Item(2) 'Copie de la nouvelle roue taillée et collage en tant que solide mortWith CATIA.ActiveDocument.Selection .Clear .Add bodyroue .Copy .Clear .Add partroue .PasteSpecial ("CATPrtResultWithOutLink") .ClearEnd Withplateau.Update Dim assemblyFeats As AssemblyFeaturesSet assemblyFeats = plateau.GetTechnologicalObject("AssemblyFeatures") 'Effacement de la fonction d'assemblage créée lors du retrait assemblyFeats.Remove (assemblyFeats.Count) 'Suppression de l'ancienne roueWith CATIA.ActiveDocument.Selection .Clear .Add documentroue.Part.Bodies.Item(2) .Add documentroue.Part.Bodies.Item(2) .DeleteEnd With If k = n / 2 ThenAffichageElseEnd If plateau.UpdateNext End Sub
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant