Тема: ObjectARX::(Копирование объектов из чертежа в чертеж)

На первом чертеже тыкаем Copy и говорим Paste на втором чертеже.
Как программно поймать event (когда выполнено Paste) о том что произошло копирование объектов из другого чертежа?

P.S AcEditorReactor со своим набором функций относительно wblock клонирования безполезен :( т.к. они зовутся в момент Copy, а не во время Paste...


Заранее благодарен за ответ или советы.

Re: ObjectARX::(Копирование объектов из чертежа в чертеж)

Попробуй использовать для
этого AcDbDatabaseReactor

Re: ObjectARX::(Копирование объектов из чертежа в чертеж)

Не получится использовать AcDbDatabaseReactor.
Там только события о созданиях модификациях удалениях и переаттачиваниях, а откуда происходит добавление информацию не получить.

Re: ObjectARX::(Копирование объектов из чертежа в чертеж)

Что бы не найти прроблем на собственную...
Не надо пытаться на каждое действие написать свой обработчик
Ну какая в пень разница от куда взялся объект???
Тебе все равно никто никогда правды не скажет.
Незачем программе этого знать.
Обрабатывай стандартные операции добавления и удаления объектов из базы. Это работает всегда и везде даже в случае использования юзерами вновь появившихся не стандартных инструментов.

Re: ObjectARX::(Копирование объектов из чертежа в чертеж)

Хм...
1) Разница в пень допустим есть...
Возьмем это как за утверждение, что я не хочу чтоб мой объект из документа A был скопирован в документ В, а внутри одного документа мог совершенно спокойно копироваться. Желание законное и не важно в силу каких причин вызвано.

2) Развитие системы идет за счет появления новых требований к системе. Если на все требования отвечать незачем программе этого делать, то развитие системы останавливается.
Так ObjectARX позволяет решать только ряд задач.

3) Пояснение пункта 2) - ObjectARX позволяет создавать функциональность на базе одного документа. Появилась псевдо много-документность ( как была 2D графика, потом 2.5D графика) т.е. многодокументность есть но урезанная. Как в Doom-e вроде объем, а площадок расположенных друг над другом нет и стреляешь в плоскости т.е. вертикального прицеливания нет.

4) Привожу пример: Удаляем из документа A объект. Перехватываем этот эвент и прозводим изменения в документе B. Потом в документе A говорим undo. Объект возвращается из небытия, а вот изменеия в документе B спровоцированные удалением объекта в A обратно не откатываются.

5) Зачем НУЖНА ТАКАЯ зависимость между объектами в разных документах? Это появление нового требования. Есть чертеж здания в разных документах. Теперь УСЛОВНЫЙ ЗАКАЗЧИК хочет чтоб был ПРОЕКТ куда включаются эти документы (*.dwg файлы) (раньше программы на С тоже писались без проекта в одном файле) В подвале стоит щит электрический, если его убить, то должны убиться все провода которые идут от этого щитка по всем документАМ. Если ПРОЕКТИРОВЩИК случайно удалил щит, то провода исчезли на всех документах. После undo - это undo применится только к одному документу, а не к документам проекта. Вот и нехватка функционала API ObjectARX.
 
6) Кто понял что я изложил выше (пункт 5) могут продолжить  обсуждение этого вопроса. А вобще я реализовал ПРОЕКТ с включением множества документов в оного. Но в силу нехватки функциональности ObjectARX как комерческий продукт это не катит.

7) Если кто понял что сказано в пункте 5) и 6) и захочет воспользоваться идеей в комерческих целях, то хоть СПАСИБО пришлите. (email вроде указан)