Heya

Thanks for answer and help ! I thought I failed to post this topic as it 
did not appear for a while... 

Anyway I postponed for now text fields because I'm too weak in maya UI and 
started from something simpler... well not so simpler as I hit a wall 
already...

In any case here is the core of script that works just fine:

import maya.cmds as cmds

Cbox = cmds.getAttr('miDefaultFramebuffer.premultiply')
def enablePRE(*args):
cmds.editRenderLayerAdjustment('miDefaultFramebuffer.premultiply')
cmds.setAttr ('miDefaultFramebuffer.premultiply',1)
def disPRE(*args):
cmds.editRenderLayerAdjustment('miDefaultFramebuffer.premultiply')
cmds.setAttr ('miDefaultFramebuffer.premultiply',0)
cmds.window()


cmds.showWindow()
mainLayout = cmds.columnLayout(w=300, h=100)

w= 75
h= 20

cmds.text('Basic Render Settings',fn='boldLabelFont')
cmds.separator(h=5)

cmds.gridLayout( numberOfColumns=4, cellWidthHeight=(w, h))

cmds.checkBox(label='Premultiply', onc=enablePRE,ofc=disPRE,value = Cbox)
cmds.checkBox(label='Disp', onc=enableDIS,ofc=disDIS,value = Dbox)
cmds.checkBox(label='Exp Texture', onc=enableTEX,ofc=disTEX,value = Tbox)
cmds.checkBox(label='Post Effect', onc=enablePOS,ofc=disPOS,value = Pbox)

cmds.setParent('..')
cmds.separator(h=5)


Now this is just a part of bigger standalone UI that works just fine when 
Mental Ray is open. 

The problem starts if Mental Ray is  not in use and script try to Cbox = 
cmds.getAttr('miDefaultFramebuffer.premultiply') 
Then he give me an error he cant find module or something like that.. no 
wonders its not loaded.

I fixed it by using 'if' module and then asking if MR is loaded.

if cmds.setAttr('defaultRenderGlobals.ren', 'mentalRay', type='string'):
Cbox = cmds.getAttr('miDefaultFramebuffer.premultiply')
def enablePRE(*args):
cmds.editRenderLayerAdjustment('miDefaultFramebuffer.premultiply')
cmds.setAttr ('miDefaultFramebuffer.premultiply',1)
def disPRE(*args):
cmds.editRenderLayerAdjustment('miDefaultFramebuffer.premultiply')
cmds.setAttr ('miDefaultFramebuffer.premultiply',0)

(now that I look at it I'm not sure if that worked either...)

Now this works but it stops again when it try to create checkbox (xxxx, 
value=Cbox) - at this point he crash because there is no Cbox defined 
because command never run because MR was not loaded. 

How can I 'if' that command again so that it will create checkbox but not 
run strings inside it... ? :s

Thanks, bye.








Ast o text field I'm trying to get value from Min/Max/Refl/Refl samples in 
MR and then type them in text field as default and then be able to just 
change it there and click enter + creating override if its on render layer 
sooo ignore that question for now I gotta do more python study to grasp the 
idea how to do it 1st, posting here and annoying you pros wont get me 
learning anything... 


Thanks !  


On Wednesday, 1 August 2012 00:01:14 UTC+1, Justin Israel wrote:
>
> cmds.textField( name, edit=True, enterCommand=('x'))
>
>
> enterCommand requires a callable function, similar to how you are doing it 
> already with your button. Right now you are effectively just setting the 
> enterCommand to the string value 'x' which it will then try to run a 
> callable called x(). I see you have some global values set. Where do you 
> ultimately want to derive your x value from? A gui widget?
>
>  
>
> On Mon, Jul 23, 2012 at 2:20 AM, Daz wrote:
>
>> Hello
>>
>> I have a bit of a problem with python atm. Not sure if I'm missing 1 
>> value or everything is wrong but I cant get it to work...
>>
>> I want to create a simple memu to be able control render settings and 
>> other values using my UI... here is what I got so far...
>>
>>
>>
>> import maya.cmds as cmds
>>
>> x=4
>> y=0
>> d=0
>> f=0
>>
>>
>> if cmds.window('DazTools', exists=True):
>> cmds.deleteUI('DazTools', window=True)
>>
>> cmds.window ('DazTools', h=50, w=100)
>> cmds.showWindow('DazTools')
>>
>> cmds.rowColumnLayout( numberOfColumns=2, columnAttach=(1, 'right', 0), 
>> columnWidth=[(1, 100), (2, 250)] )
>>
>> def st(*args):
>> cmds.setAttr('miDefaultOptions.maxSamples', x)
>>
>>
>> cmds.text( label='name' )
>> name = cmds.textField()
>> cmds.textField( name, edit=True, enterCommand=('x'))
>>
>> cmds.button('Standard', c=st)
>>
>>
>>
>> I'm not sure how it should be but I thought that I have to create overall 
>> 'x' value for python to be able to call back to the 'x' and know what to 
>> type in my settings. I initially will preset it to how I want using master 
>> 'x' at the top but let user change it as he go deep in to the settings... 
>>
>> Any hints what I'm doing wrong here? 
>> -- 
>> view archives: http://groups.google.com/group/python_inside_maya
>> change your subscription settings: 
>> http://groups.google.com/group/python_inside_maya/subscribe
>>
>
>

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to