Создание сплайна Delphi

Автор Acabar, 06.06.13, 12:35:20

« назад - далее »

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

Acabar

Задача: Построить сплайн по 3м точкам. Начальная точка - конечная точка цилиндрической спирали, которая также принадлежит окружности, две остальные точки тоже принадлежат окружности. Все точки рассчитаны математически и их координаты по осям, являются переменными.
Проблема заключается в получении интерфейса ISpline3D на этапе
Kompas:= KompasObject( CreateOleObject('Kompas.Application.5') );
Doc:= ksDocument3D(Kompas.Document3D);

Т.е. не получается правильно описать IModelObject используя IPart7.
Также пробовал вот так       ispline:= ksEntity(iPart.NewEntity(o3d_spline));

      if ispline <> nil then
      begin
      isplineDef := ksSplineDefinition(ispline.GetDefinition);
      if isplineDef <> nil then
                  begin      ]}


      isplineDef.splineOnPoles:=false;
      isplineDef.closed:=false;
      isplineDef.Flush;
      isplineDef.AddVertex(xspiral_end, yspiral_end, zspiral_end, 1);//Выдает ошибку недопустимое количество параметров
      isplineDef.AddVertex(xspline_C, yspline_C, zspline_C, 1);
     ispline.Create;
      end;
      end;


Acabar

Я в шоке.....заметил такую штуку, как только задам вопрос на форуме, как нахожу в чем была ошибка. До этого сидел 2 часа и не получалось. Простите за оффтоп. Подскажите как удалить тему.
Правильный код
ispline:= ksEntity(iPart.NewEntity(o3d_spline));

      if ispline <> nil then
      begin
      isplineDef := ksSplineDefinition(ispline.GetDefinition);//Ошибка была здесь из-за того что делал в 2 часа ночи пропустил и не поменял ispiral.GetDefinition на ispline.GetDefinition, отчаившись пошел спать и только сейчас нашел ошибку.
      if isplineDef <> nil then
                  begin
      isplineDef.splineOnPoles:=false;
      isplineDef.closed:=false;
      isplineDef.Flush;
      isplineDef.AddVertex(xspiral_end, yspiral_end, zspiral_end, 1);
      isplineDef.AddVertex(xspline_C, yspline_C, zspline_C, 1);
     ispline.Create;
      end;
      end;