Jump to content

TypeError: in method 'new_Ramp'

Recommended Posts


I'd like to start by saying that I'm only a couple of days into python and I'm aware the code might not be the most beautiful, but it seems to work, for the most part.

I am simply reading a txt file with RGB value in each line, then I'm assigning to a ramp as many ramp points as there are lines with a sorted random position.

so far so good, everything works..

the problem is that the script works only when I manually write each color, they definitely get assigned to the ramp, I can see it works because the position of the flags changes every time I execute the script. (image_A)

but I get an error when I try to assign them with a variable that reads from the file, and the whole script fails, the position of the flags never changes when I get the error. (image_B)

the weird thing is that I know that the numbers stored in my variable are correct because I can print them on the shell regardless if the script fails or not.

hopefully there is some one that can help, 

this is the script that works:

import hou
from random import random

with open('C:/tmp/gradient.txt', 'r+') as f:
    gradientValues = f.read()
    gradientValues = gradientValues.replace("\n", ", ");
    rampPoints = len(open('C:/tmp/gradient.txt').readlines( ))
tmpList = []
for _ in range(rampPoints):
        value = random()
pointPosition = sorted(tmpList)
print (rampPoints)
print (pointPosition)
print (gradientValues)

node = hou.node('/img/img1/vopcop2gen5')
ramp_parm = node.parm('/img/img1/vopcop2gen5/ramp1')

ramp = hou.Ramp(([hou.rampBasis.Linear] * rampPoints), pointPosition, ((0.0,0.456,0.789), (0.111,0.0,0.333), (0.0,0.555,0.666)))



this is the one that fails:

ramp = hou.Ramp(([hou.rampBasis.Linear] * rampPoints), pointPosition, (gradientValues))

and this is the error:

The attempted operation failed.
Traceback (most recent call last):
  File "hou.session", line 21, in <module>
  File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.352/houdini/python2.7libs\hou.py", line 49159, in __init__
    this = _hou.new_Ramp(*args)
TypeError: in method 'new_Ramp', argument 3 of type 'std::vector<std::vector<double,std::allocator<double > >,std::allocator<std::vector<double,std::allocator<double > > > > const &'




Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now