Filed under: clases
//Comandos sesion de melscript arturo lyon
//Tecnologias Aplicadas al Proyecto de Arquitectura
//Crea una esfera - si hago un objeto en el espacio de modelado , el listener me retorna por ejemplo esto.
sphere -p 0 0 0 -ax 0 1 0 -ssw 0 -esw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -nsp 4 -ch 1;objectMoveCommand;
/*DECLARACION DE VARIABLES
Se definen declarando el tipo (expliocados a continuación) mas signo peso $ + un nombre + ; (punto y coma). Este nombre se recomienda que comience con una mayuscula y que no sean nombres muy rebuscados, ejemplio "int$Altura"
existen variables de distintos tipos
Enteros _INTEGERS = int$variable1;
Decimales _FLOAT = float$variable2;
Texto _STRING = string$variable3;
Arreglos de datos _ARRAY =etc
*/
//ejercicio 1_
//a.- declarar variable
int$var1;
$var1=12;
//si se declara la variable , podemos ejecutarla seleccionandola y presionando CTRL + ENTER
//b.- declaro mas variables variable
int$var2= 5;
int$var3= 9;
int$var4= 11;
//puedo con esto, generar operaciones aritméticas, como por ejemplo
int$var5= $var1 + $var2 + $var3 + $var4;
//recordar que ya no es necesario el int , porque fue declarado el tipo de dato junto con la variable
//si ejecuto la linea , me da el resultado de la suma de todas las variables. en el caso de los decimales, bastaria cambiar el prefijo de la variable por FLOAT y asignarle un numero decimal como valor , ejemplo 1.0 , 2.3, etc
/* VECTORES
Se declaran con el prefijo VECTOR , ej: vector$vVector1= <<0,0,1>> , en donde los tres valores del vector corresponden a valores x,y,z
*/
//ejercicio 2_
//a- generar un vector
vector$vVector1 = <<1.0,12.1,1.0>>;
vector$vVector2 = <<20.5,12.8,1.9>>;
print ($vVector1); //imprime el valor del vector
print ($vVector2.x); //imprime el valor del componente X del vector
print (($vVector2.x)+ "\n"); //imprime en nueva linea
//esto me permite generar operaciones con vectores (operaciones en 3d)
vector $vVector3= $vVector1 + $vVector2; //por ejemplo , una suma de vectores
print $vVector3; //imprime el resultado de la suma de ambos vectores
float $fVar8= `mag $vVector3`; //con esto puedo saber la magnitud , largo de
print $fVar8;
//STRINGS - textos
//declaro un string (texto) de la siguiente manera
//ejercicio 3_ trabajo con textos
string $sText1 = "hola mundo";
string $sText2 = "vil y cruel";
print ($sText1 + " " + $sText2);
//ARRAYS - arreglos , funcionan igual a las listas de grasshopper
int array //array de integers
float $lista[n]; //declaracion de lista de n elementos
int $lista[]= {1,4,5,6,23,8,32,78,453}; //declaro lista y sus elementos
print $lista; //imprimo la lista
size $lista; //obtengo el tamaño de la lista , cuantos elementos contiene
print $lista[0];//obtengo el primer elementos de la lista
string $alumnos[]= {"aldunce", "hubber","bravo", "galetovic", "araya", "hernandez","etc"}; //array de textos
string $sText4 = "el mejor alumno de la clase es";
print ($sText4 + " " + $alumnos[4]); //mezcla de string mas un elemento de un array
//ejercicio 4_ trabajo con objetos
sphere -r 5 -n "pelota"; //genero una esfera, llamada "pelota"
sphere -r 12 -n "bola"; //genero una esfera, llamda "bola"
vector $vPosPelota = `getAttr "pelota".t`; //declaro una variable que contiene el valor de la posicion x de "pelota"
vector $vPosBola = `getAttr "bola".t`; //declaro una variable que contiene el valor de la posicion total de "bola"
vector $vdist = $vPosPelota - $vPosBola; // obtengo el vector que esta entre pelota y bola
float $fdist = `mag $vdist`; //obtengo la manitud de la distancia
//LOOPS
//IF LOOP - este permite generar condiciones
if(4>5) //si 4 es mayor a 5...
{
sphere -r 2 -n "bola"; //genera una esfera
}
else //o si no...
{
polyCube; //genera un cubo
}
//ejercicio 5
int $iDmin = 10;
if ($fdist < $iDmin)
{
print "esferas muy cerca ¡PELIGROOOOOOOOOOOOOOOOOOOOOO!!!!!!"
}
else
{
print "esferas estan pulentosamente ok, el universo respira tranquilo!!"
}
//FOR LOOP
for($i=0;$i<10;$i++) // se genera una secuencia de numeros desde el 0 al 9
{
print ($i + "\n"); //imprime la secuencia de números desde el 0 al 9 saltandose una linea
}
//ejercicio 6
for($i=0;$i<10;$i++)
{
polyCube -ax 0 0 1 -w 0.9 -h 0.9 -d 0.9; //crea un cubo
move 0 0 $i; // lo mueve en su eje z , de acuerdo al valor creciente de i
rotate 0 ($i*5) 0; //lo rota en torno al eje Y , de acuerdo al valor creciente de i
scale 1 1 ($i/2); // lo escala en z de acuerdo a i
}
//ejercicio 7
//string $sName;
for($i=0;$i<10;$i++)
{
for($j=0;$j<10;$j++)
{
for($k=0;$k<10;$k++)
{
$sName ="panel_" + $i + "_" + $j + "_" +$k; //crea un nombre de acuerdo a ijk
polyCube -ax 0 0 1 -w 0.9 -h 0.9 -d 0.9 -n $sName; //crea un cubo
move ($i) ($j) ($k); // lo mueve en su eje z , de acuerdo al valor creciente de i,j y k
rotate ($i*2) ($j*2) ($k*5); //lo rota en torno al eje Y , de acuerdo al valor creciente de i, j y k
//scale ($i) ($j) ($k); // lo escala en z de acuerdo a i
}
}
}
//ejercicio final clase 01 - Celullar Automata
for($i=0;$i<40;$i++)
{
for($j=0;$j<40;$j++)
{
$sName ="panel_" + $i + "_" + $j;
polyCube -ax 0 0 1 -w 0.9 -h 0.9 -d 0.9 -n $sName; //crea un cubo
move ($i) ($j) ; // lo mueve en su eje z , de acuerdo al valor creciente de i,j
}
}
int $iRnd;
for($i=0;$i<40;$i++)
{
for($j=0;$j<40;$j++)
{
$sName ="panel_" + $i + "_" + $j;
select $sName;
$iRnd= rand(0,100);
if($iRnd<50)
{
setAttr ".visibility" 1;
}
else
{
setAttr ".visibility" 0;
}
refresh;
}
}
int $Vis;
for($i=1;$i<39;$i++)
{
for($j=1;$j<39;$j++)
{
select ("panel_" + ($i-1) + "_" + ($j-1));
$Vis= `getAttr ".visibility"`;
select ("panel_" + ($i-1) + "_" + ($j));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i-1) + "_" + ($j+1));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i) + "_" + ($j-1));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i) + "_" + ($j+1));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i+1) + "_" + ($j-1));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i+1) + "_" + ($j));
$Vis+= `getAttr ".visibility"`;
select ("panel_" + ($i+1) + "_" + ($j+1));
$Vis+= `getAttr ".visibility"`;
if($Vis>4)
{
select ("panel_" + $i + "_" + $j);
setAttr ".visibility" 1;
}
if ($Vis<4)
{
select ("panel_" + $i + "_" + $j);
setAttr ".visibility" 0;
}
refresh; //opcional si es que se desea ver la generacion de cada celula
}
}
Filed under: clases, noticias | Tags: arquitectura parametrica, arquitectural digital, catia, digital project, parametrismo
Les dejo el ultimo tutorial de creacion de componentes parametricos , su proliferacion mediante powercopies y su linkeo a planillas de excel.
Filed under: clases
Estos son los textos para que lean , analicen y generen preguntas para la clase del proximo lunes aca van.
Cortesia de la casa, les posteo dos video tutoriales de complemento al aprendizaje de digital project.
espero les sirvan.
saludos
Diego Pinochet
Video 1_
Creacion de superficie y nube de puntos_
Video 2_
Modelación de componente parametrico_
Les dejo un interesante tutorial de Digital project en relacion a Dibujo con SKETCH
http://www.paramod.net/post016/tutorial001.htm
saludos
dp
Amigos, les dejo enlaces útiles para que se interioricen en el uso de grasshopper.
http://www.grasshopper3d.com/ -sitio oficial de grasshopper (foros, tutoriales, downloads , etc)
http://web.mac.com/rhino3dtv/GH/GH.html – videotutoriales de GH
http://www.liftarchitects.com/journal/2009/3/25/the-grasshopper-primer-second-edition.html – guia explicativa de GH, desde lo mas basico , hasta ciertas heramients de personalizacion via VB.net (OBLIGATORIO!!!)
- Algoritmos: Cristián Bravo – Cristián Salinas – Manuel Araya
- Computación Material: Jaime Pascual – Juan Pablo Medina – Jose Luis Pérez
- Materia Virtual: Daniela Melendez – Eloy Bahamondes – José Luis Vial
- Emergence: Gonzalo Hevia – Max Correa – Christine Hubber
- Diagramas: Sebastián Paredes – José Hernández
- Evolutivo: Danny Bravo – Juan José Aldunce
se actualizara a la brevedad el calendario de cada seminario en conjunto con la subida del programa.
saludos dp
Filed under: noticias
Con este post , damos inicio a un nuevo semestre de clases y del blog DIGIFAB. el año pasado. este año el curso esta dictado por el profesor Arturo Lyon , arquitecto PUC y MARCH DRL de la Architectural Association.
Les damos la bienvenida al blog y esperamos que la informacion entegada, y la que aporten uds sea de gran ayuda para todos.
saludos
dp
Filed under: noticias | Tags: cnc, digital fabrication, vacuum forming, digital architecture, grasshopper, cam, rhinoscript, rhinoceros
sesion de trabajo en el laboratorio de herramientas.






















