//*******************************
//Делает клоны в виде шара
//Выбрать объект и выделить его
var vDoc;
var ClonOb;
var NewNull;
var NewClonOb;
var i,j;//Индексы цикла
//********************
var x,y,z;
var f;//Увеличитель
var Nu;// (итерации) по u
var Nv;// (итерации) по v
var du;
var dv;
var u,v;
var zz;
var R;
//**********************
FormClone(vDoc)//Функция отрисовки
{
//***************
ClonOb=vDoc->GetActiveObject(); if (!ClonOb) println("Select object"); //Получить выделенный объект, если не выделен, прервать выполнение скрипта
if (!ClonOb) return FALSE;//если не выделен, прервать выполнение скрипта
NewNull = new(NullObject); // Создать новый Null объект
NewNull->SetName("Clones");// Имя клонов
vDoc->InsertObject( NewNull, NULL, NULL );//Ввести в Объект Менеджер
//**************
var uMin = 0.0;
var uMax = 6.283185307;
var vMin = 0.0;
var vMax = 6.283185307;
f = 30;//Увеличитель
Nu = 20;//Количество клонов по u
Nv = 20;//Количество клонов по v
R = 10.0;//Радиус (Увеличитель)
du=(uMax-uMin)/Nu;//ширина
dv=(vMax-vMin)/Nv;//длина
zz=0;
for (i=0;i<Nu;i++)//Колонны по u
{
for (j=0;j<Nv;j++)//Ряды по v
{
u=uMin+i*du;//Ширина шага
v=vMin+j*dv;//Длина шага
x = R * sin(u) * cos(v); //Формула по x
y = R * cos(u); //Формула по y
z = R * sin(u) * sin(v); //Формула по z
zz=zz+1;
//*************************
NewClonOb = ClonOb->GetClone(0);// Сделать клон выделенного объекта
var sc = NewClonOb->GetContainer();//Получить контейнер для клонов
NewClonOb->SetContainer(sc);//Установить контейнер для клонов
NewClonOb->SetName("Object." + tostring(i));//Дать порядковое имя клонам
NewClonOb->SetPosition(vector(x*f,y*f,z*f));//Установить клон в новую позицию x, y, z
vDoc->InsertObject(NewClonOb,NewNull,NULL);//Добавить детку клона к родителю NULL
}
GeEventAdd(DOCUMENT_CHANGED);//Зафиксировать изменения в документе
}
GeEventAdd(DOCUMENT_CHANGED);//Зафиксировать изменения в документе
}//конец FormClone(vDoc)
//*********************
main(doc,op)//Главная функция, начало работы скрипта
{
vDoc = GetActiveDocument();//Получить активный документ
FormClone(vDoc);//Нарисовать
}
//**************************
Комментариев нет:
Отправить комментарий