Тема: Суммирование чисел
Задачка такая: рисуются схемы прокладки тел. кабелей не в масштабе. Длина каждого пролёта указывается просто DTEXT'ом. Существут ли возможность сложить эти величины и получить суммарную длину трассы?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → Разное → Суммирование чисел
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Задачка такая: рисуются схемы прокладки тел. кабелей не в масштабе. Длина каждого пролёта указывается просто DTEXT'ом. Существут ли возможность сложить эти величины и получить суммарную длину трассы?
Конечно. Надо извлекать программно тексты, превращать в числа функцией atof и складывать. Это общая схема, в деталях надо проверять, можно ли преобразовать этот текст в число.
Задачу можно решить посредством lisp-программы:
1. Выбрать из чертежа все текстовые примитивы
(setq U4 (ssget "X" '((0 . "TEXT")))),
что позволить сформировать необходимый набор U4 (если только на чертеже не используется команда DTEXT
для других целей - ну, например, для подрисуночных подписей)
2. Определить количество записей в наборе
(setq q1 (sslength U4))
3. Прочитать последовательно все записи(0..(q1-1)), выбирая из каждой только точечные пары с кодом 1, которые определяют длину (z)пролета
(setq i 0 j 0)
(while (<= i (- q1 1))
(setq sp (entget (ssname U4 i)))
(setq z (cdr (assoc 1 sp)))
(setq j (+ j (atof z)))
(setq i (+ i 1))
)
4. В результате в переменной j сохраняется сумма всех длин пролетов т.е. трассы.
Прошу извинить, если где-то что-то не учел. - Времени нет детально разбирать.
Пиши - буду рад ответить. Привет.
Ага, спасибо! Меня в первую очередь интересовали принципиальная возможность и, в свете этого, смысл изучения Лиспа. Теперь я понял - смысл есть :)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → Разное → Суммирование чисел
Форум работает на PunBB, при поддержке Informer Technologies, Inc