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

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

Реактор на модификацию базы данных рисунка

Ответ
Поиск в этой теме
Непрочитано 02.08.2011, 09:03 #1
Реактор на модификацию базы данных рисунка
Игорь Костюкович
 
Минск
Регистрация: 31.07.2009
Сообщений: 40

Понадобилось написать некую систему персонификации: требуется знать кто и когда создал или модифицировал данный объект. Информацию об авторе и дате/времени создания/модификации пишу в расширенные данные (РД) соответствующего примитива. Запись производится по событиям добавления примитива в базу данных рисунка (БД) или модификации БД. С созданием примитива нет проблем: создаются два реактора: на добавление примитива в БД - формируется список добавленных примитивов и на завершение команды - обрабатывается список, добавляются РД к добавленным примитивам.
С модификацией хуже. Подобная схема (реакторы на события модификации БД рисунка и завершение команды) не работает (точнее, работает без остановки :-) ), т.к. добавление РД к примитиву вызывает событие изменения БД и, соответственно, снова запускается весь процесс - возникает бесконечный цикл.
Как быть?...
__________________
Там всё есть для счастья, меня там только нет,
Так это значит, что я там - буду!
Просмотров: 3255
 
Непрочитано 02.08.2011, 09:14
1 | #2
Дима_

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


Создавай флаги вкл\выкл обработки события.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 02.08.2011, 11:18
1 | #3
Евгений А.

Армспорт
 
Регистрация: 18.07.2006
Ейск
Сообщений: 355


Всё равно может не получиться - если я не ошибаюсь, то во время модификации примитива автокад выдаёт на реакторы нужные команды, делает остановки, но сам модифицируемый объект блокирует для других программ до конца модификации.
Евгений А. вне форума  
 
Непрочитано 03.08.2011, 08:53
1 | #4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Еще как вариант: при добавлении РД при создании примитива к нему цепляется vlr-object-reactor на событие :vlr-modified
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 17.08.2011, 12:04
#5
Игорь Костюкович


 
Регистрация: 31.07.2009
Минск
Сообщений: 40


Дима_, спасибо огромное. Всё получилось. В последнее время фактически не имею практики программирования на LISP'е, отсюда и такие вопросы...
Евгений А., Вы совершенно правы, поэтому имена модифицированных примитивов по реактору просто сохраняем в списке, все остальные процедуры с ними выполняюся после фактического окончания события.
VVA, вариант, но... Никогда заранее не знаешь, какой примитив придёт пользователю в голову модифицировать, а вешать на каждый реактор... Вряд ли оправдвнно. Через реакторы базы данных - проще и универсальнее.

Ещё раз огромное спасибо всем, принявшим участие...
__________________
Там всё есть для счастья, меня там только нет,
Так это значит, что я там - буду!
Игорь Костюкович вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Реактор на модификацию базы данных рисунка



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема подключения файла базы данных в AutoCAD MAP 3D 2010 MANUL AutoCAD 5 01.12.2010 00:39
Проблема с восстановлением и привязкой базы данных СПДС 6 в Win7х64 Silent77 ПО от CSoft 1 15.10.2010 06:57
Почему срабатывает "табличный" реактор при сохранении рисунка. Дима_ Программирование 23 21.05.2010 21:24
Где можно взять базы данных элементов для заполнения спецификаций? Нитонисе Программирование 10 16.11.2009 12:28
Загрузка параметров дин. блоков из базы данных Дима_ Прочее. Программное обеспечение 11 04.09.2007 17:03