💡 Автоматизация и LISP

Переменные и типы данных в AutoLISP: числа, строки, списки

👁 10 просмотров ⏱ 1 мин чтения ✍️ Dmitry Viborg 🗓 обновлено 08.04.2026

Важно: Материал носит справочный характер и не заменяет индивидуальную консультацию профильного специалиста.
Внимание: Материал носит информационный характер. При работе с автоматизацией в профессиональных проектах рекомендуем проверять код в тестовой среде и консультироваться с опытными разработчиками. Некоторые технические детали могут изменяться в разных версиях AutoCAD.

AutoLISP — язык программирования для автоматизации задач в AutoCAD, использующий динамическую типизацию. Переменные не объявляются с явным указанием типа — тип определяется значением, которое им присваивается. Основные типы данных: целые числа (INT), вещественные числа (REAL), строки (STR), списки (LIST) и символы. Понимание этих типов необходимо для создания стабильных скриптов, обработки геометрии и работы с данными чертежей.

Система типов данных AutoLISP

Динамическая типизация означает, что одна переменная в разные моменты может содержать значения разных типов. Это упрощает написание кода, но требует внимательности — ошибки типов могут возникать во время выполнения программы.

Основные типы данных:

  • Целые числа (integer) — целочисленные значения
  • Вещественные числа (real) — числа с плавающей точкой
  • Строки (string) — текстовые данные
  • Списки (list) — упорядоченные наборы элементов
  • Символы (symbol) — идентификаторы переменных и функций

Числовые типы данных

Целые числа

Целые числа представляют целочисленные значения. Диапазон может зависеть от версии AutoCAD и платформы. Обычно поддерживаются 32-битные целые числа со знаком.

Примеры присвоения целых чисел:

(setq counter 100)
(setq angle 90)
(setq negative_value -5)

Вещественные числа

Вещественные числа (числа с плавающей точкой) используются для представления дробных значений. Записываются с точкой в качестве разделителя.

Примеры вещественных чисел:

(setq pi_value 3.14159)
(setq length 25.5)
(setq small_number 0.001)

Важное отличие: целое число 5 и вещественное число 5.0 — разные значения с точки зрения типа данных, хотя mathematically эквивалентны.

Строки и текстовые данные

Строки представляют текстовую информацию. Ограничиваются двойными кавычками. Максимальная длина строки может ограничиваться версией AutoCAD.

Примеры работы со строками:

(setq message "Hello, World!")
(setq layer_name "A-WALL")
(setq empty_string "")

Строки используются для вывода сообщений пользователю, имен объектов, путей к файлам и других текстовых данных.

Списки — мощный инструмент AutoLISP

Списки — фундаментальная структура данных в LISP-языках. В AutoLISP списки используются для представления точек координат, наборов данных, аргументов функций.

Примеры списков:

(setq point '(1.0 2.0 0.0)) ; точка в 3D пространстве
(setq colors '("red" "green" "blue")) ; список строк
(setq mixed_list '(1 "text" 3.14)) ; смешанный список

Списки создаются с помощью функции list или цитируются апострофом для предотвращения вычисления.

Ограничения и типичные проблемы

Динамическая типизация требует внимательной работы с типами данных. Распространённые проблемы:

  • Смешение целых и вещественных чисел в вычислениях
  • Ожидание числа при получении строки
  • Неправильное формирование списков координат
  • Превышение диапазонов числовых типов

Рекомендации по избежанию ошибок:

  • Явно преобразовывать типы при необходимости
  • Проверять типы данных в критических участках кода
  • Использовать соответствующие префиксы в именах переменных (n для чисел, s для строк)
  • Тестировать скрипты с разными входными данными

Проверка редактора: уточнить актуальные ограничения на диапазоны числовых типов в последних версиях AutoCAD, проверить примеры кода на соответствие современным стандартам.

$ rate_article --post-id=284

Оцените статью
// Автор Dmitry Viborg

IT-специалист, автор материалов на promo-sa.ru

//

Читайте также

Автоматическая нумерация объектов в AutoCAD через LISP-скрипты позволяет значительно ускорить процесс разметки чертежей. Базовый скрипт последовательной нумерации состоит из функций выбора объектов, установки начального значения и инкрементального увеличения…

AutoLISP — это диалект языка LISP, встроенный в AutoCAD для автоматизации задач черчения и проектирования. Разработчики используют его для создания пользовательских команд, обработки данных и расширения стандартного функционала…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *