Как позволить пользователю отменить мою команду AutoCAD - PullRequest
2 голосов
/ 30 августа 2010

В настоящее время я разрабатываю надстройку AutoCAD 2008 в Visual Basic (.Net 3.0, VisualStudio 2010).

Я могу определить свою собственную команду и хочу, чтобы пользователь мог отменить мою команду, нажав клавишу ESC.

В AutoCAD 2010 или более поздней версии существует

HostApplicationServices.Current.UserBreak

метод. Но не в ACAD 2008.

Есть ли у кого-нибудь предложения, как пользователь может отменить мою команду?

1 Ответ

1 голос
/ 09 ноября 2010

Не уверен, что это то, что вы ищете, но я выкину это там. В следующем примере он запрашивает ввод данных пользователем и сохраняет его в getPointResult. Если пользователь выберет «Escape» в это время, getPointResult.Status не будет PromptStatus.OK, поэтому он не будет выполнять код в операторе «if».

Извините, это написано на C #, но должно быть достаточно простым, чтобы понять общую идею.

[CommandMethod("test", CommandFlags.Session)]
    public void Test()
    {
        PromptPointOptions getPointOptions = new PromptPointOptions("Select the top-left location for the view: ");
        Document currentDocument = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
        PromptPointResult getPointResult = currentDocument.Editor.GetPoint(getPointOptions);

        if (getPointResult.Status == PromptStatus.OK)
        {
            //Do work
        }
        else
        {
            //what to do if 'ESC' is pressed during GetPoint()
        }
    }
...