Фунция обратной связи при создании 3D-фантома

Автор IronMaxxx, 03.01.06, 18:00:08

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

IronMaxxx

Есть ли у кого-нибудь пример написания функции обратной связи
int WINAPI SELECTCALLBACKPROC (LPDISPATCH entity, LPDISPATCH info);
для процесса указания местоположения (точки) при вставке детали в сборку с использованием ksRequestInfo3D::CreatePhantom? Можно на Visual C++ или Delphi.
У меня вроде все нормально фурычит: и фантом отрисовывается, и точка определяется, и деталька вставляется... вот только вставляется не в указанную пользователем точку, а в точку пространства, в которой находился курсор во время завершения процесса указания местоположения  :~ ...

IronMaxxx

Куда ж вы так все сразу ломанулись отвечать-то? Не спешите, товарищи, по-одному! Столько сообщений, что и читать не успеваю  :-)))

Ээх, видать праздники удались...  :beer:

Gek

Дело, думается, не только в праздниках - на такой вопрос и по трезвянке мало кто ответит  :-)))
Не торопись, я про пересечение поверхностей еще 28-го спросил - пока реакция 0

KAV

В функции обратной связи можнл получить только временные соопряжения для фантома. Для того, что бы после завершения процесса деталь встала на место, надо воспользоваться методом ksDocument3D::AddMateConstraint  после процесса.

IronMaxxx

Цитата: KAV от 24.01.06, 16:41:53
В функции обратной связи можнл получить только временные соопряжения для фантома. Для того, что бы после завершения процесса деталь встала на место, надо воспользоваться методом ksDocument3D::AddMateConstraint  после процесса.


Я может чего недопонял, но при чем здесь сопряжения? Проблема в том, чтобы просто вставить деталь в точку, указанную пользователем и пока ничего не сопрягать.
Как оформлять функцию обратной связи при выборе объекта (грани, оси и пр.) я знаю. Мне нужна помощь для случая, когда пользователь ничего не выбирает, а просто указывает точку для вставки детали. Вроде все нормально работает, точка определяется, но когда жмешь завершить операцию, деталь "лепится" не в выбранную точку, а в то место, где остался курсор. Каким образом втулить ее в нужное место - не знаю  :| ...

КАВ

Надо после методов iPart.SetPlacement(iRequestInfo3D.GetPlacement);    iDocument3D.SetPartFromFile применить iPart.UpdatePlacement;         
             

IronMaxxx

Цитата: КАВ от 25.01.06, 17:43:07
Надо после методов iPart.SetPlacement(iRequestInfo3D.GetPlacement);    iDocument3D.SetPartFromFile применить iPart.UpdatePlacement;                      


:fr: Спасибо, КАВ! Заработало :).