r0 = 100;
r1 = 10;
for (v = [0:10:180])
{
for (u = [0:10:360])
{
assign (A = ((r0 + r1 * cos(v)) * cos (u)), B = ((r0 + r1 * cos(v)) * sin (u)), C = (r1 * sin(v)))
translate ([A,B,C])
sphere (r=1);
assign (A = ((r0 + r1 * cos(v)) * cos (u)), B = ((r0 + r1 * cos(v)) * sin (u)), C = (r1 * sin(v)))
translate ([A,B,-C])
sphere (r=1);
}
}
This draws the top:
Quote:
r0 = 100;
r1 = 10;
for (v = [0:10:180])
{
for (u = [0:10:360])
{
assign (A = ((r0 + r1 * cos(v)) * cos (u)), B = ((r0 + r1 * cos(v)) * sin (u)), C = (r1 * sin(v)))
translate ([A,B,C])
sphere (r=1);
// translate ([A,B,-C])
// sphere (r=1);
}
}
and this draws the bottom:
Quote:
r0 = 100;
r1 = 10;
for (v = [0:10:180])
{
for (u = [0:10:360])
{
assign (A = ((r0 + r1 * cos(v)) * cos (u)), B = ((r0 + r1 * cos(v)) * sin (u)), C = (r1 * sin(v)))
// translate ([A,B,C])
// sphere (r=1);
translate ([A,B,-C])
sphere (r=1);
}
}
But, this does not draw it correctly:
Quote:
r0 = 100;
r1 = 10;
for (v = [0:10:180])
{
for (u = [0:10:360])
{
assign (A = ((r0 + r1 * cos(v)) * cos (u)), B = ((r0 + r1 * cos(v)) * sin (u)), C = (r1 * sin(v)))
translate ([A,B,C])
sphere (r=1);
translate ([A,B,-C])
sphere (r=1);
}
}
It sticks the bottom half as an object in the centre. :baffled:
Hmm, not so baffled, the assign statement only operates on the next statement so it does what it should in the above examples.