Массив по концентрической сетке

Автор lishniy, 01.02.12, 18:39:21

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

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

lishniy

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

ksEntity entitycirlularCopy( part.NewEntity(o3d_circularCopy) );
if (entitycirlularCopy.m_lpDispatch) {
ksCircularPartArrayDefinition circularCopyDef ( entitycirlularCopy.GetDefinition() );
if ( circularCopyDef.m_lpDispatch ) {
ksEntityCollection entCol ( circularCopyDef.PartArray() );
if ( entCol.m_lpDispatch ) {
entCol.Add ( entityCutExtr );
entCol.GetByIndex(0);
entCol.refresh();
}
circularCopyDef.SetAxis ( entityAxis );
circularCopyDef.SetCopyParamAlongDir( 5 , 360 , true , true );
entitycirlularCopy.Create();
}
}

Рабочий код на Delphi API5

// Массив по концентрической сетке
     iDetaley:=ksEntity(iPartSborka.NewEntity(o3d_circPartArray));
     CopySetka:=ksCircularPartArrayDefinition(iDetaley.GetDefinition);
     CopySetka.SetAxis(EntityAxisOperation1);
     PartCollection2:=ksPartCollection(CopySetka.PartArray);
     PartCollection2.Add(ksPart(iDoc3DSborka.GetPart(2)));
     CopySetka.SetCopyParamAlongDir(V[Index].SK,360,true,False);
     iDetaley.Create;

lishniy

А есть пример кода для детали, не для сборки?

Примера нет, выглядеть должно примерно так, на работоспособность не проверял.

     EntityCollection:=ksEntityCollection(iPart.EntityCollection(o3d_cutExtrusion));
     iDetaley:=ksEntity(iPart.NewEntity(o3d_circularCopy));
     CopySetka:=ksCircularCopyDefinition(iDetaley.GetDefinition);
     CopySetka.SetAxis(ksEntity(iPart.GetDefaultEntity(o3d_axisOZ)));
     EntityCollection1:=ksEntityCollection(CopySetka.GetOperationArray);
     EntityCollection1.Add(ksEntity(EntityCollection.GetByIndex(0)));
     CopySetka.SetCopyParamAlongDir(4,360,true,False);
     iDetaley.Create;

lishniy

Может кому понадобится рабочий код на c++
ksEntity CircCopyEntity (part.NewEntity(o3d_circularCopy));
if (CircCopyEntity.m_lpDispatch) {
ksCircularCopyDefinition CircCopyDef (CircCopyEntity.GetDefinition() );
if (CircCopyDef.m_lpDispatch) {
CircCopyDef.SetGeomArray( TRUE ); //если не сработает, ставим FALSE
CircCopyDef.SetCopyParamAlongDir(kolvo, 360.0, TRUE, FALSE);
ksEntity baseAxisOZ( part.GetDefaultEntity(o3d_axisOZ) );
CircCopyDef.SetAxis(baseAxisOZ);//Устанавливаем ось OZ
ksEntityCollection entCol (CircCopyDef.GetOperationArray());
if (entCol.m_lpDispatch) {
entCol.Add(Entity_na_kopii);
}
CircCopyEntity.Create();
}
}