2015-12-14 6 views
0

Im работает над vba CATIA, и я пытаюсь создать функцию для перевода операции. Но я получаю ошибку в назначении вывода функции объекту.Как создать функцию для перевода с помощью vba CATIA?

В ожидании решения.

Спасибо заранее!

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 

Вызов функции:

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

Какая ошибка? не забудьте использовать 'Set' при назначении ->' Set result_of_translate = CreateTranslate ... ' – WhiteHat

+0

Спасибо WiteHat .... используя Set work .. :) – user3714887

+0

Привет, я часто забываю' Set'. Вы примете мой ответ? – WhiteHat

ответ

1

При создании функции для возврата объекта, вы должны использовать Set заявление присвоить объект переменной или свойства.

Set result_of_translate = CreateTranslate(Kotfl, 0, 1)