1. #1
    New Member User Gallery
    Join Date
    Nov 2011
    Posts
    5

    Default questions: varset subtool visibility value

    So I'm playing around with zscript a bit more(still new in coding in general). Right now I want to set the visibility value of a subtool to a variable. Based on what i got from a macro, it seems like the visibility of a subtool is toggled through the values 9 and 25? So here is my first failed attempt at setting the visibility value of a subtool to the "SubtoolValue" variable:

    [VarDef,SubtoolValue, 0]
    [VarDef,SubtoolNames, "PM3D_Sphere3D_12"]
    [VarSet, SubtoolValue, [IModGet,Tool:SubTool:SubtoolNames]]
    [note, SubtoolValue,,3]

    this obviously doesn't work. Zbrush is telling me that the "interface value" for "SubtoolsNames" in line 3 was not found. Any ideas how to fix this? thx
    Last edited by zbag; 11-29-11 at 12:40 PM.

  2. #2
    Moderator User Gallery
    Join Date
    Jun 2004
    Location
    UK
    Posts
    7,667

    Default

    What you are trying to do is really quite complex. For a start, you can't add a variable straight into an interface path like that, you need to split it up so that ZBrush can parse the variable separately. So that this can happen you use the [StrMerge] command something like this:

    [VarDef,SubtoolNames, "PM3D_Sphere3D_12"]
    [IPress,[StrMerge,"Tool:Sub Tool:", SubtoolNames]]

    Also the [IModSet] command will not work for subtools so you need to find a different way. ([IModGet] is all right to find the value - if it's >=16 then the subtool is visible. You need to find the Flags if you want the selected subtool, using [IGetFlags] and >=9 gives the selected subtool.)

    There's some information that will help you in this thread:

    http://www.zbrushcentral.com/showthr...ol-under-mouse

    and towards the bottom of this thread:

    http://www.zbrushcentral.com/showthr...o-strings-vars

    HTH,

  3. #3
    New Member User Gallery
    Join Date
    Nov 2011
    Posts
    5

    Default

    Hey Marcus. Sorry if I'm not getting some of the stuff you posted. But now I'm getting another error related to my first post. Here's the code:


    [VarDef,SubtoolValue(2), 0]
    [VarDef,SubtoolName(2), ""]



    [varset, SubtoolName(1), [IgetTitle, Tool:Current Tool]]
    [VarSet, SubtoolValue(1), [IModGet,[StrMerge,"Tool:SubTool:", SubtoolName(1)]]]


    [note, SubtoolValue(1),,3]
    [vardef, test, 0]
    [varset, test, SubtoolValue(1)]
    [note, test,,3]

    so in this case, i'm creating two list variables and setting them appropriately. In zbrush, the value of subtoolvalue(1) shows up, but the value of "test" gives me an error: "ambiguous input. input can be preceded by...". Can you tell me why that is, and how I can set SubtoolValue(1) value to "test" variable?
    Last edited by zbag; 11-30-11 at 03:09 PM.

  4. #4
    Moderator User Gallery
    Join Date
    Jun 2004
    Location
    UK
    Posts
    7,667

    Default

    There's nothing obviously wrong with the code you've posted. If you attach the whole of your code I'll take a look.

    Sometimes ZBrush can be funny with zscript and it can be useful to specify that you are getting the value of another variable like this:

    [Varset, test, [Var,SubtoolValue(1)]]
    [Note, test,,3]

    And sometimes you need to use the [Val] command the get the numerical value of a variable. For example, if using the loop counter variable 'n' in the code snippet below:

    [Loop,10,
    [VarSet,subToolPath,[StrMerge,"Tool:Sub Tool ",[Val,n]]]
    ,n]

    Also note that list variables start from 0 not 1, so if you declare a list variable like this:

    [VarDef,myList(2),0]

    it will have two variables like this:

    myList(0)
    myList(1)


    HTH,

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •