(изменено: Владимир Иванов, 26 января 2012г. 05:58:36)

Тема: прерывание каманд autocad

добрый день, решал задачу и столкнулся с проблемой: через vba пользователю предлагается открыть чертеж и выбрать на нем текст, текст отправляю в переменную, для выбора текста собрал такую конструкцию
(засадное, по моему мнению, место кода)
Set ADoc = ACad.Application.Documents.Open(filenameACad)
ACad.Visible = True

strPrmt = vbCr & "Выбирите код шкафа" & ":"
ADoc.Utility.GetEntity textobj, vPnt, strPrmt

CABINET_ACAD = textobj.TextString

MsgBox CABINET_ACAD
finish:
On Error Resume Next 'если приложение уже было закрыто
ACad.Quit
Set ADoc = Nothing
Set ACad = Nothing

Если запускать через RUN выбор пользователем объекта прерывается, что и пишется в командной строке автокада "прервано",само сообщение "выбирите код шкафа появляется", мэсаджбокс вообще игнорится, затем приложение благополучно закрывается и выгружается из памяти, НО ЕСЛИ запустить пошагово через F8 все работает как надо, в итоге получаю нужный текст сообщением

есть мысль что дело в том, что когда пользователю нужно произвести выбор фокус не устанавливается на автокад,  в пошаговом режиме то я сам тыкаю на окошко акада...подскажите,пожалуйста как доработать этот кусок

Re: прерывание каманд autocad

Попробуй этот код




StartCountdown(5.0, 0.1) ' Cчетчик задержки примерно 5 сек.---Эта строка вставляется перед строкой , на которой программа останавливается. Если после остановки код всетаки  выполняется клавишей F8, то будет работать железно. Время можешь устанавливать опытно.   


Private Sub StartCountdown(ByVal Duration As Double,
                              ByVal Increment As Double)
        Dim Start As Double = DateAndTime.Timer
        Dim ElapsedTime As Double = 0
        Do While ElapsedTime < Duration
            ElapsedTime = DateAndTime.Timer - Start
        Loop
    End Sub

Re: прерывание каманд autocad

хмм..интересно, попробую