Список форумов Конференция САПР Bentley MicroStation Конференция САПР Bentley MicroStation
www.ustation.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

вставка Cell в макросе

 
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное
Предыдущая тема :: Следующая тема  
Автор Сообщение
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Вт Июн 26, 2012 1:01 pm    Заголовок сообщения: вставка Cell в макросе Ответить с цитатой

Сделали макрос для вставки Cell с последующим разворотом по 3-м точкам в MSv8i - выбирается нужный Cell из окна Place Cell, сразу можно развернуть. Работает.
Перевели этот же макрос в MSv8, а окно выбора Cell не появляется. Причем, если запустить отладку, то появляется, а вне отладки - выбрать нужный Cell не получается.
В чем может быть дело? Это какой-то баг 8-й версии? Как это обойти?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
beer



Зарегистрирован: 01.02.2006
Сообщения: 215
Откуда: Москва

СообщениеДобавлено: Вт Июн 26, 2012 1:33 pm    Заголовок сообщения: Ответить с цитатой

надо бы сам макрос видеть. но спешу успокоить, очень маловероятно что это баг.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Вт Июн 26, 2012 3:31 pm    Заголовок сообщения: Ответить с цитатой

Да, без кода, как правило, сложно помочь...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Вт Июн 26, 2012 3:33 pm    Заголовок сообщения: Ответить с цитатой

Макрос на BASIC:
Код:
Sub main
'   Start a command
    Dim point as MbePoint
    Dim view as Integer
   
Запуск команды простановки объекта
    MbeSendCommand "PLACE CELL ICON "
'Отбираем команды пользователя   
    Do
'Читаем все типы ввода   
        MbeGetInput MBE_DataPointInput, _
                    MBE_ResetInput,  _
                    MBE_CommandInput, _
                    MBE_KeyInInput
'Если эта команда точка вставки, то посылаем команду вставить файл
        If MbeState.inputType = MBE_DataPointInput Then
            stat = MbeState.getInputDataPoint(point, view)
            MbeSendDataPoint point, 1%               
'Все остальные команды           
        Else
'Передаем на вход команде                   
           MbeSendLastInput
'Если нажат RESET, то выходим из программы
           If MbeState.inputType = MBE_ResetInput Then
                Goto done
           End If
        End If
'Цикл пока не будет точки вставки
    Loop While MbeState.inputType <> MBE_DataPointInput

done:   
End Sub

Но даже если мы записываем макрос только выбора-вставки Cell прямо средствами MSv8, то он предлагает вставить активный Cell, а окно выбора Cell не появляется.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Leonid
давно здесь сидим


Зарегистрирован: 28.01.2006
Сообщения: 598
Откуда: С.-Петербург

СообщениеДобавлено: Вт Июн 26, 2012 3:49 pm    Заголовок сообщения: Ответить с цитатой

Попробуйте после строчки
MbeSendCommand "PLACE CELL ICON "
добавить строчку
MbeSendCommand "DIALOG CELLMAINTENANCE"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Вт Июн 26, 2012 4:36 pm    Заголовок сообщения: Ответить с цитатой

Leonid писал(а):
Попробуйте после строчки
MbeSendCommand "PLACE CELL ICON "
добавить строчку
MbeSendCommand "DIALOG CELLMAINTENANCE"

Спасибо! Обязательно попробую! Только сейчас не могу проверить - у меня микростейшен вдруг перестала вообще открывать файлы.

Еще раз спасибо! Попросил знакомых - проверили, все теперь вызывается и работает!

Вопрос на похожую тему: нет ли в микростейшен возможностей создавать макросы совсем простые? Что-нибудь вроде набора кей-иновских команд с управляющими символами?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vikk



Зарегистрирован: 13.09.2006
Сообщения: 87

СообщениеДобавлено: Вт Сен 11, 2012 2:21 pm    Заголовок сообщения: Ответить с цитатой

>нет ли в микростейшен возможностей создавать макросы совсем простые?
>Что-нибудь вроде набора кей-иновских команд с управляющими символами?

Конечно есть.
Вот, например, можно так:
Код:

;   TOPTXT.UCM
;
;   DESCRIPTION:
;      Проверка топологии
;      Удаление одинаковых текстовых строк (по координатам)
;
;   Initialize
;   ----------
   KEY 'NOECHO'   ; Disable messages
   CMD NULCMD
   SET WWSECT=0   ; Make sure to start searching
   SET WWBYTE=0   ;  from beginning of design file
   SET CUREBL = WWSECT
   SET CUREBY = WWBYTE
;   SET R0 = DFSECT         ; point end-of-file
;   SET R1 = DFBYTE
;   
;   Main Routine
;   ------------
START:
   MSG 'cfTOPTXT.UCM Start'
   SET I2=0              ; счетчики
   SET I3=0
   SET I4=0
;
LOOP:
  RED CUREBL,CUREBY
  TST RELERR ne 0,FINISH  ; 15-100 (Miscellaneous)
  SET R0=ELEBLK           ;next element
   SET R1=ELECNT
  TST UELETY ne 17,skip   ; 15-104 (DGNBUF) Type 17 - text
; TST XYZLEV ne ACTLEV, skip ; только активный уровень!
;
  SET I2 = I2+1
  SET I0=TX.ORG(1)        ; сохранили координаты текста
   SET I1=TX.ORG(2)
L2:
   SET CUREBL=ELEBLK    ;next element
   SET CUREBY=ELECNT
    RED CUREBL,CUREBY
    TST RELERR ne 0,L3      ; 15-100 (Miscellaneous)
    TST UELETY ne 17,L2     ; 15-104 (DGNBUF) Type 17 - text
      SET I4 = I4+1
    TST I0 ne TX.ORG(1) L2
    TST I1 ne TX.ORG(2) L2
    SET UELETY=UELETY!0X80  ; del text
    WRT CUREBL,CUREBY
    SET I3 = I3+1           ; сколько всего удалили строк 
    go L2
;
L3:
    set MSG = 'prnTxt '+i2
    set MSG = MSG+' del '
     set MSG = MSG+I3
    set MSG=MSG+' / '
     set MSG=MSG+I4
     msg MSG
SKIP:
   SET CUREBL = R0      ;next element
    SET CUREBY = R1       
   SET I4 = 0
   go LOOP
;
;   Exit
;   ----
FINISH:
   MSG 'er '   ; Clear Error field
  KEY 'update all' ; обновить вид
EXITUC:
   MSG 'cf '   ; Clear Command field
   MSG 'stTopTxt exited'   ; Display status
  set MSG = 'prПроверено '+i2
  set MSG = MSG+' Удалено '
  set MSG = MSG+I3
  msg MSG
   CMD NULCMD
   KEY 'ECHO'   ; Enable messages
   END
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АлексЮстасу



Зарегистрирован: 22.06.2012
Сообщения: 103
Откуда: Москва

СообщениеДобавлено: Вт Сен 11, 2012 6:19 pm    Заголовок сообщения: Ответить с цитатой

Что это за язык?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Конференция САПР Bentley MicroStation -> Прикладное Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group