ZBrushCentral

how to hide / show selected subtool (for macro oriented design) ?

Hello,

i’m actually doing a lot of Decimate / Zremesh and Project all command, so i was searching to do this on my subtool, but as i’ve many of them in my ZTL file, i wanted to:
Duplicate last selected subtool,
Hide all other subtool,
select (up arrow key) and show the subtool at the top of the last selected,
go back to this one to launch the process (Decimate current / Zremesh / project all- subdivide “n” times then “All Low Res”.

Actually i’ve tried to define an hotkey to the visibility (little eye icon in the subtool list) by using Ctrl + Alt + Click on that icon, but it just return me this:

[TOOL:SUBTOOL:PM3D_CYLINDER3D1,186] // º

So this is just an hotkey for selecting that specific subtool , and NOT turn on or Off the visibility of the current selected subtool.

What can i do ?
I want to do that to improve the Project all by hiding all the subtool i didn’t need for that process, and with around 64 subtools (with 3 million Poly eatch) to process it’s really important.

here is my macro just as a guideline:

//ZBRUSH MACRO - Recorded in ZBrush version 4.7
[IButton,???,“Press to run this macro. Macros can be aborted by pressing the ëescí key.”,
[IShowActions,0]
[IConfig,4.7]
[IPress,Tool:SubTool:Duplicate]
[IPress,Tool:SubTool:MoveDown]
[ISet,Tool:Geometry:Target Polygons Count,5]
[IFreeze,
]
[IFreeze,
]
[IPress,Tool:Export]
[IFreeze,
]
[IFreeze,
[IFreeze,
]
[IFreeze,
]
[IFreeze,
]
]
[IFreeze,
]
[IFreeze,
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/ZPluginData/DecimationMasterData//Rock_Round_65.GoZ”][IPress,Tool:Import]
[IFreeze,
[TransformSet,591.18273,793.06909,0,20.62352,20.62352,20.62352,15.5,78.08403,113.80901]
[TransformSet,591.18273,793.06909,0,20.62352,20.62352,20.62352,7.24272,78.08403,113.80901]
]
]
[IPress,Transform:Fit]
[IPress,Transform:Solo]
[IPress,Transform:Fit]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,30]
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/Temp/objIn.goz”][IPress,Tool:Geometry:ZRemesher]
[IUnPress,Transform:Solo]
[IModSet,Tool:SubTool:Rock_Round_65,1]
[IPress,Tool:SubTool:SelectUp]
[IModSet,Tool:SubTool:Rock_Round_64,17]
[IModSet,Tool:SubTool:Rock_Round_64,1]
[IUnPress,Transform: Pf]
[IPress,Transform: Pf]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectDown]
[IModSet,Tool:SubTool:Rock_Round_65,17]
[IModSet,Tool:SubTool:Rock_Round_64,1]
[IModSet,Tool:SubTool:Rock_Round_64,17]
[IModSet,Tool:SubTool:Rock_Round_64,1]
[IModSet,Tool:SubTool:Rock_Round_64,17]
[IModSet,Tool:SubTool:Rock_Round_64,1]
[IModSet,Tool:SubTool:Rock_Round_65,1]
[IModSet,Tool:SubTool:Rock_Round_64,17]
[IModSet,Tool:SubTool:Rock_Round_64,1]
[IModSet,Tool:SubTool:Rock_Round_65,17]
[IPress,Tool:Morph Target:StoreMT]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.02]
[ISet,Tool:SubTool:Dist,0.04]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.04]
[ISet,Tool:SubTool:Dist,0.03]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.03]
[ISet,Tool:SubTool:Dist,0.02]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Transform:Solo]
[IUnPress,Transform: Pf]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Delete]
]

Hi,

To hide or show selected subtool you should use IModSet command in my case 1 is to Hide 17 is for show
To check in which state is current tool u can use IModGet command

To check IMood state


[VarSet,activeSubT,[IGetTitle, Tool:Current Tool]] //set variable name for current subtool name
[VarSet,CheckState,[IModget,[StrMerge,"Tool:SubTool:",#activeSubT]]] //check current IMod state
[MessageOk, #CheckState] //display msgbox  with current state

Show subtool


[VarSet,activeSubT,[IGetTitle, Tool:Current Tool]] //set variable name for current subtool name
[IModSet,[StrMerge,"Tool:SubTool:",#activeSubT],17] //show current tool

Hide subtool


[VarSet,activeSubT,[IGetTitle, Tool:Current Tool]] //set variable name for current subtool name
[IModSet,[StrMerge,"Tool:SubTool:",#activeSubT],1] //hide current tool

HTH,

Just to refresh my knowledge of Zscript I wrote macro that will hide or show selected Subtool depends on current state.
You can make a Hotkey for easier usage - it will show if is hidden or hide if is visible current subtool

_
Piosio

Ok Thanks a lot Piosio, now I’ve found a way to create the Macro.

Just one more thing ^^

As i’ve used “Decimation Master” in that macro, i use “Pre-Process current” and this command open me a popup related to a decimated OBJ proxy file. Do you think i could find a way to Remove the Pre-Process current pass and Recreate a new Macro without that buggy popup ?

//ZBRUSH MACRO - Recorded in ZBrush version 4.7
[IButton,???,“Press to run this macro. Macros can be aborted by pressing the ëescí key.”,
[IShowActions,0]
[IConfig,4.7]
[IPress,Tool:SubTool:Delete]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Duplicate]
[IPress,Tool:SubTool:SelectDown]
[IFreeze,
]
[IFreeze,
]
[IPress,Tool:Export]
[IFreeze,
]
[IFreeze,
[IFreeze,
]
[IFreeze,
]
[IFreeze,
]
]
[IFreeze,
]
[IFreeze,
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/ZPluginData/DecimationMasterData//Rock_Round_01.GoZ”][IPress,Tool:Import]
[IFreeze,
[TransformSet,774,388,0,66.50314,66.50314,66.50314,15.5,-40.24117,0.62072]
[TransformSet,774,388,0,66.50314,66.50314,66.50314,-22.86596,-40.24117,0.62072]
]
]
[IFreeze,
]
[IFreeze,
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,2]
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/Temp/objIn.goz”][IPress,Tool:Geometry:ZRemesher]
[IPress,Transform:Fit]
[IPress,Transform: Pf]
[IPress,Tool:Morph Target:StoreMT]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.02]
[ISet,Tool:SubTool:Dist,0.05]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.05]
[ISet,Tool:SubTool:Dist,0.04]
[ISet,Tool:SubTool:Dist,0.03]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.00632]
[ISet,Tool:SubTool:Dist,0.02]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Transform:Solo]
[IUnPress,Transform: Pf]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Delete]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform:Fit]
[IPress,Tool:SubTool:Duplicate]
[IPress,Tool:SubTool:SelectDown]
[IFreeze,
]
[IFreeze,
]
[IPress,Tool:Export]
[IFreeze,
]
[IFreeze,
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/ZPluginData/DecimationMasterData//Rock_Round_02.GoZ”][IPress,Tool:Import]
[IFreeze,
[TransformSet,-449.92291,24.40033,0,238.59668,238.59668,238.59668,15.5,-40.24117,0.62072]
[TransformSet,-449.92291,24.40033,0,238.59668,238.59668,238.59668,-22.86596,-40.24117,0.62072]
]
]
[IPress,Transform: Pf]
[IFreeze,
]
[IFreeze,
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,4]
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/Temp/objIn.goz”][IPress,Tool:Geometry:ZRemesher]
[IPress,Tool:Morph Target:StoreMT]
[IPress,Tool:Geometry:Divide]
[IUnPress,Transform:Solo]
[ISet,Tool:SubTool:Dist,0.02]
[ISet,Tool:SubTool:Dist,0.05]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.05]
[ISet,Tool:SubTool:Dist,0.04]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.04]
[ISet,Tool:SubTool:Dist,0.03]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.03]
[ISet,Tool:SubTool:Dist,0.02]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Delete]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform:Fit]
[IPress,Tool:SubTool:Duplicate]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectDown]
[IFreeze,
]
[IFreeze,
]
[IPress,Tool:Export]
[IFreeze,
]
[IFreeze,
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/ZPluginData/DecimationMasterData//Rock_Round_03.GoZ”][IPress,Tool:Import]
[IFreeze,
[TransformSet,-913.80749,-138.50619,0,163.75311,163.75311,163.75311,15.5,-40.24117,0.62072]
[TransformSet,-913.80749,-138.50619,0,163.75311,163.75311,163.75311,-22.86596,-40.24117,0.62072]
]
]
[IFreeze,
]
[IFreeze,
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,7]
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/Temp/objIn.goz”][IPress,Tool:Geometry:ZRemesher]
[IPress,Tool:Morph Target:StoreMT]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.02]
[ISet,Tool:SubTool:Dist,0.05]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.05]
[ISet,Tool:SubTool:Dist,0.04]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.04]
[ISet,Tool:SubTool:Dist,0.03]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.03]
[ISet,Tool:SubTool:Dist,0.02]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Transform:Solo]
[IUnPress,Transform: Pf]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Delete]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform:Fit]
[IPress,Tool:SubTool:Duplicate]
[IPress,Tool:SubTool:SelectDown]
[IFreeze,
]
[IFreeze,
]
[IPress,Tool:Export]
[IFreeze,
]
[IFreeze,
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/ZPluginData/DecimationMasterData//Rock_Round_04.GoZ”][IPress,Tool:Import]
[IFreeze,
[TransformSet,-1026.16259,-179.47641,0,118.12649,118.12649,118.12649,15.5,-40.24117,0.62072]
[TransformSet,-1026.16259,-179.47641,0,118.12649,118.12649,118.12649,-22.86596,-40.24117,0.62072]
]
]
[IFreeze,
]
[IFreeze,
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
[IUnPress,Transform: Edit]
[IFreeze,
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Tool:SubTool:SelectDown]
[IPress,Transform: Edit]
]
[ISet,Tool:Geometry:Target Polygons Count,5]
[ISet,Tool:Geometry:Target Polygons Count,12]
[FileNameSetNext,“C:\Users\Public\Documents/ZBrushData/Temp/objIn.goz”][IPress,Tool:Geometry:ZRemesher]
[IPress,Transform: Pf]
[IUnPress,Transform: Pf]
[IUnPress,Transform:Solo]
[IPress,Tool:Morph Target:StoreMT]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.02]
[ISet,Tool:SubTool:Dist,0.05]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.05]
[ISet,Tool:SubTool:Dist,0.04]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.04]
[ISet,Tool:SubTool:Dist,0.03]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:Geometry:Divide]
[ISet,Tool:SubTool:Dist,0.03]
[ISet,Tool:SubTool:Dist,0.02]
[IPress,Tool:SubTool:ProjectAll]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:Delete]
[IPress,Tool:SubTool:All Low]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Tool:SubTool:SelectUp]
[IPress,Transform:Fit]
]

I will define an hotkey for DC “PreProcessCurrent” and “Decimate Current”, so now it should works without popup , isn’t it ?

i think that the macro will now just take care about the hotkey and probably not naming.

ok i’ve tested using just Hotkey to launch the PreProcessCurrent and Decimate, but i still got the Popup window. Anyway, i have just few click to do instead of around 100.

Thanks a lot for your help.

It’s showing you this popup because you are trying to reproduce actions made by (DecimationMaster Script)

To preprocess current you should use:

[IPress,Zplugin:Decimation Master:Pre-process Current]

To decimate:

[IPress,Zplugin:Decimation Master:Decimate Current]

Please keep in mind that after preproces or decimate your macro will stop working. (limitations of zscript - you cant start more than one script at time and Decimation Master is not a part of a zbrush code it’s script wrote for zbrush)

OK thanks for those info Piosio :smiley:

Script to show-hide

[IButton,???,“Press to run this macro. Macros can be aborted by pressing the ëescí key.”,
[IShowActions,0]
[IConfig,2025]
[VarSet,activeSubT,[IGetTitle, Tool:Current Tool]] //set variable name for current subtool name
[VarSet,CheckState,[IModget,[StrMerge,“Tool:SubTool:”,#activeSubT]]] //check current IMod state

//Check your numbers for “CheckState” With the command from posio then // to stop showing it
[MessageOk, #CheckState] //display msgbox with current state

[If,CheckState=50,
[IModSet,[StrMerge,“Tool:SubTool:”,#activeSubT],2] //hide current tool
	,
//else
[IModSet,[StrMerge,“Tool:SubTool:”,#activeSubT],50] //show current tool
	]
]