3DCoatScripting  4.8.31β
С помощью скриптинга можно управлять возможностями Коута и расширять его функционал.
🌀 Создание интерфейса из примитивов

В 3DCoat-е можна создавать при помощи скриптов интерфейсные классы с примитивами, управлять их параметрами, добавлять или удалять со сцены, применяя различные бинарные операции. Ниже приводиться список классов в скрипте для создания интерфейса примитивов в скульпт комнате.

Начнем с панели инструментов.

Панель инструментов с примитивами

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

// access to debugging
Debug dbg;
DebugLog log = dbg.log();
void main() {
Coat coat;
log.clear();
// go to sculpt room
coat.room("Sculpt");
// go to primitives
UI ui;
ui("$SCULP_PRIM");
// voxel object
Vox vox1;
vox1.clearScene();
vox1.rename("Volume0");
//prepare the primitives tool
PrimitivesTool tool;
//create sphere obj
SpherePrim sphere = tool.sphere();
//create cube obj
CubPrim cube = tool.cube();
//create cylinder obj
CylinderPrim cylinder = tool.cylinder();
//create cone obj
ConePrim cone = tool.cone();
//create torus obj
TorusPrim torus = tool.torus();
float timeDelay = 2000; //delay 2 sec
//goto to sphere
tool.SetPrim("sphere");
sphere.Radius(50.0);
sphere.Position(Vec3(-400,-50,0));
// add sphere in the scene
tool.Apply(0);
//goto cylinder
tool.SetPrim("cylinder");
cylinder.radius(50.0);
cylinder.startPoint(Vec3(-300,0,0));
cylinder.endPoint(Vec3(-300,100,0));
// add cylinder in the scene
tool.Apply(0);
// goto cube
tool.SetPrim("cube");
Wait(timeDelay);
// goto cone
tool.SetPrim("cone");
// sets parameters
cone.startPoint(Vec3(-500,0,0));
cone.endPoint(Vec3(-500,100,0));
cone.radius(50);
// add cone in the scene
tool.Apply(0);
}

primitives-tool.png
Primitives Tool

Результат выполнения скрипта смотри здесь

PrimitivesTool tool;

С помощью `Инстумента примитивов` мы можем создавать примитивы.

Как создавать примитивы в скульпт комнате

Вы можете использовать для создания примитивов следующие классы:

Сфера

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to sculpt room
coat.room("Sculpt");
// voxel object
Vox vox1;
//clear the scene
vox1.clearScene();
vox1.rename("Volume4");
// go to primitives
UI ui;
ui("$SCULP_PRIM");
// prepare the primitives tool
PrimitivesTool tool;
// sphere object
SpherePrim sphere1;
//gets the sphere tool
sphere1 = tool.sphere();
// initializing parameters
sphere1.Position(Vec3(0.00,0.00,0.00));
sphere1.Radius(15.00);
// go tо the surface mode
vox1.toSurface();
//Change the radius and position
sphere1.Position(Vec3(-300.00,-12.00,369.07));
sphere1.Radius(74.72);
// add the sphere in the scene
// Zero equals the binary operation "add"
tool.Apply(0);
}
SpherePrim sphere = tool.sphere()
//Вызвать метод для создания сферы.

Все параметры, допустимые для сферы, можешь глянуть здесь.

sphere-prim.png
Sphere Primitive

Результат выполнения скрипта смотри здесь

Куб

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// перейти в скульпт-комнату
coat.room("Sculpt");
// воксель
Vox vox1;
// очищаем сцену
vox1.clearScene();
vox1.rename("Volume3");
// перейти к примитивам
UI ui;
ui("$SCULP_PRIM");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// получить куб
CubPrim cube2;
cube2 = tool.cube();
// инициализация параметров
cube2.AxisX(Vec3(1.00,0.00,0.00));
cube2.AxisY(Vec3(0.00,1.00,0.00));
cube2.AxisZ(Vec3(0.00,0.00,1.00));
// отключить фаску
cube2.useFillet(false);
cube2.Position(Vec3(0.00,0.00,0.00));
cube2.SideA(30.00);
cube2.SideB(30.00);
cube2.SideC(30.00);
// перейти в сурфексный режим
vox1.toSurface();
// включить фаску
cube2.useFillet(true);
// установить радиус
cube2.filletRadiusRelation(0.20);
cube2.filletRadius(14.41);
// установить позицию
cube2.Position(Vec3(-223.11,44.94,336.39));
// стороны
cube2.SideA(144.11);
cube2.SideB(144.11);
cube2.SideC(144.11);
cube2.details(0.38);
// добавить куб в сцену
tool.Apply(0);
}

Все параметры, допустимые для куба, можешь глянуть здесь.

cube-prim.png
Cube Primitive

Результат выполнения скрипта смотри здесь

Еллипс

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// перейти в скульпт-комнату
coat.room("Sculpt");
//щчистить скульпт-комнату
SculptRoom sculpt;
sculpt.clear();
sculpt.toVoxel();
// получить воксельный объект
Vox vox1;
vox1.clearScene();
vox1.rename("Volume12");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// перейти к примитивам
ui("$SCULP_PRIM");
// получить еллипс
EllipsePrim ellipse3;
ellipse3 = tool.ellipse();
// инициализация параметров
ellipse3.Position(Vec3(-307.18,61.64,380.09));
ellipse3.SideA(40.82);
ellipse3.SideB(40.89);
ellipse3.SideC(108.31);
ellipse3.AxisX(Vec3(1.00,-0.04,-0.01));
ellipse3.AxisY(Vec3(0.04,0.99,0.15));
ellipse3.AxisZ(Vec3(0.00,-0.15,0.99));
// перейти в серфиксный режим
vox1.toSurface();
// установить новые стороны
ellipse3.SideA(51.39);
ellipse3.SideB(51.48);
ellipse3.SideC(136.36);
// установить уровень детализации
ellipse3.details(0.61);
// добавить в сцену
tool.Apply(0);
}

ellipse-prim.png
Ellipse Primitive

Результат выполнения скрипта смотри здесь

Цилиндр

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
coat.room("Sculpt");
// подготовить сцену
SculptRoom sculpt;
sculpt.clear();
sculpt.toVoxel();
// подготовить воксельный объект
Vox vox1;
vox1.clearScene();
vox1.rename("Volume3");
vox1.toSurface();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
ui("$SCULP_PRIM");
// получить цилиндр
CylinderPrim cylinder4;
cylinder4 = tool.cylinder();
cylinder4.useFillet(true);
cylinder4.filletRadiusRelation(0.20);
cylinder4.startPoint(Vec3(-280.98,23.17,236.68));
cylinder4.endPoint(Vec3(-292.61,159.80,242.19));
cylinder4.height(137.24);
cylinder4.radius(52.42);
cylinder4.topRadius(52.42);
cylinder4.bottomRadius(52.42);
cylinder4.scalex(1.00);
cylinder4.scaley(1.00);
cylinder4.details(0.69);
// добавить цилиндр в сцену
tool.Apply(0);
cylinder4.startPoint(Vec3(-251.18,102.24,277.48));
cylinder4.endPoint(Vec3(-221.85,103.49,308.54));
cylinder4.height(42.73);
cylinder4.radius(27.30);
cylinder4.topRadius(27.30);
cylinder4.bottomRadius(27.30);
// добавить цилиндр в сцену
tool.Apply(0);
cylinder4.startPoint(Vec3(-335.49,85.39,257.88));
cylinder4.endPoint(Vec3(-394.83,79.38,281.57));
cylinder4.height(64.17);
// добавить цилиндр в сцену
tool.Apply(0);
cylinder4.startPoint(Vec3(-295.43,127.83,244.86));
cylinder4.endPoint(Vec3(-306.96,263.31,250.33));
cylinder4.height(136.08);
// добавить цилиндр в сцену
tool.Apply(0);
}

cylinder-prim.png
Cylinder Primitive

Результат выполнения скрипта смотри здесь

Конус

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// идем в скульпт-комнату
coat.room("Sculpt");
//подготовка сцены
SculptRoom sculpt;
sculpt.toVoxel();
//очищаем сцену
Vox vox1;
vox1.clearScene();
vox1.rename("Volume1");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// переход к примитивам
ui("$SCULP_PRIM");
//создать конус
ConePrim cone5;
cone5 = tool.cone();
// инициализация
cone5.startPoint(Vec3(0.00,0.00,0.00));
cone5.endPoint(Vec3(0.00,20.00,0.00));
cone5.height(20.00);
cone5.bottomRadius(10.00);
// изменить параметры
cone5.useFillet(true);
cone5.filletRadiusRelation(0.20);
cone5.startPoint(Vec3(-285.69,-58.62,257.72));
cone5.endPoint(Vec3(-305.78,108.83,232.01));
cone5.height(170.60);
cone5.bottomRadius(74.79);
// добавить в сцену
tool.Apply(0);
}

cone-prim.png
Cone Primitive

Результат выполнения скрипта смотри здесь

Капсула

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//перейти в скульпт-комнату
coat.room("Sculpt");
// подготовка сцены
SculptRoom sculpt;
sculpt.toVoxel();
//очистить комнату
Vox vox1;
vox1.clearScene();
vox1.rename("Volume58");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// перейти к примитивам
ui("$SCULP_PRIM");
// создать объект капсула
CapsulePrim capsule16;
capsule16 = tool.capsule();
// начальные параметры
capsule16.useDiameter(false);
// позиция
capsule16.startPoint(Vec3(-502.04,-138.54,138.58));
capsule16.endPoint(Vec3(-502.04,31.45,138.58));
capsule16.height(169.98);
capsule16.radius(41.13);
capsule16.topRadius(41.13);
capsule16.bottomRadius(41.13);
// масштаб
capsule16.scalex(1.00);
capsule16.Cap1(1.00);
capsule16.scaley(1.00);
capsule16.Cap2(1.00);
capsule16.scalex(1.00);
capsule16.Cap1(1.00);
capsule16.scaley(1.00);
capsule16.Cap2(1.00);
// перейти в поверхностный режим
vox1.to("Volume58");
vox1.toSurface();
// изменить параметры
capsule16.startPoint(Vec3(-457.88,-216.68,227.52));
capsule16.endPoint(Vec3(-583.86,-116.64,64.04));
capsule16.height(229.36);
capsule16.radius(55.49);
capsule16.topRadius(55.49);
capsule16.bottomRadius(55.49);
capsule16.details(0.84);
// добавить в сцену
tool.Apply(0);
}

capsule-prim.png
Capsule Primitive

Результат выполнения скрипта смотри здесь

Труба

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//go to sculpt room
coat.room("Sculpt");
//prepare the scene
SculptRoom sculpt;
sculpt.toVoxel();
//clear the sculpt room
Vox vox1;
vox1.clearScene();
vox1.rename("Volume1");
//prepare the primitives tool
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// goto surface mode
vox1.toSurface();
// create the tube obj
TubePrim tube7;
tube7 = tool.tube();
// init parameters
tube7.startPoint(Vec3(-223.68,3.57,222.30));
tube7.endPoint(Vec3(-230.67,118.01,173.44));
tube7.height(124.63);
tube7.radius(32.72);
tube7.WallThickness(16.36);
tube7.details(0.84);
// change parameters
tube7.useFillet(true);
tube7.Bevel(1,false);
tube7.Bevel(2,true);
tube7.filletRadiusRelation(0.20);
tube7.startPoint(Vec3(-227.87,-73.63,238.01));
tube7.endPoint(Vec3(-217.73,113.49,199.92));
tube7.height(191.24);
tube7.radius(50.20);
tube7.WallThickness(25.10);
tube7.details(0.57);
// add in the scene
tool.Apply(0);
}

tube-prim.png
Tube Primitive

Результат выполнения скрипта смотри здесь

Многогранник

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// перейти в скульпт комнату
coat.room("Sculpt");
//подготовить сцену
SculptRoom sculpt;
sculpt.toVoxel();
//очистить сцену
Vox vox1;
vox1.clearScene();
vox1.rename("Volume1");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// перейти к примитивам
ui("$SCULP_PRIM");
// создать объект многогранник
NGonPrim ngon8;
ngon8 = tool.ngon();
// позиция
ngon8.startPoint(Vec3(238.79,-48.69,340.52));
ngon8.endPoint(Vec3(238.79,118.53,340.52));
// высота & радиус
ngon8.height(167.22);
ngon8.radius(68.07);
// кол-во сторон
ngon8.Order(6);
// добавить в сцену
tool.Apply(0);
}

ngon-prim.png
NGon Primitive

Результат выполнения скрипта смотри здесь

Шестеренка

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// перейти в скульпт комнату
coat.room("Sculpt");
// подготовить сцену
SculptRoom sculpt;
sculpt.toVoxel();
// очищаем сцену
Vox vox1;
vox1.clearScene();
vox1.rename("Volume1");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// перейти к примитивам
ui("$SCULP_PRIM");
// создать шестеренку
GearPrim gear9;
gear9 = tool.gear();
// позиция
gear9.startPoint(Vec3(0.00,0.00,0.00));
gear9.endPoint(Vec3(0.00,20.00,0.00));
// инициализация параметров
gear9.height(20.00);
gear9.radius(10.00);
gear9.Depth(0.10);
gear9.Sharpness(0.5);
gear9.Order(16);
// изменить параметры
gear9.startPoint(Vec3(285.31,-181.30,495.22));
gear9.endPoint(Vec3(285.31,-33.71,478.45));
gear9.height(148.55);
gear9.radius(94.87);
// добавить объект в сцену
tool.Apply(0);
}

gear-prim.png
Gear Primitive

Результат выполнения скрипта смотри здесь

Токарный станок

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// перейти в скульпт комнату
coat.room("Sculpt");
// воксельный объект
Vox vox1;
// очищаем сцену
vox1.clearScene();
vox1.rename("Volume2");
// перейти к примитивам
UI ui;
ui("$SCULP_PRIM");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// создать объект токарный станок
LathePrim lathe10;
lathe10 = tool.lathe();
// установить оси
lathe10.AxisX(Vec3(0.22,0.08,0.97));
lathe10.AxisY(Vec3(-0.09,0.99,-0.06));
lathe10.AxisZ(Vec3(-0.97,-0.07,0.23));
// установить позицию
lathe10.Position(Vec3(-141.10,35.58,306.22));
// стороны
lathe10.SideA(160.96);
lathe10.SideB(160.96);
lathe10.SideC(160.96);
// профиль цилиндрический
lathe10.LatheType(0);
// координаты точек
lathe10.SetPoint(0,0.00,0.50,0);
lathe10.SetPoint(1,0.49,0.11,0);
lathe10.SetPoint(2,1.00,0.50,0);
// добавить объект в сцену
tool.Apply(0);
}

lathe-prim.png
Lathe Primitive

Результат выполнения скрипта смотри здесь

Текст

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to sculpt room
coat.room("Sculpt");
// voxel object
Vox vox1;
//clear the sculpt room
vox1.clearScene();
vox1.rename("Volume2");
// go to primitives
UI ui;
ui("$SCULP_PRIM");
//create the font object
Font font;
//font parameters
font.Name("Arial");
font.Size(96);
font.Weight(400);
font.Style(0);
font.OutPrecision(3);
font.ClipPrecision(2);
font.CharSet(0);
font.Quality(4);
font.Family(34);
//prepare the primitives tool
PrimitivesTool tool;
//create the text object
TextPrim text11;
text11 = tool.text();
//sets text
text11.SetText("Sculpt room");
//axis transform
text11.AxisX(Vec3(0.77,0.00,-0.64));
text11.AxisY(Vec3(-0.34,0.85,-0.41));
text11.AxisZ(Vec3(0.54,0.53,0.65));
//position
text11.Position(Vec3(-293.23,132.34,210.24));
//sides
text11.SideA(174.53);
text11.SideB(174.53);
text11.SideC(17.45);
//rotation
text11.ExtraRotation(-21.60);
//bending
text11.Bend(false);
//add text object in the scene
tool.Apply(0);
}

text-prim.png
Text Primitive

Результат выполнения скрипта смотри здесь

Изображение

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// перейти в скульпт комнату
coat.room("Sculpt");
// воксельный объект
Vox vox1;
// очищаем сцену
vox1.clearScene();
vox1.rename("Volume3");
// перейти к примитивам
UI ui;
ui("$SCULP_PRIM");
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// создать объект изображение
ImagePrim image12;
image12 = tool.image();
image12.AxisX(Vec3(0.80,0.00,-0.60));
image12.AxisY(Vec3(0.00,1.00,0.00));
image12.AxisZ(Vec3(0.60,0.00,0.80));
// позиция и стороны
image12.Position(Vec3(-257.19,0.00,282.29));
image12.SideA(128.02);
image12.SideB(128.02);
image12.SideC(12.80);
// вращение
image12.ExtraRotation(0.00);
// изгиб выключить
image12.Bend(false);
ImageMeshParam imparam1;
// установить размер в сцену
imparam1.SizeInScene(100.00);
// установить верхнее изображение
imparam1.Top("/images/Bracelet.png");
imparam1.TopBump("/images/Bracelet.png");
// ширина изображения
imparam1.TopBottomWeight(0.70);
imparam1.BasicThickness(8.00);
imparam1.BumpThickness(8.00);
// закрепить изображение
image12.PickImage();
// resize object
image12.SideA(91.12);
image12.SideB(91.12);
image12.SideC(9.11);
// добавить объект в сцену
tool.Apply(0);
}

image-prim.png
Image Primitive

Результат выполнения скрипта смотри здесь

Пружина

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// go to sculpt room
coat.room("Sculpt");
SculptRoom sculpt;
sculpt.toVoxel();
//gets vox obj
Vox vox1;
vox1.clearScene();
vox1.rename("Volume4");
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create the spiral
SpringPrim spring13;
spring13 = tool.spring();
// sets a position
spring13.Position(Vec3(-318.50,0.00,316.36));
spring13.Position2(Vec3(-318.50,2.00,316.40));
// scale
spring13.ScaleRadius(1.00);
spring13.OuterDiameter(67.96);
// sets the pitch
spring13.Pitch(33.98);
spring13.ProfileDiameter(16.99);
spring13.ProfileRadiusRelation(0.50);
// account turns
spring13.Turns(7);
// spiral direction
spring13.ClockWise(true);
// add the spiral in the scene
tool.Apply(0);
}

spiral-prim.png
Spiral Primitive

Результат выполнения скрипта смотри здесь

Тор

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// go to sculpt room
coat.room("Sculpt");
SculptRoom sculpt;
sculpt.toVoxel();
//gets vox obj
Vox vox1;
vox1.clearScene();
vox1.rename("Volume5");
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create the torus
TorusPrim torus14;
torus14 = tool.torus();
// init parameters
torus14.Position(Vec3(0.00,0.00,0.00));
torus14.SideA(30.00);
torus14.SideB(30.00);
torus14.SideC(30.00);
torus14.RadiusRelation(0.50);
torus14.OuterRadius(30.00);
torus14.InnerRadius(15.00);
torus14.ProfileRadius(7.50);
torus14.AxisX(Vec3(1.00,0.05,-0.04));
torus14.AxisY(Vec3(-0.05,1.00,0.05));
torus14.AxisZ(Vec3(0.04,-0.05,1.00));
// go to surface mode
vox1.toSurface();
// change parameters
torus14.Position(Vec3(-525.58,-37.10,196.04));
// sides
torus14.SideA(102.64);
torus14.SideB(102.64);
torus14.SideC(102.64);
// radius
torus14.OuterRadius(102.64);
torus14.InnerRadius(51.32);
torus14.ProfileRadius(25.66);
torus14.AxisX(Vec3(0.83,0.02,-0.56));
torus14.AxisY(Vec3(-0.01,1.00,0.02));
torus14.AxisZ(Vec3(0.56,-0.01,0.83));
// details level
torus14.details(0.81);
// add the torus in the scene
tool.Apply(0);
}

torus-prim.png
Torus Primitive

Результат выполнения скрипта смотри здесь

Резьба

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//перейти в скульпт комнату
coat.room("Sculpt");
Vox vox1;
//очистить сцену
vox1.clearScene();
vox1.rename("Volume3");
// перейти в сурфейсный пережим
vox1.toSurface();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// примитивы
ui("$SCULP_PRIM");
// создать резьбу
ThreadPrim thread15;
thread15 = tool.thread();
// позиция
thread15.Position(Vec3(-416.06,-69.18,174.47));
// диаметр
thread15.Diameter(135.42);
thread15.Pitch(22.57);
thread15.Turns(10);
// профиль треугольный
thread15.Profile(ProfileType::TRIANGLE);
thread15.ClockWise(true);
thread15.StubHeight(4.51);
// сурфейсный режим
vox1.toSurface();
// уровень детализации
thread15.details(0.59);
// добавить в сцену
tool.Apply(0);
}

screwthread-prim.png
Screw-Thread Primitive

Результат выполнения скрипта смотри здесь

Стержень с резьбой

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// go to sculpt room
coat.room("Sculpt");
Vox vox1;
// clear the scene
vox1.clearScene();
vox1.rename("Volume36");
// go to surface mode
vox1.toSurface();
// prepare the primitives tool
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create core thread object
CoreThreadPrim coreThread16;
coreThread16 = tool.corethread();
// position
coreThread16.Position(Vec3(-423.00,-51.63,202.36));
// length
coreThread16.Length(252.50);
// core diameter
coreThread16.Diameter(126.25);
// thread length
coreThread16.ThreadLength(168.33);
// pitch
coreThread16.Pitch(21.04);
// round type
coreThread16.Profile(ProfileType::ROUND);
// add in the scene
tool.Apply(0);
}

screwcorethread-prim.png
Screw-Thread With Core Primitive

Результат выполнения скрипта смотри здесь

Шляпка болта

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// идем в скульпт-комнату
coat.room("Sculpt");
Vox vox1;
//очищаем сцену
vox1.clearScene();
vox1.rename("Volume36");
vox1.toSurface();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// переход к примитивам
ui("$SCULP_PRIM");
// создаем объект головки болта
BoltHeadPrim bolthead17;
bolthead17 = tool.bolthead();
// начальная позиция
bolthead17.Position(Vec3(-366.07,0.00,196.40));
// шестнадцатеричный тип
bolthead17.HeadType(SHeadType::HEXA);
// отключаем прорезь
bolthead17.UseSlit(false);
bolthead17.Diameter(165.80);
bolthead17.Height(55.27);
// разрешаем прорезь
bolthead17.UseSlit(true);
// размеры щели
bolthead17.SlitWidth(8.07);
bolthead17.SlitLength(120.39);
bolthead17.SlitHeight(5.00);
// разрез
bolthead17.SlitType(SSlitType::SLOT);
// добавляем в сцену
tool.Apply(0);
}

bolthead-prim.png
Bolt's head Primitive

Результат выполнения скрипта смотри здесь

Болт

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// идем в комнату лепки
coat.room("Sculpt");
Vox vox1;
// очищаем сцену
vox1.clearScene();
vox1.rename("Volume36");
vox1.toSurface();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// переходим к примитивам
ui("$SCULP_PRIM");
// создаем объект болта
BoltPrim bolt18;
bolt18 = tool.bolt();
// устанавливает пользовательский режим
bolt18.Custom();
// позиция
bolt18.Position(Vec3(-336.02,-80.03,161.63));
// головка болта с шестигранной головкой
bolt18.HeadType(SHeadType::HEXA);
// профиль треугольника
bolt18.Profile(ProfileType::TRIANGLE);
// переходим в поверхностный режим
vox1.toSurface();
// изменяем параметры оси
bolt18.AxisX(Vec3(-0.01,-0.22,-0.97));
bolt18.AxisY(Vec3(0.93,0.36,-0.09));
bolt18.AxisZ(Vec3(0.37,-0.91,0.20));
bolt18.Diameter(281.71);
bolt18.Height(93.90);
bolt18.BodyLength(281.71);
bolt18.BodyDiameter(140.85);
bolt18.ThreadLength(187.81);
bolt18.Pitch(23.48);
// уровень детализации
bolt18.details(0.32);
// добавляем в сцену
tool.Apply(0);
}

bolt-prim.png
Bolt Primitive

Результат выполнения скрипта смотри здесь

Шуруп

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//go to sculpt room
coat.room("Sculpt");
Vox vox1;
//clear the scene
vox1.clearScene();
vox1.rename("Volume36");
vox1.toSurface();
//prepare the primitives tool
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create screw object
TapScrewPrim screw19;
screw19 = tool.tapscrew();
// sets custom mode
screw19.Custom();
// go to surface mode
vox1.toSurface();
// axises
screw19.AxisX(Vec3(0.03,0.03,-1.00));
screw19.AxisY(Vec3(0.98,0.18,0.03));
screw19.AxisZ(Vec3(0.18,-0.98,-0.03));
// init position
screw19.Position(Vec3(-239.87,-45.06,255.75));
//other parameters
screw19.HeadDiameter(210.99);
screw19.HeadHeight(70.33);
screw19.HeadType(SHeadType::BUGLE);
//enable slit
screw19.UseSlit(true);
screw19.SlitWidth(10.55);
screw19.SlitLength(216.26);
screw19.SlitHeight(17.58);
screw19.SlitType(SSlitType::SLOT);
screw19.Length(281.31);
screw19.Diameter(70.33);
screw19.UseThread(true);
screw19.UseGroove(false);
screw19.ThreadLength(210.99);
screw19.ThreadDiameter(84.39);
screw19.Pitch(17.58);
screw19.details(0.55);
// add screw in the scene
tool.Apply(0);
}

screw-prim.png
Screw Primitive

Результат выполнения скрипта смотри здесь

Гайка

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//go to sculpt room
coat.room("Sculpt");
//clear the sculpt room
Vox vox1;
vox1.clearScene();
vox1.rename("Volume36");
vox1.toSurface();
//prepare the primitives tool
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create nut object
NutPrim nut20;
nut20 = tool.nut();
// custom mode
nut20.Custom();
// init axises
nut20.AxisX(Vec3(-0.59,0.36,-0.72));
nut20.AxisY(Vec3(0.81,0.26,-0.53));
nut20.AxisZ(Vec3(-0.00,-0.89,-0.45));
// init position
nut20.Position(Vec3(-30,0,0));
//other parameters
nut20.Name("hexa");
nut20.Diameter(233.01);
nut20.Height(116.51);
nut20.HeadType(SNutType::HEXA);
nut20.ThreadDiameter(155.34);
nut20.Pitch(19.42);
nut20.Profile(ProfileType::TRIANGLE);
nut20.UseThread(true);
// go to surface mode
vox1.toSurface();
// sets the detail level
nut20.details(0.61);
// add in the scene
tool.Apply(0);
}

screwnut-prim.png
Screw-Nut Primitive

Результат выполнения скрипта смотри здесь

Шайба

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
//go to sculpt room
coat.room("Sculpt");
//clear the sculpt room
Vox vox1;
vox1.clearScene();
vox1.rename("Volume36");
vox1.toSurface();
//prepare the primitives tool
PrimitivesTool tool;
// go to primitives
ui("$SCULP_PRIM");
// create screw washer
WasherPrim washer21;
washer21 = tool.washer();
// set custom mode
washer21.Custom();
// init parameters
washer21.Position(Vec3(-372.39,-60.71,-2.84));
washer21.Position2(Vec3(-372.39,-58.80,-2.24));
washer21.ScaleRadius(1.00);
washer21.Name("conus");
washer21.InnerDiameter(182.73);
washer21.OuterDiameter(365.46);
washer21.Thickness(31.84);
washer21.Height(47.75);
washer21.InnerDiameter2(301.79);
washer21.WasherType(SWasherType::CONUS);
washer21.details(0.61);
// change the parameters
washer21.Position(Vec3(-353.83,-60.71,-2.84));
washer21.Position2(Vec3(-353.83,-58.72,-2.22));
washer21.ScaleRadius(1.04);
washer21.InnerDiameter(190.18);
washer21.OuterDiameter(380.37);
washer21.Thickness(33.13);
washer21.Height(49.70);
washer21.InnerDiameter2(314.10);
// detail level
washer21.details(0.41);
// add screw washer in the scene
tool.Apply(0);
}

screwwasher-prim.png
Screw-Washer Primitive

Результат выполнения скрипта смотри здесь

Плавающие примитивы

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
UI ui;
// перейти в скульпт комнату
coat.room("Sculpt");
// подготовить сцену
SculptRoom sculpt;
sculpt.toVoxel();
// очищаем сцену
Vox vox1;
vox1.rename("Volume36");
vox1.toSurface();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
// перейти к примитивам
ui("$SCULP_PRIM");
// создать объект плавающие примитивы
FreeFormPrim ff32;
ff32 = tool.freeform("Blob:Blob2x2");
ff32.Transform(false);
ff32.SymmetryX(false);
ff32.SymmetryY(false);
ff32.SymmetryZ(false);
// инициировать точки
ff32.SetPoint(0,-51.67,-51.67,51.67);
ff32.SetPoint(1,-51.67,51.67,51.67);
ff32.SetPoint(2,51.67,51.67,51.67);
ff32.SetPoint(3,51.67,-51.67,51.67);
ff32.SetPoint(4,-51.67,-51.67,-51.67);
ff32.SetPoint(5,-51.67,51.67,-51.67);
ff32.SetPoint(6,51.67,51.67,-51.67);
ff32.SetPoint(7,51.67,-51.67,-51.67);
// 0 - индекс of "Blob2x2"
ff32.SubPrim(0);
// уровень детализации
ff32.details(0.26);
// изменить позицию точки
ff32.SetPoint(0,-97.98,-184.13,169.57);
ff32.SetPoint(1,-137.95,-23.70,192.67);
ff32.SetPoint(2,-75.81,-118.47,333.79);
ff32.SetPoint(3,25.56,-210.63,211.70);
ff32.SetPoint(4,-113.92,116.51,-214.19);
ff32.SetPoint(5,121.35,-253.16,-74.83);
ff32.SetPoint(6,172.05,6.77,-149.14);
ff32.SetPoint(7,125.49,-172.24,-62.55);
// добавить в сцену
tool.Apply(0);
}

freeform-prim.png
Free form Primitive

Результат выполнения скрипта смотри здесь

Как создавать примитивы в ретопо комнате

We can use for creating primitives the following classes: Вы можете использовать для создания примитивов следующие классы:

Сфера

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to retopo room
coat.room("Retopo");
// clear retopo
RetopoRoom retopo;
retopo.clear();
// prepare the primitive tool
PrimitivesTool tool;
coat.room("Retopo");
// go to primitives
cmd("$RTP_PRIM");
// create sphere
rGeoSphere rsphere22;
rsphere22 = tool.rsphere();
//init parameters
rsphere22.useDiameter(false);
rsphere22.Position(Vec3(-273.63,0.00,0.00));
rsphere22.Radius(10.00);
rsphere22.SubDivision(0);
// set positions
rsphere22.Position(Vec3(-252.48,80.03,0.00));
// set a radius
rsphere22.Radius(120.15);
// set a subvisision
rsphere22.SubDivision(5);
// add sphere in the scene
tool.Apply();
}
rsphere-prim.png
Sphere Primitive

Результат выполнения скрипта смотри здесь

Куб

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// перейти в ретопо
coat.room("Retopo");
// очистить сцену
RetopoRoom retopo;
retopo.clear();
// подготавливаем инструмент примитивов
PrimitivesTool tool;
coat.room("Retopo");
// перейти к примитивам
cmd("$RTP_PRIM");
// создать бокс
rGeoBox rbox23;
rbox23 = tool.rbox();
// оси
rbox23.AxisX(Vec3(1.00,0.00,0.00));
rbox23.AxisY(Vec3(0.00,1.00,0.00));
rbox23.AxisZ(Vec3(0.00,0.00,1.00));
rbox23.useUniform(true);
// позиция
rbox23.Position(Vec3(-226.48,32.41,0.00));
// установить стороны
rbox23.SideA(64.79);
rbox23.SideB(64.79);
rbox23.SideC(64.79);
// инициализация разбиений
rbox23.DivX(1);
rbox23.DivY(1);
rbox23.DivZ(1);
rbox23.AverageDivision(1);
// позиция
rbox23.Position(Vec3(-179.87,32.41,0.00));
// стороны
rbox23.SideA(85.72);
rbox23.SideB(85.72);
rbox23.SideC(85.72);
// разделения
rbox23.DivX(7);
rbox23.DivY(7);
rbox23.DivZ(7);
rbox23.AverageDivision(7);
// добавить бокс в сцену
tool.Apply();
}
rbox-prim.png
Box Primitive

Результат выполнения скрипта смотри здесь

Цилиндр

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to retopo room
coat.room("Retopo");
// clear retopo
RetopoRoom retopo;
retopo.clear();
// prepare the primitives tool
PrimitivesTool tool;
coat.room("Retopo");
// go to the primitives
cmd("$RTP_PRIM");
// create the cylinder
rGeoCylinder rcylinder24;
rcylinder24 = tool.rcylinder();
// init flags
rcylinder24.useDiameter(false);
rcylinder24.useFillet(false);
rcylinder24.RemoveCaps(false);
rcylinder24.useUniform(true);
// init positions
rcylinder24.startPoint(Vec3(-145.07,0.00,0.00));
rcylinder24.endPoint(Vec3(-145.07,20.00,0.00));
// init height,radius,topRadius,bottomRadius
rcylinder24.height(20.00);
rcylinder24.radius(10.00);
rcylinder24.topRadius(10.00);
rcylinder24.bottomRadius(10.00);
// init divisions
rcylinder24.DivY(3);
rcylinder24.DivX(1);
rcylinder24.DivZ(5);
rcylinder24.AverageDivision(3);
// change positions
rcylinder24.startPoint(Vec3(-145.07,-101.38,0.00));
rcylinder24.endPoint(Vec3(-145.07,45.82,0.00));
// sets height
rcylinder24.height(147.20);
// sets radius,topRadius,bottomRadius
rcylinder24.radius(72.82);
rcylinder24.topRadius(72.82);
rcylinder24.bottomRadius(72.82);
// sets divisions
rcylinder24.DivY(13);
rcylinder24.DivX(3);
rcylinder24.DivZ(20);
rcylinder24.AverageDivision(12);
// add in the scene
tool.Apply();
}
rcylinder-prim.png
Cylinder Primitive

Результат выполнения скрипта смотри здесь

Конус

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to retopo room
coat.room("Retopo");
// clear the room
RetopoRoom retopo;
retopo.clear();
// prepare the primitives tool
PrimitivesTool tool;
coat.room("Retopo");
cmd("$RTP_PRIM");
// create the cone
rGeoCone rcone25;
rcone25 = tool.rcone();
// init flags
rcone25.useDiameter(false);
rcone25.useFillet(false);
rcone25.useUniform(true);
// init start & end position
rcone25.startPoint(Vec3(0.00,0.00,0.00));
rcone25.endPoint(Vec3(0.00,20.00,0.00));
// height
rcone25.height(20.00);
rcone25.bottomRadius(10.00);
// scales = 1
rcone25.scalex(1.00);
rcone25.scaley(1.00);
// divisions
rcone25.DivY(5);
rcone25.DivX(1);
rcone25.DivZ(4);
rcone25.AverageDivision(3);
// sets fillet to "true"
rcone25.useFillet(true);
// sets fillet radius
rcone25.filletRadiusRelation(0.34);
rcone25.filletRadius(16.61);
// sets the positions
rcone25.startPoint(Vec3(-50.17,0.00,106.16));
rcone25.endPoint(Vec3(-50.17,161.35,106.16));
// sets the height
rcone25.height(161.35);
// sets the bottom radius
rcone25.bottomRadius(75.93);
// sets the count of divisions
rcone25.DivY(19);
rcone25.DivX(2);
rcone25.DivZ(14);
rcone25.AverageDivision(12);
// add in the scene
tool.Apply();
}
rcone-prim.png
Cone Primitive

Результат выполнения скрипта смотри здесь

Еллипс

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to Retopo room
coat.room("Retopo");
// clear retopo
RetopoRoom retopo;
retopo.clear();
//prepare the primitives tool
PrimitivesTool tool;
coat.room("Retopo");
// go to primitives
cmd("$RTP_PRIM");
// create the ellipse
rGeoEllipse rellipse26;
rellipse26 = tool.rellipse();
// init axes & position
rellipse26.AxisX(Vec3(1.00,-0.04,0.04));
rellipse26.AxisY(Vec3(0.04,1.00,-0.04));
rellipse26.AxisZ(Vec3(-0.04,0.05,1.00));
rellipse26.Position(Vec3(-279.27,11.38,-12.08));
// init sided
rellipse26.SideA(30.00);
rellipse26.SideB(30.00);
rellipse26.SideC(62.75);
// change axes
rellipse26.AxisX(Vec3(0.34,0.03,0.94));
rellipse26.AxisZ(Vec3(-0.94,0.06,0.34));
// change position
rellipse26.Position(Vec3(-283.85,16.57,98.84));
// add in the scene
tool.Apply();
}
rellipse-prim.png
Ellipse Primitive

Результат выполнения скрипта смотри здесь

Тор

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Script / Run Script". Don't know how to do that, check here.

void main() {
Coat coat;
// go to the retopo room
coat.room("Retopo");
// clear the room
RetopoRoom retopo;
retopo.clear();
// prepare the primitives tool
PrimitivesTool tool;
coat.room("Retopo");
// go to the primitives
cmd("$RTP_PRIM");
// create the torus
rGeoTorus rtorus27;
rtorus27 = tool.rtorus();
// init axes
rtorus27.AxisX(Vec3(1.00,0.00,0.00));
rtorus27.AxisY(Vec3(0.00,1.00,0.00));
rtorus27.AxisZ(Vec3(0.00,0.00,1.00));
// set a uniform flag
rtorus27.useUniform(true);
// init position
rtorus27.Position(Vec3(0.00,0.00,0.00));
// init sides
rtorus27.SideA(30.00);
rtorus27.SideB(30.00);
rtorus27.SideC(30.00);
// init radius relation
rtorus27.RadiusRelation(0.50);
// init a outer,inner and profile radius
rtorus27.OuterRadius(30.00);
rtorus27.InnerRadius(15.00);
rtorus27.ProfileRadius(7.50);
// set a default division
rtorus27.AverageDivision(3);
// set the axes
rtorus27.AxisY(Vec3(0.00,0.28,-0.96));
rtorus27.AxisZ(Vec3(0.00,0.96,0.28));
// set the position
rtorus27.Position(Vec3(-194.37,-15.59,52.99));
// set a sides
rtorus27.SideA(112.28);
rtorus27.SideB(112.28);
rtorus27.SideC(112.28);
// set a outer, inner and profile radius
rtorus27.OuterRadius(112.28);
rtorus27.InnerRadius(56.14);
rtorus27.ProfileRadius(28.07);
// set an average division
rtorus27.AverageDivision(27);
// add torus in the scene
tool.Apply();
}
rtorus-prim.png
Torus Primitive

Результат выполнения скрипта смотри здесь

Капсула

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to retopo room
coat.room("Retopo");
// clear
RetopoRoom retopo;
retopo.clear();
// prepare the primitives room
PrimitivesTool tool;
coat.room("Retopo");
// go to primitives
cmd("$RTP_PRIM");
// create the capsule
rGeoCapsule rcapsule28;
rcapsule28 = tool.rcapsule();
// init parameters
rcapsule28.useDiameter(false);
rcapsule28.useUniform(true);
// positions
rcapsule28.startPoint(Vec3(0.00,0.00,0.00));
rcapsule28.endPoint(Vec3(0.00,20.00,0.00));
// height
rcapsule28.height(20.00);
// radius
rcapsule28.radius(10.00);
rcapsule28.topRadius(10.00);
rcapsule28.bottomRadius(10.00);
// scales & caps
rcapsule28.scalex(1.00);
rcapsule28.Cap1(1.00);
rcapsule28.scaley(1.00);
rcapsule28.Cap2(1.00);
// divisions
rcapsule28.DivY(2);
rcapsule28.DivZ(6);
rcapsule28.DivX(1);
rcapsule28.AverageDivision(3);
// sets the start & end positions
rcapsule28.startPoint(Vec3(-27.64,-37.33,156.80));
rcapsule28.endPoint(Vec3(-54.29,101.93,125.67));
// sets the height
rcapsule28.height(145.17);
// sets the radius
rcapsule28.radius(66.11);
rcapsule28.topRadius(66.11);
rcapsule28.bottomRadius(66.11);
// sets the count of divisions
rcapsule28.DivY(14);
rcapsule28.DivZ(39);
rcapsule28.DivX(10);
rcapsule28.AverageDivision(21);
// add in the scene
tool.Apply();
}
rcapsule-prim.png
Capsule Primitive

Результат выполнения скрипта смотри здесь

Труба

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to the retopo room
coat.room("Retopo");
// clear room
RetopoRoom retopo;
retopo.clear();
// prepare the primitives tool
PrimitivesTool tool;
coat.room("Retopo");
// go to primitives
cmd("$RTP_PRIM");
// create the tube
rGeoTube rtube29;
rtube29 = tool.rtube();
// init flags
rtube29.useDiameter(false);
rtube29.useFillet(false);
rtube29.useUniform(true);
// init start & end points
rtube29.startPoint(Vec3(0.00,0.00,188.41));
rtube29.endPoint(Vec3(0.00,119.83,188.41));
// set a height
rtube29.height(119.83);
// set a radius
rtube29.radius(85.30);
// set a top radius
rtube29.topRadius(85.30);
// set a bottom radius
rtube29.bottomRadius(85.30);
// set a wall thickness
rtube29.WallThickness(42.65);
// set scales to "1"
rtube29.scalex(1.00);
rtube29.scaley(1.00);
// set the number of divisions
rtube29.DivY(7);
rtube29.DivX(1);
rtube29.DivZ(16);
rtube29.AverageDivision(8);
// add in the scene
tool.Apply();
}
rtube-prim.png
Tube Primitive

Результат выполнения скрипта смотри здесь

Многогранник

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to retopo room
coat.room("Retopo");
// clear retopo room
RetopoRoom retopo;
retopo.clear();
// prepare the primitives room
PrimitivesTool tool;
coat.room("Retopo");
// go to primitives
cmd("$RTP_PRIM");
// create the n-gon
rGeoNGon rngon30;
rngon30 = tool.rngon();
// init flags
rngon30.useDiameter(false);
rngon30.useFillet(true);
rngon30.useUniform(false);
// set a bevel to "true"
rngon30.Bevel(1,true);
rngon30.Bevel(2,true);
// set a fillet(bevel) radiuses
rngon30.filletRadiusRelation(0.02);
rngon30.filletRadius(0.34);
// set the positions
rngon30.startPoint(Vec3(-34.32,-54.38,124.74));
rngon30.endPoint(Vec3(-18.28,125.10,124.74));
// set height, radius, topRadius, bottomRadius
rngon30.height(180.20);
rngon30.radius(73.82);
rngon30.topRadius(73.82);
rngon30.bottomRadius(73.82);
// set the number of edges (order)
rngon30.Order(15);
// number of segment for fillet
rngon30.FilletSegs(1);
// set the divisions
rngon30.DivY(14);
rngon30.DivX(5);
rngon30.DivZ(4);
// add in the scene
tool.Apply();
}
rngon-prim.png
NGon Primitive

Результат выполнения скрипта смотри здесь

Пружина

Скопируй этот скрипт себе на комп и запусти из меню 3DCoat: "Скрипты / Запустить скрипт". Если не знаешь, как создавать скрипты, загляни сюда.

void main() {
Coat coat;
// go to the retopo room
coat.room("Retopo");
// clear room
RetopoRoom retopo;
retopo.clear();
// prepare the primitives room
PrimitivesTool tool;
coat.room("Retopo");
// go to the primitives
cmd("$RTP_PRIM");
// create the spiral
rGeoSpiral rspiral31;
rspiral31 = tool.rspiral();
// init the axes
rspiral31.AxisX(Vec3(0.00,-0.49,-0.87));
rspiral31.AxisY(Vec3(1.00,0.00,0.00));
rspiral31.AxisZ(Vec3(0.00,-0.87,0.49));
// uniform is 'true'
rspiral31.useUniform(true);
// set the positions
rspiral31.Position(Vec3(-140.16,0.00,69.79));
rspiral31.Position2(Vec3(-140.16,1.75,68.82));
// use a circle profile
rspiral31.UseRectProfile(false);
// set a outer diameter
rspiral31.OuterDiameter(151.22);
// set a pitch & profile diameter & radius relation
rspiral31.Pitch(75.61);
rspiral31.ProfileDiameter(37.81);
rspiral31.ProfileRadiusRelation(0.50);
// set the number of turns
rspiral31.Turns(3);
// clockwise = 'true'
rspiral31.ClockWise(true);
// set a number of divisions
rspiral31.DivY(54);
rspiral31.DivX(18);
rspiral31.DivZ(8);
rspiral31.AverageDivision(37);
// add torus in the scene
tool.Apply();
}
rspiral-prim.png
Spiral Primitive

Результат выполнения скрипта смотри здесь