Нужно с использованием AutoLISP или Visual LISP (...
作成日: 2026年11月5日
使用モデル GPT-6 Thinking by Chat01
作成日: 2026年11月5日
使用モデル GPT-6 Thinking by Chat01
Нужно с использованием AutoLISP или Visual LISP (AutoCAD 2021 (RU)) вычислить объем котлована по формуле усеченной пирамиды.
Запросить у пользователя ширину нижнего основания в м (основание - квадрат) и высоту котлована в м.
Вычислить ширину верхнего основания, с учетом высоты и угла 30 градусов. Вычислить объем котлована и вставить
значение в м3 в указанную точку.
Для AutoCAD 2021 (RU) можно создать команду на AutoLISP KOTLOVAN, которая будет запрашивать размеры котлована, автоматически вычислять объем и вставлять результат в указанную точку чертежа.
На вашем чертеже угол 30° задан от вертикали (между вертикальной линией и откосом котлована).
Ширина верхнего основания:
Объем усеченной пирамиды с квадратными основаниями:
где:
Программа будет запрашивать только ширину нижнего основания, высоту и точку вставки результата. Угол 30° задан непосредственно в коде.
Подготовил два файла для AutoCAD 2021:
Для режима Unicode, LISPSYS = 1 или 2
Для классического 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)
Нижнее основание
Высота котлована
Верхнее основание
Угол от вертикали
Расчетный объем котлована
Значение, которое программа вставит в чертеж: V = 46.39 м³
.lsp.APPLOAD (ЗАГРУЗПРИЛ).KOTLOVAN.3.4, затем высоту 2.12.Программа создаст объект МТЕКСТ (MTEXT) с вычисленным объемом. Высота текста берется из системной переменной TEXTSIZE, а текстовый стиль — текущий.
Для русского текста в UTF-8 AutoCAD 2021 поддерживает режим Unicode через LISPSYS; после изменения этой переменной требуется перезапуск AutoCAD. (help.autodesk.com help.autodesk.com)
Код и расчетные значения проверены, но непосредственный запуск в AutoCAD в этой среде не выполнялся.
Готовая программа не требует построения геометрии котлована — достаточно ввести два размера и указать точку вставки.