CMD Python module

Contents

CMD Python module#

The CMD module essentially includes all the same commands as AngelScript, designed for easy conversion and compatibility with legacy interface commands. This module doesn’t have its own source code; it imports and includes the cPy.Legacy module.

cPy.Legacy module#

ModalDialog(ID: str, Caption: str)[source]#
Show model dialog with text identified ID. ID used to take translation from language xml or just may be shown directly if translation not found.
GetLastDialogButtonIndex()[source]#
Show model dialog with text identified ID. ID used to take translation from language xml or just may be shown directly if translation not found.
DontShowAgain(ID: str, Caption: str)[source]#
Show dialog with text identified ID. ID used to take translation from language xml or just may be shown directly if translation not found.
ModalDialogOkCancel(ID: str, Caption: str)[source]#
Show dialog with text identified ID and two buttons - Ok and Cancel. Returns true if OK pressed, false if Cancel pressed. ID used to take translation from language xml or just may be shown directly if translation not found.
ModalDialogYesNo(ID: str, Caption: str)[source]#
Show dialog with text identified ID and two buttons - Yes and No. Returns true if OK pressed, false if Cancel pressed. ID used to take translation from language xml or just may be shown directly if translation not found.
PressInNextModalDialogs(ButtonIndex: int)[source]#
You should call PressInNextDialogs(-1) to stop automatical pressing of buttons.
SetModalDialogCallback(name: str)[source]#
You may get name of current dialog name using next function
RemoveModalDialogCallbacks()[source]#
remove all dialog callbacks
GetCurrentDialog(ID: str, Caption: str)[source]#
returns true if you are in dialog now, also it retuns text and cation in current dialog to identify it
ShowFloatingText(ID: str, FID: int)[source]#
show non-modal message on screen that will be hidden after some period of time
GetFontID(ID: str, size: int, weight: int)[source]#
gets the font id by font name
GetFontFileID(fileNameID: str)[source]#
gets the font id by font name
GetTextID(ID: str)[source]#
gets the string by id name
SetScriptMessage(msg: str, sparam: str)[source]#
set script message and params that will be executed
SetFloatingMessage(x: int, y: int, strMessage: str, strColor: str)[source]#
set script floating message at point (x,y)
SetFloatingMessageBox(x: int, y: int, strMessage: str, strColor: str, uType: int)[source]#
set script floating message box at point (x,y) with uType (windows styles)
GetCommandStringMessageBox(x: int, y: int, strMessage: str, strColor: str, uType: int)[source]#
get script floating message box at point (x,y) with uType (windows styles)
SetFloatingMessageBoxTime(x: int, y: int, strMessage: str, strColor: str, uType: int, Time: int)[source]#
set script floating message box at point (x,y) with uType (windows styles) Time - time in mls
ShowMessageWhilePressKey(x: int, y: int, msg: str, tcolor: str, key: int, callback: str)[source]#
set script message while press key
ShowMessageWhileTime(x: int, y: int, msg: str, tcolor: str, time: float)[source]#
set script message while time is present
OpenWorkSpace()[source]#
open work space. file name load automatical from UI ui; ui.file(“file.workspace”);
SaveWorkSpace()[source]#
save work space. file name save automatical from UI ui; ui.file(“file.workspace”);
OpenDialog(extensions: str, result: str)[source]#
function returns true if file is successfully chosen
SaveDialog(extensions: str, result: str)[source]#
function returns true if file is successfully chosen
SetFileForFileDialogs(name: str)[source]#
Use empty name “” to stop automatic file dialogs skipping othervice all next file dialogs will be skipped and it may lead to loosing data.
RemoveFilePath(s: str)[source]#
file path management routines
RemoveExtension(s: str)[source]#
file path management routines
EnsureAbsolutePth(s: str)[source]#
file path management routines
GetFilePath(s: str)[source]#
file path management routines
GetFileExtension(s: str)[source]#
file path management routines
GetFileName(s: str)[source]#
file path management routines
CheckIfExists(s: str)[source]#
file path management routines
CheckFolderExist(a_0: str)[source]#
file path management routines
CreatePath(s: str)[source]#
file path management routines
SaveScreenShot(s: str, cutStrip: int = 0)[source]#
file path management routines
CombineImages(im1: str, im2: str, imres: str)[source]#
file path management routines
CompareImages(im1: str, im2: str, tolerance: int = 1)[source]#
then they are equal, otherwise not equal.
CompareImagesEx(im1: str, im2: str, tolerance: int, result: str)[source]#
The parameter result contains the list of points <Point_i(Xi,Yi) with different values.
ForEachFileInFolder(Folder: str, ExtList: str, Callback: str)[source]#
Ext list contains list of extensions like “.jpg;.png”
cmd(ID: str)[source]#
Performs any action from user interface. To get ID of command hover required item with mouse and press MMB. Command ID will be copied to clipboard. Pay attention that if command is not present in current UV layout it will not be performed.
GetBoolField(ID: str)[source]#
Get bool field from UI. ID has same meaning as in cmd
SetBoolField(ID: str, val: bool)[source]#
returns true if set value successfuly
GetSliderValue(ID: str)[source]#
Get value of slider in UI. ID has same meaning as in cmd
SetSliderValue(ID: str, val: float)[source]#
returns true if set value successfuly
SubstituteInputText(val: str)[source]#
returns true if field found
SubstituteInputText1(val: float)[source]#
returns true if field found
Step(n: int)[source]#
see Wait()
Wait(ms: int)[source]#
wait ‘ms’ milliseconds
back(steps: int = 1)[source]#
Goes to one of previous dialogs in call stack
run_script(path: str)[source]#
Run script by as-file pointed by Path
ppp(path: str)[source]#
Opens model for PPP, if path is empty, shows open dialog
mv(path: str)[source]#
Opens model for MV painting, if path is empty, shows open dialog
ptex(path: str)[source]#
Opens model for Ptex, if path is empty, shows open dialog
import3DforStemCell()[source]#
Import 3D model for stem cell certification
imagemesh()[source]#
Import image as mesh, dialog will be shown
refmesh(path: str)[source]#
Import mesh as reference, if path is empty dialog will be shown
vertexpaint1()[source]#
Import mesh as reference, if path is empty dialog will be shown
vertexpaint(path: str)[source]#
Import mesh for vertex painting, if path is empty dialog will be shown
autopo(path: str)[source]#
Perform autopo over the mesh chosen in dialog
autopo1()[source]#
Perform autopo over the mesh chosen in dialog
repair1()[source]#
Perform autopo over the mesh chosen in dialog
repair(id: str)[source]#
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.
bass()[source]#
Activate bas-relief tool
undercut()[source]#
Activale remove undercuts mode
autoscale()[source]#
Activate perform autoscaling current mesh in voxel room
activate(id: str)[source]#
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
retopo()[source]#
Activate retopo tool
retopopen()[source]#
Open mesh using dialog and merge as retopo mesh
ToRoom(name: str)[source]#
Activate any room - name is one of “Paint”, “Tweak”, “UV”, “Retopo”, “Render”
RoomExists(name: str)[source]#
check if specified room exists
AddNewVolume(name: str)[source]#
add new volume in voxel room. If name is empty name will be assigned automatically.
activate_uv()[source]#
Activate UV room
stem()[source]#
Activate StemTool
vox()[source]#
Activate voxel room and add new volume
ResetPrimTransform()[source]#
reset additional transformation for low-level primitives
PrimTranslate(dx: float, dy: float, dz: float)[source]#
translate all further low-level promiteives
PrimScaleAt(x: float, y: float, z: float, scalex: float, scaley: float, scalez: float)[source]#
scale all further low-level primitives using pivot point x,y,z
PrimRotateX(x: float, y: float, z: float, Angle: float)[source]#
Rotate further primitives at xyz point around X-axis
PrimRotateY(x: float, y: float, z: float, Angle: float)[source]#
Rotate further primitives at xyz point around Y-axis
PrimRotateZ(x: float, y: float, z: float, Angle: float)[source]#
Rotate further primitives at xyz point around Z-axis
PrimRotateAroundRode(x: float, y: float, z: float, xend: float, yend: float, zend: float, Angle: float)[source]#
Rotate further primitives around rode (x,y,z)->(xend,yend,zend) on given Angle
PrimStretchBetweenPoints(x: float, y: float, z: float, xend: float, yend: float, zend: float)[source]#
be actually applied as primitive stretched between points (x,y,z) and (xend,yend,zend)
PrimDensity(density: float)[source]#
set additional density factor for low-level primitives. 1 means default density.
GetPrimTransform()[source]#
store current transform for primitives as string to be kept for future usage
SetPrimTransform(M: str)[source]#
restore current primitives transform from string that was previously kept using GetPrimTransform
sphere1(r: float)[source]#
restore current primitives transform from string that was previously kept using GetPrimTransform
mk_sphere(x: float, y: float = 0, z: float = 0, r: float = 0, mode: int = -1)[source]#
mode==0 - add, 1 - subtract, 2 - intersect
mk_ellipse(x: float, y: float, z: float, rx: float, ry: float, rz: float, mode: int)[source]#
mode==0 - add, 1 - subtract, 2 - intersect
mk_cube(x: float, y: float, z: float, sizex: float, sizey: float, sizez: float, mode: int)[source]#
mode==0 - add, 1 - subtract, 2 - intersect
mk_cylinder(x: float, y: float, z: float, topradius: float, bottomradius: float, height: float, mode: int)[source]#
create cylinder
mk_cone(x: float, y: float, z: float, radius: float, height: float, mode: int)[source]#
create cone
mk_ngon(x: float, y: float, z: float, sides: int, topradius: float, bottomradius: float, height: float, mode: int)[source]#
create nngon
mk_tube(x: float, y: float, z: float, topradius: float, bottomradius: float, height: float, wallthickness: float, mode: int)[source]#
create tube
mk_ngontube(x: float, y: float, z: float, sides: int, topradius: float, bottomradius: float, height: float, wallthickness: float, mode: int)[source]#
create n-gonal tube
mk_capsule(x: float, y: float, z: float, xend: float, yend: float, zend: float, startradius: float, endradius: float, mode: int)[source]#
creates capsule between points
surf()[source]#
Turn all volumes to surface mode
cursurf()[source]#
Turn current volume to the surface mode
voxelize()[source]#
Turn current volume to voxel mode, voxelize if need
mergeopt(opt: str)[source]#
example: mergeopt(“[voxelize=true][as_skin=true][skin=4.5]”);
merge1()[source]#
example: mergeopt(“[voxelize=true][as_skin=true][skin=4.5]”);
merge(model: str)[source]#
Merge model in voxel room. Empty string means that dialog will be shown.
mk_prim(id: str)[source]#
Merge model in voxel room. Empty string means that dialog will be shown.
apply()[source]#
Apply in Voxel room (press enter)
ApplyAndKeepScale()[source]#
Apply in Merge tool withous asking “Keep scale?”. Scale will not be kept and scene scale will not be changed
mapply()[source]#
Apply in Voxel room (press enter) - with Medical=true
recent3b()[source]#
open recent 3B file
GetLastButtonIndex()[source]#
get index of button pressed in last dialog. Usually OK=1, Cancel=2
FileDialogCancelPressed()[source]#
returns true if Cancel pressed in last file dialod
WasRecentlyPressed(ID: str, Time: float)[source]#
Was widget with identifier ID recently (within last Time sec) pressed?
WasRecentlyRMBPressed(ID: str, Time: float)[source]#
Was widget with identifier ID recently (within last Time sec) pressed via RMB?
IsInTool(ToolID: str)[source]#
Is user in tool identified as ID? To get current tool identifier press RMB+MMB over empty field
IsDoubleClick(reset: bool = False)[source]#
Is used double click ?
IsPressKeyID(keyID: int)[source]#
Is press key ID?
Alt()[source]#
Is Alt pressed
GetCurrentToolID()[source]#
Get active tool ID
GetTimeSinceStart()[source]#
get time (sec) since script started
FindRecentlyPressed(IDS: str, Time: float)[source]#
Find the widget that was pressed recently. IDS - strings ids. Return index of widget.
GetBottomBackgroundColor()[source]#
App Options methods
GetTopBackgroundColor()[source]#
App Options methods
SetBottomBackgroundColor(color: int)[source]#
App Options methods
SetTopBackgroundColor(color: int)[source]#
App Options methods
GetScreenWidth()[source]#
Screen drawing functions
GetScreenHeight()[source]#
Screen drawing functions
GetWorkAreaTop()[source]#
Screen drawing functions
GetWorkAreaLeft()[source]#
Screen drawing functions
GetWorkAreaWidth()[source]#
Screen drawing functions
GetWorkAreaHeight()[source]#
Screen drawing functions
DrawScreenLine(x1: float, y1: float, x2: float, y2: float, Color1: int, Color2: int)[source]#
Draw line on screen - only to use after Step() instruction in cycle, othervice use will not see anything
DrawScreenFrame(x1: float, y1: float, x2: float, y2: float, Color: int)[source]#
Draw frame
DrawScreenRect(x1: float, y1: float, x2: float, y2: float, Color: int)[source]#
Draw filled rectangle
DrawScreenCircle(x: float, y: float, Radius: float, FillColor: int, LineColor: int)[source]#
draw circle
DrawTextOnScreen(x: float, y: float, Color: int, align: int, text: str)[source]#
draw text on screen, align=0 - left aligned, 1 - central align, 2 - right align
HighlightUIElementsPY(IDS: str, time: float, explain: str, uType: int, Callback: any, callPressed: bool)[source]#
highlighting the ui elements in python
HighlightUIElements(IDS: str, time: float, explain: str, utype: int, Callback: str, callPressed: bool = True)[source]#
highlighting the ui elements
HighlightUIBoolTreeElement(type: int, i: int, time: float)[source]#
highlighting the bool element in tree branch (type & index = i)
HighlightUIBoolTreeElements(type: int, time: float, explain: str, uType: int, Callback: str, callPressed: bool = True)[source]#
highlighting the ui bool elements in the tree branch
WaitWhileNoExecuteCommand(CmdID: str, explain: str)[source]#
wait while command does’not executed
WasDragNDropVoxTree(explain: str, dragMode: int)[source]#
Was drag&drop vox tree (dragmode = 1 add, 2 sub,3 - duplicate)
WasDroppedUIElement()[source]#
Was dropped Ui element?
HighlightUIElement(IDS: str, time: float)[source]#
highlight element with red rectangle
DeHighlightUIElement(ds: str)[source]#
highlight element with red rectangle
GetTimeTickCount()[source]#
highlight element with red rectangle
PenDrawVertex(icode: int, Callback: any)[source]#
highlight element with red rectangle
IsSurface()[source]#
returns true if current volume is in surface mode
CurVolumeIsEmpty()[source]#
checks if volume is empty
GetCurVolumePolycount()[source]#
Get current volume polycount
GetCurVolumeTransform()[source]#
Get current volume polycount
SetCurVolumeTransform(str: cMat4)[source]#
Get current volume polycount
SetVolumesScaling(S: str)[source]#
get/set current volume transform
GetCurVolumeSquare()[source]#
get square
GetCurVolumeVolume()[source]#
get volume
GetVoxSceneVisiblePolycount()[source]#
Get polycount of whole voxel scene
GetVoxScenePolycount()[source]#
Get polycount of visible volumes
IsInCache()[source]#
Check if volume cached
ToCache()[source]#
move current volume to cache
FromCache()[source]#
restore current volume from cache
GetCurVolume()[source]#
get current volume name
GetCurVolumeShader()[source]#
get current volume shader name
SetCurVolumeShader(Name: str)[source]#
set current volume shader name
RenameCurVolume(Name: str)[source]#
rename current volume
GetVolumesCount()[source]#
volumes count
GetVolumeLevel(name: str)[source]#
Get volume level by volume name
PlainMergeVisible(name: str)[source]#
Merge visible (no booleans)
SetCurVolumeMode(Surf: bool, Silent: bool, suggestedpoly: int = 0)[source]#
If silent=true then no dialogs will be shown, all will be done by default
SetCurVolume(name: str)[source]#
set current volume by name, returns true if succeed
IsCurVolume(name: str)[source]#
check current volume by name, returns true if existed
IsChangeName(name: str, i: int)[source]#
check current change volume by index from name, returns true if changed
IsVisibleVolume(i: int)[source]#
check the visible volume by index i
IsVoxSurfVolume(i: int)[source]#
check the vox surface volume by index i
FindCurVolumeIndex()[source]#
find current index volume in vox tree branch
SelectFirstVolume(OnlyVisible: bool)[source]#
select first volume in scene, if OnlyVisible==true then first visible volume will be selected
SelectNextVolume(OnlyVisible: bool)[source]#
select next volume after current in tree, if OnlyVisible==true then next visible volume will be selected. Returns false if current volume is last in list
SetVolumeVisibility(vis: bool)[source]#
sets volume visibility
GetVolumeVisibility()[source]#
returns current volume visibility
SetVolumeGhosting(Ghosting: bool)[source]#
sets Ghost property to volume
GetVolumeGhosting()[source]#
get Ghost property from the volume
SetVolumeOpacity(Opacity: float)[source]#
set opacity to current volume if the shader has corresponding property
SetVolumeColor(Color: int)[source]#
set current volume color if this property of shader is available
SetShaderProperty(ID: str, val: str)[source]#
assign val to current object shader field
AddPaintLayer(ID: str)[source]#
add new paint layer
DeletePaintLayers()[source]#
delete all paint layers
DeletePaintLayer(ID: int)[source]#
delete paint layer ID
GetCurrentPaintLayerName()[source]#
get current paint layer name
PaintLayerNames()[source]#
get the list of the layer names
GetLayerName(id: int)[source]#
get layer name by id
GetPaintLayersCount()[source]#
get count of paint layers
RenameCurrentPaintLayer(Name: str)[source]#
get count of paint layers
SelectPaintLayer(ID: str)[source]#
select paint layer with name ID. Returns false if layer not found.
SelectFirstPaintLayer(visible: bool)[source]#
select lowest paint layer. If visible=true, first visible paint layer will be selected
SelectNextPaintLayer(visible: bool)[source]#
select next paint layer. Returns false if current layer is last and no new layer was selected.
GetPaintLayerVisibility()[source]#
get visibility of the current paint layer
SetPaintLayerVisibility(visible: bool)[source]#
set visibility of current paint layer
SetPaintLayerOpacity(Percents: float)[source]#
set opacity of the current paint layer
SetPaintLayerDepthOpacity(Percents: float)[source]#
set opacity of the current paint layer
SetPaintLayerBlendingMode(ID: str)[source]#
set blending mode of the current paint layer - ID-s are same as in English version
SetPaintLayerDepthBlendingMode(ID: str)[source]#
set depth blending mode of the current paint layer - ID-s are same as in English version
AddRetopoLayer(ID: str)[source]#
add new retopo layer
DeleteRetopoLayer()[source]#
delete the current retopo layer
GetCurrentRetopoLayerName()[source]#
get current retopo layer name
RenameCurrentRetopoLayer(Name: str)[source]#
rename the current retopo layer
SelectRetopoLayer(ID: str)[source]#
select retopo layer with name ID. Returns false if layer not found.
SelectFirstRetopoLayer(visible: bool)[source]#
select lowest retopo layer. If visible=true, first visible retopo layer will be selected
SelectNextRetopoLayer(visible: bool)[source]#
select next retopo layer. Returns false if current layer is last and no new layer was selected.
GetRetopoLayerVisibility()[source]#
get visibility of the current retopo layer
SetRetopoLayerVisibility(visible: bool)[source]#
set visibility of current retopo layer
Execute(command: str, parameters: str)[source]#
execute exe file or perform some action like open browser window etc
ReadFromFile(filename: str)[source]#
file operations
WriteToFile(filename: str, text: str, append: bool)[source]#
file operations
CheckIfFileExists1(filename: str)[source]#
file operations
RemoveFile(filename: str)[source]#
file operations
LogMessage(line: str)[source]#
pring text to MyDocuments/3D-CoatV4/log.txt
ProgressBar(message: str, pos: int)[source]#
show progress bar pos = 0..100
SetOrthoMode(value: bool)[source]#
Set orthogonal (true) or perspective (false) view mode
InstallToMenu(path: str, ItemName: str)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddFloatSlider(VariableName: str, Min: float, Max: float)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddIntSlider(VariableName: str, Min: int, Max: int)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddFloatInput(VariableName: str, EmptyName: bool)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddIntInput(VariableName: str, EmptyName: bool)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddStringInput(VariableName: str, EmptyName: bool)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddTextField(TextID: str, Align: int)[source]#
creates new menu item and will run this script. Path is just path to menu like File.Export or Voxels or Retopo
AddDelimiter()[source]#
1-center,0-left
AddButton(FuncName: str)[source]#
1-center,0-left
Columns(nc: int)[source]#
1-center,0-left
AddCheckBox(BoolVarRef: str)[source]#
1-center,0-left
AddRadioButton(BoolVarRef: str, Group: int)[source]#
1-center,0-left
AddDroplist(IntVarRef: str, CaseList: str)[source]#
1-center,0-left
ClearControls()[source]#
CaseList is list of possible values for droplist, delimiters are ,;|
AddTranslation(ID: str, Text: str)[source]#
CaseList is list of possible values for droplist, delimiters are ,;|
UICondition(function: str)[source]#
CaseList is list of possible values for droplist, delimiters are ,;|
StopUICondition()[source]#
CaseList is list of possible values for droplist, delimiters are ,;|
GetMouseX()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.GetMouseX

GetMouseY()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.GetMouseY

GetPressure()[source]#
Screen - based direct control over mouse
LMBPressed()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.LMBPressed

RMBPressed()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.RMBPressed

MMBPressed()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.MMBPressed

WheelPressed()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.WheelPressed

GetVisiblePenRadius()[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.GetVisiblePenRadius

StartStroke(x: float, y: float, Pressure: float)[source]#
Screen - based direct control over mouse
DrawStrokeTo(x: float, y: float, Pressure: float)[source]#
Screen - based direct control over mouse
EndStroke()[source]#
Screen - based direct control over mouse
ScreenRayPicksObject(x: float, y: float)[source]#
Screen - based direct control over mouse

Expand for references to cPy.Legacy.ScreenRayPicksObject

ScriptMessagePressButton(x: float, y: float)[source]#
Screen - based direct control over mouse
MoveCursorTo(x: int, y: int)[source]#
Screen - based direct control over mouse
ClickAtCurrentPosition()[source]#
Screen - based direct control over mouse
GetMaterialsCount()[source]#
objects/materials management
GetMaterialName(Index: int)[source]#
objects/materials management
RenameMaterial(Index: int, Name: str)[source]#
objects/materials management
DeleteMaterial(Index: int)[source]#
objects/materials management
LockMaterial(Index: int, Locked: bool)[source]#
objects/materials management
SetMaterialVisibility(Index: int, Visibility: bool)[source]#
objects/materials management
AddMaterial(Name: str)[source]#
objects/materials management
GetMaterialIndex(Name: str)[source]#
objects/materials management
GetObjectsCount()[source]#
objects/materials management
GetObjectName(Index: int)[source]#
objects/materials management
RenameObject(Index: int, Name: str)[source]#
objects/materials management
DeleteObject1(Index: int)[source]#
objects/materials management
LockObject(Index: int, Locked: bool)[source]#
objects/materials management
SetObjectVisibility(Index: int, Visibility: bool)[source]#
objects/materials management
AddObject(Name: str)[source]#
objects/materials management
GetObjectIndex(Name: str)[source]#
objects/materials management
InRetopo()[source]#
objects/materials management
GetUVSetsCount()[source]#
objects/materials management
GetFacesCount()[source]#
objects/materials management
GetUVSetName(Index: int)[source]#
objects/materials management
RenameUVSet(Index: int, Name: str)[source]#
objects/materials management
SelectAllFacesInCurrentUVSet()[source]#
int GetUVSetIndex(const cstring& Name);
SelectAllFacesInCurrentUVSetAndGroup()[source]#
int GetUVSetIndex(const cstring& Name);
SelectAllVisibleFaces()[source]#
int GetUVSetIndex(const cstring& Name);
UvSetForExportImport(Name: str)[source]#
Call it each time you need to perform the command from Textures->Import
ImportTexture(CommandInMenu: str, UvSetName: str, PathToTexture: str)[source]#
The command allows to use all commands from Texture->Import without triggering the dialog
Parameters:
  • menu (CommandInMenu - command from Textures->Import)

  • $LOADTEX (for example)

  • $LOADROUGHNESS

  • etc

  • Textures->Import (anything from)

  • texture (PathToTexture - full path to the)

  • texture

ExportObjectsAndTextures(Name: str)[source]#
DecimateToRetopo()[source]#
GetExportMeshName()[source]#
GetExportPathTextures()[source]#
SkipUndo(flag: bool)[source]#
The command allows to skip undo
Parameters:

skip (flag to)

getCommandLine()[source]#
The command allows to skip undo
Parameters:

skip (flag to)

SetGlobalVar(Name: str, Value: str)[source]#
The command allows to skip undo
Parameters:

skip (flag to)

GetGlobalVar(Name: str)[source]#
The command allows to skip undo
Parameters:

skip (flag to)

GetSceneFileName()[source]#
The command allows to skip undo
Parameters:

skip (flag to)

SetSceneFileName(Name: str)[source]#
The command allows to skip undo
Parameters:

skip (flag to)

GetGameIndex()[source]#
games management
SetGameIndex(idx: int)[source]#
0-regular coat, 1-cs:go, 2- rust
SetShowModalDlg()[source]#
show modal dialog; // true show, false hide
IsApprenticeBeginner()[source]#
is Apprentice begginer
IsRecordScript()[source]#
is Script recorder
UseRecordScript()[source]#
Use Script recorder
installPath()[source]#
eturn A path where 3D-Coat was installed.
rwPath(userPath: str)[source]#
eturn An absolute path with write folder of 3D-Coat plus ‘userPath’.
homePath()[source]#
eturn A path to home directory “~” (for example “/home/YourUserName”)
EnablePenChannel(i: int, enabled: bool = True)[source]#
enable/disable pen channels
IsEnabledPenChannel(i: int)[source]#
0 - is disabled, 1 - enabled
add_modal_callback()[source]#
add_modal_callback
remove_modal_callback()[source]#
remove_modal_callback
doc_mode()[source]#
doc_mode