o3d_polyline

Автор sky_john, 06.06.06, 12:27:00

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

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

sky_john

Доброго времения суток!
Необходимо полилайны начертить.  Но прочитав сдк и перерыв примеры ничего не нашел из того что может помочь. Если есть пример кода, который реально работал, буду благодарен очень. (То что сделал саморучно выдает ошибку о том, что должно быть более одной вершины. Не знаю как эти вершины добавить, кроме как добавить методом addVertex(...) )

Robinnn

Вот может поможет на ВБ пример (писал по памяти - могут быть ошибки в коде, а так у меня всё работает :-\)
Dim PolyL As Object
Set PolyL=Part.NewEntity(o3d_polyline)
   PolyDef:=PolyL.GetDefinition
       'добавить вершины
      'формат PolyDef.AddVertex(x,y,z,radius)
       PolyDef.AddVertex X, Y, Z ,0
       PolyDef.AddVertex X, Y, Z ,0
      PolyEnt.Create

з.ы
Поиши на форуме, где-то видел пример на делфи

sky_john

Большое спасибо! Действительно, работает.. оказалось так, что я метод Create  не там вызывал :-) 

Вот то, что у меня заработало..

BOOL CreateExtrusion( IPartPtr& part )
{
  BOOL res = FALSE;
  IEntityPtr entity( part->NewEntity( o3d_polyline ), false /*AddRef*/ );
  if ( entity )
  {
    IPolygonalLineDefinitionPtr pLine( IUnknownPtr( entity->GetDefinition(), false/*AddRef*/ ) );
   if ( pLine )
   {
      pLine->AddVertex(0,0,0,0);
      pLine->AddVertex(100,100,100,0);
      pLine->AddVertex(-100,100,100,0);
      pLine->AddVertex(0,0,0,0);
        }
   entity->Create();
      }
    }
  return res;
}

(принцип взят прямо из СДК с поправкой на рекомендацию Robinnn'a)