Ошибка в VB скрипте

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

Ошибка в VB скрипте

Сообщение кленовый лист » 20 апр 2010 16:32

Добрый день! Пишу скрипты в Кати на VB, попутно изучаю примеры из хелпа. В примерах для модуля Tubing Diagram встречается такой тип данных CATSafeArrayVariant. Во всех скриптах, где он используется, выходит ошибка на строке с объявлением переменной этого типа.
"Dim db2CntrPos(2) As CATSafeArrayVariant" к примеру.
Вылазит окно, которое в приложении.
Не могу понять, чего-то не хватает, или что-то не подключено? Помогите пожалуйста разобраться!
Вложения
кленовый лист
Новичок
Новичок
 
Сообщения: 2
Зарегистрирован: 20 апр 2010 15:08

Re: Ошибка в VB скрипте

Сообщение booSter » 21 апр 2010 06:09

Да, CATSafeArrayVariant - вещь капризная.

И вопросы про неё всплывали неоднократно.
Посмотри тут...
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: Ошибка в VB скрипте

Сообщение Artem » 21 апр 2010 08:18

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

Re: Ошибка в VB скрипте

Сообщение кленовый лист » 21 апр 2010 10:12

Не понял, что значит "из рейда"?
Интересно, что в хелпе, в разделе CAA IDL Typedef Index описаны три типа данных - CATBSTR, CATSafeArrayVariant и CATVariant. Ошибка вылезает на любом из этих типов.
кленовый лист
Новичок
Новичок
 
Сообщения: 2
Зарегистрирован: 20 апр 2010 15:08

Re: Ошибка в VB скрипте

Сообщение brigval » 25 апр 2010 11:45

кленовый лист писал(а):Не понял, что значит "из рейда"?
Интересно, что в хелпе, в разделе CAA IDL Typedef Index описаны три типа данных - CATBSTR, CATSafeArrayVariant и CATVariant. Ошибка вылезает на любом из этих типов.

На VB6 пишу по типу:


Код: Выделить всё
   Dim oAddPlate     As ProductStructureTypeLib.Product
   Dim oProduct      As ProductStructureTypeLib.Product
   Dim oProducts     As ProductStructureTypeLib.Products
   Dim vProducts     As Variant
   Dim vArrayBSTR()  As Variant
   '
   On Error Resume Next
   '
   ReDim vArrayBSTR(0)
   vArrayBSTR(0) = moPlateDoc.FullName
   Set oProduct = moAsseDoc.Product
   Set oProducts = oProduct.Products
   Set vProducts = oProducts                           '!!!!!!
   vProducts.AddComponentsFromFiles vArrayBSTR, "All"  '!!!!!!

и т.д.
То есть, перед обращением к объекту, на котором возникает ошибка, сначала изменяю его тип на Variant
Пока все работает.
Аватара пользователя
brigval
Участник
Участник
 
Сообщения: 74
Зарегистрирован: 03 ноя 2009 14:34


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

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

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

cron