# Converting COFFEE to Python

• I'm trying to convert some C.O.F.F.E.E. script over to Python. What am I doing wrong here?

``````import c4d
#Welcome to the world of Python

def main():
global XA, YA, YB, ZB, alpha, K

X_A = Input1
Z_A = Input2
Z_B = Input3
Y_B = Input4
alpha = Input5

Z_A2 = Z_A * Z_A
Z_B2 = Z_B * Z_B
Y_B2 = Y_B * Y_B
YA = X_A*sin(alpha)
YA2 = YA * YA
XA = X_A * cos(alpha)

R2 = Z_B2 + Y_B2
K = Z_A*Z_B
K2 = K * K
YB = (K * YA + Z_A * sqrt(YA2 * R2 + Z_A2 * R2-K2))/(YA2 + Z_A2)
ZB = (K - YA * YB) / Z_A
``````

Here's what I'm trying to replicate:

``````main()
{
var Z_B,Y_B,X_A,Z_A,Z_B2,Y_B2,Z_A2,YA2,alpha,K,K2,R2;

X_A=Input1;
Z_A=Input2;
Z_B=Input3;
Y_B=Input4;
alpha=Input5;

// non riesco a trovare una tabella con tutte le funzioni
// compatibili in COFFEE. Trovato nell'SDK.
// es. 2^3 ---> pow(2,3)
// quando si eleva a potenza di 2 o 3 è più veloce la doppia
// o tripla moltiplicazione
Z_A2=Z_A*Z_A;Z_B2=Z_B*Z_B;
Y_B2=Y_B*Y_B;
YA=X_A*sin(alpha); YA2=YA*YA;
XA=X_A*cos(alpha);

R2=Z_B2+Y_B2;
K=Z_A*Z_B;K2=K*K;
YB=(K*YA+Z_A*sqrt(YA2*R2+Z_A2*R2-K2))/(YA2+Z_A2);
ZB=(K-YA*YB)/Z_A;

}
``````

• Hi @bnash, first of all, welcome in the plugincafe community.

Regarding your issue, I would suggest you read Python Console Manual since the python console is the place to go when something unexpected happens in python, as it will print you all the python errors message.
Looking at your code it seems that you are in an Xpresso tag (please include the context for your next post) if it's true, then I suggest you read Python Xpresso Node Manual.

So regarding your issue, while with the previous information you should be able now to know what's wrong.
All mathematical function that you use are not know from python, for that you have to import the math module.
If you are new to python, modules are libraries of classes, functions in order to organize your code.

So it will give us something like

``````import c4d
# Import the math module, so we can use the function defined inside the math module
import math

def main():
global XA, YA, YB, ZB, alpha, K

X_A = Input1
Z_A = Input2
Z_B = Input3
Y_B = Input4
alpha = Input5

Z_A2 = Z_A * Z_A
Z_B2 = Z_B * Z_B
Y_B2 = Y_B * Y_B
YA = X_A* math.sin(alpha)
YA2 = YA * YA
XA = X_A * math.cos(alpha)

R2 = Z_B2 + Y_B2
K = Z_A*Z_B
K2 = K * K
YB = (K * YA + Z_A * math.sqrt(YA2 * R2 + Z_A2 * R2-K2))/(YA2 + Z_A2)
ZB = (K - YA * YB) / Z_A
``````

Beside of that, you may be interested in the Tips to switch from C.O.F.F.E.E to Python page from the python documentation, to converts your code.

Finally, I've set up your topic correctly using the Q&A New Functionality, don't worry since it's your first topic, but please do it for the next one.

If you have any questions, please let me know.
Cheers,
Maxime.

• Any news?
I turned your topic as solved, but feel free to ask questions, or bump it again if you need it.

Cheers,
Maxime.