Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
АлексЮстасу
Зарегистрирован: 22.06.2012 Сообщения: 104 Откуда: Москва
|
Добавлено: Вт Июн 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 Заголовок сообщения: |
|
|
надо бы сам макрос видеть. но спешу успокоить, очень маловероятно что это баг. |
|
Вернуться к началу |
|
|
Leonid давно здесь сидим
Зарегистрирован: 28.01.2006 Сообщения: 598 Откуда: С.-Петербург
|
Добавлено: Вт Июн 26, 2012 3:31 pm Заголовок сообщения: |
|
|
Да, без кода, как правило, сложно помочь... |
|
Вернуться к началу |
|
|
АлексЮстасу
Зарегистрирован: 22.06.2012 Сообщения: 104 Откуда: Москва
|
Добавлено: Вт Июн 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" |
|
Вернуться к началу |
|
|
АлексЮстасу
Зарегистрирован: 22.06.2012 Сообщения: 104 Откуда: Москва
|
Добавлено: Вт Июн 26, 2012 4:36 pm Заголовок сообщения: |
|
|
Leonid писал(а): | Попробуйте после строчки
MbeSendCommand "PLACE CELL ICON "
добавить строчку
MbeSendCommand "DIALOG CELLMAINTENANCE" |
Спасибо! Обязательно попробую! Только сейчас не могу проверить - у меня микростейшен вдруг перестала вообще открывать файлы.
Еще раз спасибо! Попросил знакомых - проверили, все теперь вызывается и работает!
Вопрос на похожую тему: нет ли в микростейшен возможностей создавать макросы совсем простые? Что-нибудь вроде набора кей-иновских команд с управляющими символами? |
|
Вернуться к началу |
|
|
vikk
Зарегистрирован: 13.09.2006 Сообщения: 88
|
Добавлено: Вт Сен 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 Сообщения: 104 Откуда: Москва
|
Добавлено: Вт Сен 11, 2012 6:19 pm Заголовок сообщения: |
|
|
Что это за язык? |
|
Вернуться к началу |
|
|
|