| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.09.2011, 14:21 | #1 | |
сумма площадей объектов
архитектор
Москва
Регистрация: 07.07.2007
Сообщений: 644
|
||
Просмотров: 6482
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А что будет, если я подсуну в программу, например, отрезок? Или текст?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
А чем ObjectARX. GeomProps — площадь, длина, объем выбранных примитивов не устроил?
Или это процесс изучения AutoLisp? |
||||
|
||||
Цитата:
К сожалению пока не пришло мне в голову как модифицировать код, что бы избежать ошибки на которую указал kpblc. Загвоздка в выхлопе "command "_.area" "_ob" если передать ей отрезок функция просит повторно ввести объекты. Может быть фильтры ssget попробовать? Но тогда очень много исключений. |
||||
|
||||
Исходники уже публиковались в книге "Н.Н.Полещук. "AutoCAD: разработка приложений, настройка и адаптация".
Решение должно быть радикальным - не использовать командные методы (т.е. (command ...)), а ActiveX-модель AutoCAD (функция (vla-get-area)). Примеры найдёшь поиском. |
||||
|
||||
Цитата:
Нашёл готовый вариант с vla-get-area и ssget, седьмой вариант. Модифицировал его немножко, что бы считал в квадратных метрах: Код:
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Для справки: в некоторых условиях полилиния может быть замкнута, а конструкция
(= (vla-get-closed ent) :vlax-true) вернет nil Советую использовать equal вместо =
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Не поможет, Леша. При помощи equal в этом случае нужно проверять первую и последнюю вершину, а не свойство Closed
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Саш, я не помню, на какой версии я увидел, что свойство Closed равно True, а проверка типа (= (vla-get-closed ...) :vlax-true) возвращала nil - в то время как замена = на equal решила проблему. В последних версиях я этого не проверял - все время использую equal, пока проблем не видел.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Я не на это хотел акцентировать внимание. А на то, что замкнутая полилиния может быть как физически замкнутая (совпадают первая и последняя вершина) или логически (флаг замкнутости).
По поводу = или equal - очень может быть, что ты прав.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма площадей | Rianna | AutoCAD | 33 | 01.07.2022 14:58 |
Техническое задание на ремонт | R.Stupakov | Поиск литературы, чертежей, моделей и прочих материалов | 15 | 27.07.2011 10:17 |
Сумма площадей фигур | Владимир Сергеевич | AutoCAD | 2 | 09.12.2009 22:57 |
Сумма площадей выбранных штриховок | selvinsky | Программирование | 2 | 02.10.2008 01:04 |
FILTER / фильтр | BM60 | Справочник команд | 0 | 08.07.2008 15:35 |