• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Из Excel (VBA) заменить основную надпись в 2D документе КОМПАСа

Автор vitus-66, 17.11.14, 16:20:43

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

vitus-66

Мне необходимо изменить шифры документов КОМПАСа по списку из Excel.
Подскажите, как из Excel (VBA) открыть 2D документ КОМПАСа и получить доступ к осн.надписи.
На ПК установлен КОМПАС 14.

Пример редактирования штампа c:\Program Files\ASCON\KOMPAS-3D V15\SDK\Basic\step5\
Пример доступа к Компасу c:\Program Files\ASCON\KOMPAS-3D V15\SDK\Basic\ksContrl\
+ Благодарностей: 1

vitus-66


vitus-66

Выскакивает ошибка, что делать?

    Set KOMPAS = New Kompas6API5.Application   
    KOMPAS.Visible = True
    Set ksDoc = KOMPAS.Document2D
                    ksDoc.ksOpenDocument myFileName, False
                   
                    Dim myStamp As Object
                    Dim myNumb As Long   
                    Dim myTextItemParam As TextItemParam
                   
                    Set myStamp = ksDoc.GetStamp()
                    Ok = myStamp.ksOpenStamp
                    Set myTextItemParam = KOMPAS.GetParamStruct(ko_TextLineParam)
                   
                    myNumb = myStamp.ksColumnNumber(2)
                    myTextItemParam = myStamp.ksGetStampColumnText(myNumb)

"здесь выскакивает ошибка
"Run-time error 91
"Object variable or With block variable not set

                    myTextItemParam.s = "ШИФР ЧЕРТЕЖА"
                    Ok = myStamp.ksTextLine(myTextItemParam)
                   
                    Ok = myStamp.ksCloseStamp
                    ksDoc.ksSaveDocument NewFileName
                    ksDoc.ksCloseDocument
    KOMPAS.Quit

Dim iArr As Object
iArr = iStamp.ksGetStampColumnText(numb)
Функция ksGetStampColumnText возвращает динамический массив строк ячейки штампа.

vitus-66

Изучил несколько примеров, везде для работы с текстом в штампе используется объект типа TextItemParam

Set myTextItemParam = KOMPAS.GetParamStruct(ko_TextLineParam)
myTextItemParam.s = "ШИФР ЧЕРТЕЖА"
Ok = myStamp.ksTextLine(myTextItemParam)

Через  Debug выяснил, после прохода первой строки
myTextItemParam = Nothing

потом вылетает Run-time error 91
"Object variable or With block variable not set

vitus-66

Может какую библиотеку в Excel надо подключить?

У меня включено Kompas6API5 и KompasAPI7

vitus-66