команда на два документа

Программирование для CATIA.

команда на два документа

Сообщение Artem » 14 июл 2009 15:42

ну в макросе например для формы все равно что активно - документ из которого мы его вызвали или другой.....а вот в рейде как-нибудь такое можно сделать? Чтобы форма(команда) была завязана не на определенный экземпляр окна(документа)...а "висела" даже когда мы переключаемся между окнами?
Ps. Моя команда создает новое окно и там должна проделать определенные действия..........но толи я торможу, толи система...мои мессаджбоксы идущие после создания документа выскочили до появления нового окна......что в принципе вызвало сомнение в возможности осуществления этого простецкого (для макроса) дела? в цикле подождать?
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: команда на два документа

Сообщение booSter » 14 июл 2009 17:29

Попробуй CATMultiDocumentCommand, CATBasicMultiDocumentCommand
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: команда на два документа

Сообщение Artem » 15 июл 2009 08:44

Я так понял что мультидокументативность держиться на работающем агенте? без агентов форма все равно показывается только на родном окне...(( (CATMultiDocumentCommand)
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: команда на два документа

Сообщение Artem » 15 июл 2009 14:22

два момента 1)Вот это НЕ создавало новый документ а вылетало с ошибкой, пока не добавил месседжбокс (как более адекватная и "незаметная" подмена - SetForegroundWindow тож прокатил)
Код: Выделить всё
.............
HRESULT r = ptApp->get_Documents(oDocuments);
HWND im = FindWindow(NULL, L"CATIA V5 - [Part1]");
SetForegroundWindow(im);
//Sleep(4000);
 //DoEvents();
//MessageBox (0,L"11111111111",L"222222",1);
CATBSTR bst(L"Drawing");
r=oDocuments->Add(bst, ptDoc );
..............

Кажись с CATIIniInteractiveSession такой проблемы не было, но на создание нового документа выкидывалось окошко с установками стандарта/размеров для чертежа...
2) ура..если создать новую панель ПОСЛЕ добавления документа то она уже принадлежит этому самому новому документу (а данные перенести не проблема)...кстати безо всяких CATMultiDocumentCommand....с обычным CATStateCommand
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: команда на два документа

Сообщение Artem » 20 июл 2009 09:18

Возник ряд проблем и вопросов
1) Как активировать старое окно/документ при создании нового? Ощущение, что он до конца формируется только после завершения дейстия повешенного на кнопку (Хотя сделать что-либо в новом документе можно без проблем...вроде).В макросе тоже самое (но тут можно активацию на таймер повесить)
2)При активации другого окна мои агенты не работают (((((((( хоть CATStateCommand взять за парента для основной команды, хоть CATMultiDocumentCommand (((....(Заметил бонус от CATMultiDocumentCommand - при переключении между окошками команда продолжает работать в СТАРОМ окне - при CATStateCommand перестает работать даже в нем)
3)Насколько я понял если мы используем CATMultiDocumentCommand то это просто дает возможность запуска этой команды через другую не прерывая ее - через CATOtherDocumentAgent- при этом возникает ряд вопросов:
а)Как запустить этот агент?
б)Как получить результат выделения? - В примере у вызываемой команды один CATPathElementAgent и собственно с него и берется круг.....А если агентов несколько? или все равно? типа фильтр SetElementType (в примере почему то Add) сам определит с какого агента брать результат?Можно как-нибудь завязать действие на завершение вызываемой команды, а не на выделение фичера определенного типа?или собственно так оно и есть?
в) Возможен ли запуск родных команд CATIA?
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5