Группы пользователей Autodesk


Обновление функции C:GPath


Использование реакторов

 

Использование реакторов  

Обновление функции C:GPath

Обновим функцию C:GPath, создав в ней реакторы

Для создания реактора в C:GPath

  1. Заменим содержимое файла gpmain.lsp обновленной версией кода. Для этого можно скопировать файл из папки <AutoCAD >\Tutorial\VisualLISP\Lesson6:
  2. (defun C:GPath (/

    gp_PathData

    gp_dialogResults

    PolylineName

    tileList

    )

    (setvar "OSMODE" 0) ;; Отключают объектную привязку

    ;|

    ;; Lesson 6 - добавление фиктивного реактора команды в AutoCAD

    ;; However, it would be undesirable to react to every

    ;; drawing of a circle should the COMMAND tile creation

    ;; method be chosen by the user. So, disable the

    ;; *commandReactor* in case it exists.

    |;

    (if *commandReactor*

    (progn

    (setq *commandReactor* nil)

    (vlr-remove-all :VLR-Command-Reactor)

    )

    )

    ;; Запрос на ввод: путь к местоположению и

    ;; direction, then for path parameters. Continue only if you

    ;; have valid input. Store the data in gp_PathData.

    (if (setq gp_PathData (gp:getPointInput))

    (if (setq gp_dialogResults

    (gp:getDialogInput

    (cdr (assoc 40 gp_PathData))

    ) ;_ end of gp:getDialogInput

    ) ;_ end of setq

    (progn

    ;; Now take the results of gp:getPointInput and append this to

    ;; добавленная информация передается с помощью функции gp:getDialogInput

    (setq gp_PathData (append gp_PathData gp_DialogResults))

    ;; На этом этапе все данные, указанные пользователем, введены

    ;; Draw the outline, storing the resulting polyline "pointer"

    ;; в переменную, именуемую PolylineName

    (setq PolylineName (gp:drawOutline gp_PathData))

    ;; Next, it is time to draw the tiles within the boundary.

    ;; The gp_tileList contains a list of the object pointers for

    ;; the tiles. By counting up the number of points (using the

    ;; length function), we can print out the results of how many

    ;; tiles were drawn.

    (princ "\nThe path required ")

    (princ

    (длина

    (setq tileList (gp:Calculate-and-Draw-Tiles gp_PathData))




    Начало  Назад  Вперед



    Книжный магазин