//Titel: Cube, scale, move, rotate //Author: Morten Bülow //Description: /* Number of faces pr. row is given by: (8*$numberCubes)-2 $faces4 = $faces3+3 */ int $numberCubes = 5; //min 2 int $numberRows = 10; // min 2 max 10 // creating cubes for($i=0; $i<$numberCubes; $i++) { $name = "MyObject" + $i; polyCube -w 1 -d 0.5 -h 1 -name $name; $r = rand(-2, 2); move ($i) (10*$r) ($r/4); rotate $r $r $r; } // combine the objects polyUnite -name MyResult1 MyObject0 MyObject1; for($next=2; $next<($numberCubes); $next++) // go for the rest { $obj_next = "MyObject" + $next; // define the next object $previous = $next-1; $obj_previous = "MyResult" + $previous; $result = "MyResult"+$next; // define the previous object polyUnite -name $result $obj_previous $obj_next; // union the previous with the next } rename MyUniteCube0; select -r MyUniteCube0.f[4] MyUniteCube0.f[11]; polyBridgeFaces; select -r MyUniteCube0 ; for($face=9; $face<=(($numberCubes*4)-3); $face=$face+4) { select -r MyUniteCube0.f[$face] MyUniteCube0.f[$face+6]; polyBridgeFaces; } select -r MyUniteCube0 ; duplicate -rr; scale -r 1 1 1; rotate -r 120 0 16; move -r 0 4 0; for ($i=2; $i<$numberRows; ++$i) { duplicate -rr -st; } select -all; polyUnite; /////////////////////////////////////////////////////////////////////////////////// // row 1 til 2 $faces2 = ($numberCubes*8) + 1; $counter = ($numberCubes*8) - 1; select -r polySurface1.f[1] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=5; $face<=($numberCubes*3); $face=$face+3) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; $counter = $counter-1; } select -all; /////////////////////////////////////////////////////////////////////////////////// // row 2 til 3 if ($numberRows > 2) { $faces2 = ($numberCubes*14) - 1; $faces3 = ($numberCubes*7) - 1; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*9)-2 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 3 til 4 if ($numberRows > 3) { $faces2 = ($numberCubes*20) - 3; $faces3 = ($numberCubes*13) - 3; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*15)-4 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 4 til 5 if ($numberRows > 4) { $faces2 = ($numberCubes*26)-5; $faces3 = ($numberCubes*19)-5; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*21)-6 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 5 til 6 if ($numberRows > 5) { $faces2 = ($numberCubes*32)-7; $faces3 = ($numberCubes*25)-7; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*27)-8 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 6 til 7 if ($numberRows > 6) { $faces2 = ($numberCubes*38)-9; $faces3 = ($numberCubes*31)-9; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*33)-10 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 7 til 8 if ($numberRows > 7) { $faces2 = ($numberCubes*44)-11; $faces3 = ($numberCubes*37)-11; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*39)-12 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 8 til 9 if ($numberRows > 8) { $faces2 = ($numberCubes*50)-13; $faces3 = ($numberCubes*43)-13; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*45)-14 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } /////////////////////////////////////////////////////////////////////////////////// // row 9 til 10 if ($numberRows > 9) { $faces2 = ($numberCubes*56)-15; $faces3 = ($numberCubes*49)-15; $faces4 = $faces3+3; $counter = $numberCubes*7; select -r polySurface1.f[$faces3] polySurface1.f[$faces2]; polyBridgeFaces; select -r polySurface1 ; for($face=$faces4; $face<=($numberCubes*51)-16 ; $face=$face+2) { select -r polySurface1.f[$face] polySurface1.f[$face+$counter]; polyBridgeFaces; } } // END!!!!!!!!!!!! print "all done!\n";