Проблема с PspPhysical.GetFunctional

Программирование для CATIA.

Проблема с PspPhysical.GetFunctional

Сообщение Artem » 31 янв 2012 11:56

Хотелось бы получить данные в закладке Object. Пытаюсь запустить CAAScdPspUseCases\CAAPspQueryFunctionPhysical.CATScript на стандартном CAAPspEduIn.CATProduct. Строка Set objPspFunctional = objPspPhysical.GetFunctional постоянно failed :-( Что можно сделать?
Ps. Чето как то совсем все плохо
Dim SchCompFunc 'As PspFunctional
'Set SchCompFunc = objPspWorkbench.GetInterface("CATIAPspFunctional", Prd.ReferenceProduct)
Set SchCompFunc = objPspWorkbench.GetInterface("CATIAPspFunctional", Prd)
-не работает

Код: Выделить всё
Sub CATMain()
Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = productDocument1.Selection
selection1.Search "Type=*,all"
On Error Resume Next
For i = 1 To selection1.Count
Set rr = selection1.Item(i).Value.GetItem("CATIAPspFunctional") 'CATIPspFunctional CATPspFunctional PspFunctional - ничего
If Err.Number <> 0 Then Err.Clear Else MsgBox "Good"
Next
End Sub

- по нулям :-( :-( :-(
r16sp9.......
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Проблема с PspPhysical.GetFunctional

Сообщение Wireless_Fidelity » 31 янв 2012 18:24

Здравствуйте.

У меня на R19 PspFunctional получаются нормально. Завтра пришлю пример.
А пока я бы порекомендовал всё же взять релиз посвежее.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проблема с PspPhysical.GetFunctional

Сообщение Artem » 31 янв 2012 18:46

Благодарю, но к сожалению за релиз решаю не я.Проверю тоже на 19
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Проблема с PspPhysical.GetFunctional

Сообщение Wireless_Fidelity » 31 янв 2012 19:32

Собственно, вот и код (перед запуском в дереве CAAPspEduIn.CATProduct выделяем EQ-157 или EQ-158):

Код: Выделить всё
Sub CATMain()

    Dim objSelection As Selection
    Set objSelection = CATIA.ActiveDocument.Selection
   
    Dim SelectedObject As Object
    Set SelectedObject = objSelection.Item2(1).Value
   
    Dim RootProduct As Product
    Set RootProduct = CATIA.ActiveDocument.Product

    Dim objPspWorkbench As PspWorkbench
    Set objPspWorkbench = RootProduct.GetTechnologicalObject("PspWorkbench")

    Dim objPspApplication As PspApplication
    Set objPspApplication = objPspWorkbench.GetApplication(catPspIDLCATEQT)
    objPspApplication.Initialization

    Dim objPspAppFactory As PspAppFactory
    Set objPspAppFactory = objPspWorkbench.GetInterface("CATIAPspAppFactory", objPspApplication)
   
    'Set SelectedObject = SelectedObject.ReferenceProduct

    '----------------------------
    ' QUERY INTERFACES
    '----------------------------           
    Dim objPspPhysical As PspPhysical
    Set objPspPhysical = objPspWorkbench.GetInterface("CATIAPspPhysical", SelectedObject)

    Dim objPspFunctional As PspFunctional
    Set objPspFunctional = objPspPhysical.GetFunctional()

    MsgBox "Catalog part name: " & objPspFunctional.CatalogPartName

End Sub
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проблема с PspPhysical.GetFunctional

Сообщение Artem » 01 фев 2012 08:56

Спасибо! Не работало вот из-за этого:
Код: Выделить всё
....
Set objLPhysicals = objPspAppFactory.ListPhysicals(objPrdRoot, catPspIDLCATPIP)
For i = 1 To objLPhysicals.Count
      Set objPspPhysical = objLPhysicals.Item(i, "CATIAPspPhysical") '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       Set objPspFunctional = objPspPhysical.GetFunctional()
       If Err.Number <> 0 Then Err.Clear Else MsgBox "good"
 Next
....

Вот с этим все отлично!
Set objPspPhysical = objPspWorkbench.GetInterface("CATIAPspPhysical", CATIA.ActiveDocument.Selection.Item(1).Value)
Ps.
:-) Пытался же чего-то подобное сделать - Set SchCompFunc = objPspWorkbench.GetInterface("CATIAPspFunctional", Prd). Но не доперло, что надо так с более высоким уровнем сделать.
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Проблема с PspPhysical.GetFunctional

Сообщение Artem » 20 фев 2012 09:13

А с piping компонентами у вас работает все нормально? На эквипментах отрабатывает, а на пайпинг компонентах -фланцах там отводах таже ошибка :-(
Ps. 19 sp7 тоже самое....
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: Проблема с PspPhysical.GetFunctional

Сообщение Wireless_Fidelity » 20 фев 2012 13:40

Аналогично. Поэтому для фланцев имя класса вытаскиваем через KW (атрибуты ClassName, CatalogPartName класса PltShpPhysical) + анализ NLS (если нужно)
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: Проблема с PspPhysical.GetFunctional

Сообщение Artem » 20 фев 2012 14:18

Да, вариант спасибо...
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2