ETH Zuerich - Startseite
Professur für CAAD

 


caad d-arch


Caad Teaching
 

 
Bachelor of Architecture: CAAD II ss07

 
Master of Advanced Studies
in Architecture, CAAD


 
DWF-Processing
Programmieren statt Zeichnen


 
Graustufen - Ein Atlas
Schweizer Wohngebäude als XML Daten


 
DWF- Denken in Systemen:
In Collaboration with the Technical University Vienna


 
Seminarwoche:
BlowUp


 
Archiv

 
Caad Projects
 

 
Theory
 
Design
 
Building
 
Practice

 
Related pages
 

 
Swiss Federal Institute of Technology Zurich
 
Institute of Building Technology
 
Faculty of Architecture

 
Other pages

 










hbt d-arch

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

1-Spread.jpg

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

1.2-Spread.jpg

webGen.jpg

Pilotis:

Revision r1.7 - 21 Dec 2005 - 15:19 - NDSMeindartVersteeg
Parents: WebHome > NDSMeindartVersteeg > Pattern
Copyright © 1999-2003 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

This website has been archived and is no longer maintained.