2016-10-17 4 views
0

Я не могу понять, как создать экземпляр Power-copy, используя макрос VBA. У меня есть CATPart1, у которого есть имя Power-copy «MyPC». И я хочу создать экземпляр этой копии в текущей части. Например, эти входы Power-Copy: «Plane», «Start_point» и «End_point». Я нашел в «CAA V5 VB help», что есть объект InstanceFactory, у которого есть методы для создания копии Power-Copy и UDF. Но мой код не работает.Создайте PowerCopy в CATIA V5R19 с помощью макросов VBA

Sub CATMain() 
Dim partDocument1 As partDocument 
Set partDocument1 = CATIA.ActiveDocument 

Dim part1 As part 
Set part1 = partDocument1.part 

Dim hybridBodies1 As HybridBodies 
Set hybridBodies1 = part1.HybridBodies 

Dim hybridBody1 As HybridBody 
Set hybridBody1 = hybridBodies1.Item("gt") 

Dim mplane As Plane 
Dim StartPnt As point 
Dim EndPnt As point 

Set mplane = hybridBody1.HybridShapes.Item(1) 
Set StartPnt = hybridBody1.HybridShapes.Item(2) 
Set EndPnt = hybridBody1.HybridShapes.Item(3) 

Dim InstFactory As InstanceFactory 
Set InstFactory = part1.HybridShapeFactory 

Dim instance 

InstFactory.BeginInstanceFactory "MyPC", "D:\myFolder\Part1.CATPart" 
InstFactory.BeginInstantiate 

InstFactory.PutInputData "Plane", mplane 
InstFactory.PutInputData "Start_point", StartPnt 
InstFactory.PutInputData "End_point", EndPnt 

Set instance = InstFactory.Instantiate 
hybridBody1.AppendHybridShape instance 
InstFactory.EndInstantiate 

End Sub 

ошибка автоматизации происходит в соответствии

InstFactory.BeginInstanceFactory "MyPC", "D:\myFolder\Part1.CATPart" 

ли мне помочь кто-нибудь, чтобы понять, почему это не работает? Спасибо заранее)

+0

Какая у вас ОС? У вас установлено больше выпусков CATIA? Является ли сетевая установка? Что именно говорит об ошибке? Вы уверены, что ваш Power Copy сделан правильно? – ferdo

+0

@ferdo Hello. ОС - Windows 64bit. Версия CATIA V5R19. Другие версии не установлены. Установка была выполнена системным администратором. PowerCopy выполняется правильно, потому что, если я создаю его вручную, он отлично работает. Ошибка при написании «Ошибка времени выполнения» -2147467259 (80004005): Ошибка автоматизации. Неопределенная ошибка ». У вас есть идеи, как узнать, почему эта ошибка появляется? –

ответ

1

Есть две вещи, которые могут быть причиной ошибки вы имеете:

1 - Использование

Dim InstFactory As InstanceFactory 
Set InstFactory = part1.GetCustomerFactory("InstanceFactory") 

вместо

Dim InstFactory As InstanceFactory 
Set InstFactory = part1.HybridShapeFactory 

2 - Вам необходимо активировать плавающую лицензию KT1, чтобы использовать операцию PowerCopy через API. Чтобы активировать его, перейдите в меню «Катия» -> «Инструменты» -> «Параметры», а затем выберите вкладку «Перекрестные продукты» и активируйте лицензию.

+0

Спасибо за помощь !!! Первый вариант с методом «GetCustomFactory» работает !!! –

+0

Разве нет обходных путей для изменения потребности в лицензии KT1 для обработки операции PowerCopy через API? –

+0

Мне не известны никакие обходные пути для PowerCopy: / – AugustoQ

Смежные вопросы