Как в автокаде подсчитать суммы выделенных "областей" (region)
Всем добрый день, взываю к силе спецов с Пикабу.
Понадобилось мне недавно подсчитать в автокаде сумму площадей уймы областей оставшихся после расчленённого 3D тела.
Областей тьма, каждый выделять по отдельности и вбивать их площадь из свойств в эксель для последующего суммирования та ещё не благодарная рутина.
Вспомнил что был lisp для автоматического подсчёта отдельных отрезков "Linesum.lsp"
Попытался сварганить лисп для аналогичного подсчёта областей по аналогии с помощью Алисы. 🤦♂️ Ага, я наивный дамал, что всё так просто.
Алиса выдала несколько вариантов, но все оказались не рабочими, выкладываю её последний образец кода лиспа:
Код:
(defun C:суммарегионов-ax (/ sset ent itm num tot obj)
(princ "\nВыделите REGION: ")
(setq sset (ssget '((0 . "REGION"))))
(if sset
(progn
(setq num (sslength sset) itm 0 tot 0.0)
(while (< itm num)
(setq ent (ssname sset itm))
;; Получаем объект через vla-get-objectname и считаем площадь
(setq obj (vlax-ename->vla-object ent))
(if (and obj (vlax-method-applicable-p obj 'GetArea))
(progn
(setq tot (+ tot (vlax-invoke obj 'GetArea)))
)
)
(setq itm (1+ itm))
)
(princ (strcat "\nTotal Area = " (rtos tot 2 3) " кв.ед."))
)
(princ "\nНе найдено REGION.")
)
(princ)
)
Но автокад (у меня 2022-й) с упорством религиозного фанатика на каждый вариант кода лиспа рождённого Алисой, в командной строке выдавал квадратуру по нулям, как к одинарно выделенной области, так к нескольким:
Команда: СУММАРЕГИОНОВ-AX
Выделите REGION:
Выберите объекты: Противоположный угол: найдено: 4
Выберите объекты: Противоположный угол: найдено: 3 (2 повторно), всего: 5
Выберите объекты:
Total Area = 0 кв.ед.
Причём результат "0 кв. ед." выдавался как к вертикально, горизонтально так под углом расположенных областей.
Может кто из Гуру поможет в вопросе, в чём тут ошибка, или автоматический подсчёт поверхностей не реален в каде? Увы, в кодинге я разбираюсь как свинота в атомной физике.
С Уважением!
Дополнение.
Думал, что поможет команда "масс-хар" (она же "_massprop") с последующим выделением поверхностей и получением суммарной площади, но нихрена, считает только объединённые области в одной плоскости.
Помог вот этот скрипт от А. Равилиса с форума DWG.RU.
Небезопасный контент (18+)
Авторизуйтесь или зарегистрируйтесь для просмотра
Рейвен
Вышла новая модель для 3D-реконструкции LingBot-Map
Раскрыта новая потоковая модель-основа LingBot-Map (https://huggingface.co/robbyant/lingbot-map) для 3D-реконструкции (позы камер и карты глубины) из видеопотока.
Центральный механизм внимания Geometric Context Attention (GCA) сохраняет три типа геометрического контекста. Якорный контекст позволяет первым кадрам фиксировать масштаб и систему координат. Локальное окно опорных поз содержит последние k кадров с полными визуальными признаками для точной локальной геометрии. Память траектории представляет собой сжатые (6 токенов на кадр) признаки всех предыдущих кадров, вытесненных из окна, для подавления дрейфа.
Подобная система обеспечила стабильный вывод (около 20 FPS, разрешение 518×378) на последовательностях длиной более 10 000 кадров с почти постоянным потреблением памяти.
Двухэтапное обучение от базовой офлайн-модели к потоковой с прогрессивным увеличением длины последовательностей использовало параллельную обработку контекста (Ulysses) и относительную функцию потерь.
Прямой вывод предоставляет наивысшую точность для материалов до примерно 3000 кадров, тогда как VO-режим с разбиением на перекрывающиеся окна и Sim(3)-совмещением годится для задач со сколь угодно длинными роликами.
В результате достигнут state-of-the-art среди потоковых методов на Oxford Spires, ETH3D, 7-Scenes и Tanks and Temples, превосходящий офлайн и оптимизационные подходы по точности поз и качеству плотной реконструкции.
Medusa Rider (Fate/Stay Night)
После начала прохождения Fate/Hollow Ataraxia еще сильнее захотелось сделать модельку Медузы - любимый персонаж, как-никак)
X:
@SillyWalkerD
ArtStation:
https://www.artstation.com/sillywalker









