Нужно с использованием AutoLISP или Visual LISP (...

Создано: 5 ноября 2026 г.

Отвечено с использованием GPT-6 Thinking от Chat01

Вопрос

V котлована.png

Нужно с использованием AutoLISP или Visual LISP (AutoCAD 2021 (RU)) вычислить объем котлована по формуле усеченной пирамиды.
Запросить у пользователя ширину нижнего основания в м (основание - квадрат) и высоту котлована в м.
Вычислить ширину верхнего основания, с учетом высоты и угла 30 градусов. Вычислить объем котлована и вставить
значение в м3 в указанную точку.

Мысль

Parsing the geometry

I’m interpreting the 30° angle as measured from the vertical, matching the displayed dimensions. I’ll calculate the upper base from the lower base and height, then use the frustum-volume formula and provide compatible AutoLISP code.

Preparing AutoLISP

I’m keeping the script Unicode-friendly while preserving Russian prompts. The calculation uses the 30° vertical angle, derives the upper base, computes volume, and places a readable result label in the drawing.

Refining compatibility

I’m accounting for AutoCAD 2021’s Unicode settings so Russian prompts display correctly. I’ll also keep the text label adaptable to the drawing’s current text size rather than assuming fixed units.

Finishing the script

I’m adding input validation, the geometric relation b=a+2h/3b=a+2h/\sqrt3, volume calculation, and a drawing label that uses the current text height and Unicode superscript notation.

Prepared and finalized a compatible AutoLISP geometry script

Мысль

Preparing the deliverable

I’m finalizing a UTF-8 AutoLISP version with validated inputs, the frustum formula, Russian prompts, and an MTEXT result label using the drawing’s current text size.

Prepared the deliverable

Мысль

Finalizing the code

I’m choosing a straightforward entity-creation method and avoiding fragile escape handling. The result will calculate the volume, report it in the command line, and insert a labeled MTEXT object at the chosen point.

Finalized the code

Searched 13 websites

Мысль

Computed trapezoid volumes and generated AutoLISP excavation files

Worked for 1m 53s

Ответ

Для AutoCAD 2021 (RU) можно создать команду на AutoLISP KOTLOVAN, которая будет запрашивать размеры котлована, автоматически вычислять объем и вставлять результат в указанную точку чертежа.

1. Формула расчета

На вашем чертеже угол 30° задан от вертикали (между вертикальной линией и откосом котлована).

Ширина верхнего основания:

B=a+2Htan⁡(30∘)B=a+2H\tan(30^\circ)

Объем усеченной пирамиды с квадратными основаниями:

V=H3(a2+B2+aB)\boxed{V=\frac{H}{3}(a^2+B^2+aB)}

где:

  • aa — ширина нижнего квадратного основания, м;
  • BB — вычисляемая ширина верхнего основания, м;
  • HH — высота котлована, м;
  • VV — объем котлована, м³.

Программа будет запрашивать только ширину нижнего основания, высоту и точку вставки результата. Угол 30° задан непосредственно в коде.

2. Готовая программа AutoLISP

Подготовил два файла для AutoCAD 2021:

KOTLOVAN_UTF8.lsp

Для режима Unicode, LISPSYS = 1 или 2


KOTLOVAN_ANSI1251.lsp

Для классического Visual LISP, LISPSYS = 0

Код программы:

lisp
(defun c:KOTLOVAN (/ a h b v pt text-height label) (initget 7) (setq a (getreal "\nШирина нижнего основания (м): ")) (initget 7) (setq h (getreal "\nВысота котлована (м): ")) ; Угол откоса 30 градусов от вертикали ; B = a + 2*h*tan(30) (setq b (+ a (/ (* 2.0 h) (sqrt 3.0)))) ; Объем усеченной квадратной пирамиды (setq v (* (/ h 3.0) (+ (* a a) (* b b) (* a b)))) (princ (strcat "\nШирина верхнего основания: " (rtos b 2 2) " м")) (princ (strcat "\nОбъем котлована: " (rtos v 2 2) " м3")) ; Запрос точки вставки (setq pt (getpoint "\nУкажите точку вставки объема: ")) (if pt (progn ; Высота текста из настроек чертежа (setq text-height (getvar "TEXTSIZE")) (if (or (null text-height) (<= text-height 0.0)) (setq text-height 0.25) ) ; Формирование надписи в м3 (setq label (strcat "V = " (rtos v 2 2) " м\\U+00B3") ) ; Создание многострочного текста (if (entmake (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(100 . "AcDbMText") (cons 10 (trans pt 1 0)) (cons 40 text-height) '(71 . 1) (cons 7 (getvar "TEXTSTYLE")) (cons 1 label) ) ) (princ "\nОбъем добавлен в чертеж.") (princ "\nОшибка при создании текста.") ) ) (princ "\nТочка вставки не указана; текст не создан.") ) (princ) ) (princ "\nПрограмма загружена. Команда: KOTLOVAN") (princ)

3. Проверка на размерах вашего чертежа

Нижнее основание

3,40 м

Высота котлована

2,12 м

Верхнее основание

5,85 м

Угол от вертикали

30°


Расчетный объем котлована

46,39 м³

Значение, которое программа вставит в чертеж: V = 46.39 м³

4. Как запустить в AutoCAD 2021 (RU)

  1. Скачайте файл .lsp.
  2. В AutoCAD введите команду APPLOAD (ЗАГРУЗПРИЛ).
  3. Выберите скачанный файл и нажмите «Загрузить».
  4. В командной строке введите KOTLOVAN.
  5. Введите ширину нижнего основания 3.4, затем высоту 2.12.
  6. Укажите мышью точку вставки объема в чертеже.

Программа создаст объект МТЕКСТ (MTEXT) с вычисленным объемом. Высота текста берется из системной переменной TEXTSIZE, а текстовый стиль — текущий.

Для русского текста в UTF-8 AutoCAD 2021 поддерживает режим Unicode через LISPSYS; после изменения этой переменной требуется перезапуск AutoCAD. (help.autodesk.com help.autodesk.com)

Код и расчетные значения проверены, но непосредственный запуск в AutoCAD в этой среде не выполнялся.

Готовая программа не требует построения геометрии котлована — достаточно ввести два размера и указать точку вставки.

Поделиться этим Q&A