Monday, December 29, 2008

glass x 3 corner

Three glass panels coming to a corner.

step1: assume the central piece missing and find the intersecting line (plane-plane intersection) between the two outer panes.

step2: find the 'Z' - the fantastic bissector + perpendicular

step 3: develop the rest of the leg + gutter

step4: bring the devil (the central pane) in now

step 5: tweak the gutter such that the devil can rest on it perpendicularly.

Though the gutter line is broken and triangulated - the top and the bottom surfaces of the leg remains principally alike to the quad-glass situation (trousers).

Sunday, March 16, 2008

Processing DXF export


This is an extension to the Processing Image Extrude example. I have included the DXF exporter which records the geometry as a dxf file that can accessed outside Processing.

Press 'd' to record dxf ;
Press 'r' to toggle rotation ;


//dxf export 

//make sure you have the dxf library in your Processing directory
import processing.dxf.*;

//-- GLOBAL VARIABLE DECLARATION --------------------------

//DXF object
RawDXF dxf;
//Boolean switch to turn DXF recording on / off.
boolean record;
// Boolean switch to turn rotation on / off
boolean rot;
// Boolean switch to turn DXF recording on / off.
PImage a;
//Pixel Array
int[][] aPixels;
//Values extracted from the pixel array
int[][] values;
//Rotation angle
float angle = -90;

//-- SETUP() -----------------------------------------------

//Processing calls this function once by default
void setup()
{
//Setup applet window. Set width, height to image size.
size(532, 800, P3D);
//Initialize arrays
aPixels = new int[width][height];
values = new int[width][height];
//Set fill property for closed curves off
noFill();
//Set dxf record switch off to begin with
record=false;
//Set rotation on to begin with
rot = true;
//Load the image from url into a new array
a = loadImage("http://web.mit.edu/kkdb/www/newhome/photography/bhai/images/0bhaionsofa.jpg");
//Extract the values and store in an array
for (int i=0; i< height; i++) {
for (int j=0; j< width; j++) {
aPixels[j][i] = a.pixels[i*width + j];
values[j][i] = int(red(aPixels[j][i]));
}//end for j
} //end for i
} //end setup()

//-- DRAW() -----------------------------------------------
//Processing keeps calling this function every 'tick'
//(ticks per second = framerate)
void draw()
{
//Clean up the screen with color '0' (black)
background(0);
// Update and constrain the angle
if(rot) angle += 0.05;
if (angle > TWO_PI) {
angle = 0;
}

// Rotate around the center axis
translate(width/2, 0, 128);
rotateY(angle);
translate(-width/2, 0, 128);

// Start dxf recording if record switch is on (true)
if (record){
beginRaw(DXF, "dxfout_" + angle + ".dxf");
}


// Display the image mass
for (int i=0; i< height; i+=2) {
for (int j=0; j< width; j+=2) {
stroke(values[j][i]);
point(j, i, -values[j][i]);
}
}

if (record){
endRaw();
record=false;
}
} // end Draw()

//-- CALLBACKS --------------------------------------------

void keyPressed(){
switch(key)
{
case 'r':
if(rot) rot = false;
else rot = true;
break;
case 'd':
record=true;
break;
default:
break;
}
}

Saturday, February 23, 2008

MIT-GCWorkshop-Feb'08[3]

The tower project : Hands-on Modeling / Scripting (Sun 3pm - 6pm+) The problem is to build some facade logic into an existing tower. I am going to give you a base tower model - you will create components for the facade system. If you have an idea, great - or else I am going to propose one of the two
a) openings orient towards flexible view (sight) lines.
b) openings enlarge / fold up based on the sun angles.

Before you start modeling, its critical that you *plan* out what you want to do. So in an A4 page sketch out a scheme and then proceed! Group work welcome.

Good luck.

MIT-GCWorkshop-Feb'08[2]

Room Change for Sunday: 9-255

MIT-GCWorkshop-Feb'08[1]

1. Documentation of the 'tree-example'
2. Documentation of the 'bridge-example'
The HTMLs are automatically generated by a feature that I am writing currently. It converts a GC file into a web publishable document.

The tree.GCT file (right click and save link)
I have cleaned up the file and renamed the features.
Note: The transaction where a new feature type is created (myTriangle) should be suppressed, if you have the feature already in your list.

The bridge.GCT file(right click and save link)
This file shows how to use the "Image-Capture feature" and transactions scripts to create animations.

Thursday, February 21, 2008

MIT-GCWorkshop-Feb'08[0]

Criticals
Saturday 02.23.08 Rm 3-133 [10.00-16.00]
Sunday 02.24.08 Rm 9-250 [10.00-18.00]


The five-fold path
1. Introduction + Overview of GC (Sat 10am - 12noon)
2. First Model (Sat 1pm - 4pm)
3. GC Scripting (Sun 10am - 1pm)
4. Advanced Features (Sun 2pm - 3pm)

5. Hands-on Modeling (Sun 3pm - 6pm+)


Tools
Install and activate Generative Components v8.9.4.76.
(Follow the instructions in the link and install *Before* you come to the workshop, takes a while.
You might be asked to create a Bentley profile if you dont have one already.)

Participants
MIT students
Harvard students