Professional Documents
Culture Documents
my_tool.py
Tool to populate the scene with required objects and density.
__author__ = "Utsav Jamwal"
__copyright__ = "Copyright 2015, Utsav Jamwal"
__version__ = "1.0.0"
__maintainer__ = "Utsav Jamwal"
__email__ = "utsavjindbl824@gmail.com"
__status__ = "Ready"
logs:
1.0.1: Added different shapes to the tool - 28 Oct, 2015
Instructions:
1. Open tool
2. Select shape
3. Select radius, height, width etc for chosen shape(s)
4. Click Run
"""
import pymel.core as pm
import random
DEFAULT_RADIUS_OV = "ui_default_radius_ov"
DEFAULT_TORUS_RADIUS_OV = "ui_torus_default_radius_ov"
DEFAULT_CUBE_WIDTH_OV = "ui_cube_width_ov"
DEFAULT_CUBE_HEIGHT_OV = "ui_cube_height_ov"
DEFAULT_CUBE_DEPTH_OV = "ui_cube_depth_ov"
DEFAULT_CYLINDER_RADIUS_OV = "ui_cylinder_radius_ov"
DEFAULT_CYLINDER_HEIGHT_OV = "ui_cylinder_height_ov"
DEFAULT_CONE_RADIUS_OV = "ui_cone_radius_ov"
DEFAULT_CONE_HEIGHT_OV = "ui_cone_height_ov"
def ui():
'''
This function is the main UI for the tool
'''
window_title = 'My_window'
window_name = 'my_Window'
width = 100
height = 100
default_radius = 1.0
default_torus_radius = 1.0
default_cube_width = 1.0
default_cube_height = 1.0
default_cube_depth = 1.0
default_cylinder_radius = 2.0
default_cylinder_height = 3.0
default_cone_radius = 2.0
default_cone_height = 3.0
#option variable dictionary to set preferance
radius_min = 0
radius_max = 10
radius = default_radius
torus_radius = default_torus_radius
cube_width = default_cube_width
cube_height = default_cube_height
cube_depth = default_cube_depth
cylinder_radius = default_cylinder_radius
cylinder_height = default_cylinder_height
cone_radius = default_cone_radius
cone_height = default_cone_height
if pm.window('my_Window', exists=True):
pm.deleteUI('my_Window')
window = pm.window(window_name,
title=window_title,
widthHeight=(width, height),
sizeable=True
)
if DEFAULT_RADIUS_OV in pm.optionVar:
radius = pm.optionVar[DEFAULT_RADIUS_OV]
if DEFAULT_TORUS_RADIUS_OV in pm.optionVar:
torus_radius = pm.optionVar[DEFAULT_TORUS_RADIUS_OV]
if DEFAULT_CUBE_WIDTH_OV in pm.optionVar:
cube_width = pm.optionVar[DEFAULT_CUBE_WIDTH_OV]
if DEFAULT_CUBE_HEIGHT_OV in pm.optionVar:
cube_height = pm.optionVar[DEFAULT_CUBE_HEIGHT_OV]
if DEFAULT_CUBE_DEPTH_OV in pm.optionVar:
cube_depth = pm.optionVar[DEFAULT_CUBE_DEPTH_OV]
if DEFAULT_CYLINDER_RADIUS_OV in pm.optionVar:
cylinder_radius = pm.optionVar[DEFAULT_CYLINDER_RADIUS_OV]
if DEFAULT_CYLINDER_HEIGHT_OV in pm.optionVar:
cylinder_height = pm.optionVar[DEFAULT_CYLINDER_HEIGHT_OV]
if DEFAULT_CONE_RADIUS_OV in pm.optionVar:
cone_radius = pm.optionVar[DEFAULT_CONE_RADIUS_OV]
if DEFAULT_CONE_HEIGHT_OV in pm.optionVar:
cone_height = pm.optionVar[DEFAULT_CONE_HEIGHT_OV]
col_layout = pm.columnLayout(adj=True)
sphere_radius_slider = pm.floatSliderGrp(label='Sphere Radius',
field=True,
minValue=radius_min,
maxValue=radius_max,
fieldMinValue=-100.0,
fieldMaxValue=100.0,
value=radius,
adj=True)
torus_radius_slider = pm.floatSliderGrp(label='Torus Radius',
field=True,
minValue=radius_min,
maxValue=radius_max,
fieldMinValue=-100.0,
fieldMaxValue=100.0,
value=torus_radius,
adj=True)
cube_depth_slider = pm.floatSliderGrp(label='Cube Depth',
field=True,
minValue=radius_min,
maxValue=radius_max,
fieldMinValue=-100.0,
fieldMaxValue=100.0,
value=cube_depth,
adj=True)
row_layout = pm.rowLayout(numberOfColumns=2,
columnWidth2=(50, 50 ),
adjustableColumn1=2,
adjustableColumn2=2,
columnAlign=(1, 'right'),
columnAttach=[(1, 'both', 0), (2, 'both', 0)],
parent=col_layout)
run_button = pm.button(label="run", command=pm.Callback(on_click_run,
slider=sphere_radius
_slider,
torus_slider=torus_r
adius_slider,
cube_h_slider=cube_h
eight_slider,
cube_d_slider=cube_d
epth_slider,
cube_w_slider=cube_w
idth_slider,
cylinder_r_slider=cy
linder_radius_slider,
cylinder_h_slider=cy
linder_height_slider,
cone_r_slider=cone_r
adius_slider,
cone_h_slider=cone_h
eight_slider))