AutoLISP для проектировщика

Спросить у пользователя: текст и число

Старт базовый урок команда: ОПРОСsetq · getstring · getint · strcat · itoa ~5 мин

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

  • setq — «запомнить в переменную»: (setq n 5) кладёт 5 в переменную n.
  • Семейство get… спрашивает пользователя: getstring — текст, getint — целое число, getpoint — точку на чертеже.

Код

(defun c:ОПРОС (/ nm n)  (setq nm (getstring T "\nНазвание системы: "))  (setq n (getint "\nСколько приборов: "))  (princ (strcat "\nИтого: " nm " — " (itoa n) " шт."))  (princ))
(/ nm n)
— список временных переменных команды: после работы они не остаются в чертеже — привыкайте писать так сразу
getstring T
— спросить строку; T разрешает пробелы в ответе
getint
— спросить целое число — нецелое AutoCAD сам не примет
strcat
— склеить строки в одну
itoa n
— число → строка: princ печатает текст, поэтому число надо «озвучить»

Попробуйте сами

Щёлкните строку, которая спрашивает у пользователя число.

Поменяйте текст вопроса под свою задачу — например «Сколько извещателей: » — и посмотрите на командную строку.

(setq n (getint "\n"))
текст вопроса

Условный результат

Команда: ОПРОС

Сколько приборов:12

Итого: СПС — 12 шт.

Как запустить у себя

  1. 1Скопируйте код кнопкой выше и сохраните в файл с расширением .lsp — в кодировке ANSI (Windows-1251), чтобы русский текст не превратился в «????».
  2. 2Загрузите файл: команда ЗАГПРИЛ (APPLOAD) или просто перетащите файл в окно чертежа.
  3. 3Введите в командной строке: ОПРОС

Пробуйте на копии чертежа. В AutoCAD LT работает начиная с LT 2024.