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