Utilisation de macro sous CATIA V5

Utilisation de macro sous CATIA V5 - Infographie 3D - Graphisme

Marsh Posté le 06-04-2017 à 15:07:14    

Bonjour à tous,
 
Etant nouveau, j'espère que ma question sera adaptée au style de ce forum.
 
Je travaille beaucoup sur CATIA V5 et je cherche à améliorer mes talents de "programmeur" en faisant appel aux macros (et donc au VBA) sur CATIA. Cependant, ce n'est pas chose facile et je fais donc appel à vos conseils.
 
Je souhaiterais comprendre comment faire pour paramétrer une fonction de CATIA. Je m'explique. Sous le module générative shape design, j'aimerais pouvoir, après utilisation de la macro, faire appel à la fonction "création de sphères". Une boîte de dialogue devrait apparaître en demandant à l'utilisateur le rayon de la sphère mini et le rayon de la sphère maxi voulu, et un calcul automatique (interne à la macro) se ferai pour calculer le pas idéal à avoir entre ces deux valeurs pour avoir un total de 40 sphères.  
 
La macro générerait donc les 40 sphères automatiquement et par ordre croissant suivant le repère standard de CATIA.
 
Je ne sais absolument pas par où commencer, je suis débutant en VBA... Je suis donc preneur de tout commentaire ou aide! Si ma demande est confuse n'hésitez pas à me poser des questions pour plus de détails, je me ferai un plaisir d'y répondre.
 
Au plaisir de discuter à vous.
 
Cordialement,
 
PuraVidaGuy

Reply

Marsh Posté le 06-04-2017 à 15:07:14   

Reply

Marsh Posté le 06-04-2017 à 15:48:35    

Ce sujet a été déplacé de la catégorie Hardware vers la categorie Graphisme par TotalRecall


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 10-04-2017 à 13:25:26    

Bonjour,
 
Ta macro semble assez facile sur le papier. Je te conseilles de passer par le macro recorder pour enregistrer le code produisant une sphère et l'adapter pour en produire 40 de rayons différents.
 
Macro Recorder: Tools > Macros > Start recording. ensuite Créer une sphère et appuyer sur le bouton stop. Penser à indiquer de créer directement du code VBA.
 
Au final, ca ressemblera à ca. Pour le moment, il n'y a pas de controle sur les entrées utilisateur, la présence ou non des éléments dans la part, etc.
 

Public part As part
 
 
Sub CATMain()
 
Dim partDocument As partDocument
Dim hybridBodies1 As HybridBodies
Dim TargetBody As HybridBody
Dim hybridShapes1 As HybridShapes
 
Set partDocument = CATIA.ActiveDocument
Set part = partDocument.part
Set hybridBodies1 = part.HybridBodies
Set TargetBody = hybridBodies1.Item("Geometrical Set.1" )
 
Set hybridShapes1 = TargetBody.HybridShapes
 
Dim CenterPoint As HybridShapePointCoord
Set CenterPoint = hybridShapes1.Item("CenterPoint" )
 
Dim RefPoint As Reference
Set RefPoint = part.CreateReferenceFromObject(CenterPoint)
 
Dim axisSystem1 As AxisSystem
Set axisSystem1 = part.AxisSystems.Item(1)
 
Dim RefAxisSystem As Reference
Set RefAxisSystem = part.CreateReferenceFromObject(axisSystem1)
 
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part.HybridShapeFactory
 
Dim LowerLimit As Double
Dim UpperLimit As Double
 
LowerLimit = CDbl(InputBox("Input the lower radius", "Lower radius" ))
UpperLimit = CDbl(InputBox("Input the upper radius", "Upper radius" ))
 
Dim I As Integer
Dim Step As Double
Step = (UpperLimit - LowerLimit) / (20 - 1)
Dim CurrentRadius As Double
For I = 0 To 20 - 1
    CurrentRadius = LowerLimit + I * Step
    CreateSphere RefPoint, RefAxisSystem, CurrentRadius, TargetBody
Next
 
 
 
End Sub
 
Sub CreateSphere(RefCenterPoint As Reference, RefAxisSystem, Radius, TargetGeometricalSet As HybridBody)
    Dim hybridShapeFactory1 As HybridShapeFactory
    Set hybridShapeFactory1 = part.HybridShapeFactory
     
    Dim hybridShapeSphere1 As HybridShapeSphere
    Set hybridShapeSphere1 = hybridShapeFactory1.AddNewSphere(RefCenterPoint, RefAxisSystem, Radius, -45#, 45#, 0#, 180#)
    hybridShapeSphere1.Limitation = 1
    TargetGeometricalSet.AppendHybridShape hybridShapeSphere1
    hybridShapeSphere1.Name = "Sphere_" & Radius
    part.UpdateObject hybridShapeSphere1
     
End Sub


Message édité par ptittom le 10-04-2017 à 13:46:35
Reply

Marsh Posté le 12-05-2017 à 11:09:51    

Bonjour ptittom,
 
Désolé de ne répondre que maintenant, je n'avais pas vu que tu avais répondu. Je te remercie pour tes conseils, après quelques essais j'ai réussi à faire exactement ce que je voulais, et en effet l'outil recording est vraiment très utile.
 
Merci encore!

Reply

Marsh Posté le 07-07-2018 à 11:40:22    

Bonjour puravidaguy.
 
 Je suis débutante sur VB et j'aimerai faire un macro un peu comme le tien mais juste le propre génère des sphères sur des points bien définies à l"avance vous pouvez m'orienter de ce sens  
 merci d'avance

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed