• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Постороение пространственных кривых

Автор Mitya, 30.07.03, 14:11:31

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

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

Mitya

Может ли кто поделиться опытом построения пространственных кривых? В частности спирали? Порядок, параметры и т.д...

Zashibuka

Дело там не слишком хитрое ...
============================
var
  PolyDef : ksPolyLineDefinition;
  polyEnt: ksEntity;

  I: integer;
  XX,  YY,  ZZ: double;
============================
begin

  iPartDocument:=ksDocument3D(iKompasObject.Document3D);
  iPartDocument.OPEN(TempPath,true );  // невидимый
  Stub:= ksPart( iPartDocument.GetPart(pTop_Part));       // верхний
создаёшь сущность
    PolyEnt:=ksEntity(Stub.NewEntity(o3d_polyline));
прикручиваешь к ней структуру для параметров
    PolyDef:=ksPolyLineDefinition(PolyEnt.GetDefinition);
заполняешь структуру
   // добавить вершины
   for i:=0 to 10 do  // тут в цикле строишь спираль
     begin
        // формат PolyDef.AddVertex(x,y,z,radius);
        PolyDef.AddVertex(0,     0,z+i    ,0);
        PolyDef.AddVertex(10,  10,z+i+1,0);
        PolyDef.AddVertex(20    ,0,z+i+2,0);
        PolyDef.AddVertex(-10,-10,z+i+2,0);
     end;
        ....................  
 и создаёшь
    PolyEnt.Create;

(я не проверял работоспособность . так что если построится вовсе не спираль а вовсе что - то неприличное - значит я ещё не проснулся ...но принцип примерно такой)


Mitya

Спасибо огромное!
Правда я думал, что про спираль код будет с использованием спирали, а не полилинии. Но принцип понятен. Да и запасной вариант,  если спираль не пойдет.

chelkar

Можно просто спираль построить - ksCylindricSpiralDefinition, ksConicSpiralDefinition

Mitya

Так оно и было, все получилось.