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





CELLDIVISION

__________________________________________________________________________________________________________________________

Skizze_TreeWing_01.jpg

__________________________________________________________________________________________________________________________

Bild_1_2_01.jpg

__________________________________________________________________________________________________________________________

Bild_8_11_01.jpg

__________________________________________________________________________________________________________________________

Bild11_2_3d.jpg

__________________________________________________________________________________________________________________________

Bild_15_3d.jpg

__________________________________________________________________________________________________________________________

PROCEDURE sweep;

VAR
   j,s,k,m,n,i:INTEGER;
   h,myPoly,lastPoly,firstObject:HANDLE;
   profileHandle,myHandle,myConnector:HANDLE;
   neuPx,neuPy,neuPz,px,py,pz:REAL;
   c,rest:REAL;
   weightx,weighty:REAL;
   myArray:DYNARRAY[] OF POINT3D;
   a1,a2,a3,a4:POINT3D;
   
   Procedure myDivide01(p1,p2,p3,p4:POINT3D;weightx,weighty:REAL);
   VAR
   p5,p6:POINT3D;
   BEGIN
      p5.x := (p2.x - p1.x)/6*3+p1.x;
      p5.y := (p2.y - p1.y)/6*3+p1.y;

      p6.x:= (p4.x - p3.x)/6*3+p3.x;
      p6.y:= (p4.y - p3.y)/6*3+p3.y;

      myPoly:=CreateNurbsCurve(p5.x,p5.y,myArray[1].z,true,1);
      AddVertex3D(myPoly,p6.x,p6.y,myArray[1].z);

      oval(-weightx/2,-weighty/2,weightx/2,weighty/2);
      profileHandle:= LNewObj;
      myHandle:= CreateExtrudeAlongPath(myPoly,profileHandle); 
      DelObject(profileHandle);
      c:=Abs(Distance(p5.x,p5.y,p6.x,p6.y));
      weightx:=weightx-0.5;
      weighty:=weighty-1;

      IF c>15 THEN BEGIN
         myDivide01(p5,p6,p4,p1,weightx,weighty);
         myDivide01(p5,p6,p3,p2,weightx,weighty);
      END;
   END;
BEGIN
   myPoly:=FObject;
   ALLOCATE myArray[1..GetVertNum(myPoly)];
      FOR m:=0 TO (GetVertNum(myPoly)-1) DO BEGIN
         GetPolyPt3D(myPoly,m,px,py,pz);
         myArray[m+1].x:=px;
         myArray[m+1].y:=py;
         myArray[m+1].z:=pz;
      END;
   
   s:= GetVertNum(myPoly);
   myPoly:=CreateNurbsCurve(myArray[1].x,myArray[1].y,myArray[1].z,true,1);
      FOR m:=2 TO s DO BEGIN
         AddVertex3D(myPoly,myArray[m].x,myArray[m].y,myArray[m].z);
      END;
         AddVertex3D(myPoly,myArray[1].x,myArray[1].y,myArray[1].z);

      rest:=s MOD 2; {ungeradeZahl}
      IF rest=1 THEN BEGIN 
         neuPx:=(myArray[3].x+myArray[2].x)/2;
         neuPy:=(myArray[3].y+myArray[2].y)/2;
         AddVertex3D(myPoly,neuPx,neuPy,0);
         s:=s+1;
      END;
   weightx:=5;
   weighty:=10;
   oval(-weightx/2,-weighty/2,weightx/2,weighty/2);
   profileHandle:= LNewObj;
   myHandle:= CreateExtrudeAlongPath(myPoly,profileHandle); 
   DelObject(profileHandle);

BEGIN  
   s:= s/2-1; {anzahl polygone}
   k:=0;
   
   myPoly:=CreateNurbsCurve(myArray[1].x,myArray[1].y,myArray[1].z,true,1);
      FOR j:= 0 TO (s-1) DO BEGIN   
         AddVertex3D(myPoly,myArray[2+k].x,myArray[2+k].y,myArray[2+k].z);
         AddVertex3D(myPoly,myArray[3+k].x,myArray[3+k].y,myArray[3+k].z);
         AddVertex3D(myPoly,myArray[4+k].x,myArray[4+k].y,myArray[4+k].z);
         AddVertex3D(myPoly,myArray[1].x,myArray[1].y,myArray[1].z);
      
         oval(-weightx/2,-weighty/2,weightx/2,weighty/2);
         profileHandle:= LNewObj;
         myHandle:= CreateExtrudeAlongPath(myPoly,profileHandle); 
         DelObject(profileHandle);

         a1.x:=myArray[1].x;
         a1.y:=myArray[1].y;
         a1.z:=myArray[1].z;
         a2.x:=myArray[2+k].x;
         a2.y:=myArray[2+k].y;
         a2.z:=myArray[2+k].z;
         a3.x:=myArray[3+k].x;
         a3.y:=myArray[3+k].y;
         a3.z:=myArray[3+k].z;
         a4.x:=myArray[4+k].x;
         a4.y:=myArray[4+k].y;
         a4.z:=myArray[4+k].z;
   
         k:=k+2;
         myDivide01(a1,a2,a3,a4,weightx,weighty);
      END;
   (*DelObject(myPoly);*)
   lastPoly:= FObject;
   DelObject(lastPoly);
END;
END;
RUN (sweep);



-- NDSMatthiasZaeh - 08 Dec 2005

Revision r1.2 - 08 Dec 2005 - 11:29 - NDSMatthiasZaeh
Parents: WebHome > NDSMatthiasZaeh > MAZModule01_Dragonfly
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.