export PYTHONPATH=$PYTHONPATH:$RMANTREE/bin
export PATH=$RMANTREE/bin:$PATH
export MAYA_USER_DIR=$HOME/Documents/maya
export RMS_SCRIPT_PATHS=$MAYA_USER_DIR/rfm_scripts/image_tool
RMANFB=it
# change directory below to where your cutter is
cd /Users/ddu/Desktop/ddu/projects/vsfx_705/cutter
# To uncomment the next line - remove the '#' character
java -Xms512m -Xmx512m -classpath .:cutter.jar Cutter
# script is called test.py but it
# implements a module called "test"
# a modules contrains attributes
# an attribute can be, eg. name of a variable
# the built-in datatypes are, nubmers, text(string),
# (and collections) list, tuple, dictionary. file.
age = 26
name = "tom"
family = 'jones'
nationatlity = 'welsh'
# an attribute can also be the name of function
#create function
def person()
print(age)
print(name)
print(family)
#creating list
countries = []
countries.append('usa')
countries.append('china')
countries.append('new zealand')
countries.append('england')
#countries.sort()
#countries.reverse
# using a tuple (fixed value list) - for vertices data structures transfer
locked = (2,4,3,6,8,9)
# i can test my code by printing some value
# this call the values
# but comment it out if used asa module
person()
if __ name__ == '__main__':
#person() #(debugging purposes)
#for place in countries:
# print(place)
#print(countries[3])
print(locked[0])
#print(__name__) # return name of module from where it was run
# file_test.py
# an example of how to store text in a document
out_file= open('file directory', 'w')
for n in range(10):
out_file.write('sphere -r 1;\n)
out_file.write('move %f %f 0;\n' % (n,(n-2))) # placeholder %
out_file.close()
# to run the mel document in Maya use this mel...
#source "filedirectory"
#vsfx705/cutter/using_test.py
# only possible if the python files exist in the same directory
import test
from importlib import reload
print(test.nationality)
test.person
# importing random
import random
val = random.uniform(0,1)
print(val)
for n in range(10):
val = random.uniform(0,1)
if val>0.5:
print(val)
# rib_test.py
"""
Points "P" [0 0 0 3 5 6 5 6 7 9 9 9] "constantwidth" [1.0]
"""
import random
rib_file = open('/Users/ddu/Desktop/ddu/projects/vsfx_705/cutter/data2.rib', 'w')
rib_file.write('##bbox: -5 -5 -5 5 5 5\n')
rib_file.write('Points "P" [\n')
for n in range(100000):
x = random.uniform(-5, 5)
y = random.uniform(-5, 5)
z = random.uniform(-5, 5)
rib_file.write('%f %f %f\n' % (x,y,z) )
rib_file.write('] "constantwidth" [0.05]')
rib_file.close()
#Maya > Renderman menu > Archive > import rib archive
# maya/scripts/gen_points.py
import random
def cubic(num, side):
data = []
n = 0
while n < num:
x = random.uniform(-side/2, side/2)
y = random.uniform(-side/2, side/2)
z = random.uniform(-side/2, side/2)
data.append( (x,y,z) )
n = n + 1
return data
def box(num, width, height, depth):
data = []
n = 0
while n < num:
x = random.uniform(-width/2, width/2)
y = random.uniform(-height/2, height/2)
z = random.uniform(-depth/2, depth/2)
data.append( (x,y,z) )
n = n + 1
return data
# how to create a spherical point cloud
def spherical(num,radius):
pass # define function but not implemented
# maya/scripts/rib_particles.py
import random
import gen_points
rib_file = open('/Users/ddu/Desktop/ddu/projects/vsfx_705/cutter/data2.rib', 'w')
data = gen_points.cubic(10000,10,0.05)
rib_file.write('##bbox: -5 -5 -5 5 5 5\n')
rib_file.write('Points "P" [\n')
for coord in data:
rib_file.write('%f %f %f\n' % (coord[0],coord[1],coord[2]) )
rib_file.write('] "constantwidth" [0.05]')
rib_file.close()
#Maya > Renderman menu > Archive > import rib archive
questions
why is my cutter so slow?
does not have vsfx705
cannot open hyperlink
Lesson 3
list []
tuple () fixed values
## bbox: -5 5 -5 5 5 5 # read by rib
def writeCubic(path
cmd E to render in Renderman