|
| MAS ETH ARCH/CAAD - 2005/06 - STUDENT PAGES Master of Advanced Studies in Architecture, Specialization in Computer Aided Architectural Design | 065-0005/6 Supervision: Prof. Dr. Ludger Hovestadt, Philipp Schaerer Chair of CAAD, ETH Zurich Vector Works Script Building Process Pilotis, Palácio da Alvorada, Brasilia Scripting PROCEDURE pilotis; VAR rad : REAL; h1,h2,h3,h4,h5 : REAL; v1,v2,v3,v4,v5 : REAL; x,y,z : REAL; xAngle,yAngle,zAngle :REAL; i,j,k : INTEGER; elem:HANDLE; FUNCTION BasicElement(radSphere: REAL):HANDLE; VAR n : INTEGER; r,green,b : LONGINT; BasicEl,besicelm2 : HANDLE; a,a1,a2,h,f,besicelm1,newsolid1,newsolid2,newsolid3,newsolid4,newsolid5,newobject: HANDLE; g,c,l,b1,b2 : INTEGER; BEGIN h1 := 5; (**= upper horizontal left of the element**) h2 := 30; (**= first under width left of the element**) h3 := 70; (**= second under width left of the element**) h4 := 25; (**= mid width left of the element**) h5 := 5; (**= bottom left of the element**) v1 := 10; (**= is the first heigth left**) v2 := 20; (**= is the second heigth left**) v3 := 25; (**= largest width of my element**) v4 := 56; (**= is the first heigth left**) v5 := 120; (**= upper vertical left of the element**) ClosePoly; {Closed Poly Line} BeginMXtrd(0,120); BeginPoly; MoveTo(0,0); LineTo(-h1,0); CurveThrough(-h2,v1); LineTo(-h3,v2); LineTo(-h3,v3); CurveThrough(-h4,v4); LineTo(-h5,v5); LineTo(0,120); LineTo(h5,v5); CurveThrough(h4,v4); LineTo(h3,v3); LineTo(h3,v2); CurveThrough(h2,v1); LineTo(h1,0); EndPoly; scale(1,1); BeginPoly; {Closed Poly Line} MoveTo(0,0); LineTo(-h1,0); CurveThrough(-h2,v1); LineTo(-h3,v2); LineTo(-h3,v3); CurveThrough(-h4,v4); LineTo(-h5,v5); LineTo(0,120); LineTo(h5,v5); CurveThrough(h4,v4); LineTo(h3,v3); LineTo(h3,v2); CurveThrough(h2,v1); LineTo(h1,0); EndPoly; EndMXtrd; besicelm2 := LNewObj; Rotate3D(90,0,0); Get3DCntr(LNewObj,x,y,z); {get 3d center point - locus point} Locus3D(x,y,z); Move3DObj(besicelm2,-x,-y,-z); DSelectAll; h := CreateSphere(0,0,150,70 * radSphere); g := SubtractSolid(besicelm2,h,newsolid1); (** upper sphere **) a := CreateSphere(115,0,70,132 * radSphere); c := SubtractSolid(newsolid1,a,newsolid2); (** upper right sphere **) f := CreateSphere(-115,0,70,133 * radSphere); l := SubtractSolid(newsolid2,f,newsolid3); (** upper left sphere **) a1 := CreateSphere(-74,0,-156,132 * radSphere); b1 := SubtractSolid(newsolid3,a1,newsolid4); (** bottom right sphere **) a2 := CreateSphere(74,0,-156,132 * radSphere); b2 := SubtractSolid(newsolid4,a2,newsolid5); (** bottom left sphere **) BasicElement:=newsolid5; END; BEGIN rad:= .87; BeginGroup; For k := 0 TO 1 DO BEGIN; {move in x - y - z direction} For j := 0 TO 2 DO BEGIN; For i := 0 TO 3 DO BEGIN; rad:=rad+0.01; elem:=BasicElement(rad); Move3DObj(elem,120*i,120*j,85*k); Message(k,' ',j,' ',i); END; END; END; DSelectAll; SelectObj((T=SOLID)); {delete spheres} DeleteObjs; EndGroup; END; Run (pilotis);Result / 3D Printing Pilotis:
|
This website has been archived and is no longer maintained.