2015-12-14 2 views
0

Je travaille sur vba CATIA et j'essaye de créer une fonction pour l'opération de traduction. Mais j'obtiens une erreur en affectant la sortie de la fonction à un objet.Comment créer une fonction de traduction à l'aide de vba CATIA?

Dans l'attente d'une solution.

Merci d'avance !!

Function CreateTranslate(source As Object, value As Double, direction As Double) 

Set partDocument1 = CATIA.ActiveDocument 
Set part1 = partDocument1.Part 

If direction = 1 Then 
     Set hybridShapeFactory1 = part1.HybridShapeFactory 
     Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(1#, 0#, 0#) 

Else 
    If direction = 2 Then 
      Set hybridShapeFactory1 = part1.HybridShapeFactory 
      Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 1#, 0#) 
     Else 
      If direction = 3 Then 
       Set hybridShapeFactory1 = part1.HybridShapeFactory 
       Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 1#) 
       End If 
     End If 
End If 


    Set CreateTranslate = hybridShapeFactory1.AddNewEmptyTranslate() 

    Set reference1 = part1.CreateReferenceFromObject(source) 
    CreateTranslate.ElemToTranslate = reference1 

    CreateTranslate.direction = hybridShapeDirection1 
    CreateTranslate.DistanceValue = value 

End Function 

appel de la fonction:

Set result_of_translate = hybridShapeFactory1.AddNewEmptyTranslate() 
result_of_translate = CreateTranslate(Kotfl, 0, 1) 
+0

Quelle est l'erreur? assurez-vous d'utiliser 'Set' lors de l'attribution ->' Set result_of_translate = CreateTranslate ... ' – WhiteHat

+0

Merci WiteHat .... en utilisant Set travaillé .. :) – user3714887

+0

A bientôt, j'oublie souvent' Set'. Accepterez-vous ma réponse? – WhiteHat

Répondre

1

Lors de la création d'une fonction pour retourner un objet, vous devez utiliser l'instruction Set pour assigner l'objet à une variable ou une propriété.

Set result_of_translate = CreateTranslate(Kotfl, 0, 1)