Появилась следующая задача: после открытия документа сборки необходимо обработать узлы сборки (входящие подсборки и детали).
Но эту обработку необходимо выполнить без участия пользователя, без явного запуска команды.
Долгое время не могу решить эту задачу, знатоки CAA RADE подскажите, пожалуйста.
В справке по CAA есть пример "Customizing Product's Icons" (CAAProductStructure.edu, модули CAAPstProductIconInit.m, CAAPstProductIconImpl.m).
Там используется интерфейс CATInit, после открытия документа сборки отрабатывает метод класса.
Но это происходит только потому, что в сборку из примера внедрён объект CAAPstProductIconCont и происходит попытка получения интерфейса CATInit у объекта CAAPstProductIconCont. При открытии же обычных документов сборок этого не происходит.
На форуме есть топик viewtopic.php?f=140&t=3920.
Однако, я так и не разобрался, можно ли с помощью CATInit отследить момент инициализации обычного документа CATIA (CATProduct, CATPart, CATDrawing).
Если посмотреть файлы словарей CATIA *.dic (или через утилиту CAA V5 Object Browser), то видно, что объекты документов поддерживают интерфейс CATInit.
Ув. bit писал по поводу CATInit viewtopic.php?f=140&t=3920&p=23594&hilit=CATInit#p23894:
Если интерфейс уже определен на каком-то фичере, то переопределить его нельзя, по крайней мере легально. Попробуйте CATIUExitIO, должно помочь.
Я пробовал также использовать CATIUExitIO viewtopic.php?f=140&t=3857.
Однако это не подошло, т.к. отслеживаются события открытия/сохранения именно файлов, а не документов.
Например, при открытии файла, отрабатывает метод CATIUExitIO::OnOpen. Но в этот момент времени документ ещё не открылся в CATIA и не активировался Workbench. Т.е. получается, что OnOpen выполняется ДО открытия файла.
И не понятно как определить тот момент, когда загрузился именно открываемый документ, "инициализировался" и можно работать с его объектами.
В моём случае, нужно после открытия, инициализации документа CATProduct обработать входящие в него подсборки и детали.
Подскажите, пожалуйста, как это можно сделать.