Признак модификации объекта
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Признак модификации объекта

Признак модификации объекта

Ответ
Поиск в этой теме
Непрочитано 05.11.2009, 19:55 #1
Признак модификации объекта
petr.vubrikv
 
Регистрация: 14.03.2006
Сообщений: 23

Получаю через (entget) список dxf-кодов объекта. Вношу изменения в этот список. Выполняю (entmod) списка.
Как сразу после этого lisp-ом узнать, что объект модифицирован, т.е. (entmod) дала положительный результат?
Типа так ?:
Код:
[Выделить все]
(if (entmod List) (princ "\nВсе OK!"))
Или как еще?
Спасибо.
Просмотров: 3040
 
Непрочитано 05.11.2009, 21:47
#2
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Сохранить в переменной список dxf кодов и после entmod сравнить что получилось с тем, что было.
Supermax вне форума  
 
Непрочитано 05.11.2009, 22:27
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


entmod, по-моему, не обязательно означает полное обновление примитива... Обычно еще используется entupd. Или нет?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.11.2009, 23:19
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Обычно еще используется entupd
Для сложных объектов, если entmod'ом модифицировался не главный объект. И именно для отображения на экране изменений во всем сложном примитиве (условно говоря регенерация одного объекта).
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 06.11.2009, 09:13
#5
petr.vubrikv


 
Регистрация: 14.03.2006
Сообщений: 23


"сравнить что получилось с тем, что было"

Выполнял (equal) без допуска, оно сказало nil. Значит модифицировалось?
сравнивая списки визуально я-то вижу что все нормально, а вот програмно удостовериться в этом... А VLisp-ом можно проверить объект модифицирован ли он?
Спасибо.
petr.vubrikv вне форума  
 
Непрочитано 06.11.2009, 10:31
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Проверь изменились ли те коды которые ты изменял - то есть после entmod (= (assoc xx (entget)) ...)
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 06.11.2009, 11:28
#7
petr.vubrikv


 
Регистрация: 14.03.2006
Сообщений: 23


Проверь изменились ли те коды которые ты изменял - то есть после entmod (= (assoc xx (entget)) ...)

Ох е-мае......То есть сплайны, и порой с по сотне-другой точками, причем, точки могли и удаляться в результате модификации (если подряд в списке идущие повторяются/дублируются), и сплайнов тоже может быть даже сотни, а то и больше. Да, ЗАДАЧКА!
petr.vubrikv вне форума  
 
Непрочитано 06.11.2009, 11:45
#8
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


функция equal может сравнивать списки, не зависимо от длинны и уровня вложенности. Сравнивай список entget целиком...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 06.11.2009, 11:54
#9
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Вот и я о том же толкую. Есть примитив, сделал ему entget и сохранил в переменную. Поменял в примитиве данные и опять сделал entget. Затем сравнил два списка. Что может быть проще?
Supermax вне форума  
 
Автор темы   Непрочитано 06.11.2009, 12:39
#10
petr.vubrikv


 
Регистрация: 14.03.2006
Сообщений: 23


Дык, эта, я в #5 и писал
"Выполнял (equal) без допуска, оно сказало nil. Значит модифицировалось?"
Тогда в этой фразе исправляю знак ? на знак !
"Выполнял (equal) без допуска, оно сказало nil. Значит модифицировалось!"
(т.е. список данных объекта изменен и модификация произведена)
Спасибо.
petr.vubrikv вне форума  
 
Непрочитано 06.11.2009, 12:54
#11
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


petr.vubrikv, я бы рекомендовал использовать допуск сравнения, хотя бы 1e-6 или даже 1e-9. Могут быть случаи, когда одинаковые списки окажутся не совсем одинаковыми...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 06.11.2009, 14:14
#12
petr.vubrikv


 
Регистрация: 14.03.2006
Сообщений: 23


Елпанов Евгений

Да, согласен. Спасибо.
petr.vubrikv вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Признак модификации объекта



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение разрешения на строительство объекта капитального строительства maxummm Прочее. Архитектура и строительство 18 25.08.2010 20:31
Наименование объекта в угловом штампе proekt Прочее. Архитектура и строительство 16 18.02.2009 16:39
Как на законных основаниях избежать проведения экспертизы качества объекта строительства по уникальной технологии? Yaroslava Разное 7 01.02.2009 18:42
проблемка в выдилении объекта Sergei++ AutoCAD 7 08.08.2007 16:14