#1
|
|||
|
|||
Object not subscriptable
Hello, I am defining a function with with a FOR and IF loop inside to print the position of an object. If the object is correctly placed with before the loop completes, the cooridnates will print along with a mesaage for the next action. If the object isn't place before the loops completes, a message is printed along with the correct coordinates.. The problem I having is an error that reads:
File "C:\Users\Husam\if loop test.py", line 17, in showData if box_pos[0]==3 and pos[1] == 4.0 and pos[2] == -5.0: TypeError: 'float' object is not subscriptable But, if go through and check each box_pos[0] - box_pos[2] individually the loop works. I only get the error when I codes is as follows: import viz import vizact import vizshape viz.go() box = vizshape.addBox([1,1,1],splitFaces=True,pos=(3.0,4.0,-5.0)) box_pos = box.getPosition(viz.ABS_GLOBAL) def showData(): for number in range(5): for pos in box_pos: if box_pos [0]== 3.0 and pos[1] == 4.0 and pos[2] == -5.0: print box_pos, 'The Box is connected properly move to next connection' else: print box_pos vizact.ontimer(3,showData) Please help!!! |
#2
|
|||
|
|||
The variable pos is not a list, it's a single float value taken from the box_pos list. So you can't refer to an element within it.
|
#3
|
|||
|
|||
Instead of this:
Code:
for pos in box_pos: if box_pos [0]== 3.0 and pos[1] == 4.0 and pos[2] == -5.0: print box_pos, 'The Box is connected properly move to next connection' Code:
if box_pos[0] == 3.0 and box_pos[1] == 4.0 and box_pos[2] == -5.0: print box_pos, 'The Box is connected properly move to next connection' You may also want to compare positions approximately (i.e. "abs(box_pos[0] - 3.0) < 1e-3") to avoid any problems with rounding error. |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to render a texture of the transparent object and then blur it | whj | Vizard | 1 | 09-25-2012 04:15 PM |
how to hide 3D virtual object behind real object? | Darkmax | Vizard | 3 | 05-29-2012 10:39 AM |
retrieve Object names | Geoffrey | Vizard | 11 | 12-11-2009 05:26 AM |
Making an object to appear after other object done animating | jaylocco | Vizard | 2 | 07-13-2009 07:17 PM |
rotate to object | jargon | Vizard | 1 | 08-08-2005 01:20 PM |