ksRequestInfo3D::CreatePhantom

Автор olden, 12.10.06, 07:20:42

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

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

olden

Если я правильно понял то...  8-)
1. Создаем модель или сборку. И так несколько штук. Используя библиотеку шаблонов создаем файл с расширением *.l3d (то есть он создается автоматически).
2. При помощи этой команды и каманды ksRequestInfo3D::GetIPhantom вставляем фантом в свой документ.

Прав ли я? Если не очень то, можно ли ее использовать по принципу как в документе 2D?

olden

люди неужели никто не делал фонтом в сборке :?: Ответьте.

IronMaxxx

Вот как это все делается:

      kompas.ksEnableTaskAccess(1);
      iPart := ksPart(doc3.GetPart(pNew_Part));
      iPart.fileName := 'C:\gear.m3d';
      rInfo := ksRequestInfo3D(doc3.GetRequestInfo(iPart));
      rInfo.SetCallBack('SELECTCALLBACKPROC', hInstance, nil);
      rInfo.CreatePhantom;
      if doc3.UserGetPlacementAndEntity(0) then
        begin
          iPart.SetPlacement(rInfo.GetPlacement);
          doc3.SetPartFromFile('C:\gear.m3d', iPart, true);
          iPart.UpdatePlacement;
        end;

Пример написания функции обратной связи SELECTCALLBACKPROC можешь взять из SDK. В найпростейшем варианте (когда нужно лишь указать точку вставки фантома и не нужно фильтровать выбранные пользователем трехмерные элементы) она может иметь вид:

function SelectCallBackProc(entity: ksEntity; rInfo: ksRequestInfo3D): integer; stdcall; Export;
begin
  Result := 1;
end;

Эту функцию обязательно включить в раздел exports прикладной библиотеки, чтобы КОМПАС мог ее вызывать после щелчка пользователя в окне документа. На Delphi  это будет выглядеть так:

exports
  SelectCallBackProc name 'SELECTCALLBACKPROC';

olden

Спасибо за ответ. Это я понял фантом создается при помощи создания нового файла. А если фонтом создавать при помощи встроинных функций документа сборки, таких как поверхности?