Clay Hive

Page 1

WORKSHOP_2 C L AY _ H I V E Shajay Bhooshan+Alicia Namad Ariadna Lopez, Leo Claudius Bieling, Basant Elshimy, Anri Gyuloyan

1


2


TABLE OF CONTENTS_

00_Brief

_05

01_Beehives

_09

02_Code

_13

03_Code Parameters

_17

04_Catalogue of Graphs

_23

05_3D Prints

_39

06_Nachi

_43

07_Clay Prints

_49

08_Clay Parameters

_53

09_Further Exploration

_61

3


4


BRIEF_

5


BRIEF_ WORKSHOP 2

This project is about learning to distill a natural phenomenon to its geometric characteristics and actions. The actions are used as parameters for code that produces a series of graphs that demonstrate and elaborate on how this phenomenon, or any phenomenon if subjected to the same procedure, functions. The graphs are used to produce three-dimensional prints that provoke thinking about how written code and two dimensional graphs can be translated into three-dimensional objects through a machine, and how that shapes the code and resulting graphs/ objects.

6


WORKFLOW_ WORKSHOP 2

LOCATE CENTER POINTS IN RHINO

RUN CODE IN ALICE C++

INPUT GEOMETRY INTO GRASSHOPPER

OBTAIN NEW GRAPH TXT FILE

GENERATE CLAY EXTRUSION

EXPORT TXT FILE

ARRAY IN Z - AXIS

BAKE GEOMETRY INTO RHINO

RUN NACHI SIMULATIOIN IN ALICE C++

GENERATE G - CODE

IMPORT INTO GRASSHOPPER

EXPORT NACHI CODE

RUN THE CODE THROUGH TEACH PENDANT

7


8


NATURAL PHENOMENON_

9


10


PHENOMENON_ BEEHIVE The hexagaonal formation of a beehive is determined by a collection of wax bubbles which surfaces come into tension upon reaching contact with each other.

11


12


CODE_

13


CODE_ C:\Users\Leo Claudius Bieling\Desktop\ALICE_PLATFORM_DESKTOP\src\userSrc\sketch_UR\sketch_Beehive_master_with_comments.cpp 1 #include "main.h" 2 #include "ALICE_ROBOT_DLL.h" 3 using namespace ROBOTICS; 4 #include <array> 5 #include <memory> 6 #include<time.h> 7 #include<experimental/generator> 8 using namespace std; 9 using namespace std::experimental; 10 // include "newPhysics" header to the programm 11 #include "newPhysics.h" 12 #include "circle_with_comments.h" // include "circle" header to the programm // include "graph" header to the programm 13 #include "graph.h" 14 15 //­­­­­­­­­­­­­­­­­­// GLOBAL VARIABLES //­­­­­­­­­­­­­­­­­­// 16 SliderGroup S; // slider function // graph function 17 Graph G; 18 newPhysics phy; // newPhysics function // import function 19 importer imp; 20 vector<circle> circles; // sequence container // initial number of point in each circle to 64 21 double NumberOfPoints = 64; 22 double RadiusOfCircle = 0.6; // initial radius of circles to 0.6 // initial boolean value to run code set to false 23 bool play = false; 24 25 //­­­­­­­­­­­­­­­­­­­­­­// PROGRAMM //­­­­­­­­­­­­­­­­­­­­­­// 26 // SETUP 27 void setup() 28 { phy = * new newPhysics(); // declare newPhysics called "phy" 29 30 imp = *new importer("data/inPts_V12.txt", 10000, 1); // import points from .txt file with maximum 10000 points and scale factor 1 called "imp" imp.readPts_p5(); // importer 31 32 G = *new Graph(); // declare new graph called "G" 33 34 for (int i = 0; i < imp.nCnt; i++) // for loop with "i" from 0 to "imp.nCnt" (amount of points in .txt file) with steps of 1 { 35 36 circle c = *new circle(phy, RadiusOfCircle, imp.nodes[i].pos, NumberOfPoints); // declare new circles called "c" circles.push_back(c); // put circles in the vector container called "circles" 37 } 38 39 S = *new SliderGroup(); // declare new slider group called "S" 40 41 S.addSlider(&NumberOfPoints, "NumberOfPoints"); // slider for number of point on the circles called "NumberOfPoints" 42 S.sliders[0].minVal = 6.00; // minimum Value set to "6.00" 43 S.sliders[0].maxVal = 128.00; // maximum Value set to "128.00" 44 45 S.addSlider(&RadiusOfCircle, "RadiusOfCircle"); // slider for radius of the circles called "RadiusOfCircle" 46 S.sliders[1].minVal = 0.50; // minimum Value set to "0.50" 47 S.sliders[1].maxVal = 5.00; // maximum Value set to "5.00" 48 49 } 50 51 // UPDATE 52 void update(int value) C:\Users\Leo Claudius Bieling\Desktop\ALICE_PLATFORM_DESKTOP\src\userSrc\sketch_UR\sketch_Beehive_master_with_comments.cpp 53 { 54 if (play == true) // if statement fot boolean "play" (switch condition of "play" by press ing "p") 55 { 56 phy.UpdateParticles(0.02, 2); // apply "UpdateParticle" function to "phy" with 0.02 and meth od 2 as arguments 57 for (int i = 0; i < circles.size(); i++) // for loop with "i" from 0 to size of "circles" with steps of 1 58 59 for (int j = 0; j < circles.size(); j++) // nested for loop with "j" from 0 to size of "circles " with steps of 1 { 60 61 if (i == j) continue; // if circle "i" is the same like circle "j" continue circles[i].checkCollisions(circles[j], phy); // apply "checkCollisions" to "circles" 62 63 } } 64 65 } 66 67 // VIEW 68 void draw() 69 { backGround(0.3); // set background color to 0.3 (0 white to 1 black) 70 71 G.draw(); // display graph function S.draw(); // display slider S group 72 73 phy.display(); // display newPhysics function 74 75 for (int i = 0; i < circles.size(); i++)circles[i].draw(phy); // for loop with "i" from 0 to size of "circles" with steps of 1, display "circle" function for each if (play == true) for (auto &ids : circles) ids.updateTrail(phy); // if boolean "play" is true (by pressing "p") run for loop of auto "ids" to display "updateTrail" function 76 77 } 78 79 //­­­­­­­­­­­­­­­­­­­­­// CONTROLLER //­­­­­­­­­­­­­­­­­­­­­// 80 // KEY PRESS 81 void keyPress(unsigned char k, int xm, int ym) // key press function 82 { //if "t" is pressed ­ reset 83 if (k == 'r') setup(); if (k == 'p') play = !play; //if "p" is pressed ­ update code 84 if (k == 'n') setCamera(28, 0, 0, ­40, 10); //if "n" is pressed ­ set camera to top view 85 if (k == 'b') setCamera(35, ­45, 45, 0, 0); //if "b" is pressed ­ set camera to defined perspective 86 if (k == 'g') 87 for (int i = 0; i < phy.np; i++) 88 G.createVertex(vec(phy.p[i].p.x, phy.p[i].p.y, 0)); //if "g" is pressed ­ create vertices of all phy.p 89 if (k == 'w') G.writeGraph(1.0); //if "w" is pressed ­ export graphes to .txt file 90 91 } 92 93 // MOUSE PRESS 94 void mousePress(int b, int state, int x, int y) 95 { if (GLUT_LEFT_BUTTON == b && GLUT_DOWN == state) 96 S.performSelection(x, y, HUDSelectOn); // move S sliders along X and Y 97 98 } 99 100 // MOUSE MOTION 101 void mouseMotion(int x, int y) 102 { if (GLUT_LEFT_BUTTON == x && GLUT_DOWN == y) 103 S.performSelection(x, y, HUDSelectOn); // make the S sliders selectable 104 105 }

14

1

2


CODE_ CIRCLE CLASS C:\Users\Leo Claudius Bieling\Desktop\ALICE_PLATFORM_DESKTOP\src\userSrc\sketch_UR\circle_with_comments.h 1 #include "main.h" 2 #include "ALICE_ROBOT_DLL.h" 3 using namespace ROBOTICS; 4 #include <array> 5 #include <memory> 6 #include<time.h> 7 #include<experimental/generator> 8 using namespace std; 9 using namespace std::experimental; 10 // define number of frames 11 #define numFrames 500 12 13 //­­­­­­­­­­­­­­­­­­// CIRCLE CLASS //­­­­­­­­­­­­­­­­­­// 14 class circle 15 { 16 public: // make it accessable from everywhere in the code vector<int> ids; // initialise vector container of integers called "ids" 17 18 vec trail[numFrames * 64]; // initialise vector called "trail" int frame; // initialise integer of "frame" 19 20 int trailCnt; // initialise integer of "trailCnt" 21 22 circle() {}; // empty constructor 23 24 // CIRCLE FUNCTION OF CIRCLE CLASS circle(newPhysics &PP , float r , vec cen , float N) //"PP" (passed as Reference), "r" (passed as copy), "cen" (passed as copy), "N" (passed as copy) 25 26 { vec pt; // initialise vector "pt" 27 28 ids.clear(); // clear vector container called "ids" 29 30 for (int i = 0; i < N; i++) // for loop with "i" from 0 to "N" (number of points) in circle with steps of 1 { 31 32 pt.y = r * sin(2 * PI / N * i); // get "y" location of point on circle pt.x = r * cos(2 * PI / N * i); // get "x" location of point on circle 33 34 pt += cen; // add x, y and z coordinates of the center vector to "pt" int n = PP.makeParticle(pt, 1.0, false); // create particle from point 35 36 ids.push_back(n); // put particles in vector container called "ids" PP.p[n].v = PP.p[n].p ­ cen; // create velocity away from center of circles 37 38 PP.p[n].v.normalise(); // normalise velocity vector } 39 40 } 41 42 // CHECK COLLISION FUNCTION OF CIRCLE CLASS void checkCollisions( circle &other , newPhysics &phy) // "other" (passed as Reference), "phy" (passed as Reference) 43 44 { for (int i = 0; i < ids.size(); i++) // for loop with "i" from 0 to size of "ids" with steps of 1 45 46 { int idOfbox = i; // declare integer "idOfbox" as "i" 47 48 int idOfparticle = ids[idOfbox]; // declare integer "idOfparticle" as "ids[idOfbox]" vec a = phy.p[idOfparticle].p; // declare vector "a" as "phy.p[idOfparticle].p" 49 50 for (int j = 0; j < other.ids.size(); j++) // nested for loop with "j" from 0 to size of "other.ids" with steps of 1 51 { 52 C:\Users\Leo Claudius Bieling\Desktop\ALICE_PLATFORM_DESKTOP\src\userSrc\sketch_UR\circle_with_comments.h int idOfbox_o = j; // declare integer "idOfbox_o" (other) as "j" 53 54 int idOfparticle_o = other.ids[idOfbox_o]; // declare integer "idOfparticle_o" (other) as "other.ids[idOfbox_o]" 55 vec b = phy.p[idOfparticle_o].p; // declare vector "b" as "phy.p[idOfparticle_o].p" 56 57 float distance = (b ­ a).mag(); // declare float "distance" as the subtraction of magnitude "b" and "a" 58 59 if (distance < 0.2) // if float "distance" is smaller then 0.2 statement { 60 61 phy.p[idOfparticle].fixed = true; // fix the position of "idOfparticle" if distance to any o the particle is less then 0.2 phy.p[idOfparticle_o].fixed = true; // fix the position of "idOfparticle_o" (other) if dista nce to any othe particle is less then 0.2 62 63 } } 64 65 } } 66 67 // DRAW FUNCTION OF CIRCLE CLASS 68 69 void draw(newPhysics &phy) // "phy" (passed as Reference) { 70 71 for (int i = 1; i < ids.size(); i++) // for loop with "i" from 1 to size of ids with steps of 1 { 72 73 int idOfCurrentPoint = ids[i]; // declare integer "idOfCurrentPoint" as "ids[i]" int idOfPreviousPoint = ids[i­1]; // declare integer "idOfPreviousPoint" as "ids[i­1]" (previous container of vector) 74 75 drawLine(phy.p[idOfCurrentPoint].p, phy.p[idOfPreviousPoint].p); // draw line between "idOfCurrentPoint" and "idOfPreviousPoint" } 76 77 for (int i = 0; i < frame * 64; i += 64) // for loop with "i" from 0 to integer of "frame" times 64 with steps of 64 78 79 for (int j = i; j < i + ids.size(); j++) // nested for loop with "j" beeing "i" to size of "ids" with steps of 1 { 80 81 vec4 clr = getColour(i, 0, frame * 64); // color setup for "updateTrail" function glColor3f(1, clr.g, clr.b ­ 0.6); // color sheme for "updateTrail" function 82 83 drawLine(trail[j], trail[j ­ 1]); // draw line with color sheme between vectors of trail } 84 85 } // UPDATE TRAIL FUNCTION OF CIRCLE CLASS 86 87 void updateTrail(newPhysics &phy) // "phy" (passed as Reference) { 88 89 for (int i = 0; i < ids.size(); i++) // for loop with "i" from 0 to size of "ids" with steps o f 1 { 90 91 trail[trailCnt] = phy.p[ids[i]].p; // set "trail[trailCnt]" equal to "phy.p[ids[i]].p" trail[trailCnt].z = float(frame) * .02; // increase Z vector of "trail[trailCnt]" linked to fl oat "frame" 92 93 trailCnt++; // increase "trailCnt" by 1 every "frame" if (trailCnt >= numFrames * 64) trailCnt = 0; // set "trailCnt" to 0 after 64 frames 94 95 } 96 97 frame++; // increase frames by 1 every frame if (frame >= numFrames) frame = 0; // set "frame" to 0 after 64 frames 98 99 } 100 };

1

2

15


16


CODE PARAMETERS_

17


CODE_ PARAMETERS These parameters shape the forces that govern the movement of the particles in the code. The production of the different graphs depend on the location and degree of force applied to the particles at a given moment.

degree of repulsion = 0.1 initial radius = 6 final radius = 6

PARAMETER_01 InterParticle Repulsion CONSTANT: Diameter and point count (64) of every circle

degree of repulsion = 0.2 initial radius = 6 final radius = 12

Particle Repulsion

degree of repulsion = 0.3 initial radius = 6 final radius = 25

18


CODE_ PARAMETERS

particle count = 6

PARAMETER_02 Circumference particle count CONSTANT: Diameter and point count (64) of every circle particle count = 12

Particle

particle count = 36

19


CODE_ PARAMETERS

initial radius = 12 distance between CP = 40

PARAMETER_03 Collision between particles CONSTANT: Diameter and point count (64) of every circle

initial radius = 12 distance between CP = 24

Particle Repulsion

initial radius = 12 distance between CP = 18

20


CODE_ PARAMETERS

0.8

PARAMETER_03 Speed of z-axis CONSTANT: Diameter and point count (64) of every circle

a 0.2

0.5 c A

Speed

0.5 0.6 C b

0.4

B

21


22


CELL CATALOGUE_

23


24

PRIMARY FORMATIONS

GEOMETRICAL FORMATIONS

This family of graphs investigates the inital formation of hexagonal geometry in the beehive. The iterations reflect the systematic addition of circles in order to achieve diversified patterns.

This family of graphs investigates the geometrically complex patterns developed from a ruled intial arrangement such as squares and triangles.


SEQUENTIAL FORMATIONS

LINEAR FORMATIONS

This family of graphs investigates the sequential formation of patterns as a result of the consecutive placement of center points

This family of graphs investigates the diversity of circle deformation in a linear arrangement.

25


PRIMARY FORMATIONS_ GRAPH 1 INITIAL CONDITION _ -Center points : 3 -Number of points per circle : 64 -Initial radius : 3.0 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _01.1.1

GRAPH _01.1.2

500 500

GRAPH_01.1.3 250 250

0 0

GRAPH_01.1.4 26

NUMBER OF FRAMES


PRIMARY FORMATIONS_ GRAPH 2 INITIAL CONDITION _ -Center points : 4 -Number of points per circle : 64 -Initial radius : 1.5 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _01.2.1

GRAPH _01.2.2

500 500

GRAPH_01.2.3 250 250

0

GRAPH_01.2.4

0 NUMBER OF FRAMES 27


PRIMARY FORMATIONS_ GRAPH 3 INITIAL CONDITION _ -Center points : 7 -Number of points per circle : 64 -Initial radius : 1.5 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _01.3.1

GRAPH _01.3.2

500 500

GRAPH_01.3.3

250 250

GRAPH_01.3.4

28

0

0 NUMBER OF FRAMES


PRIMARY FORMATIONS_ GRAPH 4 INITIAL CONDITION _ -Center points : 8 -Number of points per circle : 64 -Initial radius : 1.5 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _01.4.1

GRAPH_01.4.2

500

500

GRAPH_01.4.3 250

250

0

GRAPH_01.4.4

0

NUMBER OF FRAMES 29


GEOMETRICAL FORMATIONS_ GRAPH 1 INITIAL CONDITION _ -Center points : 27 -Number of points per circle : 64 -Initial radius : 2.8 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _02.1.1

GRAPH_02.1.2

500

500

250

GRAPH_02.1.3

250

0

0 GRAPH_02.1.4 30

NUMBER OF FRAMES


GEOMETRICAL FORMATIONS_ GRAPH 2 INITIAL CONDITION _ -Center points : 85 -Number of points per circle : 64 -Initial radius : 0.9 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _02.2.1

GRAPH_02.2.2

500

500

GRAPH_02.2.3

250

250

0

GRAPH_02.2.4

0

NUMBER OF FRAMES 31


GEOMETRICAL FORMATIONS_ GRAPH 3 INITIAL CONDITION _ -Center points : 42 -Number of points per circle : 64 -Initial radius : 1.2 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _02.3.1

GRAPH_02.3.2

500

500

250

GRAPH_02.3.3

250

0

GRAPH_02.2.4 32

0

NUMBER OF FRAMES


SEQUENTIAL FORMATIONS_ GRAPH 1 INITIAL CONDITION _ -Center points : 14 -Number of points per circle : 64 -Initial radius : 1.5 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _03.1.1

GRAPH_03.1.2

500

500

GRAPH_03.1.3

250

250

0

GRAPH_03.1.4

0 NUMBER OF FRAMES 33


SEQUENTIAL FORMATIONS_ GRAPH 2 INITIAL CONDITION _ -Center points : 33 -Number of points per circle : 64 -Initial radius : 0.9 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _03.2.1

GRAPH_03.2.2

500 500

GRAPH_03.2.3

250 250

GRAPH_03.2.4 34

0

0 NUMBER OF FRAMES


SEQUENTIAL FORMATIONS_ GRAPH 3 INITIAL CONDITION _ -Center points : 80 -Number of points per circle : 64 -Initial radius : 0.7 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _03.3.1

GRAPH_03.3.2

500

500

250

GRAPH_03.3.3

250

0

GRAPH_03.3.4

0

35


LINEAR FORMATIONS_ GRAPH 1 INITIAL CONDITION _ -Center points : 22 -Number of points per circle : 64 -Initial radius : 1.5 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _04.1.1

GRAPH_04.1.2

500

500 GRAPH_04.1.3

250

250

GRAPH_04.1.4

0

NUMBER OF FRAMES

36

0


LINEAR FORMATIONS_ GRAPH 2 INITIAL CONDITION _ -Center points : 13 -Number of points per circle : 64 -Initial radius : 1.0 PARAMETERS APPLIED_ -InterParticle Repulsion: Growth of circles -Circle collision: Linear arrangement between particles

INITIAL CONDITION GRAPH _04.2.1

GRAPH_04.2.2

500

500

GRAPH_04.2.3

250

250

0

0 GRAPH_04.2.4

NUMBER OF FRAMES 37


38


3D PRINTS_

39


3D PRINTS_ GRAPHS

LINEAR FORMATIONS_GRAPH 1

SEQUENTIAL FORMATIONS_GRAPH 1

40

GEOMETRICAL FORMATIONS_GRAPH 1


3D PRINTS_ IMAGES 3D prints of three graphs.

LINEAR FORMATIONS_GRAPH 1

SEQUENTIAL FORMATIONS_GRAPH 1

GEOMETRICAL FORMATIONS_GRAPH 1

41


42


NACHI_

43


CLAY PRINT_ NACHI MZ07 Number of axis : 6 Rotation Axis 1 : +/-170° Rotation Axis 2 : -135° to 80° Rotation Axis 3 : -136° to 270° Rotation Axis 4 : +/- 190° Rotation Axis 5 : +/- 120° Rotation Axis 6 : +/- 360°

Axis 4

Axis 6

Axis 3

Axis 2

Axis 5

120 mm 280 mm

44

420 mm

280 mm

720 mm

280 mm

320 mm

420 mm

345 mm

420 mm

Axis 1


PRINT_ END EFFECTOR Number of axis : 6 Rotation Axis 1 : +/-170° Rotation Axis 2 : -135° to 80° Rotation Axis 3 : -136° to 270° Rotation Axis 4 : +/- 190° Rotation Axis 5 : +/- 120° Rotation Axis 6 : +/- 360°

ROTATIONAL MOTOR

CONNECTION OF CLAY HOUSE

MOUNTING PLATE FOR AXIS 6

ROTATIONAL SCREW

EXTRUDER

45


CLAY PRINT_ NACHI MZ07 Nachi is a robotic arm which operates with a Windows XP operation system. Nachi is controlled through a tech pendant. The end effector receives signals through an Arduino driver which controls the behaviour of the stepper.

NACHI’s bra Output tool

NACHI STEPPER

12 V

DRIVER

ARDUINO

Driver (up) Arduino (dow

5V

CPU

220 V

LAPTOP

Input tool

OR

FLASH DRIVE

Input tool

Input tool

Stepper inst

TEACH PENDANT

Power Signal

Teach penda

46

Bla bla nachi NACHI’s brain (NB) is a computer with Windows XP wich operates robotic arm by sending signals threw the cabel. Also, NB send signal trew Arduino to Driver to change


CLAY PRINT_ NACHI MZ07

NACHI

END EFFECTOR

ARDUINO

CPU

TEACH PENDANT

47


48


CLAY PRINTS_

49


CLAY PRINT_ TEST 1 -NUMBER OF POINTS PER LAYER : 285 -NUMBER OF CODE LINES PER PROGRAM : 570 -NUMBER OF CODED PROGRAMS : 12 -TOTAL NUMER OF LAYERS : 24 -TOTAL TIME OF PRINT: 2 hrs -NUMBER OF CASUALTIES: 6x

50


CLAY PRINT_ TEST 2 -NUMBER OF POINTS PER LAYER : 182 -NUMBER OF CODE LINES PER PROGRAM : 1,000 -NUMBER OF CODED PROGRAMS : 8 -TOTAL NUMER OF LAYERS : 35 -TOTAL TIME OF PRINT: 2.5 hrs -NUMBER OF CASUALTIES: 4x

51


52


CLAY PARAMETERS_

53


CLAY PRINT_ MIX

54

TEST 1_SCOLA CLAY

TEST 2_CLAY MIX

Drying time too long.

Excess of water

1.5 kg Scola clay 250 ml Water

250 ml Sillica sand: aggregate 500 ml Ball clay: plastic clay. 750 ml China clay: plastic clay. 500 ml Grog 80 Dust: reduces shrinkage and increases thermal shock resistance. 500 ml Potash Feldspar: promotes melting. A component of glaze. 8 ml Sodium dispex: improves stability and mould life. 700 ml water: malleability.


TEST 3_CLAY MIX

TEST 4_FINAL MIX

Excess sand jammed end effector motor

Functional clay that may not facilitate

movement.

sectional variation.

250 ml Sillica sand: aggregate 500 ml Ball clay: plastic clay. 750 ml China clay: plastic clay. 500 ml Grog 80 Dust: reduces shrinkage and increases thermal shock resistance. 500 ml Potash Feldspar: promotes melting. A component of glaze. 8 ml Sodium dispex: improves stability and mould life. 500 ml water: malleability.

250 ml Sillica sand: aggregate 500 ml Ball clay: plastic clay. 750 ml China clay: plastic clay. 500 ml Grog 80 Dust: reduces shrinkage and increases thermal shock resistance. 500 ml Potash Feldspar: promotes melting. A component of glaze. 4.5 ml Sodium dispex: improves stability and mould life. 375 ml water: malleability.

55


16.7

16.7

16.7

4.1 16.7

CLAY_ PARAMETERS

16.7 16.7 5.3

5.3

11.9

3.8

6.0

16.7

16.7

11.0

7.1

4.9

16.7

16.7

These parameters affect the 16.7 qualities of the clay print. The viscosity of the clay, the 16.7 in it amount of air bubbles and the distance between the 5.3 16.7 points in the graph sent to Nachi determine the height, solidity and thickness of the clay print.

11.8

4.7 1.9

5.1

5.2

11.6 16.7

16.7

16.7 4.1

16.7

15.0

7.1 16.7

16.7

11.0 5.3

11.9

3.8

6.0

4.9

16.7

11.8

16.7

14.6

1.9 5.2

11.6

16.7

5.3

11.4

15.0 10.6

9.8

7.2

14.5

6.9

9.5 16.7

16.7

16.7

2.0

16.7

5.1

9.5

2.3

4.7

7.4 9.3

16.7

2.0

16.7 15.0

14.6

Problematic areas where the distance between two or more consecutive points is less than 16 mm, slowing down the movement of Nachi and creating thick piles of clay. 5.3

11.4

10.6 173

174

16.7

9.8 6.9

172

7.4 08

175

CONSTANT: Length of time from one point to the next and air pressure.

176

170 171

9.309

07

169

168

16.7

10

167

177

15.0

11

06

166

178

20

12

05

Problematic areas_01

21 22

165 164

19

179

7.2

16.7 14.5

5.3 9.6

2.3

PARAMETER_01 Distance between points in graph

16.7

5.3 9.6

04 180

03

02

128

14 15

125 124 92

162

16

127

129

123

126

25 26

122

27

121

93

90

120 119

94

95

89

131

118

96 115

116

159

38

158

117

88 132

33 160

34

35

36

37

161

32

31

30

29

28

91

130

163

24

17

01 0

23

18

13

39

87

97 114 98 113

112

40

111

157

110 133 134 82 81 80

85

84

83

78

79

86 109

77 76

101

135

102

75 74

65

136

73

103 64

66

104

105 106

63

137

138

139

108 107

45

155

46 48 49 47

154

51 153

53 152

71 70

61

68

54

69

151 60

140

55 141

150

59 142 143

58 144

149 56 57

148 145 146

56

42 43 44

50 52

62 67

72

156

41

99 100

147

Overlay of the graph of printed points on a photograph of the print, showing the correlation between point distribution and clay thickness. The arrows indicate the movement of the extruder.


CLAY_ PARAMETERS These parameters affect the qualities of the clay print. The viscosity of the clay, the amount of air bubbles in it and the distance between the points in the graph sent to Nachi determine the height, solidity and thickness of the clay print.

PARAMETER_02 Viscosity of clay

Clay that is too liquid does not extrude in straight lines and does not dry fast enough to be able to carry the following layer. It instead mixes with it and spreads horizontally, not allowing the print to acheive height. 7 bar air pressure pushed the clay out too quickly through the extruder.

PARAMETER_03 Pressure from air compressor CONSTANT: Length of time from one point to the next.

223

227

228 229

217 218

216

219

215

230 01

220 20

214

18

213

23

212

24

211

25 26

206 34 35

33

32

31

42

41

40

39

38

37

36

28

29

30

12 43

201

60

199

61

56 62

55 63

53

64

65

198

52

66

80

67

81

79

70 71

194 193 191

73 190 189 188

128

114 82

157

130 129

158

161

83 84

98

110

111

113 112

101

100

99

109

108

102

103

107 104

106 105 162 163 164 165

97

166 96

86

167

95 87

76

168 94

169

88

75

72

192

127

156 131

160

77

195

132

159

78

69

196

133

126

85

68

197

125

115

50

51

134

116

49 54

124

117

48 57

122 123

118

47

202 59 58

154 155

136 135

119

46

203

153

120

45

204

152

137

09

121

44

205

200

11

10

151

138

08

13

27

208

150

139

07

14

149

140

06

15

148

141

05

16

147

142

04

17

146

143

03

22

207

144 145

02

19 21

209

Problematic areas_02/03

226

221

210

224 225

222

89

74

170

93

91

187

171

92

90

176 175 174

172 173

177

186

178

185 184

183

180 182 181

179

Areas where the liquid clay extrudes in puddles due to high air pressure and low clay viscosity . The arrows indicate the movement of the extruder.

57


23

212

24

211

CLAY_ PARAMETERS These parameters affect the qualities of the clay print. The viscosity of the clay, the amount of air bubbles in it and the distance between the points in the graph sent to Nachi determine the height, solidity and thickness of the clay print.

208 207

32

33

206 34

CONSTANT: Length of time from one point to the next

44

204 203

201

57

60

200

56

61

62

54

63

199

53

64

65

66

67

115 114 82

result in weak areas in the clay print

70

195

194

76

71

193 192

217 218

216 214

15

Problematic areas_5

206 34 35

33

38

37

36

28

29

42

41

40

39

12 43

202 59 58 201

60

199

61

56 62

55 63

53

64

65

198

52

66

80

67

81

79

70 71

194 193 191

73 190 189 188

114 82

83 84

98

110

111

113 112

127

109

101

100

99

156 131

128

157

130 129

158

108

102

103

107 104

106 105 162 163 164 165

97

166 96

86

167

95 87

76

168 94

169

88

170

93

89

74

171

92

90

91

187

176 175 174

172 173

177

186

178

185 184

58

132

161

75

72

192

133

126

160

77

195

125

159

78

69

196

134

85

68

197

124

115

50

51

122 123

116

49 54

154 155

136 135

117

48 57

153

138

118

47

203

152

119

46

204

151

140

120

45

150

137

09

121

44

205

200

11

10

149

139

08

13

27 30

180 05 182 181

07

14

179

141

06

26

208

183

16

25

103

104

92

177

147

178148

142

04

184

146

143

03

185

209

144 145

02

24

102

176 175 174 173 91

230 01

17 23

108

1

93

90

228 229

18

212

31

227

186

22

32

226

221

19

213

207

224 225

222

21

109

107

88

220 187 20

219

215

129

The Tool Center Point cannot reach95 beyond 87 remaining 40 cm from Nachi’s center while 94 parallel with the printing surface. 89

74 223

73 190 189 188

191

13

96

86

75

72

128

97

78 77

131

85

68

196Points that are unconnected in the graph

132

127

101

100

99

98

84

110

111

113 112

83

79

69

126

116

81

80

125

133

117

50

51

52

124

134

118

49

55

122 123

119

48

202 59 58

136 135

120

47

210

Problematic areas_4

121

46

211

43

205

197

PARAMETER_5 Size of print

11

137

09

10

45

198

PARAMETER_4 Point connections

42

41

40

39

38

37

36

35

31

12

28

29

30

138

08

13

27

139

07

14

26

209

140

06

15

25

210

141

05

16

183

180 182 181

179

Unconnected areas in the graph remain unconnected in the clay. Areas that further than 40 cm from Nachi’s center are printed at an angle that results in the clay not following the graph edge.

1


CLAY_ PARAMETERS These parameters affect the qualities of the clay print. The viscosity of the clay, the amount of air bubbles in it and the distance between the points in the graph sent to Nachi determine the height, solidity and thickness of the clay print.

PARAMETER_6 Clay consistency

The clay must be thick and free of air bubbles in order to print consistently. Air bubbles in the clay tank or connecting hose result in gaps in the clay, leaving nothing for the following layer to print on.

CONSTANT: Length of time from one point to the next

Problematic areas_6

In order to prevent gaps in printing, the clay must be consistent and compact in the tank. Shaking the clay tank helps remove air bubbles. The image above highlights areas affected by the bubbes. 59


60


FURTHER CODE EXPLORATIONS_

61


3D CODE_ -

C:\Users\Leo Claudius Bieling\Desktop\ALICE_PLATFORM_DESKTOP\src\userSrc\sketch_UR\circle_3D.h 19 ////­­­­­­­­­­­­­­­­­­­­­CIRCLES ON X­Y PLANE­­­­­­­­­­­­­­­­­­­­­//// 20 circle(newPhysics &PP, float r, vec cen, float N) //"PP" (passed as Reference), "r" (passed as copy), "cen" (passed as copy), "N" (passed as copy) { 21 22 vec pt; // initialise vector "pt" ids.clear(); // clear vector container called "ids" 23 24 for (int i = 0; i < N; i++) // for loop with "i" from 0 to "N" (number of points) in circle with steps of 1 25 26 { pt.y = r * sin(2 * PI / N * i); // get "y" location of point on circle 27 28 pt.x = r * cos(2 * PI / N * i); // get "x" location of point on circle pt += cen; // add x, y and z coordinates of the center vector to "pt" 29 30 int n = PP.makeParticle(pt, 1.0, false); // create particle from point ids.push_back(n); // put particles in vector container called "ids" 31 32 PP.p[n].v = PP.p[n].p ­ cen; // create velocity away from center of circles PP.p[n].v.normalise(); // normalise velocity vector 33 34 } } 35 36 ////­­­­­­­­­­­­­­­­­­­­­CHANGES FOR SPHERE­­­­­­­­­­­­­­­­­­­­­//// 37 38 sphere(newPhysics &PP , float r , vec cen , float N) // same like CIRCLE { 39 40 vec pt; // same like CIRCLE ids.clear(); // same like CIRCLE 41 42 for (int i = 0; i < N; i++) // same like CIRCLE 43 44 for (int j = 0; j < N; j++) // nested for loop with "j" from 0 to "N" (number of points) in circle with steps of 1 { 45 46 pt.y = r * sin(2 * PI / N * i) * cos(2 * PI / N * j); // get "y" location of point on sphere pt.x = r * sin(2 * PI / N * i) * sin(2 * PI / N * j); // get "x" location of point on sphere 47 48 pt.z = r * cos(2 * PI / N * i); // get "z" location of point on sphere pt += cen; // same like CIRCLE 49 50 int n = PP.makeParticle(pt, 1.0, false); // same like CIRCLE ids.push_back(n); // same like CIRCLE 51 52 PP.p[n].v = PP.p[n].p ­ cen; // same like CIRCLE PP.p[n].v.normalise(); // same like CIRCLE 53 54 } } 55

Changes made to achieve a three-dimensional exploration of code parameters

62


3D EXPLORATION_ -

Initial condition

Interim condition

Final condition

63


Architectural Association DRL London, UK 2016


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.