3DCoatScripting  4.8.31Ξ²
Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скриптинга ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ возмоТностями ΠšΠΎΡƒΡ‚Π° ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».
πŸŒ€ ΠšΠΎΠΌΠ½Π°Ρ‚Ρ‹ 3DCoat

Работая с 3DCoat, Ρ‚Ρ‹, навСрняка, Π·Π½Π°ΠΊΠΎΠΌ с Π΅Π³ΠΎ "ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°Ρ‚".

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ скрипты Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΊΠΎΠΌΠ½Π°Ρ‚ΠΎΠΉ, которая ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° сСйчас.

Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ моТСшь ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ нСсколькими способами.

НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ UI:

// объявим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
UI ui;
// эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ тСбя (ΠΈ Ρ‚Π²ΠΎΠΉ скрипт) Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΡΠΊΡƒΠ»ΡŒΠΏΡ‚ΠΈΠ½Π³Π°
ui.toSculptRoom();
// эта - ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°
ui.toRenderRoom();
// ΠΏΠΎΠΏΠ°Π΄Ρ‘ΡˆΡŒ Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ Ρ€Π°ΡΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ
ui.toPaintRoom();
// Π±ΡƒΠ΄Π΅ΡˆΡŒ UV-Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ
ui.toUVRoom();
// Π° Ρ‚Π°ΠΊ тСбя ΠΆΠ΄Ρ‘Ρ‚ рСтопология
ui.toRetopoRoom();

Помни, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ UI ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ использованиСм:

UI ui;

Π’ ΡΠΊΡƒΠ»ΡŒΠΏΡ‚-ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ°ΠΏΠ°ΡΡ‚ΡŒ просто написав

SculptRoom sculptRoom;

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ‚Π΅Π±Π΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ, Π½ΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΠΏΠΎΠ΄ свой скрипт:

// ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘ΠΌ ΠΊΠΎΠΌΠ½ΡƒΡ‚Π° Π² сёрфСйсный Ρ€Π΅ΠΆΠΈΠΌ
sculptRoom.toSurface();
// ΠΈΠ»ΠΈ Π²ΠΎΠΊΡΠ΅Π»ΡŒΠ½Ρ‹ΠΉ
sculptRoom.toVoxel();
// ΡƒΠ·Π½Π°Ρ‘ΠΌ, Π² сёрфисном Π»ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΊΠΎΠΌΠ½Π°Ρ‚Π° сСйчас
// ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ `true`, Ссли Π΄Π°
// ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ `false`, Ссли Π² воксСльном
bool mode = sculptRoom.surface();
// ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΠΎΡ‚ созданных Π² Π½Π΅ΠΉ Ρ€Π°Π½Π΅Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
sculptRoom.clear();
// Ссли Ρ‚Π²ΠΎΠΉ скрипт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹,
// Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΡΠΊΡƒΠ»ΡŒΠΏΡ‚ Ρ‚Ρ‹ моТСшь Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
sculptRoom.focus();
// создав мСш, моТСшь Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ
sculptRoom += ВвойМСш;

Π’. ΠΊ. скриптинг 3DCoat ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ fluent-интСрфСйс, моТСшь ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ‚Π΅Π±Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ строкой. НапримСр:

// ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΡΠΊΡƒΠ»ΡŒΠΏΡ‚-ΠΊΠΎΠΌΠ½Π°Ρ‚Ρƒ ΠΈ пСрСвСсти Π΅Ρ‘ Π² сёрфСйсный Ρ€Π΅ΠΆΠΈΠΌ
sculptRoom.clear().toSurface();

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ этот Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ возмоТностСй:

// Returns whole command line.
string getCommandLine();
// Stores some string as global value that may be read later in
// the session. The value will be stored in 3B file and you will
// be able to read in further work with this scene.
DEPRECATED void SetGlobalVar(string& Name,string& Value)
// Returns value previously stored using SetGlobalVar.
DEPRECATED string GetGlobalVar (string& Name)
// Returns scene filename (last saved or opened as 3B file).
DEPRECATED string GetSceneFileName()
// Sets scene filename for further saving.
DEPRECATED void SetSceneFileName(string& Name)
// Highlight element with red rectangle.
// Pass the `time` in seconds.
void HighlightUIElement(string &ID, float time);
// Goes to one of previous dialogs in call stack.
DEPRECATED void back(int steps=1);
// Opens window described by xml-file pointed by Path.
// If Path contains .3b file will be opened as 3B file.
DEPRECATED void open(string &Path);
// Opens model for PPP, if path is empty, shows open dialog.
DEPRECATED void ppp(string &path);
// Opens model for MV painting, if path is empty, shows open dialog.
DEPRECATED void mv(string &path);
// Opens model for Ptex, if path is empty, shows open dialog.
DEPRECATED void ptex(string &path);
// Import image as mesh, dialog will be shown.
DEPRECATED void imagemesh();
// Import mesh as reference, if path is empty dialog will be shown.
DEPRECATED void refmesh(string &path);
// Import mesh for vertex painting, if path is empty dialog will be shown.
DEPRECATED void vertexpaint(string &path);
// Perform autopo over the mesh chosen in dialog.
DEPRECATED void autopo(string &path);
// Opens mesh for repairing. If id contains "vox" then model will be
// voxelized, if there is substring "shell" then mesh will be imported
// as thin shell. Mesh Opening dialog will be shown.
DEPRECATED void repair(string &id);
// Activate bas-relief tool.
DEPRECATED void bass();
// Activale remove undercuts mode.
DEPRECATED void undercut();
// Activate special voxel tool. id may be found in English.xml between
// <ID>...</ID> if you will find name of tool between
// <Text>...</Text> tags.
DEPRECATED void activate(string &id);
// Activate retopo tool.
DEPRECATED void retopo();
// Open mesh using dialog and merge as retopo mesh.
DEPRECATED void retopopen();
// Activate any room - name is one of "Paint", "Tweak", "UV",
// "Voxels", "Retopo", "Render".
DEPRECATED void ToRoom(string &name);
// Check if you are in specified room - name is one of "Paint",
// "Tweak", "UV", "Voxels", "Retopo", "Render".
DEPRECATED bool IsInRoom(string &name);
// Add new volume in voxel room. If name is empty name will be
// assigned automatically.
DEPRECATED void AddNewVolume(string &name);
// Activate UV room.
DEPRECATED void uv();
// Activate voxel room and add new volume.
DEPRECATED void vox();
// Create sphere of radius R in voxel room in current object.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
DEPRECATED void sphere(float x,float y,float z,float r,int mode);
// Create cube in voxel room in current object.
// \param mode 0 - add, 1 - subtract, 2 - intersect with scene.
// \param sizex Size by X-axis.
// \param sizey Size by Y-axis.
// \param sizez Size by Z-axis.
DEPRECATED void cube(float x,float y,float z,float sizex,float sizey,float sizez,int mode);
// Turn all volumes to surface mode.
DEPRECATED void surf();
// Turn current volume to the surface mode.
DEPRECATED void cursurf();
// Turn current volume to voxel mode, voxelize if need.
DEPRECATED void voxelize();
// Sets merging options in voxel room. opt is just set of substrings
// with different options. Possible values are:
// [voxelize=true]
// [voxelize=false]
// [separate=true]
// [separate=false]
// [respectneg=true]
// [respectneg=false]
// [as_skin=true]
// [as_skin=false]
// [skin=....] - to set skin thickness.
DEPRECATED void mergeopt(string &opt);
// Example:
mergeopt( "[voxelize=true][as_skin=true][skin=4.5]" );
// Merge model in voxel room. Empty string means that dialog will be shown.
DEPRECATED void merge(string &model);
// Activate voxel primitives tool. Possible primitives:
// cube, cylinder, sphere, tube, cone, ellipse, n-gon, gear.
DEPRECATED void prim(string &id);
// Apply in current tool (same as press enter).
DEPRECATED void apply();
// Apply in Merge tool without asking "Keep scale?".
// Scale will not be kept and scene scale will not be changed.
DEPRECATED void ApplyAndKeepScale();
// Apply in current tool (same as press enter) wint one difference -
// in Merge tool scale of merged object sill be automatically kept and
// scene scale changed if this merge is first.
DEPRECATED void mapply();
// Open recent 3B-file.
DEPRECATED void recent3b();
// Print text to MyDocuments/3D-CoatV4/log.txt.
DEPRECATED void Log(string &line);
// Generate integer random number min..max.
int rand(int min,int max);
// Generate floating random number min..max.
float randF(float min,float max);
// Set random generator seed.
void seed(int val);
// Show progress bar pos = 0..100.
DEPRECATED void ProgressBar(const string& message,int pos);
// Set orthogonal (true) or perspective (false) view mode.
DEPRECATED void SetOrthoMode(bool value);