Как создать автоматизацию, которая получает текстовое значение и устанавливает его в Autocad

Нужно создать макросы /lisp/vba/diesel, чтобы пользователь мог делать следующие шаги:

  • пользователь нажимает на TEXT на схеме и скрипте, получая это текстовое значение (это будет число) в буфер или в varialbe
  • после этого сценария изменив курсор на PO (точка)
  • пользователь нажимает на схему и создает точку
  • наш номер с первых шагов будет автоматически установлен в свойство точки как координата Z

Как лучше это сделать? С макросами можно? Или нужен VBA или что-то еще?

1 ответ

ИМО, самое простое это AutoLISP

(defun c:foo (/ txt data z pt)
  (if (setq txt (car (entsel "\nSelect text: ")))
    (if (wcmatch (cdr (assoc 0 (setq data (entget txt)))) "*TEXT")
      (if (setq z (distof (cdr (assoc 1 data))))
        (if (setq pt (getpoint "\nPick a point: "))
          (command "_.point" (list (car pt) (cadr pt) z))
        )
        (prompt "\nSelected text is not a number.")
      )
      (prompt "\nSelected object is not a text or mtext.")
    )
  )
  (princ)
)
Другие вопросы по тегам