Ругань на SelectElement2,3,4 в VB

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

Ругань на SelectElement2,3,4 в VB

Сообщение m-shok » 08 ноя 2008 12:14

Почемуто сей метод то спокойно выполняется, то выдается следующее ругательство:

Compile error:
Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва

Re: Ругань на SelectElement2,3,4 в VB

Сообщение Artem » 11 ноя 2008 07:31

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

Re: Ругань на SelectElement2,3,4 в VB

Сообщение m-shok » 11 ноя 2008 11:07

Спасибо! Все заработало :) А в том проекте где и раньше работало там, оказывается, переменная selection вообще была не объявлена.
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва

Re: Ругань на SelectElement2,3,4 в VB

Сообщение MisterX » 02 апр 2009 16:51

В продолжение темы следующий вопрос:

тот же метод в скрипте написанном на CATScript работает, а когда я его записываю в VB Studio (делаю небольшое приложение с Виндоуз формами), получаю следующие сообщения:

Кусо моего кода, при нажатии на кнопку в форме должен производиться выбор точки в CATIA:

Код: Выделить всё
Public PartDoc As PartDocument
Public PartOfPartDoc As Part

Private Sub bSelectPoint_Click()

   Set PartDoc = CATIA.ActiveDocument

                                                                         'Check if active document is CATPart
   If Right(PartDoc.Name, 7) <> "CATPart" Then
      MsgBox ("Активный документ - не .CATPart." & Chr(10) & "Активируйте .CATPart"
      Exit Sub
   End If

Set PartOfPartDoc = PartDoc.Part

Dim Sel as Selection     'Variant
Set Sel = PartDoc.Selection

MsgBox ("Выберите точку.")

ReDim ArrayType1(1)
ArrayType1(0) = "HybridShapePointExplicit"

Dim Status As String
Status = Sel.SelectElement2(ArrayType1, "Select Point", False)

End Sub



Если переменная Sel определена как Selection, получаю вот такое сообщение:


Попробовал заменить Selection на Variant, стал получать вот такое сообщение:


Что не так? Может кто знает?
Учи матчасть.
Аватара пользователя
MisterX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 02 окт 2007 23:56

Re: Ругань на SelectElement2,3,4 в VB

Сообщение booSter » 02 апр 2009 17:01

Попробуй так:

Код: Выделить всё
...
Status = CallByName( Sel,  "SelectElement2", 1, ArrayType1, "Select Point", False )
...


или

Код: Выделить всё
...
Status = CallByName( Sel,  "SelectElement2", vbMethod, ArrayType1, "Select Point", False )
...
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Ругань на SelectElement2,3,4 в VB

Сообщение Artem » 06 апр 2009 07:55

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

И снова коварство

Сообщение m-shok » 07 сен 2009 13:42

Я решил перенести макросы в VS2005,и SelectElement2 стал просто останавливать прогу не делая того что от него требуется.
При этом другие методы Selection работают нормально.

Код: Выделить всё
 Dim sel As Selection

      ...
 sel = CATIA.ActiveDocument.Selection
      ...
 Dim Status As String
...
 Dim Sels As String() = New String() {ObjType}
   ...
 AppActivate(CATIA.Caption)
 Status = sel.SelectElement2(Sels, Message, True)

   

Интересно еще и то, что он не ругается на бредовые значения ObjType: останавливает программу и все.
CallByName не помогло.
m-shok
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 20 авг 2008 16:08
Откуда: Москва

Re: Ругань на SelectElement2,3,4 в VB

Сообщение ANovikov » 04 дек 2009 16:16

Попробуй просто написать

Dim sel

вместо

Dim sel as selection
Dim sel as variant

у меня сработало
ANovikov
Новичок
Новичок
 
Сообщения: 9
Зарегистрирован: 18 ноя 2009 14:11


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

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

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