VetCAD

LISP для определения высотной отметки.

    1 оценка

CADCleef

размещено: 16 Апреля 2026
обновлено: 17 Апреля 2026
Всех приветствую!
Данный скрипт предназначен для автоматического вычисления и заполнения высотных отметок в атрибутах блоков на чертеже AutoCAD на основе их положения по оси Y относительно заданного "нулевого" блока.
В архиве также уже присутствует блок высотной отметки с настроенным атрибутом.

Описание работы:
Скрипт запрашивает выбор блока с отметкой 0.00 — это устанавливает "проектный нуль".
Из выбранного блока извлекается значение его атрибута "ОТМ" (если атрибут не найден — скрипт использует единственный доступный атрибут блока).
Далее пользователь выбирает другие блоки, для которых требуется рассчитать отметки.
Скрипт вычисляет разницу координат по оси Y между каждым выбранным блоком и нулевым блоком (расчетная точка это base point блока).

На основе этой разницы определяются новые значения высотных отметок:
Если блок выше нуля — значение записывается без знака + (например, 3.70),
Если блок ниже нуля — значение записывается со знаком - (например, -1.25).
Все значения округляются до двух знаков после запятой и записываются в атрибут ОТМ соответствующего блока.

Особенности:

Скрипт работает с любыми блоками, содержащими атрибут ОТМ.
При отсутствии атрибута ОТМ — обновляется существующий единственный атрибут блока.
Все вычисления производятся автоматически без необходимости ручного ввода.
Результат можно сразу визуально проверить на чертеже.

P.S Если у вас кракозябры вместо текста запросов, либо попробуйте прочитать с помощью кодировки UTF-8 либо можете загрузить код из папки ANSI.
LISP для определения высотной отметки.1

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-6 из 6
Ingpro , 16 апреля 2026 в 22:56
#1
Хороший код, спасибо. Но нужно сохранить в кодировке ANSI, иначе кракозябры в запросах:
Готово! Все отметки обновлены (формат: 0.000 /
CADCleef , 17 апреля 2026 в 09:05
#2
Цитата:
Сообщение #1 от Ingpro

Хороший код, спасибо. Но нужно сохранить в кодировке ANSI, иначе кракозябры в запросах:
Готово! Все отметки обновлены (формат: 0.000 /

Благодарю за наводку! Перезолю.
EvgM_KP , 17 апреля 2026 в 15:19
#3
Зачем лисп, если это можно реализовать и полями?
CADCleef , 17 апреля 2026 в 16:11
#4
Цитата:
Сообщение #3 от EvgM_KP

Зачем лисп, если это можно реализовать и полями?

Согласен, но можно и дальше пойти зачем AutoCAD когда можно сделать в Revit? Лично сам я работаю в разных программах, и автокад не тот инстумент с которым я бы начал проектировать объемный объект или любое другое здание/сооружение. Но мне как и многим приходит полуфабрикат который надо довести до ума. Так и случилось что мне было страшно лень перебивать отметки в существующем проекте а там уже были марки в блоке, и как я описывал в приложении к скрипту он может работать и с другими атрибутами, мне было достаточно просто зареплейсить все эти блоки с атрибутом и просто обвести их рамкой используя данный скрипт чем например заново проставлять настроенный блок с якорем и тому подобное. Тем не менее если есть способ быстрее мне было бы интересно его узнать подробнее.
EvgM_KP , 20 апреля 2026 в 10:45
#5
Цитата:
Сообщение #4 от CADCleef

Цитата:Сообщение #3 от EvgM_KP
Зачем лисп, если это можно реализовать и полями?
Согласен, но можно и дальше пойти зачем AutoCAD когда можно сделать в Revit? Лично сам я работаю в разных программах, и автокад не тот инстумент с которым я бы начал проектировать объемный объект или любое другое здание/сооружение. Но мне как и многим приходит полуфабрикат который надо довести до ума. Так и случилось что мне было страшно лень перебивать отметки в существующем проекте а там уже были марки в блоке, и как я описывал в приложении к скрипту он может работать и с другими атрибутами, мне было достаточно просто зареплейсить все эти блоки с атрибутом и просто обвести их рамкой используя данный скрипт чем например заново проставлять настроенный блок с якорем и тому подобное. Тем не менее если есть способ быстрее мне было бы интересно его узнать подробнее.


"и автокад не тот инстумент с которым я бы начал проектировать объемный объект или любое другое здание/сооружение" - да действительно))) скажите это людям, которые до сих пор работают карандашом на кульмане)

В целом, если такова задача стояла, то ок. В описании же не было описано примера ситуации, когда это действительно может помочь, как в Вашем случае.
CADCleef , 20 апреля 2026 в 12:33
#6
Цитата:
Сообщение #5 от EvgM_KP

Цитата:Сообщение #4 от CADCleef
Цитата:Сообщение #3 от EvgM_KP
Зачем лисп, если это можно реализовать и полями?
Согласен, но можно и дальше пойти зачем AutoCAD когда можно сделать в Revit? Лично сам я работаю в разных программах, и автокад не тот инстумент с которым я бы начал проектировать объемный объект или любое другое здание/сооружение. Но мне как и многим приходит полуфабрикат который надо довести до ума. Так и случилось что мне было страшно лень перебивать отметки в существующем проекте а там уже были марки в блоке, и как я описывал в приложении к скрипту он может работать и с другими атрибутами, мне было достаточно просто зареплейсить все эти блоки с атрибутом и просто обвести их рамкой используя данный скрипт чем например заново проставлять настроенный блок с якорем и тому подобное. Тем не менее если есть способ быстрее мне было бы интересно его узнать подробнее.

"и автокад не тот инстумент с которым я бы начал проектировать объемный объект или любое другое здание/сооружение" - да действительно))) скажите это людям, которые до сих пор работают карандашом на кульмане)

В целом, если такова задача стояла, то ок. В описании же не было описано примера ситуации, когда это действительно может помочь, как в Вашем случае.

Я считаю что каждый инструмент имеет свою задачу, и у меня есть свой мини кульман храню на случай фаллаута :) Да возможно этот скрипт найдет и другие применения зависит от креатива пользователя.
zip

2.54 МБ

СКАЧАТЬ