Error in Python node outputs

On 15/02/2015 at 00:05, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R12 
Language(s) :      XPRESSO  ;

  I run this code in a Python node in Xpresso and i want it to output 1 enable object(bool), 1 Dimension vector and 1 Position vector for each of 3 components called "Base Struttura", "Base Chaise-longue Destra". "Base Chaise-longue Sinistra". In the Xpressso window it looks like this:

Here instead is the code insite that central Python node
import c4d
#Welcome to the world of Python

def main() :
    #Dichiarazione Nodi di Uscita
    global BS, BS_Dimensione, BS_Posizione
    global CLDx, CLDx_Dimensione, CLDx_Posizione
    global CLSx, CLSx_Dimensione, CLSx_Posizione

#Assegnazione valori di default
    DafaultBool = False
    DefaultVector = c4d.Vector(0, 0, 0)
    BS = DafaultBool
    BS_Dimensione = DefaultVector
    BS_Posizione = DefaultVector

CLDx = DafaultBool
    CLDx_Dimensione = DefaultVector
    CLDx_Posizione = DefaultVector

CLSx = DafaultBool
    CLSx_Dimensione = DefaultVector
    CLSx_Posizione = DefaultVector

#Dimensioni Y (Altezza)
    BS_Dimensione.y = Altezza_Base
    CLDx_Dimensione.y = Altezza_Base
    CLSx_Dimensione.y = Altezza_Base
    #Dimensioni Z (Profondità)
    if Schienale:
        BS_Dimensione.z = Struttura_Profondita - Schienale_Spessore
        CLDx_Dimensione.z = Struttura_Profondita - Schienale_Spessore + ChDx_Sporgenza
        CLSx_Dimensione.z = Struttura_Profondita - Schienale_Spessore + ChSx_Sporgenza
        BS_Dimensione.z = Struttura_Profondita
        CLDx_Dimensione.z = Struttura_Profondita + ChDx_Sporgenza
        CLSx_Dimensione.z = Struttura_Profondita + ChSx_Sporgenza

CLSx_Posizione = DefaultVector
    #Suddivisione Casi
    if Segmenti == 1:
        if ChDx:
            BS = False
            CLDx = True
            CLSx = False
        elif ChSx:
            BS = False
            CLDx = False
            CLSx = True
            BS = True
            CLDx = False
            CLSx = False
    elif Segmenti == 2:
        CLDx = True
        CLSx = True
The values of some of this variables at the moment are:
- Altezza_Base = 22
- Struttura_Profondita = 90
- Schienale_Spessore = 8
- ChDx_Sporgenza = 50
- ChSx_Sporgenza = 100

So the output values should be
- Base Struttura.Position = (0,0,0)
- Base Chaise-longue Destra.Position = (0,0,0)
- Base Chaise-longue Sinistra.Position = (0,0,0)

- Base Struttura.Dimension = (0,22,82)
- Base Chaise-longue Destra.Dimension = (0,22,132)
- Base Chaise-longue Sinistra.Dimension = (0,22,182)

But instead all 6 of these vectors come out as (0,22,182) the value of "CLSx_Dimensione" vector in the code. The fact is that is the last line in which i give a vlue to a vector an therefor (somehow) that' becomes the output calue of any vector coming out of the node. I even to give value to "CLDx_Dimensione" for last to prove my theory and it confirmed it (al the outputs were (0,22,132)).
I don't know why this node behaves like this, maybe i'm missing something (i'm relatively new to both Xpresso and python).

On 17/02/2015 at 06:17, xxxxxxxx wrote:


I cannot confirm such behavior. Are there any error messages in the console? Can you provide a more simple example that reproduces the described behavior or a complete scene file?

Please be aware that SDK support can only handle requests for the latest version of Cinema 4D and it's SDKs and cannot provide much support for outdated versions.

Best wishes,