Страница 1 из 1

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

СообщениеДобавлено: 08 ноя 2008 12:14
m-shok
Почемуто сей метод то спокойно выполняется, то выдается следующее ругательство:

Compile error:
Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic

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

СообщениеДобавлено: 11 ноя 2008 07:31
Artem
dim selection as selection dim selection as variant

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

СообщениеДобавлено: 11 ноя 2008 11:07
m-shok
Спасибо! Все заработало :) А в том проекте где и раньше работало там, оказывается, переменная selection вообще была не объявлена.

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

СообщениеДобавлено: 02 апр 2009 16:51
MisterX
В продолжение темы следующий вопрос:

тот же метод в скрипте написанном на 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, стал получать вот такое сообщение:


Что не так? Может кто знает?

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

СообщениеДобавлено: 02 апр 2009 17:01
booSter
Попробуй так:

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


или

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

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

СообщениеДобавлено: 06 апр 2009 07:55
Artem
ReDim ArrayType1(0)

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

СообщениеДобавлено: 07 сен 2009 13:42
m-shok
Я решил перенести макросы в 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 не помогло.

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

СообщениеДобавлено: 04 дек 2009 16:16
ANovikov
Попробуй просто написать

Dim sel

вместо

Dim sel as selection
Dim sel as variant

у меня сработало